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:
parent
0c8642d6ab
commit
f00e878dd0
3 changed files with 8 additions and 6 deletions
|
@ -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);
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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))
|
||||||
|
|
Loading…
Add table
Reference in a new issue