Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Bad type/missing conversion in `RecvProxy_StringToString`

Abierto
#210 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
52/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
csharp
Área
backend, game-dev

Línea de trabajo

Start in Source.NET/Source.Common/DtRecv.cs at RecvProxy_StringToString, then follow the stack trace into FieldAccessors.cs and FieldAccess.cs to understand the failed Char-to-InlineArray512 conversion. Reproduce the crash while loading a map with the affected entities; the issue does not identify which entities. Done when those entities load without the conversion exception.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Prevents loading into servers on maps with certain entities (unknown what exact entities are causing it)

Unhandled exception. System.NotSupportedException: No conversion from System.Char to Source.InlineArray512`1[System.Char]
   at Source.Common.FieldConvert`2.Create() in Source.NET/Source.Common/FieldAccessors.cs:line 176
   at Source.Common.ArrayFieldAccessor`2.SetElement[T](Object instance, Int32 index, T& value) in Source.NET/Source.Common/FieldAccessors.cs:line 143
   at Source.Common.DynamicArrayIndexAccessor.SetValue[T](Object instance, T& value) in Source.NET/Source.Common/FieldAccess.cs:line 66
   at Source.Common.DynamicAccessor.CopyFrom[T](Object instanceFrom, Span`1 target) in Source.NET/Source.Common/FieldAccess.cs:line 169
   at Source.Common.RecvPropHelpers.RecvProxy_StringToString(RecvProxyData& data, Object instance, IFieldAccessor field) in Source.NET/Source.Common/DtRecv.cs:line 75
   at Source.Engine.PropTypeFns.String_Decode(DecodeInfo& decodeInfo) in Source.NET/Source.Engine/DtEncode.cs:line 465
   at Source.Engine.PropTypeFns.Array_Decode(DecodeInfo& decodeInfo) in Source.NET/Source.Engine/DtEncode.cs:line 573
   at Source.Engine.EngineRecvTable.Decode(RecvTable table, Object instance, bf_read inRead, Int32 objectID, Boolean updateDTI) in Source.NET/Source.Engine/EngineRecvTable.cs:line 393
   at Source.Engine.CL.CopyNewEntity(EntityReadInfo u, Int32 iClass, Int32 iSerialNum) in Source.NET/Source.Engine/CL.cs:line 572
   at Source.Engine.Client.ClientState.ReadEnterPVS(EntityReadInfo u) in Source.NET/Source.Engine/Client/ClientState.cs:line 1229
   at Source.Engine.Client.ClientState.ReadPacketEntities(EntityReadInfo u) in Source.NET/Source.Engine/Client/ClientState.cs:line 1143
   at Source.Engine.CL.ProcessPacketEntities(SVC_PacketEntities entmsg) in Source.NET/Source.Engine/CL_EntsParse.cs:line 57
   at Source.Engine.Client.ClientState.ProcessPacketEntities(SVC_PacketEntities msg) in Source.NET/Source.Engine/Client/ClientState.cs:line 506
   at Source.Engine.Client.BaseClientState.ProcessMessage[T](T message) in Source.NET/Source.Engine/Client/BaseClientState.cs:line 331
   at Source.Common.Networking.NetMessage.Process() in Source.NET/Source.Common/Networking/IConnectionlessPacketHandler.cs:line 312
   at Source.Common.Networking.NetChannel.ProcessMessages(bf_read buf) in Source.NET/Source.Engine/NetChannel.cs:line 906
   at Source.Common.Networking.NetChannel.CheckReceivingList(FragmentStream list) in Source.NET/Source.Engine/NetChannel.cs:line 741
   at Source.Common.Networking.NetChannel.ProcessPacket(NetPacket packet, Boolean hasHeader) in Source.NET/Source.Engine/NetChannel.cs:line 705
   at Source.Common.Networking.Net.ProcessSocket(NetSocketType sock, IConnectionlessPacketHandler handler) in Source.NET/Source.Engine/Net.cs:line 289
   at Source.Engine.CL.ReadPackets(Boolean finalTick) in Source.NET/Source.Engine/CL.cs:line 97
   at Source.Engine.Host._RunFrame_Client(Boolean finalTick) in Source.NET/Source.Engine/Host.cs:line 393
   at Source.Engine.Host._RunFrame(Double time) in Source.NET/Source.Engine/Host.cs:line 253
   at Source.Engine.Host.RunFrame(Double frameTime) in Source.NET/Source.Engine/Host.cs:line 426
   at Source.Engine.HostState.State_Run(Double frameTime) in Source.NET/Source.Engine/HostState.cs:line 248
   at Source.Engine.HostState.Source.Common.Engine.IHostState.Frame(Double time) in Source.NET/Source.Engine/HostState.cs:line 91
   at Source.Engine.GameEngine.Frame() in Source.NET/Source.Engine/GameEngine.cs:line 151
   at Source.Engine.ClientLauncherAPI.MainLoop() in Source.NET/Source.Engine/ClientLauncherAPI.cs:line 162
   at Source.Engine.Mod.Main() in Source.NET/Source.Engine/Mod.cs:line 34
   at Source.Engine.ClientLauncherAPI.RunListenServer() in Source.NET/Source.Engine/ClientLauncherAPI.cs:line 79
   at Source.Engine.ClientLauncherAPI.Main() in Source.NET/Source.Engine/ClientLauncherAPI.cs:line 102
   at Source.Engine.ClientLauncherAPI.Run() in Source.NET/Source.Engine/ClientLauncherAPI.cs:line 94
   at Source.Launcher.Bootloader.Boot() in Source.NET/Source.Launcher/Program.cs:line 110
   at Source.Launcher.Program.Main(String[] _) in Source.NET/Source.Launcher/Program.cs:line 153
Lenguaje dominante
C#
Estrellas
104
Forks
9
Merge medio
8 h 52 min
PR fusionados (30 d)
115

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de SourceDotNET/Source.NET

Todos los issues de SourceDotNET/Source.NET

Issues similares

Más issues de C#

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.