2 more virtual server errors. Error #1 I can repro. Error #2 is likely something to do with TNManager.SetPlayerSave.
Note:
- I have deleted server.dat - before, during, between and after.
- all code works fine as a standalone. zero error's.
These error's happen when you connect/disconnect and then try to re-connect.
Error #1 Repro
----------------------
- Create a new project
- Import TNet and NGUI
- Import the attached "TNet Repro.unitypackage"
- Apply the following mod's
TNPacket.cs:
//add these
Request_TestPacket = 129,
Response_TestPacket = 130,
TNGameServer.cs:
#if STANDALONE
Tools.Log("Admins: " + mAdmin.size);
Tools.Log("Bans: " + mBan.size);
Tools.Print("Game server started on port " + tcpPort + " using protocol version " + Player.version);
#endif
Repro_Start();//line #297 insert this
TNGameServer.cs: (insert at line #2694 -- after "public bool Load(string fileName)")
#region repro
private void Repro_Start()
{
onCustomPacket += Repro_OnCustomPacket;
}
private void Repro_OnCustomPacket(TcpPlayer player, Buffer buffer, BinaryReader reader, Packet request, bool reliable)
{
switch (request)
{
case Packet.Request_TestPacket:
{
string message = reader.ReadString();
BinaryWriter writer2 = BeginSend(Packet.Response_TestPacket);
writer2.Write("message: " + message);
EndSend(true, player);
break;
}
default:
Tools.Log("OnCustomPacket: " + string.Format("[{0}] name: {1} request: {2}", player.id, player.name, request));
break;
}
}
#endregion
Error #2
----------------------
Couple notes on error #2.
- If I connect/disconnect -- delete server.dat -- reconnect -- Error #2 does not happen, but the code stops executing and halts progress. This is why i believe the error is related to TNManager.SetPlayerSave.
- I did a ton of debugging and the packet that is being processed is the SetPlayerSave packet.