1
Fork 0
mirror of https://bitbucket.org/Ioncannon/project-meteor-server.git synced 2025-04-23 05:07:47 +00:00

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); session = mServer.AddSession(subpacket.header.targetId);
if (beginSessionPacket.isLogin) if (!beginSessionPacket.isLogin)
Server.GetWorldManager().DoZoneIn(session.GetActor(), false, session.GetActor().destinationSpawnType); Server.GetWorldManager().DoZoneIn(session.GetActor(), false, session.GetActor().destinationSpawnType);
Program.Log.Info("{0} has been added to the session list.", session.GetActor().customDisplayName); 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) //Langauge Code (Client safe to send packets to now)
case 0x0006: case 0x0006:
LangaugeCodePacket langCode = new LangaugeCodePacket(subpacket.data); 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); LuaEngine.GetInstance().CallLuaFunction(session.GetActor(), session.GetActor(), "onBeginLogin", true);
Server.GetWorldManager().DoZoneIn(session.GetActor(), true, 0x1); 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(DeleteAllActorsPacket.BuildPacket(player.actorId), true, false);
player.playerSession.QueuePacket(_0xE2Packet.BuildPacket(player.actorId, 0x2), true, false); player.playerSession.QueuePacket(_0xE2Packet.BuildPacket(player.actorId, 0x2), true, false);
player.SendZoneInPackets(this, spawnType); //player.SendZoneInPackets(this, spawnType);
} }
player.SendZoneInPackets(this, spawnType); player.SendZoneInPackets(this, spawnType);

View file

@ -98,9 +98,11 @@ namespace FFXIVClassic_World_Server
//New character since world server loaded //New character since world server loaded
if (!mIdToNameMap.ContainsKey(id)) if (!mIdToNameMap.ContainsKey(id))
AddNameToMap(id, session.characterName); 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);
mZoneSessionList.Add(id, session);
break; break;
case Session.Channel.CHAT: case Session.Channel.CHAT:
if (!mChatSessionList.ContainsKey(id)) if (!mChatSessionList.ContainsKey(id))