diff --git a/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj b/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj
index 1718595f..89f7ce5b 100644
--- a/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj
+++ b/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj
@@ -241,7 +241,6 @@
-
@@ -336,8 +335,8 @@
- xcopy "$(SolutionDir)data\map_config.ini" "$(SolutionDir)$(ProjectName)\$(OutDir)" /d
-xcopy "$(SolutionDir)data\scripts" "$(SolutionDir)$(ProjectName)\$(OutDir)scripts\" /e /d /y /s
+
+
diff --git a/FFXIVClassic Map Server/PacketProcessor.cs b/FFXIVClassic Map Server/PacketProcessor.cs
index f86fa81b..22a88476 100644
--- a/FFXIVClassic Map Server/PacketProcessor.cs
+++ b/FFXIVClassic Map Server/PacketProcessor.cs
@@ -35,7 +35,7 @@ namespace FFXIVClassic_Map_Server
public void ProcessPacket(ZoneConnection client, SubPacket subpacket)
{
- Session session = mServer.GetSession(subpacket.header.targetId);
+ Session session = mServer.GetSession(subpacket.header.sourceId);
if (session == null && subpacket.gameMessage.opcode != 0x1000)
return;
@@ -59,7 +59,7 @@ namespace FFXIVClassic_Map_Server
SessionBeginPacket beginSessionPacket = new SessionBeginPacket(subpacket.data);
- session = mServer.AddSession(subpacket.header.targetId);
+ session = mServer.AddSession(subpacket.header.sourceId);
if (!beginSessionPacket.isLogin)
Server.GetWorldManager().DoZoneIn(session.GetActor(), false, session.GetActor().destinationSpawnType);
@@ -80,7 +80,7 @@ namespace FFXIVClassic_Map_Server
Server.GetServer().RemoveSession(session.id);
Program.Log.Info("{0} has been removed from the session list.", session.GetActor().customDisplayName);
- client.QueuePacket(SessionEndConfirmPacket.BuildPacket(session, endSessionPacket.destinationZoneId), true, false);
+ session.QueuePacket(SessionEndConfirmPacket.BuildPacket(session, endSessionPacket.destinationZoneId));
client.FlushQueuedSendPackets();
break;
//World Server - Party Synch
@@ -92,14 +92,14 @@ namespace FFXIVClassic_Map_Server
case 0x0001:
//subpacket.DebugPrintSubPacket();
PingPacket pingPacket = new PingPacket(subpacket.data);
- client.QueuePacket(BasePacket.CreatePacket(PongPacket.BuildPacket(session.id, pingPacket.time), true, false));
+ session.QueuePacket(PongPacket.BuildPacket(session.id, pingPacket.time));
session.Ping();
break;
//Unknown
case 0x0002:
subpacket.DebugPrintSubPacket();
- client.QueuePacket(_0x2Packet.BuildPacket(session.id), true, false);
+ session.QueuePacket(_0x2Packet.BuildPacket(session.id));
client.FlushQueuedSendPackets();
break;
@@ -121,8 +121,6 @@ namespace FFXIVClassic_Map_Server
//Langauge Code (Client safe to send packets to now)
case 0x0006:
LangaugeCodePacket langCode = new LangaugeCodePacket(subpacket.data);
- session = mServer.GetSession(subpacket.header.targetId);
-
LuaEngine.GetInstance().CallLuaFunction(session.GetActor(), session.GetActor(), "onBeginLogin", true);
Server.GetWorldManager().DoZoneIn(session.GetActor(), true, 0x1);
LuaEngine.GetInstance().CallLuaFunction(session.GetActor(), session.GetActor(), "onLogin", true);
@@ -247,15 +245,15 @@ namespace FFXIVClassic_Map_Server
//Start Recruiting
case 0x01C3:
StartRecruitingRequestPacket recruitRequestPacket = new StartRecruitingRequestPacket(subpacket.data);
- client.QueuePacket(BasePacket.CreatePacket(StartRecruitingResponse.BuildPacket(session.id, true), true, false));
+ session.QueuePacket(StartRecruitingResponse.BuildPacket(session.id, true));
break;
//End Recruiting
case 0x01C4:
- client.QueuePacket(BasePacket.CreatePacket(EndRecruitmentPacket.BuildPacket(session.id), true, false));
+ session.QueuePacket(EndRecruitmentPacket.BuildPacket(session.id));
break;
//Party Window Opened, Request State
case 0x01C5:
- client.QueuePacket(BasePacket.CreatePacket(RecruiterStatePacket.BuildPacket(session.id, false, false, 0), true, false));
+ session.QueuePacket(RecruiterStatePacket.BuildPacket(session.id, false, false, 0));
break;
//Search Recruiting
case 0x01C7:
@@ -271,7 +269,7 @@ namespace FFXIVClassic_Map_Server
details.subTaskId = 1;
details.comment = "This is a test details packet sent by the server. No implementation has been Created yet...";
details.num[0] = 1;
- client.QueuePacket(BasePacket.CreatePacket(CurrentRecruitmentDetailsPacket.BuildPacket(session.id, details), true, false));
+ session.QueuePacket(CurrentRecruitmentDetailsPacket.BuildPacket(session.id, details));
break;
//Accepted Recruiting
case 0x01C6:
@@ -280,64 +278,64 @@ namespace FFXIVClassic_Map_Server
/* SOCIAL STUFF */
case 0x01C9:
AddRemoveSocialPacket addBlackList = new AddRemoveSocialPacket(subpacket.data);
- client.QueuePacket(BasePacket.CreatePacket(BlacklistAddedPacket.BuildPacket(session.id, true, addBlackList.name), true, false));
+ session.QueuePacket(BlacklistAddedPacket.BuildPacket(session.id, true, addBlackList.name));
break;
case 0x01CA:
AddRemoveSocialPacket RemoveBlackList = new AddRemoveSocialPacket(subpacket.data);
- client.QueuePacket(BasePacket.CreatePacket(BlacklistRemovedPacket.BuildPacket(session.id, true, RemoveBlackList.name), true, false));
+ session.QueuePacket(BlacklistRemovedPacket.BuildPacket(session.id, true, RemoveBlackList.name));
break;
case 0x01CB:
int offset1 = 0;
- client.QueuePacket(BasePacket.CreatePacket(SendBlacklistPacket.BuildPacket(session.id, new String[] { "Test" }, ref offset1), true, false));
+ session.QueuePacket(SendBlacklistPacket.BuildPacket(session.id, new String[] { "Test" }, ref offset1));
break;
case 0x01CC:
AddRemoveSocialPacket addFriendList = new AddRemoveSocialPacket(subpacket.data);
- client.QueuePacket(BasePacket.CreatePacket(FriendlistAddedPacket.BuildPacket(session.id, true, (uint)addFriendList.name.GetHashCode(), true, addFriendList.name), true, false));
+ session.QueuePacket(FriendlistAddedPacket.BuildPacket(session.id, true, (uint)addFriendList.name.GetHashCode(), true, addFriendList.name));
break;
case 0x01CD:
AddRemoveSocialPacket RemoveFriendList = new AddRemoveSocialPacket(subpacket.data);
- client.QueuePacket(BasePacket.CreatePacket(FriendlistRemovedPacket.BuildPacket(session.id, true, RemoveFriendList.name), true, false));
+ session.QueuePacket(FriendlistRemovedPacket.BuildPacket(session.id, true, RemoveFriendList.name));
break;
case 0x01CE:
int offset2 = 0;
- client.QueuePacket(BasePacket.CreatePacket(SendFriendlistPacket.BuildPacket(session.id, new Tuple[] { new Tuple(01, "Test2") }, ref offset2), true, false));
+ session.QueuePacket(SendFriendlistPacket.BuildPacket(session.id, new Tuple[] { new Tuple(01, "Test2") }, ref offset2));
break;
case 0x01CF:
- client.QueuePacket(BasePacket.CreatePacket(FriendStatusPacket.BuildPacket(session.id, null), true, false));
+ session.QueuePacket(FriendStatusPacket.BuildPacket(session.id, null));
break;
/* SUPPORT DESK STUFF */
//Request for FAQ/Info List
case 0x01D0:
FaqListRequestPacket faqRequest = new FaqListRequestPacket(subpacket.data);
- client.QueuePacket(BasePacket.CreatePacket(FaqListResponsePacket.BuildPacket(session.id, new string[] { "Testing FAQ1", "Coded style!" }), true, false));
+ session.QueuePacket(FaqListResponsePacket.BuildPacket(session.id, new string[] { "Testing FAQ1", "Coded style!" }));
break;
//Request for body of a faq/info selection
case 0x01D1:
FaqBodyRequestPacket faqBodyRequest = new FaqBodyRequestPacket(subpacket.data);
- client.QueuePacket(BasePacket.CreatePacket(FaqBodyResponsePacket.BuildPacket(session.id, "HERE IS A GIANT BODY. Nothing else to say!"), true, false));
+ session.QueuePacket(FaqBodyResponsePacket.BuildPacket(session.id, "HERE IS A GIANT BODY. Nothing else to say!"));
break;
//Request issue list
case 0x01D2:
GMTicketIssuesRequestPacket issuesRequest = new GMTicketIssuesRequestPacket(subpacket.data);
- client.QueuePacket(BasePacket.CreatePacket(IssueListResponsePacket.BuildPacket(session.id, new string[] { "Test1", "Test2", "Test3", "Test4", "Test5" }), true, false));
+ session.QueuePacket(IssueListResponsePacket.BuildPacket(session.id, new string[] { "Test1", "Test2", "Test3", "Test4", "Test5" }));
break;
//Request if GM ticket exists
case 0x01D3:
- client.QueuePacket(BasePacket.CreatePacket(StartGMTicketPacket.BuildPacket(session.id, false), true, false));
+ session.QueuePacket(StartGMTicketPacket.BuildPacket(session.id, false));
break;
//Request for GM response message
case 0x01D4:
- client.QueuePacket(BasePacket.CreatePacket(GMTicketPacket.BuildPacket(session.id, "This is a GM Ticket Title", "This is a GM Ticket Body."), true, false));
+ session.QueuePacket(GMTicketPacket.BuildPacket(session.id, "This is a GM Ticket Title", "This is a GM Ticket Body."));
break;
//GM Ticket Sent
case 0x01D5:
GMSupportTicketPacket gmTicket = new GMSupportTicketPacket(subpacket.data);
Program.Log.Info("Got GM Ticket: \n" + gmTicket.ticketTitle + "\n" + gmTicket.ticketBody);
- client.QueuePacket(BasePacket.CreatePacket(GMTicketSentResponsePacket.BuildPacket(session.id, true), true, false));
+ session.QueuePacket(GMTicketSentResponsePacket.BuildPacket(session.id, true));
break;
//Request to end ticket
case 0x01D6:
- client.QueuePacket(BasePacket.CreatePacket(EndGMTicketPacket.BuildPacket(session.id), true, false));
+ session.QueuePacket(EndGMTicketPacket.BuildPacket(session.id));
break;
default:
Program.Log.Debug("Unknown command 0x{0:X} received.", subpacket.gameMessage.opcode);
diff --git a/FFXIVClassic Map Server/WorldManager.cs b/FFXIVClassic Map Server/WorldManager.cs
index ce915e01..62a6b531 100644
--- a/FFXIVClassic Map Server/WorldManager.cs
+++ b/FFXIVClassic Map Server/WorldManager.cs
@@ -876,55 +876,55 @@ namespace FFXIVClassic_Map_Server
public void RequestWorldLinkshellCreate(Player player, string name, ushort crest)
{
SubPacket packet = CreateLinkshellPacket.BuildPacket(player.playerSession, name, crest, player.actorId);
- Server.GetWorldConnection().QueuePacket(packet, true, false);
+ player.QueuePacket(packet);
}
public void RequestWorldLinkshellCrestModify(Player player, string name, ushort crest)
{
SubPacket packet = ModifyLinkshellPacket.BuildPacket(player.playerSession, 1, name, null, crest, 0);
- Server.GetWorldConnection().QueuePacket(packet, true, false);
+ player.QueuePacket(packet);
}
public void RequestWorldLinkshellDelete(Player player, string name)
{
SubPacket packet = DeleteLinkshellPacket.BuildPacket(player.playerSession, name);
- Server.GetWorldConnection().QueuePacket(packet, true, false);
+ player.QueuePacket(packet);
}
public void RequestWorldLinkshellRankChange(Player player, string lsname, string memberName, byte newRank)
{
SubPacket packet = LinkshellRankChangePacket.BuildPacket(player.playerSession, memberName, lsname, newRank);
- Server.GetWorldConnection().QueuePacket(packet, true, false);
+ player.QueuePacket(packet);
}
public void RequestWorldLinkshellInviteMember(Player player, string lsname, uint invitedActorId)
{
SubPacket packet = LinkshellInvitePacket.BuildPacket(player.playerSession, invitedActorId, lsname);
- Server.GetWorldConnection().QueuePacket(packet, true, false);
+ player.QueuePacket(packet);
}
public void RequestWorldLinkshellCancelInvite(Player player)
{
SubPacket packet = LinkshellInviteCancelPacket.BuildPacket(player.playerSession);
- Server.GetWorldConnection().QueuePacket(packet, true, false);
+ player.QueuePacket(packet);
}
public void RequestWorldLinkshellLeave(Player player, string lsname)
{
SubPacket packet = LinkshellLeavePacket.BuildPacket(player.playerSession, lsname, null, false);
- Server.GetWorldConnection().QueuePacket(packet, true, false);
+ player.QueuePacket(packet);
}
public void RequestWorldLinkshellKick(Player player, string lsname, string kickedName)
{
SubPacket packet = LinkshellLeavePacket.BuildPacket(player.playerSession, lsname, kickedName, true);
- Server.GetWorldConnection().QueuePacket(packet, true, false);
+ player.QueuePacket(packet);
}
public void RequestWorldLinkshellChangeActive(Player player, string lsname)
{
SubPacket packet = LinkshellChangePacket.BuildPacket(player.playerSession, lsname);
- Server.GetWorldConnection().QueuePacket(packet, true, false);
+ player.QueuePacket(packet);
}
private void RequestWorldServerZoneChange(Player player, uint destinationZoneId, byte spawnType, float spawnX, float spawnY, float spawnZ, float spawnRotation)
diff --git a/FFXIVClassic Map Server/actors/Actor.cs b/FFXIVClassic Map Server/actors/Actor.cs
index a7d87166..265ce29f 100644
--- a/FFXIVClassic Map Server/actors/Actor.cs
+++ b/FFXIVClassic Map Server/actors/Actor.cs
@@ -184,13 +184,13 @@ namespace FFXIVClassic_Map_Server.Actors
return subpackets;
}
- public BasePacket GetSetEventStatusPackets()
+ public List GetSetEventStatusPackets()
{
List subpackets = new List();
//Return empty list
if (eventConditions == null)
- return BasePacket.CreatePacket(subpackets, true, false);
+ return subpackets;
if (eventConditions.talkEventConditions != null)
{
@@ -228,7 +228,7 @@ namespace FFXIVClassic_Map_Server.Actors
subpackets.Add(SetEventStatus.BuildPacket(actorId, true, 2, condition.conditionName));
}
- return BasePacket.CreatePacket(subpackets, true, false);
+ return subpackets;
}
public SubPacket CreateIsZoneingPacket()
@@ -246,7 +246,7 @@ namespace FFXIVClassic_Map_Server.Actors
return ActorInstantiatePacket.BuildPacket(actorId, actorName, className, classParams);
}
- public virtual BasePacket GetSpawnPackets(Player player, ushort spawnType)
+ public virtual List GetSpawnPackets(Player player, ushort spawnType)
{
List subpackets = new List();
subpackets.Add(CreateAddActorPacket(8));
@@ -257,15 +257,15 @@ namespace FFXIVClassic_Map_Server.Actors
subpackets.Add(CreateStatePacket());
subpackets.Add(CreateIsZoneingPacket());
subpackets.Add(CreateScriptBindPacket(player));
- return BasePacket.CreatePacket(subpackets, true, false);
+ return subpackets;
}
- public virtual BasePacket GetSpawnPackets()
+ public virtual List GetSpawnPackets()
{
return GetSpawnPackets(0x1);
}
- public virtual BasePacket GetSpawnPackets(ushort spawnType)
+ public virtual List GetSpawnPackets(ushort spawnType)
{
List subpackets = new List();
subpackets.Add(CreateAddActorPacket(8));
@@ -276,17 +276,19 @@ namespace FFXIVClassic_Map_Server.Actors
subpackets.Add(CreateStatePacket());
subpackets.Add(CreateIsZoneingPacket());
subpackets.Add(CreateScriptBindPacket());
- return BasePacket.CreatePacket(subpackets, true, false);
+ return subpackets;
}
- public virtual BasePacket GetInitPackets()
+ public virtual List GetInitPackets()
{
+ List packets = new List();
SetActorPropetyPacket initProperties = new SetActorPropetyPacket("/_init");
initProperties.AddByte(0xE14B0CA8, 1);
initProperties.AddByte(0x2138FD71, 1);
initProperties.AddByte(0xFBFBCFB1, 1);
initProperties.AddTarget();
- return BasePacket.CreatePacket(initProperties.BuildPacket(actorId), true, false);
+ packets.Add(initProperties.BuildPacket(actorId));
+ return packets;
}
public override bool Equals(Object obj)
diff --git a/FFXIVClassic Map Server/actors/area/Area.cs b/FFXIVClassic Map Server/actors/area/Area.cs
index b491d905..a9fb2976 100644
--- a/FFXIVClassic Map Server/actors/area/Area.cs
+++ b/FFXIVClassic Map Server/actors/area/Area.cs
@@ -91,7 +91,7 @@ namespace FFXIVClassic_Map_Server.Actors
return ActorInstantiatePacket.BuildPacket(actorId, actorName, "ZoneDefault", lParams);
}
- public override BasePacket GetSpawnPackets()
+ public override List GetSpawnPackets()
{
List subpackets = new List();
subpackets.Add(CreateAddActorPacket(0));
@@ -101,7 +101,7 @@ namespace FFXIVClassic_Map_Server.Actors
subpackets.Add(CreateStatePacket());
subpackets.Add(CreateIsZoneingPacket());
subpackets.Add(CreateScriptBindPacket());
- return BasePacket.CreatePacket(subpackets, true, false);
+ return subpackets;
}
#region Actor Management
@@ -483,7 +483,7 @@ namespace FFXIVClassic_Map_Server.Actors
if (player != null && !zoneWide)
{
- player.QueuePacket(BasePacket.CreatePacket(SetWeatherPacket.BuildPacket(player.actorId, weather, transitionTime), true, false));
+ player.QueuePacket(SetWeatherPacket.BuildPacket(player.actorId, weather, transitionTime));
}
if (zoneWide)
{
@@ -494,7 +494,7 @@ namespace FFXIVClassic_Map_Server.Actors
if (actor.Value is Player)
{
player = ((Player)actor.Value);
- player.QueuePacket(BasePacket.CreatePacket(SetWeatherPacket.BuildPacket(player.actorId, weather, transitionTime), true, false));
+ player.QueuePacket(SetWeatherPacket.BuildPacket(player.actorId, weather, transitionTime));
}
}
}
diff --git a/FFXIVClassic Map Server/actors/chara/npc/Npc.cs b/FFXIVClassic Map Server/actors/chara/npc/Npc.cs
index 0db33a71..60f87d13 100644
--- a/FFXIVClassic Map Server/actors/chara/npc/Npc.cs
+++ b/FFXIVClassic Map Server/actors/chara/npc/Npc.cs
@@ -177,8 +177,8 @@ namespace FFXIVClassic_Map_Server.Actors
//ActorInstantiatePacket.BuildPacket(actorId, actorName, className, lParams).DebugPrintSubPacket();
return ActorInstantiatePacket.BuildPacket(actorId, actorName, className, lParams);
}
-
- public override BasePacket GetSpawnPackets(Player player, ushort spawnType)
+
+ public override List GetSpawnPackets(Player player, ushort spawnType)
{
List subpackets = new List();
subpackets.Add(CreateAddActorPacket());
@@ -199,10 +199,10 @@ namespace FFXIVClassic_Map_Server.Actors
subpackets.Add(CreateIsZoneingPacket());
subpackets.Add(CreateScriptBindPacket(player));
- return BasePacket.CreatePacket(subpackets, true, false);
+ return subpackets;
}
- public override BasePacket GetInitPackets()
+ public override List GetInitPackets()
{
ActorPropertyPacketUtil propPacketUtil = new ActorPropertyPacketUtil("/_init", this);
@@ -258,7 +258,7 @@ namespace FFXIVClassic_Map_Server.Actors
propPacketUtil.AddProperty("npcWork.pushCommandPriority");
}
- return BasePacket.CreatePacket(propPacketUtil.Done(), true, false);
+ return propPacketUtil.Done();
}
public string GetUniqueId()
diff --git a/FFXIVClassic Map Server/actors/chara/player/Player.cs b/FFXIVClassic Map Server/actors/chara/player/Player.cs
index 8e6a09bf..938df61d 100644
--- a/FFXIVClassic Map Server/actors/chara/player/Player.cs
+++ b/FFXIVClassic Map Server/actors/chara/player/Player.cs
@@ -292,7 +292,7 @@ namespace FFXIVClassic_Map_Server.Actors
return ActorInstantiatePacket.BuildPacket(actorId, actorName, className, lParams);
}
- public override BasePacket GetSpawnPackets(Player requestPlayer, ushort spawnType)
+ public override List GetSpawnPackets(Player requestPlayer, ushort spawnType)
{
List subpackets = new List();
subpackets.Add(CreateAddActorPacket(8));
@@ -310,7 +310,7 @@ namespace FFXIVClassic_Map_Server.Actors
subpackets.Add(CreateIsZoneingPacket());
subpackets.AddRange(CreatePlayerRelatedPackets(requestPlayer.actorId));
subpackets.Add(CreateScriptBindPacket(requestPlayer));
- return BasePacket.CreatePacket(subpackets, true, false);
+ return subpackets;
}
public List CreatePlayerRelatedPackets(uint requestingPlayerActorId)
@@ -347,7 +347,7 @@ namespace FFXIVClassic_Map_Server.Actors
return subpackets;
}
- public override BasePacket GetInitPackets()
+ public override List GetInitPackets()
{
ActorPropertyPacketUtil propPacketUtil = new ActorPropertyPacketUtil("/_init", this);
@@ -494,7 +494,7 @@ namespace FFXIVClassic_Map_Server.Actors
propPacketUtil.AddProperty("playerWork.birthdayDay");
propPacketUtil.AddProperty("playerWork.initialTown");
- return BasePacket.CreatePacket(propPacketUtil.Done(), true, false);
+ return propPacketUtil.Done();
}
public void SendSeamlessZoneInPackets()
@@ -529,9 +529,9 @@ namespace FFXIVClassic_Map_Server.Actors
playerSession.QueuePacket(GetInitPackets());
- BasePacket areaMasterSpawn = zone.GetSpawnPackets();
- BasePacket debugSpawn = world.GetDebugActor().GetSpawnPackets();
- BasePacket worldMasterSpawn = world.GetActor().GetSpawnPackets();
+ List areaMasterSpawn = zone.GetSpawnPackets();
+ List debugSpawn = world.GetDebugActor().GetSpawnPackets();
+ List worldMasterSpawn = world.GetActor().GetSpawnPackets();
playerSession.QueuePacket(areaMasterSpawn);
playerSession.QueuePacket(debugSpawn);
@@ -552,14 +552,12 @@ namespace FFXIVClassic_Map_Server.Actors
if (zone.GetWeatherDirector() != null)
{
- BasePacket weatherDirectorSpawn = zone.GetWeatherDirector().GetSpawnPackets();
- playerSession.QueuePacket(weatherDirectorSpawn);
+ playerSession.QueuePacket(zone.GetWeatherDirector().GetSpawnPackets());
}
foreach (Director director in ownedDirectors)
{
- director.GetSpawnPackets().DebugPrintPacket();
QueuePacket(director.GetSpawnPackets());
QueuePacket(director.GetInitPackets());
}
@@ -596,9 +594,9 @@ namespace FFXIVClassic_Map_Server.Actors
return actorId == otherActorId;
}
- public void QueuePacket(BasePacket packet)
+ public void QueuePacket(List packets)
{
- playerSession.QueuePacket(packet);
+ playerSession.QueuePacket(packets);
}
public void QueuePacket(SubPacket packet)
@@ -616,10 +614,10 @@ namespace FFXIVClassic_Map_Server.Actors
{
try
{
- BasePacket packet = new BasePacket(path);
+ // BasePacket packet = new BasePacket(path);
- packet.ReplaceActorID(actorId);
- QueuePacket(packet);
+ //packet.ReplaceActorID(actorId);
+ //QueuePacket(packet);
}
catch (Exception e)
{
@@ -1449,7 +1447,6 @@ namespace FFXIVClassic_Map_Server.Actors
public void SendDirectorPackets(Director director)
{
- director.GetSpawnPackets().DebugPrintPacket();
QueuePacket(director.GetSpawnPackets());
QueuePacket(director.GetInitPackets());
}
diff --git a/FFXIVClassic Map Server/actors/debug/Debug.cs b/FFXIVClassic Map Server/actors/debug/Debug.cs
index 1b1afcbd..49b62173 100644
--- a/FFXIVClassic Map Server/actors/debug/Debug.cs
+++ b/FFXIVClassic Map Server/actors/debug/Debug.cs
@@ -25,7 +25,7 @@ namespace FFXIVClassic_Map_Server.Actors
return ActorInstantiatePacket.BuildPacket(actorId, actorName, className, lParams);
}
- public override BasePacket GetSpawnPackets()
+ public override List GetSpawnPackets()
{
List subpackets = new List();
subpackets.Add(CreateAddActorPacket(0));
@@ -35,7 +35,7 @@ namespace FFXIVClassic_Map_Server.Actors
subpackets.Add(CreateStatePacket());
subpackets.Add(CreateIsZoneingPacket());
subpackets.Add(CreateScriptBindPacket());
- return BasePacket.CreatePacket(subpackets, true, false);
+ return subpackets;
}
}
diff --git a/FFXIVClassic Map Server/actors/director/Director.cs b/FFXIVClassic Map Server/actors/director/Director.cs
index 7c58e820..524762ee 100644
--- a/FFXIVClassic Map Server/actors/director/Director.cs
+++ b/FFXIVClassic Map Server/actors/director/Director.cs
@@ -57,7 +57,7 @@ namespace FFXIVClassic_Map_Server.actors.director
return ActorInstantiatePacket.BuildPacket(actorId, actorName, className, actualLParams);
}
- public override BasePacket GetSpawnPackets(ushort spawnType = 1)
+ public override List GetSpawnPackets(ushort spawnType = 1)
{
List subpackets = new List();
subpackets.Add(CreateAddActorPacket(0));
@@ -68,14 +68,16 @@ namespace FFXIVClassic_Map_Server.actors.director
subpackets.Add(CreateStatePacket());
subpackets.Add(CreateIsZoneingPacket());
subpackets.Add(CreateScriptBindPacket());
- return BasePacket.CreatePacket(subpackets, true, false);
- }
+ return subpackets;
+ }
- public override BasePacket GetInitPackets()
+ public override List GetInitPackets()
{
+ List subpackets = new List();
SetActorPropetyPacket initProperties = new SetActorPropetyPacket("/_init");
initProperties.AddTarget();
- return BasePacket.CreatePacket(initProperties.BuildPacket(actorId), true, false);
+ subpackets.Add(initProperties.BuildPacket(actorId));
+ return subpackets;
}
public void OnTalkEvent(Player player, Npc npc)
@@ -108,7 +110,6 @@ namespace FFXIVClassic_Map_Server.actors.director
{
foreach (Player p in GetPlayerMembers())
{
- GetSpawnPackets().DebugPrintPacket();
p.QueuePacket(GetSpawnPackets());
p.QueuePacket(GetInitPackets());
}
diff --git a/FFXIVClassic Map Server/actors/world/WorldMaster.cs b/FFXIVClassic Map Server/actors/world/WorldMaster.cs
index 5da97052..132afc4d 100644
--- a/FFXIVClassic Map Server/actors/world/WorldMaster.cs
+++ b/FFXIVClassic Map Server/actors/world/WorldMaster.cs
@@ -24,7 +24,7 @@ namespace FFXIVClassic_Map_Server.Actors
return ActorInstantiatePacket.BuildPacket(actorId, actorName, className, lParams);
}
- public override BasePacket GetSpawnPackets()
+ public override List GetSpawnPackets()
{
List subpackets = new List();
subpackets.Add(CreateAddActorPacket(0));
@@ -34,7 +34,7 @@ namespace FFXIVClassic_Map_Server.Actors
subpackets.Add(CreateStatePacket());
subpackets.Add(CreateIsZoneingPacket());
subpackets.Add(CreateScriptBindPacket());
- return BasePacket.CreatePacket(subpackets, true, false);
+ return subpackets;
}
}
}
diff --git a/FFXIVClassic Map Server/dataobjects/Session.cs b/FFXIVClassic Map Server/dataobjects/Session.cs
index d18e3363..7aca7d7b 100644
--- a/FFXIVClassic Map Server/dataobjects/Session.cs
+++ b/FFXIVClassic Map Server/dataobjects/Session.cs
@@ -31,15 +31,16 @@ namespace FFXIVClassic_Map_Server.dataobjects
actorInstanceList.Add(playerActor);
}
- public void QueuePacket(BasePacket basePacket)
+ public void QueuePacket(List packets)
{
- Server.GetWorldConnection().QueuePacket(basePacket);
+ foreach (SubPacket s in packets)
+ QueuePacket(s);
}
public void QueuePacket(SubPacket subPacket)
{
subPacket.SetTargetId(id);
- Server.GetWorldConnection().QueuePacket(subPacket, true, false);
+ Server.GetWorldConnection().QueuePacket(subPacket);
}
public Player GetActor()
diff --git a/FFXIVClassic Map Server/dataobjects/ZoneConnection.cs b/FFXIVClassic Map Server/dataobjects/ZoneConnection.cs
index a8e957d1..4a7fcc98 100644
--- a/FFXIVClassic Map Server/dataobjects/ZoneConnection.cs
+++ b/FFXIVClassic Map Server/dataobjects/ZoneConnection.cs
@@ -17,14 +17,7 @@ namespace FFXIVClassic_Map_Server.dataobjects
private BlockingCollection SendPacketQueue = new BlockingCollection(1000);
public int lastPartialSize = 0;
- public void QueuePacket(BasePacket packet)
- {
- List subPackets = packet.GetSubpackets();
- foreach (SubPacket s in subPackets)
- SendPacketQueue.Add(s);
- }
-
- public void QueuePacket(SubPacket subpacket, bool isAuthed, bool isEncrypted)
+ public void QueuePacket(SubPacket subpacket)
{
SendPacketQueue.Add(subpacket);
}
@@ -68,7 +61,7 @@ namespace FFXIVClassic_Map_Server.dataobjects
public void RequestZoneChange(uint sessionId, uint destinationZoneId, byte spawnType, float spawnX, float spawnY, float spawnZ, float spawnRotation)
{
WorldRequestZoneChangePacket.BuildPacket(sessionId, destinationZoneId, spawnType, spawnX, spawnY, spawnZ, spawnRotation).DebugPrintSubPacket();
- QueuePacket(WorldRequestZoneChangePacket.BuildPacket(sessionId, destinationZoneId, spawnType, spawnX, spawnY, spawnZ, spawnRotation), true, false);
+ QueuePacket(WorldRequestZoneChangePacket.BuildPacket(sessionId, destinationZoneId, spawnType, spawnX, spawnY, spawnZ, spawnRotation));
}
}
}
diff --git a/FFXIVClassic Map Server/lua/LuaEngine.cs b/FFXIVClassic Map Server/lua/LuaEngine.cs
index d8d4603f..c34ada7d 100644
--- a/FFXIVClassic Map Server/lua/LuaEngine.cs
+++ b/FFXIVClassic Map Server/lua/LuaEngine.cs
@@ -607,7 +607,7 @@ namespace FFXIVClassic_Map_Server.lua
List SendError = new List();
SendError.Add(EndEventPacket.BuildPacket(player.actorId, player.currentEventOwner, player.currentEventName));
player.SendMessage(SendMessagePacket.MESSAGE_TYPE_SYSTEM_ERROR, "", message);
- player.playerSession.QueuePacket(BasePacket.CreatePacket(SendError, true, false));
+ player.playerSession.QueuePacket(SendError);
}
}
diff --git a/FFXIVClassic Map Server/packets/send/login/0x7ResponsePacket.cs b/FFXIVClassic Map Server/packets/send/login/0x7ResponsePacket.cs
deleted file mode 100644
index 44885647..00000000
--- a/FFXIVClassic Map Server/packets/send/login/0x7ResponsePacket.cs
+++ /dev/null
@@ -1,39 +0,0 @@
-using FFXIVClassic.Common;
-using System;
-using System.IO;
-
-using FFXIVClassic.Common;
-
-namespace FFXIVClassic_Map_Server.packets.send.login
-{
- class Login0x7ResponsePacket
- {
- public static BasePacket BuildPacket(uint sourceActorId, uint time, uint type)
- {
- byte[] data = new byte[0x18];
-
- using (MemoryStream mem = new MemoryStream(data))
- {
- using (BinaryWriter binWriter = new BinaryWriter(mem))
- {
- try
- {
- binWriter.Write((short)0x18);
- binWriter.Write((short)type);
- binWriter.Write((uint)0);
- binWriter.Write((uint)0);
- binWriter.Write((uint)0xFFFFFD7F);
-
- binWriter.Write((uint)sourceActorId);
- binWriter.Write((uint)time);
- }
- catch (Exception)
- {
- }
- }
- }
-
- return BasePacket.CreatePacket(data, false, false);
- }
- }
-}
diff --git a/FFXIVClassic World Server/FFXIVClassic World Server.csproj b/FFXIVClassic World Server/FFXIVClassic World Server.csproj
index 4710093f..2bf7f335 100644
--- a/FFXIVClassic World Server/FFXIVClassic World Server.csproj
+++ b/FFXIVClassic World Server/FFXIVClassic World Server.csproj
@@ -190,7 +190,7 @@
- xcopy "$(SolutionDir)data\world_config.ini" "$(SolutionDir)$(ProjectName)\$(OutDir)" /d
+