diff --git a/FFXIVClassic Common Class Lib/SubPacket.cs b/FFXIVClassic Common Class Lib/SubPacket.cs index 38394e29..585e5c6b 100644 --- a/FFXIVClassic Common Class Lib/SubPacket.cs +++ b/FFXIVClassic Common Class Lib/SubPacket.cs @@ -72,9 +72,9 @@ namespace FFXIVClassic.Common offset += header.subpacketSize; } - public SubPacket(ushort opcode, uint sourceId, uint targetId, byte[] data) : this(true, opcode, sourceId, targetId, data) { } + public SubPacket(ushort opcode, uint sourceId, byte[] data) : this(true, opcode, sourceId, data) { } - public SubPacket(bool isGameMessage, ushort opcode, uint sourceId, uint targetId, byte[] data) + public SubPacket(bool isGameMessage, ushort opcode, uint sourceId, byte[] data) { header = new SubPacketHeader(); @@ -89,7 +89,7 @@ namespace FFXIVClassic.Common } header.sourceId = sourceId; - header.targetId = targetId; + header.targetId = 0; if (isGameMessage) header.type = 0x03; @@ -117,6 +117,11 @@ namespace FFXIVClassic.Common data = original.data; } + public void SetTargetId(uint target) + { + this.header.targetId = target; + } + public byte[] GetHeaderBytes() { var size = Marshal.SizeOf(header); diff --git a/FFXIVClassic Lobby Server/PacketProcessor.cs b/FFXIVClassic Lobby Server/PacketProcessor.cs index 8ccbbf08..c4f27e85 100644 --- a/FFXIVClassic Lobby Server/PacketProcessor.cs +++ b/FFXIVClassic Lobby Server/PacketProcessor.cs @@ -90,14 +90,15 @@ namespace FFXIVClassic_Lobby_Server if (userId == 0) { - ErrorPacket errorPacket = new ErrorPacket(sessionPacket.sequence, 0, 0, 13001, "Your session has expired, please login again."); - SubPacket subpacket = errorPacket.BuildPacket(); - BasePacket errorBasePacket = BasePacket.CreatePacket(subpacket, true, false); - BasePacket.EncryptPacket(client.blowfish, errorBasePacket); - client.QueuePacket(errorBasePacket); + ErrorPacket errorPacket = new ErrorPacket(sessionPacket.sequence, 0, 0, 13001, "Your session has expired, please login again."); + SubPacket subpacket = errorPacket.BuildPacket(); + subpacket.SetTargetId(0xe0006868); + BasePacket errorBasePacket = BasePacket.CreatePacket(subpacket, true, false); + BasePacket.EncryptPacket(client.blowfish, errorBasePacket); + client.QueuePacket(errorBasePacket); - Program.Log.Info("Invalid session, kicking..."); - return; + Program.Log.Info("Invalid session, kicking..."); + return; } Program.Log.Info("USER ID: {0}", userId); diff --git a/FFXIVClassic Lobby Server/packets/send/AccountListPacket.cs b/FFXIVClassic Lobby Server/packets/send/AccountListPacket.cs index a6c69341..2ec17d81 100644 --- a/FFXIVClassic Lobby Server/packets/send/AccountListPacket.cs +++ b/FFXIVClassic Lobby Server/packets/send/AccountListPacket.cs @@ -61,7 +61,8 @@ namespace FFXIVClassic_Lobby_Server.packets byte[] data = memStream.GetBuffer(); binWriter.Dispose(); memStream.Dispose(); - SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, 0xe0006868, data); + SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, data); + subpacket.SetTargetId(0xe0006868); subPackets.Add(subpacket); accountCount = 0; } @@ -88,7 +89,8 @@ namespace FFXIVClassic_Lobby_Server.packets byte[] data = memStream.GetBuffer(); binWriter.Dispose(); memStream.Dispose(); - SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, 0xe0006868, data); + SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, data); + subpacket.SetTargetId(0xe0006868); subPackets.Add(subpacket); } diff --git a/FFXIVClassic Lobby Server/packets/send/CharaCreatorPacket.cs b/FFXIVClassic Lobby Server/packets/send/CharaCreatorPacket.cs index 5825c7be..31c9a882 100644 --- a/FFXIVClassic Lobby Server/packets/send/CharaCreatorPacket.cs +++ b/FFXIVClassic Lobby Server/packets/send/CharaCreatorPacket.cs @@ -59,7 +59,7 @@ namespace FFXIVClassic_Lobby_Server.packets binWriter.Dispose(); memStream.Dispose(); - return new SubPacket(OPCODE, 0xe0006868, 0xe0006868, data); + return new SubPacket(OPCODE, 0xe0006868, data); } } } diff --git a/FFXIVClassic Lobby Server/packets/send/CharacterListPacket.cs b/FFXIVClassic Lobby Server/packets/send/CharacterListPacket.cs index 42db777f..bceeac8c 100644 --- a/FFXIVClassic Lobby Server/packets/send/CharacterListPacket.cs +++ b/FFXIVClassic Lobby Server/packets/send/CharacterListPacket.cs @@ -87,7 +87,8 @@ namespace FFXIVClassic_Lobby_Server.packets byte[] data = memStream.GetBuffer(); binWriter.Dispose(); memStream.Dispose(); - SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, 0xe0006868, data); + SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, data); + subpacket.SetTargetId(0xe0006868); subPackets.Add(subpacket); characterCount = 0; } @@ -133,7 +134,8 @@ namespace FFXIVClassic_Lobby_Server.packets byte[] data = memStream.GetBuffer(); binWriter.Dispose(); memStream.Dispose(); - SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, 0xe0006868, data); + SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, data); + subpacket.SetTargetId(0xe0006868); subPackets.Add(subpacket); characterCount = 0; } @@ -145,7 +147,8 @@ namespace FFXIVClassic_Lobby_Server.packets byte[] data = memStream.GetBuffer(); binWriter.Dispose(); memStream.Dispose(); - SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, 0xe0006868, data); + SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, data); + subpacket.SetTargetId(0xe0006868); subPackets.Add(subpacket); } diff --git a/FFXIVClassic Lobby Server/packets/send/ErrorPacket.cs b/FFXIVClassic Lobby Server/packets/send/ErrorPacket.cs index 5578ee52..621732d3 100644 --- a/FFXIVClassic Lobby Server/packets/send/ErrorPacket.cs +++ b/FFXIVClassic Lobby Server/packets/send/ErrorPacket.cs @@ -38,7 +38,8 @@ namespace FFXIVClassic_Lobby_Server.packets byte[] data = memStream.GetBuffer(); binWriter.Dispose(); memStream.Dispose(); - SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, 0xe0006868, data); + SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, data); + subpacket.SetTargetId(0xe0006868); return subpacket; } } diff --git a/FFXIVClassic Lobby Server/packets/send/ImportListPacket.cs b/FFXIVClassic Lobby Server/packets/send/ImportListPacket.cs index ac389071..ffb3a9cd 100644 --- a/FFXIVClassic Lobby Server/packets/send/ImportListPacket.cs +++ b/FFXIVClassic Lobby Server/packets/send/ImportListPacket.cs @@ -64,7 +64,8 @@ namespace FFXIVClassic_Lobby_Server.packets byte[] data = memStream.GetBuffer(); binWriter.Dispose(); memStream.Dispose(); - SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, 0xe0006868, data); + SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, data); + subpacket.SetTargetId(0xe0006868); subPackets.Add(subpacket); namesCount = 0; } @@ -91,7 +92,8 @@ namespace FFXIVClassic_Lobby_Server.packets byte[] data = memStream.GetBuffer(); binWriter.Dispose(); memStream.Dispose(); - SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, 0xe0006868, data); + SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, data); + subpacket.SetTargetId(0xe0006868); subPackets.Add(subpacket); } diff --git a/FFXIVClassic Lobby Server/packets/send/RetainerListPacket.cs b/FFXIVClassic Lobby Server/packets/send/RetainerListPacket.cs index c9a6377d..fc7e6122 100644 --- a/FFXIVClassic Lobby Server/packets/send/RetainerListPacket.cs +++ b/FFXIVClassic Lobby Server/packets/send/RetainerListPacket.cs @@ -65,7 +65,8 @@ namespace FFXIVClassic_Lobby_Server.packets byte[] data = memStream.GetBuffer(); binWriter.Dispose(); memStream.Dispose(); - SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, 0xe0006868, data); + SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, data); + subpacket.SetTargetId(0xe0006868); subPackets.Add(subpacket); retainerCount = 0; } @@ -92,7 +93,8 @@ namespace FFXIVClassic_Lobby_Server.packets byte[] data = memStream.GetBuffer(); binWriter.Dispose(); memStream.Dispose(); - SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, 0xe0006868, data); + SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, data); + subpacket.SetTargetId(0xe0006868); subPackets.Add(subpacket); } diff --git a/FFXIVClassic Lobby Server/packets/send/SelectCharacterConfirmPacket.cs b/FFXIVClassic Lobby Server/packets/send/SelectCharacterConfirmPacket.cs index 6b57da3f..35686caa 100644 --- a/FFXIVClassic Lobby Server/packets/send/SelectCharacterConfirmPacket.cs +++ b/FFXIVClassic Lobby Server/packets/send/SelectCharacterConfirmPacket.cs @@ -49,7 +49,8 @@ namespace FFXIVClassic_Lobby_Server.packets data = memStream.GetBuffer(); } - SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, 0xe0006868, data); + SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, data); + subpacket.SetTargetId(0xe0006868); subPackets.Add(subpacket); return subPackets; diff --git a/FFXIVClassic Lobby Server/packets/send/WorldListPacket.cs b/FFXIVClassic Lobby Server/packets/send/WorldListPacket.cs index 0e939700..86e4712a 100644 --- a/FFXIVClassic Lobby Server/packets/send/WorldListPacket.cs +++ b/FFXIVClassic Lobby Server/packets/send/WorldListPacket.cs @@ -63,7 +63,8 @@ namespace FFXIVClassic_Lobby_Server.packets byte[] data = memStream.GetBuffer(); binWriter.Dispose(); memStream.Dispose(); - SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, 0xe0006868, data); + SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, data); + subpacket.SetTargetId(0xe0006868); subPackets.Add(subpacket); serverCount = 0; } @@ -90,7 +91,8 @@ namespace FFXIVClassic_Lobby_Server.packets byte[] data = memStream.GetBuffer(); binWriter.Dispose(); memStream.Dispose(); - SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, 0xe0006868, data); + SubPacket subpacket = new SubPacket(OPCODE, 0xe0006868, data); + subpacket.SetTargetId(0xe0006868); subPackets.Add(subpacket); } diff --git a/FFXIVClassic Map Server/CommandProcessor.cs b/FFXIVClassic Map Server/CommandProcessor.cs index bae38bb2..283c78c5 100644 --- a/FFXIVClassic Map Server/CommandProcessor.cs +++ b/FFXIVClassic Map Server/CommandProcessor.cs @@ -14,7 +14,7 @@ namespace FFXIVClassic_Map_Server { class CommandProcessor { - private static Dictionary gamedataItems = Server.GetGamedataItems(); + private static Dictionary gamedataItems = Server.GetGamedataItems(); const UInt32 ITEM_GIL = 1000001; @@ -27,7 +27,7 @@ namespace FFXIVClassic_Map_Server private void SendMessage(Session session, String message) { if (session != null) - session.GetActor().QueuePacket(SendMessagePacket.BuildPacket(session.id, session.id, SendMessagePacket.MESSAGE_TYPE_GENERAL_INFO, "", message)); + session.GetActor().QueuePacket(SendMessagePacket.BuildPacket(session.id, SendMessagePacket.MESSAGE_TYPE_GENERAL_INFO, "", message)); } internal bool DoCommand(string input, Session session) diff --git a/FFXIVClassic Map Server/Database.cs b/FFXIVClassic Map Server/Database.cs index 33091cb6..b23214f1 100644 --- a/FFXIVClassic Map Server/Database.cs +++ b/FFXIVClassic Map Server/Database.cs @@ -70,11 +70,11 @@ namespace FFXIVClassic_Map_Server } } - public static Dictionary GetItemGamedata() + public static Dictionary GetItemGamedata() { using (var conn = new MySqlConnection(String.Format("Server={0}; Port={1}; Database={2}; UID={3}; Password={4}", ConfigConstants.DATABASE_HOST, ConfigConstants.DATABASE_PORT, ConfigConstants.DATABASE_NAME, ConfigConstants.DATABASE_USERNAME, ConfigConstants.DATABASE_PASSWORD))) { - Dictionary gamedataItems = new Dictionary(); + Dictionary gamedataItems = new Dictionary(); try { @@ -98,16 +98,16 @@ namespace FFXIVClassic_Map_Server while (reader.Read()) { uint id = reader.GetUInt32("catalogID"); - Item item = null; + ItemData item = null; - if (Item.IsWeapon(id)) + if (ItemData.IsWeapon(id)) item = new WeaponItem(reader); - else if (Item.IsArmor(id)) + else if (ItemData.IsArmor(id)) item = new ArmorItem(reader); - else if (Item.IsAccessory(id)) + else if (ItemData.IsAccessory(id)) item = new AccessoryItem(reader); else - item = new Item(reader); + item = new ItemData(reader); gamedataItems.Add(item.catalogID, item); } @@ -126,6 +126,47 @@ namespace FFXIVClassic_Map_Server } } + public static Dictionary GetGuildleveGamedata() + { + using (var conn = new MySqlConnection(String.Format("Server={0}; Port={1}; Database={2}; UID={3}; Password={4}", ConfigConstants.DATABASE_HOST, ConfigConstants.DATABASE_PORT, ConfigConstants.DATABASE_NAME, ConfigConstants.DATABASE_USERNAME, ConfigConstants.DATABASE_PASSWORD))) + { + Dictionary gamedataGuildleves = new Dictionary(); + + try + { + conn.Open(); + + string query = @" + SELECT + * + FROM gamedata_guildleves + "; + + MySqlCommand cmd = new MySqlCommand(query, conn); + + using (MySqlDataReader reader = cmd.ExecuteReader()) + { + while (reader.Read()) + { + uint id = reader.GetUInt32("id"); + GuildleveData guildleve = new GuildleveData(reader); + gamedataGuildleves.Add(guildleve.id, guildleve); + } + } + } + catch (MySqlException e) + { + Program.Log.Error(e.ToString()); + } + finally + { + conn.Dispose(); + } + + return gamedataGuildleves; + } + } + public static void SavePlayerAppearance(Player player) { string query; @@ -391,6 +432,42 @@ namespace FFXIVClassic_Map_Server } } + public static void MarkGuildleve(Player player, uint glId, bool isAbandoned, bool isCompleted) + { + string query; + MySqlCommand cmd; + + using (MySqlConnection conn = new MySqlConnection(String.Format("Server={0}; Port={1}; Database={2}; UID={3}; Password={4}", ConfigConstants.DATABASE_HOST, ConfigConstants.DATABASE_PORT, ConfigConstants.DATABASE_NAME, ConfigConstants.DATABASE_USERNAME, ConfigConstants.DATABASE_PASSWORD))) + { + try + { + conn.Open(); + + query = @" + UPDATE characters_quest_guildleve_regional + SET abandoned = @abandoned, completed = @completed + WHERE characterId = @charaId and guildleveId = @guildleveId + "; + + cmd = new MySqlCommand(query, conn); + cmd.Parameters.AddWithValue("@charaId", player.actorId); + cmd.Parameters.AddWithValue("@guildleveId", glId); + cmd.Parameters.AddWithValue("@abandoned", isAbandoned); + cmd.Parameters.AddWithValue("@completed", isCompleted); + + cmd.ExecuteNonQuery(); + } + catch (MySqlException e) + { + Program.Log.Error(e.ToString()); + } + finally + { + conn.Dispose(); + } + } + } + public static void SaveGuildleve(Player player, uint glId, int slot) { string query; diff --git a/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj b/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj index 5d30b233..d63428e0 100644 --- a/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj +++ b/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj @@ -108,7 +108,10 @@ + + + @@ -125,6 +128,7 @@ + @@ -144,7 +148,7 @@ - + @@ -176,7 +180,6 @@ - @@ -219,8 +222,7 @@ - - + @@ -260,7 +262,6 @@ - @@ -359,8 +360,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 568c43c6..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; @@ -115,14 +115,12 @@ namespace FFXIVClassic_Map_Server } if (chatMessage.logType == SendMessagePacket.MESSAGE_TYPE_SAY || chatMessage.logType == SendMessagePacket.MESSAGE_TYPE_SHOUT) - session.GetActor().BroadcastPacket(SendMessagePacket.BuildPacket(session.id, session.id, chatMessage.logType, session.GetActor().customDisplayName, chatMessage.message), false); + session.GetActor().BroadcastPacket(SendMessagePacket.BuildPacket(session.id, chatMessage.logType, session.GetActor().customDisplayName, chatMessage.message), false); break; //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); @@ -150,7 +148,7 @@ namespace FFXIVClassic_Map_Server SetTargetPacket setTarget = new SetTargetPacket(subpacket.data); session.GetActor().currentTarget = setTarget.actorID; - session.GetActor().BroadcastPacket(SetActorTargetAnimatedPacket.BuildPacket(session.id, session.id, setTarget.actorID), true); + session.GetActor().BroadcastPacket(SetActorTargetAnimatedPacket.BuildPacket(session.id, setTarget.actorID), true); break; //Lock Target case 0x00CC: @@ -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/Program.cs b/FFXIVClassic Map Server/Program.cs index fe4d69be..16587922 100644 --- a/FFXIVClassic Map Server/Program.cs +++ b/FFXIVClassic Map Server/Program.cs @@ -22,7 +22,6 @@ namespace FFXIVClassic_Map_Server static void Main(string[] args) { - // set up logging Log = LogManager.GetCurrentClassLogger(); #if DEBUG diff --git a/FFXIVClassic Map Server/Server.cs b/FFXIVClassic Map Server/Server.cs index d39bcce0..f0f988aa 100644 --- a/FFXIVClassic Map Server/Server.cs +++ b/FFXIVClassic Map Server/Server.cs @@ -27,7 +27,8 @@ namespace FFXIVClassic_Map_Server private static CommandProcessor mCommandProcessor = new CommandProcessor(); private static ZoneConnection mWorldConnection = new ZoneConnection(); private static WorldManager mWorldManager; - private static Dictionary mGamedataItems; + private static Dictionary mGamedataItems; + private static Dictionary mGamedataGuildleves; private static StaticActors mStaticActors; private PacketProcessor mProcessor; @@ -43,6 +44,8 @@ namespace FFXIVClassic_Map_Server mGamedataItems = Database.GetItemGamedata(); Program.Log.Info("Loaded {0} items.", mGamedataItems.Count); + mGamedataGuildleves = Database.GetGuildleveGamedata(); + Program.Log.Info("Loaded {0} guildleves.", mGamedataGuildleves.Count); mWorldManager = new WorldManager(this); mWorldManager.LoadZoneList(); @@ -267,7 +270,7 @@ namespace FFXIVClassic_Map_Server return mWorldManager; } - public static Dictionary GetGamedataItems() + public static Dictionary GetGamedataItems() { return mGamedataItems; } @@ -282,7 +285,7 @@ namespace FFXIVClassic_Map_Server return mStaticActors.FindStaticActor(name); } - public static Item GetItemGamedata(uint id) + public static ItemData GetItemGamedata(uint id) { if (mGamedataItems.ContainsKey(id)) return mGamedataItems[id]; @@ -290,5 +293,13 @@ namespace FFXIVClassic_Map_Server return null; } + public static GuildleveData GetGuildleveGamedata(uint id) + { + if (mGamedataGuildleves.ContainsKey(id)) + return mGamedataGuildleves[id]; + else + return null; + } + } } \ No newline at end of file diff --git a/FFXIVClassic Map Server/WorldManager.cs b/FFXIVClassic Map Server/WorldManager.cs index 0077549a..76168d01 100644 --- a/FFXIVClassic Map Server/WorldManager.cs +++ b/FFXIVClassic Map Server/WorldManager.cs @@ -600,19 +600,24 @@ namespace FFXIVClassic_Map_Server player.positionZ = spawnZ; player.rotation = spawnRotation; + //Delete any GL directors + GuildleveDirector glDirector = player.GetGuildleveDirector(); + if (glDirector != null) + player.RemoveDirector(glDirector); + //Delete content if have if (player.currentContentGroup != null) { player.currentContentGroup.RemoveMember(player.actorId); - player.SetCurrentContentGroup(null, player); + player.SetCurrentContentGroup(null); if (oldZone is PrivateAreaContent) ((PrivateAreaContent)oldZone).CheckDestroy(); } //Send packets - player.playerSession.QueuePacket(DeleteAllActorsPacket.BuildPacket(player.actorId), true, false); - player.playerSession.QueuePacket(_0xE2Packet.BuildPacket(player.actorId, 0x10), true, false); + player.playerSession.QueuePacket(DeleteAllActorsPacket.BuildPacket(player.actorId)); + player.playerSession.QueuePacket(_0xE2Packet.BuildPacket(player.actorId, 0x2)); player.SendZoneInPackets(this, spawnType); player.playerSession.ClearInstance(); player.SendInstanceUpdate(); @@ -660,8 +665,8 @@ namespace FFXIVClassic_Map_Server player.rotation = spawnRotation; //Send packets - player.playerSession.QueuePacket(_0xE2Packet.BuildPacket(player.actorId, 0x10), true, false); - player.playerSession.QueuePacket(player.CreateSpawnTeleportPacket(player.actorId, spawnType), true, false); + player.playerSession.QueuePacket(_0xE2Packet.BuildPacket(player.actorId, 0x10)); + player.playerSession.QueuePacket(player.CreateSpawnTeleportPacket(spawnType)); player.playerSession.LockUpdates(false); player.SendInstanceUpdate(); @@ -704,8 +709,8 @@ namespace FFXIVClassic_Map_Server player.SendGameMessage(GetActor(), 34108, 0x20); //Send packets - player.playerSession.QueuePacket(DeleteAllActorsPacket.BuildPacket(player.actorId), true, false); - player.playerSession.QueuePacket(_0xE2Packet.BuildPacket(player.actorId, 0x10), true, false); + player.playerSession.QueuePacket(DeleteAllActorsPacket.BuildPacket(player.actorId)); + player.playerSession.QueuePacket(_0xE2Packet.BuildPacket(player.actorId, 0x10)); player.SendZoneInPackets(this, spawnType); player.playerSession.ClearInstance(); player.SendInstanceUpdate(); @@ -739,8 +744,8 @@ namespace FFXIVClassic_Map_Server //Send packets if (!isLogin) { - player.playerSession.QueuePacket(DeleteAllActorsPacket.BuildPacket(player.actorId), true, false); - player.playerSession.QueuePacket(_0xE2Packet.BuildPacket(player.actorId, 0x2), true, false); + player.playerSession.QueuePacket(DeleteAllActorsPacket.BuildPacket(player.actorId)); + player.playerSession.QueuePacket(_0xE2Packet.BuildPacket(player.actorId, 0x2)); //player.SendZoneInPackets(this, spawnType); } @@ -766,11 +771,6 @@ namespace FFXIVClassic_Map_Server } - public ContentGroup CreateContentGroup(Director director) - { - return CreateContentGroup(director, null); - } - public ContentGroup CreateContentGroup(Director director, params Actor[] actors) { if (director == null) @@ -799,6 +799,62 @@ namespace FFXIVClassic_Map_Server } } + public ContentGroup CreateContentGroup(Director director, List actors) + { + if (director == null) + return null; + + lock (groupLock) + { + uint[] initialMembers = null; + + if (actors != null) + { + initialMembers = new uint[actors.Count]; + for (int i = 0; i < actors.Count; i++) + initialMembers[i] = actors[i].actorId; + } + + groupIndexId = groupIndexId | 0x3000000000000000; + + ContentGroup contentGroup = new ContentGroup(groupIndexId, director, initialMembers); + mContentGroups.Add(groupIndexId, contentGroup); + groupIndexId++; + if (initialMembers != null && initialMembers.Length != 0) + contentGroup.SendAll(); + + return contentGroup; + } + } + + public ContentGroup CreateGLContentGroup(Director director, List actors) + { + if (director == null) + return null; + + lock (groupLock) + { + uint[] initialMembers = null; + + if (actors != null) + { + initialMembers = new uint[actors.Count]; + for (int i = 0; i < actors.Count; i++) + initialMembers[i] = actors[i].actorId; + } + + groupIndexId = groupIndexId | 0x2000000000000000; + + GLContentGroup contentGroup = new GLContentGroup(groupIndexId, director, initialMembers); + mContentGroups.Add(groupIndexId, contentGroup); + groupIndexId++; + if (initialMembers != null && initialMembers.Length != 0) + contentGroup.SendAll(); + + return contentGroup; + } + } + public void DeleteContentGroup(ulong groupId) { lock (groupLock) @@ -806,7 +862,6 @@ namespace FFXIVClassic_Map_Server if (mContentGroups.ContainsKey(groupId) && mContentGroups[groupId] is ContentGroup) { ContentGroup group = (ContentGroup)mContentGroups[groupId]; - group.SendDeletePackets(); mContentGroups.Remove(groupId); } } @@ -825,55 +880,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 0c863301..1f171348 100644 --- a/FFXIVClassic Map Server/actors/Actor.cs +++ b/FFXIVClassic Map Server/actors/Actor.cs @@ -9,6 +9,7 @@ using System.Collections.Generic; using FFXIVClassic_Map_Server.actors.area; using System.Reflection; using System.ComponentModel; +using FFXIVClassic_Map_Server.packets.send.actor.battle; namespace FFXIVClassic_Map_Server.Actors { @@ -94,56 +95,62 @@ namespace FFXIVClassic_Map_Server.Actors hasMoved = true; } - public SubPacket CreateAddActorPacket(uint playerActorId, byte val) - { - return AddActorPacket.BuildPacket(actorId, playerActorId, val); + public SubPacket CreateAddActorPacket(byte val) { + return AddActorPacket.BuildPacket(actorId, val); } - public SubPacket CreateNamePacket(uint playerActorId) + public SubPacket CreateNamePacket() { - return SetActorNamePacket.BuildPacket(actorId, playerActorId, displayNameId, displayNameId == 0xFFFFFFFF | displayNameId == 0x0 ? customDisplayName : ""); + return SetActorNamePacket.BuildPacket(actorId, displayNameId, displayNameId == 0xFFFFFFFF | displayNameId == 0x0 ? customDisplayName : ""); } - public SubPacket CreateSpeedPacket(uint playerActorId) + public SubPacket CreateSpeedPacket() { - return SetActorSpeedPacket.BuildPacket(actorId, playerActorId, moveSpeeds[0], moveSpeeds[1], moveSpeeds[2], moveSpeeds[3]); + return SetActorSpeedPacket.BuildPacket(actorId, moveSpeeds[0], moveSpeeds[1], moveSpeeds[2], moveSpeeds[3]); } - public SubPacket CreateSpawnPositonPacket(uint playerActorId, ushort spawnType) + public SubPacket CreateSpawnPositonPacket(ushort spawnType) { + return CreateSpawnPositonPacket(null, spawnType); + } + + public SubPacket CreateSpawnPositonPacket(Player player, ushort spawnType) + { + //TODO: FIX THIS IF + uint playerActorId = player == null ? 0 : player.actorId; //Get Rid SubPacket spawnPacket; if (!spawnedFirstTime && playerActorId == actorId) - spawnPacket = SetActorPositionPacket.BuildPacket(actorId, playerActorId, 0, positionX, positionY, positionZ, rotation, 0x1, false); + spawnPacket = SetActorPositionPacket.BuildPacket(actorId, 0, positionX, positionY, positionZ, rotation, 0x1, false); else if (playerActorId == actorId) - spawnPacket = SetActorPositionPacket.BuildPacket(actorId, playerActorId, 0xFFFFFFFF, positionX, positionY, positionZ, rotation, spawnType, true); + spawnPacket = SetActorPositionPacket.BuildPacket(actorId, 0xFFFFFFFF, positionX, positionY, positionZ, rotation, spawnType, true); else { if (this is Player) - spawnPacket = SetActorPositionPacket.BuildPacket(actorId, playerActorId, 0, positionX, positionY, positionZ, rotation, spawnType, false); + spawnPacket = SetActorPositionPacket.BuildPacket(actorId, 0, positionX, positionY, positionZ, rotation, spawnType, false); else - spawnPacket = SetActorPositionPacket.BuildPacket(actorId, playerActorId, actorId, positionX, positionY, positionZ, rotation, spawnType, false); + spawnPacket = SetActorPositionPacket.BuildPacket(actorId, actorId, positionX, positionY, positionZ, rotation, spawnType, false); } - //return SetActorPositionPacket.BuildPacket(actorId, playerActorId, -211.895477f, 190.000000f, 29.651011f, 2.674819f, SetActorPositionPacket.SPAWNTYPE_PLAYERWAKE); + //return SetActorPositionPacket.BuildPacket(actorId, -211.895477f, 190.000000f, 29.651011f, 2.674819f, SetActorPositionPacket.SPAWNTYPE_PLAYERWAKE); spawnedFirstTime = true; return spawnPacket; } - public SubPacket CreateSpawnTeleportPacket(uint playerActorId, ushort spawnType) + public SubPacket CreateSpawnTeleportPacket(ushort spawnType) { SubPacket spawnPacket; - spawnPacket = SetActorPositionPacket.BuildPacket(actorId, playerActorId, 0xFFFFFFFF, positionX, positionY, positionZ, rotation, spawnType, false); + spawnPacket = SetActorPositionPacket.BuildPacket(actorId, 0xFFFFFFFF, positionX, positionY, positionZ, rotation, spawnType, false); - //return SetActorPositionPacket.BuildPacket(actorId, playerActorId, -211.895477f, 190.000000f, 29.651011f, 2.674819f, SetActorPositionPacket.SPAWNTYPE_PLAYERWAKE); + //return SetActorPositionPacket.BuildPacket(actorId, -211.895477f, 190.000000f, 29.651011f, 2.674819f, SetActorPositionPacket.SPAWNTYPE_PLAYERWAKE); //spawnPacket.DebugPrintSubPacket(); return spawnPacket; } - public SubPacket CreatePositionUpdatePacket(uint playerActorId) + public SubPacket CreatePositionUpdatePacket() { int updateMs = 300; var diffTime = (DateTime.Now - lastMoveUpdate); @@ -171,17 +178,16 @@ namespace FFXIVClassic_Map_Server.Actors positionUpdates.RemoveAt(0); } lastMoveUpdate = DateTime.Now; - return MoveActorToPositionPacket.BuildPacket(actorId, playerActorId, positionX, positionY, positionZ, rotation, moveState); + return MoveActorToPositionPacket.BuildPacket(actorId, positionX, positionY, positionZ, rotation, moveState); } - return null; - } + return null; } - public SubPacket CreateStatePacket(uint playerActorID) + public SubPacket CreateStatePacket() { - return SetActorStatePacket.BuildPacket(actorId, playerActorID, currentMainState, currentSubState); + return SetActorStatePacket.BuildPacket(actorId, currentMainState, currentSubState); } - public List GetEventConditionPackets(uint playerActorId) + public List GetEventConditionPackets() { List subpackets = new List(); @@ -192,126 +198,147 @@ namespace FFXIVClassic_Map_Server.Actors if (eventConditions.talkEventConditions != null) { foreach (EventList.TalkEventCondition condition in eventConditions.talkEventConditions) - subpackets.Add(SetTalkEventCondition.BuildPacket(playerActorId, actorId, condition)); + subpackets.Add(SetTalkEventCondition.BuildPacket(actorId, condition)); } if (eventConditions.noticeEventConditions != null) { foreach (EventList.NoticeEventCondition condition in eventConditions.noticeEventConditions) - subpackets.Add(SetNoticeEventCondition.BuildPacket(playerActorId, actorId, condition)); + subpackets.Add(SetNoticeEventCondition.BuildPacket(actorId, condition)); } if (eventConditions.emoteEventConditions != null) { foreach (EventList.EmoteEventCondition condition in eventConditions.emoteEventConditions) - subpackets.Add(SetEmoteEventCondition.BuildPacket(playerActorId, actorId, condition)); + subpackets.Add(SetEmoteEventCondition.BuildPacket(actorId, condition)); } if (eventConditions.pushWithCircleEventConditions != null) { foreach (EventList.PushCircleEventCondition condition in eventConditions.pushWithCircleEventConditions) - subpackets.Add(SetPushEventConditionWithCircle.BuildPacket(playerActorId, actorId, condition)); + subpackets.Add(SetPushEventConditionWithCircle.BuildPacket(actorId, condition)); } if (eventConditions.pushWithFanEventConditions != null) { foreach (EventList.PushFanEventCondition condition in eventConditions.pushWithFanEventConditions) - subpackets.Add(SetPushEventConditionWithFan.BuildPacket(playerActorId, actorId, condition)); + subpackets.Add(SetPushEventConditionWithFan.BuildPacket(actorId, condition)); } if (eventConditions.pushWithBoxEventConditions != null) { foreach (EventList.PushBoxEventCondition condition in eventConditions.pushWithBoxEventConditions) - subpackets.Add(SetPushEventConditionWithTriggerBox.BuildPacket(playerActorId, actorId, condition)); + subpackets.Add(SetPushEventConditionWithTriggerBox.BuildPacket(actorId, condition)); } return subpackets; } - public BasePacket GetSetEventStatusPackets(uint playerActorId) + 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) { foreach (EventList.TalkEventCondition condition in eventConditions.talkEventConditions) - subpackets.Add(SetEventStatus.BuildPacket(playerActorId, actorId, true, 1, condition.conditionName)); + subpackets.Add(SetEventStatus.BuildPacket(actorId, true, 1, condition.conditionName)); } if (eventConditions.noticeEventConditions != null) { foreach (EventList.NoticeEventCondition condition in eventConditions.noticeEventConditions) - subpackets.Add(SetEventStatus.BuildPacket(playerActorId, actorId, true, 1, condition.conditionName)); + subpackets.Add(SetEventStatus.BuildPacket(actorId, true, 1, condition.conditionName)); } if (eventConditions.emoteEventConditions != null) { foreach (EventList.EmoteEventCondition condition in eventConditions.emoteEventConditions) - subpackets.Add(SetEventStatus.BuildPacket(playerActorId, actorId, true, 3, condition.conditionName)); + subpackets.Add(SetEventStatus.BuildPacket(actorId, true, 3, condition.conditionName)); } if (eventConditions.pushWithCircleEventConditions != null) { foreach (EventList.PushCircleEventCondition condition in eventConditions.pushWithCircleEventConditions) - subpackets.Add(SetEventStatus.BuildPacket(playerActorId, actorId, true, 2, condition.conditionName)); + subpackets.Add(SetEventStatus.BuildPacket(actorId, true, 2, condition.conditionName)); } if (eventConditions.pushWithFanEventConditions != null) { foreach (EventList.PushFanEventCondition condition in eventConditions.pushWithFanEventConditions) - subpackets.Add(SetEventStatus.BuildPacket(playerActorId, actorId, true, 2, condition.conditionName)); + subpackets.Add(SetEventStatus.BuildPacket(actorId, true, 2, condition.conditionName)); } if (eventConditions.pushWithBoxEventConditions != null) { foreach (EventList.PushBoxEventCondition condition in eventConditions.pushWithBoxEventConditions) - subpackets.Add(SetEventStatus.BuildPacket(playerActorId, actorId, true, 2, condition.conditionName)); + subpackets.Add(SetEventStatus.BuildPacket(actorId, true, 2, condition.conditionName)); } - return BasePacket.CreatePacket(subpackets, true, false); + return subpackets; } - public SubPacket CreateIsZoneingPacket(uint playerActorId) + public SubPacket CreateIsZoneingPacket() { - return SetActorIsZoningPacket.BuildPacket(actorId, playerActorId, false); + return SetActorIsZoningPacket.BuildPacket(actorId, false); } - public virtual SubPacket CreateScriptBindPacket(uint playerActorId) + public virtual SubPacket CreateScriptBindPacket(Player player) { - return ActorInstantiatePacket.BuildPacket(actorId, playerActorId, actorName, className, classParams); + return ActorInstantiatePacket.BuildPacket(actorId, actorName, className, classParams); } - public virtual BasePacket GetSpawnPackets(uint playerActorId) + public virtual SubPacket CreateScriptBindPacket() { - return GetSpawnPackets(playerActorId, 0x1); + return ActorInstantiatePacket.BuildPacket(actorId, actorName, className, classParams); } - public virtual BasePacket GetSpawnPackets(uint playerActorId, ushort spawnType) + public virtual List GetSpawnPackets(Player player, ushort spawnType) { List subpackets = new List(); - subpackets.Add(CreateAddActorPacket(playerActorId, 8)); - subpackets.AddRange(GetEventConditionPackets(playerActorId)); - subpackets.Add(CreateSpeedPacket(playerActorId)); - subpackets.Add(CreateSpawnPositonPacket(playerActorId, spawnType)); - subpackets.Add(CreateNamePacket(playerActorId)); - subpackets.Add(CreateStatePacket(playerActorId)); - subpackets.Add(CreateIsZoneingPacket(playerActorId)); - subpackets.Add(CreateScriptBindPacket(playerActorId)); - return BasePacket.CreatePacket(subpackets, true, false); + subpackets.Add(CreateAddActorPacket(8)); + subpackets.AddRange(GetEventConditionPackets()); + subpackets.Add(CreateSpeedPacket()); + subpackets.Add(CreateSpawnPositonPacket(player, spawnType)); + subpackets.Add(CreateNamePacket()); + subpackets.Add(CreateStatePacket()); + subpackets.Add(CreateIsZoneingPacket()); + subpackets.Add(CreateScriptBindPacket(player)); + return subpackets; } - public virtual BasePacket GetInitPackets(uint playerActorId) + public virtual List GetSpawnPackets() { + return GetSpawnPackets(0x1); + } + + public virtual List GetSpawnPackets(ushort spawnType) + { + List subpackets = new List(); + subpackets.Add(CreateAddActorPacket(8)); + subpackets.AddRange(GetEventConditionPackets()); + subpackets.Add(CreateSpeedPacket()); + subpackets.Add(CreateSpawnPositonPacket(null, spawnType)); + subpackets.Add(CreateNamePacket()); + subpackets.Add(CreateStatePacket()); + subpackets.Add(CreateIsZoneingPacket()); + subpackets.Add(CreateScriptBindPacket()); + return subpackets; + } + + 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(playerActorId, actorId), true, false); + packets.Add(initProperties.BuildPacket(actorId)); + return packets; } public override bool Equals(Object obj) @@ -346,8 +373,8 @@ namespace FFXIVClassic_Map_Server.Actors public void ChangeState(ushort newState) { currentMainState = newState; - SubPacket ChangeStatePacket = SetActorStatePacket.BuildPacket(actorId, actorId, newState, currentSubState); - SubPacket battleActionPacket = BattleAction1Packet.BuildPacket(actorId, actorId); + SubPacket ChangeStatePacket = SetActorStatePacket.BuildPacket(actorId, newState, currentSubState); + SubPacket battleActionPacket = BattleActionX01Packet.BuildPacket(actorId, actorId, actorId, 0x72000062, 1, 0, 0x05209, 0, 0); zone.BroadcastPacketAroundActor(this, ChangeStatePacket); zone.BroadcastPacketAroundActor(this, battleActionPacket); } @@ -355,7 +382,7 @@ namespace FFXIVClassic_Map_Server.Actors public void ChangeSpeed(int type, float value) { moveSpeeds[type] = value; - SubPacket ChangeSpeedPacket = SetActorSpeedPacket.BuildPacket(actorId, actorId, moveSpeeds[0], moveSpeeds[1], moveSpeeds[2], moveSpeeds[3]); + SubPacket ChangeSpeedPacket = SetActorSpeedPacket.BuildPacket(actorId, moveSpeeds[0], moveSpeeds[1], moveSpeeds[2], moveSpeeds[3]); zone.BroadcastPacketAroundActor(this, ChangeSpeedPacket); } @@ -365,7 +392,7 @@ namespace FFXIVClassic_Map_Server.Actors moveSpeeds[1] = speedWalk; moveSpeeds[2] = speedRun; moveSpeeds[3] = speedActive; - SubPacket ChangeSpeedPacket = SetActorSpeedPacket.BuildPacket(actorId, actorId, moveSpeeds[0], moveSpeeds[1], moveSpeeds[2], moveSpeeds[3]); + SubPacket ChangeSpeedPacket = SetActorSpeedPacket.BuildPacket(actorId, moveSpeeds[0], moveSpeeds[1], moveSpeeds[2], moveSpeeds[3]); zone.BroadcastPacketAroundActor(this, ChangeSpeedPacket); } @@ -475,8 +502,8 @@ namespace FFXIVClassic_Map_Server.Actors SetActorPropetyPacket changeProperty = new SetActorPropetyPacket(uiFunc); changeProperty.AddProperty(this, name); changeProperty.AddTarget(); - SubPacket subpacket = changeProperty.BuildPacket(player.actorId, player.actorId); - player.playerSession.QueuePacket(subpacket, true, false); + SubPacket subpacket = changeProperty.BuildPacket(player.actorId); + player.playerSession.QueuePacket(subpacket); subpacket.DebugPrintSubPacket(); return true; } @@ -493,8 +520,8 @@ namespace FFXIVClassic_Map_Server.Actors SetActorPropetyPacket changeProperty = new SetActorPropetyPacket(uiFunc); changeProperty.AddProperty(this, name); changeProperty.AddTarget(); - SubPacket subpacket = changeProperty.BuildPacket(player.actorId, player.actorId); - player.playerSession.QueuePacket(subpacket, true, false); + SubPacket subpacket = changeProperty.BuildPacket(player.actorId); + player.playerSession.QueuePacket(subpacket); subpacket.DebugPrintSubPacket(); return true; } @@ -529,7 +556,7 @@ namespace FFXIVClassic_Map_Server.Actors rotation = rot; // todo: handle zone? - zone.BroadcastPacketAroundActor(this, MoveActorToPositionPacket.BuildPacket(this.actorId, this.actorId, x, y, z, rot, moveState)); + zone.BroadcastPacketAroundActor(this, MoveActorToPositionPacket.BuildPacket(actorId, x, y, z, rot, moveState)); } public Area GetZone() diff --git a/FFXIVClassic Map Server/actors/area/Area.cs b/FFXIVClassic Map Server/actors/area/Area.cs index 1557486c..b990df67 100644 --- a/FFXIVClassic Map Server/actors/area/Area.cs +++ b/FFXIVClassic Map Server/actors/area/Area.cs @@ -84,24 +84,24 @@ namespace FFXIVClassic_Map_Server.Actors } } - public override SubPacket CreateScriptBindPacket(uint playerActorId) + public override SubPacket CreateScriptBindPacket() { List lParams; lParams = LuaUtils.CreateLuaParamList(classPath, false, true, zoneName, "/Area/Zone/ZoneDefault", -1, (byte)1, true, false, false, false, false, false, false, false); - return ActorInstantiatePacket.BuildPacket(actorId, playerActorId, actorName, "ZoneDefault", lParams); + return ActorInstantiatePacket.BuildPacket(actorId, actorName, "ZoneDefault", lParams); } - public override BasePacket GetSpawnPackets(uint playerActorId) + public override List GetSpawnPackets() { List subpackets = new List(); - subpackets.Add(CreateAddActorPacket(playerActorId, 0)); - subpackets.Add(CreateSpeedPacket(playerActorId)); - subpackets.Add(CreateSpawnPositonPacket(playerActorId, 0x1)); - subpackets.Add(CreateNamePacket(playerActorId)); - subpackets.Add(CreateStatePacket(playerActorId)); - subpackets.Add(CreateIsZoneingPacket(playerActorId)); - subpackets.Add(CreateScriptBindPacket(playerActorId)); - return BasePacket.CreatePacket(subpackets, true, false); + subpackets.Add(CreateAddActorPacket(0)); + subpackets.Add(CreateSpeedPacket()); + subpackets.Add(CreateSpawnPositonPacket(0x1)); + subpackets.Add(CreateNamePacket()); + subpackets.Add(CreateStatePacket()); + subpackets.Add(CreateIsZoneingPacket()); + subpackets.Add(CreateScriptBindPacket()); + return subpackets; } #region Actor Management @@ -368,6 +368,12 @@ namespace FFXIVClassic_Map_Server.Actors } } + public void BroadcastPacketsAroundActor(Actor actor, List packets) + { + foreach (SubPacket packet in packets) + BroadcastPacketAroundActor(actor, packet); + } + public void BroadcastPacketAroundActor(Actor actor, SubPacket packet) { if (isIsolated) @@ -466,6 +472,11 @@ namespace FFXIVClassic_Map_Server.Actors RemoveActorFromZone(FindActorInZoneByUniqueID(uniqueId)); } + public void DespawnActor(Actor actor) + { + RemoveActorFromZone(actor); + } + public Director GetWeatherDirector() { return mWeatherDirector; @@ -477,7 +488,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) { @@ -488,23 +499,67 @@ 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)); } } } } } - public Director CreateDirector(string path) + public Director CreateDirector(string path, params object[] args) { lock (directorLock) { - Director director = new Director(directorIdCount, this, path); + Director director = new Director(directorIdCount, this, path, args); + currentDirectors.Add(director.actorId, director); + directorIdCount++; + return director; + } + } - if (!director.IsCreated()) - return null; + public Director CreateGuildleveDirector(uint glid, byte difficulty, Player owner, params object[] args) + { + String directorScriptPath = ""; - currentDirectors.Add(directorIdCount, director); + uint type = Server.GetGuildleveGamedata(glid).plateId; + + if (glid == 10801 || glid == 12401 || glid == 11601) + directorScriptPath = "Guildleve/PrivateGLBattleTutorial"; + else + { + switch (type) + { + case 20021: + directorScriptPath = "Guildleve/PrivateGLBattleSweepNormal"; + break; + case 20022: + directorScriptPath = "Guildleve/PrivateGLBattleChaseNormal"; + break; + case 20023: + directorScriptPath = "Guildleve/PrivateGLBattleOrbNormal"; + break; + case 20024: + directorScriptPath = "Guildleve/PrivateGLBattleHuntNormal"; + break; + case 20025: + directorScriptPath = "Guildleve/PrivateGLBattleGatherNormal"; + break; + case 20026: + directorScriptPath = "Guildleve/PrivateGLBattleRoundNormal"; + break; + case 20027: + directorScriptPath = "Guildleve/PrivateGLBattleSurviveNormal"; + break; + case 20028: + directorScriptPath = "Guildleve/PrivateGLBattleDetectNormal"; + break; + } + } + + lock (directorLock) + { + GuildleveDirector director = new GuildleveDirector(directorIdCount, this, directorScriptPath, glid, difficulty, owner, args); + currentDirectors.Add(director.actorId, director); directorIdCount++; return director; } @@ -516,7 +571,8 @@ namespace FFXIVClassic_Map_Server.Actors { if (currentDirectors.ContainsKey(id)) { - currentDirectors[id].RemoveChildren(); + if (!currentDirectors[id].IsDeleted()) + currentDirectors[id].EndDirector(); currentDirectors.Remove(id); } } diff --git a/FFXIVClassic Map Server/actors/area/PrivateArea.cs b/FFXIVClassic Map Server/actors/area/PrivateArea.cs index d5f653bc..1fe98393 100644 --- a/FFXIVClassic Map Server/actors/area/PrivateArea.cs +++ b/FFXIVClassic Map Server/actors/area/PrivateArea.cs @@ -41,7 +41,7 @@ namespace FFXIVClassic_Map_Server.actors.area return parentZone; } - public override SubPacket CreateScriptBindPacket(uint playerActorId) + public override SubPacket CreateScriptBindPacket() { List lParams; @@ -50,8 +50,8 @@ namespace FFXIVClassic_Map_Server.actors.area string realClassName = className.Substring(className.LastIndexOf("/") + 1); lParams = LuaUtils.CreateLuaParamList(classPath, false, true, zoneName, privateAreaName, privateAreaType, canRideChocobo ? (byte)1 : (byte)0, canStealth, isInn, false, false, false, false, false, false); - ActorInstantiatePacket.BuildPacket(actorId, playerActorId, actorName, realClassName, lParams).DebugPrintSubPacket(); - return ActorInstantiatePacket.BuildPacket(actorId, playerActorId, actorName, realClassName, lParams); + ActorInstantiatePacket.BuildPacket(actorId, actorName, realClassName, lParams).DebugPrintSubPacket(); + return ActorInstantiatePacket.BuildPacket(actorId, actorName, realClassName, lParams); } diff --git a/FFXIVClassic Map Server/actors/area/Zone.cs b/FFXIVClassic Map Server/actors/area/Zone.cs index 78883593..293323cc 100644 --- a/FFXIVClassic Map Server/actors/area/Zone.cs +++ b/FFXIVClassic Map Server/actors/area/Zone.cs @@ -75,13 +75,13 @@ namespace FFXIVClassic_Map_Server.actors.area return null; } - public override SubPacket CreateScriptBindPacket(uint playerActorId) + public override SubPacket CreateScriptBindPacket() { bool isEntranceDesion = false; List lParams; lParams = LuaUtils.CreateLuaParamList(classPath, false, true, zoneName, "", -1, canRideChocobo ? (byte)1 : (byte)0, canStealth, isInn, false, false, false, true, isInstanceRaid, isEntranceDesion); - return ActorInstantiatePacket.BuildPacket(actorId, playerActorId, actorName, className, lParams); + return ActorInstantiatePacket.BuildPacket(actorId, actorName, className, lParams); } public void AddSpawnLocation(SpawnLocation spawn) diff --git a/FFXIVClassic Map Server/actors/chara/Character.cs b/FFXIVClassic Map Server/actors/chara/Character.cs index 6e9576c5..f20bed1f 100644 --- a/FFXIVClassic Map Server/actors/chara/Character.cs +++ b/FFXIVClassic Map Server/actors/chara/Character.cs @@ -75,33 +75,33 @@ namespace FFXIVClassic_Map_Server.Actors this.statusEffects = new StatusEffects(this); } - public SubPacket CreateAppearancePacket(uint playerActorId) + public SubPacket CreateAppearancePacket() { SetActorAppearancePacket setappearance = new SetActorAppearancePacket(modelId, appearanceIds); - return setappearance.BuildPacket(actorId, playerActorId); + return setappearance.BuildPacket(actorId); } - public SubPacket CreateInitStatusPacket(uint playerActorId) + public SubPacket CreateInitStatusPacket() { - return (SetActorStatusAllPacket.BuildPacket(actorId, playerActorId, charaWork.status)); + return (SetActorStatusAllPacket.BuildPacket(actorId, charaWork.status)); } - public SubPacket CreateSetActorIconPacket(uint playerActorId) + public SubPacket CreateSetActorIconPacket() { - return SetActorIconPacket.BuildPacket(actorId, playerActorId, currentActorIcon); + return SetActorIconPacket.BuildPacket(actorId, currentActorIcon); } - public SubPacket CreateIdleAnimationPacket(uint playerActorId) + public SubPacket CreateIdleAnimationPacket() { - return SetActorSubStatPacket.BuildPacket(actorId, playerActorId, 0, 0, 0, 0, 0, 0, animationId); + return SetActorSubStatPacket.BuildPacket(actorId, 0, 0, 0, 0, 0, 0, animationId); } public void SetQuestGraphic(Player player, int graphicNum) { - player.QueuePacket(SetActorQuestGraphicPacket.BuildPacket(player.actorId, actorId, graphicNum)); + player.QueuePacket(SetActorQuestGraphicPacket.BuildPacket(actorId, graphicNum)); } - public void SetCurrentContentGroup(ContentGroup group, Player player = null) + public void SetCurrentContentGroup(ContentGroup group) { if (group != null) charaWork.currentContentGroup = group.GetTypeId(); @@ -110,17 +110,21 @@ namespace FFXIVClassic_Map_Server.Actors currentContentGroup = group; - if (player != null) - { - ActorPropertyPacketUtil propPacketUtil = new ActorPropertyPacketUtil("charaWork/currentContentGroup", this, actorId); - propPacketUtil.AddProperty("charaWork.currentContentGroup"); - player.QueuePackets(propPacketUtil.Done()); - } + ActorPropertyPacketUtil propPacketUtil = new ActorPropertyPacketUtil("charaWork/currentContentGroup", this); + propPacketUtil.AddProperty("charaWork.currentContentGroup"); + zone.BroadcastPacketsAroundActor(this, propPacketUtil.Done()); + } - public void PlayAnimation(uint animId) + public void PlayAnimation(uint animId, bool onlySelf = false) { - zone.BroadcastPacketAroundActor(this, PlayAnimationOnActorPacket.BuildPacket(actorId, actorId, animId)); + if (onlySelf) + { + if (this is Player) + ((Player)this).QueuePacket(PlayAnimationOnActorPacket.BuildPacket(actorId, animId)); + } + else + zone.BroadcastPacketAroundActor(this, PlayAnimationOnActorPacket.BuildPacket(actorId, animId)); } public void PathTo(float x, float y, float z, float stepSize = 0.70f, int maxPath = 40, float polyRadius = 0.0f) diff --git a/FFXIVClassic Map Server/actors/chara/npc/Npc.cs b/FFXIVClassic Map Server/actors/chara/npc/Npc.cs index 845e5035..29583814 100644 --- a/FFXIVClassic Map Server/actors/chara/npc/Npc.cs +++ b/FFXIVClassic Map Server/actors/chara/npc/Npc.cs @@ -127,27 +127,18 @@ namespace FFXIVClassic_Map_Server.Actors GenerateActorName((int)actorNumber); } - public SubPacket CreateAddActorPacket(uint playerActorId) + public SubPacket CreateAddActorPacket() { - return AddActorPacket.BuildPacket(actorId, playerActorId, 8); + return AddActorPacket.BuildPacket(actorId, 8); } - int val = 0x0b00; // actorClassId, [], [], numBattleCommon, [battleCommon], numEventCommon, [eventCommon], args for either initForBattle/initForEvent - public override SubPacket CreateScriptBindPacket(uint playerActorId) + public override SubPacket CreateScriptBindPacket(Player player) { List lParams; - - Player player = Server.GetWorldManager().GetPCInWorld(playerActorId); + lParams = LuaEngine.GetInstance().CallLuaFunctionForReturn(player, this, "init", false); - if (uniqueIdentifier.Equals("1")) - { - lParams[5].value = val; - val++; - player.SendMessage(0x20, "", String.Format("ID is now: 0x{0:X}", val)); - } - if (lParams != null && lParams.Count >= 3 && lParams[2].typeID == 0 && (int)lParams[2].value == 0) isStatic = true; else @@ -162,8 +153,8 @@ namespace FFXIVClassic_Map_Server.Actors string classNameFake = "PopulaceStandard"; lParams = LuaUtils.CreateLuaParamList(classPathFake, false, false, false, false, false, 0xF47F6, false, false, 0, 0); isStatic = true; - //ActorInstantiatePacket.BuildPacket(actorId, playerActorId, actorName, classNameFake, lParams).DebugPrintSubPacket(); - return ActorInstantiatePacket.BuildPacket(actorId, playerActorId, actorName, classNameFake, lParams); + //ActorInstantiatePacket.BuildPacket(actorId, actorName, classNameFake, lParams).DebugPrintSubPacket(); + return ActorInstantiatePacket.BuildPacket(actorId, actorName, classNameFake, lParams); } else { @@ -176,37 +167,37 @@ namespace FFXIVClassic_Map_Server.Actors lParams.Insert(6, new LuaParam(0, (int)actorClassId)); } - //ActorInstantiatePacket.BuildPacket(actorId, playerActorId, actorName, className, lParams).DebugPrintSubPacket(); - return ActorInstantiatePacket.BuildPacket(actorId, playerActorId, actorName, className, lParams); + //ActorInstantiatePacket.BuildPacket(actorId, actorName, className, lParams).DebugPrintSubPacket(); + return ActorInstantiatePacket.BuildPacket(actorId, actorName, className, lParams); } - - public override BasePacket GetSpawnPackets(uint playerActorId, ushort spawnType) + + public override List GetSpawnPackets(Player player, ushort spawnType) { List subpackets = new List(); - subpackets.Add(CreateAddActorPacket(playerActorId)); - subpackets.AddRange(GetEventConditionPackets(playerActorId)); - subpackets.Add(CreateSpeedPacket(playerActorId)); - subpackets.Add(CreateSpawnPositonPacket(playerActorId, 0x0)); + subpackets.Add(CreateAddActorPacket()); + subpackets.AddRange(GetEventConditionPackets()); + subpackets.Add(CreateSpeedPacket()); + subpackets.Add(CreateSpawnPositonPacket(0x0)); if (isMapObj) - subpackets.Add(_0xD8Packet.BuildPacket(actorId, playerActorId, instance, layout)); + subpackets.Add(SetActorBGPropertiesPacket.BuildPacket(actorId, instance, layout)); else - subpackets.Add(CreateAppearancePacket(playerActorId)); + subpackets.Add(CreateAppearancePacket()); - subpackets.Add(CreateNamePacket(playerActorId)); - subpackets.Add(CreateStatePacket(playerActorId)); - subpackets.Add(CreateIdleAnimationPacket(playerActorId)); - subpackets.Add(CreateInitStatusPacket(playerActorId)); - subpackets.Add(CreateSetActorIconPacket(playerActorId)); - subpackets.Add(CreateIsZoneingPacket(playerActorId)); - subpackets.Add(CreateScriptBindPacket(playerActorId)); + subpackets.Add(CreateNamePacket()); + subpackets.Add(CreateStatePacket()); + subpackets.Add(CreateIdleAnimationPacket()); + subpackets.Add(CreateInitStatusPacket()); + subpackets.Add(CreateSetActorIconPacket()); + subpackets.Add(CreateIsZoneingPacket()); + subpackets.Add(CreateScriptBindPacket(player)); - return BasePacket.CreatePacket(subpackets, true, false); + return subpackets; } - public override BasePacket GetInitPackets(uint playerActorId) + public override List GetInitPackets() { - ActorPropertyPacketUtil propPacketUtil = new ActorPropertyPacketUtil("/_init", this, playerActorId); + ActorPropertyPacketUtil propPacketUtil = new ActorPropertyPacketUtil("/_init", this); //Potential propPacketUtil.AddProperty("charaWork.battleSave.potencial"); @@ -260,7 +251,7 @@ namespace FFXIVClassic_Map_Server.Actors propPacketUtil.AddProperty("npcWork.pushCommandPriority"); } - return BasePacket.CreatePacket(propPacketUtil.Done(), true, false); + return propPacketUtil.Done(); } public string GetUniqueId() @@ -276,7 +267,7 @@ namespace FFXIVClassic_Map_Server.Actors public void ChangeNpcAppearance(uint id) { LoadNpcAppearance(id); - zone.BroadcastPacketAroundActor(this, CreateAppearancePacket(actorId)); + zone.BroadcastPacketAroundActor(this, CreateAppearancePacket()); } public void LoadNpcAppearance(uint id) @@ -394,7 +385,12 @@ namespace FFXIVClassic_Map_Server.Actors public void PlayMapObjAnimation(Player player, string animationName) { - player.QueuePacket(PlayBGAnimation.BuildPacket(actorId, player.actorId, animationName)); + player.QueuePacket(PlayBGAnimation.BuildPacket(actorId, animationName)); + } + + public void Despawn() + { + zone.DespawnActor(this); } public void Update(DateTime tick) diff --git a/FFXIVClassic Map Server/actors/chara/player/Equipment.cs b/FFXIVClassic Map Server/actors/chara/player/Equipment.cs index 3092ba39..702af284 100644 --- a/FFXIVClassic Map Server/actors/chara/player/Equipment.cs +++ b/FFXIVClassic Map Server/actors/chara/player/Equipment.cs @@ -63,24 +63,24 @@ namespace FFXIVClassic_Map_Server.actors.chara.player } } - toPlayer.QueuePacket(InventorySetBeginPacket.BuildPacket(owner.actorId, toPlayer.actorId, 0x23, Inventory.EQUIPMENT_OTHERPLAYER)); + toPlayer.QueuePacket(InventorySetBeginPacket.BuildPacket(owner.actorId, 0x23, Inventory.EQUIPMENT_OTHERPLAYER)); int currentIndex = 0; while (true) { if (items.Count - currentIndex >= 16) - toPlayer.QueuePacket(InventoryListX16Packet.BuildPacket(owner.actorId, toPlayer.actorId, items, ref currentIndex)); + toPlayer.QueuePacket(InventoryListX16Packet.BuildPacket(owner.actorId, items, ref currentIndex)); else if (items.Count - currentIndex > 1) - toPlayer.QueuePacket(InventoryListX08Packet.BuildPacket(owner.actorId, toPlayer.actorId, items, ref currentIndex)); + toPlayer.QueuePacket(InventoryListX08Packet.BuildPacket(owner.actorId, items, ref currentIndex)); else if (items.Count - currentIndex == 1) { - toPlayer.QueuePacket(InventoryListX01Packet.BuildPacket(owner.actorId, toPlayer.actorId, items[currentIndex])); + toPlayer.QueuePacket(InventoryListX01Packet.BuildPacket(owner.actorId, items[currentIndex])); currentIndex++; } else break; } - toPlayer.QueuePacket(InventorySetEndPacket.BuildPacket(owner.actorId, toPlayer.actorId)); + toPlayer.QueuePacket(InventorySetEndPacket.BuildPacket(owner.actorId)); } public void SendFullEquipment(bool DoClear) diff --git a/FFXIVClassic Map Server/actors/chara/player/Inventory.cs b/FFXIVClassic Map Server/actors/chara/player/Inventory.cs index 4b2d786b..2066ad72 100644 --- a/FFXIVClassic Map Server/actors/chara/player/Inventory.cs +++ b/FFXIVClassic Map Server/actors/chara/player/Inventory.cs @@ -92,7 +92,7 @@ namespace FFXIVClassic_Map_Server.actors.chara.player if (!IsSpaceForAdd(itemId, quantity)) return false; - Item gItem = Server.GetItemGamedata(itemId); + ItemData gItem = Server.GetItemGamedata(itemId); List slotsToUpdate = new List(); List addItemPackets = new List(); @@ -175,7 +175,7 @@ namespace FFXIVClassic_Map_Server.actors.chara.player //New item that spilled over for (int i = 0; i < itemId.Length; i++) { - Item gItem = Server.GetItemGamedata(itemId[i]); + ItemData gItem = Server.GetItemGamedata(itemId[i]); InventoryItem addedItem = Database.AddItem(owner, itemId[i], 1, (byte)1, gItem.isExclusive ? (byte)0x3 : (byte)0x0, gItem.durability, inventoryCode); list.Add(addedItem); } @@ -457,7 +457,7 @@ namespace FFXIVClassic_Map_Server.actors.chara.player for (int i = 0; i < list.Count; i++) { InventoryItem item = list[i]; - Item gItem = Server.GetItemGamedata(item.itemId); + ItemData gItem = Server.GetItemGamedata(item.itemId); if (item.itemId == itemId && item.quantity < gItem.maxStack) { quantityCount -= (gItem.maxStack - item.quantity); diff --git a/FFXIVClassic Map Server/actors/chara/player/Player.cs b/FFXIVClassic Map Server/actors/chara/player/Player.cs index b5460784..0059d68e 100644 --- a/FFXIVClassic Map Server/actors/chara/player/Player.cs +++ b/FFXIVClassic Map Server/actors/chara/player/Player.cs @@ -253,17 +253,17 @@ namespace FFXIVClassic_Map_Server.Actors this.aiContainer = new AIContainer(this, new PlayerController(this), null, new TargetFind(this)); } - public List Create0x132Packets(uint playerActorId) + public List Create0x132Packets() { List packets = new List(); - packets.Add(_0x132Packet.BuildPacket(playerActorId, 0xB, "commandForced")); - packets.Add(_0x132Packet.BuildPacket(playerActorId, 0xA, "commandDefault")); - packets.Add(_0x132Packet.BuildPacket(playerActorId, 0x6, "commandWeak")); - packets.Add(_0x132Packet.BuildPacket(playerActorId, 0x4, "commandContent")); - packets.Add(_0x132Packet.BuildPacket(playerActorId, 0x6, "commandJudgeMode")); - packets.Add(_0x132Packet.BuildPacket(playerActorId, 0x100, "commandRequest")); - packets.Add(_0x132Packet.BuildPacket(playerActorId, 0x100, "widgetCreate")); - packets.Add(_0x132Packet.BuildPacket(playerActorId, 0x100, "macroRequest")); + packets.Add(_0x132Packet.BuildPacket(actorId, 0xB, "commandForced")); + packets.Add(_0x132Packet.BuildPacket(actorId, 0xA, "commandDefault")); + packets.Add(_0x132Packet.BuildPacket(actorId, 0x6, "commandWeak")); + packets.Add(_0x132Packet.BuildPacket(actorId, 0x4, "commandContent")); + packets.Add(_0x132Packet.BuildPacket(actorId, 0x6, "commandJudgeMode")); + packets.Add(_0x132Packet.BuildPacket(actorId, 0x100, "commandRequest")); + packets.Add(_0x132Packet.BuildPacket(actorId, 0x100, "widgetCreate")); + packets.Add(_0x132Packet.BuildPacket(actorId, 0x100, "macroRequest")); return packets; } @@ -278,10 +278,10 @@ namespace FFXIVClassic_Map_Server.Actors * Timer Array - 20 Number */ - public override SubPacket CreateScriptBindPacket(uint playerActorId) + public override SubPacket CreateScriptBindPacket(Player requestPlayer) { List lParams; - if (IsMyPlayer(playerActorId)) + if (IsMyPlayer(requestPlayer.actorId)) { if (loginInitDirector != null) lParams = LuaUtils.CreateLuaParamList("/Chara/Player/Player_work", false, false, true, loginInitDirector, true, 0, false, timers, true); @@ -291,69 +291,74 @@ namespace FFXIVClassic_Map_Server.Actors else lParams = LuaUtils.CreateLuaParamList("/Chara/Player/Player_work", false, false, false, false, false, true); - ActorInstantiatePacket.BuildPacket(actorId, playerActorId, actorName, className, lParams).DebugPrintSubPacket(); + ActorInstantiatePacket.BuildPacket(actorId, actorName, className, lParams).DebugPrintSubPacket(); - return ActorInstantiatePacket.BuildPacket(actorId, playerActorId, actorName, className, lParams); + return ActorInstantiatePacket.BuildPacket(actorId, actorName, className, lParams); } - public override BasePacket GetSpawnPackets(uint playerActorId, ushort spawnType) + public override List GetSpawnPackets(Player requestPlayer, ushort spawnType) { List subpackets = new List(); - subpackets.Add(CreateAddActorPacket(playerActorId, 8)); - if (IsMyPlayer(playerActorId)) - subpackets.AddRange(Create0x132Packets(playerActorId)); - subpackets.Add(CreateSpeedPacket(playerActorId)); - subpackets.Add(CreateSpawnPositonPacket(playerActorId, spawnType)); - subpackets.Add(CreateAppearancePacket(playerActorId)); - subpackets.Add(CreateNamePacket(playerActorId)); - subpackets.Add(_0xFPacket.BuildPacket(playerActorId, playerActorId)); - subpackets.Add(CreateStatePacket(playerActorId)); - subpackets.Add(CreateIdleAnimationPacket(playerActorId)); - subpackets.Add(CreateInitStatusPacket(playerActorId)); - subpackets.Add(CreateSetActorIconPacket(playerActorId)); - subpackets.Add(CreateIsZoneingPacket(playerActorId)); - subpackets.AddRange(CreatePlayerRelatedPackets(playerActorId)); - subpackets.Add(CreateScriptBindPacket(playerActorId)); - return BasePacket.CreatePacket(subpackets, true, false); + subpackets.Add(CreateAddActorPacket(8)); + if (IsMyPlayer(requestPlayer.actorId)) + subpackets.AddRange(Create0x132Packets()); + subpackets.Add(CreateSpeedPacket()); + subpackets.Add(CreateSpawnPositonPacket(this, spawnType)); + subpackets.Add(CreateAppearancePacket()); + subpackets.Add(CreateNamePacket()); + subpackets.Add(_0xFPacket.BuildPacket(actorId)); + subpackets.Add(CreateStatePacket()); + subpackets.Add(CreateIdleAnimationPacket()); + subpackets.Add(CreateInitStatusPacket()); + subpackets.Add(CreateSetActorIconPacket()); + subpackets.Add(CreateIsZoneingPacket()); + subpackets.AddRange(CreatePlayerRelatedPackets(requestPlayer.actorId)); + subpackets.Add(CreateScriptBindPacket(requestPlayer)); + return subpackets; } - public List CreatePlayerRelatedPackets(uint playerActorId) + public List CreatePlayerRelatedPackets(uint requestingPlayerActorId) { List subpackets = new List(); if (gcCurrent != 0) - subpackets.Add(SetGrandCompanyPacket.BuildPacket(actorId, playerActorId, gcCurrent, gcRankLimsa, gcRankGridania, gcRankUldah)); + subpackets.Add(SetGrandCompanyPacket.BuildPacket(actorId, gcCurrent, gcRankLimsa, gcRankGridania, gcRankUldah)); if (currentTitle != 0) - subpackets.Add(SetPlayerTitlePacket.BuildPacket(actorId, playerActorId, currentTitle)); + subpackets.Add(SetPlayerTitlePacket.BuildPacket(actorId, currentTitle)); if (currentJob != 0) - subpackets.Add(SetCurrentJobPacket.BuildPacket(actorId, playerActorId, currentJob)); + subpackets.Add(SetCurrentJobPacket.BuildPacket(actorId, currentJob)); - if (IsMyPlayer(playerActorId)) + if (IsMyPlayer(requestingPlayerActorId)) { - subpackets.Add(SetSpecialEventWorkPacket.BuildPacket(playerActorId, playerActorId)); + subpackets.Add(SetSpecialEventWorkPacket.BuildPacket(actorId)); if (hasChocobo && chocoboName != null && !chocoboName.Equals("")) { - subpackets.Add(SetChocoboNamePacket.BuildPacket(actorId, playerActorId, chocoboName)); - subpackets.Add(SetHasChocoboPacket.BuildPacket(playerActorId, hasChocobo)); + subpackets.Add(SetChocoboNamePacket.BuildPacket(actorId, chocoboName)); + subpackets.Add(SetHasChocoboPacket.BuildPacket(actorId, hasChocobo)); } if (hasGoobbue) - subpackets.Add(SetHasGoobbuePacket.BuildPacket(playerActorId, hasGoobbue)); + subpackets.Add(SetHasGoobbuePacket.BuildPacket(actorId, hasGoobbue)); - subpackets.Add(SetAchievementPointsPacket.BuildPacket(playerActorId, achievementPoints)); + subpackets.Add(SetAchievementPointsPacket.BuildPacket(actorId, achievementPoints)); subpackets.Add(Database.GetLatestAchievements(this)); subpackets.Add(Database.GetAchievementsPacket(this)); } + if (mountState == 1) + subpackets.Add(SetCurrentMountChocoboPacket.BuildPacket(actorId, chocoboAppearance)); + else if (mountState == 2) + subpackets.Add(SetCurrentMountGoobbuePacket.BuildPacket(actorId, 1)); + return subpackets; } - public override BasePacket GetInitPackets(uint playerActorId) + public override List GetInitPackets() { - ActorPropertyPacketUtil propPacketUtil = new ActorPropertyPacketUtil("/_init", this, playerActorId); + ActorPropertyPacketUtil propPacketUtil = new ActorPropertyPacketUtil("/_init", this); propPacketUtil.AddProperty("charaWork.eventSave.bazaarTax"); propPacketUtil.AddProperty("charaWork.battleSave.potencial"); @@ -498,7 +503,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() @@ -509,14 +514,14 @@ namespace FFXIVClassic_Map_Server.Actors public void SendZoneInPackets(WorldManager world, ushort spawnType) { - QueuePacket(SetActorIsZoningPacket.BuildPacket(actorId, actorId, false)); + QueuePacket(SetActorIsZoningPacket.BuildPacket(actorId, false)); QueuePacket(_0x10Packet.BuildPacket(actorId, 0xFF)); QueuePacket(SetMusicPacket.BuildPacket(actorId, zone.bgmDay, 0x01)); QueuePacket(SetWeatherPacket.BuildPacket(actorId, SetWeatherPacket.WEATHER_CLEAR, 1)); QueuePacket(SetMapPacket.BuildPacket(actorId, zone.regionId, zone.actorId)); - QueuePacket(GetSpawnPackets(actorId, spawnType)); + QueuePackets(GetSpawnPackets(this, spawnType)); //GetSpawnPackets(actorId, spawnType).DebugPrintPacket(); #region Inventory & Equipment @@ -528,14 +533,14 @@ namespace FFXIVClassic_Map_Server.Actors inventories[Inventory.MELDREQUEST].SendFullInventory(); inventories[Inventory.LOOT].SendFullInventory(); equipment.SendFullEquipment(false); - playerSession.QueuePacket(InventoryEndChangePacket.BuildPacket(actorId), true, false); + playerSession.QueuePacket(InventoryEndChangePacket.BuildPacket(actorId)); #endregion - playerSession.QueuePacket(GetInitPackets(actorId)); + playerSession.QueuePacket(GetInitPackets()); - BasePacket areaMasterSpawn = zone.GetSpawnPackets(actorId); - BasePacket debugSpawn = world.GetDebugActor().GetSpawnPackets(actorId); - BasePacket worldMasterSpawn = world.GetActor().GetSpawnPackets(actorId); + List areaMasterSpawn = zone.GetSpawnPackets(); + List debugSpawn = world.GetDebugActor().GetSpawnPackets(); + List worldMasterSpawn = world.GetActor().GetSpawnPackets(); playerSession.QueuePacket(areaMasterSpawn); playerSession.QueuePacket(debugSpawn); @@ -556,16 +561,14 @@ namespace FFXIVClassic_Map_Server.Actors if (zone.GetWeatherDirector() != null) { - BasePacket weatherDirectorSpawn = zone.GetWeatherDirector().GetSpawnPackets(actorId); - playerSession.QueuePacket(weatherDirectorSpawn); + playerSession.QueuePacket(zone.GetWeatherDirector().GetSpawnPackets()); } foreach (Director director in ownedDirectors) { - director.GetSpawnPackets(actorId).DebugPrintPacket(); - QueuePacket(director.GetSpawnPackets(actorId)); - QueuePacket(director.GetInitPackets(actorId)); + QueuePackets(director.GetSpawnPackets()); + QueuePackets(director.GetInitPackets()); } if (currentContentGroup != null) @@ -600,30 +603,24 @@ namespace FFXIVClassic_Map_Server.Actors return actorId == otherActorId; } - public void QueuePacket(BasePacket packet) + public void QueuePacket(SubPacket packet) { playerSession.QueuePacket(packet); } - public void QueuePacket(SubPacket packet) - { - playerSession.QueuePacket(packet, true, false); - } - public void QueuePackets(List packets) { - foreach (SubPacket subpacket in packets) - playerSession.QueuePacket(subpacket, true, false); + playerSession.QueuePacket(packets); } public void SendPacket(string path) { try { - BasePacket packet = new BasePacket(path); + // BasePacket packet = new BasePacket(path); - packet.ReplaceActorID(actorId); - QueuePacket(packet); + //packet.ReplaceActorID(actorId); + //QueuePacket(packet); } catch (Exception e) { @@ -633,13 +630,19 @@ namespace FFXIVClassic_Map_Server.Actors public void BroadcastPacket(SubPacket packet, bool sendToSelf) { + if (sendToSelf) + { + SubPacket clonedPacket = new SubPacket(packet, actorId); + QueuePacket(clonedPacket); + } + foreach (Actor a in playerSession.actorInstanceList) { if (a is Player) { Player p = (Player)a; - if (p.Equals(this) && !sendToSelf) + if (p.Equals(this)) continue; SubPacket clonedPacket = new SubPacket(packet, a.actorId); @@ -659,14 +662,14 @@ namespace FFXIVClassic_Map_Server.Actors { if (flag) { - BroadcastPacket(SetActorIconPacket.BuildPacket(actorId, actorId, SetActorIconPacket.DISCONNECTING), true); + BroadcastPacket(SetActorIconPacket.BuildPacket(actorId, SetActorIconPacket.DISCONNECTING), true); } else { if (isGM) - BroadcastPacket(SetActorIconPacket.BuildPacket(actorId, actorId, SetActorIconPacket.ISGM), true); + BroadcastPacket(SetActorIconPacket.BuildPacket(actorId, SetActorIconPacket.ISGM), true); else - BroadcastPacket(SetActorIconPacket.BuildPacket(actorId, actorId, 0), true); + BroadcastPacket(SetActorIconPacket.BuildPacket(actorId, 0), true); } } @@ -719,7 +722,7 @@ namespace FFXIVClassic_Map_Server.Actors public void SendMessage(uint logType, string sender, string message) { - QueuePacket(SendMessagePacket.BuildPacket(actorId, actorId, logType, sender, message)); + QueuePacket(SendMessagePacket.BuildPacket(actorId, logType, sender, message)); } public void Logout() @@ -756,19 +759,18 @@ namespace FFXIVClassic_Map_Server.Actors QueuePacket(SetMusicPacket.BuildPacket(actorId, musicId, 1)); } - public void SendChocoboAppearance() + public void SendMountAppearance() { - BroadcastPacket(SetCurrentMountChocoboPacket.BuildPacket(actorId, chocoboAppearance), true); - } - - public void SendGoobbueAppearance() - { - BroadcastPacket(SetCurrentMountGoobbuePacket.BuildPacket(actorId, 1), true); + if (mountState == 1) + BroadcastPacket(SetCurrentMountChocoboPacket.BuildPacket(actorId, chocoboAppearance), true); + else if (mountState == 2) + BroadcastPacket(SetCurrentMountGoobbuePacket.BuildPacket(actorId, 1), true); } public void SetMountState(byte mountState) { this.mountState = mountState; + SendMountAppearance(); } public byte GetMountState() @@ -778,41 +780,41 @@ namespace FFXIVClassic_Map_Server.Actors public void DoEmote(uint targettedActor, uint animId, uint descId) { - BroadcastPacket(ActorDoEmotePacket.BuildPacket(actorId, actorId, targettedActor, animId, descId), true); + BroadcastPacket(ActorDoEmotePacket.BuildPacket(actorId, targettedActor, animId, descId), true); } public void SendGameMessage(Actor sourceActor, Actor textIdOwner, ushort textId, byte log, params object[] msgParams) { if (msgParams == null || msgParams.Length == 0) { - QueuePacket(GameMessagePacket.BuildPacket(Server.GetWorldManager().GetActor().actorId, actorId, sourceActor.actorId, textIdOwner.actorId, textId, log)); + QueuePacket(GameMessagePacket.BuildPacket(Server.GetWorldManager().GetActor().actorId, sourceActor.actorId, textIdOwner.actorId, textId, log)); } else - QueuePacket(GameMessagePacket.BuildPacket(Server.GetWorldManager().GetActor().actorId, actorId, sourceActor.actorId, textIdOwner.actorId, textId, log, LuaUtils.CreateLuaParamList(msgParams))); + QueuePacket(GameMessagePacket.BuildPacket(Server.GetWorldManager().GetActor().actorId, sourceActor.actorId, textIdOwner.actorId, textId, log, LuaUtils.CreateLuaParamList(msgParams))); } public void SendGameMessage(Actor textIdOwner, ushort textId, byte log, params object[] msgParams) { if (msgParams == null || msgParams.Length == 0) - QueuePacket(GameMessagePacket.BuildPacket(Server.GetWorldManager().GetActor().actorId, actorId, textIdOwner.actorId, textId, log)); + QueuePacket(GameMessagePacket.BuildPacket(Server.GetWorldManager().GetActor().actorId, textIdOwner.actorId, textId, log)); else - QueuePacket(GameMessagePacket.BuildPacket(Server.GetWorldManager().GetActor().actorId, actorId, textIdOwner.actorId, textId, log, LuaUtils.CreateLuaParamList(msgParams))); + QueuePacket(GameMessagePacket.BuildPacket(Server.GetWorldManager().GetActor().actorId, textIdOwner.actorId, textId, log, LuaUtils.CreateLuaParamList(msgParams))); } - public void SendGameMessage(Actor textIdOwner, ushort textId, byte log, string customSender, params object[] msgParams) + public void SendGameMessageCustomSender(Actor textIdOwner, ushort textId, byte log, string customSender, params object[] msgParams) { if (msgParams == null || msgParams.Length == 0) - QueuePacket(GameMessagePacket.BuildPacket(Server.GetWorldManager().GetActor().actorId, actorId, textIdOwner.actorId, textId, customSender, log)); + QueuePacket(GameMessagePacket.BuildPacket(Server.GetWorldManager().GetActor().actorId, textIdOwner.actorId, textId, customSender, log)); else - QueuePacket(GameMessagePacket.BuildPacket(Server.GetWorldManager().GetActor().actorId, actorId, textIdOwner.actorId, textId, customSender, log, LuaUtils.CreateLuaParamList(msgParams))); + QueuePacket(GameMessagePacket.BuildPacket(Server.GetWorldManager().GetActor().actorId, textIdOwner.actorId, textId, customSender, log, LuaUtils.CreateLuaParamList(msgParams))); } - public void SendGameMessage(Actor textIdOwner, ushort textId, byte log, uint displayId, params object[] msgParams) + public void SendGameMessageDisplayIDSender(Actor textIdOwner, ushort textId, byte log, uint displayId, params object[] msgParams) { if (msgParams == null || msgParams.Length == 0) - QueuePacket(GameMessagePacket.BuildPacket(Server.GetWorldManager().GetActor().actorId, actorId, textIdOwner.actorId, textId, displayId, log)); + QueuePacket(GameMessagePacket.BuildPacket(Server.GetWorldManager().GetActor().actorId, textIdOwner.actorId, textId, displayId, log)); else - QueuePacket(GameMessagePacket.BuildPacket(Server.GetWorldManager().GetActor().actorId, actorId, textIdOwner.actorId, textId, displayId, log, LuaUtils.CreateLuaParamList(msgParams))); + QueuePacket(GameMessagePacket.BuildPacket(Server.GetWorldManager().GetActor().actorId, textIdOwner.actorId, textId, displayId, log, LuaUtils.CreateLuaParamList(msgParams))); } public void BroadcastWorldMessage(ushort worldMasterId, params object[] msgParams) @@ -847,7 +849,7 @@ namespace FFXIVClassic_Map_Server.Actors public void SendAppearance() { - BroadcastPacket(CreateAppearancePacket(actorId), true); + BroadcastPacket(CreateAppearancePacket(), true); } public void SendCharaExpInfo() @@ -879,7 +881,7 @@ namespace FFXIVClassic_Map_Server.Actors charaInfo1.AddTarget(); - QueuePacket(charaInfo1.BuildPacket(actorId, actorId)); + QueuePacket(charaInfo1.BuildPacket(actorId)); } else if (lastStep == 1) { @@ -910,7 +912,7 @@ namespace FFXIVClassic_Map_Server.Actors charaInfo1.AddTarget(); - QueuePacket(charaInfo1.BuildPacket(actorId, actorId)); + QueuePacket(charaInfo1.BuildPacket(actorId)); } } @@ -967,7 +969,7 @@ namespace FFXIVClassic_Map_Server.Actors playerWork.restBonusExpRate = 0.0f; - ActorPropertyPacketUtil propertyBuilder = new ActorPropertyPacketUtil("charaWork/stateForAll", this, actorId); + ActorPropertyPacketUtil propertyBuilder = new ActorPropertyPacketUtil("charaWork/stateForAll", this); propertyBuilder.AddProperty("charaWork.parameterSave.state_mainSkill[0]"); propertyBuilder.AddProperty("charaWork.parameterSave.state_mainSkillLevel"); @@ -988,7 +990,7 @@ namespace FFXIVClassic_Map_Server.Actors appearanceIds[slot] = 0; else { - Item item = Server.GetItemGamedata(invItem.itemId); + ItemData item = Server.GetItemGamedata(invItem.itemId); if (item is EquipmentItem) { EquipmentItem eqItem = (EquipmentItem)item; @@ -1011,7 +1013,7 @@ namespace FFXIVClassic_Map_Server.Actors Database.SavePlayerAppearance(this); - BroadcastPacket(CreateAppearancePacket(actorId), true); + BroadcastPacket(CreateAppearancePacket(), true); } public Inventory GetInventory(ushort type) @@ -1096,9 +1098,9 @@ namespace FFXIVClassic_Map_Server.Actors public int GetFreeGuildleveSlot() { - for (int i = 0; i < questGuildleve.Length; i++) + for (int i = 0; i < work.guildleveId.Length; i++) { - if (questGuildleve[i] == 0) + if (work.guildleveId[i] == 0) return i; } @@ -1139,23 +1141,38 @@ namespace FFXIVClassic_Map_Server.Actors if (freeSlot == -1) return; - playerWork.questScenario[freeSlot] = id; - questGuildleve[freeSlot] = id; + work.guildleveId[freeSlot] = (ushort)id; Database.SaveGuildleve(this, id, freeSlot); SendGuildleveClientUpdate(freeSlot); } + public void MarkGuildleve(uint id, bool abandoned, bool completed) + { + if (HasGuildleve(id)) + { + for (int i = 0; i < work.guildleveId.Length; i++) + { + if (work.guildleveId[i] == id) + { + work.guildleveChecked[i] = completed; + work.guildleveDone[i] = abandoned; + Database.MarkGuildleve(this, id, abandoned, completed); + SendGuildleveMarkClientUpdate(i); + } + } + } + } + public void RemoveGuildleve(uint id) { if (HasGuildleve(id)) { - for (int i = 0; i < questGuildleve.Length; i++) + for (int i = 0; i < work.guildleveId.Length; i++) { - if (questGuildleve[i] != null && questGuildleve[i] == id) + if (work.guildleveId[i] == id) { Database.RemoveGuildleve(this, id); - questGuildleve[i] = 0; - playerWork.questGuildleve[i] = 0; + work.guildleveId[i] = 0; SendGuildleveClientUpdate(i); break; } @@ -1338,9 +1355,9 @@ namespace FFXIVClassic_Map_Server.Actors public bool HasGuildleve(uint id) { - for (int i = 0; i < questGuildleve.Length; i++) + for (int i = 0; i < work.guildleveId.Length; i++) { - if (questGuildleve[i] != null && questGuildleve[i] == id) + if (work.guildleveId[i] == id) return true; } @@ -1393,7 +1410,7 @@ namespace FFXIVClassic_Map_Server.Actors Database.SaveNpcLS(this, npcLSId, isCalling, isExtra); - ActorPropertyPacketUtil propPacketUtil = new ActorPropertyPacketUtil("playerWork/npcLinkshellChat", this, actorId); + ActorPropertyPacketUtil propPacketUtil = new ActorPropertyPacketUtil("playerWork/npcLinkshellChat", this); propPacketUtil.AddProperty(String.Format("playerWork.npcLinkshellChatExtra[{0}]", npcLSId)); propPacketUtil.AddProperty(String.Format("playerWork.npcLinkshellChatCalling[{0}]", npcLSId)); QueuePackets(propPacketUtil.Done()); @@ -1401,15 +1418,23 @@ namespace FFXIVClassic_Map_Server.Actors private void SendQuestClientUpdate(int slot) { - ActorPropertyPacketUtil propPacketUtil = new ActorPropertyPacketUtil("playerWork/journal", this, actorId); + ActorPropertyPacketUtil propPacketUtil = new ActorPropertyPacketUtil("playerWork/journal", this); propPacketUtil.AddProperty(String.Format("playerWork.questScenario[{0}]", slot)); QueuePackets(propPacketUtil.Done()); } private void SendGuildleveClientUpdate(int slot) { - ActorPropertyPacketUtil propPacketUtil = new ActorPropertyPacketUtil("playerWork/journal", this, actorId); - propPacketUtil.AddProperty(String.Format("playerWork.questGuildleve[{0}]", slot)); + ActorPropertyPacketUtil propPacketUtil = new ActorPropertyPacketUtil("work/guildleve", this); + propPacketUtil.AddProperty(String.Format("work.guildleveId[{0}]", slot)); + QueuePackets(propPacketUtil.Done()); + } + + private void SendGuildleveMarkClientUpdate(int slot) + { + ActorPropertyPacketUtil propPacketUtil = new ActorPropertyPacketUtil("work/guildleve", this); + propPacketUtil.AddProperty(String.Format("work.guildleveDone[{0}]", slot)); + propPacketUtil.AddProperty(String.Format("work.guildleveChecked[{0}]", slot)); QueuePackets(propPacketUtil.Done()); } @@ -1424,33 +1449,37 @@ namespace FFXIVClassic_Map_Server.Actors if (!ownedDirectors.Contains(director)) { ownedDirectors.Add(director); - director.AddChild(this); - - if (spawnImmediatly) - { - director.GetSpawnPackets(actorId).DebugPrintPacket(); - QueuePacket(director.GetSpawnPackets(actorId)); - QueuePacket(director.GetInitPackets(actorId)); - } + director.AddMember(this); } } public void SendDirectorPackets(Director director) { - director.GetSpawnPackets(actorId).DebugPrintPacket(); - QueuePacket(director.GetSpawnPackets(actorId)); - QueuePacket(director.GetInitPackets(actorId)); + QueuePackets(director.GetSpawnPackets()); + QueuePackets(director.GetInitPackets()); } public void RemoveDirector(Director director) { - if (!ownedDirectors.Contains(director)) + if (ownedDirectors.Contains(director)) { + QueuePacket(RemoveActorPacket.BuildPacket(director.actorId)); ownedDirectors.Remove(director); - director.RemoveChild(this); + director.RemoveMember(this); } } + public GuildleveDirector GetGuildleveDirector() + { + foreach (Director d in ownedDirectors) + { + if (d is GuildleveDirector) + return (GuildleveDirector)d; + } + + return null; + } + public Director GetDirector(string directorName) { foreach (Director d in ownedDirectors) @@ -1481,15 +1510,15 @@ namespace FFXIVClassic_Map_Server.Actors else return; - QueuePacket(InventoryBeginChangePacket.BuildPacket(toBeExamined.actorId, actorId)); + QueuePacket(InventoryBeginChangePacket.BuildPacket(toBeExamined.actorId)); toBeExamined.GetEquipment().SendCheckEquipmentToPlayer(this); - QueuePacket(InventoryEndChangePacket.BuildPacket(toBeExamined.actorId, actorId)); + QueuePacket(InventoryEndChangePacket.BuildPacket(toBeExamined.actorId)); } public void SendDataPacket(params object[] parameters) { List lParams = LuaUtils.CreateLuaParamList(parameters); - SubPacket spacket = InfoRequestResponsePacket.BuildPacket(actorId, actorId, lParams); + SubPacket spacket = InfoRequestResponsePacket.BuildPacket(actorId, lParams); spacket.DebugPrintSubPacket(); QueuePacket(spacket); } @@ -1517,7 +1546,7 @@ namespace FFXIVClassic_Map_Server.Actors public void SetEventStatus(Actor actor, string conditionName, bool enabled, byte unknown) { - QueuePacket(packets.send.actor.events.SetEventStatus.BuildPacket(actorId, actor.actorId, enabled, unknown, conditionName)); + QueuePacket(packets.send.actor.events.SetEventStatus.BuildPacket(actor.actorId, enabled, unknown, conditionName)); } public void RunEventFunction(string functionName, params object[] parameters) diff --git a/FFXIVClassic Map Server/actors/debug/Debug.cs b/FFXIVClassic Map Server/actors/debug/Debug.cs index ddea59d9..49b62173 100644 --- a/FFXIVClassic Map Server/actors/debug/Debug.cs +++ b/FFXIVClassic Map Server/actors/debug/Debug.cs @@ -18,24 +18,24 @@ namespace FFXIVClassic_Map_Server.Actors this.className = "Debug"; } - public override SubPacket CreateScriptBindPacket(uint playerActorId) + public override SubPacket CreateScriptBindPacket() { List lParams; lParams = LuaUtils.CreateLuaParamList("/System/Debug.prog", false, false, false, false, true, 0xC51F, true, true); - return ActorInstantiatePacket.BuildPacket(actorId, playerActorId, actorName, className, lParams); + return ActorInstantiatePacket.BuildPacket(actorId, actorName, className, lParams); } - public override BasePacket GetSpawnPackets(uint playerActorId) + public override List GetSpawnPackets() { List subpackets = new List(); - subpackets.Add(CreateAddActorPacket(playerActorId, 0)); - subpackets.Add(CreateSpeedPacket(playerActorId)); - subpackets.Add(CreateSpawnPositonPacket(playerActorId, 0x1)); - subpackets.Add(CreateNamePacket(playerActorId)); - subpackets.Add(CreateStatePacket(playerActorId)); - subpackets.Add(CreateIsZoneingPacket(playerActorId)); - subpackets.Add(CreateScriptBindPacket(playerActorId)); - return BasePacket.CreatePacket(subpackets, true, false); + subpackets.Add(CreateAddActorPacket(0)); + subpackets.Add(CreateSpeedPacket()); + subpackets.Add(CreateSpawnPositonPacket(0x1)); + subpackets.Add(CreateNamePacket()); + subpackets.Add(CreateStatePacket()); + subpackets.Add(CreateIsZoneingPacket()); + subpackets.Add(CreateScriptBindPacket()); + return subpackets; } } diff --git a/FFXIVClassic Map Server/actors/director/Director.cs b/FFXIVClassic Map Server/actors/director/Director.cs index 6db051b4..f5c7bc8b 100644 --- a/FFXIVClassic Map Server/actors/director/Director.cs +++ b/FFXIVClassic Map Server/actors/director/Director.cs @@ -15,26 +15,32 @@ namespace FFXIVClassic_Map_Server.actors.director { private uint directorId; private string directorScriptPath; - private List childrenOwners = new List(); + private List members = new List(); private bool isCreated = false; + private bool isDeleted = false; + private bool isDeleting = false; - public Director(uint id, Area zone, string directorPath) + private Script directorScript; + private Coroutine currentCoroutine; + + public Director(uint id, Area zone, string directorPath, params object[] args) : base((6 << 28 | zone.actorId << 19 | (uint)id)) { directorId = id; this.zone = zone; - directorScriptPath = directorPath; - DoActorInit(directorScriptPath); - GenerateActorName((int)id); + this.zoneId = zone.actorId; + directorScriptPath = directorPath; + + LoadLuaScript(); eventConditions = new EventList(); eventConditions.noticeEventConditions = new List(); eventConditions.noticeEventConditions.Add(new EventList.NoticeEventCondition("noticeEvent", 0xE,0x0)); eventConditions.noticeEventConditions.Add(new EventList.NoticeEventCondition("noticeRequest", 0x0, 0x1)); - eventConditions.noticeEventConditions.Add(new EventList.NoticeEventCondition("reqForChild", 0x0, 0x1)); + eventConditions.noticeEventConditions.Add(new EventList.NoticeEventCondition("reqForChild", 0x0, 0x1)); } - public override SubPacket CreateScriptBindPacket(uint playerActorId) + public override SubPacket CreateScriptBindPacket() { List actualLParams = new List(); actualLParams.Insert(0, new LuaParam(2, classPath)); @@ -48,28 +54,30 @@ namespace FFXIVClassic_Map_Server.actors.director for (int i = 1; i < lparams.Count; i++) actualLParams.Add(lparams[i]); - return ActorInstantiatePacket.BuildPacket(actorId, playerActorId, actorName, className, actualLParams); + return ActorInstantiatePacket.BuildPacket(actorId, actorName, className, actualLParams); } - public override BasePacket GetSpawnPackets(uint playerActorId, ushort spawnType) + public override List GetSpawnPackets(ushort spawnType = 1) { List subpackets = new List(); - subpackets.Add(CreateAddActorPacket(playerActorId, 0)); - subpackets.AddRange(GetEventConditionPackets(playerActorId)); - subpackets.Add(CreateSpeedPacket(playerActorId)); - subpackets.Add(CreateSpawnPositonPacket(playerActorId, 0)); - subpackets.Add(CreateNamePacket(playerActorId)); - subpackets.Add(CreateStatePacket(playerActorId)); - subpackets.Add(CreateIsZoneingPacket(playerActorId)); - subpackets.Add(CreateScriptBindPacket(playerActorId)); - return BasePacket.CreatePacket(subpackets, true, false); - } + subpackets.Add(CreateAddActorPacket(0)); + subpackets.AddRange(GetEventConditionPackets()); + subpackets.Add(CreateSpeedPacket()); + subpackets.Add(CreateSpawnPositonPacket(0)); + subpackets.Add(CreateNamePacket()); + subpackets.Add(CreateStatePacket()); + subpackets.Add(CreateIsZoneingPacket()); + subpackets.Add(CreateScriptBindPacket()); + return subpackets; + } - public override BasePacket GetInitPackets(uint playerActorId) + public override List GetInitPackets() { + List subpackets = new List(); SetActorPropetyPacket initProperties = new SetActorPropetyPacket("/_init"); initProperties.AddTarget(); - return BasePacket.CreatePacket(initProperties.BuildPacket(playerActorId, actorId), true, false); + subpackets.Add(initProperties.BuildPacket(actorId)); + return subpackets; } public void OnTalkEvent(Player player, Npc npc) @@ -80,45 +88,93 @@ namespace FFXIVClassic_Map_Server.actors.director public void OnCommandEvent(Player player, Command command) { LuaEngine.GetInstance().CallLuaFunction(player, this, "onCommandEvent", false, command); - } + } - public void DoActorInit(string directorPath) + public void StartDirector(bool spawnImmediate, params object[] args) { - List lparams = LuaEngine.GetInstance().CallLuaFunctionForReturn(null, this, "init", false); + object[] args2 = new object[args.Length + 1]; + args2[0] = this; + Array.Copy(args, 0, args2, 1, args.Length); + + List lparams = CallLuaScript("init", args2); if (lparams.Count >= 1 && lparams[0].value is string) { classPath = (string)lparams[0].value; className = classPath.Substring(classPath.LastIndexOf("/") + 1); + GenerateActorName((int)directorId); isCreated = true; } + + if (isCreated && spawnImmediate) + { + foreach (Player p in GetPlayerMembers()) + { + p.QueuePackets(GetSpawnPackets()); + p.QueuePackets(GetInitPackets()); + } + } + + if (this is GuildleveDirector) + ((GuildleveDirector)this).LoadGuildleve(); + + StartCoroutine("main", this); } - public void AddChild(Actor actor) + public void EndDirector() { - if (!childrenOwners.Contains(actor)) - childrenOwners.Add(actor); - } + isDeleting = true; - public void RemoveChild(Actor actor) - { - if (childrenOwners.Contains(actor)) - childrenOwners.Remove(actor); - if (childrenOwners.Count == 0) - Server.GetWorldManager().GetZone(zoneId).DeleteDirector(actorId); - } + if (this is GuildleveDirector) + ((GuildleveDirector)this).EndGuildleveDirector(); - public void RemoveChildren() - { - childrenOwners.Clear(); + List players = GetPlayerMembers(); + foreach (Actor player in players) + ((Player)player).RemoveDirector(this); + members.Clear(); + isDeleted = true; Server.GetWorldManager().GetZone(zoneId).DeleteDirector(actorId); } + + public void AddMember(Actor actor) + { + if (!members.Contains(actor)) + members.Add(actor); + } + + public void RemoveMember(Actor actor) + { + if (members.Contains(actor)) + members.Remove(actor); + if (GetPlayerMembers().Count == 0 && !isDeleting) + EndDirector(); + } + + public List GetMembers() + { + return members; + } + + public List GetPlayerMembers() + { + return members.FindAll(s => s is Player); + } + + public List GetNpcMembers() + { + return members.FindAll(s => s is Npc); + } public bool IsCreated() { return isCreated; } + public bool IsDeleted() + { + return isDeleted; + } + public void GenerateActorName(int actorNumber) { //Format Class Name @@ -166,5 +222,45 @@ namespace FFXIVClassic_Map_Server.actors.director return directorScriptPath; } + private void LoadLuaScript() + { + string luaPath = String.Format(LuaEngine.FILEPATH_DIRECTORS, GetScriptPath()); + directorScript = LuaEngine.LoadScript(luaPath); + if (directorScript == null) + Program.Log.Error("Could not find script for director {0}.", GetName()); + } + + private List CallLuaScript(string funcName, params object[] args) + { + if (directorScript != null) + { + if (!directorScript.Globals.Get(funcName).IsNil()) + { + DynValue result = directorScript.Call(directorScript.Globals[funcName], args); + List lparams = LuaUtils.CreateLuaParamList(result); + return lparams; + } + else + Program.Log.Error("Could not find script for director {0}.", GetName()); + } + return null; + } + + private List StartCoroutine(string funcName, params object[] args) + { + if (directorScript != null) + { + if (!directorScript.Globals.Get(funcName).IsNil()) + { + currentCoroutine = directorScript.CreateCoroutine(directorScript.Globals[funcName]).Coroutine; + DynValue value = currentCoroutine.Resume(args); + LuaEngine.GetInstance().ResolveResume(null, currentCoroutine, value); + } + else + Program.Log.Error("Could not find script for director {0}.", GetName()); + } + return null; + } + } -} +} \ No newline at end of file diff --git a/FFXIVClassic Map Server/actors/director/GuildleveDirector.cs b/FFXIVClassic Map Server/actors/director/GuildleveDirector.cs new file mode 100644 index 00000000..6e10da11 --- /dev/null +++ b/FFXIVClassic Map Server/actors/director/GuildleveDirector.cs @@ -0,0 +1,258 @@ +using FFXIVClassic.Common; +using FFXIVClassic_Map_Server.actors.area; +using FFXIVClassic_Map_Server.actors.director.Work; +using FFXIVClassic_Map_Server.actors.group; +using FFXIVClassic_Map_Server.Actors; +using FFXIVClassic_Map_Server.dataobjects; +using FFXIVClassic_Map_Server.utils; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FFXIVClassic_Map_Server.actors.director +{ + class GuildleveDirector : Director + { + public uint guildleveId; + public Player guildleveOwner; + public byte selectedDifficulty; + public ContentGroup contentGroup; + + public GuildleveData guildleveData; + public GuildleveWork guildleveWork = new GuildleveWork(); + + public bool isEnded = false; + public uint completionTime = 0; + + public GuildleveDirector(uint id, Area zone, string directorPath, uint guildleveId, byte selectedDifficulty, Player guildleveOwner, params object[] args) + : base(id, zone, directorPath, args) + { + this.guildleveId = guildleveId; + this.selectedDifficulty = selectedDifficulty; + this.guildleveData = Server.GetGuildleveGamedata(guildleveId); + this.guildleveOwner = guildleveOwner; + + guildleveWork.aimNum[0] = guildleveData.aimNum[0]; + guildleveWork.aimNum[1] = guildleveData.aimNum[1]; + guildleveWork.aimNum[2] = guildleveData.aimNum[2]; + guildleveWork.aimNum[3] = guildleveData.aimNum[3]; + + if (guildleveWork.aimNum[0] != 0) + guildleveWork.uiState[0] = 1; + if (guildleveWork.aimNum[1] != 0) + guildleveWork.uiState[1] = 1; + if (guildleveWork.aimNum[2] != 0) + guildleveWork.uiState[2] = 1; + if (guildleveWork.aimNum[3] != 0) + guildleveWork.uiState[3] = 1; + + guildleveWork.aimNumNow[0] = guildleveWork.aimNumNow[1] = guildleveWork.aimNumNow[2] = guildleveWork.aimNumNow[3] = 0; + } + + public void LoadGuildleve() + { + contentGroup = Server.GetWorldManager().CreateGLContentGroup(this, GetMembers()); + } + + public void StartGuildleve() + { + foreach (Actor p in GetPlayerMembers()) + { + Player player = (Player) p; + + //Set music + if (guildleveData.location == 1) + player.ChangeMusic(22); + else if (guildleveData.location == 2) + player.ChangeMusic(14); + else if (guildleveData.location == 3) + player.ChangeMusic(26); + else if (guildleveData.location == 4) + player.ChangeMusic(16); + + //Show Start Messages + player.SendGameMessage(Server.GetWorldManager().GetActor(), 50022, 0x20, guildleveId, selectedDifficulty); + player.SendDataPacket("attention", Server.GetWorldManager().GetActor(), "", 50022, guildleveId, selectedDifficulty); + player.SendGameMessage(Server.GetWorldManager().GetActor(), 50026, 0x20, (object)(int)guildleveData.timeLimit); + } + + guildleveWork.startTime = Utils.UnixTimeStampUTC(); + ActorPropertyPacketUtil propertyBuilder = new ActorPropertyPacketUtil("guildleveWork/start", this); + propertyBuilder.AddProperty("guildleveWork.startTime"); + SendPacketsToPlayers(propertyBuilder.Done()); + } + + public void EndGuildleve(bool wasCompleted) + { + if (isEnded) + return; + isEnded = true; + + completionTime = Utils.UnixTimeStampUTC() - guildleveWork.startTime; + + if (wasCompleted) + { + foreach (Actor a in GetPlayerMembers()) + { + Player player = (Player)a; + player.MarkGuildleve(guildleveId, true, true); + player.PlayAnimation(0x02000002, true); + player.ChangeMusic(81); + player.SendGameMessage(Server.GetWorldManager().GetActor(), 50023, 0x20, (object)(int)guildleveId); + player.SendDataPacket("attention", Server.GetWorldManager().GetActor(), "", 50023, (object)(int)guildleveId); + } + } + + foreach (Actor a in GetNpcMembers()) + { + Npc npc = (Npc)a; + npc.Despawn(); + RemoveMember(a); + } + + guildleveWork.startTime = 0; + guildleveWork.signal = -1; + ActorPropertyPacketUtil propertyBuilder = new ActorPropertyPacketUtil("guildleveWork/signal", this); + propertyBuilder.AddProperty("guildleveWork.signal"); + propertyBuilder.NewTarget("guildleveWork/start"); + propertyBuilder.AddProperty("guildleveWork.startTime"); + SendPacketsToPlayers(propertyBuilder.Done()); + + if (wasCompleted) + { + Npc aetheryteNode = zone.SpawnActor(1200040, String.Format("{0}:warpExit", guildleveOwner.actorName), guildleveOwner.positionX, guildleveOwner.positionY, guildleveOwner.positionZ); + contentGroup.AddMember(aetheryteNode); + + foreach (Actor a in GetPlayerMembers()) + { + Player player = (Player)a; + player.SendGameMessage(Server.GetWorldManager().GetActor(), 50029, 0x20); + player.SendGameMessage(Server.GetWorldManager().GetActor(), 50032, 0x20); + } + } + } + + public void AbandonGuildleve() + { + foreach (Actor p in GetPlayerMembers()) + { + Player player = (Player)p; + player.SendGameMessage(Server.GetWorldManager().GetActor(), 50147, 0x20, (object)guildleveId); + player.MarkGuildleve(guildleveId, true, false); + } + + EndGuildleve(false); + EndDirector(); + } + + //Delete ContentGroup, change music back + public void EndGuildleveDirector() + { + contentGroup.DeleteGroup(); + foreach (Actor p in GetPlayerMembers()) + { + Player player = (Player)p; + player.ChangeMusic(player.GetZone().bgmDay); + } + } + + public void SyncAllInfo() + { + ActorPropertyPacketUtil propertyBuilder = new ActorPropertyPacketUtil("guildleveWork/infoVariable", this); + + if (guildleveWork.aimNum[0] != 0) + propertyBuilder.AddProperty("guildleveWork.aimNum[0]"); + if (guildleveWork.aimNum[1] != 0) + propertyBuilder.AddProperty("guildleveWork.aimNum[1]"); + if (guildleveWork.aimNum[2] != 0) + propertyBuilder.AddProperty("guildleveWork.aimNum[2]"); + if (guildleveWork.aimNum[3] != 0) + propertyBuilder.AddProperty("guildleveWork.aimNum[3]"); + + if (guildleveWork.aimNumNow[0] != 0) + propertyBuilder.AddProperty("guildleveWork.aimNumNow[0]"); + if (guildleveWork.aimNumNow[1] != 0) + propertyBuilder.AddProperty("guildleveWork.aimNumNow[1]"); + if (guildleveWork.aimNumNow[2] != 0) + propertyBuilder.AddProperty("guildleveWork.aimNumNow[2]"); + if (guildleveWork.aimNumNow[3] != 0) + propertyBuilder.AddProperty("guildleveWork.aimNumNow[3]"); + + if (guildleveWork.uiState[0] != 0) + propertyBuilder.AddProperty("guildleveWork.uiState[0]"); + if (guildleveWork.uiState[1] != 0) + propertyBuilder.AddProperty("guildleveWork.uiState[1]"); + if (guildleveWork.uiState[2] != 0) + propertyBuilder.AddProperty("guildleveWork.uiState[2]"); + if (guildleveWork.uiState[3] != 0) + propertyBuilder.AddProperty("guildleveWork.uiState[3]"); + + SendPacketsToPlayers(propertyBuilder.Done()); + } + + public void UpdateAimNumNow(int index, sbyte value) + { + guildleveWork.aimNumNow[index] = value; + ActorPropertyPacketUtil propertyBuilder = new ActorPropertyPacketUtil("guildleveWork/infoVariable", this); + propertyBuilder.AddProperty(String.Format("guildleveWork.aimNumNow[{0}]", index)); + SendPacketsToPlayers(propertyBuilder.Done()); + } + + public void UpdateUiState(int index, sbyte value) + { + guildleveWork.uiState[index] = value; + ActorPropertyPacketUtil propertyBuilder = new ActorPropertyPacketUtil("guildleveWork/infoVariable", this); + propertyBuilder.AddProperty(String.Format("guildleveWork.uiState[{0}]", index)); + SendPacketsToPlayers(propertyBuilder.Done()); + } + + public void UpdateMarkers(int markerIndex, float x, float y, float z) + { + guildleveWork.markerX[markerIndex] = x; + guildleveWork.markerY[markerIndex] = y; + guildleveWork.markerZ[markerIndex] = z; + ActorPropertyPacketUtil propertyBuilder = new ActorPropertyPacketUtil("guildleveWork/marker", this); + propertyBuilder.AddProperty(String.Format("guildleveWork.markerX[{0}]", markerIndex)); + propertyBuilder.AddProperty(String.Format("guildleveWork.markerY[{0}]", markerIndex)); + propertyBuilder.AddProperty(String.Format("guildleveWork.markerZ[{0}]", markerIndex)); + SendPacketsToPlayers(propertyBuilder.Done()); + } + + public void SendPacketsToPlayers(List packets) + { + List players = GetPlayerMembers(); + foreach (Actor p in players) + { + ((Player)p).QueuePackets(packets); + } + } + + public static uint GlBorderIconIDToAnimID(uint iconId) + { + return iconId - 20000; + } + + public static uint GlPlateIconIDToAnimID(uint iconId) + { + return iconId - 20020; + } + + public static uint GetGLStartAnimationFromSheet(uint border, uint plate, bool isBoost) + { + return GetGLStartAnimation(GlBorderIconIDToAnimID(border), GlPlateIconIDToAnimID(plate), isBoost); + } + + public static uint GetGLStartAnimation(uint border, uint plate, bool isBoost) + { + uint borderBits = border; + uint plateBits = plate << 7; + + uint boostBits = isBoost ? (uint)0x8000 : (uint) 0; + + return 0x0B000000 | boostBits | plateBits | borderBits; + } + + } +} diff --git a/FFXIVClassic Map Server/actors/director/Work/GuildleveWork.cs b/FFXIVClassic Map Server/actors/director/Work/GuildleveWork.cs new file mode 100644 index 00000000..105a427d --- /dev/null +++ b/FFXIVClassic Map Server/actors/director/Work/GuildleveWork.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FFXIVClassic_Map_Server.actors.director.Work +{ + + class GuildleveWork + { + public uint startTime = 0; + public sbyte[] aimNum = new sbyte[4]; + public sbyte[] aimNumNow = new sbyte[4]; + public sbyte[] uiState = new sbyte[4]; + public float[] markerX = new float[3]; + public float[] markerY = new float[3]; + public float[] markerZ = new float[3]; + public sbyte signal; + } + +} diff --git a/FFXIVClassic Map Server/actors/group/ContentGroup.cs b/FFXIVClassic Map Server/actors/group/ContentGroup.cs index 2cabe0f9..0af1e0d9 100644 --- a/FFXIVClassic Map Server/actors/group/ContentGroup.cs +++ b/FFXIVClassic Map Server/actors/group/ContentGroup.cs @@ -25,7 +25,13 @@ namespace FFXIVClassic_Map_Server.actors.group if (initialMembers != null) { for (int i = 0; i < initialMembers.Length; i++) + { + Session s = Server.GetServer().GetSession(initialMembers[i]); + if (s != null) + s.GetActor().SetCurrentContentGroup(this); + members.Add(initialMembers[i]); + } } this.director = director; @@ -38,11 +44,10 @@ namespace FFXIVClassic_Map_Server.actors.group return; members.Add(actor.actorId); - if (actor is Character) - { - ((Character)actor).SetCurrentContentGroup(this); - SendCurrentContentSync(actor); - } + + if (actor is Character) + ((Character)actor).SetCurrentContentGroup(this); + SendGroupPacketsAll(members); } @@ -79,7 +84,7 @@ namespace FFXIVClassic_Map_Server.actors.group SubPacket test = groupWork.buildPacket(session.id, session.id); test.DebugPrintSubPacket(); - session.QueuePacket(test, true, false); + session.QueuePacket(test); } public override void SendGroupPackets(Session session) @@ -87,43 +92,29 @@ namespace FFXIVClassic_Map_Server.actors.group ulong time = Utils.MilisUnixTimeStampUTC(); List members = BuildMemberList(session.id); - session.QueuePacket(GroupHeaderPacket.buildPacket(session.id, session.GetActor().zoneId, time, this), true, false); - session.QueuePacket(GroupMembersBeginPacket.buildPacket(session.id, session.GetActor().zoneId, time, this), true, false); + session.QueuePacket(GroupHeaderPacket.buildPacket(session.id, session.GetActor().zoneId, time, this)); + session.QueuePacket(GroupMembersBeginPacket.buildPacket(session.id, session.GetActor().zoneId, time, this)); int currentIndex = 0; while (true) { if (GetMemberCount() - currentIndex >= 64) - session.QueuePacket(ContentMembersX64Packet.buildPacket(session.id, session.GetActor().zoneId, time, members, ref currentIndex), true, false); + session.QueuePacket(ContentMembersX64Packet.buildPacket(session.id, session.GetActor().zoneId, time, members, ref currentIndex)); else if (GetMemberCount() - currentIndex >= 32) - session.QueuePacket(ContentMembersX32Packet.buildPacket(session.id, session.GetActor().zoneId, time, members, ref currentIndex), true, false); + session.QueuePacket(ContentMembersX32Packet.buildPacket(session.id, session.GetActor().zoneId, time, members, ref currentIndex)); else if (GetMemberCount() - currentIndex >= 16) - session.QueuePacket(ContentMembersX16Packet.buildPacket(session.id, session.GetActor().zoneId, time, members, ref currentIndex), true, false); + session.QueuePacket(ContentMembersX16Packet.buildPacket(session.id, session.GetActor().zoneId, time, members, ref currentIndex)); else if (GetMemberCount() - currentIndex > 0) - session.QueuePacket(ContentMembersX08Packet.buildPacket(session.id, session.GetActor().zoneId, time, members, ref currentIndex), true, false); + session.QueuePacket(ContentMembersX08Packet.buildPacket(session.id, session.GetActor().zoneId, time, members, ref currentIndex)); else break; } - session.QueuePacket(GroupMembersEndPacket.buildPacket(session.id, session.GetActor().zoneId, time, this), true, false); + session.QueuePacket(GroupMembersEndPacket.buildPacket(session.id, session.GetActor().zoneId, time, this)); } - public void SendCurrentContentSync(Actor currentContentChanged) - { - foreach (uint memberId in members) - { - Session session = Server.GetServer().GetSession(memberId); - if (session != null) - { - ActorPropertyPacketUtil propPacketUtil = new ActorPropertyPacketUtil("charaWork/currentContentGroup", currentContentChanged, session.id); - propPacketUtil.AddProperty("charaWork.currentContentGroup"); - session.GetActor().QueuePackets(propPacketUtil.Done()); - } - } - } - public override uint GetTypeId() { return Group.ContentGroup_SimpleContentGroup24B; @@ -135,12 +126,23 @@ namespace FFXIVClassic_Map_Server.actors.group SendGroupPacketsAll(members); } - public void DeleteAll() + public void DeleteGroup() { SendDeletePackets(members); + for (int i = 0; i < members.Count; i++) + { + Session s = Server.GetServer().GetSession(members[i]); + if (s != null) + s.GetActor().SetCurrentContentGroup(null); + Actor a = director.GetZone().FindActorInArea(members[i]); + if (a is Npc) + ((Npc)a).Despawn(); + members.Remove(members[i]); + i--; + } + Server.GetWorldManager().DeleteContentGroup(groupIndex); } - public void CheckDestroy() { bool foundSession = false; @@ -155,7 +157,7 @@ namespace FFXIVClassic_Map_Server.actors.group } if (!foundSession) - Server.GetWorldManager().DeleteContentGroup(groupIndex); + DeleteGroup(); } } diff --git a/FFXIVClassic Map Server/actors/group/GLContentGroup.cs b/FFXIVClassic Map Server/actors/group/GLContentGroup.cs new file mode 100644 index 00000000..ada138f3 --- /dev/null +++ b/FFXIVClassic Map Server/actors/group/GLContentGroup.cs @@ -0,0 +1,29 @@ +using FFXIVClassic.Common; +using FFXIVClassic_Map_Server.actors.director; +using FFXIVClassic_Map_Server.actors.group.Work; +using FFXIVClassic_Map_Server.Actors; +using FFXIVClassic_Map_Server.dataobjects; +using FFXIVClassic_Map_Server.packets.send.group; +using FFXIVClassic_Map_Server.packets.send.groups; +using FFXIVClassic_Map_Server.utils; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FFXIVClassic_Map_Server.actors.group +{ + class GLContentGroup : ContentGroup + { + public GLContentGroup(ulong groupIndex, Director director, uint[] initialMembers) + : base(groupIndex, director, initialMembers) + { + } + + public override uint GetTypeId() + { + return Group.ContentGroup_GuildleveGroup; + } + } +} diff --git a/FFXIVClassic Map Server/actors/group/Group.cs b/FFXIVClassic Map Server/actors/group/Group.cs index d2d6bdec..c8a24047 100644 --- a/FFXIVClassic Map Server/actors/group/Group.cs +++ b/FFXIVClassic Map Server/actors/group/Group.cs @@ -120,33 +120,33 @@ namespace FFXIVClassic_Map_Server.actors.group ulong time = Utils.MilisUnixTimeStampUTC(); List members = BuildMemberList(session.id); - session.QueuePacket(GroupHeaderPacket.buildPacket(session.id, session.GetActor().zoneId, time, this), true, false); - session.QueuePacket(GroupMembersBeginPacket.buildPacket(session.id, session.GetActor().zoneId, time, this), true, false); + session.QueuePacket(GroupHeaderPacket.buildPacket(session.id, session.GetActor().zoneId, time, this)); + session.QueuePacket(GroupMembersBeginPacket.buildPacket(session.id, session.GetActor().zoneId, time, this)); int currentIndex = 0; while (true) { if (GetMemberCount() - currentIndex >= 64) - session.QueuePacket(GroupMembersX64Packet.buildPacket(session.id, session.GetActor().zoneId, time, members, ref currentIndex), true, false); + session.QueuePacket(GroupMembersX64Packet.buildPacket(session.id, session.GetActor().zoneId, time, members, ref currentIndex)); else if (GetMemberCount() - currentIndex >= 32) - session.QueuePacket(GroupMembersX32Packet.buildPacket(session.id, session.GetActor().zoneId, time, members, ref currentIndex), true, false); + session.QueuePacket(GroupMembersX32Packet.buildPacket(session.id, session.GetActor().zoneId, time, members, ref currentIndex)); else if (GetMemberCount() - currentIndex >= 16) - session.QueuePacket(GroupMembersX16Packet.buildPacket(session.id, session.GetActor().zoneId, time, members, ref currentIndex), true, false); + session.QueuePacket(GroupMembersX16Packet.buildPacket(session.id, session.GetActor().zoneId, time, members, ref currentIndex)); else if (GetMemberCount() - currentIndex > 0) - session.QueuePacket(GroupMembersX08Packet.buildPacket(session.id, session.GetActor().zoneId, time, members, ref currentIndex), true, false); + session.QueuePacket(GroupMembersX08Packet.buildPacket(session.id, session.GetActor().zoneId, time, members, ref currentIndex)); else break; } - session.QueuePacket(GroupMembersEndPacket.buildPacket(session.id, session.GetActor().zoneId, time, this), true, false); + session.QueuePacket(GroupMembersEndPacket.buildPacket(session.id, session.GetActor().zoneId, time, this)); } public void SendDeletePacket(Session session) { if (session != null) - session.QueuePacket(DeleteGroupPacket.buildPacket(session.id, this), true, false); + session.QueuePacket(DeleteGroupPacket.buildPacket(session.id, this)); } public virtual void SendInitWorkValues(Session session) diff --git a/FFXIVClassic Map Server/actors/group/MonsterParty.cs b/FFXIVClassic Map Server/actors/group/MonsterParty.cs index e6ae3dae..b560fd38 100644 --- a/FFXIVClassic Map Server/actors/group/MonsterParty.cs +++ b/FFXIVClassic Map Server/actors/group/MonsterParty.cs @@ -51,7 +51,7 @@ namespace FFXIVClassic_Map_Server.actors.group groupWork.setTarget("/_init"); SubPacket test = groupWork.buildPacket(session.id, session.id); - session.QueuePacket(test, true, false); + session.QueuePacket(test); } public override uint GetTypeId() diff --git a/FFXIVClassic Map Server/actors/group/Relation.cs b/FFXIVClassic Map Server/actors/group/Relation.cs index f9693751..807ef86b 100644 --- a/FFXIVClassic Map Server/actors/group/Relation.cs +++ b/FFXIVClassic Map Server/actors/group/Relation.cs @@ -70,7 +70,7 @@ namespace FFXIVClassic_Map_Server.actors.group SubPacket test = groupWork.buildPacket(session.id, session.id); test.DebugPrintSubPacket(); - session.QueuePacket(test, true, false); + session.QueuePacket(test); } } diff --git a/FFXIVClassic Map Server/actors/world/WorldMaster.cs b/FFXIVClassic Map Server/actors/world/WorldMaster.cs index 5174cdfb..132afc4d 100644 --- a/FFXIVClassic Map Server/actors/world/WorldMaster.cs +++ b/FFXIVClassic Map Server/actors/world/WorldMaster.cs @@ -17,24 +17,24 @@ namespace FFXIVClassic_Map_Server.Actors this.className = "WorldMaster"; } - public override SubPacket CreateScriptBindPacket(uint playerActorId) + public override SubPacket CreateScriptBindPacket() { List lParams; lParams = LuaUtils.CreateLuaParamList("/World/WorldMaster_event", false, false, false, false, false, null); - return ActorInstantiatePacket.BuildPacket(actorId, playerActorId, actorName, className, lParams); + return ActorInstantiatePacket.BuildPacket(actorId, actorName, className, lParams); } - public override BasePacket GetSpawnPackets(uint playerActorId) + public override List GetSpawnPackets() { List subpackets = new List(); - subpackets.Add(CreateAddActorPacket(playerActorId, 0)); - subpackets.Add(CreateSpeedPacket(playerActorId)); - subpackets.Add(CreateSpawnPositonPacket(playerActorId, 0x1)); - subpackets.Add(CreateNamePacket(playerActorId)); - subpackets.Add(CreateStatePacket(playerActorId)); - subpackets.Add(CreateIsZoneingPacket(playerActorId)); - subpackets.Add(CreateScriptBindPacket(playerActorId)); - return BasePacket.CreatePacket(subpackets, true, false); + subpackets.Add(CreateAddActorPacket(0)); + subpackets.Add(CreateSpeedPacket()); + subpackets.Add(CreateSpawnPositonPacket(0x1)); + subpackets.Add(CreateNamePacket()); + subpackets.Add(CreateStatePacket()); + subpackets.Add(CreateIsZoneingPacket()); + subpackets.Add(CreateScriptBindPacket()); + return subpackets; } } } diff --git a/FFXIVClassic Map Server/dataobjects/GuildleveData.cs b/FFXIVClassic Map Server/dataobjects/GuildleveData.cs new file mode 100644 index 00000000..32834f07 --- /dev/null +++ b/FFXIVClassic Map Server/dataobjects/GuildleveData.cs @@ -0,0 +1,61 @@ +using MySql.Data.MySqlClient; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FFXIVClassic_Map_Server.dataobjects +{ + class GuildleveData + { + public readonly uint id; + public readonly uint classType; + public readonly uint location; + public readonly ushort factionCreditRequired; + public readonly ushort level; + public readonly uint aetheryte; + public readonly uint plateId; + public readonly uint borderId; + public readonly uint objective; + public readonly byte timeLimit; + public readonly uint skill; + public readonly byte favorCount; + + public readonly sbyte[] aimNum = new sbyte[4]; + public readonly uint[] itemTarget = new uint[4]; + public readonly uint[] mobTarget = new uint[4]; + + public GuildleveData(MySqlDataReader reader) + { + id = reader.GetUInt32("id"); + classType = reader.GetUInt32("classType"); + location = reader.GetUInt32("location"); + factionCreditRequired = reader.GetUInt16("factionCreditRequired"); + level = reader.GetUInt16("level"); + aetheryte = reader.GetUInt32("aetheryte"); + plateId = reader.GetUInt32("plateId"); + borderId = reader.GetUInt32("borderId"); + objective = reader.GetUInt32("objective"); + timeLimit = reader.GetByte("timeLimit"); + skill = reader.GetUInt32("skill"); + favorCount = reader.GetByte("favorCount"); + + aimNum[0] = reader.GetSByte("aimNum1"); + aimNum[1] = reader.GetSByte("aimNum2"); + aimNum[2] = reader.GetSByte("aimNum3"); + aimNum[3] = reader.GetSByte("aimNum4"); + + itemTarget[0] = reader.GetUInt32("item1"); + itemTarget[1] = reader.GetUInt32("item2"); + itemTarget[2] = reader.GetUInt32("item3"); + itemTarget[3] = reader.GetUInt32("item4"); + + mobTarget[0] = reader.GetUInt32("mob1"); + mobTarget[1] = reader.GetUInt32("mob2"); + mobTarget[2] = reader.GetUInt32("mob3"); + mobTarget[3] = reader.GetUInt32("mob4"); + } + + } +} diff --git a/FFXIVClassic Map Server/dataobjects/InventoryItem.cs b/FFXIVClassic Map Server/dataobjects/InventoryItem.cs index aec328be..318ff875 100644 --- a/FFXIVClassic Map Server/dataobjects/InventoryItem.cs +++ b/FFXIVClassic Map Server/dataobjects/InventoryItem.cs @@ -30,7 +30,7 @@ namespace FFXIVClassic_Map_Server.dataobjects this.quantity = 1; this.slot = slot; - Item gItem = Server.GetItemGamedata(itemId); + ItemData gItem = Server.GetItemGamedata(itemId); itemType = gItem.isExclusive ? (byte)0x3 : (byte)0x0; } diff --git a/FFXIVClassic Map Server/dataobjects/Item.cs b/FFXIVClassic Map Server/dataobjects/ItemData.cs similarity index 99% rename from FFXIVClassic Map Server/dataobjects/Item.cs rename to FFXIVClassic Map Server/dataobjects/ItemData.cs index b9240aa7..c07dc4e1 100644 --- a/FFXIVClassic Map Server/dataobjects/Item.cs +++ b/FFXIVClassic Map Server/dataobjects/ItemData.cs @@ -3,7 +3,7 @@ using System; namespace FFXIVClassic_Map_Server.dataobjects { - class Item + class ItemData { //Basic public readonly uint catalogID; @@ -39,7 +39,7 @@ namespace FFXIVClassic_Map_Server.dataobjects public readonly int repairLevel; public readonly int repairLicense; - public Item(MySqlDataReader reader) + public ItemData(MySqlDataReader reader) { catalogID = reader.GetUInt32("catalogID"); name = reader.GetString("name"); @@ -387,7 +387,7 @@ namespace FFXIVClassic_Map_Server.dataobjects } - class EquipmentItem : Item + class EquipmentItem : ItemData { //graphics public readonly uint graphicsWeaponId; diff --git a/FFXIVClassic Map Server/dataobjects/Session.cs b/FFXIVClassic Map Server/dataobjects/Session.cs index d0d5db88..902b0b61 100644 --- a/FFXIVClassic Map Server/dataobjects/Session.cs +++ b/FFXIVClassic Map Server/dataobjects/Session.cs @@ -28,17 +28,18 @@ namespace FFXIVClassic_Map_Server.dataobjects { this.id = sessionId; playerActor = new Player(this, sessionId); - 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, bool isAuthed, bool isEncrypted) + public void QueuePacket(SubPacket subPacket) { - Server.GetWorldConnection().QueuePacket(subPacket, isAuthed, isEncrypted); + subPacket.SetTargetId(id); + Server.GetWorldConnection().QueuePacket(subPacket); } public Player GetActor() @@ -82,7 +83,7 @@ namespace FFXIVClassic_Map_Server.dataobjects playerActor.rotation = rot; playerActor.moveState = moveState; - GetActor().zone.UpdateActorPosition(GetActor()); + GetActor().GetZone().UpdateActorPosition(GetActor()); playerActor.QueuePositionUpdate(new Vector3(x,y,z)); } @@ -99,29 +100,11 @@ namespace FFXIVClassic_Map_Server.dataobjects //Remove missing actors for (int i = 0; i < actorInstanceList.Count; i++) { - if (list.Contains(actorInstanceList[i]) && actorInstanceList[i] is Npc) - { - Npc npc = (Npc)actorInstanceList[i]; - - - long milliseconds = DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond; - - - if (npc.GetUniqueId().Equals("1") && milliseconds - lastMilis > 1000) - { - lastMilis = milliseconds; - GetActor().QueuePacket(RemoveActorPacket.BuildPacket(playerActor.actorId, actorInstanceList[i].actorId)); - actorInstanceList.RemoveAt(i); - continue; - } - } - if (!list.Contains(actorInstanceList[i])) { - GetActor().QueuePacket(RemoveActorPacket.BuildPacket(playerActor.actorId, actorInstanceList[i].actorId)); + QueuePacket(RemoveActorPacket.BuildPacket(actorInstanceList[i].actorId)); actorInstanceList.RemoveAt(i); - } - + } } //Add new actors or move @@ -139,16 +122,14 @@ namespace FFXIVClassic_Map_Server.dataobjects if (actor is Character && ((Character)actor).isStatic) continue; - var packet = actor.CreatePositionUpdatePacket(playerActor.actorId); - - if (packet != null) - GetActor().QueuePacket(packet); + QueuePacket(actor.CreatePositionUpdatePacket()); } else - { - GetActor().QueuePacket(actor.GetSpawnPackets(playerActor.actorId, 1)); - GetActor().QueuePacket(actor.GetInitPackets(playerActor.actorId)); - GetActor().QueuePacket(actor.GetSetEventStatusPackets(playerActor.actorId)); + { + QueuePacket(actor.GetSpawnPackets(playerActor, 1)); + + QueuePacket(actor.GetInitPackets()); + QueuePacket(actor.GetSetEventStatusPackets()); actorInstanceList.Add(actor); if (actor is Npc) 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 7a3e33e1..1843e12b 100644 --- a/FFXIVClassic Map Server/lua/LuaEngine.cs +++ b/FFXIVClassic Map Server/lua/LuaEngine.cs @@ -21,13 +21,13 @@ namespace FFXIVClassic_Map_Server.lua { class LuaEngine { - const string FILEPATH_PLAYER = "./scripts/player.lua"; - const string FILEPATH_ZONE = "./scripts/unique/{0}/zone.lua"; - const string FILEPATH_CONTENT = "./scripts/content/{0}.lua"; - const string FILEPATH_COMMANDS = "./scripts/commands/{0}.lua"; - const string FILEPATH_DIRECTORS = "./scripts/directors/{0}.lua"; - const string FILEPATH_NPCS = "./scripts/unique/{0}/{1}/{2}.lua"; - const string FILEPATH_QUEST = "./scripts/quests/{0}/{1}.lua"; + public const string FILEPATH_PLAYER = "./scripts/player.lua"; + public const string FILEPATH_ZONE = "./scripts/unique/{0}/zone.lua"; + public const string FILEPATH_CONTENT = "./scripts/content/{0}.lua"; + public const string FILEPATH_COMMANDS = "./scripts/commands/{0}.lua"; + public const string FILEPATH_DIRECTORS = "./scripts/directors/{0}.lua"; + public const string FILEPATH_NPCS = "./scripts/unique/{0}/{1}/{2}.lua"; + public const string FILEPATH_QUEST = "./scripts/quests/{0}/{1}.lua"; private static LuaEngine mThisEngine; private Dictionary mSleepingOnTime = new Dictionary(); @@ -112,10 +112,18 @@ namespace FFXIVClassic_Map_Server.lua { if (mSleepingOnPlayerEvent.ContainsKey(player.actorId)) { - Coroutine coroutine = mSleepingOnPlayerEvent[player.actorId]; - mSleepingOnPlayerEvent.Remove(player.actorId); - DynValue value = coroutine.Resume(LuaUtils.CreateLuaParamObjectList(args)); - ResolveResume(null, coroutine, value); + try + { + Coroutine coroutine = mSleepingOnPlayerEvent[player.actorId]; + mSleepingOnPlayerEvent.Remove(player.actorId); + DynValue value = coroutine.Resume(LuaUtils.CreateLuaParamObjectList(args)); + ResolveResume(null, coroutine, value); + } + catch (ScriptRuntimeException e) + { + LuaEngine.SendError(player, String.Format("OnEventUpdated: {0}", e.DecoratedMessage)); + player.EndEvent(); + } } else player.EndEvent(); @@ -365,15 +373,23 @@ namespace FFXIVClassic_Map_Server.lua if (mSleepingOnPlayerEvent.ContainsKey(player.actorId)) { Coroutine coroutine = mSleepingOnPlayerEvent[player.actorId]; - mSleepingOnPlayerEvent.Remove(player.actorId); - DynValue value = coroutine.Resume(); - ResolveResume(null, coroutine, value); + mSleepingOnPlayerEvent.Remove(player.actorId); + + try{ + DynValue value = coroutine.Resume(); + ResolveResume(null, coroutine, value); + } + catch (ScriptRuntimeException e) + { + LuaEngine.SendError(player, String.Format("OnEventStarted: {0}", e.DecoratedMessage)); + player.EndEvent(); + } } else CallLuaFunction(player, target, "onEventStarted", false, LuaUtils.CreateLuaParamObjectList(lparams)); } - private DynValue ResolveResume(Actor actor, Coroutine coroutine, DynValue value) + public DynValue ResolveResume(Actor actor, Coroutine coroutine, DynValue value) { var isPlayer = actor is Player; @@ -579,22 +595,22 @@ namespace FFXIVClassic_Map_Server.lua script.Globals["GetStaticActor"] = (Func)Server.GetStaticActors; script.Globals["GetStaticActorById"] = (Func)Server.GetStaticActors; script.Globals["GetWorldMaster"] = (Func)Server.GetWorldManager().GetActor; - script.Globals["GetItemGamedata"] = (Func)Server.GetItemGamedata; + script.Globals["GetItemGamedata"] = (Func)Server.GetItemGamedata; + script.Globals["GetGuildleveGamedata"] = (Func)Server.GetGuildleveGamedata; script.Globals["GetLuaInstance"] = (Func)LuaEngine.GetInstance; script.Options.DebugPrint = s => { Program.Log.Debug(s); }; return script; } - private static void SendError(Player player, string message) + public static void SendError(Player player, string message) { message = "[LuaError] " + message; if (player == null) return; 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.QueuePacket(EndEventPacket.BuildPacket(player.actorId, player.currentEventOwner, player.currentEventName)); } } diff --git a/FFXIVClassic Map Server/packets/WorldPackets/Send/Group/CreateLinkshellPacket.cs b/FFXIVClassic Map Server/packets/WorldPackets/Send/Group/CreateLinkshellPacket.cs index fbee5641..5a64741f 100644 --- a/FFXIVClassic Map Server/packets/WorldPackets/Send/Group/CreateLinkshellPacket.cs +++ b/FFXIVClassic Map Server/packets/WorldPackets/Send/Group/CreateLinkshellPacket.cs @@ -24,7 +24,7 @@ namespace FFXIVClassic_Map_Server.packets.WorldPackets.Send.Group binWriter.Write((UInt32)master); } } - return new SubPacket(true, OPCODE, 0, session.id, data); + return new SubPacket(true, OPCODE, session.id, data); } } } diff --git a/FFXIVClassic Map Server/packets/WorldPackets/Send/Group/DeleteLinkshellPacket.cs b/FFXIVClassic Map Server/packets/WorldPackets/Send/Group/DeleteLinkshellPacket.cs index cf93bec4..d9460354 100644 --- a/FFXIVClassic Map Server/packets/WorldPackets/Send/Group/DeleteLinkshellPacket.cs +++ b/FFXIVClassic Map Server/packets/WorldPackets/Send/Group/DeleteLinkshellPacket.cs @@ -21,7 +21,7 @@ namespace FFXIVClassic_Map_Server.packets.WorldPackets.Send.Group binWriter.Write(Encoding.ASCII.GetBytes(name), 0, Encoding.ASCII.GetByteCount(name) >= 0x20 ? 0x20 : Encoding.ASCII.GetByteCount(name)); } } - return new SubPacket(true, OPCODE, 0, session.id, data); + return new SubPacket(true, OPCODE, session.id, data); } } } diff --git a/FFXIVClassic Map Server/packets/WorldPackets/Send/Group/GroupInviteResultPacket.cs b/FFXIVClassic Map Server/packets/WorldPackets/Send/Group/GroupInviteResultPacket.cs index a753bc9c..02ca4f25 100644 --- a/FFXIVClassic Map Server/packets/WorldPackets/Send/Group/GroupInviteResultPacket.cs +++ b/FFXIVClassic Map Server/packets/WorldPackets/Send/Group/GroupInviteResultPacket.cs @@ -25,7 +25,7 @@ namespace FFXIVClassic_Map_Server.packets.WorldPackets.Send.Group binWriter.Write((UInt32)result); } } - return new SubPacket(true, OPCODE, session.id, session.id, data); + return new SubPacket(true, OPCODE, session.id, data); } } diff --git a/FFXIVClassic Map Server/packets/WorldPackets/Send/Group/LinkshellChangePacket.cs b/FFXIVClassic Map Server/packets/WorldPackets/Send/Group/LinkshellChangePacket.cs index ec256612..b4e894c8 100644 --- a/FFXIVClassic Map Server/packets/WorldPackets/Send/Group/LinkshellChangePacket.cs +++ b/FFXIVClassic Map Server/packets/WorldPackets/Send/Group/LinkshellChangePacket.cs @@ -23,7 +23,7 @@ namespace FFXIVClassic_Map_Server.packets.WorldPackets.Send.Group binWriter.Write(Encoding.ASCII.GetBytes(lsName), 0, Encoding.ASCII.GetByteCount(lsName) >= 0x20 ? 0x20 : Encoding.ASCII.GetByteCount(lsName)); } } - return new SubPacket(true, OPCODE, session.id, session.id, data); + return new SubPacket(true, OPCODE, session.id, data); } } diff --git a/FFXIVClassic Map Server/packets/WorldPackets/Send/Group/LinkshellInviteCancelPacket.cs b/FFXIVClassic Map Server/packets/WorldPackets/Send/Group/LinkshellInviteCancelPacket.cs index f6823db0..9ad80615 100644 --- a/FFXIVClassic Map Server/packets/WorldPackets/Send/Group/LinkshellInviteCancelPacket.cs +++ b/FFXIVClassic Map Server/packets/WorldPackets/Send/Group/LinkshellInviteCancelPacket.cs @@ -17,7 +17,7 @@ namespace FFXIVClassic_Map_Server.packets.WorldPackets.Send.Group public static SubPacket BuildPacket(Session session) { byte[] data = new byte[PACKET_SIZE - 0x20]; - return new SubPacket(true, OPCODE, session.id, session.id, data); + return new SubPacket(true, OPCODE, session.id, data); } } } diff --git a/FFXIVClassic Map Server/packets/WorldPackets/Send/Group/LinkshellInvitePacket.cs b/FFXIVClassic Map Server/packets/WorldPackets/Send/Group/LinkshellInvitePacket.cs index fbe14e10..fee38aa0 100644 --- a/FFXIVClassic Map Server/packets/WorldPackets/Send/Group/LinkshellInvitePacket.cs +++ b/FFXIVClassic Map Server/packets/WorldPackets/Send/Group/LinkshellInvitePacket.cs @@ -25,7 +25,7 @@ namespace FFXIVClassic_Map_Server.packets.WorldPackets.Send.Group binWriter.Write(Encoding.ASCII.GetBytes(linkshellName), 0, Encoding.ASCII.GetByteCount(linkshellName) >= 0x20 ? 0x20 : Encoding.ASCII.GetByteCount(linkshellName)); } } - return new SubPacket(true, OPCODE, session.id, session.id, data); + return new SubPacket(true, OPCODE, session.id, data); } } } diff --git a/FFXIVClassic Map Server/packets/WorldPackets/Send/Group/LinkshellLeavePacket.cs b/FFXIVClassic Map Server/packets/WorldPackets/Send/Group/LinkshellLeavePacket.cs index 008add1a..b902903f 100644 --- a/FFXIVClassic Map Server/packets/WorldPackets/Send/Group/LinkshellLeavePacket.cs +++ b/FFXIVClassic Map Server/packets/WorldPackets/Send/Group/LinkshellLeavePacket.cs @@ -27,7 +27,7 @@ namespace FFXIVClassic_Map_Server.packets.WorldPackets.Send.Group binWriter.Write(Encoding.ASCII.GetBytes(lsName), 0, Encoding.ASCII.GetByteCount(lsName) >= 0x20 ? 0x20 : Encoding.ASCII.GetByteCount(lsName)); } } - return new SubPacket(true, OPCODE, session.id, session.id, data); + return new SubPacket(true, OPCODE, session.id, data); } } diff --git a/FFXIVClassic Map Server/packets/WorldPackets/Send/Group/LinkshellRankChangePacket.cs b/FFXIVClassic Map Server/packets/WorldPackets/Send/Group/LinkshellRankChangePacket.cs index b2584dc1..1791e492 100644 --- a/FFXIVClassic Map Server/packets/WorldPackets/Send/Group/LinkshellRankChangePacket.cs +++ b/FFXIVClassic Map Server/packets/WorldPackets/Send/Group/LinkshellRankChangePacket.cs @@ -27,7 +27,7 @@ namespace FFXIVClassic_Map_Server.packets.WorldPackets.Send.Group binWriter.Write((Byte)rank); } } - return new SubPacket(true, OPCODE, session.id, session.id, data); + return new SubPacket(true, OPCODE, session.id, data); } } diff --git a/FFXIVClassic Map Server/packets/WorldPackets/Send/Group/ModifyLinkshellPacket.cs b/FFXIVClassic Map Server/packets/WorldPackets/Send/Group/ModifyLinkshellPacket.cs index c1828777..c61a7d7c 100644 --- a/FFXIVClassic Map Server/packets/WorldPackets/Send/Group/ModifyLinkshellPacket.cs +++ b/FFXIVClassic Map Server/packets/WorldPackets/Send/Group/ModifyLinkshellPacket.cs @@ -35,7 +35,7 @@ namespace FFXIVClassic_Map_Server.packets.WorldPackets.Send.Group } } - return new SubPacket(true, OPCODE, 0, session.id, data); + return new SubPacket(true, OPCODE, session.id, data); } } } diff --git a/FFXIVClassic Map Server/packets/WorldPackets/Send/Group/PartyInvitePacket.cs b/FFXIVClassic Map Server/packets/WorldPackets/Send/Group/PartyInvitePacket.cs index 8df14982..de8ccb31 100644 --- a/FFXIVClassic Map Server/packets/WorldPackets/Send/Group/PartyInvitePacket.cs +++ b/FFXIVClassic Map Server/packets/WorldPackets/Send/Group/PartyInvitePacket.cs @@ -25,7 +25,7 @@ namespace FFXIVClassic_Map_Server.packets.WorldPackets.Send.Group binWriter.Write(Encoding.ASCII.GetBytes(name), 0, Encoding.ASCII.GetByteCount(name) >= 0x20 ? 0x20 : Encoding.ASCII.GetByteCount(name)); } } - return new SubPacket(true, OPCODE, session.id, session.id, data); + return new SubPacket(true, OPCODE, session.id, data); } public static SubPacket BuildPacket(Session session, uint actorId) @@ -39,7 +39,7 @@ namespace FFXIVClassic_Map_Server.packets.WorldPackets.Send.Group binWriter.Write((UInt32)actorId); } } - return new SubPacket(true, OPCODE, session.id, session.id, data); + return new SubPacket(true, OPCODE, session.id, data); } } } diff --git a/FFXIVClassic Map Server/packets/WorldPackets/Send/Group/PartyLeavePacket.cs b/FFXIVClassic Map Server/packets/WorldPackets/Send/Group/PartyLeavePacket.cs index 4251bc25..652e83d0 100644 --- a/FFXIVClassic Map Server/packets/WorldPackets/Send/Group/PartyLeavePacket.cs +++ b/FFXIVClassic Map Server/packets/WorldPackets/Send/Group/PartyLeavePacket.cs @@ -23,7 +23,7 @@ namespace FFXIVClassic_Map_Server.packets.WorldPackets.Send.Group binWriter.Write((UInt16)(isDisband ? 1 : 0)); } } - return new SubPacket(true, OPCODE, session.id, session.id, data); + return new SubPacket(true, OPCODE, session.id, data); } } diff --git a/FFXIVClassic Map Server/packets/WorldPackets/Send/Group/PartyModifyPacket.cs b/FFXIVClassic Map Server/packets/WorldPackets/Send/Group/PartyModifyPacket.cs index 064dff9d..4c58773e 100644 --- a/FFXIVClassic Map Server/packets/WorldPackets/Send/Group/PartyModifyPacket.cs +++ b/FFXIVClassic Map Server/packets/WorldPackets/Send/Group/PartyModifyPacket.cs @@ -24,7 +24,7 @@ namespace FFXIVClassic_Map_Server.packets.WorldPackets.Send.Group binWriter.Write(Encoding.ASCII.GetBytes(name), 0, Encoding.ASCII.GetByteCount(name) >= 0x20 ? 0x20 : Encoding.ASCII.GetByteCount(name)); } } - return new SubPacket(true, OPCODE, session.id, session.id, data); + return new SubPacket(true, OPCODE, session.id, data); } public static SubPacket BuildPacket(Session session, ushort command, uint actorId) @@ -38,7 +38,7 @@ namespace FFXIVClassic_Map_Server.packets.WorldPackets.Send.Group binWriter.Write((UInt32)actorId); } } - return new SubPacket(true, OPCODE, session.id, session.id, data); + return new SubPacket(true, OPCODE, session.id, data); } } diff --git a/FFXIVClassic Map Server/packets/WorldPackets/Send/SessionBeginConfirmPacket.cs b/FFXIVClassic Map Server/packets/WorldPackets/Send/SessionBeginConfirmPacket.cs index b56439b5..d05e8381 100644 --- a/FFXIVClassic Map Server/packets/WorldPackets/Send/SessionBeginConfirmPacket.cs +++ b/FFXIVClassic Map Server/packets/WorldPackets/Send/SessionBeginConfirmPacket.cs @@ -21,7 +21,7 @@ namespace FFXIVClassic_Map_Server.packets.WorldPackets.Send binWriter.Write((UInt16)errorCode); } } - return new SubPacket(true, OPCODE, 0, session.id, data); + return new SubPacket(true, OPCODE, session.id, data); } } } diff --git a/FFXIVClassic Map Server/packets/WorldPackets/Send/SessionEndConfirmPacket.cs b/FFXIVClassic Map Server/packets/WorldPackets/Send/SessionEndConfirmPacket.cs index 9e220947..3f518d51 100644 --- a/FFXIVClassic Map Server/packets/WorldPackets/Send/SessionEndConfirmPacket.cs +++ b/FFXIVClassic Map Server/packets/WorldPackets/Send/SessionEndConfirmPacket.cs @@ -22,7 +22,7 @@ namespace FFXIVClassic_Map_Server.packets.WorldPackets.Send binWriter.Write((UInt32)destinationZone); } } - return new SubPacket(true, OPCODE, 0, session.id, data); + return new SubPacket(true, OPCODE, session.id, data); } } } diff --git a/FFXIVClassic Map Server/packets/WorldPackets/Send/WorldRequestZoneChangePacket.cs b/FFXIVClassic Map Server/packets/WorldPackets/Send/WorldRequestZoneChangePacket.cs index 259d5631..197ca935 100644 --- a/FFXIVClassic Map Server/packets/WorldPackets/Send/WorldRequestZoneChangePacket.cs +++ b/FFXIVClassic Map Server/packets/WorldPackets/Send/WorldRequestZoneChangePacket.cs @@ -31,7 +31,7 @@ namespace FFXIVClassic_Map_Server.packets.WorldPackets.Send } } - return new SubPacket(OPCODE, sessionId, sessionId, data); + return new SubPacket(OPCODE, sessionId, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/Actor/ActorDoEmotePacket.cs b/FFXIVClassic Map Server/packets/send/Actor/ActorDoEmotePacket.cs index 17767f3d..312ab394 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/ActorDoEmotePacket.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/ActorDoEmotePacket.cs @@ -10,7 +10,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor public const ushort OPCODE = 0x00E1; public const uint PACKET_SIZE = 0x30; - public static SubPacket BuildPacket(uint sourceActorId, uint targetActorId, uint targettedActorId, uint animationId, uint descriptionId) + public static SubPacket BuildPacket(uint sourceActorId, uint targettedActorId, uint animationId, uint descriptionId) { byte[] data = new byte[PACKET_SIZE - 0x20]; @@ -32,7 +32,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor } } - SubPacket packet = new SubPacket(OPCODE, sourceActorId, targetActorId, data); + SubPacket packet = new SubPacket(OPCODE, sourceActorId, data); packet.DebugPrintSubPacket(); return packet; } diff --git a/FFXIVClassic Map Server/packets/send/Actor/ActorInstantiatePacket.cs b/FFXIVClassic Map Server/packets/send/Actor/ActorInstantiatePacket.cs index 49b50b9f..e76853cf 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/ActorInstantiatePacket.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/ActorInstantiatePacket.cs @@ -13,7 +13,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor public const ushort OPCODE = 0x00CC; public const uint PACKET_SIZE = 0x128; - public static SubPacket BuildPacket(uint sourceActorID, uint targetActorID, string objectName, string className, List initParams) + public static SubPacket BuildPacket(uint sourceActorId, string objectName, string className, List initParams) { byte[] data = new byte[PACKET_SIZE - 0x20]; @@ -33,7 +33,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor } } - return new SubPacket(OPCODE, sourceActorID, targetActorID, data); + return new SubPacket(OPCODE, sourceActorId, data); } } diff --git a/FFXIVClassic Map Server/packets/send/Actor/ActorSpecialGraphicPacket.cs b/FFXIVClassic Map Server/packets/send/Actor/ActorSpecialGraphicPacket.cs index de6fc3de..45945c2c 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/ActorSpecialGraphicPacket.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/ActorSpecialGraphicPacket.cs @@ -15,7 +15,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor public const ushort OPCODE = 0x00E3; public const uint PACKET_SIZE = 0x28; - public static SubPacket BuildPacket(uint playerActorID, uint targetActorID, int iconCode) + public static SubPacket BuildPacket(uint sourceActorId, int iconCode) { byte[] data = new byte[PACKET_SIZE - 0x20]; @@ -27,7 +27,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor } } - return new SubPacket(OPCODE, targetActorID, playerActorID, data); + return new SubPacket(OPCODE, sourceActorId, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/Actor/AddActorPacket.cs b/FFXIVClassic Map Server/packets/send/Actor/AddActorPacket.cs index 138fdbe7..6cf7d5f9 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/AddActorPacket.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/AddActorPacket.cs @@ -9,12 +9,12 @@ namespace FFXIVClassic_Map_Server.packets.send.actor public const ushort OPCODE = 0x00CA; public const uint PACKET_SIZE = 0x28; - public static SubPacket BuildPacket(uint playerActorID, uint actorID, byte val) + public static SubPacket BuildPacket(uint sourceActorId, byte val) { byte[] data = new byte[PACKET_SIZE-0x20]; data[0] = val; //Why? - return new SubPacket(OPCODE, playerActorID, actorID, data); + return new SubPacket(OPCODE, sourceActorId, data); } } diff --git a/FFXIVClassic Map Server/packets/send/Actor/BattleAction1Packet.cs b/FFXIVClassic Map Server/packets/send/Actor/BattleAction1Packet.cs deleted file mode 100644 index 84122ce1..00000000 --- a/FFXIVClassic Map Server/packets/send/Actor/BattleAction1Packet.cs +++ /dev/null @@ -1,27 +0,0 @@ -using FFXIVClassic.Common; -using System.IO; - -using FFXIVClassic.Common; - -namespace FFXIVClassic_Map_Server.packets.send.actor -{ - class BattleAction1Packet - { - public const ushort OPCODE = 0x0139; - public const uint PACKET_SIZE = 0x58; - - public static SubPacket BuildPacket(uint sourceId, uint targetId) - { - byte[] data = new byte[PACKET_SIZE - 0x20]; - - using (MemoryStream mem = new MemoryStream(data)) - { - using (BinaryWriter binWriter = new BinaryWriter(mem)) - { - } - } - - return new SubPacket(OPCODE, sourceId, targetId, data); - } - } -} diff --git a/FFXIVClassic Map Server/packets/send/Actor/DeleteAllActorsPacket.cs b/FFXIVClassic Map Server/packets/send/Actor/DeleteAllActorsPacket.cs index b2052341..b413eb7d 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/DeleteAllActorsPacket.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/DeleteAllActorsPacket.cs @@ -9,9 +9,9 @@ namespace FFXIVClassic_Map_Server.packets.send.actor public const ushort OPCODE = 0x0007; public const uint PACKET_SIZE = 0x28; - public static SubPacket BuildPacket(uint playerActorID) + public static SubPacket BuildPacket(uint sourceActorId) { - return new SubPacket(OPCODE, playerActorID, playerActorID, new byte[8]); + return new SubPacket(OPCODE, sourceActorId, new byte[8]); } } } diff --git a/FFXIVClassic Map Server/packets/send/Actor/MoveActorToPositionPacket.cs b/FFXIVClassic Map Server/packets/send/Actor/MoveActorToPositionPacket.cs index e807c4d6..884fb575 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/MoveActorToPositionPacket.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/MoveActorToPositionPacket.cs @@ -10,7 +10,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor public const ushort OPCODE = 0x00CF; public const uint PACKET_SIZE = 0x50; - public static SubPacket BuildPacket(uint playerActorID, uint targetActorID, float x, float y, float z, float rot, ushort moveState) + public static SubPacket BuildPacket(uint sourceActorId, float x, float y, float z, float rot, ushort moveState) { byte[] data = new byte[PACKET_SIZE - 0x20]; @@ -27,7 +27,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor } } - SubPacket packet = new SubPacket(OPCODE, playerActorID, targetActorID, data); + SubPacket packet = new SubPacket(OPCODE, sourceActorId, data); return packet; } diff --git a/FFXIVClassic Map Server/packets/send/Actor/PlayAnimationOnActorPacket.cs b/FFXIVClassic Map Server/packets/send/Actor/PlayAnimationOnActorPacket.cs index c186e0d9..cd5ed453 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/PlayAnimationOnActorPacket.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/PlayAnimationOnActorPacket.cs @@ -12,9 +12,9 @@ namespace FFXIVClassic_Map_Server.packets.send.actor public const ushort OPCODE = 0x00DA; public const uint PACKET_SIZE = 0x28; - public static SubPacket BuildPacket(uint playerActorID, uint targetActorID, uint animationID) + public static SubPacket BuildPacket(uint sourceActorId, uint animationID) { - return new SubPacket(OPCODE, playerActorID, targetActorID, BitConverter.GetBytes((ulong)animationID)); + return new SubPacket(OPCODE, sourceActorId, BitConverter.GetBytes((ulong)animationID)); } } } diff --git a/FFXIVClassic Map Server/packets/send/Actor/PlayBGAnimation.cs b/FFXIVClassic Map Server/packets/send/Actor/PlayBGAnimation.cs index 7ffc20f7..597b8373 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/PlayBGAnimation.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/PlayBGAnimation.cs @@ -12,7 +12,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor public const ushort OPCODE = 0x00D9; public const uint PACKET_SIZE = 0x28; - public static SubPacket BuildPacket(uint playerActorID, uint targetActorID, string animName) + public static SubPacket BuildPacket(uint sourceActorId, string animName) { byte[] data = new byte[PACKET_SIZE - 0x20]; @@ -24,7 +24,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor } } - return new SubPacket(OPCODE, playerActorID, targetActorID, data); + return new SubPacket(OPCODE, sourceActorId, data); } } diff --git a/FFXIVClassic Map Server/packets/send/Actor/RemoveActorPacket.cs b/FFXIVClassic Map Server/packets/send/Actor/RemoveActorPacket.cs index 9240f53e..06344f2a 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/RemoveActorPacket.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/RemoveActorPacket.cs @@ -10,7 +10,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor public const ushort OPCODE = 0x00CB; public const uint PACKET_SIZE = 0x28; - public static SubPacket BuildPacket(uint playerActorID, uint actorId) + public static SubPacket BuildPacket(uint sourceActorId) { byte[] data = new byte[PACKET_SIZE - 0x20]; @@ -18,11 +18,11 @@ namespace FFXIVClassic_Map_Server.packets.send.actor { using (BinaryWriter binWriter = new BinaryWriter(mem)) { - binWriter.Write((UInt32)actorId); + binWriter.Write((UInt32)sourceActorId); } } - return new SubPacket(OPCODE, actorId, playerActorID, data); + return new SubPacket(OPCODE, sourceActorId, data); } } diff --git a/FFXIVClassic Map Server/packets/send/Actor/SetActorAppearancePacket.cs b/FFXIVClassic Map Server/packets/send/Actor/SetActorAppearancePacket.cs index 0e4ed34a..f1a864ea 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/SetActorAppearancePacket.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/SetActorAppearancePacket.cs @@ -53,7 +53,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor appearanceIDs = appearanceTable; } - public SubPacket BuildPacket(uint playerActorID, uint actorID) + public SubPacket BuildPacket(uint sourceActorId) { byte[] data = new byte[PACKET_SIZE - 0x20]; @@ -74,7 +74,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor } - SubPacket packet = new SubPacket(OPCODE, playerActorID, actorID, data); + SubPacket packet = new SubPacket(OPCODE, sourceActorId, data); return packet; } diff --git a/FFXIVClassic Map Server/packets/send/Actor/_0xD8Packet.cs b/FFXIVClassic Map Server/packets/send/Actor/SetActorBGPropertiesPacket.cs similarity index 74% rename from FFXIVClassic Map Server/packets/send/Actor/_0xD8Packet.cs rename to FFXIVClassic Map Server/packets/send/Actor/SetActorBGPropertiesPacket.cs index 6753f7b6..f1acefcb 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/_0xD8Packet.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/SetActorBGPropertiesPacket.cs @@ -5,12 +5,12 @@ using System; namespace FFXIVClassic_Map_Server.packets.send.actor { - class _0xD8Packet + class SetActorBGPropertiesPacket { public const ushort OPCODE = 0x00D8; public const uint PACKET_SIZE = 0x28; - public static SubPacket BuildPacket(uint playerActorID, uint targetActorID, uint val1, uint val2) + public static SubPacket BuildPacket(uint sourceActorId, uint val1, uint val2) { byte[] data = new byte[PACKET_SIZE - 0x20]; @@ -23,7 +23,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor } } - return new SubPacket(OPCODE, playerActorID, targetActorID, data); + return new SubPacket(OPCODE, sourceActorId, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/Actor/SetActorIconPacket.cs b/FFXIVClassic Map Server/packets/send/Actor/SetActorIconPacket.cs index 6dde6397..e5d52265 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/SetActorIconPacket.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/SetActorIconPacket.cs @@ -14,7 +14,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor public const ushort OPCODE = 0x0145; public const uint PACKET_SIZE = 0x28; - public static SubPacket BuildPacket(uint playerActorID, uint targetActorID, uint iconCode) + public static SubPacket BuildPacket(uint sourceActorId, uint iconCode) { byte[] data = new byte[PACKET_SIZE - 0x20]; @@ -26,7 +26,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor } } - return new SubPacket(OPCODE, playerActorID, targetActorID, data); + return new SubPacket(OPCODE, sourceActorId, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/Actor/SetActorIsZoningPacket.cs b/FFXIVClassic Map Server/packets/send/Actor/SetActorIsZoningPacket.cs index 4dfa29f3..13dff947 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/SetActorIsZoningPacket.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/SetActorIsZoningPacket.cs @@ -7,11 +7,11 @@ namespace FFXIVClassic_Map_Server.packets.send.actor public const ushort OPCODE = 0x017B; public const uint PACKET_SIZE = 0x28; - public static SubPacket BuildPacket(uint playerActorID, uint targetActorID, bool isDimmed) + public static SubPacket BuildPacket(uint sourceActorId, bool isDimmed) { byte[] data = new byte[PACKET_SIZE - 0x20]; data[0] = (byte)(isDimmed ? 1 : 0); - return new SubPacket(OPCODE, playerActorID, targetActorID, data); + return new SubPacket(OPCODE, sourceActorId, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/Actor/SetActorNamePacket.cs b/FFXIVClassic Map Server/packets/send/Actor/SetActorNamePacket.cs index 9df353ce..bd421600 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/SetActorNamePacket.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/SetActorNamePacket.cs @@ -11,7 +11,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor public const ushort OPCODE = 0x013D; public const uint PACKET_SIZE = 0x48; - public static SubPacket BuildPacket(uint playerActorID, uint targetActorID, uint displayNameID, string customName) + public static SubPacket BuildPacket(uint sourceActorId, uint displayNameID, string customName) { byte[] data = new byte[PACKET_SIZE - 0x20]; @@ -29,7 +29,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor } } - SubPacket packet = new SubPacket(OPCODE, playerActorID, targetActorID, data); + SubPacket packet = new SubPacket(OPCODE, sourceActorId, data); return packet; } diff --git a/FFXIVClassic Map Server/packets/send/Actor/SetActorPositionPacket.cs b/FFXIVClassic Map Server/packets/send/Actor/SetActorPositionPacket.cs index fce26791..a19dba52 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/SetActorPositionPacket.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/SetActorPositionPacket.cs @@ -19,7 +19,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor public const ushort SPAWNTYPE_WARP_DUTY2 = 6; public const ushort SPAWNTYPE_WARP_LIGHT = 7; - public static SubPacket BuildPacket(uint sourceActorID, uint targetActorID, uint actorId, float x, float y, float z, float rotation, ushort spawnType, bool isZoningPlayer) + public static SubPacket BuildPacket(uint sourceActorId, uint actorId, float x, float y, float z, float rotation, ushort spawnType, bool isZoningPlayer) { byte[] data = new byte[PACKET_SIZE-0x20]; @@ -41,7 +41,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor } } - return new SubPacket(OPCODE, sourceActorID, targetActorID, data); + return new SubPacket(OPCODE, sourceActorId, data); } } diff --git a/FFXIVClassic Map Server/packets/send/Actor/SetActorPropetyPacket.cs b/FFXIVClassic Map Server/packets/send/Actor/SetActorPropetyPacket.cs index a20ccb82..aabba72e 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/SetActorPropetyPacket.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/SetActorPropetyPacket.cs @@ -113,7 +113,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor string[] split = name.Split('.'); int arrayIndex = 0; - if (!(split[0].Equals("work") || split[0].Equals("charaWork") || split[0].Equals("playerWork") || split[0].Equals("npcWork"))) + if (!(split[0].Equals("work") || split[0].Equals("charaWork") || split[0].Equals("playerWork") || split[0].Equals("npcWork") || split[0].Equals("guildleveWork"))) return false; Object curObj = actor; @@ -159,6 +159,8 @@ namespace FFXIVClassic_Map_Server.packets.send.actor return AddByte(id, (byte)(((bool)curObj) ? 1 : 0)); else if (curObj is byte) return AddByte(id, (byte)curObj); + else if (curObj is sbyte) + return AddByte(id, (byte)(sbyte)curObj); else if (curObj is ushort) return AddShort(id, (ushort)curObj); else if (curObj is short) @@ -207,14 +209,14 @@ namespace FFXIVClassic_Map_Server.packets.send.actor currentTarget = newTarget; } - public SubPacket BuildPacket(uint playerActorID, uint actorID) + public SubPacket BuildPacket(uint sourceActorId) { binWriter.Seek(0, SeekOrigin.Begin); binWriter.Write((byte)runningByteTotal); CloseStreams(); - SubPacket packet = new SubPacket(OPCODE, actorID, playerActorID, data); + SubPacket packet = new SubPacket(OPCODE, sourceActorId, data); return packet; } diff --git a/FFXIVClassic Map Server/packets/send/Actor/SetActorSpeedPacket.cs b/FFXIVClassic Map Server/packets/send/Actor/SetActorSpeedPacket.cs index d266ef5b..0e557cf4 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/SetActorSpeedPacket.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/SetActorSpeedPacket.cs @@ -14,7 +14,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor public const float DEFAULT_RUN = 5.0f; public const float DEFAULT_ACTIVE = 5.0f; - public static SubPacket BuildPacket(uint playerActorID, uint targetActorID) + public static SubPacket BuildPacket(uint sourceActorId) { byte[] data = new byte[PACKET_SIZE - 0x20]; @@ -40,10 +40,10 @@ namespace FFXIVClassic_Map_Server.packets.send.actor } } - return new SubPacket(OPCODE, playerActorID, targetActorID, data); + return new SubPacket(OPCODE, sourceActorId, data); } - public static SubPacket BuildPacket(uint playerActorID, uint targetActorID, float stopSpeed, float walkSpeed, float runSpeed, float activeSpeed) + public static SubPacket BuildPacket(uint sourceActorId, float stopSpeed, float walkSpeed, float runSpeed, float activeSpeed) { byte[] data = new byte[PACKET_SIZE - 0x20]; @@ -69,7 +69,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor } } - return new SubPacket(OPCODE, playerActorID, targetActorID, data); + return new SubPacket(OPCODE, sourceActorId, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/Actor/SetActorStatePacket.cs b/FFXIVClassic Map Server/packets/send/Actor/SetActorStatePacket.cs index 356b4f38..ddc1fb43 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/SetActorStatePacket.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/SetActorStatePacket.cs @@ -30,10 +30,10 @@ namespace FFXIVClassic_Map_Server.packets.send.actor public const ushort OPCODE = 0x134; public const uint PACKET_SIZE = 0x28; - public static SubPacket BuildPacket(uint playerActorID, uint targetID, uint mainState, uint subState) + public static SubPacket BuildPacket(uint sourceActorId, uint mainState, uint subState) { ulong combined = (mainState & 0xFF) | ((subState & 0xFF) << 8); - return new SubPacket(OPCODE, playerActorID, targetID, BitConverter.GetBytes(combined)); + return new SubPacket(OPCODE, sourceActorId, BitConverter.GetBytes(combined)); } } } diff --git a/FFXIVClassic Map Server/packets/send/Actor/SetActorStatusAllPacket.cs b/FFXIVClassic Map Server/packets/send/Actor/SetActorStatusAllPacket.cs index 429096ef..04d0d7f4 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/SetActorStatusAllPacket.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/SetActorStatusAllPacket.cs @@ -11,7 +11,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor public const ushort OPCODE = 0x0179; public const uint PACKET_SIZE = 0x48; - public static SubPacket BuildPacket(uint playerActorID, uint targetActorID, ushort[] statusIds) + public static SubPacket BuildPacket(uint sourceActorId, ushort[] statusIds) { byte[] data = new byte[PACKET_SIZE - 0x20]; @@ -28,7 +28,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor } } - SubPacket packet = new SubPacket(OPCODE, playerActorID, targetActorID, data); + SubPacket packet = new SubPacket(OPCODE, sourceActorId, data); return packet; } } diff --git a/FFXIVClassic Map Server/packets/send/Actor/SetActorStatusPacket.cs b/FFXIVClassic Map Server/packets/send/Actor/SetActorStatusPacket.cs index 8bd6172d..32c98f5b 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/SetActorStatusPacket.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/SetActorStatusPacket.cs @@ -11,7 +11,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor public const ushort OPCODE = 0x0177; public const uint PACKET_SIZE = 0x28; - public static SubPacket BuildPacket(uint playerActorID, uint targetActorID, ushort index, ushort statusCode) + public static SubPacket BuildPacket(uint sourceActorId, ushort index, ushort statusCode) { byte[] data = new byte[PACKET_SIZE - 0x20]; @@ -24,7 +24,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor } } - return new SubPacket(OPCODE, playerActorID, targetActorID, data); + return new SubPacket(OPCODE, sourceActorId, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/Actor/SetActorSubStatPacket.cs b/FFXIVClassic Map Server/packets/send/Actor/SetActorSubStatPacket.cs index b1f36b40..5c8da573 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/SetActorSubStatPacket.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/SetActorSubStatPacket.cs @@ -10,7 +10,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor public const ushort OPCODE = 0x144; public const uint PACKET_SIZE = 0x28; - public static SubPacket BuildPacket(uint playerActorID, uint targetID, byte breakage, int leftChant, int rightChant, int guard, int wasteStat, int statMode, uint idleAnimationId) + public static SubPacket BuildPacket(uint sourceActorId, byte breakage, int leftChant, int rightChant, int guard, int wasteStat, int statMode, uint idleAnimationId) { byte[] data = new byte[PACKET_SIZE - 0x20]; @@ -28,7 +28,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor } } - return new SubPacket(OPCODE, playerActorID, targetID, data); + return new SubPacket(OPCODE, sourceActorId, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/Actor/SetActorTargetAnimatedPacket.cs b/FFXIVClassic Map Server/packets/send/Actor/SetActorTargetAnimatedPacket.cs index f2f86d75..6cae2cf8 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/SetActorTargetAnimatedPacket.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/SetActorTargetAnimatedPacket.cs @@ -9,9 +9,9 @@ namespace FFXIVClassic_Map_Server.packets.send.actor public const ushort OPCODE = 0x00D3; public const uint PACKET_SIZE = 0x28; - public static SubPacket BuildPacket(uint playerActorID, uint targetActorID, uint targetID) + public static SubPacket BuildPacket(uint sourceActorId, uint targetID) { - return new SubPacket(OPCODE, playerActorID, targetID, BitConverter.GetBytes((ulong)targetID)); + return new SubPacket(OPCODE, sourceActorId, BitConverter.GetBytes((ulong)targetID)); } } } diff --git a/FFXIVClassic Map Server/packets/send/Actor/SetActorTargetPacket.cs b/FFXIVClassic Map Server/packets/send/Actor/SetActorTargetPacket.cs index cd2e86e6..1fa2e8b6 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/SetActorTargetPacket.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/SetActorTargetPacket.cs @@ -8,9 +8,9 @@ namespace FFXIVClassic_Map_Server.packets.send.actor public const ushort OPCODE = 0x00DB; public const uint PACKET_SIZE = 0x28; - public static SubPacket BuildPacket(uint playerActorID, uint targetActorID, uint targetID) + public static SubPacket BuildPacket(uint sourceActorId, uint targetID) { - return new SubPacket(OPCODE, playerActorID, targetID, BitConverter.GetBytes((ulong)targetID)); + return new SubPacket(OPCODE, sourceActorId, BitConverter.GetBytes((ulong)targetID)); } } } diff --git a/FFXIVClassic Map Server/packets/send/Actor/_0x132Packet.cs b/FFXIVClassic Map Server/packets/send/Actor/_0x132Packet.cs index b0f8bb89..1b6561ae 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/_0x132Packet.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/_0x132Packet.cs @@ -11,7 +11,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor public const ushort OPCODE = 0x132; public const uint PACKET_SIZE = 0x48; - public static SubPacket BuildPacket(uint playerActorID, ushort number, string function) + public static SubPacket BuildPacket(uint sourceActorId, ushort number, string function) { byte[] data = new byte[PACKET_SIZE - 0x20]; @@ -24,7 +24,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor } } - return new SubPacket(OPCODE, playerActorID, playerActorID, data); + return new SubPacket(OPCODE, sourceActorId, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/Actor/_0xD9Packet.cs b/FFXIVClassic Map Server/packets/send/Actor/_0xD9Packet.cs deleted file mode 100644 index f5198508..00000000 --- a/FFXIVClassic Map Server/packets/send/Actor/_0xD9Packet.cs +++ /dev/null @@ -1,29 +0,0 @@ -using System.IO; - -using FFXIVClassic.Common; -using System; -using System.Text; - -namespace FFXIVClassic_Map_Server.packets.send.actor -{ - class _0xD9Packet - { - public const ushort OPCODE = 0x00D9; - public const uint PACKET_SIZE = 0x28; - - public static SubPacket BuildPacket(uint playerActorID, uint targetActorID, string anim) - { - byte[] data = new byte[PACKET_SIZE - 0x20]; - - using (MemoryStream mem = new MemoryStream(data)) - { - using (BinaryWriter binWriter = new BinaryWriter(mem)) - { - binWriter.Write(Encoding.ASCII.GetBytes(anim), 0, Encoding.ASCII.GetByteCount(anim) >= 4 ? 4 : Encoding.ASCII.GetByteCount(anim)); - } - } - - return new SubPacket(OPCODE, playerActorID, targetActorID, data); - } - } -} diff --git a/FFXIVClassic Map Server/packets/send/Actor/_0xFPacket.cs b/FFXIVClassic Map Server/packets/send/Actor/_0xFPacket.cs index 2f54191d..4826218e 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/_0xFPacket.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/_0xFPacket.cs @@ -9,7 +9,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor public const ushort OPCODE = 0x000F; public const uint PACKET_SIZE = 0x38; - public static SubPacket BuildPacket(uint playerActorID, uint targetActorID) + public static SubPacket BuildPacket(uint sourceActor) { byte[] data = new byte[PACKET_SIZE - 0x20]; @@ -21,7 +21,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor } } - return new SubPacket(OPCODE, playerActorID, targetActorID, data); + return new SubPacket(OPCODE, sourceActor, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/Actor/battle/BattleActionX00Packet.cs b/FFXIVClassic Map Server/packets/send/Actor/battle/BattleActionX00Packet.cs index ba3f8b2e..99781b9e 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/battle/BattleActionX00Packet.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/battle/BattleActionX00Packet.cs @@ -32,7 +32,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.battle } } - return new SubPacket(OPCODE, sourceActorId, playerActorID, data); + return new SubPacket(OPCODE, sourceActorId, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/Actor/battle/BattleActionX01Packet.cs b/FFXIVClassic Map Server/packets/send/Actor/battle/BattleActionX01Packet.cs index 29ffec17..cf57769b 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/battle/BattleActionX01Packet.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/battle/BattleActionX01Packet.cs @@ -2,8 +2,6 @@ using System; using System.IO; -using FFXIVClassic.Common; - namespace FFXIVClassic_Map_Server.packets.send.actor.battle { // see xtx_command @@ -47,7 +45,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.battle } } - return new SubPacket(OPCODE, sourceActorId, playerActorID, data); + return new SubPacket(OPCODE, sourceActorId, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/Actor/battle/BattleActionX10Packet.cs b/FFXIVClassic Map Server/packets/send/Actor/battle/BattleActionX10Packet.cs index 45884b14..b09c7834 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/battle/BattleActionX10Packet.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/battle/BattleActionX10Packet.cs @@ -55,7 +55,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.battle } } - return new SubPacket(OPCODE, sourceActorId, playerActorID, data); + return new SubPacket(OPCODE, sourceActorId, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/Actor/battle/BattleActionX18Packet.cs b/FFXIVClassic Map Server/packets/send/Actor/battle/BattleActionX18Packet.cs index 8f8e8fdd..c080a32a 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/battle/BattleActionX18Packet.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/battle/BattleActionX18Packet.cs @@ -55,7 +55,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.battle } } - return new SubPacket(OPCODE, sourceActorId, playerActorID, data); + return new SubPacket(OPCODE, sourceActorId, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/Actor/events/SetEmoteEventCondition.cs b/FFXIVClassic Map Server/packets/send/Actor/events/SetEmoteEventCondition.cs index f23866c2..49814e28 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/events/SetEmoteEventCondition.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/events/SetEmoteEventCondition.cs @@ -13,7 +13,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.events public const ushort OPCODE = 0x016C; public const uint PACKET_SIZE = 0x48; - public static SubPacket BuildPacket(uint playerActorID, uint sourceActorID, EventList.EmoteEventCondition condition) + public static SubPacket BuildPacket(uint sourceActorId, EventList.EmoteEventCondition condition) { byte[] data = new byte[PACKET_SIZE - 0x20]; @@ -27,7 +27,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.events } } - return new SubPacket(OPCODE, sourceActorID, playerActorID, data); + return new SubPacket(OPCODE, sourceActorId, data); } } diff --git a/FFXIVClassic Map Server/packets/send/Actor/events/SetEventStatus.cs b/FFXIVClassic Map Server/packets/send/Actor/events/SetEventStatus.cs index c86d3a0f..5f0e85e8 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/events/SetEventStatus.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/events/SetEventStatus.cs @@ -11,7 +11,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.events public const ushort OPCODE = 0x0136; public const uint PACKET_SIZE = 0x48; - public static SubPacket BuildPacket(uint playerActorID, uint sourceActorID, bool enabled, byte unknown2, string conditionName) + public static SubPacket BuildPacket(uint sourceActorId, bool enabled, byte unknown2, string conditionName) { byte[] data = new byte[PACKET_SIZE - 0x20]; @@ -25,7 +25,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.events } } - return new SubPacket(OPCODE, sourceActorID, playerActorID, data); + return new SubPacket(OPCODE, sourceActorId, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/Actor/events/SetNoticeEventCondition.cs b/FFXIVClassic Map Server/packets/send/Actor/events/SetNoticeEventCondition.cs index f6ed17d4..3f866f44 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/events/SetNoticeEventCondition.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/events/SetNoticeEventCondition.cs @@ -12,7 +12,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.events public const ushort OPCODE = 0x016B; public const uint PACKET_SIZE = 0x48; - public static SubPacket BuildPacket(uint playerActorID, uint sourceActorID, EventList.NoticeEventCondition condition) + public static SubPacket BuildPacket(uint sourceActorId, EventList.NoticeEventCondition condition) { byte[] data = new byte[PACKET_SIZE - 0x20]; @@ -26,7 +26,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.events } } - return new SubPacket(OPCODE, sourceActorID, playerActorID, data); + return new SubPacket(OPCODE, sourceActorId, data); } } diff --git a/FFXIVClassic Map Server/packets/send/Actor/events/SetPushEventConditionWithCircle.cs b/FFXIVClassic Map Server/packets/send/Actor/events/SetPushEventConditionWithCircle.cs index a093788a..0caa1982 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/events/SetPushEventConditionWithCircle.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/events/SetPushEventConditionWithCircle.cs @@ -12,7 +12,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.events public const ushort OPCODE = 0x016F; public const uint PACKET_SIZE = 0x58; - public static SubPacket BuildPacket(uint playerActorID, uint sourceActorID, EventList.PushCircleEventCondition condition) + public static SubPacket BuildPacket(uint sourceActorId, EventList.PushCircleEventCondition condition) { byte[] data = new byte[PACKET_SIZE - 0x20]; @@ -31,7 +31,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.events } } - return new SubPacket(OPCODE, sourceActorID, playerActorID, data); + return new SubPacket(OPCODE, sourceActorId, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/Actor/events/SetPushEventConditionWithFan.cs b/FFXIVClassic Map Server/packets/send/Actor/events/SetPushEventConditionWithFan.cs index 8b070ea7..21b270fb 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/events/SetPushEventConditionWithFan.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/events/SetPushEventConditionWithFan.cs @@ -12,7 +12,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.events public const ushort OPCODE = 0x0170; public const uint PACKET_SIZE = 0x60; - public static SubPacket BuildPacket(uint playerActorID, uint sourceActorID, EventList.PushFanEventCondition condition) + public static SubPacket BuildPacket(uint sourceActorId, EventList.PushFanEventCondition condition) { byte[] data = new byte[PACKET_SIZE - 0x20]; @@ -23,7 +23,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.events binWriter.Write((Single)condition.radius); binWriter.Write((UInt32)0xbfc90fdb); binWriter.Write((UInt32)0x3f860a92); - binWriter.Write((UInt32)sourceActorID); //Actor Id + binWriter.Write((UInt32)sourceActorId); //Actor Id binWriter.Write((Single)10.0f); binWriter.Seek(4, SeekOrigin.Current); binWriter.Write((Byte)(condition.outwards ? 0x11 : 0x1)); //If == 0x10, Inverted Bounding Box @@ -32,8 +32,8 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.events binWriter.Write(Encoding.ASCII.GetBytes(condition.conditionName), 0, Encoding.ASCII.GetByteCount(condition.conditionName) >= 0x24 ? 0x24 : Encoding.ASCII.GetByteCount(condition.conditionName)); } } - new SubPacket(OPCODE, sourceActorID, playerActorID, data).DebugPrintSubPacket(); - return new SubPacket(OPCODE, sourceActorID, playerActorID, data); + new SubPacket(OPCODE, sourceActorId, data).DebugPrintSubPacket(); + return new SubPacket(OPCODE, sourceActorId, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/Actor/events/SetPushEventConditionWithTriggerBox.cs b/FFXIVClassic Map Server/packets/send/Actor/events/SetPushEventConditionWithTriggerBox.cs index a397e088..81d2cf96 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/events/SetPushEventConditionWithTriggerBox.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/events/SetPushEventConditionWithTriggerBox.cs @@ -12,7 +12,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.events public const ushort OPCODE = 0x0175; public const uint PACKET_SIZE = 0x60; - public static SubPacket BuildPacket(uint playerActorID, uint sourceActorID, EventList.PushBoxEventCondition condition) + public static SubPacket BuildPacket(uint sourceActorId, EventList.PushBoxEventCondition condition) { byte[] data = new byte[PACKET_SIZE - 0x20]; @@ -31,7 +31,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.events } } - return new SubPacket(OPCODE, sourceActorID, playerActorID, data); + return new SubPacket(OPCODE, sourceActorId, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/Actor/events/SetTalkEventCondition.cs b/FFXIVClassic Map Server/packets/send/Actor/events/SetTalkEventCondition.cs index f3b47bfd..2d0a6b49 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/events/SetTalkEventCondition.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/events/SetTalkEventCondition.cs @@ -12,7 +12,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.events public const ushort OPCODE = 0x012E; public const uint PACKET_SIZE = 0x48; - public static SubPacket BuildPacket(uint playerActorID, uint sourceActorID, EventList.TalkEventCondition condition) + public static SubPacket BuildPacket(uint sourceActorId, EventList.TalkEventCondition condition) { byte[] data = new byte[PACKET_SIZE - 0x20]; @@ -27,7 +27,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.events } } - return new SubPacket(OPCODE, sourceActorID, playerActorID, data); + return new SubPacket(OPCODE, sourceActorId, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/Actor/inventory/EquipmentListX01Packet.cs b/FFXIVClassic Map Server/packets/send/Actor/inventory/EquipmentListX01Packet.cs index 616c4cbd..925758d7 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/inventory/EquipmentListX01Packet.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/inventory/EquipmentListX01Packet.cs @@ -23,7 +23,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.inventory } } - return new SubPacket(OPCODE, playerActorID, playerActorID, data); + return new SubPacket(OPCODE, playerActorID, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/Actor/inventory/EquipmentListX08Packet.cs b/FFXIVClassic Map Server/packets/send/Actor/inventory/EquipmentListX08Packet.cs index bf8a5d25..c3f94f37 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/inventory/EquipmentListX08Packet.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/inventory/EquipmentListX08Packet.cs @@ -38,7 +38,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.inventory } } - return new SubPacket(OPCODE, playerActorId, playerActorId, data); + return new SubPacket(OPCODE, playerActorId, data); } } diff --git a/FFXIVClassic Map Server/packets/send/Actor/inventory/EquipmentListX16Packet.cs b/FFXIVClassic Map Server/packets/send/Actor/inventory/EquipmentListX16Packet.cs index 0eeea6ee..fe347718 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/inventory/EquipmentListX16Packet.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/inventory/EquipmentListX16Packet.cs @@ -36,7 +36,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.inventory } } - return new SubPacket(OPCODE, playerActorId, playerActorId, data); + return new SubPacket(OPCODE, playerActorId, data); } } diff --git a/FFXIVClassic Map Server/packets/send/Actor/inventory/EquipmentListX32Packet.cs b/FFXIVClassic Map Server/packets/send/Actor/inventory/EquipmentListX32Packet.cs index ca882b09..82614765 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/inventory/EquipmentListX32Packet.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/inventory/EquipmentListX32Packet.cs @@ -36,7 +36,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.inventory } } - return new SubPacket(OPCODE, playerActorId, playerActorId, data); + return new SubPacket(OPCODE, playerActorId, data); } } diff --git a/FFXIVClassic Map Server/packets/send/Actor/inventory/EquipmentListX64Packet.cs b/FFXIVClassic Map Server/packets/send/Actor/inventory/EquipmentListX64Packet.cs index 9f48eb35..05cb42c4 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/inventory/EquipmentListX64Packet.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/inventory/EquipmentListX64Packet.cs @@ -36,7 +36,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.inventory } } - return new SubPacket(OPCODE, playerActorId, playerActorId, data); + return new SubPacket(OPCODE, playerActorId, data); } } diff --git a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryBeginChangePacket.cs b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryBeginChangePacket.cs index ab6183c8..6f423d78 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryBeginChangePacket.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryBeginChangePacket.cs @@ -11,13 +11,13 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.inventory { byte[] data = new byte[8]; data[0] = 2; - return new SubPacket(OPCODE, sourceActorId, targetActorId, data); + return new SubPacket(OPCODE, sourceActorId, data); } public static SubPacket BuildPacket(uint playerActorID) { byte[] data = new byte[8]; - return new SubPacket(OPCODE, playerActorID, playerActorID, data); + return new SubPacket(OPCODE, playerActorID, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryEndChangePacket.cs b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryEndChangePacket.cs index 24499b25..bab10398 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryEndChangePacket.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryEndChangePacket.cs @@ -7,14 +7,10 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.inventory public const ushort OPCODE = 0x016E; public const uint PACKET_SIZE = 0x28; - public static SubPacket BuildPacket(uint sourceActorId, uint targetActorId) + public static SubPacket BuildPacket(uint sourceActorId) { - return new SubPacket(OPCODE, sourceActorId, targetActorId, new byte[8]); - } - - public static SubPacket BuildPacket(uint playerActorID) - { - return new SubPacket(OPCODE, playerActorID, playerActorID, new byte[8]); + return new SubPacket(OPCODE, sourceActorId, new byte[8]); } + } } diff --git a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryItemEndPacket.cs b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryItemEndPacket.cs index 107a3e79..b1f99ec0 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryItemEndPacket.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryItemEndPacket.cs @@ -30,7 +30,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.inventory data = mem.GetBuffer(); } - return new SubPacket(OPCODE, playerActorID, playerActorID, data); + return new SubPacket(OPCODE, playerActorID, data); } diff --git a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryItemPacket.cs b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryItemPacket.cs index 9a35e8e0..f548e240 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryItemPacket.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryItemPacket.cs @@ -30,7 +30,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.inventory data = mem.GetBuffer(); } - return new SubPacket(OPCODE, playerActorID, playerActorID, data); + return new SubPacket(OPCODE, playerActorID, data); } diff --git a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryListX01Packet.cs b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryListX01Packet.cs index 964e02a4..db5a2714 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryListX01Packet.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryListX01Packet.cs @@ -9,13 +9,8 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.inventory { public const ushort OPCODE = 0x0148; public const uint PACKET_SIZE = 0x90; - - public static SubPacket BuildPacket(uint playerActorId, InventoryItem item) - { - return BuildPacket(playerActorId, playerActorId, item); - } - - public static SubPacket BuildPacket(uint sourceActorId, uint targetActorId, InventoryItem item) + + public static SubPacket BuildPacket(uint sourceActorId, InventoryItem item) { byte[] data = new byte[PACKET_SIZE - 0x20]; @@ -27,7 +22,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.inventory } } - return new SubPacket(OPCODE, sourceActorId, targetActorId, data); + return new SubPacket(OPCODE, sourceActorId, data); } } diff --git a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryListX08Packet.cs b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryListX08Packet.cs index 448c9f3a..cbabf787 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryListX08Packet.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryListX08Packet.cs @@ -11,13 +11,8 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.inventory { public const ushort OPCODE = 0x0149; public const uint PACKET_SIZE = 0x3A8; - - public static SubPacket BuildPacket(uint playerActorId, List items, ref int listOffset) - { - return BuildPacket(playerActorId, playerActorId, items, ref listOffset); - } - - public static SubPacket BuildPacket(uint sourceActorId, uint targetActorId, List items, ref int listOffset) + + public static SubPacket BuildPacket(uint sourceActorId, List items, ref int listOffset) { byte[] data = new byte[PACKET_SIZE - 0x20]; @@ -42,7 +37,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.inventory } } - return new SubPacket(OPCODE, sourceActorId, targetActorId, data); + return new SubPacket(OPCODE, sourceActorId, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryListX16Packet.cs b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryListX16Packet.cs index 6c406bf9..90496fb6 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryListX16Packet.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryListX16Packet.cs @@ -11,12 +11,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.inventory public const ushort OPCODE = 0x014A; public const uint PACKET_SIZE = 0x720; - public static SubPacket BuildPacket(uint playerActorId, List items, ref int listOffset) - { - return BuildPacket(playerActorId, playerActorId, items, ref listOffset); - } - - public static SubPacket BuildPacket(uint sourceActorId, uint targetActorId, List items, ref int listOffset) + public static SubPacket BuildPacket(uint sourceActorId, List items, ref int listOffset) { byte[] data = new byte[PACKET_SIZE - 0x20]; @@ -38,7 +33,8 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.inventory } } - return new SubPacket(OPCODE, sourceActorId, targetActorId, data); + return new SubPacket(OPCODE, sourceActorId, data); } + } } diff --git a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryListX32Packet.cs b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryListX32Packet.cs index b9dd9dd3..a368d90e 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryListX32Packet.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryListX32Packet.cs @@ -10,7 +10,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.inventory { public const ushort OPCODE = 0x014B; public const uint PACKET_SIZE = 0xE20; - + public static SubPacket BuildPacket(uint playerActorID, List items, ref int listOffset) { byte[] data = new byte[PACKET_SIZE - 0x20]; @@ -33,7 +33,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.inventory } } - return new SubPacket(OPCODE, playerActorID, playerActorID, data); + return new SubPacket(OPCODE, playerActorID, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryListX64Packet.cs b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryListX64Packet.cs index c1c05da0..c37caee0 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryListX64Packet.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryListX64Packet.cs @@ -33,7 +33,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.inventory } } - return new SubPacket(OPCODE, playerActorID, playerActorID, data); + return new SubPacket(OPCODE, playerActorID, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryRemoveX01Packet.cs b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryRemoveX01Packet.cs index cc16251a..2893425b 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryRemoveX01Packet.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryRemoveX01Packet.cs @@ -9,7 +9,6 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.inventory { public const ushort OPCODE = 0x0152; public const uint PACKET_SIZE = 0x28; - public static SubPacket BuildPacket(uint playerActorID, ushort slot) { byte[] data = new byte[PACKET_SIZE - 0x20]; @@ -21,8 +20,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.inventory binWriter.Write((UInt16)slot); } } - - return new SubPacket(OPCODE, playerActorID, playerActorID, data); + return new SubPacket(OPCODE, playerActorID, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryRemoveX08Packet.cs b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryRemoveX08Packet.cs index 2dd988b2..c886caeb 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryRemoveX08Packet.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryRemoveX08Packet.cs @@ -11,7 +11,6 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.inventory { public const ushort OPCODE = 0x0153; public const uint PACKET_SIZE = 0x38; - public static SubPacket BuildPacket(uint playerActorID, List slots, ref int listOffset) { byte[] data = new byte[PACKET_SIZE - 0x20]; @@ -36,8 +35,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.inventory binWriter.Write((Byte)max); } } - - return new SubPacket(OPCODE, playerActorID, playerActorID, data); + return new SubPacket(OPCODE, playerActorID, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryRemoveX16Packet.cs b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryRemoveX16Packet.cs index b54820c0..c6586b1f 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryRemoveX16Packet.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryRemoveX16Packet.cs @@ -33,7 +33,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.inventory } } - return new SubPacket(OPCODE, playerActorID, playerActorID, data); + return new SubPacket(OPCODE, playerActorID, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryRemoveX32Packet.cs b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryRemoveX32Packet.cs index ebb568cd..d4840fa5 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryRemoveX32Packet.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryRemoveX32Packet.cs @@ -33,7 +33,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.inventory } } - return new SubPacket(OPCODE, playerActorID, playerActorID, data); + return new SubPacket(OPCODE, playerActorID, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryRemoveX64Packet.cs b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryRemoveX64Packet.cs index 208ccbe1..201c7c72 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryRemoveX64Packet.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryRemoveX64Packet.cs @@ -33,7 +33,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.inventory } } - return new SubPacket(OPCODE, playerActorID, playerActorID, data); + return new SubPacket(OPCODE, playerActorID, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventorySetBeginPacket.cs b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventorySetBeginPacket.cs index 74af503d..75d61bfa 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventorySetBeginPacket.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventorySetBeginPacket.cs @@ -10,12 +10,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.inventory public const ushort OPCODE = 0x0146; public const uint PACKET_SIZE = 0x28; - public static SubPacket BuildPacket(uint playerActorId, ushort size, ushort code) - { - return BuildPacket(playerActorId, playerActorId, size, code); - } - - public static SubPacket BuildPacket(uint sourceActorId, uint targetActorId, ushort size, ushort code) + public static SubPacket BuildPacket(uint sourceActorId, ushort size, ushort code) { byte[] data = new byte[8]; @@ -29,7 +24,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.inventory } } - return new SubPacket(OPCODE, sourceActorId, targetActorId, data); + return new SubPacket(OPCODE, sourceActorId, data); } } diff --git a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventorySetEndPacket.cs b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventorySetEndPacket.cs index 5a7952d2..5f899491 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventorySetEndPacket.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventorySetEndPacket.cs @@ -4,19 +4,13 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.inventory { class InventorySetEndPacket { - public const ushort OPCODE = 0x0147; public const uint PACKET_SIZE = 0x28; public static SubPacket BuildPacket(uint playerActorId) { - return new SubPacket(OPCODE, playerActorId, playerActorId, new byte[8]); + return new SubPacket(OPCODE, playerActorId, new byte[8]); } - - public static SubPacket BuildPacket(uint sourceActorId, uint targetActorID) - { - return new SubPacket(OPCODE, sourceActorId, targetActorID, new byte[8]); - } - + } } diff --git a/FFXIVClassic Map Server/packets/send/GameMessagePacket.cs b/FFXIVClassic Map Server/packets/send/GameMessagePacket.cs index 553f5eec..52ef05ff 100644 --- a/FFXIVClassic Map Server/packets/send/GameMessagePacket.cs +++ b/FFXIVClassic Map Server/packets/send/GameMessagePacket.cs @@ -58,7 +58,7 @@ namespace FFXIVClassic_Map_Server.packets.send private const ushort SIZE_GAMEMESSAGE_WITHOUT_ACTOR4 = 0x48; private const ushort SIZE_GAMEMESSAGE_WITHOUT_ACTOR5 = 0x68; - public static SubPacket BuildPacket(uint sourceId, uint targetId, uint actorId, uint textOwnerActorId, ushort textId, byte log) + public static SubPacket BuildPacket(uint sourceActorId, uint actorId, uint textOwnerActorId, ushort textId, byte log) { byte[] data = new byte[SIZE_GAMEMESSAGE_WITH_ACTOR1 - 0x20]; @@ -73,10 +73,10 @@ namespace FFXIVClassic_Map_Server.packets.send } } - return new SubPacket(OPCODE_GAMEMESSAGE_WITH_ACTOR1, sourceId, targetId, data); + return new SubPacket(OPCODE_GAMEMESSAGE_WITH_ACTOR1, sourceActorId, data); } - public static SubPacket BuildPacket(uint sourceId, uint targetId, uint actorId, uint textOwnerActorId, ushort textId, byte log, List lParams) + public static SubPacket BuildPacket(uint sourceActorId, uint actorId, uint textOwnerActorId, ushort textId, byte log, List lParams) { int lParamsSize = findSizeOfParams(lParams); byte[] data; @@ -121,10 +121,10 @@ namespace FFXIVClassic_Map_Server.packets.send } } - return new SubPacket(opcode, sourceId, targetId, data); + return new SubPacket(opcode, sourceActorId, data); } - public static SubPacket BuildPacket(uint sourceId, uint targetId, uint textOwnerActorId, ushort textId, string sender, byte log) + public static SubPacket BuildPacket(uint sourceActorId, uint textOwnerActorId, ushort textId, string sender, byte log) { byte[] data = new byte[SIZE_GAMEMESSAGE_WITH_CUSTOM_SENDER1 - 0x20]; @@ -139,10 +139,10 @@ namespace FFXIVClassic_Map_Server.packets.send } } - return new SubPacket(OPCODE_GAMEMESSAGE_WITH_CUSTOM_SENDER1, sourceId, targetId, data); + return new SubPacket(OPCODE_GAMEMESSAGE_WITH_CUSTOM_SENDER1, sourceActorId, data); } - public static SubPacket BuildPacket(uint sourceId, uint targetId, uint textOwnerActorId, ushort textId, string sender, byte log, List lParams) + public static SubPacket BuildPacket(uint sourceActorId, uint textOwnerActorId, ushort textId, string sender, byte log, List lParams) { int lParamsSize = findSizeOfParams(lParams); byte[] data; @@ -187,10 +187,10 @@ namespace FFXIVClassic_Map_Server.packets.send } } - return new SubPacket(opcode, sourceId, targetId, data); + return new SubPacket(opcode, sourceActorId, data); } - public static SubPacket BuildPacket(uint sourceId, uint targetId, uint textOwnerActorId, ushort textId, uint senderDisplayNameId, byte log) + public static SubPacket BuildPacket(uint sourceActorId, uint textOwnerActorId, ushort textId, uint senderDisplayNameId, byte log) { byte[] data = new byte[SIZE_GAMEMESSAGE_WITH_DISPID_SENDER1 - 0x20]; @@ -205,10 +205,10 @@ namespace FFXIVClassic_Map_Server.packets.send } } - return new SubPacket(OPCODE_GAMEMESSAGE_WITH_DISPID_SENDER1, sourceId, targetId, data); + return new SubPacket(OPCODE_GAMEMESSAGE_WITH_DISPID_SENDER1, sourceActorId, data); } - public static SubPacket BuildPacket(uint sourceId, uint targetId, uint textOwnerActorId, ushort textId, uint senderDisplayNameId, byte log, List lParams) + public static SubPacket BuildPacket(uint sourceActorId, uint textOwnerActorId, ushort textId, uint senderDisplayNameId, byte log, List lParams) { int lParamsSize = findSizeOfParams(lParams); byte[] data; @@ -253,10 +253,10 @@ namespace FFXIVClassic_Map_Server.packets.send } } - return new SubPacket(opcode, sourceId, targetId, data); + return new SubPacket(opcode, sourceActorId, data); } - public static SubPacket BuildPacket(uint sourceId, uint targetId, uint textOwnerActorId, ushort textId, byte log) + public static SubPacket BuildPacket(uint sourceActorId, uint textOwnerActorId, ushort textId, byte log) { byte[] data = new byte[SIZE_GAMEMESSAGE_WITHOUT_ACTOR1 - 0x20]; @@ -270,10 +270,10 @@ namespace FFXIVClassic_Map_Server.packets.send } } - return new SubPacket(OPCODE_GAMEMESSAGE_WITHOUT_ACTOR1, sourceId, targetId, data); + return new SubPacket(OPCODE_GAMEMESSAGE_WITHOUT_ACTOR1, sourceActorId, data); } - public static SubPacket BuildPacket(uint sourceId, uint targetId, uint textOwnerActorId, ushort textId, byte log, List lParams) + public static SubPacket BuildPacket(uint sourceActorId, uint textOwnerActorId, ushort textId, byte log, List lParams) { int lParamsSize = findSizeOfParams(lParams); byte[] data; @@ -317,7 +317,7 @@ namespace FFXIVClassic_Map_Server.packets.send } } - return new SubPacket(opcode, sourceId, targetId, data); + return new SubPacket(opcode, sourceActorId, data); } private static int findSizeOfParams(List lParams) diff --git a/FFXIVClassic Map Server/packets/send/LogoutPacket.cs b/FFXIVClassic Map Server/packets/send/LogoutPacket.cs index 2348a24a..c657e769 100644 --- a/FFXIVClassic Map Server/packets/send/LogoutPacket.cs +++ b/FFXIVClassic Map Server/packets/send/LogoutPacket.cs @@ -9,7 +9,7 @@ namespace FFXIVClassic_Map_Server.packets.send public static SubPacket BuildPacket(uint playerActorID) { - return new SubPacket(OPCODE, playerActorID, playerActorID, new byte[8]); + return new SubPacket(OPCODE, playerActorID, new byte[8]); } } } diff --git a/FFXIVClassic Map Server/packets/send/PongPacket.cs b/FFXIVClassic Map Server/packets/send/PongPacket.cs index 477e0915..72714b25 100644 --- a/FFXIVClassic Map Server/packets/send/PongPacket.cs +++ b/FFXIVClassic Map Server/packets/send/PongPacket.cs @@ -22,7 +22,7 @@ namespace FFXIVClassic_Map_Server.packets.receive } } - SubPacket subpacket = new SubPacket(OPCODE, playerActorID, playerActorID, data); + SubPacket subpacket = new SubPacket(OPCODE, playerActorID, data); return subpacket; } diff --git a/FFXIVClassic Map Server/packets/send/QuitPacket.cs b/FFXIVClassic Map Server/packets/send/QuitPacket.cs index ccdddc74..1edc0699 100644 --- a/FFXIVClassic Map Server/packets/send/QuitPacket.cs +++ b/FFXIVClassic Map Server/packets/send/QuitPacket.cs @@ -7,9 +7,9 @@ namespace FFXIVClassic_Map_Server.packets.send public const ushort OPCODE = 0x0011; public const uint PACKET_SIZE = 0x28; - public static SubPacket BuildPacket(uint playerActorID) + public static SubPacket BuildPacket(uint sourceActorId) { - return new SubPacket(OPCODE, playerActorID, playerActorID, new byte[8]); + return new SubPacket(OPCODE, sourceActorId, new byte[8]); } } } diff --git a/FFXIVClassic Map Server/packets/send/SendMessagePacket.cs b/FFXIVClassic Map Server/packets/send/SendMessagePacket.cs index 5fa97c71..9b368e90 100644 --- a/FFXIVClassic Map Server/packets/send/SendMessagePacket.cs +++ b/FFXIVClassic Map Server/packets/send/SendMessagePacket.cs @@ -36,7 +36,7 @@ namespace FFXIVClassic_Map_Server.packets.send public const ushort OPCODE = 0x0003; public const uint PACKET_SIZE = 0x248; - public static SubPacket BuildPacket(uint playerActorID, uint targetID, uint messageType, string sender, string message) + public static SubPacket BuildPacket(uint sourceActorId, uint messageType, string sender, string message) { byte[] data = new byte[PACKET_SIZE - 0x20]; @@ -51,7 +51,7 @@ namespace FFXIVClassic_Map_Server.packets.send } } - return new SubPacket(OPCODE, playerActorID, targetID, data); + return new SubPacket(OPCODE, sourceActorId, data); } } diff --git a/FFXIVClassic Map Server/packets/send/SetMapPacket.cs b/FFXIVClassic Map Server/packets/send/SetMapPacket.cs index 86ff5236..cffb4507 100644 --- a/FFXIVClassic Map Server/packets/send/SetMapPacket.cs +++ b/FFXIVClassic Map Server/packets/send/SetMapPacket.cs @@ -23,7 +23,7 @@ namespace FFXIVClassic_Map_Server.packets.send } } - return new SubPacket(OPCODE, playerActorID, playerActorID, data); + return new SubPacket(OPCODE, playerActorID, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/SetMusicPacket.cs b/FFXIVClassic Map Server/packets/send/SetMusicPacket.cs index dfe477b1..666ff463 100644 --- a/FFXIVClassic Map Server/packets/send/SetMusicPacket.cs +++ b/FFXIVClassic Map Server/packets/send/SetMusicPacket.cs @@ -16,10 +16,10 @@ namespace FFXIVClassic_Map_Server.packets.send public const ushort EFFECT_PLAY_NORMAL_CHANNEL = 0x5; //Only works for multi channeled music public const ushort EFFECT_PLAY_BATTLE_CHANNEL = 0x6; - public static SubPacket BuildPacket(uint playerActorID, ushort musicID, ushort musicTrackMode) + public static SubPacket BuildPacket(uint sourceActorId, ushort musicID, ushort musicTrackMode) { ulong combined = (ulong)(musicID | (musicTrackMode << 16)); - return new SubPacket(OPCODE, 0, playerActorID, BitConverter.GetBytes(combined)); + return new SubPacket(OPCODE, 0, BitConverter.GetBytes(combined)); } } } diff --git a/FFXIVClassic Map Server/packets/send/SetWeatherPacket.cs b/FFXIVClassic Map Server/packets/send/SetWeatherPacket.cs index 93d1f425..28c5c25b 100644 --- a/FFXIVClassic Map Server/packets/send/SetWeatherPacket.cs +++ b/FFXIVClassic Map Server/packets/send/SetWeatherPacket.cs @@ -37,10 +37,10 @@ namespace FFXIVClassic_Map_Server.packets.send public const ushort OPCODE = 0x000D; public const uint PACKET_SIZE = 0x28; - public static SubPacket BuildPacket(uint playerActorID, ushort weatherId, ushort transitionTime) + public static SubPacket BuildPacket(uint sourceActorId, ushort weatherId, ushort transitionTime) { ulong combined = (ulong)(weatherId | (transitionTime << 16)); - return new SubPacket(OPCODE, 0, playerActorID, BitConverter.GetBytes(combined)); + return new SubPacket(OPCODE, 0, BitConverter.GetBytes(combined)); } } } diff --git a/FFXIVClassic Map Server/packets/send/_0x02Packet.cs b/FFXIVClassic Map Server/packets/send/_0x02Packet.cs index 3e91afd5..ec5d8921 100644 --- a/FFXIVClassic Map Server/packets/send/_0x02Packet.cs +++ b/FFXIVClassic Map Server/packets/send/_0x02Packet.cs @@ -23,7 +23,7 @@ namespace FFXIVClassic_Map_Server.packets.send } } - return new SubPacket(OPCODE, playerActorId, playerActorId, data); + return new SubPacket(OPCODE, playerActorId, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/_0x10Packet.cs b/FFXIVClassic Map Server/packets/send/_0x10Packet.cs index d04f8154..843b8c39 100644 --- a/FFXIVClassic Map Server/packets/send/_0x10Packet.cs +++ b/FFXIVClassic Map Server/packets/send/_0x10Packet.cs @@ -22,7 +22,7 @@ namespace FFXIVClassic_Map_Server.packets.send } } - return new SubPacket(OPCODE, playerActorId, playerActorId, data); + return new SubPacket(OPCODE, playerActorId, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/_0xE2Packet.cs b/FFXIVClassic Map Server/packets/send/_0xE2Packet.cs index 1602f4cf..b38d3eaf 100644 --- a/FFXIVClassic Map Server/packets/send/_0xE2Packet.cs +++ b/FFXIVClassic Map Server/packets/send/_0xE2Packet.cs @@ -13,7 +13,7 @@ namespace FFXIVClassic_Map_Server.packets.send { byte[] data = new byte[PACKET_SIZE - 0x20]; data[0] = (Byte) (val & 0xFF); - return new SubPacket(OPCODE, playerActorID, playerActorID, data); + return new SubPacket(OPCODE, playerActorID, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/events/EndEventPacket.cs b/FFXIVClassic Map Server/packets/send/events/EndEventPacket.cs index ddc8fc51..1c8e3ec5 100644 --- a/FFXIVClassic Map Server/packets/send/events/EndEventPacket.cs +++ b/FFXIVClassic Map Server/packets/send/events/EndEventPacket.cs @@ -11,7 +11,7 @@ namespace FFXIVClassic_Map_Server.packets.send.events public const ushort OPCODE = 0x0131; public const uint PACKET_SIZE = 0x50; - public static SubPacket BuildPacket(uint playerActorID, uint eventOwnerActorID, string eventStarter) + public static SubPacket BuildPacket(uint sourcePlayerActorId, uint eventOwnerActorID, string eventStarter) { byte[] data = new byte[PACKET_SIZE - 0x20]; int maxBodySize = data.Length - 0x80; @@ -20,14 +20,14 @@ namespace FFXIVClassic_Map_Server.packets.send.events { using (BinaryWriter binWriter = new BinaryWriter(mem)) { - binWriter.Write((UInt32)playerActorID); + binWriter.Write((UInt32)sourcePlayerActorId); binWriter.Write((UInt32)0); binWriter.Write((Byte)1); binWriter.Write(Encoding.ASCII.GetBytes(eventStarter), 0, Encoding.ASCII.GetByteCount(eventStarter) >= 0x20 ? 0x20 : Encoding.ASCII.GetByteCount(eventStarter)); } } - return new SubPacket(OPCODE, playerActorID, playerActorID, data); + return new SubPacket(OPCODE, sourcePlayerActorId, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/events/KickEventPacket.cs b/FFXIVClassic Map Server/packets/send/events/KickEventPacket.cs index 972c5540..fe0a2d19 100644 --- a/FFXIVClassic Map Server/packets/send/events/KickEventPacket.cs +++ b/FFXIVClassic Map Server/packets/send/events/KickEventPacket.cs @@ -13,7 +13,7 @@ namespace FFXIVClassic_Map_Server.packets.send.events public const ushort OPCODE = 0x012F; public const uint PACKET_SIZE = 0x90; - public static SubPacket BuildPacket(uint playerActorId, uint targetActorId, string conditionName, List luaParams) + public static SubPacket BuildPacket(uint sourcePlayerActorId, uint targetEventActorId, string conditionName, List luaParams) { byte[] data = new byte[PACKET_SIZE - 0x20]; @@ -21,8 +21,8 @@ namespace FFXIVClassic_Map_Server.packets.send.events { using (BinaryWriter binWriter = new BinaryWriter(mem)) { - binWriter.Write((UInt32)playerActorId); - binWriter.Write((UInt32)targetActorId); + binWriter.Write((UInt32)sourcePlayerActorId); + binWriter.Write((UInt32)targetEventActorId); int test = 0x75dc1705; //This will crash if set to 0 on pushCommand but not for mining which has to be 0???? @@ -36,7 +36,7 @@ namespace FFXIVClassic_Map_Server.packets.send.events } } - return new SubPacket(OPCODE, playerActorId, playerActorId, data); + return new SubPacket(OPCODE, sourcePlayerActorId, data); } } diff --git a/FFXIVClassic Map Server/packets/send/events/RunEventFunctionPacket.cs b/FFXIVClassic Map Server/packets/send/events/RunEventFunctionPacket.cs index 8320f103..919114ca 100644 --- a/FFXIVClassic Map Server/packets/send/events/RunEventFunctionPacket.cs +++ b/FFXIVClassic Map Server/packets/send/events/RunEventFunctionPacket.cs @@ -13,7 +13,7 @@ namespace FFXIVClassic_Map_Server.packets.send.events public const ushort OPCODE = 0x0130; public const uint PACKET_SIZE = 0x2B8; - public static SubPacket BuildPacket(uint playerActorID, uint eventOwnerActorID, string eventStarter, string callFunction, List luaParams) + public static SubPacket BuildPacket(uint sourcePlayerActorId, uint eventOwnerActorID, string eventStarter, string callFunction, List luaParams) { byte[] data = new byte[PACKET_SIZE - 0x20]; int maxBodySize = data.Length - 0x80; @@ -22,7 +22,7 @@ namespace FFXIVClassic_Map_Server.packets.send.events { using (BinaryWriter binWriter = new BinaryWriter(mem)) { - binWriter.Write((UInt32)playerActorID); + binWriter.Write((UInt32)sourcePlayerActorId); binWriter.Write((UInt32)eventOwnerActorID); binWriter.Write((Byte)5); binWriter.Write(Encoding.ASCII.GetBytes(eventStarter), 0, Encoding.ASCII.GetByteCount(eventStarter) >= 0x20 ? 0x20 : Encoding.ASCII.GetByteCount(eventStarter)); @@ -34,7 +34,7 @@ namespace FFXIVClassic_Map_Server.packets.send.events } } - return new SubPacket(OPCODE, playerActorID, playerActorID, data); + return new SubPacket(OPCODE, sourcePlayerActorId, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/groups/ContentMembersX08Packet.cs b/FFXIVClassic Map Server/packets/send/groups/ContentMembersX08Packet.cs index 6f0f9a21..8bc05ab5 100644 --- a/FFXIVClassic Map Server/packets/send/groups/ContentMembersX08Packet.cs +++ b/FFXIVClassic Map Server/packets/send/groups/ContentMembersX08Packet.cs @@ -45,7 +45,7 @@ namespace FFXIVClassic_Map_Server.packets.send.group } } - return new SubPacket(OPCODE, playerActorID, playerActorID, data); + return new SubPacket(OPCODE, playerActorID, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/groups/ContentMembersX16Packet.cs b/FFXIVClassic Map Server/packets/send/groups/ContentMembersX16Packet.cs index 60ef9692..d263d6d4 100644 --- a/FFXIVClassic Map Server/packets/send/groups/ContentMembersX16Packet.cs +++ b/FFXIVClassic Map Server/packets/send/groups/ContentMembersX16Packet.cs @@ -42,7 +42,7 @@ namespace FFXIVClassic_Map_Server.packets.send.group } } - return new SubPacket(OPCODE, playerActorID, playerActorID, data); + return new SubPacket(OPCODE, playerActorID, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/groups/ContentMembersX32Packet.cs b/FFXIVClassic Map Server/packets/send/groups/ContentMembersX32Packet.cs index 532b0c1c..363d96c4 100644 --- a/FFXIVClassic Map Server/packets/send/groups/ContentMembersX32Packet.cs +++ b/FFXIVClassic Map Server/packets/send/groups/ContentMembersX32Packet.cs @@ -42,7 +42,7 @@ namespace FFXIVClassic_Map_Server.packets.send.group } } - return new SubPacket(OPCODE, playerActorID, playerActorID, data); + return new SubPacket(OPCODE, playerActorID, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/groups/ContentMembersX64Packet.cs b/FFXIVClassic Map Server/packets/send/groups/ContentMembersX64Packet.cs index f8da3882..88d73a06 100644 --- a/FFXIVClassic Map Server/packets/send/groups/ContentMembersX64Packet.cs +++ b/FFXIVClassic Map Server/packets/send/groups/ContentMembersX64Packet.cs @@ -42,7 +42,7 @@ namespace FFXIVClassic_Map_Server.packets.send.group } } - return new SubPacket(OPCODE, playerActorID, playerActorID, data); + return new SubPacket(OPCODE, playerActorID, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/groups/CreateNamedGroup.cs b/FFXIVClassic Map Server/packets/send/groups/CreateNamedGroup.cs index 098a26b4..2274ae95 100644 --- a/FFXIVClassic Map Server/packets/send/groups/CreateNamedGroup.cs +++ b/FFXIVClassic Map Server/packets/send/groups/CreateNamedGroup.cs @@ -35,7 +35,7 @@ namespace FFXIVClassic_Map_Server.packets.send.group } } - return new SubPacket(OPCODE, playerActorID, playerActorID, data); + return new SubPacket(OPCODE, playerActorID, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/groups/CreateNamedGroupMultiple.cs b/FFXIVClassic Map Server/packets/send/groups/CreateNamedGroupMultiple.cs index 9622e484..f6905c97 100644 --- a/FFXIVClassic Map Server/packets/send/groups/CreateNamedGroupMultiple.cs +++ b/FFXIVClassic Map Server/packets/send/groups/CreateNamedGroupMultiple.cs @@ -49,7 +49,7 @@ namespace FFXIVClassic_Map_Server.packets.send.group } } - return new SubPacket(OPCODE, playerActorID, playerActorID, data); + return new SubPacket(OPCODE, playerActorID, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/groups/DeleteGroupPacket.cs b/FFXIVClassic Map Server/packets/send/groups/DeleteGroupPacket.cs index 8a3a559b..571cd879 100644 --- a/FFXIVClassic Map Server/packets/send/groups/DeleteGroupPacket.cs +++ b/FFXIVClassic Map Server/packets/send/groups/DeleteGroupPacket.cs @@ -37,7 +37,7 @@ namespace FFXIVClassic_Map_Server.packets.send.groups } } - return new SubPacket(OPCODE, playerActorID, playerActorID, data); + return new SubPacket(OPCODE, playerActorID, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/groups/GroupHeaderPacket.cs b/FFXIVClassic Map Server/packets/send/groups/GroupHeaderPacket.cs index ee05919c..6cb222b2 100644 --- a/FFXIVClassic Map Server/packets/send/groups/GroupHeaderPacket.cs +++ b/FFXIVClassic Map Server/packets/send/groups/GroupHeaderPacket.cs @@ -56,7 +56,7 @@ namespace FFXIVClassic_Map_Server.packets.send.group } } - return new SubPacket(OPCODE, playerActorID, playerActorID, data); + return new SubPacket(OPCODE, playerActorID, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/groups/GroupMembersBeginPacket.cs b/FFXIVClassic Map Server/packets/send/groups/GroupMembersBeginPacket.cs index 4c328a9a..5b24aa4d 100644 --- a/FFXIVClassic Map Server/packets/send/groups/GroupMembersBeginPacket.cs +++ b/FFXIVClassic Map Server/packets/send/groups/GroupMembersBeginPacket.cs @@ -32,7 +32,7 @@ namespace FFXIVClassic_Map_Server.packets.send.group } } - return new SubPacket(OPCODE, playerActorID, playerActorID, data); + return new SubPacket(OPCODE, playerActorID, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/groups/GroupMembersEndPacket.cs b/FFXIVClassic Map Server/packets/send/groups/GroupMembersEndPacket.cs index 9a796008..9bba4e06 100644 --- a/FFXIVClassic Map Server/packets/send/groups/GroupMembersEndPacket.cs +++ b/FFXIVClassic Map Server/packets/send/groups/GroupMembersEndPacket.cs @@ -31,7 +31,7 @@ namespace FFXIVClassic_Map_Server.packets.send.group } } - return new SubPacket(OPCODE, playerActorID, playerActorID, data); + return new SubPacket(OPCODE, playerActorID, data); } } diff --git a/FFXIVClassic Map Server/packets/send/groups/GroupMembersX08Packet.cs b/FFXIVClassic Map Server/packets/send/groups/GroupMembersX08Packet.cs index badf0f11..cca76aaf 100644 --- a/FFXIVClassic Map Server/packets/send/groups/GroupMembersX08Packet.cs +++ b/FFXIVClassic Map Server/packets/send/groups/GroupMembersX08Packet.cs @@ -49,7 +49,7 @@ namespace FFXIVClassic_Map_Server.packets.send.group } } - return new SubPacket(OPCODE, playerActorID, playerActorID, data); + return new SubPacket(OPCODE, playerActorID, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/groups/GroupMembersX16Packet.cs b/FFXIVClassic Map Server/packets/send/groups/GroupMembersX16Packet.cs index e2b1ca13..2c1c4855 100644 --- a/FFXIVClassic Map Server/packets/send/groups/GroupMembersX16Packet.cs +++ b/FFXIVClassic Map Server/packets/send/groups/GroupMembersX16Packet.cs @@ -45,7 +45,7 @@ namespace FFXIVClassic_Map_Server.packets.send.group } } - return new SubPacket(OPCODE, playerActorID, playerActorID, data); + return new SubPacket(OPCODE, playerActorID, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/groups/GroupMembersX32Packet.cs b/FFXIVClassic Map Server/packets/send/groups/GroupMembersX32Packet.cs index 923e5019..7abee729 100644 --- a/FFXIVClassic Map Server/packets/send/groups/GroupMembersX32Packet.cs +++ b/FFXIVClassic Map Server/packets/send/groups/GroupMembersX32Packet.cs @@ -45,7 +45,7 @@ namespace FFXIVClassic_Map_Server.packets.send.group } } - return new SubPacket(OPCODE, playerActorID, playerActorID, data); + return new SubPacket(OPCODE, playerActorID, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/groups/GroupMembersX64Packet.cs b/FFXIVClassic Map Server/packets/send/groups/GroupMembersX64Packet.cs index 05535081..44d98851 100644 --- a/FFXIVClassic Map Server/packets/send/groups/GroupMembersX64Packet.cs +++ b/FFXIVClassic Map Server/packets/send/groups/GroupMembersX64Packet.cs @@ -45,7 +45,7 @@ namespace FFXIVClassic_Map_Server.packets.send.group } } - return new SubPacket(OPCODE, playerActorID, playerActorID, data); + return new SubPacket(OPCODE, playerActorID, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/groups/SynchGroupWorkValuesPacket.cs b/FFXIVClassic Map Server/packets/send/groups/SynchGroupWorkValuesPacket.cs index fbe2e2d6..19104a4b 100644 --- a/FFXIVClassic Map Server/packets/send/groups/SynchGroupWorkValuesPacket.cs +++ b/FFXIVClassic Map Server/packets/send/groups/SynchGroupWorkValuesPacket.cs @@ -201,7 +201,7 @@ namespace FFXIVClassic_Map_Server.packets.send.groups closeStreams(); - SubPacket packet = new SubPacket(OPCODE, playerActorID, actorID, data); + SubPacket packet = new SubPacket(OPCODE, actorID, data); return packet; } diff --git a/FFXIVClassic Map Server/packets/send/login/0x2Packet.cs b/FFXIVClassic Map Server/packets/send/login/0x2Packet.cs index 72952578..cd13514a 100644 --- a/FFXIVClassic Map Server/packets/send/login/0x2Packet.cs +++ b/FFXIVClassic Map Server/packets/send/login/0x2Packet.cs @@ -9,7 +9,7 @@ namespace FFXIVClassic_Map_Server.packets.send.login public const ushort OPCODE = 0x0002; public const uint PACKET_SIZE = 0x30; - public static SubPacket BuildPacket(uint playerActorID) + public static SubPacket BuildPacket(uint sourceActorId) { byte[] data = new byte[PACKET_SIZE-0x20]; @@ -18,11 +18,11 @@ namespace FFXIVClassic_Map_Server.packets.send.login using (BinaryWriter binWriter = new BinaryWriter(mem)) { binWriter.BaseStream.Seek(0x8, SeekOrigin.Begin); - binWriter.Write((uint)playerActorID); + binWriter.Write((uint)sourceActorId); } } - return new SubPacket(OPCODE, playerActorID, playerActorID, data); + return new SubPacket(OPCODE, sourceActorId, data); } } } 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 7278b1f1..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 actorID, 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)actorID); - binWriter.Write((uint)time); - } - catch (Exception) - { - } - } - } - - return BasePacket.CreatePacket(data, false, false); - } - } -} diff --git a/FFXIVClassic Map Server/packets/send/player/AchievementEarnedPacket.cs b/FFXIVClassic Map Server/packets/send/player/AchievementEarnedPacket.cs index f7a9ed11..b6321ecf 100644 --- a/FFXIVClassic Map Server/packets/send/player/AchievementEarnedPacket.cs +++ b/FFXIVClassic Map Server/packets/send/player/AchievementEarnedPacket.cs @@ -9,9 +9,9 @@ namespace FFXIVClassic_Map_Server.packets.send.player public const ushort OPCODE = 0x019E; public const uint PACKET_SIZE = 0x28; - public static SubPacket BuildPacket(uint playerActorID, uint achievementID) + public static SubPacket BuildPacket(uint sourceActorId, uint achievementID) { - return new SubPacket(OPCODE, playerActorID, playerActorID, BitConverter.GetBytes((UInt64)achievementID)); + return new SubPacket(OPCODE, sourceActorId, BitConverter.GetBytes((UInt64)achievementID)); } } } diff --git a/FFXIVClassic Map Server/packets/send/player/InfoRequestResponsePacket.cs b/FFXIVClassic Map Server/packets/send/player/InfoRequestResponsePacket.cs index dd3535c0..6af21e9e 100644 --- a/FFXIVClassic Map Server/packets/send/player/InfoRequestResponsePacket.cs +++ b/FFXIVClassic Map Server/packets/send/player/InfoRequestResponsePacket.cs @@ -11,7 +11,7 @@ namespace FFXIVClassic_Map_Server.packets.send.player public const ushort OPCODE = 0x0133; public const uint PACKET_SIZE = 0xE0; - public static SubPacket BuildPacket(uint playerActorID, uint targetActorID, List luaParams) + public static SubPacket BuildPacket(uint sourceActorId, List luaParams) { byte[] data = new byte[PACKET_SIZE - 0x20]; @@ -23,7 +23,7 @@ namespace FFXIVClassic_Map_Server.packets.send.player } } - return new SubPacket(OPCODE, playerActorID, targetActorID, data); + return new SubPacket(OPCODE, sourceActorId, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/player/SendAchievementRatePacket.cs b/FFXIVClassic Map Server/packets/send/player/SendAchievementRatePacket.cs index 0bef5b62..f7145d07 100644 --- a/FFXIVClassic Map Server/packets/send/player/SendAchievementRatePacket.cs +++ b/FFXIVClassic Map Server/packets/send/player/SendAchievementRatePacket.cs @@ -10,7 +10,7 @@ namespace FFXIVClassic_Map_Server.packets.send.player public const ushort OPCODE = 0x019F; public const uint PACKET_SIZE = 0x30; - public static SubPacket BuildPacket(uint playerActorID, uint achievementId, uint progressCount, uint progressFlags) + public static SubPacket BuildPacket(uint sourceActorId, uint achievementId, uint progressCount, uint progressFlags) { byte[] data = new byte[PACKET_SIZE - 0x20]; @@ -24,7 +24,7 @@ namespace FFXIVClassic_Map_Server.packets.send.player } } - return new SubPacket(OPCODE, playerActorID, playerActorID, data); + return new SubPacket(OPCODE, sourceActorId, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/player/SetAchievementPointsPacket.cs b/FFXIVClassic Map Server/packets/send/player/SetAchievementPointsPacket.cs index 8000b570..24f8e277 100644 --- a/FFXIVClassic Map Server/packets/send/player/SetAchievementPointsPacket.cs +++ b/FFXIVClassic Map Server/packets/send/player/SetAchievementPointsPacket.cs @@ -9,9 +9,9 @@ namespace FFXIVClassic_Map_Server.packets.send.player public const ushort OPCODE = 0x019C; public const uint PACKET_SIZE = 0x28; - public static SubPacket BuildPacket(uint playerActorID, uint numAchievementPoints) + public static SubPacket BuildPacket(uint sourceActorId, uint numAchievementPoints) { - return new SubPacket(OPCODE, playerActorID, playerActorID, BitConverter.GetBytes((UInt64) numAchievementPoints)); + return new SubPacket(OPCODE, sourceActorId, BitConverter.GetBytes((UInt64) numAchievementPoints)); } } } diff --git a/FFXIVClassic Map Server/packets/send/player/SetChocoboNamePacket.cs b/FFXIVClassic Map Server/packets/send/player/SetChocoboNamePacket.cs index 97f9850e..2c2d4d07 100644 --- a/FFXIVClassic Map Server/packets/send/player/SetChocoboNamePacket.cs +++ b/FFXIVClassic Map Server/packets/send/player/SetChocoboNamePacket.cs @@ -9,11 +9,11 @@ namespace FFXIVClassic_Map_Server.packets.send.player public const ushort OPCODE = 0x0198; public const uint PACKET_SIZE = 0x40; - public static SubPacket BuildPacket(uint playerActorID, uint targetActorID, string name) + public static SubPacket BuildPacket(uint sourceActorId, string name) { if (Encoding.Unicode.GetByteCount(name) >= 0x20) name = "ERR: Too Long"; - return new SubPacket(OPCODE, playerActorID, targetActorID, Encoding.ASCII.GetBytes(name)); + return new SubPacket(OPCODE, sourceActorId, Encoding.ASCII.GetBytes(name)); } } } diff --git a/FFXIVClassic Map Server/packets/send/player/SetCompletedAchievementsPacket.cs b/FFXIVClassic Map Server/packets/send/player/SetCompletedAchievementsPacket.cs index 887acc94..a873d9e4 100644 --- a/FFXIVClassic Map Server/packets/send/player/SetCompletedAchievementsPacket.cs +++ b/FFXIVClassic Map Server/packets/send/player/SetCompletedAchievementsPacket.cs @@ -26,7 +26,7 @@ namespace FFXIVClassic_Map_Server.packets.send.player public bool[] achievementFlags = new bool[1024]; - public SubPacket BuildPacket(uint playerActorID) + public SubPacket BuildPacket(uint sourceActorId) { byte[] data = new byte[PACKET_SIZE - 0x20]; @@ -42,7 +42,7 @@ namespace FFXIVClassic_Map_Server.packets.send.player } } - return new SubPacket(OPCODE, playerActorID, playerActorID, data); + return new SubPacket(OPCODE, sourceActorId, data); } } diff --git a/FFXIVClassic Map Server/packets/send/player/SetCurrentJobPacket.cs b/FFXIVClassic Map Server/packets/send/player/SetCurrentJobPacket.cs index f890e4e6..b6e131dc 100644 --- a/FFXIVClassic Map Server/packets/send/player/SetCurrentJobPacket.cs +++ b/FFXIVClassic Map Server/packets/send/player/SetCurrentJobPacket.cs @@ -9,9 +9,9 @@ namespace FFXIVClassic_Map_Server.packets.send.player public const ushort OPCODE = 0x01A4; public const uint PACKET_SIZE = 0x28; - public static SubPacket BuildPacket(uint sourceActorID, uint targetActorID, uint jobId) + public static SubPacket BuildPacket(uint sourceActorId, uint jobId) { - return new SubPacket(OPCODE, sourceActorID, targetActorID, BitConverter.GetBytes((uint)jobId)); + return new SubPacket(OPCODE, sourceActorId, BitConverter.GetBytes((uint)jobId)); } } } diff --git a/FFXIVClassic Map Server/packets/send/player/SetCurrentMountChocoboPacket.cs b/FFXIVClassic Map Server/packets/send/player/SetCurrentMountChocoboPacket.cs index 95f3ff97..401df44c 100644 --- a/FFXIVClassic Map Server/packets/send/player/SetCurrentMountChocoboPacket.cs +++ b/FFXIVClassic Map Server/packets/send/player/SetCurrentMountChocoboPacket.cs @@ -24,11 +24,11 @@ namespace FFXIVClassic_Map_Server.packets.send.player public const ushort OPCODE = 0x0197; public const uint PACKET_SIZE = 0x28; - public static SubPacket BuildPacket(uint playerActorID, int appearanceId) + public static SubPacket BuildPacket(uint sourceActorId, int appearanceId) { byte[] data = new byte[PACKET_SIZE - 0x20]; data[5] = (byte)(appearanceId & 0xFF); - return new SubPacket(OPCODE, playerActorID, playerActorID, data); + return new SubPacket(OPCODE, sourceActorId, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/player/SetCurrentMountGoobbuePacket.cs b/FFXIVClassic Map Server/packets/send/player/SetCurrentMountGoobbuePacket.cs index 71aca97f..168ffd88 100644 --- a/FFXIVClassic Map Server/packets/send/player/SetCurrentMountGoobbuePacket.cs +++ b/FFXIVClassic Map Server/packets/send/player/SetCurrentMountGoobbuePacket.cs @@ -8,11 +8,11 @@ namespace FFXIVClassic_Map_Server.packets.send.player public const ushort OPCODE = 0x01a0; public const uint PACKET_SIZE = 0x28; - public static SubPacket BuildPacket(uint playerActorID, int appearanceId) + public static SubPacket BuildPacket(uint sourceActorId, int appearanceId) { byte[] data = new byte[PACKET_SIZE - 0x20]; data[0] = (byte)(appearanceId & 0xFF); - return new SubPacket(OPCODE, playerActorID, playerActorID, data); + return new SubPacket(OPCODE, sourceActorId, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/player/SetCutsceneBookPacket.cs b/FFXIVClassic Map Server/packets/send/player/SetCutsceneBookPacket.cs index 84bc4c9f..56aad084 100644 --- a/FFXIVClassic Map Server/packets/send/player/SetCutsceneBookPacket.cs +++ b/FFXIVClassic Map Server/packets/send/player/SetCutsceneBookPacket.cs @@ -62,7 +62,7 @@ namespace FFXIVClassic_Map_Server.packets.send.player public bool[] cutsceneFlags = new bool[2048]; - public SubPacket BuildPacket(uint playerActorID, string sNpcName, short sNpcActorIdOffset, byte sNpcSkin, byte sNpcPersonality) + public SubPacket BuildPacket(uint sourceActorId, string sNpcName, short sNpcActorIdOffset, byte sNpcSkin, byte sNpcPersonality) { byte[] data = new byte[PACKET_SIZE - 0x20]; @@ -91,7 +91,7 @@ namespace FFXIVClassic_Map_Server.packets.send.player } } - return new SubPacket(OPCODE, playerActorID, playerActorID, data); + return new SubPacket(OPCODE, sourceActorId, data); } } diff --git a/FFXIVClassic Map Server/packets/send/player/SetGrandCompanyPacket.cs b/FFXIVClassic Map Server/packets/send/player/SetGrandCompanyPacket.cs index d942efad..b4f120c9 100644 --- a/FFXIVClassic Map Server/packets/send/player/SetGrandCompanyPacket.cs +++ b/FFXIVClassic Map Server/packets/send/player/SetGrandCompanyPacket.cs @@ -10,7 +10,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor public const ushort OPCODE = 0x0194; public const uint PACKET_SIZE = 0x28; - public static SubPacket BuildPacket(uint sourceActorID, uint targetActorID, ushort currentAllegiance, ushort rankLimsa, ushort rankGridania, ushort rankUldah) + public static SubPacket BuildPacket(uint sourceActorId, ushort currentAllegiance, ushort rankLimsa, ushort rankGridania, ushort rankUldah) { byte[] data = new byte[PACKET_SIZE - 0x20]; @@ -25,7 +25,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor } } - return new SubPacket(OPCODE, sourceActorID, targetActorID, data); + return new SubPacket(OPCODE, sourceActorId, data); } } diff --git a/FFXIVClassic Map Server/packets/send/player/SetHasChocoboPacket.cs b/FFXIVClassic Map Server/packets/send/player/SetHasChocoboPacket.cs index 796ac55e..9a72954d 100644 --- a/FFXIVClassic Map Server/packets/send/player/SetHasChocoboPacket.cs +++ b/FFXIVClassic Map Server/packets/send/player/SetHasChocoboPacket.cs @@ -7,11 +7,11 @@ namespace FFXIVClassic_Map_Server.packets.send.player public const ushort OPCODE = 0x0199; public const uint PACKET_SIZE = 0x28; - public static SubPacket BuildPacket(uint playerActorID, bool hasChocobo) + public static SubPacket BuildPacket(uint sourceActorId, bool hasChocobo) { byte[] data = new byte[PACKET_SIZE - 0x20]; data[0] = (byte)(hasChocobo ? 1 : 0); - return new SubPacket(OPCODE, playerActorID, playerActorID, data); + return new SubPacket(OPCODE, sourceActorId, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/player/SetHasGoobbuePacket.cs b/FFXIVClassic Map Server/packets/send/player/SetHasGoobbuePacket.cs index 4f35e303..475bee38 100644 --- a/FFXIVClassic Map Server/packets/send/player/SetHasGoobbuePacket.cs +++ b/FFXIVClassic Map Server/packets/send/player/SetHasGoobbuePacket.cs @@ -7,11 +7,11 @@ namespace FFXIVClassic_Map_Server.packets.send.player public const ushort OPCODE = 0x01A1; public const uint PACKET_SIZE = 0x28; - public static SubPacket BuildPacket(uint playerActorID, bool hasGoobbue) + public static SubPacket BuildPacket(uint sourceActorId, bool hasGoobbue) { byte[] data = new byte[PACKET_SIZE - 0x20]; data[0] = (byte)(hasGoobbue ? 1 : 0); - return new SubPacket(OPCODE, playerActorID, playerActorID, data); + return new SubPacket(OPCODE, sourceActorId, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/player/SetLatestAchievementsPacket.cs b/FFXIVClassic Map Server/packets/send/player/SetLatestAchievementsPacket.cs index 5d9c6483..63fe48fc 100644 --- a/FFXIVClassic Map Server/packets/send/player/SetLatestAchievementsPacket.cs +++ b/FFXIVClassic Map Server/packets/send/player/SetLatestAchievementsPacket.cs @@ -10,7 +10,7 @@ namespace FFXIVClassic_Map_Server.packets.send.player public const ushort OPCODE = 0x019B; public const uint PACKET_SIZE = 0x40; - public static SubPacket BuildPacket(uint playerActorID, uint[] latestAchievementIDs) + public static SubPacket BuildPacket(uint sourceActorId, uint[] latestAchievementIDs) { byte[] data = new byte[PACKET_SIZE - 0x20]; @@ -28,7 +28,7 @@ namespace FFXIVClassic_Map_Server.packets.send.player } } - return new SubPacket(OPCODE, playerActorID, playerActorID, data); + return new SubPacket(OPCODE, sourceActorId, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/player/SetPlayerDreamPacket.cs b/FFXIVClassic Map Server/packets/send/player/SetPlayerDreamPacket.cs index d3e3d177..3f2c4897 100644 --- a/FFXIVClassic Map Server/packets/send/player/SetPlayerDreamPacket.cs +++ b/FFXIVClassic Map Server/packets/send/player/SetPlayerDreamPacket.cs @@ -10,10 +10,10 @@ namespace FFXIVClassic_Map_Server.packets.send.player public const ushort OPCODE = 0x01A7; public const uint PACKET_SIZE = 0x28; - public static SubPacket BuildPacket(uint playerActorID, uint dreamID) + public static SubPacket BuildPacket(uint sourceActorId, uint dreamID) { dreamID += 0x20E; - return new SubPacket(OPCODE, playerActorID, playerActorID, BitConverter.GetBytes((uint)dreamID)); + return new SubPacket(OPCODE, sourceActorId, BitConverter.GetBytes((uint)dreamID)); } } } diff --git a/FFXIVClassic Map Server/packets/send/player/SetPlayerItemStoragePacket.cs b/FFXIVClassic Map Server/packets/send/player/SetPlayerItemStoragePacket.cs index 675bf50d..0bda349f 100644 --- a/FFXIVClassic Map Server/packets/send/player/SetPlayerItemStoragePacket.cs +++ b/FFXIVClassic Map Server/packets/send/player/SetPlayerItemStoragePacket.cs @@ -11,7 +11,7 @@ namespace FFXIVClassic_Map_Server.packets.send.player public const ushort OPCODE = 0x01A5; public const uint PACKET_SIZE = 0x50; - public static SubPacket BuildPacket(uint playerActorID) + public static SubPacket BuildPacket(uint sourceActorId) { byte[] data = new byte[PACKET_SIZE - 0x20]; @@ -23,7 +23,7 @@ namespace FFXIVClassic_Map_Server.packets.send.player } } - return new SubPacket(OPCODE, playerActorID, playerActorID, data); + return new SubPacket(OPCODE, sourceActorId, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/player/SetPlayerTitlePacket.cs b/FFXIVClassic Map Server/packets/send/player/SetPlayerTitlePacket.cs index 75af7666..f99066c9 100644 --- a/FFXIVClassic Map Server/packets/send/player/SetPlayerTitlePacket.cs +++ b/FFXIVClassic Map Server/packets/send/player/SetPlayerTitlePacket.cs @@ -9,9 +9,9 @@ namespace FFXIVClassic_Map_Server.packets.send.player public const ushort OPCODE = 0x019D; public const uint PACKET_SIZE = 0x28; - public static SubPacket BuildPacket(uint playerActorID, uint targetActorID, uint titleID) + public static SubPacket BuildPacket(uint sourceActorId, uint titleID) { - return new SubPacket(OPCODE, playerActorID, targetActorID, BitConverter.GetBytes((UInt64)titleID)); + return new SubPacket(OPCODE, sourceActorId, BitConverter.GetBytes((UInt64)titleID)); } } } diff --git a/FFXIVClassic Map Server/packets/send/player/SetSpecialEventWorkPacket.cs b/FFXIVClassic Map Server/packets/send/player/SetSpecialEventWorkPacket.cs index 78a8ed5e..93bd2644 100644 --- a/FFXIVClassic Map Server/packets/send/player/SetSpecialEventWorkPacket.cs +++ b/FFXIVClassic Map Server/packets/send/player/SetSpecialEventWorkPacket.cs @@ -10,7 +10,7 @@ namespace FFXIVClassic_Map_Server.packets.send.player public const ushort OPCODE = 0x0196; public const uint PACKET_SIZE = 0x38; - public static SubPacket BuildPacket(uint playerActorID, uint targetActorID) + public static SubPacket BuildPacket(uint sourceActorId) { byte[] data = new byte[PACKET_SIZE - 0x20]; @@ -23,7 +23,7 @@ namespace FFXIVClassic_Map_Server.packets.send.player } } - return new SubPacket(OPCODE, playerActorID, targetActorID, data); + return new SubPacket(OPCODE, sourceActorId, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/recruitment/CurrentRecruitmentDetailsPacket.cs b/FFXIVClassic Map Server/packets/send/recruitment/CurrentRecruitmentDetailsPacket.cs index 2b3f7a4d..28b68825 100644 --- a/FFXIVClassic Map Server/packets/send/recruitment/CurrentRecruitmentDetailsPacket.cs +++ b/FFXIVClassic Map Server/packets/send/recruitment/CurrentRecruitmentDetailsPacket.cs @@ -12,7 +12,7 @@ namespace FFXIVClassic_Map_Server.packets.send.recruitment public const ushort OPCODE = 0x01C8; public const uint PACKET_SIZE = 0x218; - public static SubPacket BuildPacket(uint playerActorID, RecruitmentDetails details) + public static SubPacket BuildPacket(uint sourceActorId, RecruitmentDetails details) { byte[] data = new byte[PACKET_SIZE - 0x20]; @@ -22,7 +22,7 @@ namespace FFXIVClassic_Map_Server.packets.send.recruitment { if (details == null) { - return new SubPacket(OPCODE, playerActorID, playerActorID, data); + return new SubPacket(OPCODE, sourceActorId, data); } binWriter.Write((UInt32)details.purposeId); @@ -48,7 +48,7 @@ namespace FFXIVClassic_Map_Server.packets.send.recruitment } } - return new SubPacket(OPCODE, playerActorID, playerActorID, data); + return new SubPacket(OPCODE, sourceActorId, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/recruitment/EndRecruitmentPacket.cs b/FFXIVClassic Map Server/packets/send/recruitment/EndRecruitmentPacket.cs index d6c6ffe6..4ce5d714 100644 --- a/FFXIVClassic Map Server/packets/send/recruitment/EndRecruitmentPacket.cs +++ b/FFXIVClassic Map Server/packets/send/recruitment/EndRecruitmentPacket.cs @@ -7,11 +7,11 @@ namespace FFXIVClassic_Map_Server.packets.send.recruitment public const ushort OPCODE = 0x01C4; public const uint PACKET_SIZE = 0x28; - public static SubPacket BuildPacket(uint playerActorID) + public static SubPacket BuildPacket(uint sourceActorId) { byte[] data = new byte[PACKET_SIZE - 0x20]; data[0] = 1; - return new SubPacket(OPCODE, playerActorID, playerActorID, data); + return new SubPacket(OPCODE, sourceActorId, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/recruitment/RecruiterStatePacket.cs b/FFXIVClassic Map Server/packets/send/recruitment/RecruiterStatePacket.cs index 7356f33b..8bccd698 100644 --- a/FFXIVClassic Map Server/packets/send/recruitment/RecruiterStatePacket.cs +++ b/FFXIVClassic Map Server/packets/send/recruitment/RecruiterStatePacket.cs @@ -10,7 +10,7 @@ namespace FFXIVClassic_Map_Server.packets.send.recruitment public const ushort OPCODE = 0x01C5; public const uint PACKET_SIZE = 0x038; - public static SubPacket BuildPacket(uint playerActorID, bool isRecruiting, bool isRecruiter, long recruitmentId) + public static SubPacket BuildPacket(uint sourceActorId, bool isRecruiting, bool isRecruiter, long recruitmentId) { byte[] data = new byte[PACKET_SIZE - 0x20]; @@ -25,7 +25,7 @@ namespace FFXIVClassic_Map_Server.packets.send.recruitment } } - return new SubPacket(OPCODE, playerActorID, playerActorID, data); + return new SubPacket(OPCODE, sourceActorId, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/recruitment/StartRecruitingResponse.cs b/FFXIVClassic Map Server/packets/send/recruitment/StartRecruitingResponse.cs index efa1b644..9629575c 100644 --- a/FFXIVClassic Map Server/packets/send/recruitment/StartRecruitingResponse.cs +++ b/FFXIVClassic Map Server/packets/send/recruitment/StartRecruitingResponse.cs @@ -7,13 +7,13 @@ namespace FFXIVClassic_Map_Server.packets.send.recruitment public const ushort OPCODE = 0x01C3; public const uint PACKET_SIZE = 0x28; - public static SubPacket BuildPacket(uint playerActorID, bool success) + public static SubPacket BuildPacket(uint sourceActorId, bool success) { byte[] data = new byte[PACKET_SIZE - 0x20]; data[0] = (byte)(success ? 0x1 : 0x0); - return new SubPacket(OPCODE, playerActorID, playerActorID, data); + return new SubPacket(OPCODE, sourceActorId, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/social/BlacklistAddedPacket.cs b/FFXIVClassic Map Server/packets/send/social/BlacklistAddedPacket.cs index 1ac85628..6cb39cdf 100644 --- a/FFXIVClassic Map Server/packets/send/social/BlacklistAddedPacket.cs +++ b/FFXIVClassic Map Server/packets/send/social/BlacklistAddedPacket.cs @@ -10,7 +10,7 @@ namespace FFXIVClassic_Map_Server.packets.send.social public const ushort OPCODE = 0x01C9; public const uint PACKET_SIZE = 0x048; - public static SubPacket BuildPacket(uint playerActorID, bool isSuccess, string nameToAdd) + public static SubPacket BuildPacket(uint sourceActorId, bool isSuccess, string nameToAdd) { byte[] data = new byte[PACKET_SIZE - 0x20]; @@ -23,7 +23,7 @@ namespace FFXIVClassic_Map_Server.packets.send.social } } - return new SubPacket(OPCODE, playerActorID, playerActorID, data); + return new SubPacket(OPCODE, sourceActorId, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/social/BlacklistRemovedPacket.cs b/FFXIVClassic Map Server/packets/send/social/BlacklistRemovedPacket.cs index 22c7f8a7..b341c5d4 100644 --- a/FFXIVClassic Map Server/packets/send/social/BlacklistRemovedPacket.cs +++ b/FFXIVClassic Map Server/packets/send/social/BlacklistRemovedPacket.cs @@ -10,7 +10,7 @@ namespace FFXIVClassic_Map_Server.packets.send.social public const ushort OPCODE = 0x01CA; public const uint PACKET_SIZE = 0x048; - public static SubPacket BuildPacket(uint playerActorID, bool isSuccess, string nameToRemove) + public static SubPacket BuildPacket(uint sourceActorId, bool isSuccess, string nameToRemove) { byte[] data = new byte[PACKET_SIZE - 0x20]; @@ -23,7 +23,7 @@ namespace FFXIVClassic_Map_Server.packets.send.social } } - return new SubPacket(OPCODE, playerActorID, playerActorID, data); + return new SubPacket(OPCODE, sourceActorId, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/social/FriendStatusPacket.cs b/FFXIVClassic Map Server/packets/send/social/FriendStatusPacket.cs index a9e279fe..449a8873 100644 --- a/FFXIVClassic Map Server/packets/send/social/FriendStatusPacket.cs +++ b/FFXIVClassic Map Server/packets/send/social/FriendStatusPacket.cs @@ -10,7 +10,7 @@ namespace FFXIVClassic_Map_Server.packets.send.social public const ushort OPCODE = 0x01CF; public const uint PACKET_SIZE = 0x686; - public static SubPacket BuildPacket(uint playerActorID, Tuple[] friendStatus) + public static SubPacket BuildPacket(uint sourceActorId, Tuple[] friendStatus) { byte[] data = new byte[PACKET_SIZE - 0x20]; @@ -42,7 +42,7 @@ namespace FFXIVClassic_Map_Server.packets.send.social } } - return new SubPacket(OPCODE, playerActorID, playerActorID, data); + return new SubPacket(OPCODE, sourceActorId, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/social/FriendlistAddedPacket.cs b/FFXIVClassic Map Server/packets/send/social/FriendlistAddedPacket.cs index b46caf85..6c7787a3 100644 --- a/FFXIVClassic Map Server/packets/send/social/FriendlistAddedPacket.cs +++ b/FFXIVClassic Map Server/packets/send/social/FriendlistAddedPacket.cs @@ -11,7 +11,7 @@ namespace FFXIVClassic_Map_Server.packets.send.social public const ushort OPCODE = 0x01CC; public const uint PACKET_SIZE = 0x067; - public static SubPacket BuildPacket(uint playerActorID, bool isSuccess, long id, bool isOnline, string nameToAdd) + public static SubPacket BuildPacket(uint sourceActorId, bool isSuccess, long id, bool isOnline, string nameToAdd) { byte[] data = new byte[PACKET_SIZE - 0x20]; @@ -26,7 +26,7 @@ namespace FFXIVClassic_Map_Server.packets.send.social } } - return new SubPacket(OPCODE, playerActorID, playerActorID, data); + return new SubPacket(OPCODE, sourceActorId, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/social/FriendlistRemovedPacket.cs b/FFXIVClassic Map Server/packets/send/social/FriendlistRemovedPacket.cs index f293da3d..8e4d914c 100644 --- a/FFXIVClassic Map Server/packets/send/social/FriendlistRemovedPacket.cs +++ b/FFXIVClassic Map Server/packets/send/social/FriendlistRemovedPacket.cs @@ -10,7 +10,7 @@ namespace FFXIVClassic_Map_Server.packets.send.social public const ushort OPCODE = 0x01CD; public const uint PACKET_SIZE = 0x057; - public static SubPacket BuildPacket(uint playerActorID, bool isSuccess, string nameToRemove) + public static SubPacket BuildPacket(uint sourceActorId, bool isSuccess, string nameToRemove) { byte[] data = new byte[PACKET_SIZE - 0x20]; @@ -23,7 +23,7 @@ namespace FFXIVClassic_Map_Server.packets.send.social } } - return new SubPacket(OPCODE, playerActorID, playerActorID, data); + return new SubPacket(OPCODE, sourceActorId, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/social/SendBlacklistPacket.cs b/FFXIVClassic Map Server/packets/send/social/SendBlacklistPacket.cs index 01654a86..9ddd35c3 100644 --- a/FFXIVClassic Map Server/packets/send/social/SendBlacklistPacket.cs +++ b/FFXIVClassic Map Server/packets/send/social/SendBlacklistPacket.cs @@ -11,7 +11,7 @@ namespace FFXIVClassic_Map_Server.packets.send.social public const ushort OPCODE = 0x01CB; public const uint PACKET_SIZE = 0x686; - public static SubPacket BuildPacket(uint playerActorID, string[] blacklistedNames, ref int offset) + public static SubPacket BuildPacket(uint sourceActorId, string[] blacklistedNames, ref int offset) { byte[] data = new byte[PACKET_SIZE - 0x20]; @@ -36,7 +36,7 @@ namespace FFXIVClassic_Map_Server.packets.send.social } } - return new SubPacket(OPCODE, playerActorID, playerActorID, data); + return new SubPacket(OPCODE, sourceActorId, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/social/SendFriendlistPacket.cs b/FFXIVClassic Map Server/packets/send/social/SendFriendlistPacket.cs index 117c800e..b07b31f8 100644 --- a/FFXIVClassic Map Server/packets/send/social/SendFriendlistPacket.cs +++ b/FFXIVClassic Map Server/packets/send/social/SendFriendlistPacket.cs @@ -11,7 +11,7 @@ namespace FFXIVClassic_Map_Server.packets.send.social public const ushort OPCODE = 0x01CE; public const uint PACKET_SIZE = 0x686; - public static SubPacket BuildPacket(uint playerActorID, Tuple[] friends, ref int offset) + public static SubPacket BuildPacket(uint sourceActorId, Tuple[] friends, ref int offset) { byte[] data = new byte[PACKET_SIZE - 0x20]; @@ -39,7 +39,7 @@ namespace FFXIVClassic_Map_Server.packets.send.social } } - return new SubPacket(OPCODE, playerActorID, playerActorID, data); + return new SubPacket(OPCODE, sourceActorId, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/supportdesk/EndGMTicketPacket.cs b/FFXIVClassic Map Server/packets/send/supportdesk/EndGMTicketPacket.cs index b9387de5..c0b0f92c 100644 --- a/FFXIVClassic Map Server/packets/send/supportdesk/EndGMTicketPacket.cs +++ b/FFXIVClassic Map Server/packets/send/supportdesk/EndGMTicketPacket.cs @@ -11,7 +11,7 @@ namespace FFXIVClassic_Map_Server.packets.send.supportdesk { byte[] data = new byte[PACKET_SIZE - 0x20]; data[0] = 1; - return new SubPacket(OPCODE, playerActorID, playerActorID, data); + return new SubPacket(OPCODE, playerActorID, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/supportdesk/FaqBodyResponsePacket.cs b/FFXIVClassic Map Server/packets/send/supportdesk/FaqBodyResponsePacket.cs index 6704747e..09359e91 100644 --- a/FFXIVClassic Map Server/packets/send/supportdesk/FaqBodyResponsePacket.cs +++ b/FFXIVClassic Map Server/packets/send/supportdesk/FaqBodyResponsePacket.cs @@ -24,7 +24,7 @@ namespace FFXIVClassic_Map_Server.packets.send.supportdesk } } - return new SubPacket(OPCODE, playerActorID, playerActorID, data); + return new SubPacket(OPCODE, playerActorID, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/supportdesk/FaqListResponsePacket.cs b/FFXIVClassic Map Server/packets/send/supportdesk/FaqListResponsePacket.cs index b41774f1..6c540d7d 100644 --- a/FFXIVClassic Map Server/packets/send/supportdesk/FaqListResponsePacket.cs +++ b/FFXIVClassic Map Server/packets/send/supportdesk/FaqListResponsePacket.cs @@ -26,7 +26,7 @@ namespace FFXIVClassic_Map_Server.packets.send.supportdesk } } - return new SubPacket(OPCODE, playerActorID, playerActorID, data); + return new SubPacket(OPCODE, playerActorID, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/supportdesk/GMTicketPacket.cs b/FFXIVClassic Map Server/packets/send/supportdesk/GMTicketPacket.cs index eddd0e33..a4c4c6c4 100644 --- a/FFXIVClassic Map Server/packets/send/supportdesk/GMTicketPacket.cs +++ b/FFXIVClassic Map Server/packets/send/supportdesk/GMTicketPacket.cs @@ -26,7 +26,7 @@ namespace FFXIVClassic_Map_Server.packets.send.supportdesk } } - return new SubPacket(OPCODE, playerActorID, playerActorID, data); + return new SubPacket(OPCODE, playerActorID, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/supportdesk/GMTicketSentResponsePacket.cs b/FFXIVClassic Map Server/packets/send/supportdesk/GMTicketSentResponsePacket.cs index 80903b2a..2974d7b8 100644 --- a/FFXIVClassic Map Server/packets/send/supportdesk/GMTicketSentResponsePacket.cs +++ b/FFXIVClassic Map Server/packets/send/supportdesk/GMTicketSentResponsePacket.cs @@ -15,7 +15,7 @@ namespace FFXIVClassic_Map_Server.packets.send.supportdesk data[0] = (byte)(wasSent ? 0x1 : 0x0); - return new SubPacket(OPCODE, playerActorID, playerActorID, data); + return new SubPacket(OPCODE, playerActorID, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/supportdesk/IssueListResponsePacket.cs b/FFXIVClassic Map Server/packets/send/supportdesk/IssueListResponsePacket.cs index 93337b87..ad838b1d 100644 --- a/FFXIVClassic Map Server/packets/send/supportdesk/IssueListResponsePacket.cs +++ b/FFXIVClassic Map Server/packets/send/supportdesk/IssueListResponsePacket.cs @@ -26,7 +26,7 @@ namespace FFXIVClassic_Map_Server.packets.send.supportdesk } } - return new SubPacket(OPCODE, playerActorID, playerActorID, data); + return new SubPacket(OPCODE, playerActorID, data); } } } diff --git a/FFXIVClassic Map Server/packets/send/supportdesk/StartGMTicketPacket.cs b/FFXIVClassic Map Server/packets/send/supportdesk/StartGMTicketPacket.cs index 8c643882..20eb219c 100644 --- a/FFXIVClassic Map Server/packets/send/supportdesk/StartGMTicketPacket.cs +++ b/FFXIVClassic Map Server/packets/send/supportdesk/StartGMTicketPacket.cs @@ -11,7 +11,7 @@ namespace FFXIVClassic_Map_Server.packets.send.supportdesk { byte[] data = new byte[PACKET_SIZE - 0x20]; data[0] = (byte)(startGM ? 1 : 0); - return new SubPacket(OPCODE, playerActorID, playerActorID, data); + return new SubPacket(OPCODE, playerActorID, data); } } } diff --git a/FFXIVClassic Map Server/utils/ActorPropertyPacketUtil.cs b/FFXIVClassic Map Server/utils/ActorPropertyPacketUtil.cs index e5f11f8f..20200876 100644 --- a/FFXIVClassic Map Server/utils/ActorPropertyPacketUtil.cs +++ b/FFXIVClassic Map Server/utils/ActorPropertyPacketUtil.cs @@ -9,16 +9,14 @@ namespace FFXIVClassic_Map_Server.utils class ActorPropertyPacketUtil { private Actor forActor; - private uint playerActorId; private List subPackets = new List(); private SetActorPropetyPacket currentActorPropertyPacket; private string currentTarget; - public ActorPropertyPacketUtil(string firstTarget, Actor forActor, uint playerActorId) + public ActorPropertyPacketUtil(string firstTarget, Actor forActor) { currentActorPropertyPacket = new SetActorPropetyPacket(firstTarget); this.forActor = forActor; - this.playerActorId = playerActorId; this.currentTarget = firstTarget; } @@ -28,7 +26,7 @@ namespace FFXIVClassic_Map_Server.utils { currentActorPropertyPacket.SetIsMore(true); currentActorPropertyPacket.AddTarget(); - subPackets.Add(currentActorPropertyPacket.BuildPacket(playerActorId, forActor.actorId)); + subPackets.Add(currentActorPropertyPacket.BuildPacket(forActor.actorId)); currentActorPropertyPacket = new SetActorPropetyPacket(currentTarget); currentActorPropertyPacket.AddProperty(forActor, property); } @@ -45,7 +43,7 @@ namespace FFXIVClassic_Map_Server.utils { currentActorPropertyPacket.AddTarget(); currentActorPropertyPacket.SetIsMore(false); - subPackets.Add(currentActorPropertyPacket.BuildPacket(playerActorId, forActor.actorId)); + subPackets.Add(currentActorPropertyPacket.BuildPacket(forActor.actorId)); return subPackets; } diff --git a/FFXIVClassic World Server/DataObjects/ClientConnection.cs b/FFXIVClassic World Server/DataObjects/ClientConnection.cs index 282dd52f..928506b6 100644 --- a/FFXIVClassic World Server/DataObjects/ClientConnection.cs +++ b/FFXIVClassic World Server/DataObjects/ClientConnection.cs @@ -23,8 +23,11 @@ namespace FFXIVClassic_World_Server SendPacketQueue.Add(packet); } - public void QueuePacket(SubPacket subpacket, bool isAuthed, bool isEncrypted) + public void QueuePacket(SubPacket subpacket) { + bool isAuthed = true; + bool isEncrypted = false; + subpacket.SetTargetId(owner.sessionId); SendPacketQueue.Add(BasePacket.CreatePacket(subpacket, isAuthed, isEncrypted)); } diff --git a/FFXIVClassic World Server/DataObjects/Group/Group.cs b/FFXIVClassic World Server/DataObjects/Group/Group.cs index 2cef6f9e..a60de10a 100644 --- a/FFXIVClassic World Server/DataObjects/Group/Group.cs +++ b/FFXIVClassic World Server/DataObjects/Group/Group.cs @@ -97,33 +97,33 @@ namespace FFXIVClassic_World_Server.DataObjects.Group ulong time = Utils.MilisUnixTimeStampUTC(); List members = BuildMemberList(session.sessionId); - session.clientConnection.QueuePacket(GroupHeaderPacket.buildPacket(session.sessionId, session.currentZoneId, time, this), true, false); - session.clientConnection.QueuePacket(GroupMembersBeginPacket.buildPacket(session.sessionId, session.currentZoneId, time, this), true, false); + session.clientConnection.QueuePacket(GroupHeaderPacket.buildPacket(session.sessionId, session.currentZoneId, time, this)); + session.clientConnection.QueuePacket(GroupMembersBeginPacket.buildPacket(session.sessionId, session.currentZoneId, time, this)); int currentIndex = 0; while (true) { if (GetMemberCount() - currentIndex >= 64) - session.clientConnection.QueuePacket(GroupMembersX64Packet.buildPacket(session.sessionId, session.currentZoneId, time, members, ref currentIndex), true, false); + session.clientConnection.QueuePacket(GroupMembersX64Packet.buildPacket(session.sessionId, session.currentZoneId, time, members, ref currentIndex)); else if (GetMemberCount() - currentIndex >= 32) - session.clientConnection.QueuePacket(GroupMembersX32Packet.buildPacket(session.sessionId, session.currentZoneId, time, members, ref currentIndex), true, false); + session.clientConnection.QueuePacket(GroupMembersX32Packet.buildPacket(session.sessionId, session.currentZoneId, time, members, ref currentIndex)); else if (GetMemberCount() - currentIndex >= 16) - session.clientConnection.QueuePacket(GroupMembersX16Packet.buildPacket(session.sessionId, session.currentZoneId, time, members, ref currentIndex), true, false); + session.clientConnection.QueuePacket(GroupMembersX16Packet.buildPacket(session.sessionId, session.currentZoneId, time, members, ref currentIndex)); else if (GetMemberCount() - currentIndex > 0) - session.clientConnection.QueuePacket(GroupMembersX08Packet.buildPacket(session.sessionId, session.currentZoneId, time, members, ref currentIndex), true, false); + session.clientConnection.QueuePacket(GroupMembersX08Packet.buildPacket(session.sessionId, session.currentZoneId, time, members, ref currentIndex)); else break; } - session.clientConnection.QueuePacket(GroupMembersEndPacket.buildPacket(session.sessionId, session.currentZoneId, time, this), true, false); + session.clientConnection.QueuePacket(GroupMembersEndPacket.buildPacket(session.sessionId, session.currentZoneId, time, this)); } public void SendDeletePacket(Session session) { if (session != null) - session.clientConnection.QueuePacket(DeleteGroupPacket.buildPacket(session.sessionId, this), true, false); + session.clientConnection.QueuePacket(DeleteGroupPacket.buildPacket(session.sessionId, this)); } public virtual void SendInitWorkValues(Session session) diff --git a/FFXIVClassic World Server/DataObjects/Group/Linkshell.cs b/FFXIVClassic World Server/DataObjects/Group/Linkshell.cs index 27748ab7..a49178dc 100644 --- a/FFXIVClassic World Server/DataObjects/Group/Linkshell.cs +++ b/FFXIVClassic World Server/DataObjects/Group/Linkshell.cs @@ -120,9 +120,9 @@ namespace FFXIVClassic_World_Server.DataObjects.Group } groupWork.setTarget("/_init"); - SubPacket test = groupWork.buildPacket(session.sessionId, session.sessionId); + SubPacket test = groupWork.buildPacket(session.sessionId); test.DebugPrintSubPacket(); - session.clientConnection.QueuePacket(test, true, false); + session.clientConnection.QueuePacket(test); } public void ResendWorkValues() @@ -148,8 +148,8 @@ namespace FFXIVClassic_World_Server.DataObjects.Group Session session = Server.GetServer().GetSession(members[i].charaId); if (session != null) { - SubPacket test = groupWork.buildPacket(session.sessionId, session.sessionId); - session.clientConnection.QueuePacket(test, true, false); + SubPacket test = groupWork.buildPacket(session.sessionId); + session.clientConnection.QueuePacket(test); } } } diff --git a/FFXIVClassic World Server/DataObjects/Group/Party.cs b/FFXIVClassic World Server/DataObjects/Group/Party.cs index 7fc1a9eb..da7e4ea4 100644 --- a/FFXIVClassic World Server/DataObjects/Group/Party.cs +++ b/FFXIVClassic World Server/DataObjects/Group/Party.cs @@ -189,7 +189,7 @@ namespace FFXIVClassic_World_Server.DataObjects.Group if (session == null) continue; else - session.clientConnection.QueuePacket(leaderUpdate.buildPacket(session.sessionId, session.sessionId), true, false); + session.clientConnection.QueuePacket(leaderUpdate.buildPacket(session.sessionId)); } } @@ -226,8 +226,8 @@ namespace FFXIVClassic_World_Server.DataObjects.Group groupWork.addProperty(this, "partyGroupWork._globalTemp.owner"); groupWork.setTarget("/_init"); - SubPacket test = groupWork.buildPacket(session.sessionId, session.sessionId); - session.clientConnection.QueuePacket(test, true, false); + SubPacket test = groupWork.buildPacket(session.sessionId); + session.clientConnection.QueuePacket(test); test.DebugPrintSubPacket(); } diff --git a/FFXIVClassic World Server/DataObjects/Group/Relation.cs b/FFXIVClassic World Server/DataObjects/Group/Relation.cs index 8564ee8a..f38727c3 100644 --- a/FFXIVClassic World Server/DataObjects/Group/Relation.cs +++ b/FFXIVClassic World Server/DataObjects/Group/Relation.cs @@ -66,9 +66,9 @@ namespace FFXIVClassic_World_Server.DataObjects.Group groupWork.addProperty(this, "work._globalTemp.variableCommand"); groupWork.setTarget("/_init"); - SubPacket test = groupWork.buildPacket(session.sessionId, session.sessionId); + SubPacket test = groupWork.buildPacket(session.sessionId); test.DebugPrintSubPacket(); - session.clientConnection.QueuePacket(test, true, false); + session.clientConnection.QueuePacket(test); } } diff --git a/FFXIVClassic World Server/DataObjects/Group/RetainerGroup.cs b/FFXIVClassic World Server/DataObjects/Group/RetainerGroup.cs index bf440579..bfe5c69f 100644 --- a/FFXIVClassic World Server/DataObjects/Group/RetainerGroup.cs +++ b/FFXIVClassic World Server/DataObjects/Group/RetainerGroup.cs @@ -49,8 +49,8 @@ namespace FFXIVClassic_World_Server.DataObjects.Group groupWork.setTarget("/_init"); - SubPacket test = groupWork.buildPacket(session.sessionId, session.sessionId); - session.clientConnection.QueuePacket(test, true, false); + SubPacket test = groupWork.buildPacket(session.sessionId); + session.clientConnection.QueuePacket(test); } public override int GetMemberCount() diff --git a/FFXIVClassic World Server/DataObjects/Session.cs b/FFXIVClassic World Server/DataObjects/Session.cs index 966d3248..0358c9e5 100644 --- a/FFXIVClassic World Server/DataObjects/Session.cs +++ b/FFXIVClassic World Server/DataObjects/Session.cs @@ -38,34 +38,34 @@ namespace FFXIVClassic_World_Server.DataObjects { if (msgParams == null || msgParams.Length == 0) { - clientConnection.QueuePacket(GameMessagePacket.BuildPacket(0x5FF80001, sessionId, actorId, 0x5FF80001, textId, log), true, false); + clientConnection.QueuePacket(GameMessagePacket.BuildPacket(0x5FF80001, actorId, 0x5FF80001, textId, log)); } else - clientConnection.QueuePacket(GameMessagePacket.BuildPacket(0x5FF80001, sessionId, actorId, 0x5FF80001, textId, log, LuaUtils.CreateLuaParamList(msgParams)), true, false); + clientConnection.QueuePacket(GameMessagePacket.BuildPacket(0x5FF80001, actorId, 0x5FF80001, textId, log, LuaUtils.CreateLuaParamList(msgParams))); } public void SendGameMessage( ushort textId, byte log, params object[] msgParams) { if (msgParams == null || msgParams.Length == 0) - clientConnection.QueuePacket(GameMessagePacket.BuildPacket(0x5FF80001, sessionId, 0x5FF80001, textId, log), true, false); + clientConnection.QueuePacket(GameMessagePacket.BuildPacket(0x5FF80001, 0x5FF80001, textId, log)); else - clientConnection.QueuePacket(GameMessagePacket.BuildPacket(0x5FF80001, sessionId, 0x5FF80001, textId, log, LuaUtils.CreateLuaParamList(msgParams)), true, false); + clientConnection.QueuePacket(GameMessagePacket.BuildPacket(0x5FF80001, 0x5FF80001, textId, log, LuaUtils.CreateLuaParamList(msgParams))); } public void SendGameMessage( ushort textId, byte log, string customSender, params object[] msgParams) { if (msgParams == null || msgParams.Length == 0) - clientConnection.QueuePacket(GameMessagePacket.BuildPacket(0x5FF80001, sessionId, 0x5FF80001, textId, customSender, log), true, false); + clientConnection.QueuePacket(GameMessagePacket.BuildPacket(0x5FF80001, 0x5FF80001, textId, customSender, log)); else - clientConnection.QueuePacket(GameMessagePacket.BuildPacket(0x5FF80001, sessionId, 0x5FF80001, textId, customSender, log, LuaUtils.CreateLuaParamList(msgParams)), true, false); + clientConnection.QueuePacket(GameMessagePacket.BuildPacket(0x5FF80001, 0x5FF80001, textId, customSender, log, LuaUtils.CreateLuaParamList(msgParams))); } public void SendGameMessage(ushort textId, byte log, uint displayId, params object[] msgParams) { if (msgParams == null || msgParams.Length == 0) - clientConnection.QueuePacket(GameMessagePacket.BuildPacket(0x5FF80001, sessionId, 0x5FF80001, textId, displayId, log), true, false); + clientConnection.QueuePacket(GameMessagePacket.BuildPacket(0x5FF80001, 0x5FF80001, textId, displayId, log)); else - clientConnection.QueuePacket(GameMessagePacket.BuildPacket(0x5FF80001, sessionId, 0x5FF80001, textId, displayId, log, LuaUtils.CreateLuaParamList(msgParams)), true, false); + clientConnection.QueuePacket(GameMessagePacket.BuildPacket(0x5FF80001, 0x5FF80001, textId, displayId, log, LuaUtils.CreateLuaParamList(msgParams))); } 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 +