Fixed session issue. Still a stopgap until d/cing is implemented.

This commit is contained in:
Filip Maj 2017-06-19 23:11:24 -04:00
parent 0c8642d6ab
commit f00e878dd0
3 changed files with 8 additions and 6 deletions

View File

@ -61,7 +61,7 @@ namespace FFXIVClassic_Map_Server
session = mServer.AddSession(subpacket.header.targetId);
if (beginSessionPacket.isLogin)
if (!beginSessionPacket.isLogin)
Server.GetWorldManager().DoZoneIn(session.GetActor(), false, session.GetActor().destinationSpawnType);
Program.Log.Info("{0} has been added to the session list.", session.GetActor().customDisplayName);
@ -121,7 +121,7 @@ namespace FFXIVClassic_Map_Server
//Langauge Code (Client safe to send packets to now)
case 0x0006:
LangaugeCodePacket langCode = new LangaugeCodePacket(subpacket.data);
session = mServer.AddSession(subpacket.header.targetId);
session = mServer.GetSession(subpacket.header.targetId);
LuaEngine.GetInstance().CallLuaFunction(session.GetActor(), session.GetActor(), "onBeginLogin", true);
Server.GetWorldManager().DoZoneIn(session.GetActor(), true, 0x1);

View File

@ -737,7 +737,7 @@ namespace FFXIVClassic_Map_Server
{
player.playerSession.QueuePacket(DeleteAllActorsPacket.BuildPacket(player.actorId), true, false);
player.playerSession.QueuePacket(_0xE2Packet.BuildPacket(player.actorId, 0x2), true, false);
player.SendZoneInPackets(this, spawnType);
//player.SendZoneInPackets(this, spawnType);
}
player.SendZoneInPackets(this, spawnType);

View File

@ -98,8 +98,10 @@ namespace FFXIVClassic_World_Server
//New character since world server loaded
if (!mIdToNameMap.ContainsKey(id))
AddNameToMap(id, session.characterName);
//TODO: this is technically wrong!!! Should kick out player and wait till auto-removed.
if (mZoneSessionList.ContainsKey(id))
mZoneSessionList.Remove(id);
if (!mZoneSessionList.ContainsKey(id))
mZoneSessionList.Add(id, session);
break;
case Session.Channel.CHAT: