From 2d7d10a41745696cc407843db906108de16630f7 Mon Sep 17 00:00:00 2001 From: Filip Maj Date: Sat, 24 Jun 2017 14:12:52 -0400 Subject: [PATCH 01/38] Renamed Item dataobject to ItemData. Added guildleve data. --- FFXIVClassic Map Server/CommandProcessor.cs | 2 +- FFXIVClassic Map Server/Database.cs | 55 +- .../FFXIVClassic Map Server.csproj | 3 +- FFXIVClassic Map Server/Program.cs | 1 - FFXIVClassic Map Server/Server.cs | 17 +- .../actors/chara/player/Inventory.cs | 6 +- .../actors/chara/player/Player.cs | 2 +- .../dataobjects/GuildleveData.cs | 61 ++ .../dataobjects/InventoryItem.cs | 2 +- .../dataobjects/{Item.cs => ItemData.cs} | 6 +- FFXIVClassic Map Server/lua/LuaEngine.cs | 2 +- sql/gamedata_guildleves.sql | 671 ++++++++++++++++++ 12 files changed, 806 insertions(+), 22 deletions(-) create mode 100644 FFXIVClassic Map Server/dataobjects/GuildleveData.cs rename FFXIVClassic Map Server/dataobjects/{Item.cs => ItemData.cs} (99%) create mode 100644 sql/gamedata_guildleves.sql diff --git a/FFXIVClassic Map Server/CommandProcessor.cs b/FFXIVClassic Map Server/CommandProcessor.cs index bae38bb2..ffbe651f 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; diff --git a/FFXIVClassic Map Server/Database.cs b/FFXIVClassic Map Server/Database.cs index 33091cb6..28b59224 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; diff --git a/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj b/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj index 5934570c..03135e26 100644 --- a/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj +++ b/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj @@ -104,6 +104,7 @@ + @@ -123,7 +124,7 @@ - + diff --git a/FFXIVClassic Map Server/Program.cs b/FFXIVClassic Map Server/Program.cs index eb24fc4f..987fad31 100644 --- a/FFXIVClassic Map Server/Program.cs +++ b/FFXIVClassic Map Server/Program.cs @@ -19,7 +19,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/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 3e700d63..224865c8 100644 --- a/FFXIVClassic Map Server/actors/chara/player/Player.cs +++ b/FFXIVClassic Map Server/actors/chara/player/Player.cs @@ -984,7 +984,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; diff --git a/FFXIVClassic Map Server/dataobjects/GuildleveData.cs b/FFXIVClassic Map Server/dataobjects/GuildleveData.cs new file mode 100644 index 00000000..2c2cf64f --- /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.GetByte("factionCreditRequired"); + level = reader.GetByte("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/lua/LuaEngine.cs b/FFXIVClassic Map Server/lua/LuaEngine.cs index 65f146d3..dc1d2fe2 100644 --- a/FFXIVClassic Map Server/lua/LuaEngine.cs +++ b/FFXIVClassic Map Server/lua/LuaEngine.cs @@ -575,7 +575,7 @@ 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["GetLuaInstance"] = (Func)LuaEngine.GetInstance; script.Options.DebugPrint = s => { Program.Log.Debug(s); }; diff --git a/sql/gamedata_guildleves.sql b/sql/gamedata_guildleves.sql new file mode 100644 index 00000000..9ccab6e2 --- /dev/null +++ b/sql/gamedata_guildleves.sql @@ -0,0 +1,671 @@ +/* +MySQL Data Transfer +Source Host: localhost +Source Database: ffxiv_server +Target Host: localhost +Target Database: ffxiv_server +Date: 6/24/2017 2:11:35 PM +*/ + +SET FOREIGN_KEY_CHECKS=0; +-- ---------------------------- +-- Table structure for gamedata_guildleves +-- ---------------------------- +CREATE TABLE `gamedata_guildleves` ( + `id` int(10) unsigned NOT NULL, + `classType` int(10) unsigned DEFAULT NULL, + `location` int(10) unsigned DEFAULT NULL, + `factionCreditRequired` smallint(5) unsigned DEFAULT NULL, + `level` smallint(5) unsigned DEFAULT NULL, + `aetheryte` int(10) unsigned DEFAULT NULL, + `plateId` int(10) unsigned NOT NULL, + `borderId` int(10) unsigned NOT NULL, + `objective` int(10) unsigned DEFAULT NULL, + `partyRecommended` int(10) unsigned DEFAULT NULL, + `targetLocation` int(10) unsigned DEFAULT NULL, + `authority` int(10) unsigned DEFAULT NULL, + `timeLimit` tinyint(3) unsigned DEFAULT NULL, + `skill` int(10) unsigned DEFAULT NULL, + `favorCount` tinyint(3) unsigned DEFAULT NULL, + `aimNum1` tinyint(4) NOT NULL DEFAULT '0', + `aimNum2` tinyint(4) NOT NULL DEFAULT '0', + `aimNum3` tinyint(4) NOT NULL DEFAULT '0', + `aimNum4` tinyint(4) NOT NULL DEFAULT '0', + `item1` int(10) unsigned NOT NULL DEFAULT '0', + `item2` int(10) unsigned NOT NULL DEFAULT '0', + `item3` int(10) unsigned NOT NULL DEFAULT '0', + `item4` int(10) unsigned NOT NULL DEFAULT '0', + `mob1` int(10) unsigned NOT NULL DEFAULT '0', + `mob2` int(10) unsigned NOT NULL DEFAULT '0', + `mob3` int(10) unsigned NOT NULL DEFAULT '0', + `mob4` int(10) unsigned NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; + +-- ---------------------------- +-- Records +-- ---------------------------- +INSERT INTO `gamedata_guildleves` VALUES ('0', '1', '0', '0', '0', '1280000', '0', '0', '0', '0', '0', '40001', '60', '0', '10', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1', '1', '0', '0', '0', '1280000', '0', '0', '10011', '0', '0', '0', '30', '0', '10', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('2', '1', '1', '0', '5', '1280002', '20021', '20005', '10011', '0', '0', '40001', '40', '1', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3204006', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3', '1', '1', '0', '5', '1280002', '20021', '20005', '10021', '0', '0', '40001', '30', '1', '10', '3', '1', '0', '0', '0', '0', '0', '0', '3204006', '3204006', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4', '1', '1', '0', '5', '1280002', '20022', '20005', '10031', '0', '0', '40001', '30', '1', '10', '3', '1', '0', '0', '0', '0', '0', '0', '3204006', '3204006', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('5', '1', '1', '0', '5', '1280002', '20021', '20005', '0', '0', '0', '40001', '60', '2', '10', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('6', '1', '1', '0', '5', '1280002', '20021', '20005', '0', '0', '0', '40001', '60', '2', '10', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('7', '1', '1', '0', '5', '1280002', '20021', '20005', '0', '0', '0', '40001', '60', '2', '10', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('8', '1', '1', '0', '5', '1280002', '20021', '20005', '0', '0', '0', '40001', '60', '0', '10', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('9', '1', '1', '0', '5', '1280002', '20021', '20005', '0', '0', '0', '40001', '60', '0', '10', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10', '1', '1', '0', '5', '1280002', '20021', '20005', '0', '0', '0', '40001', '60', '0', '10', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11', '1', '1', '0', '5', '1280002', '20021', '20005', '0', '0', '0', '40001', '60', '0', '10', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('47', '1', '1', '0', '0', '1280002', '20021', '20001', '0', '0', '0', '40001', '60', '0', '10', '8', '1', '1', '1', '0', '0', '0', '0', '1', '3106209', '3200801', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('48', '1', '1', '0', '0', '1280002', '20021', '20005', '0', '0', '0', '40001', '60', '0', '10', '8', '1', '1', '1', '0', '0', '0', '0', '1', '3106312', '3101511', '3100612'); +INSERT INTO `gamedata_guildleves` VALUES ('49', '1', '1', '0', '0', '1280002', '20032', '20005', '10011', '0', '0', '40001', '60', '0', '10', '8', '1', '1', '1', '0', '0', '0', '0', '1', '3104323', '3107616', '3100913'); +INSERT INTO `gamedata_guildleves` VALUES ('1001', '1', '1', '100', '20', '1280003', '20021', '20002', '12001', '0', '0', '40019', '40', '0', '10', '4', '2', '4', '0', '0', '0', '0', '0', '3280203', '3280207', '3280211', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1002', '1', '1', '100', '20', '1280005', '20021', '20002', '12001', '0', '0', '40019', '40', '0', '10', '10', '0', '0', '0', '0', '0', '0', '0', '3206601', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1003', '1', '2', '100', '20', '1280066', '20021', '20002', '12001', '0', '0', '40019', '40', '0', '10', '2', '2', '2', '2', '0', '0', '0', '0', '3206701', '3206702', '3206703', '3206704'); +INSERT INTO `gamedata_guildleves` VALUES ('1004', '1', '1', '200', '30', '1280007', '20021', '20002', '12001', '0', '0', '40019', '40', '0', '10', '12', '0', '0', '0', '0', '0', '0', '0', '3206601', '3206601', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1005', '1', '3', '200', '30', '1280042', '20022', '20002', '12006', '0', '0', '40019', '40', '0', '10', '4', '6', '9', '0', '0', '0', '0', '0', '3206301', '3206301', '3206301', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1006', '1', '1', '200', '30', '1280007', '20025', '20002', '10021', '0', '0', '40019', '40', '0', '10', '5', '0', '0', '0', '12000078', '0', '0', '0', '3280203', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1007', '1', '3', '300', '40', '1280036', '20021', '20002', '12001', '0', '0', '40019', '40', '0', '10', '2', '2', '2', '2', '0', '0', '0', '0', '3206501', '3206505', '3206509', '3206513'); +INSERT INTO `gamedata_guildleves` VALUES ('1008', '1', '3', '300', '40', '1280036', '20021', '20002', '12001', '0', '0', '40019', '40', '0', '10', '5', '4', '3', '0', '0', '0', '0', '0', '3206501', '3206505', '3206513', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1009', '1', '4', '300', '40', '1280092', '20021', '20002', '12001', '0', '0', '40019', '40', '0', '10', '8', '0', '0', '0', '0', '0', '0', '0', '3206401', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1010', '1', '2', '300', '40', '1280063', '20021', '20002', '12001', '0', '0', '40019', '40', '0', '10', '12', '0', '0', '0', '0', '0', '0', '0', '3206401', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1011', '1', '3', '100', '50', '1280036', '20025', '20002', '10021', '0', '0', '40019', '40', '0', '10', '20', '0', '0', '0', '12000187', '0', '0', '0', '3202201', '3202204', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1012', '1', '3', '100', '50', '1280036', '20021', '20002', '12001', '0', '0', '40019', '40', '0', '10', '3', '6', '0', '0', '0', '0', '0', '0', '3206506', '3202205', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1013', '1', '3', '400', '50', '1280036', '20021', '20002', '12001', '101', '0', '40019', '40', '0', '10', '1', '1', '2', '4', '0', '0', '0', '0', '3206515', '3202201', '3206506', '3202205'); +INSERT INTO `gamedata_guildleves` VALUES ('1014', '1', '2', '100', '50', '1280073', '20021', '20002', '12001', '0', '0', '40019', '40', '0', '10', '3', '6', '0', '0', '0', '0', '0', '0', '3201419', '3201404', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1015', '1', '2', '100', '50', '1280073', '20022', '20002', '12006', '0', '0', '40019', '40', '0', '10', '3', '4', '0', '1', '0', '0', '0', '0', '3201419', '3201419', '0', '3206402'); +INSERT INTO `gamedata_guildleves` VALUES ('1016', '1', '2', '400', '50', '1280073', '20021', '20002', '12001', '101', '0', '40019', '40', '0', '10', '1', '1', '3', '4', '0', '0', '0', '0', '3206403', '3201405', '3206402', '3201419'); +INSERT INTO `gamedata_guildleves` VALUES ('1017', '1', '4', '100', '50', '1280096', '20060', '20002', '12001', '106', '0', '40019', '12', '0', '10', '1', '1', '1', '1', '0', '0', '0', '0', '3206432', '3206433', '3206434', '3206435'); +INSERT INTO `gamedata_guildleves` VALUES ('1018', '1', '3', '100', '50', '1280049', '20060', '20002', '12006', '106', '0', '40019', '11', '0', '10', '1', '1', '1', '0', '0', '0', '0', '0', '3206542', '3206543', '3202210', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1019', '1', '1', '100', '50', '1280006', '20060', '20002', '12009', '106', '0', '40019', '10', '0', '10', '6', '1', '1', '0', '0', '0', '0', '0', '3206624', '3206622', '3206623', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1020', '1', '1', '100', '50', '1280006', '20059', '20002', '12001', '103', '0', '40019', '10', '0', '10', '1', '1', '0', '0', '0', '0', '0', '0', '3110702', '3110703', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1021', '1', '2', '300', '40', '1280063', '20021', '20002', '12001', '0', '0', '40019', '40', '0', '10', '12', '0', '0', '0', '0', '0', '0', '0', '3206401', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1022', '1', '2', '300', '40', '1280063', '20021', '20002', '12001', '0', '0', '40019', '40', '0', '10', '12', '0', '0', '0', '0', '0', '0', '0', '3206401', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1023', '1', '2', '300', '40', '1280063', '20021', '20002', '12001', '0', '0', '40019', '40', '0', '10', '12', '0', '0', '0', '0', '0', '0', '0', '3206401', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1024', '1', '2', '300', '40', '1280063', '20021', '20002', '12001', '0', '0', '40019', '40', '0', '10', '12', '0', '0', '0', '0', '0', '0', '0', '3206401', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1025', '1', '2', '300', '40', '1280063', '20021', '20002', '12001', '0', '0', '40019', '40', '0', '10', '12', '0', '0', '0', '0', '0', '0', '0', '3206401', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1101', '1', '1', '100', '20', '1280003', '20021', '20002', '12002', '0', '0', '40020', '40', '0', '10', '1', '11', '0', '0', '0', '0', '0', '0', '3280107', '3204001', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1102', '1', '1', '100', '20', '1280005', '20021', '20002', '12002', '0', '0', '40020', '40', '0', '10', '1', '3', '8', '0', '0', '0', '0', '0', '3280108', '3201401', '3201402', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1103', '1', '2', '100', '20', '1280066', '20021', '20002', '12002', '0', '0', '40020', '40', '0', '10', '1', '3', '6', '0', '0', '0', '0', '0', '3280131', '3200502', '3200501', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1104', '1', '3', '200', '30', '1280042', '20022', '20002', '12006', '0', '0', '40020', '40', '0', '10', '1', '8', '0', '3', '0', '0', '0', '0', '3280121', '3203902', '0', '3203904'); +INSERT INTO `gamedata_guildleves` VALUES ('1105', '1', '1', '200', '30', '1280020', '20021', '20002', '12002', '0', '0', '40020', '40', '0', '10', '1', '8', '3', '0', '0', '0', '0', '0', '3280109', '3204202', '3204204', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1106', '1', '1', '200', '30', '1280007', '20021', '20002', '12002', '0', '0', '40020', '40', '0', '10', '1', '1', '4', '6', '0', '0', '0', '0', '3280110', '3201403', '3206010', '3206009'); +INSERT INTO `gamedata_guildleves` VALUES ('1107', '1', '3', '300', '40', '1280036', '20022', '20002', '12006', '0', '0', '40020', '40', '0', '10', '1', '6', '0', '3', '0', '0', '0', '0', '3280121', '3205306', '0', '3200602'); +INSERT INTO `gamedata_guildleves` VALUES ('1108', '1', '2', '300', '40', '1280063', '20022', '20002', '12006', '0', '0', '40020', '40', '0', '10', '1', '2', '0', '5', '0', '0', '0', '0', '3280132', '3200702', '0', '3200107'); +INSERT INTO `gamedata_guildleves` VALUES ('1109', '1', '4', '300', '40', '1280092', '20021', '20002', '12002', '0', '0', '40020', '40', '0', '10', '1', '7', '0', '0', '0', '0', '0', '0', '3280146', '3203101', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1110', '1', '2', '300', '40', '1280063', '20021', '20002', '12002', '0', '0', '40020', '40', '0', '10', '1', '6', '5', '0', '0', '0', '0', '0', '3280133', '3205902', '3202706', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1111', '1', '1', '100', '50', '1280005', '20025', '20002', '10021', '0', '0', '40020', '40', '0', '10', '5', '0', '0', '0', '12000184', '0', '0', '0', '3200603', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1112', '1', '1', '100', '50', '1280005', '20025', '20002', '10021', '0', '0', '40020', '40', '0', '10', '20', '0', '0', '0', '12000185', '0', '0', '0', '3202707', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1113', '1', '1', '400', '50', '1280005', '20021', '20002', '12002', '102', '0', '40020', '40', '0', '10', '1', '1', '0', '0', '0', '0', '0', '12000186', '3280111', '3200801', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1114', '1', '1', '100', '50', '1280012', '20060', '20002', '12010', '106', '0', '40020', '10', '0', '10', '5', '1', '0', '1', '0', '0', '0', '12000188', '3203507', '3203506', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1115', '1', '1', '100', '50', '1280018', '20060', '20002', '12008', '106', '0', '40020', '10', '0', '10', '3', '1', '0', '0', '0', '0', '0', '0', '3203408', '3203407', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1116', '1', '1', '100', '50', '1280012', '20060', '20002', '12009', '106', '0', '40020', '10', '0', '0', '6', '1', '1', '0', '0', '0', '0', '0', '3280195', '3280194', '3203203', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1117', '1', '4', '100', '50', '1280103', '20060', '20002', '12007', '106', '0', '40020', '10', '0', '0', '1', '0', '0', '1', '0', '0', '0', '0', '3202505', '0', '0', '3290010'); +INSERT INTO `gamedata_guildleves` VALUES ('1118', '1', '1', '100', '50', '1280010', '20059', '20002', '12011', '104', '0', '40020', '15', '0', '10', '1', '0', '0', '1', '0', '0', '0', '0', '3280403', '3101424', '0', '1900183'); +INSERT INTO `gamedata_guildleves` VALUES ('1119', '1', '1', '400', '50', '1280002', '20059', '20002', '12012', '103', '0', '40020', '15', '0', '10', '1', '1', '0', '1', '0', '0', '0', '0', '3109003', '3109004', '0', '1900183'); +INSERT INTO `gamedata_guildleves` VALUES ('1120', '1', '2', '300', '40', '1280063', '20021', '20002', '12002', '0', '0', '40020', '40', '0', '10', '1', '6', '5', '0', '0', '0', '0', '0', '3280133', '3205902', '3202706', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1201', '4', '1', '100', '20', '1280001', '20031', '20002', '12004', '0', '0', '40021', '20', '0', '10', '2', '2', '2', '9', '12000069', '12000069', '12000069', '12000069', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1202', '4', '1', '200', '30', '1280020', '20031', '20002', '12003', '0', '0', '40021', '20', '0', '10', '18', '7', '5', '6', '12000075', '12000075', '12000075', '12000075', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1203', '4', '1', '300', '40', '1280006', '20031', '20002', '12004', '0', '0', '40021', '10', '0', '10', '3', '2', '1', '7', '12000068', '12000068', '12000068', '12000068', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1204', '4', '3', '200', '30', '1280031', '20031', '20002', '12004', '0', '0', '40021', '10', '0', '10', '3', '2', '2', '9', '12000070', '12000070', '12000070', '12000070', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1205', '4', '2', '200', '30', '1280061', '20031', '20002', '12004', '0', '0', '40021', '10', '0', '10', '4', '3', '3', '12', '12000071', '12000071', '12000071', '12000071', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1206', '4', '4', '200', '30', '1280094', '20031', '20002', '12004', '0', '0', '40021', '20', '0', '10', '4', '3', '2', '11', '12000072', '12000072', '12000072', '12000072', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1207', '4', '2', '300', '40', '1280063', '20043', '20002', '12005', '0', '0', '40021', '20', '0', '10', '1', '0', '0', '0', '12000073', '12000073', '12000073', '12000073', '3206303', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1208', '4', '4', '300', '40', '1280096', '20043', '20002', '12005', '0', '0', '40021', '20', '0', '10', '1', '0', '0', '0', '12000074', '12000074', '12000074', '12000074', '3206207', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1209', '4', '3', '300', '40', '1280052', '20031', '20002', '12003', '0', '0', '40021', '20', '0', '10', '12', '1', '5', '6', '12000076', '12000076', '12000076', '12000076', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1210', '4', '4', '200', '30', '1280094', '20031', '20002', '12004', '0', '0', '40021', '20', '0', '10', '8', '2', '4', '2', '12000077', '12000077', '12000077', '12000077', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1211', '4', '2', '100', '20', '1280066', '20031', '20002', '12003', '0', '0', '40021', '20', '0', '10', '12', '3', '5', '4', '12000181', '12000181', '12000181', '12000181', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1212', '4', '3', '100', '20', '1280034', '20043', '20002', '12005', '0', '0', '40021', '20', '0', '10', '1', '0', '0', '0', '12000182', '12000182', '12000182', '12000182', '3200707', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1213', '4', '2', '250', '30', '1280082', '20043', '20002', '12005', '0', '0', '40021', '20', '0', '10', '1', '0', '0', '0', '12000183', '12000183', '12000183', '12000183', '3280173', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1214', '4', '1', '100', '50', '1280004', '20059', '20002', '12013', '104', '30003', '40021', '15', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1215', '4', '4', '200', '30', '1280094', '20031', '20002', '12004', '0', '0', '40021', '20', '0', '0', '8', '2', '4', '2', '12000077', '12000077', '12000077', '12000077', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1216', '4', '4', '200', '30', '1280094', '20031', '20002', '12004', '0', '0', '40021', '20', '0', '0', '8', '2', '4', '2', '12000077', '12000077', '12000077', '12000077', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1217', '4', '4', '200', '30', '1280094', '20031', '20002', '12004', '0', '0', '40021', '20', '0', '0', '8', '2', '4', '2', '12000077', '12000077', '12000077', '12000077', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1218', '4', '4', '200', '30', '1280094', '20031', '20002', '12004', '0', '0', '40021', '20', '0', '0', '8', '2', '4', '2', '12000077', '12000077', '12000077', '12000077', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1219', '4', '4', '200', '30', '1280094', '20031', '20002', '12004', '0', '0', '40021', '20', '0', '0', '8', '2', '4', '2', '12000077', '12000077', '12000077', '12000077', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('1220', '4', '4', '200', '30', '1280094', '20031', '20002', '12004', '0', '0', '40021', '20', '0', '0', '8', '2', '4', '2', '12000077', '12000077', '12000077', '12000077', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3200', '2', '1', '0', '1', '1280002', '20029', '20005', '11021', '0', '31001', '40013', '30', '39', '10', '3', '0', '0', '0', '12000060', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3201', '2', '1', '0', '1', '1280002', '20029', '20005', '11011', '0', '31001', '40009', '30', '39', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3203', '2', '1', '0', '1', '1280002', '20044', '20005', '11021', '0', '31001', '40011', '30', '39', '10', '3', '0', '0', '0', '12000061', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3216', '2', '1', '0', '10', '1280003', '20029', '20005', '11011', '0', '31001', '40009', '30', '39', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3219', '2', '1', '0', '10', '1280003', '20044', '20005', '11021', '0', '31001', '40011', '30', '39', '10', '3', '0', '0', '0', '12000062', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3232', '2', '1', '0', '20', '1280005', '20029', '20005', '11011', '0', '31001', '40009', '30', '39', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3235', '2', '1', '0', '20', '1280005', '20044', '20005', '11021', '0', '31001', '40011', '30', '39', '10', '3', '0', '0', '0', '12000063', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3248', '2', '1', '0', '30', '1280007', '20029', '20005', '11011', '0', '31001', '40009', '30', '39', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3251', '2', '1', '0', '30', '1280007', '20044', '20005', '11021', '0', '31001', '40011', '30', '39', '10', '3', '0', '0', '0', '12000163', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3264', '2', '1', '0', '40', '1280006', '20029', '20005', '11011', '0', '31001', '40009', '30', '39', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3266', '2', '1', '0', '40', '1280006', '20044', '20005', '11021', '0', '31001', '40011', '30', '39', '10', '3', '0', '0', '0', '12000164', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3400', '2', '1', '0', '1', '1280002', '20029', '20005', '11021', '0', '31003', '40013', '30', '40', '10', '3', '0', '0', '0', '12000064', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3401', '2', '1', '0', '1', '1280002', '20029', '20005', '11013', '0', '31003', '40014', '30', '40', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3403', '2', '1', '0', '1', '1280002', '20044', '20005', '11021', '0', '31003', '40015', '30', '40', '10', '3', '0', '0', '0', '12000066', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3416', '2', '1', '0', '10', '1280003', '20029', '20005', '11013', '0', '31003', '40014', '30', '40', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3419', '2', '1', '0', '10', '1280003', '20044', '20005', '11021', '0', '31003', '40015', '30', '40', '10', '3', '0', '0', '0', '12000067', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3432', '2', '1', '0', '20', '1280005', '20029', '20005', '11013', '0', '31003', '40014', '30', '40', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3435', '2', '1', '0', '20', '1280005', '20044', '20005', '11021', '0', '31003', '40015', '30', '40', '10', '3', '0', '0', '0', '12000165', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3448', '2', '1', '0', '30', '1280007', '20029', '20005', '11013', '0', '31003', '40014', '30', '40', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3451', '2', '1', '0', '30', '1280007', '20044', '20005', '11021', '0', '31003', '40015', '30', '40', '10', '3', '0', '0', '0', '12000166', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3464', '2', '1', '0', '40', '1280006', '20029', '20005', '11013', '0', '31003', '40014', '30', '40', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3466', '2', '1', '0', '40', '1280006', '20044', '20005', '11021', '0', '31003', '40015', '30', '40', '10', '3', '0', '0', '0', '12000162', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3600', '2', '1', '0', '1', '1280002', '20029', '20005', '11021', '0', '31004', '40013', '30', '41', '10', '3', '0', '0', '0', '12000144', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3601', '2', '1', '0', '1', '1280002', '20029', '20005', '11014', '0', '31004', '40023', '30', '41', '10', '0', '0', '0', '2', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3603', '2', '1', '0', '1', '1280002', '20044', '20005', '11021', '0', '31004', '40024', '30', '41', '10', '3', '0', '0', '0', '12000147', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3616', '2', '1', '0', '10', '1280003', '20029', '20005', '11014', '0', '31004', '40023', '30', '41', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3619', '2', '1', '0', '10', '1280003', '20044', '20005', '11021', '0', '31004', '40024', '30', '41', '10', '3', '0', '0', '0', '12000148', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3632', '2', '1', '0', '20', '1280005', '20029', '20005', '11014', '0', '31004', '40023', '30', '41', '10', '0', '0', '0', '2', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3635', '2', '1', '0', '20', '1280005', '20044', '20005', '11021', '0', '31004', '40024', '30', '41', '10', '3', '0', '0', '0', '12000167', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3648', '2', '1', '0', '30', '1280007', '20029', '20005', '11014', '0', '31004', '40023', '30', '41', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3651', '2', '1', '0', '30', '1280007', '20044', '20005', '11021', '0', '31004', '40024', '30', '41', '10', '3', '0', '0', '0', '12000149', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3664', '2', '1', '0', '40', '1280006', '20029', '20005', '11014', '0', '31004', '40023', '30', '41', '10', '0', '0', '0', '2', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('3666', '2', '1', '0', '40', '1280006', '20044', '20005', '11021', '0', '31004', '40024', '30', '41', '10', '3', '0', '0', '0', '12000168', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4000', '2', '3', '0', '1', '1280032', '20029', '20005', '11021', '0', '31001', '40025', '30', '39', '10', '3', '0', '0', '0', '12000060', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4001', '2', '3', '0', '1', '1280032', '20029', '20005', '11011', '0', '31001', '40032', '30', '39', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4003', '2', '3', '0', '1', '1280032', '20044', '20005', '11021', '0', '31001', '40033', '30', '39', '10', '3', '0', '0', '0', '12000061', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4016', '2', '3', '0', '10', '1280033', '20029', '20005', '11011', '0', '31001', '40032', '30', '39', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4019', '2', '3', '0', '10', '1280033', '20044', '20005', '11021', '0', '31001', '40033', '30', '39', '10', '3', '0', '0', '0', '12000140', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4032', '2', '3', '0', '20', '1280034', '20029', '20005', '11011', '0', '31001', '40032', '30', '39', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4035', '2', '3', '0', '20', '1280034', '20044', '20005', '11021', '0', '31001', '40033', '30', '39', '10', '3', '0', '0', '0', '12000169', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4048', '2', '3', '0', '30', '1280042', '20029', '20005', '11011', '0', '31001', '40032', '30', '39', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4051', '2', '3', '0', '30', '1280042', '20044', '20005', '11021', '0', '31001', '40033', '30', '39', '10', '3', '0', '0', '0', '12000141', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4064', '2', '3', '0', '40', '1280039', '20029', '20005', '11011', '0', '31001', '40032', '30', '39', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4066', '2', '3', '0', '40', '1280039', '20044', '20005', '11021', '0', '31001', '40033', '30', '39', '10', '3', '0', '0', '0', '12000170', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4200', '2', '3', '0', '1', '1280032', '20029', '20005', '11021', '0', '31003', '40025', '30', '40', '10', '3', '0', '0', '0', '12000064', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4201', '2', '3', '0', '1', '1280032', '20029', '20005', '11013', '0', '31003', '40034', '30', '40', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4203', '2', '3', '0', '1', '1280032', '20044', '20005', '11021', '0', '31003', '40035', '30', '40', '10', '3', '0', '0', '0', '12000156', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4216', '2', '3', '0', '10', '1280033', '20029', '20005', '11013', '0', '31003', '40034', '30', '40', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4219', '2', '3', '0', '10', '1280033', '20044', '20005', '11021', '0', '31003', '40035', '30', '40', '10', '3', '0', '0', '0', '12000157', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4232', '2', '3', '0', '20', '1280034', '20029', '20005', '11013', '0', '31003', '40034', '30', '40', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4235', '2', '3', '0', '20', '1280034', '20044', '20005', '11021', '0', '31003', '40035', '30', '40', '10', '3', '0', '0', '0', '12000158', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4248', '2', '3', '0', '30', '1280042', '20029', '20005', '11013', '0', '31003', '40034', '30', '40', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4251', '2', '3', '0', '30', '1280042', '20044', '20005', '11021', '0', '31003', '40035', '30', '40', '10', '3', '0', '0', '0', '12000171', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4264', '2', '3', '0', '40', '1280039', '20029', '20005', '11013', '0', '31003', '40034', '30', '40', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4266', '2', '3', '0', '40', '1280039', '20044', '20005', '11021', '0', '31003', '40035', '30', '40', '10', '3', '0', '0', '0', '12000172', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4400', '2', '3', '0', '1', '1280032', '20029', '20005', '11021', '0', '31004', '40025', '30', '41', '10', '3', '0', '0', '0', '12000145', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4401', '2', '3', '0', '1', '1280032', '20029', '20005', '11014', '0', '31004', '40036', '30', '41', '10', '0', '0', '0', '2', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4403', '2', '3', '0', '1', '1280032', '20044', '20005', '11021', '0', '31004', '40037', '30', '41', '10', '3', '0', '0', '0', '12000150', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4416', '2', '3', '0', '10', '1280033', '20029', '20005', '11014', '0', '31004', '40036', '30', '41', '10', '0', '0', '0', '2', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4419', '2', '3', '0', '10', '1280033', '20044', '20005', '11021', '0', '31004', '40037', '30', '41', '10', '3', '0', '0', '0', '12000151', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4432', '2', '3', '0', '40', '1280039', '20029', '20005', '11014', '0', '31004', '40036', '30', '41', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4435', '2', '3', '0', '40', '1280039', '20044', '20005', '11021', '0', '31004', '40037', '30', '41', '10', '3', '0', '0', '0', '12000152', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4448', '2', '3', '0', '30', '1280042', '20029', '20005', '11014', '0', '31004', '40036', '30', '41', '10', '0', '0', '0', '2', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4451', '2', '3', '0', '30', '1280042', '20044', '20005', '11021', '0', '31004', '40037', '30', '41', '10', '3', '0', '0', '0', '12000174', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4464', '2', '3', '0', '20', '1280034', '20029', '20005', '11014', '0', '31004', '40036', '30', '41', '10', '0', '0', '0', '2', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4467', '2', '3', '0', '20', '1280034', '20044', '20005', '11021', '0', '31004', '40037', '30', '41', '10', '3', '0', '0', '0', '12000173', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4800', '2', '2', '0', '1', '1280062', '20029', '20005', '11021', '0', '31001', '40038', '30', '39', '10', '3', '0', '0', '0', '12000060', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4801', '2', '2', '0', '1', '1280062', '20029', '20005', '11011', '0', '31001', '40045', '30', '39', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4803', '2', '2', '0', '1', '1280062', '20044', '20005', '11021', '0', '31001', '40046', '30', '39', '10', '3', '0', '0', '0', '12000142', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4816', '2', '2', '0', '10', '1280064', '20029', '20005', '11011', '0', '31001', '40045', '30', '39', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4819', '2', '2', '0', '10', '1280064', '20044', '20005', '11021', '0', '31001', '40046', '30', '39', '10', '3', '0', '0', '0', '12000063', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4832', '2', '2', '0', '20', '1280066', '20029', '20005', '11011', '0', '31001', '40045', '30', '39', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4835', '2', '2', '0', '20', '1280066', '20044', '20005', '11021', '0', '31001', '40046', '30', '39', '10', '3', '0', '0', '0', '12000175', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4848', '2', '2', '0', '30', '1280067', '20029', '20005', '11011', '0', '31001', '40045', '30', '39', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4851', '2', '2', '0', '30', '1280067', '20044', '20005', '11021', '0', '31001', '40046', '30', '39', '10', '3', '0', '0', '0', '12000176', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4864', '2', '2', '0', '40', '1280073', '20029', '20005', '11011', '0', '31001', '40045', '30', '39', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('4866', '2', '2', '0', '40', '1280073', '20044', '20005', '11021', '0', '31001', '40046', '30', '39', '10', '3', '0', '0', '0', '12000143', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('5000', '2', '2', '0', '1', '1280062', '20029', '20005', '11021', '0', '31003', '40038', '30', '40', '10', '3', '0', '0', '0', '12000064', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('5001', '2', '2', '0', '1', '1280062', '20029', '20005', '11013', '0', '31003', '40047', '30', '40', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('5003', '2', '2', '0', '1', '1280062', '20044', '20005', '11021', '0', '31003', '40048', '30', '40', '10', '3', '0', '0', '0', '12000159', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('5016', '2', '2', '0', '10', '1280064', '20029', '20005', '11013', '0', '31003', '40047', '30', '40', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('5019', '2', '2', '0', '10', '1280064', '20044', '20005', '11021', '0', '31003', '40048', '30', '40', '10', '3', '0', '0', '0', '12000160', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('5032', '2', '2', '0', '20', '1280066', '20029', '20005', '11013', '0', '31003', '40047', '30', '40', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('5035', '2', '2', '0', '20', '1280066', '20044', '20005', '11021', '0', '31003', '40048', '30', '40', '10', '3', '0', '0', '0', '12000177', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('5048', '2', '2', '0', '30', '1280067', '20029', '20005', '11013', '0', '31003', '40047', '30', '40', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('5051', '2', '2', '0', '30', '1280067', '20044', '20005', '11021', '0', '31003', '40048', '30', '40', '10', '3', '0', '0', '0', '12000161', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('5064', '2', '2', '0', '40', '1280073', '20029', '20005', '11013', '0', '31003', '40047', '30', '40', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('5066', '2', '2', '0', '40', '1280073', '20044', '20005', '11021', '0', '31003', '40048', '30', '40', '10', '3', '0', '0', '0', '12000178', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('5200', '2', '2', '0', '1', '1280062', '20029', '20005', '11021', '0', '31004', '40038', '30', '41', '10', '3', '0', '0', '0', '12000146', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('5201', '2', '2', '0', '1', '1280062', '20029', '20005', '11014', '0', '31004', '40049', '30', '41', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('5203', '2', '2', '0', '1', '1280062', '20044', '20005', '11021', '0', '31004', '40050', '30', '41', '10', '3', '0', '0', '0', '12000153', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('5216', '2', '2', '0', '10', '1280064', '20029', '20005', '11014', '0', '31004', '40049', '30', '41', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('5219', '2', '2', '0', '10', '1280064', '20044', '20005', '11021', '0', '31004', '40050', '30', '41', '10', '3', '0', '0', '0', '12000154', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('5232', '2', '2', '0', '40', '1280063', '20029', '20005', '11014', '0', '31004', '40049', '30', '41', '10', '0', '0', '0', '2', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('5234', '2', '2', '0', '40', '1280063', '20044', '20005', '11021', '0', '31004', '40050', '30', '41', '10', '3', '0', '0', '0', '12000180', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('5248', '2', '2', '0', '30', '1280067', '20029', '20005', '11014', '0', '31004', '40049', '30', '41', '10', '0', '0', '0', '2', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('5251', '2', '2', '0', '30', '1280067', '20044', '20005', '11021', '0', '31004', '40050', '30', '41', '10', '3', '0', '0', '0', '12000179', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('5264', '2', '2', '0', '20', '1280066', '20029', '20005', '11014', '0', '31004', '40049', '30', '41', '10', '0', '0', '0', '3', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('5266', '2', '2', '0', '20', '1280066', '20044', '20005', '11021', '0', '31004', '40050', '30', '41', '10', '3', '0', '0', '0', '12000155', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10801', '1', '1', '0', '1', '1280002', '20021', '20005', '10011', '0', '0', '40013', '30', '0', '10', '3', '0', '0', '0', '0', '0', '0', '0', '3204001', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10802', '1', '1', '0', '1', '1280002', '20021', '20005', '10011', '0', '0', '40013', '30', '0', '10', '3', '0', '0', '0', '0', '0', '0', '0', '3204001', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10821', '1', '1', '0', '1', '1280002', '20021', '20005', '10011', '0', '0', '40001', '30', '0', '10', '5', '0', '0', '0', '0', '0', '0', '0', '3205701', '3205701', '3205701', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10822', '1', '1', '0', '1', '1280002', '20021', '20005', '10011', '0', '0', '40001', '30', '0', '10', '5', '0', '0', '0', '0', '0', '0', '0', '3206002', '3206002', '3206002', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10823', '1', '1', '0', '1', '1280002', '20025', '20005', '10021', '0', '0', '40003', '30', '0', '10', '3', '0', '0', '0', '12000042', '0', '0', '0', '3204001', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10824', '1', '1', '0', '1', '1280002', '20025', '20004', '10021', '0', '0', '40004', '30', '0', '10', '20', '0', '0', '0', '12000049', '0', '0', '0', '3206201', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10825', '1', '1', '0', '1', '1280002', '20021', '20005', '10011', '0', '0', '40001', '30', '0', '10', '6', '0', '0', '0', '0', '0', '0', '0', '3204001', '3204001', '3204001', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10826', '1', '1', '0', '1', '1280002', '20021', '20005', '10011', '0', '0', '40001', '30', '0', '10', '5', '0', '0', '0', '0', '0', '0', '0', '3203901', '3203901', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10827', '1', '1', '0', '1', '1280002', '20021', '20005', '10012', '0', '0', '40001', '30', '0', '10', '6', '0', '0', '0', '0', '0', '0', '0', '3205601', '3205601', '3205601', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10828', '1', '1', '0', '1', '1280002', '20021', '20005', '10011', '0', '0', '40001', '30', '0', '10', '5', '0', '0', '0', '0', '0', '0', '0', '3204101', '3204101', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10829', '1', '1', '0', '1', '1280002', '20021', '20005', '10011', '0', '0', '40001', '30', '0', '10', '3', '0', '0', '0', '0', '0', '0', '0', '3204101', '3204101', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10830', '1', '1', '0', '1', '1280002', '20021', '20005', '10011', '0', '0', '40001', '30', '0', '10', '3', '0', '0', '0', '0', '0', '0', '0', '3204101', '3204101', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10831', '1', '1', '0', '1', '1280002', '20021', '20005', '10011', '0', '0', '40001', '30', '0', '10', '3', '0', '0', '0', '0', '0', '0', '0', '3204101', '3204101', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10832', '1', '1', '0', '1', '1280002', '20021', '20005', '10011', '0', '0', '40001', '30', '0', '10', '3', '0', '0', '0', '0', '0', '0', '0', '3204101', '3204101', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10833', '1', '1', '0', '1', '1280002', '20021', '20005', '10011', '0', '0', '40001', '30', '0', '10', '3', '0', '0', '0', '0', '0', '0', '0', '3204101', '3204101', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10834', '1', '1', '0', '1', '1280002', '20021', '20005', '10011', '0', '0', '40001', '30', '0', '10', '3', '0', '0', '0', '0', '0', '0', '0', '3204101', '3204101', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10835', '1', '1', '0', '1', '1280002', '20021', '20005', '10011', '0', '0', '40001', '30', '0', '10', '3', '0', '0', '0', '0', '0', '0', '0', '3204101', '3204101', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10841', '1', '1', '0', '30', '1280007', '20021', '20005', '10011', '0', '0', '40001', '30', '0', '10', '10', '2', '0', '0', '0', '0', '0', '0', '3202304', '3202301', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10842', '1', '1', '0', '30', '1280007', '20021', '20005', '10011', '0', '0', '40001', '30', '0', '10', '8', '0', '0', '0', '0', '0', '0', '0', '3205507', '3205507', '3205507', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10843', '1', '1', '0', '30', '1280007', '20025', '20005', '10021', '0', '0', '40003', '30', '0', '10', '3', '0', '0', '0', '12000046', '0', '0', '0', '3202305', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10844', '1', '1', '0', '30', '1280007', '20022', '20005', '10031', '0', '0', '40001', '30', '0', '10', '6', '2', '4', '0', '0', '0', '0', '0', '3201601', '3204601', '3204601', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10845', '1', '1', '0', '30', '1280007', '20028', '20005', '10041', '0', '0', '40001', '30', '0', '10', '2', '0', '0', '0', '0', '0', '0', '0', '3202604', '3204601', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10846', '1', '1', '0', '30', '1280007', '20023', '20004', '10051', '0', '0', '40022', '30', '0', '10', '3', '0', '0', '0', '12000003', '0', '0', '12000004', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10847', '1', '1', '0', '30', '1280007', '20023', '20005', '10051', '0', '0', '40022', '30', '0', '10', '3', '3', '0', '0', '12000001', '12000002', '0', '12000004', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10848', '1', '1', '0', '30', '1280007', '20023', '20005', '10051', '0', '0', '40022', '30', '0', '10', '5', '0', '0', '0', '12000003', '0', '0', '12000004', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10849', '1', '1', '0', '30', '1280007', '20022', '20005', '10031', '0', '0', '40005', '30', '0', '10', '3', '5', '0', '0', '0', '0', '0', '0', '3205401', '3205401', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10850', '1', '1', '0', '30', '1280007', '20022', '20005', '10031', '0', '0', '40005', '30', '0', '10', '3', '5', '0', '0', '0', '0', '0', '0', '3205401', '3205401', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10851', '1', '1', '0', '30', '1280007', '20022', '20005', '10031', '0', '0', '40005', '30', '0', '10', '3', '5', '0', '0', '0', '0', '0', '0', '3205401', '3205401', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10852', '1', '1', '0', '30', '1280007', '20022', '20005', '10031', '0', '0', '40005', '30', '0', '10', '3', '5', '0', '0', '0', '0', '0', '0', '3205401', '3205401', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10853', '1', '1', '0', '30', '1280007', '20022', '20005', '10031', '0', '0', '40005', '30', '0', '10', '3', '5', '0', '0', '0', '0', '0', '0', '3205401', '3205401', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10854', '1', '1', '0', '30', '1280007', '20022', '20005', '10031', '0', '0', '40005', '30', '0', '10', '3', '5', '0', '0', '0', '0', '0', '0', '3205401', '3205401', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10855', '1', '1', '0', '30', '1280007', '20022', '20005', '10031', '0', '0', '40005', '30', '0', '10', '3', '5', '0', '0', '0', '0', '0', '0', '3205401', '3205401', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10861', '1', '1', '0', '20', '1280005', '20021', '20005', '10011', '0', '0', '40001', '30', '0', '10', '11', '0', '0', '0', '0', '0', '0', '0', '3202002', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10862', '1', '1', '0', '20', '1280005', '20021', '20005', '10012', '0', '0', '40001', '30', '0', '10', '3', '3', '3', '2', '0', '0', '0', '0', '3203902', '3205602', '3205304', '3203903'); +INSERT INTO `gamedata_guildleves` VALUES ('10863', '1', '1', '0', '20', '1280005', '20025', '20005', '10021', '0', '0', '40003', '30', '0', '10', '3', '0', '0', '0', '12000058', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10864', '1', '1', '0', '20', '1280005', '20025', '20004', '10021', '0', '0', '40004', '30', '0', '10', '5', '0', '0', '0', '12000047', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10865', '1', '1', '0', '20', '1280005', '20022', '20005', '10031', '0', '0', '40001', '30', '0', '10', '2', '4', '6', '0', '0', '0', '0', '0', '3200502', '3200502', '3200502', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10866', '1', '1', '0', '20', '1280005', '20028', '20005', '10041', '0', '0', '40001', '30', '0', '10', '4', '0', '0', '0', '0', '0', '0', '0', '3202603', '3206004', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10867', '1', '1', '0', '20', '1280005', '20028', '20005', '10041', '0', '0', '40007', '30', '0', '10', '4', '0', '0', '0', '0', '0', '0', '0', '3202603', '3202002', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10868', '1', '1', '0', '20', '1280005', '20028', '20005', '10041', '0', '0', '40051', '30', '0', '10', '2', '0', '0', '0', '0', '0', '0', '12000101', '3202603', '3202002', '0', '3205803'); +INSERT INTO `gamedata_guildleves` VALUES ('10869', '1', '1', '0', '20', '1280005', '20028', '20005', '10041', '0', '0', '40001', '20', '0', '10', '1', '0', '0', '0', '0', '0', '0', '0', '3202607', '3202006', '0', '3205804'); +INSERT INTO `gamedata_guildleves` VALUES ('10870', '1', '1', '0', '20', '1280005', '20028', '20005', '10041', '0', '0', '40001', '20', '0', '10', '1', '0', '0', '0', '0', '0', '0', '0', '3202607', '3202006', '0', '3205804'); +INSERT INTO `gamedata_guildleves` VALUES ('10871', '1', '1', '0', '20', '1280005', '20028', '20005', '10041', '0', '0', '40001', '20', '0', '10', '1', '0', '0', '0', '0', '0', '0', '0', '3202607', '3202006', '0', '3205804'); +INSERT INTO `gamedata_guildleves` VALUES ('10872', '1', '1', '0', '20', '1280005', '20028', '20005', '10041', '0', '0', '40001', '20', '0', '10', '1', '0', '0', '0', '0', '0', '0', '0', '3202607', '3202006', '0', '3205804'); +INSERT INTO `gamedata_guildleves` VALUES ('10873', '1', '1', '0', '20', '1280005', '20028', '20005', '10041', '0', '0', '40001', '20', '0', '10', '1', '0', '0', '0', '0', '0', '0', '0', '3202607', '3202006', '0', '3205804'); +INSERT INTO `gamedata_guildleves` VALUES ('10874', '1', '1', '0', '20', '1280005', '20028', '20005', '10041', '0', '0', '40001', '20', '0', '10', '1', '0', '0', '0', '0', '0', '0', '0', '3202607', '3202006', '0', '3205804'); +INSERT INTO `gamedata_guildleves` VALUES ('10875', '1', '1', '0', '20', '1280005', '20028', '20005', '10041', '0', '0', '40001', '20', '0', '10', '1', '0', '0', '0', '0', '0', '0', '0', '3202607', '3202006', '0', '3205804'); +INSERT INTO `gamedata_guildleves` VALUES ('10881', '1', '1', '0', '10', '1280003', '20021', '20005', '10012', '0', '0', '40001', '30', '0', '10', '3', '4', '1', '0', '0', '0', '0', '0', '3205602', '3204102', '3204305', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10882', '1', '1', '0', '10', '1280003', '20021', '20004', '10012', '0', '0', '40002', '30', '0', '10', '4', '4', '0', '0', '0', '0', '0', '0', '3200101', '3202701', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10883', '1', '1', '0', '10', '1280003', '20025', '20005', '10021', '0', '0', '40003', '30', '0', '10', '2', '2', '0', '0', '12000043', '12000044', '0', '0', '3200101', '3204102', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10884', '1', '1', '0', '10', '1280003', '20022', '20004', '10031', '0', '0', '40002', '30', '0', '10', '1', '2', '0', '0', '0', '0', '0', '0', '3202601', '3201401', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10885', '1', '1', '0', '10', '1280003', '20022', '20005', '10031', '0', '0', '40001', '30', '0', '10', '4', '6', '8', '0', '0', '0', '0', '0', '3205304', '3205304', '3205304', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10886', '1', '1', '0', '10', '1280003', '20022', '20005', '10031', '0', '0', '40001', '30', '0', '10', '6', '2', '0', '0', '0', '0', '0', '0', '3204002', '3200101', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10887', '1', '1', '0', '10', '1280003', '20022', '20005', '10031', '0', '0', '40001', '30', '0', '10', '6', '7', '0', '0', '0', '0', '0', '0', '3202001', '3202001', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10888', '1', '1', '0', '10', '1280003', '20022', '20005', '10031', '0', '0', '40001', '30', '0', '10', '6', '8', '0', '0', '0', '0', '0', '0', '3205401', '3205401', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10889', '1', '1', '0', '10', '1280003', '20021', '20005', '10051', '0', '0', '40001', '20', '0', '10', '5', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10890', '1', '1', '0', '10', '1280003', '20021', '20005', '10051', '0', '0', '40001', '20', '0', '10', '5', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10891', '1', '1', '0', '10', '1280003', '20021', '20005', '10051', '0', '0', '40001', '20', '0', '10', '5', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10892', '1', '1', '0', '10', '1280003', '20021', '20005', '10051', '0', '0', '40001', '20', '0', '10', '5', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10893', '1', '1', '0', '10', '1280003', '20021', '20005', '10051', '0', '0', '40001', '20', '0', '10', '5', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10894', '1', '1', '0', '10', '1280003', '20021', '20005', '10051', '0', '0', '40001', '20', '0', '10', '5', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10895', '1', '1', '0', '10', '1280003', '20021', '20005', '10051', '0', '0', '40001', '20', '0', '10', '5', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10901', '1', '1', '0', '40', '1280004', '20021', '20005', '10011', '0', '0', '40001', '30', '0', '10', '8', '0', '0', '0', '0', '0', '0', '0', '3201301', '3201301', '3201301', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10902', '1', '1', '0', '40', '1280004', '20021', '20005', '10011', '0', '0', '40001', '30', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3202705', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10903', '1', '1', '0', '40', '1280004', '20025', '20005', '10021', '0', '0', '40003', '30', '0', '10', '16', '0', '0', '0', '12000128', '0', '0', '0', '3201301', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10904', '1', '1', '0', '40', '1280004', '20022', '20005', '10031', '0', '0', '40052', '30', '0', '10', '3', '4', '2', '0', '0', '0', '0', '0', '3202003', '3206004', '3201412', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10905', '1', '1', '0', '40', '1280004', '20028', '20005', '10041', '0', '0', '40051', '30', '0', '10', '4', '0', '0', '0', '0', '0', '0', '12000048', '3202605', '3202302', '0', '3202705'); +INSERT INTO `gamedata_guildleves` VALUES ('10906', '1', '1', '0', '40', '1280004', '20027', '20005', '10061', '0', '30001', '40001', '30', '0', '10', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10907', '1', '1', '0', '40', '1280004', '20027', '20004', '10061', '0', '30001', '40001', '30', '0', '10', '1', '0', '0', '0', '0', '0', '0', '0', '3203101', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10908', '1', '1', '0', '40', '1280004', '20027', '20005', '10061', '0', '30001', '40001', '30', '0', '10', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10909', '1', '1', '0', '40', '1280004', '20024', '20005', '10071', '0', '0', '40001', '30', '0', '10', '3', '0', '0', '0', '0', '0', '0', '0', '3201301', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10910', '1', '1', '0', '40', '1280004', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10911', '1', '1', '0', '40', '1280004', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10912', '1', '1', '0', '40', '1280004', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10913', '1', '1', '0', '40', '1280004', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10914', '1', '1', '0', '40', '1280004', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10915', '1', '1', '0', '40', '1280004', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10921', '1', '1', '0', '40', '1280006', '20021', '20005', '10011', '0', '0', '40001', '30', '0', '10', '3', '9', '0', '0', '0', '0', '0', '0', '3205404', '3205402', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10922', '1', '1', '0', '40', '1280006', '20021', '20005', '10011', '0', '0', '40001', '30', '0', '10', '7', '1', '0', '0', '0', '0', '0', '0', '3200602', '3201301', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10923', '1', '1', '0', '40', '1280006', '20025', '20005', '10021', '0', '0', '40003', '30', '0', '10', '1', '2', '0', '0', '12000089', '12000096', '0', '0', '3201412', '3202302', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10924', '1', '1', '0', '40', '1280006', '20022', '20005', '10031', '0', '0', '40053', '30', '0', '10', '6', '8', '10', '0', '0', '0', '0', '0', '3201412', '3201412', '3201412', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10925', '1', '1', '0', '40', '1280006', '20028', '20005', '10041', '0', '0', '40001', '30', '0', '10', '4', '0', '0', '0', '0', '0', '0', '0', '3202605', '3205705', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10926', '1', '1', '0', '40', '1280006', '20023', '20005', '10051', '0', '0', '40022', '30', '0', '10', '3', '3', '0', '0', '12000001', '12000002', '0', '12000004', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10927', '1', '1', '0', '40', '1280006', '20027', '20005', '10061', '0', '30001', '40001', '30', '0', '10', '2', '0', '0', '0', '0', '0', '0', '0', '3205404', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10928', '1', '1', '0', '40', '1280006', '20027', '20005', '10061', '0', '30001', '40001', '30', '0', '10', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10929', '1', '1', '0', '40', '1280006', '20024', '20004', '10071', '0', '0', '40054', '30', '0', '10', '3', '0', '0', '0', '0', '0', '0', '12000045', '3203101', '0', '0', '3205509'); +INSERT INTO `gamedata_guildleves` VALUES ('10930', '1', '1', '0', '40', '1280006', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10931', '1', '1', '0', '40', '1280006', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10932', '1', '1', '0', '40', '1280006', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10933', '1', '1', '0', '40', '1280006', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10934', '1', '1', '0', '40', '1280006', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10935', '1', '1', '0', '40', '1280006', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10941', '1', '1', '0', '100', '1280012', '20021', '20005', '10011', '0', '0', '40001', '20', '0', '10', '12', '0', '0', '0', '0', '0', '0', '0', '3205710', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10942', '1', '1', '0', '100', '1280012', '20025', '20005', '10021', '0', '0', '40001', '20', '0', '10', '10', '0', '0', '0', '0', '0', '0', '0', '3204210', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10943', '1', '1', '0', '100', '1280012', '20022', '20005', '10031', '0', '0', '40001', '20', '0', '10', '11', '0', '0', '0', '0', '0', '0', '0', '3204021', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10944', '1', '1', '0', '100', '1280012', '20021', '20005', '10051', '0', '0', '40001', '20', '0', '10', '5', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10945', '1', '1', '0', '100', '1280012', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10946', '1', '1', '0', '100', '1280012', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10947', '1', '1', '0', '100', '1280012', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10948', '1', '1', '0', '100', '1280012', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10961', '1', '1', '0', '100', '1280008', '20021', '20005', '10011', '0', '0', '40001', '20', '0', '10', '2', '4', '4', '0', '0', '0', '0', '0', '3202204', '3200112', '3205005', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10962', '1', '1', '0', '100', '1280008', '20025', '20005', '10021', '0', '0', '40001', '20', '0', '10', '3', '0', '0', '0', '0', '0', '0', '0', '3200605', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10963', '1', '1', '0', '100', '1280008', '20022', '20005', '10031', '0', '0', '40001', '20', '0', '10', '6', '6', '0', '0', '0', '0', '0', '0', '3207607', '3207608', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10964', '1', '1', '0', '100', '1280008', '20021', '20005', '10051', '0', '0', '40001', '20', '0', '10', '4', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10965', '1', '1', '0', '100', '1280008', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10966', '1', '1', '0', '100', '1280008', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10967', '1', '1', '0', '100', '1280008', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10968', '1', '1', '0', '100', '1280008', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10981', '1', '1', '0', '100', '1280015', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10982', '1', '1', '0', '100', '1280015', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10983', '1', '1', '0', '100', '1280015', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10984', '1', '1', '0', '100', '1280015', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10985', '1', '1', '0', '100', '1280015', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10986', '1', '1', '0', '100', '1280015', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10987', '1', '1', '0', '100', '1280015', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('10988', '1', '1', '0', '100', '1280015', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11001', '1', '1', '0', '100', '1280010', '20021', '20005', '10011', '0', '0', '40001', '20', '0', '10', '6', '0', '0', '0', '0', '0', '0', '0', '3203502', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11002', '1', '1', '0', '100', '1280010', '20025', '20005', '10021', '0', '0', '40001', '20', '0', '10', '1', '1', '1', '1', '0', '0', '0', '0', '3203403', '3201703', '3200605', '3201307'); +INSERT INTO `gamedata_guildleves` VALUES ('11003', '1', '1', '0', '100', '1280010', '20022', '20005', '10031', '0', '0', '40001', '20', '0', '10', '6', '2', '0', '0', '0', '0', '0', '0', '3201704', '3203502', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11004', '1', '1', '0', '100', '1280010', '20021', '20005', '10051', '0', '0', '40001', '20', '0', '10', '5', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11005', '1', '1', '0', '100', '1280010', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11006', '1', '1', '0', '100', '1280010', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11007', '1', '1', '0', '100', '1280010', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11008', '1', '1', '0', '100', '1280010', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11021', '1', '1', '0', '100', '1280013', '20021', '20005', '10011', '0', '0', '40001', '20', '0', '10', '2', '3', '2', '0', '0', '0', '0', '0', '3206209', '3201704', '3203404', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11022', '1', '1', '0', '100', '1280013', '20021', '20005', '10011', '0', '0', '40001', '20', '0', '10', '4', '2', '0', '0', '0', '0', '0', '0', '3203104', '3203302', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11023', '1', '1', '0', '100', '1280013', '20028', '20005', '10041', '0', '0', '40001', '20', '0', '10', '2', '0', '0', '0', '0', '0', '0', '0', '3202608', '3203302', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11024', '1', '1', '0', '100', '1280013', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11025', '1', '1', '0', '100', '1280013', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11026', '1', '1', '0', '100', '1280013', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11027', '1', '1', '0', '100', '1280013', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11028', '1', '1', '0', '100', '1280013', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11041', '1', '1', '0', '100', '1280016', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11042', '1', '1', '0', '100', '1280016', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11043', '1', '1', '0', '100', '1280016', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11044', '1', '1', '0', '100', '1280016', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11045', '1', '1', '0', '100', '1280016', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11046', '1', '1', '0', '100', '1280016', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11047', '1', '1', '0', '100', '1280016', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11048', '1', '1', '0', '100', '1280016', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11421', '1', '1', '0', '30', '1280020', '20021', '20005', '10011', '0', '0', '40001', '30', '0', '10', '3', '6', '0', '0', '0', '0', '0', '0', '3200601', '3205306', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11422', '1', '1', '0', '30', '1280020', '20025', '20005', '10021', '0', '0', '40003', '30', '0', '10', '24', '0', '0', '0', '12000045', '0', '0', '0', '3205507', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11423', '1', '1', '0', '30', '1280020', '20025', '20005', '10021', '0', '0', '40003', '30', '0', '10', '5', '0', '0', '0', '12000055', '0', '0', '0', '3204901', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11424', '1', '1', '0', '30', '1280020', '20022', '20005', '10031', '0', '0', '40001', '30', '0', '10', '3', '6', '3', '0', '0', '0', '0', '0', '3202305', '3202305', '3202301', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11425', '1', '1', '0', '30', '1280020', '20022', '20005', '10031', '0', '0', '40001', '30', '0', '10', '2', '4', '2', '0', '0', '0', '0', '0', '3207603', '3207603', '3205101', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11426', '1', '1', '0', '30', '1280020', '20028', '20005', '10041', '0', '0', '40051', '30', '0', '10', '4', '0', '0', '0', '0', '0', '0', '12000091', '3202604', '3207603', '0', '3201601'); +INSERT INTO `gamedata_guildleves` VALUES ('11427', '1', '1', '0', '30', '1280020', '20023', '20005', '10051', '0', '0', '40022', '30', '0', '10', '3', '0', '0', '0', '12000002', '0', '0', '12000004', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11428', '1', '1', '0', '30', '1280020', '20023', '20004', '10051', '0', '0', '40022', '30', '0', '10', '5', '0', '0', '0', '12000003', '0', '0', '12000004', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11441', '1', '1', '0', '40', '1280018', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11442', '1', '1', '0', '40', '1280018', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11443', '1', '1', '0', '40', '1280018', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11444', '1', '1', '0', '40', '1280018', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11445', '1', '1', '0', '40', '1280018', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11446', '1', '1', '0', '40', '1280018', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11447', '1', '1', '0', '40', '1280018', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11448', '1', '1', '0', '40', '1280018', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11449', '1', '1', '0', '40', '1280018', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11450', '1', '1', '0', '40', '1280018', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11451', '1', '1', '0', '40', '1280018', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11452', '1', '1', '0', '40', '1280018', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11453', '1', '1', '0', '40', '1280018', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11454', '1', '1', '0', '40', '1280018', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11455', '1', '1', '0', '40', '1280018', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11461', '1', '1', '0', '100', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11462', '1', '1', '0', '100', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11463', '1', '1', '0', '100', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11464', '1', '1', '0', '100', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11465', '1', '1', '0', '100', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11466', '1', '1', '0', '100', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11467', '1', '1', '0', '100', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11468', '1', '1', '0', '100', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11601', '1', '3', '0', '1', '1280032', '20021', '20005', '10011', '0', '0', '40025', '30', '0', '10', '3', '0', '0', '0', '0', '0', '0', '0', '3205702', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11602', '1', '1', '0', '1', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11621', '1', '3', '0', '1', '1280032', '20021', '20005', '10011', '0', '0', '40026', '30', '0', '10', '6', '0', '0', '0', '0', '0', '0', '0', '3204008', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11622', '1', '3', '0', '1', '1280032', '20021', '20005', '10011', '0', '0', '40026', '30', '0', '10', '2', '4', '0', '0', '0', '0', '0', '0', '3203901', '3205601', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11623', '1', '3', '0', '1', '1280032', '20025', '20004', '10021', '0', '0', '40027', '30', '0', '10', '4', '0', '0', '0', '12000108', '0', '0', '0', '3204301', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11624', '1', '3', '0', '1', '1280032', '20025', '20005', '10021', '0', '0', '40028', '30', '0', '10', '24', '0', '0', '0', '12000050', '0', '0', '0', '3202101', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11625', '1', '3', '0', '1', '1280032', '20021', '20005', '10011', '0', '0', '40026', '30', '0', '10', '6', '0', '0', '0', '0', '0', '0', '0', '3205307', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11626', '1', '3', '0', '1', '1280032', '20021', '20005', '10011', '0', '0', '40026', '30', '0', '10', '6', '0', '0', '0', '0', '0', '0', '0', '3205702', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11627', '1', '3', '0', '1', '1280032', '20021', '20005', '10011', '0', '0', '40026', '30', '0', '10', '6', '0', '0', '0', '0', '0', '0', '0', '3206201', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11628', '1', '3', '0', '1', '1280032', '20021', '20005', '10012', '0', '0', '40026', '30', '0', '10', '6', '0', '0', '0', '0', '0', '0', '0', '3202101', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11629', '1', '3', '0', '1', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11630', '1', '3', '0', '1', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11631', '1', '3', '0', '1', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11632', '1', '3', '0', '1', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11633', '1', '3', '0', '1', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11634', '1', '3', '0', '1', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11635', '1', '3', '0', '1', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11641', '1', '3', '0', '10', '1280033', '20021', '20005', '10011', '0', '0', '40026', '30', '0', '10', '8', '0', '0', '0', '0', '0', '0', '0', '3205501', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11642', '1', '3', '0', '10', '1280033', '20021', '20005', '10011', '0', '0', '40026', '30', '0', '10', '6', '2', '0', '0', '0', '0', '0', '0', '3205308', '3205304', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11643', '1', '3', '0', '10', '1280033', '20025', '20005', '10021', '0', '0', '40028', '30', '0', '10', '4', '0', '0', '0', '12000049', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11644', '1', '3', '0', '10', '1280033', '20022', '20005', '10031', '0', '0', '40029', '30', '0', '10', '6', '9', '0', '0', '0', '0', '0', '0', '3205501', '3205501', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11645', '1', '3', '0', '10', '1280033', '20022', '20005', '10031', '0', '0', '40030', '30', '0', '10', '4', '6', '8', '0', '0', '0', '0', '0', '3206202', '3206202', '3206202', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11646', '1', '3', '0', '10', '1280033', '20022', '20005', '10031', '0', '0', '40026', '30', '0', '10', '6', '2', '0', '0', '0', '0', '0', '0', '3204009', '3205704', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11647', '1', '3', '0', '10', '1280033', '20022', '20005', '10031', '0', '0', '40030', '30', '0', '10', '6', '8', '0', '0', '0', '0', '0', '0', '3202102', '3202102', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11648', '1', '3', '0', '10', '1280033', '20022', '20004', '10031', '0', '0', '40031', '30', '0', '10', '6', '8', '0', '0', '0', '0', '0', '0', '3202001', '3202001', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11649', '1', '3', '0', '10', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11650', '1', '3', '0', '10', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11651', '1', '3', '0', '10', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11652', '1', '3', '0', '10', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11653', '1', '3', '0', '10', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11654', '1', '3', '0', '10', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11655', '1', '3', '0', '10', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11661', '1', '3', '0', '20', '1280034', '20021', '20005', '10011', '0', '0', '40026', '30', '0', '10', '5', '5', '0', '0', '0', '0', '0', '0', '3280101', '3280105', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11662', '1', '3', '0', '20', '1280034', '20021', '20005', '10011', '0', '0', '40026', '30', '0', '10', '10', '0', '0', '0', '0', '0', '0', '0', '3200901', '3200901', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11663', '1', '3', '0', '20', '1280034', '20025', '20005', '10021', '0', '0', '40028', '30', '0', '10', '5', '0', '0', '0', '12000087', '0', '0', '0', '3200901', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11664', '1', '3', '0', '20', '1280034', '20025', '20005', '10021', '0', '0', '40055', '30', '0', '10', '20', '0', '0', '0', '12000134', '0', '0', '0', '3201901', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11665', '1', '3', '0', '20', '1280034', '20022', '20005', '10031', '0', '0', '40029', '30', '0', '10', '6', '1', '0', '1', '0', '0', '0', '0', '3280117', '3280114', '0', '3280120'); +INSERT INTO `gamedata_guildleves` VALUES ('11666', '1', '3', '0', '20', '1280034', '20028', '20004', '10041', '0', '0', '40031', '30', '0', '10', '2', '0', '2', '0', '0', '0', '0', '0', '3202603', '3202002', '3209901', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11667', '1', '3', '0', '20', '1280034', '20028', '20005', '10042', '0', '0', '40030', '30', '0', '10', '4', '0', '0', '0', '0', '0', '0', '0', '3203903', '3202002', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11668', '1', '3', '0', '20', '1280034', '20028', '20005', '10041', '0', '0', '40056', '30', '0', '10', '2', '0', '0', '0', '0', '0', '0', '12000117', '3202603', '3280114', '0', '3209901'); +INSERT INTO `gamedata_guildleves` VALUES ('11669', '1', '3', '0', '20', '1280034', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11670', '1', '3', '0', '20', '1280034', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11671', '1', '3', '0', '20', '1280034', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11672', '1', '3', '0', '20', '1280034', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11673', '1', '3', '0', '20', '1280034', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11674', '1', '3', '0', '20', '1280034', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11675', '1', '3', '0', '20', '1280034', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11681', '1', '3', '0', '30', '1280042', '20021', '20005', '10011', '0', '0', '40026', '30', '0', '10', '10', '0', '0', '0', '0', '0', '0', '0', '3200601', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11682', '1', '3', '0', '30', '1280042', '20021', '20005', '10011', '0', '0', '40026', '30', '0', '10', '9', '1', '0', '0', '0', '0', '0', '0', '3202003', '3204801', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11683', '1', '3', '0', '30', '1280042', '20025', '20005', '10021', '0', '0', '40028', '30', '0', '10', '3', '0', '0', '0', '12000116', '0', '0', '0', '3205606', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11684', '1', '3', '0', '30', '1280042', '20022', '20005', '10031', '0', '0', '40026', '30', '0', '10', '6', '2', '0', '0', '0', '0', '0', '0', '3202003', '3202305', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11685', '1', '3', '0', '30', '1280042', '20028', '20005', '10041', '0', '0', '40057', '30', '0', '10', '2', '0', '2', '0', '0', '0', '0', '0', '3202604', '3200503', '3204601', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11686', '1', '3', '0', '30', '1280042', '20023', '20005', '10051', '0', '0', '40058', '30', '0', '10', '4', '0', '0', '0', '12000001', '0', '0', '12000004', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11687', '1', '3', '0', '30', '1280042', '20023', '20005', '10051', '0', '0', '40058', '30', '0', '10', '3', '3', '0', '0', '12000002', '12000003', '0', '12000004', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11688', '1', '3', '0', '30', '1280042', '20023', '20004', '10051', '0', '0', '40058', '30', '0', '10', '4', '0', '0', '0', '12000001', '0', '0', '12000004', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11689', '1', '3', '0', '30', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11690', '1', '3', '0', '30', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11691', '1', '3', '0', '30', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11692', '1', '3', '0', '30', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11693', '1', '3', '0', '30', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11694', '1', '3', '0', '30', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11695', '1', '3', '0', '30', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11701', '1', '3', '0', '40', '1280039', '20021', '20005', '10011', '0', '0', '40026', '30', '0', '10', '5', '0', '0', '0', '0', '0', '0', '0', '3200701', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11702', '1', '3', '0', '40', '1280039', '20025', '20005', '10021', '0', '0', '40028', '30', '0', '10', '5', '0', '0', '0', '12000089', '0', '0', '0', '3201413', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11703', '1', '3', '0', '40', '1280039', '20025', '20005', '10021', '0', '0', '40055', '30', '0', '10', '4', '0', '0', '0', '12000136', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11704', '1', '3', '0', '40', '1280039', '20022', '20005', '10031', '0', '0', '40030', '30', '0', '10', '3', '4', '0', '0', '0', '0', '0', '0', '3200701', '3200701', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11705', '1', '3', '0', '40', '1280039', '20028', '20005', '10041', '0', '0', '40057', '30', '0', '10', '2', '0', '2', '0', '0', '0', '0', '0', '3202605', '3205706', '3204802', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11706', '1', '3', '0', '40', '1280039', '20023', '20005', '10051', '0', '0', '40058', '30', '0', '10', '4', '0', '0', '0', '12000003', '0', '0', '12000004', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11707', '1', '3', '0', '40', '1280039', '20026', '20005', '10081', '0', '30002', '40057', '30', '0', '10', '1', '0', '0', '0', '0', '0', '0', '0', '3200701', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11708', '1', '3', '0', '40', '1280039', '20026', '20005', '10081', '0', '30002', '40057', '30', '0', '10', '2', '0', '0', '0', '0', '0', '0', '0', '3201803', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11709', '1', '3', '0', '40', '1280039', '20024', '20004', '10071', '0', '0', '40059', '30', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3205607', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11710', '1', '3', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11711', '1', '3', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11712', '1', '3', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11713', '1', '3', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11714', '1', '3', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11715', '1', '3', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11721', '1', '3', '0', '40', '1280036', '20021', '20005', '10011', '0', '0', '40026', '30', '0', '10', '4', '4', '0', '0', '0', '0', '0', '0', '3202302', '3202004', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11722', '1', '3', '0', '40', '1280036', '20021', '20005', '10011', '0', '0', '40026', '30', '0', '10', '8', '0', '0', '0', '0', '0', '0', '0', '3205706', '3205706', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11723', '1', '3', '0', '40', '1280036', '20025', '20005', '10021', '0', '0', '40028', '30', '0', '10', '30', '0', '0', '0', '12000094', '0', '0', '0', '3202004', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11724', '1', '3', '0', '40', '1280036', '20022', '20005', '10031', '0', '0', '40030', '30', '0', '10', '6', '8', '0', '0', '0', '0', '0', '0', '3200602', '3200602', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11725', '1', '3', '0', '40', '1280036', '20028', '20005', '10041', '0', '0', '40030', '30', '0', '10', '2', '0', '2', '0', '0', '0', '0', '0', '3202605', '3202105', '3201701', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11726', '1', '3', '0', '40', '1280036', '20023', '20005', '10051', '0', '0', '40058', '30', '0', '10', '4', '0', '0', '0', '12000003', '0', '0', '12000004', '3200107', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11727', '1', '3', '0', '40', '1280036', '20026', '20004', '10081', '0', '30002', '40057', '30', '0', '10', '1', '0', '0', '0', '0', '0', '0', '0', '3200701', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11728', '1', '3', '0', '40', '1280036', '20026', '20005', '10081', '0', '30002', '40057', '30', '0', '10', '2', '0', '0', '0', '0', '0', '0', '0', '3201413', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11729', '1', '3', '0', '40', '1280036', '20024', '20005', '10071', '0', '0', '40057', '30', '0', '10', '3', '0', '0', '0', '0', '0', '0', '12000089', '3200701', '0', '0', '3201413'); +INSERT INTO `gamedata_guildleves` VALUES ('11730', '1', '3', '0', '40', '1280036', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11731', '1', '3', '0', '40', '1280036', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11732', '1', '3', '0', '40', '1280036', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11733', '1', '3', '0', '40', '1280036', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11734', '1', '3', '0', '40', '1280036', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('11735', '1', '3', '0', '40', '1280036', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12221', '1', '3', '0', '30', '1280052', '20021', '20005', '10011', '0', '0', '40030', '30', '0', '10', '10', '0', '0', '0', '0', '0', '0', '0', '3200104', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12222', '1', '3', '0', '30', '1280052', '20025', '20005', '10021', '0', '0', '40028', '30', '0', '10', '5', '0', '0', '0', '12000084', '0', '0', '0', '3200601', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12223', '1', '3', '0', '30', '1280052', '20025', '20005', '10021', '0', '0', '40028', '30', '0', '10', '4', '0', '0', '0', '12000117', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12224', '1', '3', '0', '30', '1280052', '20022', '20005', '10031', '0', '0', '40030', '30', '0', '10', '6', '8', '0', '0', '0', '0', '0', '0', '3209902', '3209902', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12225', '1', '3', '0', '30', '1280052', '20022', '20005', '10031', '0', '0', '40030', '30', '0', '10', '6', '7', '0', '0', '0', '0', '0', '0', '3203001', '3203001', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12226', '1', '3', '0', '30', '1280052', '20028', '20005', '10041', '0', '0', '40056', '30', '0', '10', '2', '0', '0', '0', '0', '0', '0', '12000117', '3202604', '3203904', '0', '3209902'); +INSERT INTO `gamedata_guildleves` VALUES ('12227', '1', '3', '0', '30', '1280052', '20023', '20004', '10051', '0', '0', '40058', '30', '0', '10', '4', '0', '0', '0', '12000002', '0', '0', '12000004', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12228', '1', '3', '0', '30', '1280052', '20023', '20005', '10051', '0', '0', '40058', '30', '0', '10', '4', '0', '0', '0', '12000002', '0', '0', '12000004', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12229', '1', '1', '0', '30', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12230', '1', '1', '0', '30', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12231', '1', '1', '0', '30', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12232', '1', '1', '0', '30', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12233', '1', '1', '0', '30', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12234', '1', '1', '0', '30', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12235', '1', '1', '0', '30', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12241', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12242', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12243', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12244', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12245', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12246', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12247', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12248', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12249', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12250', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12251', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12252', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12253', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12254', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12255', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12401', '1', '2', '0', '1', '1280062', '20021', '20005', '10011', '0', '0', '40038', '30', '0', '10', '3', '0', '0', '0', '0', '0', '0', '0', '3205901', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12402', '1', '1', '0', '1', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12421', '1', '2', '0', '1', '1280062', '20021', '20005', '10012', '0', '0', '40039', '30', '0', '10', '3', '3', '0', '0', '0', '0', '0', '0', '3204008', '3205901', '3205901', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12422', '1', '2', '0', '1', '1280062', '20021', '20005', '10011', '0', '0', '40039', '30', '0', '10', '6', '0', '0', '0', '0', '0', '0', '0', '3205601', '3205601', '3205601', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12423', '1', '2', '0', '1', '1280062', '20025', '20005', '10021', '0', '0', '40040', '30', '0', '10', '3', '0', '0', '0', '12000101', '0', '0', '0', '3205801', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12424', '1', '2', '0', '1', '1280062', '20025', '20005', '10021', '0', '0', '40040', '30', '0', '10', '20', '0', '0', '0', '12000127', '0', '0', '0', '3205901', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12425', '1', '2', '0', '1', '1280062', '20021', '20004', '10011', '0', '0', '40041', '30', '0', '10', '3', '3', '0', '0', '0', '0', '0', '0', '3206201', '3205801', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12426', '1', '2', '0', '1', '1280062', '20021', '20005', '10011', '0', '0', '40039', '30', '0', '10', '6', '0', '0', '0', '0', '0', '0', '0', '3205702', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12427', '1', '2', '0', '1', '1280062', '20021', '20005', '10011', '0', '0', '40039', '30', '0', '10', '6', '0', '0', '0', '0', '0', '0', '0', '3205901', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12428', '1', '2', '0', '1', '1280062', '20021', '20005', '10011', '0', '0', '40039', '30', '0', '10', '6', '0', '0', '0', '0', '0', '0', '0', '3205301', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12429', '1', '1', '0', '1', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12430', '1', '1', '0', '1', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12431', '1', '1', '0', '1', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12432', '1', '1', '0', '1', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12433', '1', '1', '0', '1', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12434', '1', '1', '0', '1', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12435', '1', '1', '0', '1', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12441', '1', '2', '0', '10', '1280064', '20021', '20005', '10012', '0', '0', '40039', '30', '0', '10', '4', '4', '0', '0', '0', '0', '0', '0', '3200501', '3205602', '3200501', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12442', '1', '2', '0', '10', '1280064', '20021', '20005', '10011', '0', '0', '40039', '30', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3205501', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12443', '1', '2', '0', '10', '1280064', '20025', '20005', '10021', '0', '0', '40042', '30', '0', '10', '3', '0', '0', '0', '12000050', '0', '0', '0', '3206202', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12444', '1', '2', '0', '10', '1280064', '20022', '20005', '10031', '0', '0', '40043', '30', '0', '10', '6', '8', '0', '0', '0', '0', '0', '0', '3205902', '3205902', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12445', '1', '2', '0', '10', '1280064', '20022', '20005', '10031', '0', '0', '40043', '30', '0', '10', '5', '8', '0', '0', '0', '0', '0', '0', '3205602', '3205602', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12446', '1', '2', '0', '10', '1280064', '20022', '20004', '10031', '0', '0', '40044', '30', '0', '10', '4', '2', '0', '0', '0', '0', '0', '0', '3202601', '3205801', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12447', '1', '2', '0', '10', '1280064', '20022', '20005', '10031', '0', '0', '40043', '30', '0', '10', '4', '8', '0', '0', '0', '0', '0', '0', '3205704', '3205704', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12448', '1', '2', '0', '10', '1280064', '20022', '20005', '10031', '0', '0', '40043', '30', '0', '10', '6', '7', '0', '1', '0', '0', '0', '0', '3205302', '3205302', '0', '3202702'); +INSERT INTO `gamedata_guildleves` VALUES ('12449', '1', '1', '0', '10', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12450', '1', '1', '0', '10', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12451', '1', '1', '0', '10', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12452', '1', '1', '0', '10', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12453', '1', '1', '0', '10', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12454', '1', '1', '0', '10', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12455', '1', '1', '0', '10', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12461', '1', '2', '0', '20', '1280066', '20021', '20005', '10011', '0', '0', '40039', '30', '0', '10', '3', '6', '0', '0', '0', '0', '0', '0', '3204006', '3204009', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12462', '1', '2', '0', '20', '1280066', '20021', '20005', '10011', '0', '0', '40039', '30', '0', '10', '10', '0', '0', '0', '0', '0', '0', '0', '3200301', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12463', '1', '2', '0', '20', '1280066', '20025', '20005', '10021', '0', '0', '40042', '30', '0', '10', '5', '0', '0', '0', '12000079', '0', '0', '0', '3200105', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12464', '1', '2', '0', '20', '1280066', '20025', '20005', '10021', '0', '0', '40040', '30', '0', '10', '32', '0', '0', '0', '12000130', '0', '0', '0', '3205303', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12465', '1', '2', '0', '20', '1280066', '20022', '20005', '10031', '0', '0', '40043', '30', '0', '10', '8', '10', '0', '0', '0', '0', '0', '0', '3207601', '3207601', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12466', '1', '2', '0', '20', '1280066', '20028', '20005', '10041', '0', '0', '40060', '30', '0', '10', '4', '0', '0', '0', '0', '0', '0', '0', '3202603', '3200502', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12467', '1', '2', '0', '20', '1280066', '20028', '20005', '10041', '0', '0', '40060', '30', '0', '10', '2', '0', '2', '0', '0', '0', '0', '0', '3202603', '3200301', '3205801', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12468', '1', '2', '0', '20', '1280066', '20028', '20004', '10041', '0', '0', '40061', '30', '0', '10', '4', '0', '0', '0', '0', '0', '0', '12000101', '3202603', '3200105', '0', '3205803'); +INSERT INTO `gamedata_guildleves` VALUES ('12469', '1', '1', '0', '20', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12470', '1', '1', '0', '20', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12471', '1', '1', '0', '20', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12472', '1', '1', '0', '20', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12473', '1', '1', '0', '20', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12474', '1', '1', '0', '20', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12475', '1', '1', '0', '20', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12481', '1', '2', '0', '30', '1280067', '20021', '20005', '10011', '0', '0', '40039', '30', '0', '10', '5', '5', '0', '0', '0', '0', '0', '0', '3204013', '3204007', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12482', '1', '2', '0', '30', '1280067', '20021', '20005', '10011', '0', '0', '40039', '30', '0', '10', '9', '1', '1', '0', '0', '0', '0', '0', '3204502', '3204501', '3204202', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12483', '1', '2', '0', '30', '1280067', '20025', '20005', '10021', '0', '0', '40042', '30', '0', '10', '5', '0', '0', '0', '12000137', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12484', '1', '2', '0', '30', '1280067', '20022', '20005', '10031', '0', '0', '40043', '30', '0', '10', '6', '8', '0', '0', '0', '0', '0', '0', '3200302', '3200302', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12485', '1', '2', '0', '30', '1280067', '20028', '20005', '10041', '0', '0', '40060', '30', '0', '10', '1', '0', '1', '0', '0', '0', '0', '0', '3202604', '3207604', '3205101', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12486', '1', '2', '0', '30', '1280067', '20023', '20004', '10051', '0', '0', '40062', '30', '0', '10', '4', '0', '0', '0', '12000001', '0', '0', '12000004', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12487', '1', '2', '0', '30', '1280067', '20023', '20005', '10051', '0', '0', '40062', '30', '0', '10', '3', '3', '0', '0', '12000003', '12000001', '0', '12000004', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12488', '1', '2', '0', '30', '1280067', '20023', '20005', '10051', '0', '0', '40062', '30', '0', '10', '4', '0', '0', '0', '12000001', '0', '0', '12000004', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12489', '1', '1', '0', '30', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12490', '1', '1', '0', '30', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12491', '1', '1', '0', '30', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12492', '1', '1', '0', '30', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12493', '1', '1', '0', '30', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12494', '1', '1', '0', '30', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12495', '1', '1', '0', '30', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12501', '1', '2', '0', '40', '1280063', '20021', '20005', '10011', '0', '0', '40039', '30', '0', '10', '6', '0', '0', '0', '0', '0', '0', '0', '3201501', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12502', '1', '2', '0', '40', '1280063', '20021', '20005', '10011', '0', '0', '40039', '30', '0', '10', '7', '1', '0', '0', '0', '0', '0', '0', '3201701', '3204902', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12503', '1', '2', '0', '40', '1280063', '20025', '20005', '10021', '0', '0', '40042', '30', '0', '10', '24', '0', '0', '0', '12000111', '0', '0', '0', '3204504', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12504', '1', '2', '0', '40', '1280063', '20022', '20005', '10031', '0', '0', '40043', '30', '0', '10', '6', '8', '0', '0', '0', '0', '0', '0', '3201302', '3201302', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12505', '1', '2', '0', '40', '1280063', '20028', '20005', '10041', '0', '0', '40060', '30', '0', '10', '4', '0', '0', '0', '0', '0', '0', '0', '3202605', '3204015', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12506', '1', '2', '0', '40', '1280063', '20023', '20005', '10051', '0', '0', '40062', '30', '0', '10', '4', '0', '0', '0', '12000003', '0', '0', '12000004', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12507', '1', '2', '0', '40', '1280063', '20027', '20005', '10061', '0', '30001', '40060', '30', '0', '10', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12508', '1', '2', '0', '40', '1280063', '20027', '20004', '10061', '0', '30001', '40064', '30', '0', '10', '1', '1', '0', '0', '0', '0', '0', '0', '3202706', '3210001', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12509', '1', '2', '0', '40', '1280063', '20026', '20005', '10081', '0', '30002', '40060', '30', '0', '10', '3', '0', '0', '0', '0', '0', '0', '0', '3207606', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12510', '1', '1', '0', '40', '1280063', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12511', '1', '1', '0', '40', '1280063', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12512', '1', '1', '0', '40', '1280063', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12513', '1', '1', '0', '40', '1280063', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12514', '1', '1', '0', '40', '1280063', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12515', '1', '1', '0', '40', '1280063', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12521', '1', '2', '0', '40', '1280073', '20021', '20005', '10011', '0', '0', '40039', '30', '0', '10', '5', '0', '0', '0', '0', '0', '0', '0', '3203101', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12522', '1', '2', '0', '40', '1280073', '20025', '20005', '10021', '0', '0', '40042', '30', '0', '10', '4', '0', '0', '0', '12000083', '0', '0', '0', '3200504', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12523', '1', '2', '0', '40', '1280073', '20025', '20005', '10021', '0', '0', '40042', '30', '0', '10', '5', '0', '0', '0', '12000119', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12524', '1', '2', '0', '40', '1280073', '20022', '20005', '10031', '0', '0', '40043', '30', '0', '10', '4', '5', '6', '0', '0', '0', '0', '0', '3203101', '3203101', '3203101', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12525', '1', '2', '0', '40', '1280073', '20028', '20005', '10041', '0', '0', '40061', '30', '0', '10', '4', '0', '0', '0', '0', '0', '0', '12000056', '3202605', '3207606', '0', '3205002'); +INSERT INTO `gamedata_guildleves` VALUES ('12526', '1', '2', '0', '40', '1280073', '20023', '20005', '10051', '0', '0', '40062', '30', '0', '10', '4', '0', '0', '0', '12000003', '0', '0', '12000004', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12527', '1', '2', '0', '40', '1280073', '20027', '20005', '10061', '0', '30001', '40060', '30', '0', '10', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12528', '1', '2', '0', '40', '1280073', '20027', '20005', '10061', '0', '30001', '40060', '30', '0', '10', '2', '0', '0', '0', '0', '0', '0', '0', '3201303', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12529', '1', '2', '0', '40', '1280073', '20026', '20004', '10081', '0', '30002', '40064', '30', '0', '10', '2', '0', '0', '0', '0', '0', '0', '0', '3280125', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12530', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12531', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12532', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12533', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12534', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('12535', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('13021', '1', '2', '0', '30', '1280082', '20021', '20005', '10011', '0', '0', '40039', '30', '0', '10', '8', '0', '0', '0', '0', '0', '0', '0', '3200104', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('13022', '1', '2', '0', '30', '1280082', '20025', '20004', '10021', '0', '0', '40063', '30', '0', '10', '5', '0', '0', '0', '12000084', '0', '0', '0', '3200601', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('13023', '1', '2', '0', '30', '1280082', '20025', '20005', '10021', '0', '0', '40040', '30', '0', '10', '5', '0', '0', '0', '12000055', '0', '0', '0', '3204901', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('13024', '1', '2', '0', '30', '1280082', '20022', '20005', '10031', '0', '0', '40043', '30', '0', '10', '3', '5', '0', '0', '0', '0', '0', '0', '3201403', '3201403', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('13025', '1', '2', '0', '30', '1280082', '20022', '20005', '10031', '0', '0', '40043', '30', '0', '10', '1', '3', '0', '0', '0', '0', '0', '0', '3207604', '3207604', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('13026', '1', '2', '0', '30', '1280082', '20028', '20005', '10041', '0', '0', '40060', '30', '0', '10', '2', '0', '0', '0', '0', '0', '0', '0', '3202604', '3203903', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('13027', '1', '2', '0', '30', '1280082', '20023', '20005', '10051', '0', '0', '40062', '30', '0', '10', '4', '0', '0', '0', '12000002', '0', '0', '12000004', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('13028', '1', '2', '0', '30', '1280082', '20023', '20005', '10051', '0', '0', '40062', '30', '0', '10', '4', '0', '0', '0', '12000002', '0', '0', '12000004', '0', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('13029', '1', '1', '0', '30', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('13030', '1', '1', '0', '30', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('13031', '1', '1', '0', '30', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('13032', '1', '1', '0', '30', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('13033', '1', '1', '0', '30', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('13034', '1', '1', '0', '30', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('13035', '1', '1', '0', '30', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('13041', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('13042', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('13043', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('13044', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('13045', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('13046', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('13047', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('13048', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('13049', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('13050', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('13051', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('13052', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('13053', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('13054', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('13055', '1', '1', '0', '40', '1280022', '20021', '20005', '0', '0', '0', '40001', '20', '0', '10', '9', '0', '0', '0', '0', '0', '0', '0', '3000009', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('20901', '1', '1', '0', '40', '1280004', '20051', '20003', '13001', '104', '0', '40065', '15', '0', '10', '1', '0', '0', '0', '0', '0', '0', '0', '4000625', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('20902', '1', '1', '0', '40', '1280004', '20051', '20003', '13001', '104', '0', '40065', '15', '0', '10', '1', '0', '0', '0', '0', '0', '0', '0', '4000626', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('20903', '1', '1', '0', '40', '1280004', '20036', '20003', '13002', '104', '0', '40065', '15', '0', '10', '2', '2', '2', '2', '0', '0', '0', '0', '3204404', '3205411', '3202715', '3205713'); +INSERT INTO `gamedata_guildleves` VALUES ('20904', '1', '1', '0', '40', '1280004', '20036', '20003', '13002', '104', '0', '40065', '15', '0', '10', '2', '2', '2', '2', '0', '0', '0', '0', '3204404', '3205106', '3204806', '3205006'); +INSERT INTO `gamedata_guildleves` VALUES ('20905', '1', '1', '0', '40', '1280004', '20049', '20003', '13003', '105', '0', '40065', '20', '0', '10', '4', '0', '0', '0', '0', '0', '0', '12000200', '3204404', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('20906', '1', '1', '0', '40', '1280004', '20049', '20003', '13003', '105', '0', '40065', '20', '0', '10', '4', '0', '0', '0', '0', '0', '0', '12000200', '3201707', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('21421', '1', '1', '0', '30', '1280020', '20051', '20003', '13001', '104', '0', '40065', '15', '0', '10', '1', '0', '0', '0', '0', '0', '0', '0', '4000622', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('21422', '1', '1', '0', '30', '1280020', '20036', '20003', '13002', '104', '0', '40065', '15', '0', '10', '2', '2', '2', '2', '0', '0', '0', '0', '3203406', '3205410', '3207609', '3204213'); +INSERT INTO `gamedata_guildleves` VALUES ('21423', '1', '1', '0', '30', '1280020', '20049', '20003', '13003', '105', '0', '40065', '20', '0', '10', '3', '0', '0', '0', '0', '0', '0', '12000200', '3202610', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('21424', '1', '1', '0', '30', '1280020', '20049', '20003', '13003', '105', '0', '40065', '20', '0', '10', '3', '0', '0', '0', '0', '0', '0', '12000200', '3204320', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('21701', '1', '3', '0', '40', '1280039', '20051', '20003', '13001', '104', '0', '40067', '15', '0', '10', '1', '0', '0', '0', '0', '0', '0', '0', '4000629', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('21702', '1', '3', '0', '40', '1280039', '20051', '20003', '13001', '104', '0', '40067', '15', '0', '10', '1', '0', '0', '0', '0', '0', '0', '0', '4000630', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('21703', '1', '3', '0', '40', '1280039', '20036', '20003', '13002', '104', '0', '40067', '15', '0', '10', '2', '2', '2', '2', '0', '0', '0', '0', '3205613', '3201609', '3201610', '3202010'); +INSERT INTO `gamedata_guildleves` VALUES ('21704', '1', '3', '0', '40', '1280039', '20036', '20003', '13002', '104', '0', '40067', '15', '0', '10', '2', '2', '2', '2', '0', '0', '0', '0', '3201609', '3205106', '3204806', '3205006'); +INSERT INTO `gamedata_guildleves` VALUES ('21705', '1', '3', '0', '40', '1280039', '20049', '20003', '13003', '105', '0', '40067', '20', '0', '10', '4', '0', '0', '0', '0', '0', '0', '12000200', '3204404', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('21706', '1', '3', '0', '40', '1280039', '20049', '20003', '13003', '105', '0', '40067', '20', '0', '10', '4', '0', '0', '0', '0', '0', '0', '12000200', '3201707', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('22221', '1', '3', '0', '30', '1280052', '20051', '20003', '13001', '104', '0', '40067', '15', '0', '10', '1', '0', '0', '0', '0', '0', '0', '0', '4000624', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('22222', '1', '3', '0', '30', '1280052', '20036', '20003', '13002', '104', '0', '40067', '15', '0', '10', '2', '2', '2', '2', '0', '0', '0', '0', '3201117', '3202114', '3200115', '3205612'); +INSERT INTO `gamedata_guildleves` VALUES ('22223', '1', '3', '0', '30', '1280052', '20049', '20003', '13003', '105', '0', '40067', '20', '0', '10', '3', '0', '0', '0', '0', '0', '0', '12000200', '3202610', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('22224', '1', '3', '0', '30', '1280052', '20049', '20003', '13003', '105', '0', '40067', '20', '0', '10', '3', '0', '0', '0', '0', '0', '0', '12000200', '3204320', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('22521', '1', '2', '0', '40', '1280073', '20051', '20003', '13001', '104', '0', '40066', '15', '0', '10', '1', '0', '0', '0', '0', '0', '0', '0', '4000627', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('22522', '1', '2', '0', '40', '1280073', '20051', '20003', '13001', '104', '0', '40066', '15', '0', '10', '1', '0', '0', '0', '0', '0', '0', '0', '4000628', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('22523', '1', '2', '0', '40', '1280073', '20036', '20003', '13002', '104', '0', '40066', '15', '0', '10', '2', '2', '2', '2', '0', '0', '0', '0', '3205907', '3207610', '3200310', '3200510'); +INSERT INTO `gamedata_guildleves` VALUES ('22524', '1', '2', '0', '40', '1280073', '20036', '20003', '13002', '104', '0', '40066', '15', '0', '10', '2', '2', '2', '2', '0', '0', '0', '0', '3205907', '3205106', '3204806', '3205006'); +INSERT INTO `gamedata_guildleves` VALUES ('22525', '1', '2', '0', '40', '1280073', '20049', '20003', '13003', '105', '0', '40066', '20', '0', '10', '4', '0', '0', '0', '0', '0', '0', '12000200', '3204404', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('22526', '1', '2', '0', '40', '1280073', '20049', '20003', '13003', '105', '0', '40066', '20', '0', '10', '4', '0', '0', '0', '0', '0', '0', '12000200', '3201707', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('23021', '1', '2', '0', '30', '1280082', '20051', '20003', '13001', '104', '0', '40066', '15', '0', '10', '1', '0', '0', '0', '0', '0', '0', '0', '4000623', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('23022', '1', '2', '0', '30', '1280082', '20036', '20003', '13002', '104', '0', '40066', '15', '0', '10', '2', '2', '2', '2', '0', '0', '0', '0', '3203406', '3204025', '3200509', '3204213'); +INSERT INTO `gamedata_guildleves` VALUES ('23023', '1', '2', '0', '30', '1280082', '20049', '20003', '13003', '105', '0', '40066', '20', '0', '10', '3', '0', '0', '0', '0', '0', '0', '12000200', '3202610', '0', '0', '0'); +INSERT INTO `gamedata_guildleves` VALUES ('23024', '1', '2', '0', '30', '1280082', '20049', '20003', '13003', '105', '0', '40066', '20', '0', '10', '3', '0', '0', '0', '0', '0', '0', '12000200', '3204320', '0', '0', '0'); From eb17da1c893ed71db96de411a28e686a83a89f15 Mon Sep 17 00:00:00 2001 From: Filip Maj Date: Sat, 24 Jun 2017 15:31:42 -0400 Subject: [PATCH 02/38] Modified how directors work to allow for persistence. Implemented GuildleveDirector object and it's work values. --- FFXIVClassic Map Server/actors/area/Area.cs | 10 +- .../actors/chara/player/Player.cs | 11 +-- .../actors/director/Director.cs | 93 +++++++++++++++---- .../actors/director/GuildleveDirector.cs | 43 +++++++++ .../actors/director/Work/GuildleveWork.cs | 21 +++++ .../dataobjects/GuildleveData.cs | 4 +- FFXIVClassic Map Server/lua/LuaEngine.cs | 17 ++-- 7 files changed, 155 insertions(+), 44 deletions(-) create mode 100644 FFXIVClassic Map Server/actors/director/GuildleveDirector.cs create mode 100644 FFXIVClassic Map Server/actors/director/Work/GuildleveWork.cs diff --git a/FFXIVClassic Map Server/actors/area/Area.cs b/FFXIVClassic Map Server/actors/area/Area.cs index df792e0b..3478057b 100644 --- a/FFXIVClassic Map Server/actors/area/Area.cs +++ b/FFXIVClassic Map Server/actors/area/Area.cs @@ -490,15 +490,11 @@ namespace FFXIVClassic_Map_Server.Actors } } - public Director CreateDirector(string path) + public Director CreateDirector(string path, params object[] args) { lock (directorLock) { - Director director = new Director(directorIdCount, this, path); - - if (!director.IsCreated()) - return null; - + Director director = new Director(directorIdCount, this, path, args); currentDirectors.Add(directorIdCount, director); directorIdCount++; return director; @@ -511,7 +507,7 @@ namespace FFXIVClassic_Map_Server.Actors { if (currentDirectors.ContainsKey(id)) { - currentDirectors[id].RemoveChildren(); + currentDirectors[id].RemoveMembers(); currentDirectors.Remove(id); } } diff --git a/FFXIVClassic Map Server/actors/chara/player/Player.cs b/FFXIVClassic Map Server/actors/chara/player/Player.cs index 224865c8..10a23f9f 100644 --- a/FFXIVClassic Map Server/actors/chara/player/Player.cs +++ b/FFXIVClassic Map Server/actors/chara/player/Player.cs @@ -1420,14 +1420,7 @@ 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); } } @@ -1443,7 +1436,7 @@ namespace FFXIVClassic_Map_Server.Actors if (!ownedDirectors.Contains(director)) { ownedDirectors.Remove(director); - director.RemoveChild(this); + director.RemoveMember(this); } } diff --git a/FFXIVClassic Map Server/actors/director/Director.cs b/FFXIVClassic Map Server/actors/director/Director.cs index 6db051b4..5170c978 100644 --- a/FFXIVClassic Map Server/actors/director/Director.cs +++ b/FFXIVClassic Map Server/actors/director/Director.cs @@ -15,23 +15,26 @@ 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; - 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); + 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) @@ -80,40 +83,70 @@ 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()) + { + GetSpawnPackets(actorId).DebugPrintPacket(); + p.QueuePacket(GetSpawnPackets(actorId)); + p.QueuePacket(GetInitPackets(actorId)); + } + } } - public void AddChild(Actor actor) + public void AddMember(Actor actor) { - if (!childrenOwners.Contains(actor)) - childrenOwners.Add(actor); + if (!members.Contains(actor)) + members.Add(actor); } - public void RemoveChild(Actor actor) + public void RemoveMember(Actor actor) { - if (childrenOwners.Contains(actor)) - childrenOwners.Remove(actor); - if (childrenOwners.Count == 0) + if (members.Contains(actor)) + members.Remove(actor); + if (members.Count == 0) Server.GetWorldManager().GetZone(zoneId).DeleteDirector(actorId); } - public void RemoveChildren() + public void RemoveMembers() { - childrenOwners.Clear(); + members.Clear(); Server.GetWorldManager().GetZone(zoneId).DeleteDirector(actorId); } + 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; @@ -166,5 +199,29 @@ 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; + } + } } diff --git a/FFXIVClassic Map Server/actors/director/GuildleveDirector.cs b/FFXIVClassic Map Server/actors/director/GuildleveDirector.cs new file mode 100644 index 00000000..7ff4892b --- /dev/null +++ b/FFXIVClassic Map Server/actors/director/GuildleveDirector.cs @@ -0,0 +1,43 @@ +using FFXIVClassic_Map_Server.actors.director.Work; +using FFXIVClassic_Map_Server.Actors; +using FFXIVClassic_Map_Server.dataobjects; +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 GuildleveData guildleveData; + public GuildleveWork guildleveWork = new GuildleveWork(); + + public GuildleveDirector(uint id, Area zone, string directorPath, uint guildleveId, params object[] args) + : base(id, zone, directorPath, args) + { + this.guildleveId = guildleveId; + this.guildleveData = Server.GetGuildleveGamedata(guildleveId); + + guildleveWork.aimNum[0] = guildleveData.aimNum[0]; + guildleveWork.aimNum[1] = guildleveData.aimNum[1]; + guildleveWork.aimNum[2] = guildleveData.aimNum[2]; + guildleveWork.aimNum[3] = guildleveData.aimNum[3]; + + guildleveWork.aimNumNow[0] = guildleveWork.aimNumNow[1] = guildleveWork.aimNumNow[2] = guildleveWork.aimNumNow[3] = 0; + } + + public void UpdateAimNum(int index, sbyte value) + { + + } + + public void updateUiState(int index, sbyte value) + { + + } + + } +} 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..9d2990fc --- /dev/null +++ b/FFXIVClassic Map Server/actors/director/Work/GuildleveWork.cs @@ -0,0 +1,21 @@ +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]; + } + +} diff --git a/FFXIVClassic Map Server/dataobjects/GuildleveData.cs b/FFXIVClassic Map Server/dataobjects/GuildleveData.cs index 2c2cf64f..32834f07 100644 --- a/FFXIVClassic Map Server/dataobjects/GuildleveData.cs +++ b/FFXIVClassic Map Server/dataobjects/GuildleveData.cs @@ -31,8 +31,8 @@ namespace FFXIVClassic_Map_Server.dataobjects id = reader.GetUInt32("id"); classType = reader.GetUInt32("classType"); location = reader.GetUInt32("location"); - factionCreditRequired = reader.GetByte("factionCreditRequired"); - level = reader.GetByte("level"); + factionCreditRequired = reader.GetUInt16("factionCreditRequired"); + level = reader.GetUInt16("level"); aetheryte = reader.GetUInt32("aetheryte"); plateId = reader.GetUInt32("plateId"); borderId = reader.GetUInt32("borderId"); diff --git a/FFXIVClassic Map Server/lua/LuaEngine.cs b/FFXIVClassic Map Server/lua/LuaEngine.cs index dc1d2fe2..cf778c05 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(); @@ -576,13 +576,14 @@ namespace FFXIVClassic_Map_Server.lua script.Globals["GetStaticActorById"] = (Func)Server.GetStaticActors; script.Globals["GetWorldMaster"] = (Func)Server.GetWorldManager().GetActor; 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) From a80c80454b3b69e7beac19d215756d128e7c2f6a Mon Sep 17 00:00:00 2001 From: Filip Maj Date: Sat, 24 Jun 2017 15:47:53 -0400 Subject: [PATCH 03/38] Added more work values and guildleve funcs. Also realized target will always == the queuedpacket session. This will make broadcasting packets easier once cleaned up. --- .../actors/director/GuildleveDirector.cs | 42 +++++++++++++++++-- .../actors/director/Work/GuildleveWork.cs | 1 + .../dataobjects/Session.cs | 1 + 3 files changed, 40 insertions(+), 4 deletions(-) diff --git a/FFXIVClassic Map Server/actors/director/GuildleveDirector.cs b/FFXIVClassic Map Server/actors/director/GuildleveDirector.cs index 7ff4892b..65001737 100644 --- a/FFXIVClassic Map Server/actors/director/GuildleveDirector.cs +++ b/FFXIVClassic Map Server/actors/director/GuildleveDirector.cs @@ -1,6 +1,8 @@ -using FFXIVClassic_Map_Server.actors.director.Work; +using FFXIVClassic.Common; +using FFXIVClassic_Map_Server.actors.director.Work; using FFXIVClassic_Map_Server.Actors; using FFXIVClassic_Map_Server.dataobjects; +using FFXIVClassic_Map_Server.utils; using System; using System.Collections.Generic; using System.Linq; @@ -29,14 +31,46 @@ namespace FFXIVClassic_Map_Server.actors.director guildleveWork.aimNumNow[0] = guildleveWork.aimNumNow[1] = guildleveWork.aimNumNow[2] = guildleveWork.aimNumNow[3] = 0; } - public void UpdateAimNum(int index, sbyte value) + public void StartGuildleve() { - + guildleveWork.startTime = Utils.UnixTimeStampUTC(); + ActorPropertyPacketUtil propertyBuilder = new ActorPropertyPacketUtil("guildleveWork/start", this, actorId); + propertyBuilder.AddProperty("guildleveWork.startTime"); + SendPacketsToPlayers(propertyBuilder.Done()); } - public void updateUiState(int index, sbyte value) + public void EndGuildleve() { + guildleveWork.startTime = 0; + guildleveWork.signal = -1; + ActorPropertyPacketUtil propertyBuilder = new ActorPropertyPacketUtil("guildleveWork/signal", this, actorId); + propertyBuilder.AddProperty("guildleveWork.signal"); + propertyBuilder.NewTarget("guildleveWork/start"); + propertyBuilder.AddProperty("guildleveWork.startTime"); + SendPacketsToPlayers(propertyBuilder.Done()); + } + public void UpdateAimNumNow(int index, sbyte value) + { + ActorPropertyPacketUtil propertyBuilder = new ActorPropertyPacketUtil("guildleveWork/infoVariable", this, actorId); + propertyBuilder.AddProperty(String.Format("guildleveWork.aimNumNow[{0}]", index)); + SendPacketsToPlayers(propertyBuilder.Done()); + } + + public void UpdateUiState(int index, sbyte value) + { + ActorPropertyPacketUtil propertyBuilder = new ActorPropertyPacketUtil("guildleveWork/infoVariable", this, actorId); + propertyBuilder.AddProperty(String.Format("guildleveWork.uiState[{0}]", index)); + SendPacketsToPlayers(propertyBuilder.Done()); + } + + public void SendPacketsToPlayers(List packets) + { + List players = GetPlayerMembers(); + foreach (Actor p in players) + { + ((Player)p).QueuePackets(packets); + } } } diff --git a/FFXIVClassic Map Server/actors/director/Work/GuildleveWork.cs b/FFXIVClassic Map Server/actors/director/Work/GuildleveWork.cs index 9d2990fc..105a427d 100644 --- a/FFXIVClassic Map Server/actors/director/Work/GuildleveWork.cs +++ b/FFXIVClassic Map Server/actors/director/Work/GuildleveWork.cs @@ -16,6 +16,7 @@ namespace FFXIVClassic_Map_Server.actors.director.Work 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/dataobjects/Session.cs b/FFXIVClassic Map Server/dataobjects/Session.cs index bdfcc561..5a83c565 100644 --- a/FFXIVClassic Map Server/dataobjects/Session.cs +++ b/FFXIVClassic Map Server/dataobjects/Session.cs @@ -38,6 +38,7 @@ namespace FFXIVClassic_Map_Server.dataobjects public void QueuePacket(SubPacket subPacket, bool isAuthed, bool isEncrypted) { + subPacket.header.targetId = id; Server.GetWorldConnection().QueuePacket(subPacket, isAuthed, isEncrypted); } From c7acef20a9a17f2ed7a77544c469a1be0e134004 Mon Sep 17 00:00:00 2001 From: Filip Maj Date: Sat, 24 Jun 2017 15:50:03 -0400 Subject: [PATCH 04/38] Added missing gl scripts. --- .../Guildleve/PrivateGLBattleDetectNormal.lua | 27 ++++++++++++++++ .../Guildleve/PrivateGLBattleGatherNormal.lua | 11 +++++++ .../Guildleve/PrivateGLBattleHuntNormal.lua | 11 +++++++ data/scripts/guildleve.lua | 32 +++++++++++++++++++ 4 files changed, 81 insertions(+) create mode 100644 data/scripts/directors/Guildleve/PrivateGLBattleDetectNormal.lua create mode 100644 data/scripts/directors/Guildleve/PrivateGLBattleGatherNormal.lua create mode 100644 data/scripts/directors/Guildleve/PrivateGLBattleHuntNormal.lua create mode 100644 data/scripts/guildleve.lua diff --git a/data/scripts/directors/Guildleve/PrivateGLBattleDetectNormal.lua b/data/scripts/directors/Guildleve/PrivateGLBattleDetectNormal.lua new file mode 100644 index 00000000..9c54a2ab --- /dev/null +++ b/data/scripts/directors/Guildleve/PrivateGLBattleDetectNormal.lua @@ -0,0 +1,27 @@ +require ("global") +require ("guildleve") + +--DirectorId, GuildleveId, Aetheryte Location (6 or ~6), exMarkerX, exMarkerY, exMarkerZ + +local guildleveId; + +function init(thisDirector, glId) + guildleveId = glId; + + guildleveData = GetGuildleveGamedata(glId); + members = thisDirector:GetPlayerMembers(); + + if (members ~= nil and #members ~= 0) then + player = members[0]; + player:SendGameMessage(GetWorldMaster(), 50036, 0x20, glId, player, 0); --"You have started the leve..." + player:PlayAnimation(getGLStartAnimationFromSheet(guildleveData.borderId, guildleveData.plateId, false)); + end + + return "/Director/Guildleve/PrivateGLBattleDetectNormal", 0x4e25, glId, 6, 0, 0, 0; +end + +function mainLoop(thisDirector) + + + +end \ No newline at end of file diff --git a/data/scripts/directors/Guildleve/PrivateGLBattleGatherNormal.lua b/data/scripts/directors/Guildleve/PrivateGLBattleGatherNormal.lua new file mode 100644 index 00000000..7098c209 --- /dev/null +++ b/data/scripts/directors/Guildleve/PrivateGLBattleGatherNormal.lua @@ -0,0 +1,11 @@ +require ("global") + +--DirectorId, GuildleveId + +function init() + return "/Director/Guildleve/PrivateGLBattleGatherNormal", 0x4e26, 1220, 6, 100, 0.0, -100; +end + +function onEventStarted(player, actor, triggerName) + +end \ No newline at end of file diff --git a/data/scripts/directors/Guildleve/PrivateGLBattleHuntNormal.lua b/data/scripts/directors/Guildleve/PrivateGLBattleHuntNormal.lua new file mode 100644 index 00000000..f2b4e534 --- /dev/null +++ b/data/scripts/directors/Guildleve/PrivateGLBattleHuntNormal.lua @@ -0,0 +1,11 @@ +require ("global") + +--DirectorId, GuildleveId, Aetheryte Location (6 or ~6), exMarkerX, exMarkerY, exMarkerZ + +function init() + return "/Director/Guildleve/PrivateGLBattleHuntNormal", 0x4e25, 10844, 6, 32.1, 45.1, -35.1; +end + +function onEventStarted(player, actor, triggerName) + +end \ No newline at end of file diff --git a/data/scripts/guildleve.lua b/data/scripts/guildleve.lua new file mode 100644 index 00000000..df4ecbc5 --- /dev/null +++ b/data/scripts/guildleve.lua @@ -0,0 +1,32 @@ +--[[ + +Guildleve constants and functions + +--]] + +--Helper functions + +function glBorderIconIDToAnimID(iconId) + return iconId - 20000; +end + +function glPlateIconIDToAnimID(iconId) + return iconId - 20020; +end + +function getGLStartAnimationFromSheet(border, plate, isBoost) + return getGLStartAnimation(glBorderIconIDToAnimID(border), glPlateIconIDToAnimID(plate), isBoost); +end + +function getGLStartAnimation(border, plate, isBoost) + borderBits = border; + plateBits = bit32.lshift(plate, 7); + + if (isBoost) then + boostBits = 0x8000; --1 shifted 15 left + else + boostBits = 0x0; + end + + return bit32.bor(0x0B000000, boostBits, plateBits, borderBits); +end \ No newline at end of file From bfaa25cb39b59fed5dd3e3c5ee328c3ead1638c9 Mon Sep 17 00:00:00 2001 From: Filip Maj Date: Sat, 24 Jun 2017 15:51:06 -0400 Subject: [PATCH 05/38] Forgot the aetheryte script. --- .../npc/object/aetheryte/AetheryteParent.lua | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/data/scripts/base/chara/npc/object/aetheryte/AetheryteParent.lua b/data/scripts/base/chara/npc/object/aetheryte/AetheryteParent.lua index d405ed8a..edc8268b 100644 --- a/data/scripts/base/chara/npc/object/aetheryte/AetheryteParent.lua +++ b/data/scripts/base/chara/npc/object/aetheryte/AetheryteParent.lua @@ -26,6 +26,7 @@ eventGLJoin () - Ask to join party leader's leve require ("global") require ("aetheryte") require ("utils") +require ("guildleve") function init(npc) return false, false, 0, 0; @@ -99,17 +100,29 @@ function onEventStarted(player, aetheryte, triggerName) end function doLevequestInit(player, aetheryte) + local worldMaster = GetWorldMaster(); ::SELECT_LOOP:: unknown, glId = callClientFunction(player, "eventGLSelect", 0x0); if (glId ~= 0) then ::SELECT_DETAIL:: + guildleveData = GetGuildleveGamedata(glId); + + if (guildleveData == nil) then + player:SendMessage(0x20, "", "An error has occured... aborting."); + return; + end + unknown, begin = callClientFunction(player, "eventGLSelectDetail", glId, 0xa, 0xf4241, 1000, 0, 0, 0, true, false); if (begin) then ::SELECT_DIFFICULTY:: + player:SendGameMessage(worldMaster, 50014, 0x20); --"Please select a difficulty level. This may be lowered later." difficulty = callClientFunction(player, "eventGLDifficulty", glId); if (difficulty == nil) then goto SELECT_DETAIL; end - confirmResult = callClientFunction(player, "eventGLStart", glId, difficulty, 1, 10, 20, 0, 0, 0, 0); - if (confirmResult == nil) then goto SELECT_DIFFICULTY; else + confirmResult = callClientFunction(player, "eventGLStart", glId, difficulty, 1, guildleveData.favorCount, 20, 0, 0, 0, 0); + if (confirmResult == nil) then goto SELECT_DIFFICULTY; else + director = player:GetZone():CreateDirector("Guildleve/PrivateGLBattleDetectNormal"); + player:AddDirector(director); + director:StartDirector(true, glId) end else goto SELECT_LOOP; From 8ccd3439c1e3d94ef67ee660587725821bad576d Mon Sep 17 00:00:00 2001 From: Filip Maj Date: Sat, 24 Jun 2017 15:54:02 -0400 Subject: [PATCH 06/38] Added marker update method for guildleves. --- .../actors/director/GuildleveDirector.cs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/FFXIVClassic Map Server/actors/director/GuildleveDirector.cs b/FFXIVClassic Map Server/actors/director/GuildleveDirector.cs index 65001737..f7987df3 100644 --- a/FFXIVClassic Map Server/actors/director/GuildleveDirector.cs +++ b/FFXIVClassic Map Server/actors/director/GuildleveDirector.cs @@ -64,6 +64,18 @@ namespace FFXIVClassic_Map_Server.actors.director 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, actorId); + 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(); From 25cd75d40cfcbdea76ac5c6b1405c9a47c2ebd50 Mon Sep 17 00:00:00 2001 From: Filip Maj Date: Sat, 24 Jun 2017 15:57:46 -0400 Subject: [PATCH 07/38] Added way to instantiate a GL Director. Aetheryte parent now does it. --- FFXIVClassic Map Server/actors/area/Area.cs | 11 +++++++++++ .../chara/npc/object/aetheryte/AetheryteParent.lua | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/FFXIVClassic Map Server/actors/area/Area.cs b/FFXIVClassic Map Server/actors/area/Area.cs index 3478057b..fec0e1c6 100644 --- a/FFXIVClassic Map Server/actors/area/Area.cs +++ b/FFXIVClassic Map Server/actors/area/Area.cs @@ -501,6 +501,17 @@ namespace FFXIVClassic_Map_Server.Actors } } + public Director CreateGuildleveDirector(string path, uint glid, params object[] args) + { + lock (directorLock) + { + GuildleveDirector director = new GuildleveDirector(directorIdCount, this, path, glid, args); + currentDirectors.Add(directorIdCount, director); + directorIdCount++; + return director; + } + } + public void DeleteDirector(uint id) { lock (directorLock) diff --git a/data/scripts/base/chara/npc/object/aetheryte/AetheryteParent.lua b/data/scripts/base/chara/npc/object/aetheryte/AetheryteParent.lua index edc8268b..c934ca9f 100644 --- a/data/scripts/base/chara/npc/object/aetheryte/AetheryteParent.lua +++ b/data/scripts/base/chara/npc/object/aetheryte/AetheryteParent.lua @@ -120,7 +120,7 @@ function doLevequestInit(player, aetheryte) if (difficulty == nil) then goto SELECT_DETAIL; end confirmResult = callClientFunction(player, "eventGLStart", glId, difficulty, 1, guildleveData.favorCount, 20, 0, 0, 0, 0); if (confirmResult == nil) then goto SELECT_DIFFICULTY; else - director = player:GetZone():CreateDirector("Guildleve/PrivateGLBattleDetectNormal"); + director = player:GetZone():CreateGuildleveDirector("Guildleve/PrivateGLBattleDetectNormal", glId); player:AddDirector(director); director:StartDirector(true, glId) end From 186d5b5cc59e29283e325776b5b464e435a1d996 Mon Sep 17 00:00:00 2001 From: Filip Maj Date: Sat, 24 Jun 2017 16:29:13 -0400 Subject: [PATCH 08/38] Had a bug where actor id was set to the wrong packet. Will have to also look at this target thing later. --- FFXIVClassic Map Server/actors/director/Director.cs | 6 +++--- FFXIVClassic Map Server/dataobjects/Session.cs | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/FFXIVClassic Map Server/actors/director/Director.cs b/FFXIVClassic Map Server/actors/director/Director.cs index 5170c978..6007003f 100644 --- a/FFXIVClassic Map Server/actors/director/Director.cs +++ b/FFXIVClassic Map Server/actors/director/Director.cs @@ -105,9 +105,9 @@ namespace FFXIVClassic_Map_Server.actors.director { foreach (Player p in GetPlayerMembers()) { - GetSpawnPackets(actorId).DebugPrintPacket(); - p.QueuePacket(GetSpawnPackets(actorId)); - p.QueuePacket(GetInitPackets(actorId)); + GetSpawnPackets(p.actorId).DebugPrintPacket(); + p.QueuePacket(GetSpawnPackets(p.actorId)); + p.QueuePacket(GetInitPackets(p.actorId)); } } } diff --git a/FFXIVClassic Map Server/dataobjects/Session.cs b/FFXIVClassic Map Server/dataobjects/Session.cs index 5a83c565..8c35d6dd 100644 --- a/FFXIVClassic Map Server/dataobjects/Session.cs +++ b/FFXIVClassic Map Server/dataobjects/Session.cs @@ -38,7 +38,7 @@ namespace FFXIVClassic_Map_Server.dataobjects public void QueuePacket(SubPacket subPacket, bool isAuthed, bool isEncrypted) { - subPacket.header.targetId = id; + //subPacket.header.targetId = id; Server.GetWorldConnection().QueuePacket(subPacket, isAuthed, isEncrypted); } From 8fb49103207091f3b9ddc8a1884fdcd08985dba8 Mon Sep 17 00:00:00 2001 From: Filip Maj Date: Sat, 24 Jun 2017 16:58:02 -0400 Subject: [PATCH 09/38] Fixed work values not updating. GL UI now shows up though it isn't configured. --- .../FFXIVClassic Map Server.csproj | 2 ++ .../actors/director/Director.cs | 21 ++++++++++++++++++- .../actors/director/GuildleveDirector.cs | 2 +- .../dataobjects/Session.cs | 2 +- FFXIVClassic Map Server/lua/LuaEngine.cs | 4 ++-- .../send/Actor/SetActorPropetyPacket.cs | 2 +- .../Guildleve/PrivateGLBattleDetectNormal.lua | 15 ++++++------- 7 files changed, 33 insertions(+), 15 deletions(-) diff --git a/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj b/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj index 03135e26..5f77be8f 100644 --- a/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj +++ b/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj @@ -87,6 +87,8 @@ + + diff --git a/FFXIVClassic Map Server/actors/director/Director.cs b/FFXIVClassic Map Server/actors/director/Director.cs index 6007003f..047fbc26 100644 --- a/FFXIVClassic Map Server/actors/director/Director.cs +++ b/FFXIVClassic Map Server/actors/director/Director.cs @@ -110,6 +110,9 @@ namespace FFXIVClassic_Map_Server.actors.director p.QueuePacket(GetInitPackets(p.actorId)); } } + + + StartCoroutine("mainLoop", this); } public void AddMember(Actor actor) @@ -223,5 +226,21 @@ namespace FFXIVClassic_Map_Server.actors.director 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 index f7987df3..fe116210 100644 --- a/FFXIVClassic Map Server/actors/director/GuildleveDirector.cs +++ b/FFXIVClassic Map Server/actors/director/GuildleveDirector.cs @@ -36,7 +36,7 @@ namespace FFXIVClassic_Map_Server.actors.director guildleveWork.startTime = Utils.UnixTimeStampUTC(); ActorPropertyPacketUtil propertyBuilder = new ActorPropertyPacketUtil("guildleveWork/start", this, actorId); propertyBuilder.AddProperty("guildleveWork.startTime"); - SendPacketsToPlayers(propertyBuilder.Done()); + SendPacketsToPlayers(propertyBuilder.Done()); } public void EndGuildleve() diff --git a/FFXIVClassic Map Server/dataobjects/Session.cs b/FFXIVClassic Map Server/dataobjects/Session.cs index 8c35d6dd..5a83c565 100644 --- a/FFXIVClassic Map Server/dataobjects/Session.cs +++ b/FFXIVClassic Map Server/dataobjects/Session.cs @@ -38,7 +38,7 @@ namespace FFXIVClassic_Map_Server.dataobjects public void QueuePacket(SubPacket subPacket, bool isAuthed, bool isEncrypted) { - //subPacket.header.targetId = id; + subPacket.header.targetId = id; Server.GetWorldConnection().QueuePacket(subPacket, isAuthed, isEncrypted); } diff --git a/FFXIVClassic Map Server/lua/LuaEngine.cs b/FFXIVClassic Map Server/lua/LuaEngine.cs index cf778c05..9ffcf5e4 100644 --- a/FFXIVClassic Map Server/lua/LuaEngine.cs +++ b/FFXIVClassic Map Server/lua/LuaEngine.cs @@ -372,12 +372,12 @@ namespace FFXIVClassic_Map_Server.lua CallLuaFunction(player, target, "onEventStarted", false, LuaUtils.CreateLuaParamObjectList(lparams)); } - private DynValue ResolveResume(Player player, Coroutine coroutine, DynValue value) + public DynValue ResolveResume(Player player, Coroutine coroutine, DynValue value) { if (value == null || value.IsVoid()) return value; - if (value.String != null && value.String.Equals("_WAIT_EVENT")) + if (player != null && value.String != null && value.String.Equals("_WAIT_EVENT")) { GetInstance().AddWaitEventCoroutine(player, coroutine); } diff --git a/FFXIVClassic Map Server/packets/send/Actor/SetActorPropetyPacket.cs b/FFXIVClassic Map Server/packets/send/Actor/SetActorPropetyPacket.cs index a20ccb82..cc41cdfb 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; diff --git a/data/scripts/directors/Guildleve/PrivateGLBattleDetectNormal.lua b/data/scripts/directors/Guildleve/PrivateGLBattleDetectNormal.lua index 9c54a2ab..26c30a2e 100644 --- a/data/scripts/directors/Guildleve/PrivateGLBattleDetectNormal.lua +++ b/data/scripts/directors/Guildleve/PrivateGLBattleDetectNormal.lua @@ -3,25 +3,22 @@ require ("guildleve") --DirectorId, GuildleveId, Aetheryte Location (6 or ~6), exMarkerX, exMarkerY, exMarkerZ -local guildleveId; - -function init(thisDirector, glId) - guildleveId = glId; - - guildleveData = GetGuildleveGamedata(glId); +function init(thisDirector) + guildleveData = GetGuildleveGamedata(thisDirector.guildleveId); members = thisDirector:GetPlayerMembers(); if (members ~= nil and #members ~= 0) then player = members[0]; - player:SendGameMessage(GetWorldMaster(), 50036, 0x20, glId, player, 0); --"You have started the leve..." + player:SendGameMessage(GetWorldMaster(), 50036, 0x20, thisDirector.guildleveId, player, 0); --"You have started the leve..." player:PlayAnimation(getGLStartAnimationFromSheet(guildleveData.borderId, guildleveData.plateId, false)); end - return "/Director/Guildleve/PrivateGLBattleDetectNormal", 0x4e25, glId, 6, 0, 0, 0; + return "/Director/Guildleve/PrivateGLBattleDetectNormal", 0x4e25, thisDirector.guildleveId, 6, 0, 0, 0; end function mainLoop(thisDirector) - + wait(3) + thisDirector:StartGuildleve(); end \ No newline at end of file From c78fa033af38321743d68c20cd30cfea205290ee Mon Sep 17 00:00:00 2001 From: Filip Maj Date: Sat, 24 Jun 2017 17:14:18 -0400 Subject: [PATCH 10/38] Fixed sbytes not processing correctly for work updates. Added a sync all function to guildleves. --- .../actors/director/GuildleveDirector.cs | 43 +++++++++++++++++++ .../send/Actor/SetActorPropetyPacket.cs | 2 + .../Guildleve/PrivateGLBattleDetectNormal.lua | 1 + 3 files changed, 46 insertions(+) diff --git a/FFXIVClassic Map Server/actors/director/GuildleveDirector.cs b/FFXIVClassic Map Server/actors/director/GuildleveDirector.cs index fe116210..58a0e8cc 100644 --- a/FFXIVClassic Map Server/actors/director/GuildleveDirector.cs +++ b/FFXIVClassic Map Server/actors/director/GuildleveDirector.cs @@ -28,6 +28,15 @@ namespace FFXIVClassic_Map_Server.actors.director 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; } @@ -50,6 +59,40 @@ namespace FFXIVClassic_Map_Server.actors.director SendPacketsToPlayers(propertyBuilder.Done()); } + public void SyncAllInfo() + { + ActorPropertyPacketUtil propertyBuilder = new ActorPropertyPacketUtil("guildleveWork/infoVariable", this, actorId); + + 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) { ActorPropertyPacketUtil propertyBuilder = new ActorPropertyPacketUtil("guildleveWork/infoVariable", this, actorId); diff --git a/FFXIVClassic Map Server/packets/send/Actor/SetActorPropetyPacket.cs b/FFXIVClassic Map Server/packets/send/Actor/SetActorPropetyPacket.cs index cc41cdfb..37996dbd 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/SetActorPropetyPacket.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/SetActorPropetyPacket.cs @@ -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) diff --git a/data/scripts/directors/Guildleve/PrivateGLBattleDetectNormal.lua b/data/scripts/directors/Guildleve/PrivateGLBattleDetectNormal.lua index 26c30a2e..315974d6 100644 --- a/data/scripts/directors/Guildleve/PrivateGLBattleDetectNormal.lua +++ b/data/scripts/directors/Guildleve/PrivateGLBattleDetectNormal.lua @@ -20,5 +20,6 @@ function mainLoop(thisDirector) wait(3) thisDirector:StartGuildleve(); + thisDirector:SyncAllInfo(); end \ No newline at end of file From c42f1a08de098c20e9777ba275588c454ee90ca3 Mon Sep 17 00:00:00 2001 From: Filip Maj Date: Sat, 24 Jun 2017 17:18:28 -0400 Subject: [PATCH 11/38] Changed to Tutorial GL script as that is the correct one for our test GL. --- .../npc/object/aetheryte/AetheryteParent.lua | 2 +- .../Guildleve/PrivateGLBattleTutorial.lua | 25 +++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 data/scripts/directors/Guildleve/PrivateGLBattleTutorial.lua diff --git a/data/scripts/base/chara/npc/object/aetheryte/AetheryteParent.lua b/data/scripts/base/chara/npc/object/aetheryte/AetheryteParent.lua index c934ca9f..b9a4aa85 100644 --- a/data/scripts/base/chara/npc/object/aetheryte/AetheryteParent.lua +++ b/data/scripts/base/chara/npc/object/aetheryte/AetheryteParent.lua @@ -120,7 +120,7 @@ function doLevequestInit(player, aetheryte) if (difficulty == nil) then goto SELECT_DETAIL; end confirmResult = callClientFunction(player, "eventGLStart", glId, difficulty, 1, guildleveData.favorCount, 20, 0, 0, 0, 0); if (confirmResult == nil) then goto SELECT_DIFFICULTY; else - director = player:GetZone():CreateGuildleveDirector("Guildleve/PrivateGLBattleDetectNormal", glId); + director = player:GetZone():CreateGuildleveDirector("Guildleve/PrivateGLBattleTutorial", glId); player:AddDirector(director); director:StartDirector(true, glId) end diff --git a/data/scripts/directors/Guildleve/PrivateGLBattleTutorial.lua b/data/scripts/directors/Guildleve/PrivateGLBattleTutorial.lua new file mode 100644 index 00000000..c0cdfbc7 --- /dev/null +++ b/data/scripts/directors/Guildleve/PrivateGLBattleTutorial.lua @@ -0,0 +1,25 @@ +require ("global") +require ("guildleve") + +--DirectorId, GuildleveId, Aetheryte Location (6 or ~6), exMarkerX, exMarkerY, exMarkerZ + +function init(thisDirector) + guildleveData = GetGuildleveGamedata(thisDirector.guildleveId); + members = thisDirector:GetPlayerMembers(); + + if (members ~= nil and #members ~= 0) then + player = members[0]; + player:SendGameMessage(GetWorldMaster(), 50036, 0x20, thisDirector.guildleveId, player, 0); --"You have started the leve..." + player:PlayAnimation(getGLStartAnimationFromSheet(guildleveData.borderId, guildleveData.plateId, false)); + end + + return "/Director/Guildleve/PrivateGLBattleTutorial", 0x4e25, thisDirector.guildleveId, 6, 0, 0, 0; +end + +function mainLoop(thisDirector) + + wait(2) + thisDirector:StartGuildleve(); + thisDirector:SyncAllInfo(); + +end \ No newline at end of file From 875b76634a15c0903049eba20b0cb8ced988dbb3 Mon Sep 17 00:00:00 2001 From: Filip Maj Date: Sun, 25 Jun 2017 14:25:54 -0400 Subject: [PATCH 12/38] Implemented more of the Guildleve Director. Correct script is now autoloaded based on leveplate. Players are now added to the contentgroup on leve start. Moved animation and stuff to C# side of things. Cleaned up code. --- .../FFXIVClassic Map Server.csproj | 1 + FFXIVClassic Map Server/WorldManager.cs | 64 +++++++++++-- FFXIVClassic Map Server/actors/area/Area.cs | 50 +++++++++- .../actors/chara/Character.cs | 12 +-- .../actors/chara/player/Player.cs | 18 +++- .../actors/director/Director.cs | 34 +++++-- .../actors/director/GuildleveDirector.cs | 95 ++++++++++++++++++- .../actors/group/ContentGroup.cs | 44 ++++----- .../actors/group/GLContentGroup.cs | 29 ++++++ 9 files changed, 292 insertions(+), 55 deletions(-) create mode 100644 FFXIVClassic Map Server/actors/group/GLContentGroup.cs diff --git a/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj b/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj index 5f77be8f..b9bbe097 100644 --- a/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj +++ b/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj @@ -90,6 +90,7 @@ + diff --git a/FFXIVClassic Map Server/WorldManager.cs b/FFXIVClassic Map Server/WorldManager.cs index f6cd0e17..dcf02d29 100644 --- a/FFXIVClassic Map Server/WorldManager.cs +++ b/FFXIVClassic Map Server/WorldManager.cs @@ -600,7 +600,7 @@ namespace FFXIVClassic_Map_Server if (player.currentContentGroup != null) { player.currentContentGroup.RemoveMember(player.actorId); - player.SetCurrentContentGroup(null, player); + player.SetCurrentContentGroup(null); if (oldZone is PrivateAreaContent) ((PrivateAreaContent)oldZone).CheckDestroy(); @@ -762,11 +762,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) @@ -795,6 +790,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) @@ -802,7 +853,6 @@ namespace FFXIVClassic_Map_Server if (mContentGroups.ContainsKey(groupId) && mContentGroups[groupId] is ContentGroup) { ContentGroup group = (ContentGroup)mContentGroups[groupId]; - group.SendDeletePackets(); mContentGroups.Remove(groupId); } } diff --git a/FFXIVClassic Map Server/actors/area/Area.cs b/FFXIVClassic Map Server/actors/area/Area.cs index fec0e1c6..8bf5a2d9 100644 --- a/FFXIVClassic Map Server/actors/area/Area.cs +++ b/FFXIVClassic Map Server/actors/area/Area.cs @@ -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) @@ -501,11 +507,48 @@ namespace FFXIVClassic_Map_Server.Actors } } - public Director CreateGuildleveDirector(string path, uint glid, params object[] args) + public Director CreateGuildleveDirector(uint glid, byte difficulty, Player owner, params object[] args) { + String directorScriptPath = ""; + + 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, path, glid, args); + GuildleveDirector director = new GuildleveDirector(directorIdCount, this, directorScriptPath, glid, difficulty, owner, args); currentDirectors.Add(directorIdCount, director); directorIdCount++; return director; @@ -518,7 +561,8 @@ namespace FFXIVClassic_Map_Server.Actors { if (currentDirectors.ContainsKey(id)) { - currentDirectors[id].RemoveMembers(); + if (!currentDirectors[id].IsDeleted()) + currentDirectors[id].EndDirector(); currentDirectors.Remove(id); } } diff --git a/FFXIVClassic Map Server/actors/chara/Character.cs b/FFXIVClassic Map Server/actors/chara/Character.cs index 849f7b81..66b54804 100644 --- a/FFXIVClassic Map Server/actors/chara/Character.cs +++ b/FFXIVClassic Map Server/actors/chara/Character.cs @@ -89,7 +89,7 @@ namespace FFXIVClassic_Map_Server.Actors player.QueuePacket(SetActorQuestGraphicPacket.BuildPacket(player.actorId, actorId, graphicNum)); } - public void SetCurrentContentGroup(ContentGroup group, Player player = null) + public void SetCurrentContentGroup(ContentGroup group) { if (group != null) charaWork.currentContentGroup = group.GetTypeId(); @@ -98,12 +98,10 @@ 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, actorId); + propPacketUtil.AddProperty("charaWork.currentContentGroup"); + zone.BroadcastPacketsAroundActor(this, propPacketUtil.Done()); + } public void PlayAnimation(uint animId) diff --git a/FFXIVClassic Map Server/actors/chara/player/Player.cs b/FFXIVClassic Map Server/actors/chara/player/Player.cs index 10a23f9f..0c4d12a2 100644 --- a/FFXIVClassic Map Server/actors/chara/player/Player.cs +++ b/FFXIVClassic Map Server/actors/chara/player/Player.cs @@ -795,7 +795,7 @@ namespace FFXIVClassic_Map_Server.Actors QueuePacket(GameMessagePacket.BuildPacket(Server.GetWorldManager().GetActor().actorId, 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)); @@ -803,7 +803,7 @@ namespace FFXIVClassic_Map_Server.Actors QueuePacket(GameMessagePacket.BuildPacket(Server.GetWorldManager().GetActor().actorId, 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)); @@ -1433,13 +1433,25 @@ namespace FFXIVClassic_Map_Server.Actors public void RemoveDirector(Director director) { - if (!ownedDirectors.Contains(director)) + if (ownedDirectors.Contains(director)) { + QueuePacket(RemoveActorPacket.BuildPacket(actorId, director.actorId)); ownedDirectors.Remove(director); director.RemoveMember(this); } } + public Director GetGuildleveDirector() + { + foreach (Director d in ownedDirectors) + { + if (d is GuildleveDirector) + return d; + } + + return null; + } + public Director GetDirector(string directorName) { foreach (Director d in ownedDirectors) diff --git a/FFXIVClassic Map Server/actors/director/Director.cs b/FFXIVClassic Map Server/actors/director/Director.cs index 047fbc26..5203ad9f 100644 --- a/FFXIVClassic Map Server/actors/director/Director.cs +++ b/FFXIVClassic Map Server/actors/director/Director.cs @@ -17,6 +17,7 @@ namespace FFXIVClassic_Map_Server.actors.director private string directorScriptPath; private List members = new List(); private bool isCreated = false; + private bool isDeleted = false; private Script directorScript; private Coroutine currentCoroutine; @@ -26,6 +27,7 @@ namespace FFXIVClassic_Map_Server.actors.director { directorId = id; this.zone = zone; + this.zoneId = zone.actorId; directorScriptPath = directorPath; LoadLuaScript(); @@ -111,10 +113,25 @@ namespace FFXIVClassic_Map_Server.actors.director } } + if (this is GuildleveDirector) + ((GuildleveDirector)this).LoadGuildleve(); - StartCoroutine("mainLoop", this); + StartCoroutine("main", this); } + public void EndDirector() + { + if (this is GuildleveDirector) + ((GuildleveDirector)this).EndGuildleveDirector(); + + 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)) @@ -124,15 +141,7 @@ namespace FFXIVClassic_Map_Server.actors.director public void RemoveMember(Actor actor) { if (members.Contains(actor)) - members.Remove(actor); - if (members.Count == 0) - Server.GetWorldManager().GetZone(zoneId).DeleteDirector(actorId); - } - - public void RemoveMembers() - { - members.Clear(); - Server.GetWorldManager().GetZone(zoneId).DeleteDirector(actorId); + members.Remove(actor); } public List GetMembers() @@ -155,6 +164,11 @@ namespace FFXIVClassic_Map_Server.actors.director return isCreated; } + public bool IsDeleted() + { + return isDeleted; + } + public void GenerateActorName(int actorNumber) { //Format Class Name diff --git a/FFXIVClassic Map Server/actors/director/GuildleveDirector.cs b/FFXIVClassic Map Server/actors/director/GuildleveDirector.cs index 58a0e8cc..7289e353 100644 --- a/FFXIVClassic Map Server/actors/director/GuildleveDirector.cs +++ b/FFXIVClassic Map Server/actors/director/GuildleveDirector.cs @@ -1,5 +1,7 @@ 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; @@ -14,14 +16,20 @@ 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 GuildleveDirector(uint id, Area zone, string directorPath, uint guildleveId, params object[] args) + 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]; @@ -38,18 +46,50 @@ namespace FFXIVClassic_Map_Server.actors.director guildleveWork.uiState[3] = 1; guildleveWork.aimNumNow[0] = guildleveWork.aimNumNow[1] = guildleveWork.aimNumNow[2] = guildleveWork.aimNumNow[3] = 0; + + LoadGuildleve(); + } + + 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, actorId); propertyBuilder.AddProperty("guildleveWork.startTime"); SendPacketsToPlayers(propertyBuilder.Done()); } - public void EndGuildleve() + public void EndGuildleve(bool wasCompleted) { + if (wasCompleted) + { + + } + guildleveWork.startTime = 0; guildleveWork.signal = -1; ActorPropertyPacketUtil propertyBuilder = new ActorPropertyPacketUtil("guildleveWork/signal", this, actorId); @@ -57,7 +97,31 @@ namespace FFXIVClassic_Map_Server.actors.director propertyBuilder.NewTarget("guildleveWork/start"); propertyBuilder.AddProperty("guildleveWork.startTime"); SendPacketsToPlayers(propertyBuilder.Done()); + } + + public void AbandonGuildleve() + { + foreach (Actor p in GetPlayerMembers()) + { + Player player = (Player)p; + player.SendGameMessage(Server.GetWorldManager().GetActor(), 50147, 0x20, (object)guildleveId); + } + + 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() { @@ -95,6 +159,7 @@ namespace FFXIVClassic_Map_Server.actors.director public void UpdateAimNumNow(int index, sbyte value) { + guildleveWork.aimNumNow[index] = value; ActorPropertyPacketUtil propertyBuilder = new ActorPropertyPacketUtil("guildleveWork/infoVariable", this, actorId); propertyBuilder.AddProperty(String.Format("guildleveWork.aimNumNow[{0}]", index)); SendPacketsToPlayers(propertyBuilder.Done()); @@ -102,6 +167,7 @@ namespace FFXIVClassic_Map_Server.actors.director public void UpdateUiState(int index, sbyte value) { + guildleveWork.uiState[index] = value; ActorPropertyPacketUtil propertyBuilder = new ActorPropertyPacketUtil("guildleveWork/infoVariable", this, actorId); propertyBuilder.AddProperty(String.Format("guildleveWork.uiState[{0}]", index)); SendPacketsToPlayers(propertyBuilder.Done()); @@ -128,5 +194,30 @@ namespace FFXIVClassic_Map_Server.actors.director } } + 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/group/ContentGroup.cs b/FFXIVClassic Map Server/actors/group/ContentGroup.cs index 2cabe0f9..5c866d87 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); } @@ -110,20 +115,6 @@ namespace FFXIVClassic_Map_Server.actors.group } - 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,19 @@ namespace FFXIVClassic_Map_Server.actors.group SendGroupPacketsAll(members); } - public void DeleteAll() + public void DeleteGroup() { - SendDeletePackets(members); + SendDeletePackets(); + for (int i = 0; i < members.Count; i++) + { + Session s = Server.GetServer().GetSession(members[i]); + if (s != null) + s.GetActor().SetCurrentContentGroup(null); + members.Remove(members[i]); + } + Server.GetWorldManager().DeleteContentGroup(groupIndex); } - public void CheckDestroy() { bool foundSession = false; @@ -155,7 +153,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; + } + } +} From 019e305525ad0448f90f1773d3c2a8caab40cb7f Mon Sep 17 00:00:00 2001 From: Filip Maj Date: Sun, 25 Jun 2017 14:52:32 -0400 Subject: [PATCH 13/38] Fixed redundant looping when removing/finishing a director. Fixed issue where packets to delete content group wouldn't send. Fixed issue where ContentGroups/Directors weren't clearing after deletion causing a growing amount of zombie groups/directors. --- FFXIVClassic Map Server/WorldManager.cs | 5 +++++ FFXIVClassic Map Server/actors/area/Area.cs | 4 ++-- FFXIVClassic Map Server/actors/chara/player/Player.cs | 4 ++-- FFXIVClassic Map Server/actors/director/Director.cs | 6 +++++- .../actors/director/GuildleveDirector.cs | 2 -- FFXIVClassic Map Server/actors/group/ContentGroup.cs | 2 +- 6 files changed, 15 insertions(+), 8 deletions(-) diff --git a/FFXIVClassic Map Server/WorldManager.cs b/FFXIVClassic Map Server/WorldManager.cs index dcf02d29..1d072744 100644 --- a/FFXIVClassic Map Server/WorldManager.cs +++ b/FFXIVClassic Map Server/WorldManager.cs @@ -596,6 +596,11 @@ 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) { diff --git a/FFXIVClassic Map Server/actors/area/Area.cs b/FFXIVClassic Map Server/actors/area/Area.cs index 8bf5a2d9..756893aa 100644 --- a/FFXIVClassic Map Server/actors/area/Area.cs +++ b/FFXIVClassic Map Server/actors/area/Area.cs @@ -501,7 +501,7 @@ namespace FFXIVClassic_Map_Server.Actors lock (directorLock) { Director director = new Director(directorIdCount, this, path, args); - currentDirectors.Add(directorIdCount, director); + currentDirectors.Add(director.actorId, director); directorIdCount++; return director; } @@ -549,7 +549,7 @@ namespace FFXIVClassic_Map_Server.Actors lock (directorLock) { GuildleveDirector director = new GuildleveDirector(directorIdCount, this, directorScriptPath, glid, difficulty, owner, args); - currentDirectors.Add(directorIdCount, director); + currentDirectors.Add(director.actorId, director); directorIdCount++; return director; } diff --git a/FFXIVClassic Map Server/actors/chara/player/Player.cs b/FFXIVClassic Map Server/actors/chara/player/Player.cs index 0c4d12a2..8f33e095 100644 --- a/FFXIVClassic Map Server/actors/chara/player/Player.cs +++ b/FFXIVClassic Map Server/actors/chara/player/Player.cs @@ -1441,12 +1441,12 @@ namespace FFXIVClassic_Map_Server.Actors } } - public Director GetGuildleveDirector() + public GuildleveDirector GetGuildleveDirector() { foreach (Director d in ownedDirectors) { if (d is GuildleveDirector) - return d; + return (GuildleveDirector)d; } return null; diff --git a/FFXIVClassic Map Server/actors/director/Director.cs b/FFXIVClassic Map Server/actors/director/Director.cs index 5203ad9f..6f382fe1 100644 --- a/FFXIVClassic Map Server/actors/director/Director.cs +++ b/FFXIVClassic Map Server/actors/director/Director.cs @@ -18,6 +18,7 @@ namespace FFXIVClassic_Map_Server.actors.director private List members = new List(); private bool isCreated = false; private bool isDeleted = false; + private bool isDeleting = false; private Script directorScript; private Coroutine currentCoroutine; @@ -121,6 +122,7 @@ namespace FFXIVClassic_Map_Server.actors.director public void EndDirector() { + isDeleting = true; if (this is GuildleveDirector) ((GuildleveDirector)this).EndGuildleveDirector(); @@ -141,7 +143,9 @@ namespace FFXIVClassic_Map_Server.actors.director public void RemoveMember(Actor actor) { if (members.Contains(actor)) - members.Remove(actor); + members.Remove(actor); + if (GetPlayerMembers().Count == 0 && !isDeleting) + EndDirector(); } public List GetMembers() diff --git a/FFXIVClassic Map Server/actors/director/GuildleveDirector.cs b/FFXIVClassic Map Server/actors/director/GuildleveDirector.cs index 7289e353..9c440474 100644 --- a/FFXIVClassic Map Server/actors/director/GuildleveDirector.cs +++ b/FFXIVClassic Map Server/actors/director/GuildleveDirector.cs @@ -46,8 +46,6 @@ namespace FFXIVClassic_Map_Server.actors.director guildleveWork.uiState[3] = 1; guildleveWork.aimNumNow[0] = guildleveWork.aimNumNow[1] = guildleveWork.aimNumNow[2] = guildleveWork.aimNumNow[3] = 0; - - LoadGuildleve(); } public void LoadGuildleve() diff --git a/FFXIVClassic Map Server/actors/group/ContentGroup.cs b/FFXIVClassic Map Server/actors/group/ContentGroup.cs index 5c866d87..0c8b9a82 100644 --- a/FFXIVClassic Map Server/actors/group/ContentGroup.cs +++ b/FFXIVClassic Map Server/actors/group/ContentGroup.cs @@ -128,7 +128,7 @@ namespace FFXIVClassic_Map_Server.actors.group public void DeleteGroup() { - SendDeletePackets(); + SendDeletePackets(members); for (int i = 0; i < members.Count; i++) { Session s = Server.GetServer().GetSession(members[i]); From c071b9d684ae65dd41ec72a01d3d50992ad69622 Mon Sep 17 00:00:00 2001 From: Filip Maj Date: Sun, 25 Jun 2017 15:11:35 -0400 Subject: [PATCH 14/38] Pushing new Aetheryte scripts that handle when GL is active. Finally added an error check for some lua callbacks. --- FFXIVClassic Map Server/lua/LuaEngine.cs | 30 ++++++++--- .../npc/object/aetheryte/AetheryteChild.lua | 52 ++++++++++++++++--- .../npc/object/aetheryte/AetheryteParent.lua | 39 +++++++++++--- 3 files changed, 99 insertions(+), 22 deletions(-) diff --git a/FFXIVClassic Map Server/lua/LuaEngine.cs b/FFXIVClassic Map Server/lua/LuaEngine.cs index 9ffcf5e4..d8d4603f 100644 --- a/FFXIVClassic Map Server/lua/LuaEngine.cs +++ b/FFXIVClassic Map Server/lua/LuaEngine.cs @@ -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(); @@ -364,9 +372,17 @@ 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)); diff --git a/data/scripts/base/chara/npc/object/aetheryte/AetheryteChild.lua b/data/scripts/base/chara/npc/object/aetheryte/AetheryteChild.lua index ef21bf73..ff1548ec 100644 --- a/data/scripts/base/chara/npc/object/aetheryte/AetheryteChild.lua +++ b/data/scripts/base/chara/npc/object/aetheryte/AetheryteChild.lua @@ -22,16 +22,40 @@ eventGLJoin () - Ask to join party leader's leve require ("global") require ("aetheryte") require ("utils") +require ("guildleve") function init(npc) return false, false, 0, 0; end -function onEventStarted(player, aetheryte, triggerName) +function onEventStarted(player, aetheryte, triggerName) + + if (player:GetGuildleveDirector() ~= nil) then + doGuildleveMenu(player, aetheryte); + else + doNormalMenu(player, aetheryte); + end + + player:EndEvent(); +end - aetheryteId = aetheryte:GetActorClassId(); - parentNode = aetheryteChildLinks[aetheryteId]; - menuChoice = callClientFunction(player, "eventAetheryteChildSelect", true, parentNode, 100, 1); +function doGuildleveMenu(player, aetheryte) + + local currentGLDirector = player:GetGuildleveDirector(); + local choice = callClientFunction(player, "eventGLPlay", currentGLDirector.guildleveId, true, 1, 500, 400, guardian, 8, currentGLDirector.selectedDifficulty, 2); + + --Abandon + if (choice == 6) then + currentGLDirector:AbandonGuildleve(); + end + +end + +function doNormalMenu(player, aetheryte) + + local aetheryteId = aetheryte:GetActorClassId(); + local parentNode = aetheryteChildLinks[aetheryteId]; + local menuChoice = callClientFunction(player, "eventAetheryteChildSelect", true, parentNode, 100, 1); --Teleport if (menuChoice == 2) then @@ -57,22 +81,36 @@ function onEventStarted(player, aetheryte, triggerName) player:SendGameMessage(player, aetheryte, 29, 0x20, 2, 10); player:SendGameMessage(player, aetheryte, 30, 0x20, 3, 5); end - - player:EndEvent(); end function doLevequestInit(player, aetheryte) + local worldMaster = GetWorldMaster(); ::SELECT_LOOP:: unknown, glId = callClientFunction(player, "eventGLSelect", 0x0); if (glId ~= 0) then ::SELECT_DETAIL:: - unknown, begin = callClientFunction(player, "eventGLSelectDetail", glId, 0xa, 0xf4241, 1000, 0, 0, 0, true, false); + guildleveData = GetGuildleveGamedata(glId); + + if (guildleveData == nil) then + player:SendMessage(0x20, "", "An error has occured... aborting."); + return; + end + + unknown, begin = callClientFunction(player, "eventGLSelectDetail", glId, 0xa, 0xf4241, 1000, 0, 0, 0, true, false); if (begin) then ::SELECT_DIFFICULTY:: + player:SendGameMessage(worldMaster, 50014, 0x20); --"Please select a difficulty level. This may be lowered later." difficulty = callClientFunction(player, "eventGLDifficulty", glId); if (difficulty == nil) then goto SELECT_DETAIL; end confirmResult = callClientFunction(player, "eventGLStart", glId, difficulty, 1, 10, 20, 0, 0, 0, 0); if (confirmResult == nil) then goto SELECT_DIFFICULTY; else + + player:SendGameMessage(worldMaster, 50036, 0x20, glId, player); + player:PlayAnimation(getGLStartAnimationFromSheet(guildleveData.borderId, guildleveData.plateId, true)); + director = player:GetZone():CreateGuildleveDirector(glId, difficulty, player); + player:AddDirector(director); + director:StartDirector(true, glId) + end else goto SELECT_LOOP; diff --git a/data/scripts/base/chara/npc/object/aetheryte/AetheryteParent.lua b/data/scripts/base/chara/npc/object/aetheryte/AetheryteParent.lua index b9a4aa85..1917a37b 100644 --- a/data/scripts/base/chara/npc/object/aetheryte/AetheryteParent.lua +++ b/data/scripts/base/chara/npc/object/aetheryte/AetheryteParent.lua @@ -11,9 +11,8 @@ eventGLSelect(?) - Open GL selector eventGLSelectDetail(glid, ?, reward, rewardQuantity, subreward, subrewardQuantity, faction, ?, completed) - Show GL details eventGLDifficulty() - Open difficulty selector eventGLStart(glId, difficulty, evaluatingFaction, areaFactionStanding, factionReward, warningBoundByDuty, warningTooFar, warningYouCannotRecieve, warningChangingClass) - Confirmation dialog - eventGLBoost(currentFavor, minNeeded) - Ask player for Guardian Aspect -eventGLPlay(??) - Open Menu (GL active version) +eventGLPlay(glId, showLeveLink, leveLinkFaction, leveLinkFactionStanding, leveLinkReward, guardianFavorAmount, guardianFavorNeeded, currentDifficulty, jobNameForChange) - Open Menu (GL active version) eventGLReward (glId, clearTime, missionBonus, difficultyBonus, factionNumber, factionBonus, factionCredit, reward, rewardQuantity, subreward, subrewardQuantity, difficulty) - Open reward window eventGLJoin () - Ask to join party leader's leve @@ -33,7 +32,30 @@ function init(npc) end function onEventStarted(player, aetheryte, triggerName) - + + if (player:GetGuildleveDirector() ~= nil) then + doGuildleveMenu(player, aetheryte); + else + doNormalMenu(player, aetheryte); + end + + player:EndEvent(); + +end + +function doGuildleveMenu(player, aetheryte) + + local currentGLDirector = player:GetGuildleveDirector(); + local choice = callClientFunction(player, "eventGLPlay", currentGLDirector.guildleveId, true, 1, 500, 400, guardian, 8, currentGLDirector.selectedDifficulty, 2); + + --Abandon + if (choice == 6) then + currentGLDirector:AbandonGuildleve(); + end + +end + +function doNormalMenu(player, aetheryte) local aetheryteId = aetheryte:GetActorClassId(); local childNodes = aetheryteParentLinks[aetheryteId]; @@ -94,9 +116,6 @@ function onEventStarted(player, aetheryte, triggerName) end end end - - player:EndEvent(); - end function doLevequestInit(player, aetheryte) @@ -119,10 +138,14 @@ function doLevequestInit(player, aetheryte) difficulty = callClientFunction(player, "eventGLDifficulty", glId); if (difficulty == nil) then goto SELECT_DETAIL; end confirmResult = callClientFunction(player, "eventGLStart", glId, difficulty, 1, guildleveData.favorCount, 20, 0, 0, 0, 0); - if (confirmResult == nil) then goto SELECT_DIFFICULTY; else - director = player:GetZone():CreateGuildleveDirector("Guildleve/PrivateGLBattleTutorial", glId); + if (confirmResult == nil) then goto SELECT_DIFFICULTY; else + + player:SendGameMessage(worldMaster, 50036, 0x20, glId, player); + player:PlayAnimation(getGLStartAnimationFromSheet(guildleveData.borderId, guildleveData.plateId, true)); + director = player:GetZone():CreateGuildleveDirector(glId, difficulty, player); player:AddDirector(director); director:StartDirector(true, glId) + end else goto SELECT_LOOP; From cd0bb10ef6c4ed4916587e3e3f69d0a6b2987bb7 Mon Sep 17 00:00:00 2001 From: Filip Maj Date: Sun, 25 Jun 2017 20:43:23 -0400 Subject: [PATCH 15/38] Forgot to push GL scripts. --- .../directors/Guildleve/GuildleveCommon.lua | 54 +++++++++++++++++++ .../Guildleve/PrivateGLBattleChaseNormal.lua | 32 +++++++++++ .../Guildleve/PrivateGLBattleDetectNormal.lua | 37 +++++++------ .../Guildleve/PrivateGLBattleGatherNormal.lua | 19 ++++++- .../Guildleve/PrivateGLBattleHuntNormal.lua | 29 ++++++++-- .../Guildleve/PrivateGLBattleOrbNormal.lua | 32 +++++++++++ .../Guildleve/PrivateGLBattleRoundNormal.lua | 32 +++++++++++ .../PrivateGLBattleSurviveNormal.lua | 32 +++++++++++ .../Guildleve/PrivateGLBattleSweepNormal.lua | 32 +++++++++++ .../Guildleve/PrivateGLBattleTutorial.lua | 50 +++++++++++------ 10 files changed, 313 insertions(+), 36 deletions(-) create mode 100644 data/scripts/directors/Guildleve/GuildleveCommon.lua create mode 100644 data/scripts/directors/Guildleve/PrivateGLBattleChaseNormal.lua create mode 100644 data/scripts/directors/Guildleve/PrivateGLBattleOrbNormal.lua create mode 100644 data/scripts/directors/Guildleve/PrivateGLBattleRoundNormal.lua create mode 100644 data/scripts/directors/Guildleve/PrivateGLBattleSurviveNormal.lua create mode 100644 data/scripts/directors/Guildleve/PrivateGLBattleSweepNormal.lua diff --git a/data/scripts/directors/Guildleve/GuildleveCommon.lua b/data/scripts/directors/Guildleve/GuildleveCommon.lua new file mode 100644 index 00000000..489cbe9b --- /dev/null +++ b/data/scripts/directors/Guildleve/GuildleveCommon.lua @@ -0,0 +1,54 @@ +require ("global") +require ("guildleve") + +--DirectorId, GuildleveId, Aetheryte Location (6 or ~6), exMarkerX, exMarkerY, exMarkerZ + +--22: Limsa Battle Leve +--14: Gridania Battle Leve +--26: Uldah Battle Leve +--16: Coerthas Faction Leve +--72: Harvest Leve + +function init(thisDirector) + return "/Director/Guildleve/PrivateGLBattleSweepNormal", 0x4e25, thisDirector.guildleveId, 6, 0, 0, 0; +end + +function main(thisDirector) + + guildleveData = GetGuildleveGamedata(thisDirector.guildleveId); + members = thisDirector:GetPlayerMembers(); + + if (members ~= nil and #members ~= 0) then + player = members[0]; + player:SendGameMessage(GetWorldMaster(), 50036, 0x20, thisDirector.guildleveId, player, 0); --"You have started the leve..." + player:PlayAnimation(getGLStartAnimationFromSheet(guildleveData.borderId, guildleveData.plateId, false)); + end + + wait(3); + + thisDirector:StartGuildleve(); + thisDirector:SyncAllInfo(); + thisDirector:UpdateMarkers(0, 59.0, 44.0, -163.0); + + if (members ~= nil and #members ~= 0) then + player = members[0]; + + player:ChangeMusic(22); + attentionMessage(player, 50022, thisDirector.guildleveId, thisDirector.selectedDifficulty, 0); + player:SendGameMessage(GetWorldMaster(), 50026, 0x20, guildleveData.timeLimit); + end + + wait(5); + + thisDirector:UpdateAimNumNow(0, 1); + wait(3); + thisDirector:UpdateAimNumNow(0, 2); + wait(3); + thisDirector:UpdateAimNumNow(0, 3); + +end + +function attentionMessage(player, textId, ...) + player:SendGameMessage(GetWorldMaster(), textId, 0x20, ...); + player:SendDataPacket("attention", GetWorldMaster(), "", textId, ...); +end diff --git a/data/scripts/directors/Guildleve/PrivateGLBattleChaseNormal.lua b/data/scripts/directors/Guildleve/PrivateGLBattleChaseNormal.lua new file mode 100644 index 00000000..35a5a693 --- /dev/null +++ b/data/scripts/directors/Guildleve/PrivateGLBattleChaseNormal.lua @@ -0,0 +1,32 @@ +require ("global") +require ("guildleve") + +--DirectorId, GuildleveId, Aetheryte Location (6 or ~6), exMarkerX, exMarkerY, exMarkerZ + +--22: Limsa Battle Leve +--14: Gridania Battle Leve +--26: Uldah Battle Leve +--16: Coerthas Faction Leve +--72: Harvest Leve + +function init(thisDirector) + return "/Director/Guildleve/PrivateGLBattleChaseNormal", 0x4e25, thisDirector.guildleveId, 6, 0, 0, 0; +end + +function main(thisDirector) + + wait(3); + + thisDirector:StartGuildleve(); + thisDirector:SyncAllInfo(); + thisDirector:UpdateMarkers(0, 59.0, 44.0, -163.0); + + wait(5); + + thisDirector:UpdateAimNumNow(0, 1); + wait(3); + thisDirector:UpdateAimNumNow(0, 2); + wait(3); + thisDirector:UpdateAimNumNow(0, 3); + +end diff --git a/data/scripts/directors/Guildleve/PrivateGLBattleDetectNormal.lua b/data/scripts/directors/Guildleve/PrivateGLBattleDetectNormal.lua index 315974d6..4e138ef0 100644 --- a/data/scripts/directors/Guildleve/PrivateGLBattleDetectNormal.lua +++ b/data/scripts/directors/Guildleve/PrivateGLBattleDetectNormal.lua @@ -3,23 +3,30 @@ require ("guildleve") --DirectorId, GuildleveId, Aetheryte Location (6 or ~6), exMarkerX, exMarkerY, exMarkerZ -function init(thisDirector) - guildleveData = GetGuildleveGamedata(thisDirector.guildleveId); - members = thisDirector:GetPlayerMembers(); - - if (members ~= nil and #members ~= 0) then - player = members[0]; - player:SendGameMessage(GetWorldMaster(), 50036, 0x20, thisDirector.guildleveId, player, 0); --"You have started the leve..." - player:PlayAnimation(getGLStartAnimationFromSheet(guildleveData.borderId, guildleveData.plateId, false)); - end - +--22: Limsa Battle Leve +--14: Gridania Battle Leve +--26: Uldah Battle Leve +--16: Coerthas Faction Leve +--72: Harvest Leve + +function init(thisDirector) return "/Director/Guildleve/PrivateGLBattleDetectNormal", 0x4e25, thisDirector.guildleveId, 6, 0, 0, 0; end -function mainLoop(thisDirector) +function main(thisDirector) - wait(3) - thisDirector:StartGuildleve(); - thisDirector:SyncAllInfo(); + wait(3); -end \ No newline at end of file + thisDirector:StartGuildleve(); + thisDirector:SyncAllInfo(); + thisDirector:UpdateMarkers(0, 59.0, 44.0, -163.0); + + wait(5); + + thisDirector:UpdateAimNumNow(0, 1); + wait(3); + thisDirector:UpdateAimNumNow(0, 2); + wait(3); + thisDirector:UpdateAimNumNow(0, 3); + +end diff --git a/data/scripts/directors/Guildleve/PrivateGLBattleGatherNormal.lua b/data/scripts/directors/Guildleve/PrivateGLBattleGatherNormal.lua index 7098c209..683a0d34 100644 --- a/data/scripts/directors/Guildleve/PrivateGLBattleGatherNormal.lua +++ b/data/scripts/directors/Guildleve/PrivateGLBattleGatherNormal.lua @@ -1,11 +1,26 @@ require ("global") +require ("guildleve") --DirectorId, GuildleveId function init() - return "/Director/Guildleve/PrivateGLBattleGatherNormal", 0x4e26, 1220, 6, 100, 0.0, -100; + return "/Director/Guildleve/PrivateGLBattleGatherNormal", 0x4e25, thisDirector.guildleveId, 6, 0, 0, 0; end -function onEventStarted(player, actor, triggerName) +function main(thisDirector) + + wait(3); + + thisDirector:StartGuildleve(); + thisDirector:SyncAllInfo(); + thisDirector:UpdateMarkers(0, 59.0, 44.0, -163.0); + + wait(5); + + thisDirector:UpdateAimNumNow(0, 1); + wait(3); + thisDirector:UpdateAimNumNow(0, 2); + wait(3); + thisDirector:UpdateAimNumNow(0, 3); end \ No newline at end of file diff --git a/data/scripts/directors/Guildleve/PrivateGLBattleHuntNormal.lua b/data/scripts/directors/Guildleve/PrivateGLBattleHuntNormal.lua index f2b4e534..f165cea4 100644 --- a/data/scripts/directors/Guildleve/PrivateGLBattleHuntNormal.lua +++ b/data/scripts/directors/Guildleve/PrivateGLBattleHuntNormal.lua @@ -1,11 +1,32 @@ require ("global") +require ("guildleve") --DirectorId, GuildleveId, Aetheryte Location (6 or ~6), exMarkerX, exMarkerY, exMarkerZ -function init() - return "/Director/Guildleve/PrivateGLBattleHuntNormal", 0x4e25, 10844, 6, 32.1, 45.1, -35.1; +--22: Limsa Battle Leve +--14: Gridania Battle Leve +--26: Uldah Battle Leve +--16: Coerthas Faction Leve +--72: Harvest Leve + +function init(thisDirector) + return "/Director/Guildleve/PrivateGLBattleHuntNormal", 0x4e25, thisDirector.guildleveId, 6, 0, 0, 0; end -function onEventStarted(player, actor, triggerName) +function main(thisDirector) + + wait(3); -end \ No newline at end of file + thisDirector:StartGuildleve(); + thisDirector:SyncAllInfo(); + thisDirector:UpdateMarkers(0, 59.0, 44.0, -163.0); + + wait(5); + + thisDirector:UpdateAimNumNow(0, 1); + wait(3); + thisDirector:UpdateAimNumNow(0, 2); + wait(3); + thisDirector:UpdateAimNumNow(0, 3); + +end diff --git a/data/scripts/directors/Guildleve/PrivateGLBattleOrbNormal.lua b/data/scripts/directors/Guildleve/PrivateGLBattleOrbNormal.lua new file mode 100644 index 00000000..37b9648f --- /dev/null +++ b/data/scripts/directors/Guildleve/PrivateGLBattleOrbNormal.lua @@ -0,0 +1,32 @@ +require ("global") +require ("guildleve") + +--DirectorId, GuildleveId, Aetheryte Location (6 or ~6), exMarkerX, exMarkerY, exMarkerZ + +--22: Limsa Battle Leve +--14: Gridania Battle Leve +--26: Uldah Battle Leve +--16: Coerthas Faction Leve +--72: Harvest Leve + +function init(thisDirector) + return "/Director/Guildleve/PrivateGLBattleOrbNormal", 0x4e25, thisDirector.guildleveId, 6, 0, 0, 0; +end + +function main(thisDirector) + + wait(3); + + thisDirector:StartGuildleve(); + thisDirector:SyncAllInfo(); + thisDirector:UpdateMarkers(0, 59.0, 44.0, -163.0); + + wait(5); + + thisDirector:UpdateAimNumNow(0, 1); + wait(3); + thisDirector:UpdateAimNumNow(0, 2); + wait(3); + thisDirector:UpdateAimNumNow(0, 3); + +end diff --git a/data/scripts/directors/Guildleve/PrivateGLBattleRoundNormal.lua b/data/scripts/directors/Guildleve/PrivateGLBattleRoundNormal.lua new file mode 100644 index 00000000..77bc5046 --- /dev/null +++ b/data/scripts/directors/Guildleve/PrivateGLBattleRoundNormal.lua @@ -0,0 +1,32 @@ +require ("global") +require ("guildleve") + +--DirectorId, GuildleveId, Aetheryte Location (6 or ~6), exMarkerX, exMarkerY, exMarkerZ + +--22: Limsa Battle Leve +--14: Gridania Battle Leve +--26: Uldah Battle Leve +--16: Coerthas Faction Leve +--72: Harvest Leve + +function init(thisDirector) + return "/Director/Guildleve/PrivateGLBattleRoundNormal", 0x4e25, thisDirector.guildleveId, 6, 0, 0, 0; +end + +function main(thisDirector) + + wait(3); + + thisDirector:StartGuildleve(); + thisDirector:SyncAllInfo(); + thisDirector:UpdateMarkers(0, 59.0, 44.0, -163.0); + + wait(5); + + thisDirector:UpdateAimNumNow(0, 1); + wait(3); + thisDirector:UpdateAimNumNow(0, 2); + wait(3); + thisDirector:UpdateAimNumNow(0, 3); + +end \ No newline at end of file diff --git a/data/scripts/directors/Guildleve/PrivateGLBattleSurviveNormal.lua b/data/scripts/directors/Guildleve/PrivateGLBattleSurviveNormal.lua new file mode 100644 index 00000000..f8eaa791 --- /dev/null +++ b/data/scripts/directors/Guildleve/PrivateGLBattleSurviveNormal.lua @@ -0,0 +1,32 @@ +require ("global") +require ("guildleve") + +--DirectorId, GuildleveId, Aetheryte Location (6 or ~6), exMarkerX, exMarkerY, exMarkerZ + +--22: Limsa Battle Leve +--14: Gridania Battle Leve +--26: Uldah Battle Leve +--16: Coerthas Faction Leve +--72: Harvest Leve + +function init(thisDirector) + return "/Director/Guildleve/PrivateGLBattleSurviveNormal", 0x4e25, thisDirector.guildleveId, 6, 0, 0, 0; +end + +function main(thisDirector) + + wait(3); + + thisDirector:StartGuildleve(); + thisDirector:SyncAllInfo(); + thisDirector:UpdateMarkers(0, 59.0, 44.0, -163.0); + + wait(5); + + thisDirector:UpdateAimNumNow(0, 1); + wait(3); + thisDirector:UpdateAimNumNow(0, 2); + wait(3); + thisDirector:UpdateAimNumNow(0, 3); + +end diff --git a/data/scripts/directors/Guildleve/PrivateGLBattleSweepNormal.lua b/data/scripts/directors/Guildleve/PrivateGLBattleSweepNormal.lua new file mode 100644 index 00000000..82a0207c --- /dev/null +++ b/data/scripts/directors/Guildleve/PrivateGLBattleSweepNormal.lua @@ -0,0 +1,32 @@ +require ("global") +require ("guildleve") + +--DirectorId, GuildleveId, Aetheryte Location (6 or ~6), exMarkerX, exMarkerY, exMarkerZ + +--22: Limsa Battle Leve +--14: Gridania Battle Leve +--26: Uldah Battle Leve +--16: Coerthas Faction Leve +--72: Harvest Leve + +function init(thisDirector) + return "/Director/Guildleve/PrivateGLBattleSweepNormal", 0x4e25, thisDirector.guildleveId, 6, 0, 0, 0; +end + +function main(thisDirector) + + wait(3); + + thisDirector:StartGuildleve(); + thisDirector:SyncAllInfo(); + thisDirector:UpdateMarkers(0, 59.0, 44.0, -163.0); + + wait(5); + + thisDirector:UpdateAimNumNow(0, 1); + wait(3); + thisDirector:UpdateAimNumNow(0, 2); + wait(3); + thisDirector:UpdateAimNumNow(0, 3); + +end \ No newline at end of file diff --git a/data/scripts/directors/Guildleve/PrivateGLBattleTutorial.lua b/data/scripts/directors/Guildleve/PrivateGLBattleTutorial.lua index c0cdfbc7..9eaffe00 100644 --- a/data/scripts/directors/Guildleve/PrivateGLBattleTutorial.lua +++ b/data/scripts/directors/Guildleve/PrivateGLBattleTutorial.lua @@ -3,23 +3,43 @@ require ("guildleve") --DirectorId, GuildleveId, Aetheryte Location (6 or ~6), exMarkerX, exMarkerY, exMarkerZ -function init(thisDirector) - guildleveData = GetGuildleveGamedata(thisDirector.guildleveId); - members = thisDirector:GetPlayerMembers(); - - if (members ~= nil and #members ~= 0) then - player = members[0]; - player:SendGameMessage(GetWorldMaster(), 50036, 0x20, thisDirector.guildleveId, player, 0); --"You have started the leve..." - player:PlayAnimation(getGLStartAnimationFromSheet(guildleveData.borderId, guildleveData.plateId, false)); - end - +--50101: This is a tutorial covering regional levequests for Disciples of War and Disciples of Magic. +--50102: The general location of your target can be determined by using the minimap. +--50105: Your target is nearby. Proceed with the levequest objectives. +--50107: This levequest asks that you exterminate a total of [@VALUE($E8(1))] targets. Try finding the next one. +--50110: Defeating targets will sometimes earn you experience points. +--50112: An aetherial node will appear when levequest objectives have been met. Try approaching it. +--50114: Use the node to collect your reward and teleport back to the starting location of the levequest. + +--22: Limsa Battle Leve +--14: Gridania Battle Leve +--26: Uldah Battle Leve +--16: Coerthas Faction Leve +--72: Harvest Leve + +function init(thisDirector) return "/Director/Guildleve/PrivateGLBattleTutorial", 0x4e25, thisDirector.guildleveId, 6, 0, 0, 0; end -function mainLoop(thisDirector) +function main(thisDirector) - wait(2) - thisDirector:StartGuildleve(); - thisDirector:SyncAllInfo(); + wait(3); -end \ No newline at end of file + thisDirector:StartGuildleve(); + thisDirector:SyncAllInfo(); + thisDirector:UpdateMarkers(0, 59.0, 44.0, -163.0); + + wait(5); + + thisDirector:UpdateAimNumNow(0, 1); + wait(3); + thisDirector:UpdateAimNumNow(0, 2); + wait(3); + thisDirector:UpdateAimNumNow(0, 3); + +end + +function attentionMessage(player, textId, args ...) + player:SendGameMessage(GetWorldMaster(), textId, 0x20, args); + player:SendDataPacket("attention", GetWorldMaster(), "", textId, args); +end From e5afe8791bdf7425a54e1063646d4fc880a90d7d Mon Sep 17 00:00:00 2001 From: Filip Maj Date: Sun, 25 Jun 2017 22:43:15 -0400 Subject: [PATCH 16/38] Implemented the ending portion of the guildleve. --- FFXIVClassic Map Server/actors/area/Area.cs | 5 +++ .../actors/chara/npc/Npc.cs | 5 +++ .../actors/director/Director.cs | 1 + .../actors/director/GuildleveDirector.cs | 25 +++++++++++ .../actors/group/ContentGroup.cs | 4 ++ .../chara/npc/object/GuildleveWarpPoint.lua | 43 +++++++++++++++++++ .../Guildleve/PrivateGLBattleOrbNormal.lua | 5 +++ 7 files changed, 88 insertions(+) create mode 100644 data/scripts/base/chara/npc/object/GuildleveWarpPoint.lua diff --git a/FFXIVClassic Map Server/actors/area/Area.cs b/FFXIVClassic Map Server/actors/area/Area.cs index 756893aa..c56414b1 100644 --- a/FFXIVClassic Map Server/actors/area/Area.cs +++ b/FFXIVClassic Map Server/actors/area/Area.cs @@ -467,6 +467,11 @@ namespace FFXIVClassic_Map_Server.Actors RemoveActorFromZone(FindActorInZoneByUniqueID(uniqueId)); } + public void DespawnActor(Actor actor) + { + RemoveActorFromZone(actor); + } + public Director GetWeatherDirector() { return mWeatherDirector; diff --git a/FFXIVClassic Map Server/actors/chara/npc/Npc.cs b/FFXIVClassic Map Server/actors/chara/npc/Npc.cs index 05b694b0..6650e72b 100644 --- a/FFXIVClassic Map Server/actors/chara/npc/Npc.cs +++ b/FFXIVClassic Map Server/actors/chara/npc/Npc.cs @@ -396,6 +396,11 @@ namespace FFXIVClassic_Map_Server.Actors player.QueuePacket(PlayBGAnimation.BuildPacket(actorId, player.actorId, animationName)); } + public void Despawn() + { + zone.DespawnActor(this); + } + public void Update(double deltaTime) { LuaEngine.GetInstance().CallLuaFunction(null, this, "onUpdate", true, deltaTime); diff --git a/FFXIVClassic Map Server/actors/director/Director.cs b/FFXIVClassic Map Server/actors/director/Director.cs index 6f382fe1..5dfb492e 100644 --- a/FFXIVClassic Map Server/actors/director/Director.cs +++ b/FFXIVClassic Map Server/actors/director/Director.cs @@ -123,6 +123,7 @@ namespace FFXIVClassic_Map_Server.actors.director public void EndDirector() { isDeleting = true; + if (this is GuildleveDirector) ((GuildleveDirector)this).EndGuildleveDirector(); diff --git a/FFXIVClassic Map Server/actors/director/GuildleveDirector.cs b/FFXIVClassic Map Server/actors/director/GuildleveDirector.cs index 9c440474..e1d00a63 100644 --- a/FFXIVClassic Map Server/actors/director/GuildleveDirector.cs +++ b/FFXIVClassic Map Server/actors/director/GuildleveDirector.cs @@ -23,6 +23,8 @@ namespace FFXIVClassic_Map_Server.actors.director public GuildleveData guildleveData; public GuildleveWork guildleveWork = new GuildleveWork(); + public bool isEnded = false; + public GuildleveDirector(uint id, Area zone, string directorPath, uint guildleveId, byte selectedDifficulty, Player guildleveOwner, params object[] args) : base(id, zone, directorPath, args) { @@ -83,9 +85,27 @@ namespace FFXIVClassic_Map_Server.actors.director public void EndGuildleve(bool wasCompleted) { + if (isEnded) + return; + isEnded = true; + if (wasCompleted) { + foreach (Actor a in GetPlayerMembers()) + { + Player player = (Player)a; + player.PlayAnimation(0x02000002); + 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; @@ -96,6 +116,11 @@ namespace FFXIVClassic_Map_Server.actors.director 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); + } } public void AbandonGuildleve() diff --git a/FFXIVClassic Map Server/actors/group/ContentGroup.cs b/FFXIVClassic Map Server/actors/group/ContentGroup.cs index 0c8b9a82..11b6a0c7 100644 --- a/FFXIVClassic Map Server/actors/group/ContentGroup.cs +++ b/FFXIVClassic Map Server/actors/group/ContentGroup.cs @@ -134,7 +134,11 @@ namespace FFXIVClassic_Map_Server.actors.group 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); } diff --git a/data/scripts/base/chara/npc/object/GuildleveWarpPoint.lua b/data/scripts/base/chara/npc/object/GuildleveWarpPoint.lua new file mode 100644 index 00000000..1c0dc221 --- /dev/null +++ b/data/scripts/base/chara/npc/object/GuildleveWarpPoint.lua @@ -0,0 +1,43 @@ +--[[ + +GuildleveWarpPoint Script + +Functions: + +eventGuildleveReward(glId, completionTimeSec, completeReward, difficultyBonus, faction, gil???, factionBonus, RewardId1, RewardAmount1, RewardId2, RewardAmount2, difficulty) - Open Reward Dialog +eventTalkGuildleveWarp(returnAetheryteID1, returnAetheryte2) - Opens choice menu +--]] + +require ("global") +require ("aetheryte") +require ("utils") + +function init(npc) + return false, false, 0, 0; +end + +function onEventStarted(player, npc, triggerName) + local currentGLDirector = player:GetGuildleveDirector(); + local glData = currentGLDirector.guildleveData; + + callClientFunction(player, "eventGuildleveReward", currentGLDirector.guildleveId, 0x26, 24, 24, 0, 0, 0, 0, 0, 0, 0, 4); + + local choice = callClientFunction(player, "eventTalkGuildleveWarp", glData.aetheryte, 0); + + if (choice == 3) then + local destination = aetheryteTeleportPositions[glData.aetheryte]; + if (destination ~= nil) then + randoPos = getRandomPointInBand(destination[2], destination[4], 3, 5); + rotation = getAngleFacing(randoPos.x, randoPos.y, destination[2], destination[4]); + GetWorldManager():DoZoneChange(player, destination[1], nil, 0, 2, randoPos.x, destination[3], randoPos.y, rotation); + currentGLDirector:EndDirector(); + end + elseif (choice == 4) then + currentGLDirector:EndDirector(); + end + + player:EndEvent(); +end + +--50023: GL COMPLETE! +--50132: You earn faction credits from X \ No newline at end of file diff --git a/data/scripts/directors/Guildleve/PrivateGLBattleOrbNormal.lua b/data/scripts/directors/Guildleve/PrivateGLBattleOrbNormal.lua index 37b9648f..6a9cdb81 100644 --- a/data/scripts/directors/Guildleve/PrivateGLBattleOrbNormal.lua +++ b/data/scripts/directors/Guildleve/PrivateGLBattleOrbNormal.lua @@ -28,5 +28,10 @@ function main(thisDirector) thisDirector:UpdateAimNumNow(0, 2); wait(3); thisDirector:UpdateAimNumNow(0, 3); + wait(3); + thisDirector:UpdateAimNumNow(0, 4); + + wait(2); + thisDirector:EndGuildleve(true); end From 573b9a7202189a028690f75f703a4ebd283b2237 Mon Sep 17 00:00:00 2001 From: Filip Maj Date: Sun, 25 Jun 2017 22:44:48 -0400 Subject: [PATCH 17/38] Updated the GLWarpPoint actorClass to be clickable. --- sql/gamedata_actor_class.sql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sql/gamedata_actor_class.sql b/sql/gamedata_actor_class.sql index 2941e324..5542420b 100644 --- a/sql/gamedata_actor_class.sql +++ b/sql/gamedata_actor_class.sql @@ -4,7 +4,7 @@ Source Host: localhost Source Database: ffxiv_server Target Host: localhost Target Database: ffxiv_server -Date: 6/19/2017 10:23:48 PM +Date: 6/25/2017 10:44:22 PM */ SET FOREIGN_KEY_CHECKS=0; @@ -3042,7 +3042,7 @@ INSERT INTO `gamedata_actor_class` VALUES ('1200036', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200037', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200038', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200039', '', '0', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('1200040', '/Chara/Npc/Object/GuildleveWarpPoint', '4010016', '2', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"5.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"5.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('1200040', '/Chara/Npc/Object/GuildleveWarpPoint', '4010016', '3', '{\r\n \"talkEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"talkDefault\"\r\n }\r\n ],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 4,\r\n \"unknown2\": 0,\r\n \"conditionName\": \"pushCommand\"\r\n },\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"pushWithCircleEventConditions\": [\r\n {\r\n \"radius\": \"5.0\",\r\n \"outwards\": \"false\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandIn\"\r\n },\r\n {\r\n \"radius\": \"5.0\",\r\n \"outwards\": \"true\",\r\n \"silent\": \"true\",\r\n \"conditionName\": \"pushCommandOut\"\r\n }\r\n ]\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('1200041', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200042', '', '0', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('1200043', '', '0', '0', null); From b5db036d717ab050c3e78c02c6831f112e8321ad Mon Sep 17 00:00:00 2001 From: Filip Maj Date: Sun, 25 Jun 2017 23:02:20 -0400 Subject: [PATCH 18/38] Abandoning/Completing GLs now marks them correctly in the Journal. --- FFXIVClassic Map Server/Database.cs | 36 +++++++++++++++++++ .../actors/chara/player/Player.cs | 25 +++++++++++++ .../actors/director/GuildleveDirector.cs | 4 ++- 3 files changed, 64 insertions(+), 1 deletion(-) diff --git a/FFXIVClassic Map Server/Database.cs b/FFXIVClassic Map Server/Database.cs index 28b59224..b23214f1 100644 --- a/FFXIVClassic Map Server/Database.cs +++ b/FFXIVClassic Map Server/Database.cs @@ -432,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/actors/chara/player/Player.cs b/FFXIVClassic Map Server/actors/chara/player/Player.cs index 8f33e095..c853f270 100644 --- a/FFXIVClassic Map Server/actors/chara/player/Player.cs +++ b/FFXIVClassic Map Server/actors/chara/player/Player.cs @@ -1141,6 +1141,23 @@ namespace FFXIVClassic_Map_Server.Actors SendGuildleveClientUpdate(freeSlot); } + public void MarkGuildleve(uint id, bool abandoned, bool completed) + { + if (HasGuildleve(id)) + { + for (int i = 0; i < questGuildleve.Length; i++) + { + if (questGuildleve[i] != null && questGuildleve[i] == id) + { + work.guildleveChecked[i] = abandoned; + work.guildleveDone[i] = completed; + Database.MarkGuildleve(this, id, abandoned, completed); + SendGuildleveClientUpdate(i); + } + } + } + } + public void RemoveGuildleve(uint id) { if (HasGuildleve(id)) @@ -1409,6 +1426,14 @@ namespace FFXIVClassic_Map_Server.Actors QueuePackets(propPacketUtil.Done()); } + private void SendGuildleveMarkClientUpdate(int slot) + { + ActorPropertyPacketUtil propPacketUtil = new ActorPropertyPacketUtil("work/guildleve", this, actorId); + propPacketUtil.AddProperty(String.Format("work.guildleveDone[{0}]", slot)); + propPacketUtil.AddProperty(String.Format("work.guildleveChecked[{0}]", slot)); + QueuePackets(propPacketUtil.Done()); + } + public void SetLoginDirector(Director director) { if (ownedDirectors.Contains(director)) diff --git a/FFXIVClassic Map Server/actors/director/GuildleveDirector.cs b/FFXIVClassic Map Server/actors/director/GuildleveDirector.cs index e1d00a63..9a4ac483 100644 --- a/FFXIVClassic Map Server/actors/director/GuildleveDirector.cs +++ b/FFXIVClassic Map Server/actors/director/GuildleveDirector.cs @@ -94,6 +94,7 @@ namespace FFXIVClassic_Map_Server.actors.director foreach (Actor a in GetPlayerMembers()) { Player player = (Player)a; + player.MarkGuildleve(guildleveId, false, true); player.PlayAnimation(0x02000002); player.ChangeMusic(81); player.SendGameMessage(Server.GetWorldManager().GetActor(), 50023, 0x20, (object)(int)guildleveId); @@ -128,7 +129,8 @@ namespace FFXIVClassic_Map_Server.actors.director foreach (Actor p in GetPlayerMembers()) { Player player = (Player)p; - player.SendGameMessage(Server.GetWorldManager().GetActor(), 50147, 0x20, (object)guildleveId); + player.SendGameMessage(Server.GetWorldManager().GetActor(), 50147, 0x20, (object)guildleveId); + player.MarkGuildleve(guildleveId, true, false); } EndGuildleve(false); From fc96dac7c7780ae77172379d70409c59fa140700 Mon Sep 17 00:00:00 2001 From: Filip Maj Date: Sun, 25 Jun 2017 23:35:55 -0400 Subject: [PATCH 19/38] Fixed work values being totally wrong for guildleves. Added Add/Remove GL command. --- .../actors/chara/player/Player.cs | 32 +++++++++---------- .../actors/director/GuildleveDirector.cs | 5 ++- .../chara/npc/object/GuildleveWarpPoint.lua | 2 +- data/scripts/commands/gm/addguildleve.lua | 15 +++++++++ data/scripts/commands/gm/removeguildleve.lua | 15 +++++++++ 5 files changed, 50 insertions(+), 19 deletions(-) create mode 100644 data/scripts/commands/gm/addguildleve.lua create mode 100644 data/scripts/commands/gm/removeguildleve.lua diff --git a/FFXIVClassic Map Server/actors/chara/player/Player.cs b/FFXIVClassic Map Server/actors/chara/player/Player.cs index c853f270..213acf4e 100644 --- a/FFXIVClassic Map Server/actors/chara/player/Player.cs +++ b/FFXIVClassic Map Server/actors/chara/player/Player.cs @@ -1092,9 +1092,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; } @@ -1135,8 +1135,7 @@ 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); } @@ -1145,14 +1144,14 @@ namespace FFXIVClassic_Map_Server.Actors { 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) { - work.guildleveChecked[i] = abandoned; - work.guildleveDone[i] = completed; + work.guildleveChecked[i] = completed; + work.guildleveDone[i] = abandoned; Database.MarkGuildleve(this, id, abandoned, completed); - SendGuildleveClientUpdate(i); + SendGuildleveMarkClientUpdate(i); } } } @@ -1162,13 +1161,12 @@ namespace FFXIVClassic_Map_Server.Actors { 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; } @@ -1351,9 +1349,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; } @@ -1421,8 +1419,8 @@ namespace FFXIVClassic_Map_Server.Actors 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, actorId); + propPacketUtil.AddProperty(String.Format("work.guildleveId[{0}]", slot)); QueuePackets(propPacketUtil.Done()); } diff --git a/FFXIVClassic Map Server/actors/director/GuildleveDirector.cs b/FFXIVClassic Map Server/actors/director/GuildleveDirector.cs index 9a4ac483..5a82382d 100644 --- a/FFXIVClassic Map Server/actors/director/GuildleveDirector.cs +++ b/FFXIVClassic Map Server/actors/director/GuildleveDirector.cs @@ -24,6 +24,7 @@ namespace FFXIVClassic_Map_Server.actors.director 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) @@ -89,12 +90,14 @@ namespace FFXIVClassic_Map_Server.actors.director return; isEnded = true; + completionTime = Utils.UnixTimeStampUTC() - guildleveWork.startTime; + if (wasCompleted) { foreach (Actor a in GetPlayerMembers()) { Player player = (Player)a; - player.MarkGuildleve(guildleveId, false, true); + player.MarkGuildleve(guildleveId, true, true); player.PlayAnimation(0x02000002); player.ChangeMusic(81); player.SendGameMessage(Server.GetWorldManager().GetActor(), 50023, 0x20, (object)(int)guildleveId); diff --git a/data/scripts/base/chara/npc/object/GuildleveWarpPoint.lua b/data/scripts/base/chara/npc/object/GuildleveWarpPoint.lua index 1c0dc221..c15dbe0e 100644 --- a/data/scripts/base/chara/npc/object/GuildleveWarpPoint.lua +++ b/data/scripts/base/chara/npc/object/GuildleveWarpPoint.lua @@ -20,7 +20,7 @@ function onEventStarted(player, npc, triggerName) local currentGLDirector = player:GetGuildleveDirector(); local glData = currentGLDirector.guildleveData; - callClientFunction(player, "eventGuildleveReward", currentGLDirector.guildleveId, 0x26, 24, 24, 0, 0, 0, 0, 0, 0, 0, 4); + callClientFunction(player, "eventGuildleveReward", currentGLDirector.guildleveId, currentGLDirector.completionTime, 24, 24, 0, 0, 0, 0, 0, 0, 0, 4); local choice = callClientFunction(player, "eventTalkGuildleveWarp", glData.aetheryte, 0); diff --git a/data/scripts/commands/gm/addguildleve.lua b/data/scripts/commands/gm/addguildleve.lua new file mode 100644 index 00000000..6a9f13ef --- /dev/null +++ b/data/scripts/commands/gm/addguildleve.lua @@ -0,0 +1,15 @@ +require("global"); + +properties = { + permissions = 0, + parameters = "s", + description = "Adds a guildleve by .", +} + +function onTrigger(player, argc, glId) + if player then + player:AddGuildleve(tonumber(glId)); + else + print(sender.."unable to add guildleve, ensure player name is valid."); + end; +end; \ No newline at end of file diff --git a/data/scripts/commands/gm/removeguildleve.lua b/data/scripts/commands/gm/removeguildleve.lua new file mode 100644 index 00000000..0c24ee1f --- /dev/null +++ b/data/scripts/commands/gm/removeguildleve.lua @@ -0,0 +1,15 @@ +require("global"); + +properties = { + permissions = 0, + parameters = "s", + description = "Adds a guildleve by .", +} + +function onTrigger(player, argc, glId) + if player then + player:RemoveGuildleve(tonumber(glId)); + else + print(sender.."unable to add guildleve, ensure player name is valid."); + end; +end; \ No newline at end of file From 00757b4ae7c131b7c24ab13596ee69a39f570fcb Mon Sep 17 00:00:00 2001 From: Filip Maj Date: Sun, 25 Jun 2017 23:43:02 -0400 Subject: [PATCH 20/38] Fixed dumb syntax error. --- data/scripts/directors/Guildleve/PrivateGLBattleTutorial.lua | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/data/scripts/directors/Guildleve/PrivateGLBattleTutorial.lua b/data/scripts/directors/Guildleve/PrivateGLBattleTutorial.lua index 9eaffe00..e3de1b2a 100644 --- a/data/scripts/directors/Guildleve/PrivateGLBattleTutorial.lua +++ b/data/scripts/directors/Guildleve/PrivateGLBattleTutorial.lua @@ -37,9 +37,12 @@ function main(thisDirector) wait(3); thisDirector:UpdateAimNumNow(0, 3); + wait(3); + thisDirector:EndGuildleve(true); + end -function attentionMessage(player, textId, args ...) +function attentionMessage(player, textId, ...) player:SendGameMessage(GetWorldMaster(), textId, 0x20, args); player:SendDataPacket("attention", GetWorldMaster(), "", textId, args); end From c09471ed43955c294c4a7e280c689de0b4b15361 Mon Sep 17 00:00:00 2001 From: Filip Maj Date: Mon, 26 Jun 2017 00:14:26 -0400 Subject: [PATCH 21/38] GL completion animation will only play to self now. --- FFXIVClassic Map Server/actors/chara/Character.cs | 10 ++++++++-- .../actors/director/GuildleveDirector.cs | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/FFXIVClassic Map Server/actors/chara/Character.cs b/FFXIVClassic Map Server/actors/chara/Character.cs index 66b54804..8d032b87 100644 --- a/FFXIVClassic Map Server/actors/chara/Character.cs +++ b/FFXIVClassic Map Server/actors/chara/Character.cs @@ -104,9 +104,15 @@ namespace FFXIVClassic_Map_Server.Actors } - 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, actorId, animId)); + } + else + zone.BroadcastPacketAroundActor(this, PlayAnimationOnActorPacket.BuildPacket(actorId, actorId, animId)); } } diff --git a/FFXIVClassic Map Server/actors/director/GuildleveDirector.cs b/FFXIVClassic Map Server/actors/director/GuildleveDirector.cs index 5a82382d..8bf90ce2 100644 --- a/FFXIVClassic Map Server/actors/director/GuildleveDirector.cs +++ b/FFXIVClassic Map Server/actors/director/GuildleveDirector.cs @@ -98,7 +98,7 @@ namespace FFXIVClassic_Map_Server.actors.director { Player player = (Player)a; player.MarkGuildleve(guildleveId, true, true); - player.PlayAnimation(0x02000002); + 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); From a2647452077a678a73bdc37629df0d5d2c44980e Mon Sep 17 00:00:00 2001 From: Filip Maj Date: Tue, 27 Jun 2017 13:23:05 -0400 Subject: [PATCH 22/38] Started removing all target actor id references. --- FFXIVClassic Common Class Lib/SubPacket.cs | 9 +++++++-- .../packets/send/Actor/ActorDoEmotePacket.cs | 4 ++-- .../packets/send/Actor/ActorInstantiatePacket.cs | 4 ++-- .../packets/send/Actor/ActorSpecialGraphicPacket.cs | 4 ++-- .../packets/send/Actor/AddActorPacket.cs | 4 ++-- .../packets/send/Actor/BattleAction1Packet.cs | 4 ++-- .../packets/send/Actor/DeleteAllActorsPacket.cs | 4 ++-- .../packets/send/Actor/MoveActorToPositionPacket.cs | 4 ++-- .../packets/send/Actor/PlayAnimationOnActorPacket.cs | 4 ++-- .../packets/send/Actor/PlayBGAnimation.cs | 4 ++-- .../packets/send/Actor/RemoveActorPacket.cs | 6 +++--- .../packets/send/Actor/SetActorAppearancePacket.cs | 4 ++-- .../packets/send/Actor/SetActorIconPacket.cs | 4 ++-- .../packets/send/Actor/SetActorIsZoningPacket.cs | 4 ++-- .../packets/send/Actor/SetActorNamePacket.cs | 4 ++-- .../packets/send/Actor/SetActorPositionPacket.cs | 4 ++-- .../packets/send/Actor/SetActorPropetyPacket.cs | 4 ++-- .../packets/send/Actor/SetActorSpeedPacket.cs | 8 ++++---- .../packets/send/Actor/SetActorStatePacket.cs | 4 ++-- .../packets/send/Actor/SetActorStatusAllPacket.cs | 4 ++-- .../packets/send/Actor/SetActorStatusPacket.cs | 4 ++-- .../packets/send/Actor/SetActorSubStatPacket.cs | 4 ++-- .../packets/send/Actor/SetActorTargetAnimatedPacket.cs | 4 ++-- .../packets/send/Actor/SetActorTargetPacket.cs | 4 ++-- .../packets/send/Actor/_0x132Packet.cs | 4 ++-- .../packets/send/Actor/_0xD8Packet.cs | 4 ++-- .../packets/send/Actor/_0xD9Packet.cs | 4 ++-- FFXIVClassic Map Server/packets/send/Actor/_0xFPacket.cs | 4 ++-- FFXIVClassic Map Server/packets/send/SetMusicPacket.cs | 4 ++-- FFXIVClassic Map Server/packets/send/SetWeatherPacket.cs | 4 ++-- .../packets/send/events/EndEventPacket.cs | 6 +++--- .../packets/send/events/KickEventPacket.cs | 8 ++++---- .../packets/send/events/RunEventFunctionPacket.cs | 6 +++--- FFXIVClassic Map Server/packets/send/login/0x2Packet.cs | 6 +++--- .../packets/send/login/0x7ResponsePacket.cs | 4 ++-- .../packets/send/player/AchievementEarnedPacket.cs | 4 ++-- .../packets/send/player/InfoRequestResponsePacket.cs | 4 ++-- .../packets/send/player/SendAchievementRatePacket.cs | 4 ++-- .../packets/send/player/SetAchievementPointsPacket.cs | 4 ++-- .../packets/send/player/SetChocoboNamePacket.cs | 4 ++-- .../send/player/SetCompletedAchievementsPacket.cs | 4 ++-- .../packets/send/player/SetCurrentJobPacket.cs | 4 ++-- .../packets/send/player/SetCurrentMountChocoboPacket.cs | 4 ++-- .../packets/send/player/SetCurrentMountGoobbuePacket.cs | 4 ++-- .../packets/send/player/SetCutsceneBookPacket.cs | 4 ++-- .../packets/send/player/SetGrandCompanyPacket.cs | 4 ++-- .../packets/send/player/SetHasChocoboPacket.cs | 4 ++-- .../packets/send/player/SetHasGoobbuePacket.cs | 4 ++-- .../packets/send/player/SetLatestAchievementsPacket.cs | 4 ++-- .../packets/send/player/SetPlayerDreamPacket.cs | 4 ++-- .../packets/send/player/SetPlayerItemStoragePacket.cs | 4 ++-- .../packets/send/player/SetPlayerTitlePacket.cs | 4 ++-- .../packets/send/player/SetSpecialEventWorkPacket.cs | 4 ++-- .../send/recruitment/CurrentRecruitmentDetailsPacket.cs | 4 ++-- .../packets/send/recruitment/EndRecruitmentPacket.cs | 4 ++-- .../packets/send/recruitment/RecruiterStatePacket.cs | 4 ++-- .../packets/send/recruitment/StartRecruitingResponse.cs | 4 ++-- .../packets/send/social/BlacklistAddedPacket.cs | 4 ++-- .../packets/send/social/BlacklistRemovedPacket.cs | 4 ++-- .../packets/send/social/FriendStatusPacket.cs | 4 ++-- .../packets/send/social/FriendlistAddedPacket.cs | 4 ++-- .../packets/send/social/FriendlistRemovedPacket.cs | 4 ++-- .../packets/send/social/SendBlacklistPacket.cs | 4 ++-- .../packets/send/social/SendFriendlistPacket.cs | 4 ++-- 64 files changed, 141 insertions(+), 136 deletions(-) diff --git a/FFXIVClassic Common Class Lib/SubPacket.cs b/FFXIVClassic Common Class Lib/SubPacket.cs index 38394e29..08faadbd 100644 --- a/FFXIVClassic Common Class Lib/SubPacket.cs +++ b/FFXIVClassic Common Class Lib/SubPacket.cs @@ -72,7 +72,7 @@ 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, targetId, data) { } public SubPacket(bool isGameMessage, ushort opcode, uint sourceId, uint targetId, byte[] data) { @@ -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 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 index 84122ce1..38fe2344 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/BattleAction1Packet.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/BattleAction1Packet.cs @@ -10,7 +10,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor public const ushort OPCODE = 0x0139; public const uint PACKET_SIZE = 0x58; - public static SubPacket BuildPacket(uint sourceId, uint targetId) + public static SubPacket BuildPacket(uint sourceActorId) { byte[] data = new byte[PACKET_SIZE - 0x20]; @@ -21,7 +21,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor } } - return new SubPacket(OPCODE, sourceId, targetId, data); + return new SubPacket(OPCODE, sourceActorId, 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/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 37996dbd..aabba72e 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/SetActorPropetyPacket.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/SetActorPropetyPacket.cs @@ -209,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/_0xD8Packet.cs b/FFXIVClassic Map Server/packets/send/Actor/_0xD8Packet.cs index 6753f7b6..36f59f84 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/_0xD8Packet.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/_0xD8Packet.cs @@ -10,7 +10,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor 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/_0xD9Packet.cs b/FFXIVClassic Map Server/packets/send/Actor/_0xD9Packet.cs index f5198508..041e0390 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/_0xD9Packet.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/_0xD9Packet.cs @@ -11,7 +11,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 anim) + public static SubPacket BuildPacket(uint sourceActorId, string anim) { 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/_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/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/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/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 index 7278b1f1..44885647 100644 --- a/FFXIVClassic Map Server/packets/send/login/0x7ResponsePacket.cs +++ b/FFXIVClassic Map Server/packets/send/login/0x7ResponsePacket.cs @@ -8,7 +8,7 @@ namespace FFXIVClassic_Map_Server.packets.send.login { class Login0x7ResponsePacket { - public static BasePacket BuildPacket(uint actorID, uint time, uint type) + public static BasePacket BuildPacket(uint sourceActorId, uint time, uint type) { byte[] data = new byte[0x18]; @@ -24,7 +24,7 @@ namespace FFXIVClassic_Map_Server.packets.send.login binWriter.Write((uint)0); binWriter.Write((uint)0xFFFFFD7F); - binWriter.Write((uint)actorID); + binWriter.Write((uint)sourceActorId); binWriter.Write((uint)time); } catch (Exception) 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..f777af29 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]; @@ -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); } } } From d8ac8216c4d2ce01ea52ad65c2a51079c229e565 Mon Sep 17 00:00:00 2001 From: Filip Maj Date: Tue, 27 Jun 2017 13:52:47 -0400 Subject: [PATCH 23/38] More subpacket cleanup. --- FFXIVClassic Map Server/actors/Actor.cs | 120 +++++++------- .../actors/chara/Character.cs | 22 +-- .../actors/chara/npc/Npc.cs | 53 +++--- .../actors/chara/player/Player.cs | 152 +++++++++--------- .../dataobjects/Session.cs | 10 +- .../Actor/events/SetEmoteEventCondition.cs | 4 +- .../send/Actor/events/SetEventStatus.cs | 4 +- .../Actor/events/SetNoticeEventCondition.cs | 4 +- .../events/SetPushEventConditionWithCircle.cs | 4 +- .../events/SetPushEventConditionWithFan.cs | 8 +- .../SetPushEventConditionWithTriggerBox.cs | 4 +- .../Actor/events/SetTalkEventCondition.cs | 4 +- .../inventory/InventoryEndChangePacket.cs | 10 +- .../packets/send/GameMessagePacket.cs | 32 ++-- .../packets/send/SendMessagePacket.cs | 4 +- .../utils/ActorPropertyPacketUtil.cs | 8 +- 16 files changed, 219 insertions(+), 224 deletions(-) diff --git a/FFXIVClassic Map Server/actors/Actor.cs b/FFXIVClassic Map Server/actors/Actor.cs index d75077fd..5a1323de 100644 --- a/FFXIVClassic Map Server/actors/Actor.cs +++ b/FFXIVClassic Map Server/actors/Actor.cs @@ -75,66 +75,68 @@ namespace FFXIVClassic_Map_Server.Actors } } - public SubPacket CreateAddActorPacket(uint playerActorId, byte val) + public SubPacket CreateAddActorPacket(byte val) { - return AddActorPacket.BuildPacket(actorId, playerActorId, 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) { + //TODO: FIX THIS IF + uint playerActorId = 0; //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() { - return MoveActorToPositionPacket.BuildPacket(actorId, playerActorId, positionX, positionY, positionZ, rotation, moveState); + return MoveActorToPositionPacket.BuildPacket(actorId, positionX, positionY, positionZ, rotation, moveState); } - 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(); @@ -145,43 +147,43 @@ 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 BasePacket GetSetEventStatusPackets() { List subpackets = new List(); @@ -192,79 +194,79 @@ namespace FFXIVClassic_Map_Server.Actors 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); } - 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 BasePacket GetSpawnPackets() { - return GetSpawnPackets(playerActorId, 0x1); + return GetSpawnPackets(0x1); } - public virtual BasePacket GetSpawnPackets(uint playerActorId, ushort spawnType) + public virtual BasePacket GetSpawnPackets(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)); + subpackets.Add(CreateAddActorPacket(8)); + subpackets.AddRange(GetEventConditionPackets()); + subpackets.Add(CreateSpeedPacket()); + subpackets.Add(CreateSpawnPositonPacket( spawnType)); + subpackets.Add(CreateNamePacket()); + subpackets.Add(CreateStatePacket()); + subpackets.Add(CreateIsZoneingPacket()); + subpackets.Add(CreateScriptBindPacket()); return BasePacket.CreatePacket(subpackets, true, false); } - public virtual BasePacket GetInitPackets(uint playerActorId) + public virtual BasePacket GetInitPackets() { 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); + return BasePacket.CreatePacket(initProperties.BuildPacket(actorId), true, false); } public override bool Equals(Object obj) @@ -299,8 +301,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 = BattleAction1Packet.BuildPacket(actorId); zone.BroadcastPacketAroundActor(this, ChangeStatePacket); zone.BroadcastPacketAroundActor(this, battleActionPacket); } @@ -308,7 +310,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); } @@ -318,7 +320,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); } @@ -426,8 +428,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; } @@ -444,8 +446,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; } @@ -480,7 +482,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/chara/Character.cs b/FFXIVClassic Map Server/actors/chara/Character.cs index 8d032b87..56db6ab0 100644 --- a/FFXIVClassic Map Server/actors/chara/Character.cs +++ b/FFXIVClassic Map Server/actors/chara/Character.cs @@ -63,30 +63,30 @@ namespace FFXIVClassic_Map_Server.Actors charaWork.statusShownTime[i] = 0xFFFFFFFF; } - 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) @@ -109,10 +109,10 @@ namespace FFXIVClassic_Map_Server.Actors if (onlySelf) { if (this is Player) - ((Player)this).QueuePacket(PlayAnimationOnActorPacket.BuildPacket(actorId, actorId, animId)); + ((Player)this).QueuePacket(PlayAnimationOnActorPacket.BuildPacket(actorId, animId)); } else - zone.BroadcastPacketAroundActor(this, PlayAnimationOnActorPacket.BuildPacket(actorId, actorId, animId)); + zone.BroadcastPacketAroundActor(this, PlayAnimationOnActorPacket.BuildPacket(actorId, animId)); } } diff --git a/FFXIVClassic Map Server/actors/chara/npc/Npc.cs b/FFXIVClassic Map Server/actors/chara/npc/Npc.cs index 6650e72b..4dbcca5b 100644 --- a/FFXIVClassic Map Server/actors/chara/npc/Npc.cs +++ b/FFXIVClassic Map Server/actors/chara/npc/Npc.cs @@ -126,18 +126,17 @@ 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")) @@ -161,8 +160,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 { @@ -175,37 +174,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 BasePacket GetSpawnPackets(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(_0xD8Packet.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()); return BasePacket.CreatePacket(subpackets, true, false); } - public override BasePacket GetInitPackets(uint playerActorId) + public override BasePacket GetInitPackets() { - ActorPropertyPacketUtil propPacketUtil = new ActorPropertyPacketUtil("/_init", this, playerActorId); + ActorPropertyPacketUtil propPacketUtil = new ActorPropertyPacketUtil("/_init", this); //Potential propPacketUtil.AddProperty("charaWork.battleSave.potencial"); @@ -275,7 +274,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) @@ -393,7 +392,7 @@ 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() diff --git a/FFXIVClassic Map Server/actors/chara/player/Player.cs b/FFXIVClassic Map Server/actors/chara/player/Player.cs index 213acf4e..2b960251 100644 --- a/FFXIVClassic Map Server/actors/chara/player/Player.cs +++ b/FFXIVClassic Map Server/actors/chara/player/Player.cs @@ -249,17 +249,17 @@ namespace FFXIVClassic_Map_Server.Actors lastPlayTimeUpdate = Utils.UnixTimeStampUTC(); } - 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; } @@ -274,10 +274,10 @@ namespace FFXIVClassic_Map_Server.Actors * Timer Array - 20 Number */ - public override SubPacket CreateScriptBindPacket(uint playerActorId) + public override SubPacket CreateScriptBindPacket(Player player) { List lParams; - if (IsMyPlayer(playerActorId)) + if (IsMyPlayer(player.actorId)) { if (loginInitDirector != null) lParams = LuaUtils.CreateLuaParamList("/Chara/Player/Player_work", false, false, true, loginInitDirector, true, 0, false, timers, true); @@ -287,59 +287,59 @@ 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 BasePacket GetSpawnPackets(Player player, 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)); + subpackets.Add(CreateAddActorPacket( 8)); + if (IsMyPlayer(player.actorId)) + subpackets.AddRange(Create0x132Packets()); + subpackets.Add(CreateSpeedPacket()); + subpackets.Add(CreateSpawnPositonPacket(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(player)); + subpackets.Add(CreateScriptBindPacket(player)); return BasePacket.CreatePacket(subpackets, true, false); } - public List CreatePlayerRelatedPackets(uint playerActorId) + public List CreatePlayerRelatedPackets(Player player) { 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(player.actorId)) { - 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)); } @@ -347,9 +347,9 @@ namespace FFXIVClassic_Map_Server.Actors return subpackets; } - public override BasePacket GetInitPackets(uint playerActorId) + public override BasePacket GetInitPackets() { - ActorPropertyPacketUtil propPacketUtil = new ActorPropertyPacketUtil("/_init", this, playerActorId); + ActorPropertyPacketUtil propPacketUtil = new ActorPropertyPacketUtil("/_init", this); propPacketUtil.AddProperty("charaWork.eventSave.bazaarTax"); propPacketUtil.AddProperty("charaWork.battleSave.potencial"); @@ -505,14 +505,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)); + QueuePacket(GetSpawnPackets(player, spawnType)); //GetSpawnPackets(actorId, spawnType).DebugPrintPacket(); #region Inventory & Equipment @@ -524,10 +524,10 @@ 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); @@ -603,13 +603,13 @@ namespace FFXIVClassic_Map_Server.Actors public void QueuePacket(SubPacket packet) { - playerSession.QueuePacket(packet, true, false); + playerSession.QueuePacket(packet); } public void QueuePackets(List packets) { foreach (SubPacket subpacket in packets) - playerSession.QueuePacket(subpacket, true, false); + playerSession.QueuePacket(subpacket); } public void SendPacket(string path) @@ -655,14 +655,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); } } @@ -715,7 +715,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() @@ -774,41 +774,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 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 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) @@ -843,7 +843,7 @@ namespace FFXIVClassic_Map_Server.Actors public void SendAppearance() { - BroadcastPacket(CreateAppearancePacket(actorId), true); + BroadcastPacket(CreateAppearancePacket(), true); } public void SendCharaExpInfo() @@ -875,7 +875,7 @@ namespace FFXIVClassic_Map_Server.Actors charaInfo1.AddTarget(); - QueuePacket(charaInfo1.BuildPacket(actorId, actorId)); + QueuePacket(charaInfo1.BuildPacket(actorId)); } else if (lastStep == 1) { @@ -906,7 +906,7 @@ namespace FFXIVClassic_Map_Server.Actors charaInfo1.AddTarget(); - QueuePacket(charaInfo1.BuildPacket(actorId, actorId)); + QueuePacket(charaInfo1.BuildPacket(actorId)); } } @@ -963,7 +963,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"); @@ -1007,7 +1007,7 @@ namespace FFXIVClassic_Map_Server.Actors Database.SavePlayerAppearance(this); - BroadcastPacket(CreateAppearancePacket(actorId), true); + BroadcastPacket(CreateAppearancePacket(), true); } public Inventory GetInventory(ushort type) @@ -1404,7 +1404,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()); @@ -1412,21 +1412,21 @@ 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("work/guildleve", this, actorId); + 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, actorId); + 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()); @@ -1449,8 +1449,8 @@ namespace FFXIVClassic_Map_Server.Actors public void SendDirectorPackets(Director director) { - director.GetSpawnPackets(actorId).DebugPrintPacket(); - QueuePacket(director.GetSpawnPackets(actorId)); + director.GetSpawnPackets().DebugPrintPacket(); + QueuePacket(director.GetSpawnPackets()); QueuePacket(director.GetInitPackets(actorId)); } @@ -1458,7 +1458,7 @@ namespace FFXIVClassic_Map_Server.Actors { if (ownedDirectors.Contains(director)) { - QueuePacket(RemoveActorPacket.BuildPacket(actorId, director.actorId)); + QueuePacket(RemoveActorPacket.BuildPacket(director.actorId)); ownedDirectors.Remove(director); director.RemoveMember(this); } @@ -1505,15 +1505,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); } @@ -1541,7 +1541,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/dataobjects/Session.cs b/FFXIVClassic Map Server/dataobjects/Session.cs index 5a83c565..5344b928 100644 --- a/FFXIVClassic Map Server/dataobjects/Session.cs +++ b/FFXIVClassic Map Server/dataobjects/Session.cs @@ -36,10 +36,10 @@ namespace FFXIVClassic_Map_Server.dataobjects Server.GetWorldConnection().QueuePacket(basePacket); } - public void QueuePacket(SubPacket subPacket, bool isAuthed, bool isEncrypted) + public void QueuePacket(SubPacket subPacket) { - subPacket.header.targetId = id; - Server.GetWorldConnection().QueuePacket(subPacket, isAuthed, isEncrypted); + subPacket.SetTargetId(id); + Server.GetWorldConnection().QueuePacket(subPacket, true, false); } public Player GetActor() @@ -107,7 +107,7 @@ namespace FFXIVClassic_Map_Server.dataobjects if (npc.GetUniqueId().Equals("1") && milliseconds - lastMilis > 1000) { lastMilis = milliseconds; - GetActor().QueuePacket(RemoveActorPacket.BuildPacket(playerActor.actorId, actorInstanceList[i].actorId)); + GetActor().QueuePacket(RemoveActorPacket.BuildPacket(actorInstanceList[i].actorId)); actorInstanceList.RemoveAt(i); continue; } @@ -115,7 +115,7 @@ namespace FFXIVClassic_Map_Server.dataobjects if (!list.Contains(actorInstanceList[i])) { - GetActor().QueuePacket(RemoveActorPacket.BuildPacket(playerActor.actorId, actorInstanceList[i].actorId)); + GetActor().QueuePacket(RemoveActorPacket.BuildPacket(actorInstanceList[i].actorId)); actorInstanceList.RemoveAt(i); } 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/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/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/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/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; } From 7c4091a196553a47f1858fc483101d50e57270a7 Mon Sep 17 00:00:00 2001 From: Filip Maj Date: Tue, 27 Jun 2017 16:55:14 -0400 Subject: [PATCH 24/38] Finished refactoring Map Server. Clear of syntax errors. --- FFXIVClassic Common Class Lib/SubPacket.cs | 4 +-- FFXIVClassic Map Server/CommandProcessor.cs | 2 +- FFXIVClassic Map Server/PacketProcessor.cs | 4 +-- FFXIVClassic Map Server/WorldManager.cs | 16 ++++----- FFXIVClassic Map Server/actors/Actor.cs | 21 ++++++++++- FFXIVClassic Map Server/actors/area/Area.cs | 20 +++++------ .../actors/area/PrivateArea.cs | 6 ++-- FFXIVClassic Map Server/actors/area/Zone.cs | 4 +-- .../actors/chara/Character.cs | 2 +- .../actors/chara/npc/Npc.cs | 4 +-- .../actors/chara/player/Player.cs | 36 +++++++++---------- FFXIVClassic Map Server/actors/debug/Debug.cs | 20 +++++------ .../actors/director/Director.cs | 32 ++++++++--------- .../actors/director/GuildleveDirector.cs | 12 +++---- .../actors/group/ContentGroup.cs | 16 ++++----- FFXIVClassic Map Server/actors/group/Group.cs | 16 ++++----- .../actors/group/MonsterParty.cs | 2 +- .../actors/group/Relation.cs | 2 +- .../actors/world/WorldMaster.cs | 20 +++++------ .../dataobjects/Session.cs | 12 ++++--- .../Send/Group/CreateLinkshellPacket.cs | 2 +- .../Send/Group/DeleteLinkshellPacket.cs | 2 +- .../Send/Group/GroupInviteResultPacket.cs | 2 +- .../Send/Group/LinkshellChangePacket.cs | 2 +- .../Send/Group/LinkshellInviteCancelPacket.cs | 2 +- .../Send/Group/LinkshellInvitePacket.cs | 2 +- .../Send/Group/LinkshellLeavePacket.cs | 2 +- .../Send/Group/LinkshellRankChangePacket.cs | 2 +- .../Send/Group/ModifyLinkshellPacket.cs | 2 +- .../Send/Group/PartyInvitePacket.cs | 4 +-- .../Send/Group/PartyLeavePacket.cs | 2 +- .../Send/Group/PartyModifyPacket.cs | 4 +-- .../Send/SessionBeginConfirmPacket.cs | 2 +- .../Send/SessionEndConfirmPacket.cs | 2 +- .../Send/WorldRequestZoneChangePacket.cs | 2 +- .../Actor/battle/BattleActionX00Packet.cs | 2 +- .../Actor/battle/BattleActionX01Packet.cs | 2 +- .../Actor/battle/BattleActionX10Packet.cs | 2 +- .../Actor/battle/BattleActionX18Packet.cs | 2 +- .../Actor/inventory/EquipmentListX01Packet.cs | 2 +- .../Actor/inventory/EquipmentListX08Packet.cs | 2 +- .../Actor/inventory/EquipmentListX16Packet.cs | 2 +- .../Actor/inventory/EquipmentListX32Packet.cs | 2 +- .../Actor/inventory/EquipmentListX64Packet.cs | 2 +- .../inventory/InventoryBeginChangePacket.cs | 4 +-- .../Actor/inventory/InventoryItemEndPacket.cs | 2 +- .../Actor/inventory/InventoryItemPacket.cs | 2 +- .../Actor/inventory/InventoryListX01Packet.cs | 2 +- .../Actor/inventory/InventoryListX08Packet.cs | 2 +- .../Actor/inventory/InventoryListX16Packet.cs | 2 +- .../Actor/inventory/InventoryListX32Packet.cs | 2 +- .../Actor/inventory/InventoryListX64Packet.cs | 2 +- .../inventory/InventoryRemoveX01Packet.cs | 2 +- .../inventory/InventoryRemoveX08Packet.cs | 2 +- .../inventory/InventoryRemoveX16Packet.cs | 2 +- .../inventory/InventoryRemoveX32Packet.cs | 2 +- .../inventory/InventoryRemoveX64Packet.cs | 2 +- .../inventory/InventorySetBeginPacket.cs | 2 +- .../Actor/inventory/InventorySetEndPacket.cs | 4 +-- .../packets/send/LogoutPacket.cs | 2 +- .../packets/send/PongPacket.cs | 2 +- .../packets/send/QuitPacket.cs | 4 +-- .../packets/send/SetMapPacket.cs | 2 +- .../packets/send/_0x02Packet.cs | 2 +- .../packets/send/_0x10Packet.cs | 2 +- .../packets/send/_0xE2Packet.cs | 2 +- .../send/groups/ContentMembersX08Packet.cs | 2 +- .../send/groups/ContentMembersX16Packet.cs | 2 +- .../send/groups/ContentMembersX32Packet.cs | 2 +- .../send/groups/ContentMembersX64Packet.cs | 2 +- .../packets/send/groups/CreateNamedGroup.cs | 2 +- .../send/groups/CreateNamedGroupMultiple.cs | 2 +- .../packets/send/groups/DeleteGroupPacket.cs | 2 +- .../packets/send/groups/GroupHeaderPacket.cs | 2 +- .../send/groups/GroupMembersBeginPacket.cs | 2 +- .../send/groups/GroupMembersEndPacket.cs | 2 +- .../send/groups/GroupMembersX08Packet.cs | 2 +- .../send/groups/GroupMembersX16Packet.cs | 2 +- .../send/groups/GroupMembersX32Packet.cs | 2 +- .../send/groups/GroupMembersX64Packet.cs | 2 +- .../send/groups/SynchGroupWorkValuesPacket.cs | 2 +- .../CurrentRecruitmentDetailsPacket.cs | 2 +- .../send/supportdesk/EndGMTicketPacket.cs | 2 +- .../send/supportdesk/FaqBodyResponsePacket.cs | 2 +- .../send/supportdesk/FaqListResponsePacket.cs | 2 +- .../send/supportdesk/GMTicketPacket.cs | 2 +- .../supportdesk/GMTicketSentResponsePacket.cs | 2 +- .../supportdesk/IssueListResponsePacket.cs | 2 +- .../send/supportdesk/StartGMTicketPacket.cs | 2 +- 89 files changed, 211 insertions(+), 188 deletions(-) diff --git a/FFXIVClassic Common Class Lib/SubPacket.cs b/FFXIVClassic Common Class Lib/SubPacket.cs index 08faadbd..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, 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(); diff --git a/FFXIVClassic Map Server/CommandProcessor.cs b/FFXIVClassic Map Server/CommandProcessor.cs index ffbe651f..283c78c5 100644 --- a/FFXIVClassic Map Server/CommandProcessor.cs +++ b/FFXIVClassic Map Server/CommandProcessor.cs @@ -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/PacketProcessor.cs b/FFXIVClassic Map Server/PacketProcessor.cs index 568c43c6..f86fa81b 100644 --- a/FFXIVClassic Map Server/PacketProcessor.cs +++ b/FFXIVClassic Map Server/PacketProcessor.cs @@ -115,7 +115,7 @@ 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) @@ -150,7 +150,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: diff --git a/FFXIVClassic Map Server/WorldManager.cs b/FFXIVClassic Map Server/WorldManager.cs index 1d072744..ce915e01 100644 --- a/FFXIVClassic Map Server/WorldManager.cs +++ b/FFXIVClassic Map Server/WorldManager.cs @@ -612,8 +612,8 @@ namespace FFXIVClassic_Map_Server } //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(); @@ -661,8 +661,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(); @@ -705,8 +705,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(); @@ -740,8 +740,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); } diff --git a/FFXIVClassic Map Server/actors/Actor.cs b/FFXIVClassic Map Server/actors/Actor.cs index 5a1323de..3197e6c5 100644 --- a/FFXIVClassic Map Server/actors/Actor.cs +++ b/FFXIVClassic Map Server/actors/Actor.cs @@ -240,6 +240,25 @@ namespace FFXIVClassic_Map_Server.Actors return ActorInstantiatePacket.BuildPacket(actorId, actorName, className, classParams); } + public virtual SubPacket CreateScriptBindPacket() + { + return ActorInstantiatePacket.BuildPacket(actorId, actorName, className, classParams); + } + + public virtual BasePacket GetSpawnPackets(Player player, ushort spawnType) + { + List subpackets = new List(); + subpackets.Add(CreateAddActorPacket(8)); + subpackets.AddRange(GetEventConditionPackets()); + subpackets.Add(CreateSpeedPacket()); + subpackets.Add(CreateSpawnPositonPacket( spawnType)); + subpackets.Add(CreateNamePacket()); + subpackets.Add(CreateStatePacket()); + subpackets.Add(CreateIsZoneingPacket()); + subpackets.Add(CreateScriptBindPacket(player)); + return BasePacket.CreatePacket(subpackets, true, false); + } + public virtual BasePacket GetSpawnPackets() { return GetSpawnPackets(0x1); @@ -251,7 +270,7 @@ namespace FFXIVClassic_Map_Server.Actors subpackets.Add(CreateAddActorPacket(8)); subpackets.AddRange(GetEventConditionPackets()); subpackets.Add(CreateSpeedPacket()); - subpackets.Add(CreateSpawnPositonPacket( spawnType)); + subpackets.Add(CreateSpawnPositonPacket(spawnType)); subpackets.Add(CreateNamePacket()); subpackets.Add(CreateStatePacket()); subpackets.Add(CreateIsZoneingPacket()); diff --git a/FFXIVClassic Map Server/actors/area/Area.cs b/FFXIVClassic Map Server/actors/area/Area.cs index c56414b1..b491d905 100644 --- a/FFXIVClassic Map Server/actors/area/Area.cs +++ b/FFXIVClassic Map Server/actors/area/Area.cs @@ -84,23 +84,23 @@ 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 BasePacket 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)); + subpackets.Add(CreateAddActorPacket(0)); + subpackets.Add(CreateSpeedPacket()); + subpackets.Add(CreateSpawnPositonPacket(0x1)); + subpackets.Add(CreateNamePacket()); + subpackets.Add(CreateStatePacket()); + subpackets.Add(CreateIsZoneingPacket()); + subpackets.Add(CreateScriptBindPacket()); return BasePacket.CreatePacket(subpackets, true, false); } 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 0f26abfb..409bdbb2 100644 --- a/FFXIVClassic Map Server/actors/area/Zone.cs +++ b/FFXIVClassic Map Server/actors/area/Zone.cs @@ -51,13 +51,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 56db6ab0..6d56209e 100644 --- a/FFXIVClassic Map Server/actors/chara/Character.cs +++ b/FFXIVClassic Map Server/actors/chara/Character.cs @@ -98,7 +98,7 @@ namespace FFXIVClassic_Map_Server.Actors currentContentGroup = group; - ActorPropertyPacketUtil propPacketUtil = new ActorPropertyPacketUtil("charaWork/currentContentGroup", this, actorId); + ActorPropertyPacketUtil propPacketUtil = new ActorPropertyPacketUtil("charaWork/currentContentGroup", this); propPacketUtil.AddProperty("charaWork.currentContentGroup"); zone.BroadcastPacketsAroundActor(this, propPacketUtil.Done()); diff --git a/FFXIVClassic Map Server/actors/chara/npc/Npc.cs b/FFXIVClassic Map Server/actors/chara/npc/Npc.cs index 4dbcca5b..a2726493 100644 --- a/FFXIVClassic Map Server/actors/chara/npc/Npc.cs +++ b/FFXIVClassic Map Server/actors/chara/npc/Npc.cs @@ -178,7 +178,7 @@ namespace FFXIVClassic_Map_Server.Actors return ActorInstantiatePacket.BuildPacket(actorId, actorName, className, lParams); } - public override BasePacket GetSpawnPackets(ushort spawnType) + public override BasePacket GetSpawnPackets(Player player, ushort spawnType) { List subpackets = new List(); subpackets.Add(CreateAddActorPacket()); @@ -197,7 +197,7 @@ namespace FFXIVClassic_Map_Server.Actors subpackets.Add(CreateInitStatusPacket()); subpackets.Add(CreateSetActorIconPacket()); subpackets.Add(CreateIsZoneingPacket()); - subpackets.Add(CreateScriptBindPacket()); + subpackets.Add(CreateScriptBindPacket(player)); return BasePacket.CreatePacket(subpackets, true, false); } diff --git a/FFXIVClassic Map Server/actors/chara/player/Player.cs b/FFXIVClassic Map Server/actors/chara/player/Player.cs index 2b960251..8e6a09bf 100644 --- a/FFXIVClassic Map Server/actors/chara/player/Player.cs +++ b/FFXIVClassic Map Server/actors/chara/player/Player.cs @@ -274,10 +274,10 @@ namespace FFXIVClassic_Map_Server.Actors * Timer Array - 20 Number */ - public override SubPacket CreateScriptBindPacket(Player player) + public override SubPacket CreateScriptBindPacket(Player requestPlayer) { List lParams; - if (IsMyPlayer(player.actorId)) + if (IsMyPlayer(requestPlayer.actorId)) { if (loginInitDirector != null) lParams = LuaUtils.CreateLuaParamList("/Chara/Player/Player_work", false, false, true, loginInitDirector, true, 0, false, timers, true); @@ -292,11 +292,11 @@ namespace FFXIVClassic_Map_Server.Actors return ActorInstantiatePacket.BuildPacket(actorId, actorName, className, lParams); } - public override BasePacket GetSpawnPackets(Player player, ushort spawnType) + public override BasePacket GetSpawnPackets(Player requestPlayer, ushort spawnType) { List subpackets = new List(); - subpackets.Add(CreateAddActorPacket( 8)); - if (IsMyPlayer(player.actorId)) + subpackets.Add(CreateAddActorPacket(8)); + if (IsMyPlayer(requestPlayer.actorId)) subpackets.AddRange(Create0x132Packets()); subpackets.Add(CreateSpeedPacket()); subpackets.Add(CreateSpawnPositonPacket(spawnType)); @@ -308,12 +308,12 @@ namespace FFXIVClassic_Map_Server.Actors subpackets.Add(CreateInitStatusPacket()); subpackets.Add(CreateSetActorIconPacket()); subpackets.Add(CreateIsZoneingPacket()); - subpackets.AddRange(CreatePlayerRelatedPackets(player)); - subpackets.Add(CreateScriptBindPacket(player)); + subpackets.AddRange(CreatePlayerRelatedPackets(requestPlayer.actorId)); + subpackets.Add(CreateScriptBindPacket(requestPlayer)); return BasePacket.CreatePacket(subpackets, true, false); } - public List CreatePlayerRelatedPackets(Player player) + public List CreatePlayerRelatedPackets(uint requestingPlayerActorId) { List subpackets = new List(); @@ -326,7 +326,7 @@ namespace FFXIVClassic_Map_Server.Actors if (currentJob != 0) subpackets.Add(SetCurrentJobPacket.BuildPacket(actorId, currentJob)); - if (IsMyPlayer(player.actorId)) + if (IsMyPlayer(requestingPlayerActorId)) { subpackets.Add(SetSpecialEventWorkPacket.BuildPacket(actorId)); @@ -512,7 +512,7 @@ namespace FFXIVClassic_Map_Server.Actors QueuePacket(SetMapPacket.BuildPacket(actorId, zone.regionId, zone.actorId)); - QueuePacket(GetSpawnPackets(player, spawnType)); + QueuePacket(GetSpawnPackets(this, spawnType)); //GetSpawnPackets(actorId, spawnType).DebugPrintPacket(); #region Inventory & Equipment @@ -529,9 +529,9 @@ namespace FFXIVClassic_Map_Server.Actors playerSession.QueuePacket(GetInitPackets()); - BasePacket areaMasterSpawn = zone.GetSpawnPackets(actorId); - BasePacket debugSpawn = world.GetDebugActor().GetSpawnPackets(actorId); - BasePacket worldMasterSpawn = world.GetActor().GetSpawnPackets(actorId); + BasePacket areaMasterSpawn = zone.GetSpawnPackets(); + BasePacket debugSpawn = world.GetDebugActor().GetSpawnPackets(); + BasePacket worldMasterSpawn = world.GetActor().GetSpawnPackets(); playerSession.QueuePacket(areaMasterSpawn); playerSession.QueuePacket(debugSpawn); @@ -552,16 +552,16 @@ namespace FFXIVClassic_Map_Server.Actors if (zone.GetWeatherDirector() != null) { - BasePacket weatherDirectorSpawn = zone.GetWeatherDirector().GetSpawnPackets(actorId); + BasePacket weatherDirectorSpawn = zone.GetWeatherDirector().GetSpawnPackets(); playerSession.QueuePacket(weatherDirectorSpawn); } foreach (Director director in ownedDirectors) { - director.GetSpawnPackets(actorId).DebugPrintPacket(); - QueuePacket(director.GetSpawnPackets(actorId)); - QueuePacket(director.GetInitPackets(actorId)); + director.GetSpawnPackets().DebugPrintPacket(); + QueuePacket(director.GetSpawnPackets()); + QueuePacket(director.GetInitPackets()); } if (currentContentGroup != null) @@ -1451,7 +1451,7 @@ namespace FFXIVClassic_Map_Server.Actors { director.GetSpawnPackets().DebugPrintPacket(); QueuePacket(director.GetSpawnPackets()); - QueuePacket(director.GetInitPackets(actorId)); + QueuePacket(director.GetInitPackets()); } public void RemoveDirector(Director director) diff --git a/FFXIVClassic Map Server/actors/debug/Debug.cs b/FFXIVClassic Map Server/actors/debug/Debug.cs index ddea59d9..1b1afcbd 100644 --- a/FFXIVClassic Map Server/actors/debug/Debug.cs +++ b/FFXIVClassic Map Server/actors/debug/Debug.cs @@ -18,23 +18,23 @@ 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 BasePacket 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)); + subpackets.Add(CreateAddActorPacket(0)); + subpackets.Add(CreateSpeedPacket()); + subpackets.Add(CreateSpawnPositonPacket(0x1)); + subpackets.Add(CreateNamePacket()); + subpackets.Add(CreateStatePacket()); + subpackets.Add(CreateIsZoneingPacket()); + subpackets.Add(CreateScriptBindPacket()); return BasePacket.CreatePacket(subpackets, true, false); } diff --git a/FFXIVClassic Map Server/actors/director/Director.cs b/FFXIVClassic Map Server/actors/director/Director.cs index 5dfb492e..7c58e820 100644 --- a/FFXIVClassic Map Server/actors/director/Director.cs +++ b/FFXIVClassic Map Server/actors/director/Director.cs @@ -40,7 +40,7 @@ namespace FFXIVClassic_Map_Server.actors.director 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)); @@ -54,28 +54,28 @@ 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 BasePacket 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)); + 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 BasePacket.CreatePacket(subpackets, true, false); } - public override BasePacket GetInitPackets(uint playerActorId) + public override BasePacket GetInitPackets() { SetActorPropetyPacket initProperties = new SetActorPropetyPacket("/_init"); initProperties.AddTarget(); - return BasePacket.CreatePacket(initProperties.BuildPacket(playerActorId, actorId), true, false); + return BasePacket.CreatePacket(initProperties.BuildPacket(actorId), true, false); } public void OnTalkEvent(Player player, Npc npc) @@ -108,9 +108,9 @@ namespace FFXIVClassic_Map_Server.actors.director { foreach (Player p in GetPlayerMembers()) { - GetSpawnPackets(p.actorId).DebugPrintPacket(); - p.QueuePacket(GetSpawnPackets(p.actorId)); - p.QueuePacket(GetInitPackets(p.actorId)); + GetSpawnPackets().DebugPrintPacket(); + p.QueuePacket(GetSpawnPackets()); + p.QueuePacket(GetInitPackets()); } } diff --git a/FFXIVClassic Map Server/actors/director/GuildleveDirector.cs b/FFXIVClassic Map Server/actors/director/GuildleveDirector.cs index 8bf90ce2..48d55354 100644 --- a/FFXIVClassic Map Server/actors/director/GuildleveDirector.cs +++ b/FFXIVClassic Map Server/actors/director/GuildleveDirector.cs @@ -79,7 +79,7 @@ namespace FFXIVClassic_Map_Server.actors.director } guildleveWork.startTime = Utils.UnixTimeStampUTC(); - ActorPropertyPacketUtil propertyBuilder = new ActorPropertyPacketUtil("guildleveWork/start", this, actorId); + ActorPropertyPacketUtil propertyBuilder = new ActorPropertyPacketUtil("guildleveWork/start", this); propertyBuilder.AddProperty("guildleveWork.startTime"); SendPacketsToPlayers(propertyBuilder.Done()); } @@ -114,7 +114,7 @@ namespace FFXIVClassic_Map_Server.actors.director guildleveWork.startTime = 0; guildleveWork.signal = -1; - ActorPropertyPacketUtil propertyBuilder = new ActorPropertyPacketUtil("guildleveWork/signal", this, actorId); + ActorPropertyPacketUtil propertyBuilder = new ActorPropertyPacketUtil("guildleveWork/signal", this); propertyBuilder.AddProperty("guildleveWork.signal"); propertyBuilder.NewTarget("guildleveWork/start"); propertyBuilder.AddProperty("guildleveWork.startTime"); @@ -153,7 +153,7 @@ namespace FFXIVClassic_Map_Server.actors.director public void SyncAllInfo() { - ActorPropertyPacketUtil propertyBuilder = new ActorPropertyPacketUtil("guildleveWork/infoVariable", this, actorId); + ActorPropertyPacketUtil propertyBuilder = new ActorPropertyPacketUtil("guildleveWork/infoVariable", this); if (guildleveWork.aimNum[0] != 0) propertyBuilder.AddProperty("guildleveWork.aimNum[0]"); @@ -188,7 +188,7 @@ namespace FFXIVClassic_Map_Server.actors.director public void UpdateAimNumNow(int index, sbyte value) { guildleveWork.aimNumNow[index] = value; - ActorPropertyPacketUtil propertyBuilder = new ActorPropertyPacketUtil("guildleveWork/infoVariable", this, actorId); + ActorPropertyPacketUtil propertyBuilder = new ActorPropertyPacketUtil("guildleveWork/infoVariable", this); propertyBuilder.AddProperty(String.Format("guildleveWork.aimNumNow[{0}]", index)); SendPacketsToPlayers(propertyBuilder.Done()); } @@ -196,7 +196,7 @@ namespace FFXIVClassic_Map_Server.actors.director public void UpdateUiState(int index, sbyte value) { guildleveWork.uiState[index] = value; - ActorPropertyPacketUtil propertyBuilder = new ActorPropertyPacketUtil("guildleveWork/infoVariable", this, actorId); + ActorPropertyPacketUtil propertyBuilder = new ActorPropertyPacketUtil("guildleveWork/infoVariable", this); propertyBuilder.AddProperty(String.Format("guildleveWork.uiState[{0}]", index)); SendPacketsToPlayers(propertyBuilder.Done()); } @@ -206,7 +206,7 @@ namespace FFXIVClassic_Map_Server.actors.director guildleveWork.markerX[markerIndex] = x; guildleveWork.markerY[markerIndex] = y; guildleveWork.markerZ[markerIndex] = z; - ActorPropertyPacketUtil propertyBuilder = new ActorPropertyPacketUtil("guildleveWork/marker", this, actorId); + 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)); diff --git a/FFXIVClassic Map Server/actors/group/ContentGroup.cs b/FFXIVClassic Map Server/actors/group/ContentGroup.cs index 11b6a0c7..0af1e0d9 100644 --- a/FFXIVClassic Map Server/actors/group/ContentGroup.cs +++ b/FFXIVClassic Map Server/actors/group/ContentGroup.cs @@ -84,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) @@ -92,26 +92,26 @@ 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)); } 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..5da97052 100644 --- a/FFXIVClassic Map Server/actors/world/WorldMaster.cs +++ b/FFXIVClassic Map Server/actors/world/WorldMaster.cs @@ -17,23 +17,23 @@ 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 BasePacket 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)); + subpackets.Add(CreateAddActorPacket(0)); + subpackets.Add(CreateSpeedPacket()); + subpackets.Add(CreateSpawnPositonPacket(0x1)); + subpackets.Add(CreateNamePacket()); + subpackets.Add(CreateStatePacket()); + subpackets.Add(CreateIsZoneingPacket()); + subpackets.Add(CreateScriptBindPacket()); return BasePacket.CreatePacket(subpackets, true, false); } } diff --git a/FFXIVClassic Map Server/dataobjects/Session.cs b/FFXIVClassic Map Server/dataobjects/Session.cs index 5344b928..d18e3363 100644 --- a/FFXIVClassic Map Server/dataobjects/Session.cs +++ b/FFXIVClassic Map Server/dataobjects/Session.cs @@ -135,13 +135,17 @@ namespace FFXIVClassic_Map_Server.dataobjects if (actor is Character && ((Character)actor).isStatic) continue; - GetActor().QueuePacket(actor.CreatePositionUpdatePacket(playerActor.actorId)); + GetActor().QueuePacket(actor.CreatePositionUpdatePacket()); } else { - GetActor().QueuePacket(actor.GetSpawnPackets(playerActor.actorId, 1)); - GetActor().QueuePacket(actor.GetInitPackets(playerActor.actorId)); - GetActor().QueuePacket(actor.GetSetEventStatusPackets(playerActor.actorId)); + if (actor is Player) + GetActor().QueuePacket(actor.GetSpawnPackets(playerActor, 1)); + else + GetActor().QueuePacket(actor.GetSpawnPackets(1)); + + GetActor().QueuePacket(actor.GetInitPackets()); + GetActor().QueuePacket(actor.GetSetEventStatusPackets()); actorInstanceList.Add(actor); if (actor is Npc) 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/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 17efb745..28f5ef29 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/battle/BattleActionX01Packet.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/battle/BattleActionX01Packet.cs @@ -41,7 +41,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/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/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..2c89b8bb 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryListX01Packet.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryListX01Packet.cs @@ -27,7 +27,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..cdeccd4f 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryListX08Packet.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryListX08Packet.cs @@ -42,7 +42,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..008b0d6d 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryListX16Packet.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryListX16Packet.cs @@ -38,7 +38,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/InventoryListX32Packet.cs b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryListX32Packet.cs index b9dd9dd3..1478d157 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryListX32Packet.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryListX32Packet.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/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..dd0d9dc2 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryRemoveX01Packet.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryRemoveX01Packet.cs @@ -22,7 +22,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/InventoryRemoveX08Packet.cs b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryRemoveX08Packet.cs index 2dd988b2..d711555b 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryRemoveX08Packet.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryRemoveX08Packet.cs @@ -37,7 +37,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/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..c1899d74 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventorySetBeginPacket.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventorySetBeginPacket.cs @@ -29,7 +29,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..2eaca4fe 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventorySetEndPacket.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventorySetEndPacket.cs @@ -10,12 +10,12 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.inventory 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]); + return new SubPacket(OPCODE, sourceActorId, new byte[8]); } } 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/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/_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/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/recruitment/CurrentRecruitmentDetailsPacket.cs b/FFXIVClassic Map Server/packets/send/recruitment/CurrentRecruitmentDetailsPacket.cs index f777af29..28b68825 100644 --- a/FFXIVClassic Map Server/packets/send/recruitment/CurrentRecruitmentDetailsPacket.cs +++ b/FFXIVClassic Map Server/packets/send/recruitment/CurrentRecruitmentDetailsPacket.cs @@ -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); 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); } } } From 1339975ade003a9cd3530ef1544d4dec33b7d275 Mon Sep 17 00:00:00 2001 From: Filip Maj Date: Tue, 27 Jun 2017 17:07:29 -0400 Subject: [PATCH 25/38] Cleaned up inventory packets. --- FFXIVClassic Map Server/FFXIVClassic Map Server.csproj | 1 - .../actors/chara/player/Equipment.cs | 10 +++++----- .../send/Actor/inventory/InventoryListX01Packet.cs | 9 ++------- .../send/Actor/inventory/InventoryListX08Packet.cs | 9 ++------- .../send/Actor/inventory/InventoryListX16Packet.cs | 8 ++------ .../send/Actor/inventory/InventoryListX32Packet.cs | 2 +- .../send/Actor/inventory/InventoryRemoveX01Packet.cs | 2 -- .../send/Actor/inventory/InventoryRemoveX08Packet.cs | 2 -- .../send/Actor/inventory/InventorySetBeginPacket.cs | 7 +------ .../send/Actor/inventory/InventorySetEndPacket.cs | 8 +------- 10 files changed, 14 insertions(+), 44 deletions(-) diff --git a/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj b/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj index b9bbe097..9b4fa3fd 100644 --- a/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj +++ b/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj @@ -159,7 +159,6 @@ - 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/packets/send/Actor/inventory/InventoryListX01Packet.cs b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryListX01Packet.cs index 2c89b8bb..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]; diff --git a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryListX08Packet.cs b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryListX08Packet.cs index cdeccd4f..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]; diff --git a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryListX16Packet.cs b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryListX16Packet.cs index 008b0d6d..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]; @@ -40,5 +35,6 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.inventory 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 1478d157..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]; diff --git a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryRemoveX01Packet.cs b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryRemoveX01Packet.cs index dd0d9dc2..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,7 +20,6 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.inventory binWriter.Write((UInt16)slot); } } - 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 d711555b..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,7 +35,6 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.inventory binWriter.Write((Byte)max); } } - 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 c1899d74..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]; diff --git a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventorySetEndPacket.cs b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventorySetEndPacket.cs index 2eaca4fe..5f899491 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/inventory/InventorySetEndPacket.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/inventory/InventorySetEndPacket.cs @@ -4,7 +4,6 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.inventory { class InventorySetEndPacket { - public const ushort OPCODE = 0x0147; public const uint PACKET_SIZE = 0x28; @@ -12,11 +11,6 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.inventory { return new SubPacket(OPCODE, playerActorId, new byte[8]); } - - public static SubPacket BuildPacket(uint sourceActorId, uint targetActorID) - { - return new SubPacket(OPCODE, sourceActorId, new byte[8]); - } - + } } From 9353f77db0d5c0cb7ac75337c9aab807e7acbe23 Mon Sep 17 00:00:00 2001 From: Filip Maj Date: Tue, 27 Jun 2017 17:12:34 -0400 Subject: [PATCH 26/38] Removed duped battle packet. --- FFXIVClassic Map Server/actors/Actor.cs | 4 ++- .../packets/send/Actor/BattleAction1Packet.cs | 27 ------------------- 2 files changed, 3 insertions(+), 28 deletions(-) delete mode 100644 FFXIVClassic Map Server/packets/send/Actor/BattleAction1Packet.cs diff --git a/FFXIVClassic Map Server/actors/Actor.cs b/FFXIVClassic Map Server/actors/Actor.cs index 3197e6c5..6361199d 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 { @@ -321,7 +322,8 @@ namespace FFXIVClassic_Map_Server.Actors { currentMainState = newState; SubPacket ChangeStatePacket = SetActorStatePacket.BuildPacket(actorId, newState, currentSubState); - SubPacket battleActionPacket = BattleAction1Packet.BuildPacket(actorId); + //TODO: Fill this out! + SubPacket battleActionPacket = BattleActionX01Packet.BuildPacket(actorId, actorId, actorId, 0, 0, 0, 0, 0, 0); zone.BroadcastPacketAroundActor(this, ChangeStatePacket); zone.BroadcastPacketAroundActor(this, battleActionPacket); } 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 38fe2344..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 sourceActorId) - { - byte[] data = new byte[PACKET_SIZE - 0x20]; - - using (MemoryStream mem = new MemoryStream(data)) - { - using (BinaryWriter binWriter = new BinaryWriter(mem)) - { - } - } - - return new SubPacket(OPCODE, sourceActorId, data); - } - } -} From 516564a89698dba991e12a88ed4475682600f9d1 Mon Sep 17 00:00:00 2001 From: Filip Maj Date: Tue, 27 Jun 2017 17:31:17 -0400 Subject: [PATCH 27/38] Refactored world server. --- FFXIVClassic Map Server/actors/Actor.cs | 5 ++- .../Actor/battle/BattleActionX01Packet.cs | 2 -- .../DataObjects/ClientConnection.cs | 5 ++- .../DataObjects/Group/Group.cs | 16 +++++----- .../DataObjects/Group/Linkshell.cs | 8 ++--- .../DataObjects/Group/Party.cs | 6 ++-- .../DataObjects/Group/Relation.cs | 4 +-- .../DataObjects/Group/RetainerGroup.cs | 4 +-- .../DataObjects/Session.cs | 16 +++++----- FFXIVClassic World Server/PacketProcessor.cs | 8 ++--- .../Send/Subpackets/GameMessagePacket.cs | 32 +++++++++---------- .../Subpackets/Groups/CreateNamedGroup.cs | 2 +- .../Groups/CreateNamedGroupMultiple.cs | 2 +- .../Subpackets/Groups/DeleteGroupPacket.cs | 2 +- .../Subpackets/Groups/GroupHeaderPacket.cs | 2 +- .../Groups/GroupMembersBeginPacket.cs | 2 +- .../Groups/GroupMembersEndPacket.cs | 2 +- .../Groups/GroupMembersX08Packet.cs | 2 +- .../Groups/GroupMembersX16Packet.cs | 2 +- .../Groups/GroupMembersX32Packet.cs | 2 +- .../Groups/GroupMembersX64Packet.cs | 2 +- .../Groups/SetActiveLinkshellPacket.cs | 2 +- .../Groups/SynchGroupWorkValuesPacket.cs | 4 +-- .../Send/Subpackets/SendMessagePacket.cs | 2 +- .../Packets/Send/_0x2Packet.cs | 2 +- .../Packets/Send/_0x7Packet.cs | 2 +- .../Packets/Send/_0x8PingPacket.cs | 2 +- .../Packets/WorldPackets/Send/ErrorPacket.cs | 2 +- .../Send/Group/PartySyncPacket.cs | 2 +- .../WorldPackets/Send/SessionBeginPacket.cs | 2 +- .../WorldPackets/Send/SessionEndPacket.cs | 4 +-- FFXIVClassic World Server/Server.cs | 2 +- FFXIVClassic World Server/WorldMaster.cs | 14 ++++---- 33 files changed, 83 insertions(+), 83 deletions(-) diff --git a/FFXIVClassic Map Server/actors/Actor.cs b/FFXIVClassic Map Server/actors/Actor.cs index 6361199d..a7d87166 100644 --- a/FFXIVClassic Map Server/actors/Actor.cs +++ b/FFXIVClassic Map Server/actors/Actor.cs @@ -321,9 +321,8 @@ namespace FFXIVClassic_Map_Server.Actors public void ChangeState(ushort newState) { currentMainState = newState; - SubPacket ChangeStatePacket = SetActorStatePacket.BuildPacket(actorId, newState, currentSubState); - //TODO: Fill this out! - SubPacket battleActionPacket = BattleActionX01Packet.BuildPacket(actorId, actorId, actorId, 0, 0, 0, 0, 0, 0); + 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); } diff --git a/FFXIVClassic Map Server/packets/send/Actor/battle/BattleActionX01Packet.cs b/FFXIVClassic Map Server/packets/send/Actor/battle/BattleActionX01Packet.cs index 28f5ef29..c172791e 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 { class BattleActionX01Packet 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/PacketProcessor.cs b/FFXIVClassic World Server/PacketProcessor.cs index 3049cdf5..abf41fd6 100644 --- a/FFXIVClassic World Server/PacketProcessor.cs +++ b/FFXIVClassic World Server/PacketProcessor.cs @@ -61,8 +61,8 @@ namespace FFXIVClassic_World_Server else if (packet.header.connectionType == BasePacket.TYPE_CHAT) mServer.AddSession(client, Session.Channel.CHAT, hello.sessionId); - client.QueuePacket(_0x7Packet.BuildPacket(0x0E016EE5), true, false); - client.QueuePacket(_0x2Packet.BuildPacket(hello.sessionId), true, false); + client.QueuePacket(_0x7Packet.BuildPacket(0x0E016EE5)); + client.QueuePacket(_0x2Packet.BuildPacket(hello.sessionId)); } //Ping from World Server else if (subpacket.header.type == 0x07) @@ -162,7 +162,7 @@ namespace FFXIVClassic_World_Server Session thatSession = mServer.GetSession(playerParty.members[i]); if (thatSession != null && !session.Equals(thatSession)) { - thatSession.clientConnection.QueuePacket(SendMessagePacket.BuildPacket(session.sessionId, thatSession.sessionId, SendMessagePacket.MESSAGE_TYPE_PARTY, mServer.GetNameForId(session.sessionId), partyChatMessagePacket.message), true, false); + thatSession.clientConnection.QueuePacket(SendMessagePacket.BuildPacket(session.sessionId, thatSession.sessionId, SendMessagePacket.MESSAGE_TYPE_PARTY, mServer.GetNameForId(session.sessionId), partyChatMessagePacket.message)); } } break; @@ -173,7 +173,7 @@ namespace FFXIVClassic_World_Server case 0x133: GroupCreatedPacket groupCreatedPacket = new GroupCreatedPacket(subpacket.data); if (!mServer.GetWorldManager().SendGroupInit(session, groupCreatedPacket.groupId)) - session.clientConnection.QueuePacket(subpacket, true, false); + session.clientConnection.QueuePacket(subpacket); break; } } diff --git a/FFXIVClassic World Server/Packets/Send/Subpackets/GameMessagePacket.cs b/FFXIVClassic World Server/Packets/Send/Subpackets/GameMessagePacket.cs index 9f27c67d..6a049e5a 100644 --- a/FFXIVClassic World Server/Packets/Send/Subpackets/GameMessagePacket.cs +++ b/FFXIVClassic World Server/Packets/Send/Subpackets/GameMessagePacket.cs @@ -58,7 +58,7 @@ namespace FFXIVClassic_World_Server.Packets.Send.Subpackets 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 sourceId, uint actorId, uint textOwnerActorId, ushort textId, byte log) { byte[] data = new byte[SIZE_GAMEMESSAGE_WITH_ACTOR1 - 0x20]; @@ -73,10 +73,10 @@ namespace FFXIVClassic_World_Server.Packets.Send.Subpackets } } - return new SubPacket(OPCODE_GAMEMESSAGE_WITH_ACTOR1, sourceId, targetId, data); + return new SubPacket(OPCODE_GAMEMESSAGE_WITH_ACTOR1, sourceId, data); } - public static SubPacket BuildPacket(uint sourceId, uint targetId, uint actorId, uint textOwnerActorId, ushort textId, byte log, List lParams) + public static SubPacket BuildPacket(uint sourceId, uint actorId, uint textOwnerActorId, ushort textId, byte log, List lParams) { int lParamsSize = findSizeOfParams(lParams); byte[] data; @@ -121,10 +121,10 @@ namespace FFXIVClassic_World_Server.Packets.Send.Subpackets } } - return new SubPacket(opcode, sourceId, targetId, data); + return new SubPacket(opcode, sourceId, data); } - public static SubPacket BuildPacket(uint sourceId, uint targetId, uint textOwnerActorId, ushort textId, string sender, byte log) + public static SubPacket BuildPacket(uint sourceId, uint textOwnerActorId, ushort textId, string sender, byte log) { byte[] data = new byte[SIZE_GAMEMESSAGE_WITH_CUSTOM_SENDER1 - 0x20]; @@ -139,10 +139,10 @@ namespace FFXIVClassic_World_Server.Packets.Send.Subpackets } } - return new SubPacket(OPCODE_GAMEMESSAGE_WITH_CUSTOM_SENDER1, sourceId, targetId, data); + return new SubPacket(OPCODE_GAMEMESSAGE_WITH_CUSTOM_SENDER1, sourceId, data); } - public static SubPacket BuildPacket(uint sourceId, uint targetId, uint textOwnerActorId, ushort textId, string sender, byte log, List lParams) + public static SubPacket BuildPacket(uint sourceId, uint textOwnerActorId, ushort textId, string sender, byte log, List lParams) { int lParamsSize = findSizeOfParams(lParams); byte[] data; @@ -187,10 +187,10 @@ namespace FFXIVClassic_World_Server.Packets.Send.Subpackets } } - return new SubPacket(opcode, sourceId, targetId, data); + return new SubPacket(opcode, sourceId, data); } - public static SubPacket BuildPacket(uint sourceId, uint targetId, uint textOwnerActorId, ushort textId, uint senderDisplayNameId, byte log) + public static SubPacket BuildPacket(uint sourceId, uint textOwnerActorId, ushort textId, uint senderDisplayNameId, byte log) { byte[] data = new byte[SIZE_GAMEMESSAGE_WITH_DISPID_SENDER1 - 0x20]; @@ -205,10 +205,10 @@ namespace FFXIVClassic_World_Server.Packets.Send.Subpackets } } - return new SubPacket(OPCODE_GAMEMESSAGE_WITH_DISPID_SENDER1, sourceId, targetId, data); + return new SubPacket(OPCODE_GAMEMESSAGE_WITH_DISPID_SENDER1, sourceId, data); } - public static SubPacket BuildPacket(uint sourceId, uint targetId, uint textOwnerActorId, ushort textId, uint senderDisplayNameId, byte log, List lParams) + public static SubPacket BuildPacket(uint sourceId, uint textOwnerActorId, ushort textId, uint senderDisplayNameId, byte log, List lParams) { int lParamsSize = findSizeOfParams(lParams); byte[] data; @@ -253,10 +253,10 @@ namespace FFXIVClassic_World_Server.Packets.Send.Subpackets } } - return new SubPacket(opcode, sourceId, targetId, data); + return new SubPacket(opcode, sourceId, data); } - public static SubPacket BuildPacket(uint sourceId, uint targetId, uint textOwnerActorId, ushort textId, byte log) + public static SubPacket BuildPacket(uint sourceId, uint textOwnerActorId, ushort textId, byte log) { byte[] data = new byte[SIZE_GAMEMESSAGE_WITHOUT_ACTOR1 - 0x20]; @@ -270,10 +270,10 @@ namespace FFXIVClassic_World_Server.Packets.Send.Subpackets } } - return new SubPacket(OPCODE_GAMEMESSAGE_WITHOUT_ACTOR1, sourceId, targetId, data); + return new SubPacket(OPCODE_GAMEMESSAGE_WITHOUT_ACTOR1, sourceId, data); } - public static SubPacket BuildPacket(uint sourceId, uint targetId, uint textOwnerActorId, ushort textId, byte log, List lParams) + public static SubPacket BuildPacket(uint sourceId, uint textOwnerActorId, ushort textId, byte log, List lParams) { int lParamsSize = findSizeOfParams(lParams); byte[] data; @@ -317,7 +317,7 @@ namespace FFXIVClassic_World_Server.Packets.Send.Subpackets } } - return new SubPacket(opcode, sourceId, targetId, data); + return new SubPacket(opcode, sourceId, data); } private static int findSizeOfParams(List lParams) diff --git a/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/CreateNamedGroup.cs b/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/CreateNamedGroup.cs index 0e883163..9081283d 100644 --- a/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/CreateNamedGroup.cs +++ b/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/CreateNamedGroup.cs @@ -35,7 +35,7 @@ namespace FFXIVClassic_World_Server.Packets.Send.Subpackets.Groups } } - return new SubPacket(OPCODE, sessionId, sessionId, data); + return new SubPacket(OPCODE, sessionId, data); } } } diff --git a/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/CreateNamedGroupMultiple.cs b/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/CreateNamedGroupMultiple.cs index c6a5f7e8..98d9ad13 100644 --- a/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/CreateNamedGroupMultiple.cs +++ b/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/CreateNamedGroupMultiple.cs @@ -49,7 +49,7 @@ namespace FFXIVClassic_World_Server.Packets.Send.Subpackets.Groups } } - return new SubPacket(OPCODE, playerActorID, playerActorID, data); + return new SubPacket(OPCODE, playerActorID, data); } } } diff --git a/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/DeleteGroupPacket.cs b/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/DeleteGroupPacket.cs index 1d1f7fe9..d661ae52 100644 --- a/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/DeleteGroupPacket.cs +++ b/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/DeleteGroupPacket.cs @@ -38,7 +38,7 @@ namespace FFXIVClassic_World_Server.Packets.Send.Subpackets.Groups } } - return new SubPacket(OPCODE, sessionId, sessionId, data); + return new SubPacket(OPCODE, sessionId, data); } } } diff --git a/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/GroupHeaderPacket.cs b/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/GroupHeaderPacket.cs index d1d46a3a..c28fe084 100644 --- a/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/GroupHeaderPacket.cs +++ b/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/GroupHeaderPacket.cs @@ -56,7 +56,7 @@ namespace FFXIVClassic_World_Server.Packets.Send.Subpackets.Groups } } - return new SubPacket(OPCODE, playerActorID, playerActorID, data); + return new SubPacket(OPCODE, playerActorID, data); } } } diff --git a/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/GroupMembersBeginPacket.cs b/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/GroupMembersBeginPacket.cs index 5717d77b..46f15905 100644 --- a/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/GroupMembersBeginPacket.cs +++ b/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/GroupMembersBeginPacket.cs @@ -31,7 +31,7 @@ namespace FFXIVClassic_World_Server.Packets.Send.Subpackets.Groups } } - return new SubPacket(OPCODE, playerActorID, playerActorID, data); + return new SubPacket(OPCODE, playerActorID, data); } } } diff --git a/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/GroupMembersEndPacket.cs b/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/GroupMembersEndPacket.cs index f3ed55e8..3d095b8b 100644 --- a/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/GroupMembersEndPacket.cs +++ b/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/GroupMembersEndPacket.cs @@ -31,7 +31,7 @@ namespace FFXIVClassic_World_Server.Packets.Send.Subpackets.Groups } } - return new SubPacket(OPCODE, sessionId, sessionId, data); + return new SubPacket(OPCODE, sessionId, data); } } diff --git a/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/GroupMembersX08Packet.cs b/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/GroupMembersX08Packet.cs index abc6e747..734e843c 100644 --- a/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/GroupMembersX08Packet.cs +++ b/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/GroupMembersX08Packet.cs @@ -48,7 +48,7 @@ namespace FFXIVClassic_World_Server.Packets.Send.Subpackets.Groups } } - return new SubPacket(OPCODE, playerActorID, playerActorID, data); + return new SubPacket(OPCODE, playerActorID, data); } } } diff --git a/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/GroupMembersX16Packet.cs b/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/GroupMembersX16Packet.cs index 6a12581c..f3181570 100644 --- a/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/GroupMembersX16Packet.cs +++ b/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/GroupMembersX16Packet.cs @@ -45,7 +45,7 @@ namespace FFXIVClassic_World_Server.Packets.Send.Subpackets.Groups } } - return new SubPacket(OPCODE, playerActorID, playerActorID, data); + return new SubPacket(OPCODE, playerActorID, data); } } } diff --git a/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/GroupMembersX32Packet.cs b/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/GroupMembersX32Packet.cs index 1453353b..f6669f08 100644 --- a/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/GroupMembersX32Packet.cs +++ b/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/GroupMembersX32Packet.cs @@ -45,7 +45,7 @@ namespace FFXIVClassic_World_Server.Packets.Send.Subpackets.Groups } } - return new SubPacket(OPCODE, playerActorID, playerActorID, data); + return new SubPacket(OPCODE, playerActorID, data); } } } diff --git a/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/GroupMembersX64Packet.cs b/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/GroupMembersX64Packet.cs index 6787c1fa..5a18d0cd 100644 --- a/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/GroupMembersX64Packet.cs +++ b/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/GroupMembersX64Packet.cs @@ -45,7 +45,7 @@ namespace FFXIVClassic_World_Server.Packets.Send.Subpackets.Groups } } - return new SubPacket(OPCODE, playerActorID, playerActorID, data); + return new SubPacket(OPCODE, playerActorID, data); } } } diff --git a/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/SetActiveLinkshellPacket.cs b/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/SetActiveLinkshellPacket.cs index 8c21a21b..d387a029 100644 --- a/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/SetActiveLinkshellPacket.cs +++ b/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/SetActiveLinkshellPacket.cs @@ -36,7 +36,7 @@ namespace FFXIVClassic_World_Server.Packets.Send.Subpackets.Groups } } - return new SubPacket(OPCODE, sessionId, sessionId, data); + return new SubPacket(OPCODE, sessionId, data); } } } diff --git a/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/SynchGroupWorkValuesPacket.cs b/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/SynchGroupWorkValuesPacket.cs index 3ff485d3..57f100cf 100644 --- a/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/SynchGroupWorkValuesPacket.cs +++ b/FFXIVClassic World Server/Packets/Send/Subpackets/Groups/SynchGroupWorkValuesPacket.cs @@ -195,14 +195,14 @@ namespace FFXIVClassic_World_Server.Packets.Send.Subpackets.Groups } - public SubPacket buildPacket(uint playerActorID, uint actorID) + public SubPacket buildPacket(uint playerActorID) { binWriter.Seek(0x8, SeekOrigin.Begin); binWriter.Write((byte)runningByteTotal); closeStreams(); - SubPacket packet = new SubPacket(OPCODE, playerActorID, actorID, data); + SubPacket packet = new SubPacket(OPCODE, playerActorID, data); return packet; } diff --git a/FFXIVClassic World Server/Packets/Send/Subpackets/SendMessagePacket.cs b/FFXIVClassic World Server/Packets/Send/Subpackets/SendMessagePacket.cs index 1830f50e..55127d65 100644 --- a/FFXIVClassic World Server/Packets/Send/Subpackets/SendMessagePacket.cs +++ b/FFXIVClassic World Server/Packets/Send/Subpackets/SendMessagePacket.cs @@ -51,7 +51,7 @@ namespace FFXIVClassic_World_Server.Packets.Send.Subpackets } } - return new SubPacket(OPCODE, playerActorID, targetID, data); + return new SubPacket(OPCODE, playerActorID, data); } } diff --git a/FFXIVClassic World Server/Packets/Send/_0x2Packet.cs b/FFXIVClassic World Server/Packets/Send/_0x2Packet.cs index 7ded2ec9..1fc6ef98 100644 --- a/FFXIVClassic World Server/Packets/Send/_0x2Packet.cs +++ b/FFXIVClassic World Server/Packets/Send/_0x2Packet.cs @@ -41,7 +41,7 @@ namespace FFXIVClassic_World_Server.Packets.Send 0xB8, 0x8D, 0xF0, 0x2B, 0x88, 0xAF, 0x5E, 0x26 */ - return new SubPacket(false, OPCODE, 0, 0, data); + return new SubPacket(false, OPCODE, 0, data); } } } diff --git a/FFXIVClassic World Server/Packets/Send/_0x7Packet.cs b/FFXIVClassic World Server/Packets/Send/_0x7Packet.cs index f0854229..f7d6d452 100644 --- a/FFXIVClassic World Server/Packets/Send/_0x7Packet.cs +++ b/FFXIVClassic World Server/Packets/Send/_0x7Packet.cs @@ -31,7 +31,7 @@ namespace FFXIVClassic_World_Server.Packets.Send } } - return new SubPacket(false, OPCODE, 0, 0, data); + return new SubPacket(false, OPCODE, 0, data); } } } diff --git a/FFXIVClassic World Server/Packets/Send/_0x8PingPacket.cs b/FFXIVClassic World Server/Packets/Send/_0x8PingPacket.cs index 21061c7e..3b18b3b7 100644 --- a/FFXIVClassic World Server/Packets/Send/_0x8PingPacket.cs +++ b/FFXIVClassic World Server/Packets/Send/_0x8PingPacket.cs @@ -27,7 +27,7 @@ namespace FFXIVClassic_World_Server.Packets.Send.Login } } - return new SubPacket(false, OPCODE, 0, 0, data); + return new SubPacket(false, OPCODE, 0, data); } } } diff --git a/FFXIVClassic World Server/Packets/WorldPackets/Send/ErrorPacket.cs b/FFXIVClassic World Server/Packets/WorldPackets/Send/ErrorPacket.cs index 2a7d4c4f..5b8fe43a 100644 --- a/FFXIVClassic World Server/Packets/WorldPackets/Send/ErrorPacket.cs +++ b/FFXIVClassic World Server/Packets/WorldPackets/Send/ErrorPacket.cs @@ -31,7 +31,7 @@ namespace FFXIVClassic_World_Server.Packets.WorldPackets.Send } } - return new SubPacket(true, OPCODE, 0, session.sessionId, data); + return new SubPacket(true, OPCODE, 0, data); } } } diff --git a/FFXIVClassic World Server/Packets/WorldPackets/Send/Group/PartySyncPacket.cs b/FFXIVClassic World Server/Packets/WorldPackets/Send/Group/PartySyncPacket.cs index a142e461..5d60db34 100644 --- a/FFXIVClassic World Server/Packets/WorldPackets/Send/Group/PartySyncPacket.cs +++ b/FFXIVClassic World Server/Packets/WorldPackets/Send/Group/PartySyncPacket.cs @@ -27,7 +27,7 @@ namespace FFXIVClassic_World_Server.Packets.WorldPackets.Send.Group } } - return new SubPacket(true, OPCODE, 0, session.sessionId, data); + return new SubPacket(true, OPCODE, 0, data); } } } diff --git a/FFXIVClassic World Server/Packets/WorldPackets/Send/SessionBeginPacket.cs b/FFXIVClassic World Server/Packets/WorldPackets/Send/SessionBeginPacket.cs index d77a1634..2d462ce2 100644 --- a/FFXIVClassic World Server/Packets/WorldPackets/Send/SessionBeginPacket.cs +++ b/FFXIVClassic World Server/Packets/WorldPackets/Send/SessionBeginPacket.cs @@ -29,7 +29,7 @@ namespace FFXIVClassic_World_Server.Packets.WorldPackets.Send } } - return new SubPacket(true, OPCODE, 0, session.sessionId, data); + return new SubPacket(true, OPCODE, 0, data); } } } diff --git a/FFXIVClassic World Server/Packets/WorldPackets/Send/SessionEndPacket.cs b/FFXIVClassic World Server/Packets/WorldPackets/Send/SessionEndPacket.cs index 868f65bd..ac0b6573 100644 --- a/FFXIVClassic World Server/Packets/WorldPackets/Send/SessionEndPacket.cs +++ b/FFXIVClassic World Server/Packets/WorldPackets/Send/SessionEndPacket.cs @@ -31,7 +31,7 @@ namespace FFXIVClassic_World_Server.Packets.WorldPackets.Send } } - return new SubPacket(true, OPCODE, 0, session.sessionId, data); + return new SubPacket(true, OPCODE, 0, data); } public static SubPacket BuildPacket(Session session, uint destinationZoneId, string destinationPrivateArea, byte spawnType, float spawnX, float spawnY, float spawnZ, float spawnRotation) @@ -57,7 +57,7 @@ namespace FFXIVClassic_World_Server.Packets.WorldPackets.Send } } - return new SubPacket(true, OPCODE, 0, session.sessionId, data); + return new SubPacket(true, OPCODE, 0, data); } } } diff --git a/FFXIVClassic World Server/Server.cs b/FFXIVClassic World Server/Server.cs index 884d2618..ea072af8 100644 --- a/FFXIVClassic World Server/Server.cs +++ b/FFXIVClassic World Server/Server.cs @@ -337,7 +337,7 @@ namespace FFXIVClassic_World_Server else if (mZoneSessionList.ContainsKey(sessionId)) { ClientConnection conn = mZoneSessionList[sessionId].clientConnection; - conn.QueuePacket(subpacket, true, false); + conn.QueuePacket(subpacket); conn.FlushQueuedSendPackets(); } diff --git a/FFXIVClassic World Server/WorldMaster.cs b/FFXIVClassic World Server/WorldMaster.cs index 01cdddab..58948af3 100644 --- a/FFXIVClassic World Server/WorldMaster.cs +++ b/FFXIVClassic World Server/WorldMaster.cs @@ -237,15 +237,15 @@ namespace FFXIVClassic_World_Server } } SubPacket activeLsPacket = SetActiveLinkshellPacket.BuildPacket(session.sessionId, activeGroupIndex); - session.clientConnection.QueuePacket(activeLsPacket, true, false); + session.clientConnection.QueuePacket(activeLsPacket); } private void SendMotD(Session session) { - session.clientConnection.QueuePacket(SendMessagePacket.BuildPacket(session.sessionId, session.sessionId, SendMessagePacket.MESSAGE_TYPE_GENERAL_INFO, "", "-------- Login Message --------"), true, false); - session.clientConnection.QueuePacket(SendMessagePacket.BuildPacket(session.sessionId, session.sessionId, SendMessagePacket.MESSAGE_TYPE_GENERAL_INFO, "", String.Format("Welcome to {0}!", ConfigConstants.PREF_SERVERNAME)), true, false); - session.clientConnection.QueuePacket(SendMessagePacket.BuildPacket(session.sessionId, session.sessionId, SendMessagePacket.MESSAGE_TYPE_GENERAL_INFO, "", "Welcome to Eorzea!"), true, false); - session.clientConnection.QueuePacket(SendMessagePacket.BuildPacket(session.sessionId, session.sessionId, SendMessagePacket.MESSAGE_TYPE_GENERAL_INFO, "", "Here is a test Message of the Day from the World Server!"), true, false); + session.clientConnection.QueuePacket(SendMessagePacket.BuildPacket(session.sessionId, session.sessionId, SendMessagePacket.MESSAGE_TYPE_GENERAL_INFO, "", "-------- Login Message --------")); + session.clientConnection.QueuePacket(SendMessagePacket.BuildPacket(session.sessionId, session.sessionId, SendMessagePacket.MESSAGE_TYPE_GENERAL_INFO, "", String.Format("Welcome to {0}!", ConfigConstants.PREF_SERVERNAME))); + session.clientConnection.QueuePacket(SendMessagePacket.BuildPacket(session.sessionId, session.sessionId, SendMessagePacket.MESSAGE_TYPE_GENERAL_INFO, "", "Welcome to Eorzea!")); + session.clientConnection.QueuePacket(SendMessagePacket.BuildPacket(session.sessionId, session.sessionId, SendMessagePacket.MESSAGE_TYPE_GENERAL_INFO, "", "Here is a test Message of the Day from the World Server!")); } public void SendPartySync(Party party) @@ -433,7 +433,7 @@ namespace FFXIVClassic_World_Server { requestSession.SetActiveLS(lsName); SubPacket activeLsPacket = SetActiveLinkshellPacket.BuildPacket(requestSession.sessionId, 0); - requestSession.clientConnection.QueuePacket(activeLsPacket, true, false); + requestSession.clientConnection.QueuePacket(activeLsPacket); requestSession.SendGameMessage(25132, 0x20, (object)1); } else @@ -448,7 +448,7 @@ namespace FFXIVClassic_World_Server { requestSession.SetActiveLS(lsName); SubPacket activeLsPacket = SetActiveLinkshellPacket.BuildPacket(requestSession.sessionId, ls.groupIndex); - requestSession.clientConnection.QueuePacket(activeLsPacket, true, false); + requestSession.clientConnection.QueuePacket(activeLsPacket); requestSession.SendGameMessage(25131, 0x20, (object)1, (object)lsName); } } From 08477780f89c3c2cd5051eafc38002c5bca4f6a3 Mon Sep 17 00:00:00 2001 From: Filip Maj Date: Tue, 27 Jun 2017 17:36:47 -0400 Subject: [PATCH 28/38] Removed duplicate 0xD9 packet. Renamed 0xD8 to SetActorBGPropertiesPacket. --- .../FFXIVClassic Map Server.csproj | 3 +- .../actors/chara/npc/Npc.cs | 2 +- ...acket.cs => SetActorBGPropertiesPacket.cs} | 2 +- .../packets/send/Actor/_0xD9Packet.cs | 29 ------------------- 4 files changed, 3 insertions(+), 33 deletions(-) rename FFXIVClassic Map Server/packets/send/Actor/{_0xD8Packet.cs => SetActorBGPropertiesPacket.cs} (95%) delete mode 100644 FFXIVClassic Map Server/packets/send/Actor/_0xD9Packet.cs diff --git a/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj b/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj index 9b4fa3fd..1718595f 100644 --- a/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj +++ b/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj @@ -201,8 +201,7 @@ - - + diff --git a/FFXIVClassic Map Server/actors/chara/npc/Npc.cs b/FFXIVClassic Map Server/actors/chara/npc/Npc.cs index a2726493..0db33a71 100644 --- a/FFXIVClassic Map Server/actors/chara/npc/Npc.cs +++ b/FFXIVClassic Map Server/actors/chara/npc/Npc.cs @@ -187,7 +187,7 @@ namespace FFXIVClassic_Map_Server.Actors subpackets.Add(CreateSpawnPositonPacket(0x0)); if (isMapObj) - subpackets.Add(_0xD8Packet.BuildPacket(actorId, instance, layout)); + subpackets.Add(SetActorBGPropertiesPacket.BuildPacket(actorId, instance, layout)); else subpackets.Add(CreateAppearancePacket()); diff --git a/FFXIVClassic Map Server/packets/send/Actor/_0xD8Packet.cs b/FFXIVClassic Map Server/packets/send/Actor/SetActorBGPropertiesPacket.cs similarity index 95% rename from FFXIVClassic Map Server/packets/send/Actor/_0xD8Packet.cs rename to FFXIVClassic Map Server/packets/send/Actor/SetActorBGPropertiesPacket.cs index 36f59f84..f1acefcb 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/_0xD8Packet.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/SetActorBGPropertiesPacket.cs @@ -5,7 +5,7 @@ using System; namespace FFXIVClassic_Map_Server.packets.send.actor { - class _0xD8Packet + class SetActorBGPropertiesPacket { public const ushort OPCODE = 0x00D8; public const uint PACKET_SIZE = 0x28; 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 041e0390..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 sourceActorId, 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, sourceActorId, data); - } - } -} From 4aa3a444d0f9fca76f8314cbe8b8a265c22b723f Mon Sep 17 00:00:00 2001 From: Filip Maj Date: Tue, 27 Jun 2017 20:17:24 -0400 Subject: [PATCH 29/38] Messages for the Aetheryte Node appearing. --- .../actors/director/GuildleveDirector.cs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/FFXIVClassic Map Server/actors/director/GuildleveDirector.cs b/FFXIVClassic Map Server/actors/director/GuildleveDirector.cs index 8bf90ce2..2efe7494 100644 --- a/FFXIVClassic Map Server/actors/director/GuildleveDirector.cs +++ b/FFXIVClassic Map Server/actors/director/GuildleveDirector.cs @@ -124,6 +124,13 @@ namespace FFXIVClassic_Map_Server.actors.director { 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); + } } } From 3370309dd01305593707314441d6c1066da52a4e Mon Sep 17 00:00:00 2001 From: Filip Maj Date: Tue, 27 Jun 2017 21:08:30 -0400 Subject: [PATCH 30/38] Cleaned up the code and fixed a bunch of bugs. Map server will no longer worry about base packets. --- .../FFXIVClassic Map Server.csproj | 5 +- FFXIVClassic Map Server/PacketProcessor.cs | 48 +++++++++---------- FFXIVClassic Map Server/WorldManager.cs | 18 +++---- FFXIVClassic Map Server/actors/Actor.cs | 22 +++++---- FFXIVClassic Map Server/actors/area/Area.cs | 8 ++-- .../actors/chara/npc/Npc.cs | 10 ++-- .../actors/chara/player/Player.cs | 29 +++++------ FFXIVClassic Map Server/actors/debug/Debug.cs | 4 +- .../actors/director/Director.cs | 13 ++--- .../actors/world/WorldMaster.cs | 4 +- .../dataobjects/Session.cs | 7 +-- .../dataobjects/ZoneConnection.cs | 11 +---- FFXIVClassic Map Server/lua/LuaEngine.cs | 2 +- .../packets/send/login/0x7ResponsePacket.cs | 39 --------------- .../FFXIVClassic World Server.csproj | 2 +- .../Packets/WorldPackets/Send/ErrorPacket.cs | 2 +- .../Send/Group/PartySyncPacket.cs | 2 +- .../WorldPackets/Send/SessionBeginPacket.cs | 2 +- .../WorldPackets/Send/SessionEndPacket.cs | 4 +- FFXIVClassic World Server/Server.cs | 4 +- 20 files changed, 94 insertions(+), 142 deletions(-) delete mode 100644 FFXIVClassic Map Server/packets/send/login/0x7ResponsePacket.cs diff --git a/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj b/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj index 1718595f..89f7ce5b 100644 --- a/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj +++ b/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj @@ -241,7 +241,6 @@ - @@ -336,8 +335,8 @@ - xcopy "$(SolutionDir)data\map_config.ini" "$(SolutionDir)$(ProjectName)\$(OutDir)" /d -xcopy "$(SolutionDir)data\scripts" "$(SolutionDir)$(ProjectName)\$(OutDir)scripts\" /e /d /y /s + + diff --git a/FFXIVClassic Map Server/PacketProcessor.cs b/FFXIVClassic Map Server/PacketProcessor.cs index f86fa81b..22a88476 100644 --- a/FFXIVClassic Map Server/PacketProcessor.cs +++ b/FFXIVClassic Map Server/PacketProcessor.cs @@ -35,7 +35,7 @@ namespace FFXIVClassic_Map_Server public void ProcessPacket(ZoneConnection client, SubPacket subpacket) { - Session session = mServer.GetSession(subpacket.header.targetId); + Session session = mServer.GetSession(subpacket.header.sourceId); if (session == null && subpacket.gameMessage.opcode != 0x1000) return; @@ -59,7 +59,7 @@ namespace FFXIVClassic_Map_Server SessionBeginPacket beginSessionPacket = new SessionBeginPacket(subpacket.data); - session = mServer.AddSession(subpacket.header.targetId); + session = mServer.AddSession(subpacket.header.sourceId); if (!beginSessionPacket.isLogin) Server.GetWorldManager().DoZoneIn(session.GetActor(), false, session.GetActor().destinationSpawnType); @@ -80,7 +80,7 @@ namespace FFXIVClassic_Map_Server Server.GetServer().RemoveSession(session.id); Program.Log.Info("{0} has been removed from the session list.", session.GetActor().customDisplayName); - client.QueuePacket(SessionEndConfirmPacket.BuildPacket(session, endSessionPacket.destinationZoneId), true, false); + session.QueuePacket(SessionEndConfirmPacket.BuildPacket(session, endSessionPacket.destinationZoneId)); client.FlushQueuedSendPackets(); break; //World Server - Party Synch @@ -92,14 +92,14 @@ namespace FFXIVClassic_Map_Server case 0x0001: //subpacket.DebugPrintSubPacket(); PingPacket pingPacket = new PingPacket(subpacket.data); - client.QueuePacket(BasePacket.CreatePacket(PongPacket.BuildPacket(session.id, pingPacket.time), true, false)); + session.QueuePacket(PongPacket.BuildPacket(session.id, pingPacket.time)); session.Ping(); break; //Unknown case 0x0002: subpacket.DebugPrintSubPacket(); - client.QueuePacket(_0x2Packet.BuildPacket(session.id), true, false); + session.QueuePacket(_0x2Packet.BuildPacket(session.id)); client.FlushQueuedSendPackets(); break; @@ -121,8 +121,6 @@ namespace FFXIVClassic_Map_Server //Langauge Code (Client safe to send packets to now) case 0x0006: LangaugeCodePacket langCode = new LangaugeCodePacket(subpacket.data); - session = mServer.GetSession(subpacket.header.targetId); - LuaEngine.GetInstance().CallLuaFunction(session.GetActor(), session.GetActor(), "onBeginLogin", true); Server.GetWorldManager().DoZoneIn(session.GetActor(), true, 0x1); LuaEngine.GetInstance().CallLuaFunction(session.GetActor(), session.GetActor(), "onLogin", true); @@ -247,15 +245,15 @@ namespace FFXIVClassic_Map_Server //Start Recruiting case 0x01C3: StartRecruitingRequestPacket recruitRequestPacket = new StartRecruitingRequestPacket(subpacket.data); - client.QueuePacket(BasePacket.CreatePacket(StartRecruitingResponse.BuildPacket(session.id, true), true, false)); + session.QueuePacket(StartRecruitingResponse.BuildPacket(session.id, true)); break; //End Recruiting case 0x01C4: - client.QueuePacket(BasePacket.CreatePacket(EndRecruitmentPacket.BuildPacket(session.id), true, false)); + session.QueuePacket(EndRecruitmentPacket.BuildPacket(session.id)); break; //Party Window Opened, Request State case 0x01C5: - client.QueuePacket(BasePacket.CreatePacket(RecruiterStatePacket.BuildPacket(session.id, false, false, 0), true, false)); + session.QueuePacket(RecruiterStatePacket.BuildPacket(session.id, false, false, 0)); break; //Search Recruiting case 0x01C7: @@ -271,7 +269,7 @@ namespace FFXIVClassic_Map_Server details.subTaskId = 1; details.comment = "This is a test details packet sent by the server. No implementation has been Created yet..."; details.num[0] = 1; - client.QueuePacket(BasePacket.CreatePacket(CurrentRecruitmentDetailsPacket.BuildPacket(session.id, details), true, false)); + session.QueuePacket(CurrentRecruitmentDetailsPacket.BuildPacket(session.id, details)); break; //Accepted Recruiting case 0x01C6: @@ -280,64 +278,64 @@ namespace FFXIVClassic_Map_Server /* SOCIAL STUFF */ case 0x01C9: AddRemoveSocialPacket addBlackList = new AddRemoveSocialPacket(subpacket.data); - client.QueuePacket(BasePacket.CreatePacket(BlacklistAddedPacket.BuildPacket(session.id, true, addBlackList.name), true, false)); + session.QueuePacket(BlacklistAddedPacket.BuildPacket(session.id, true, addBlackList.name)); break; case 0x01CA: AddRemoveSocialPacket RemoveBlackList = new AddRemoveSocialPacket(subpacket.data); - client.QueuePacket(BasePacket.CreatePacket(BlacklistRemovedPacket.BuildPacket(session.id, true, RemoveBlackList.name), true, false)); + session.QueuePacket(BlacklistRemovedPacket.BuildPacket(session.id, true, RemoveBlackList.name)); break; case 0x01CB: int offset1 = 0; - client.QueuePacket(BasePacket.CreatePacket(SendBlacklistPacket.BuildPacket(session.id, new String[] { "Test" }, ref offset1), true, false)); + session.QueuePacket(SendBlacklistPacket.BuildPacket(session.id, new String[] { "Test" }, ref offset1)); break; case 0x01CC: AddRemoveSocialPacket addFriendList = new AddRemoveSocialPacket(subpacket.data); - client.QueuePacket(BasePacket.CreatePacket(FriendlistAddedPacket.BuildPacket(session.id, true, (uint)addFriendList.name.GetHashCode(), true, addFriendList.name), true, false)); + session.QueuePacket(FriendlistAddedPacket.BuildPacket(session.id, true, (uint)addFriendList.name.GetHashCode(), true, addFriendList.name)); break; case 0x01CD: AddRemoveSocialPacket RemoveFriendList = new AddRemoveSocialPacket(subpacket.data); - client.QueuePacket(BasePacket.CreatePacket(FriendlistRemovedPacket.BuildPacket(session.id, true, RemoveFriendList.name), true, false)); + session.QueuePacket(FriendlistRemovedPacket.BuildPacket(session.id, true, RemoveFriendList.name)); break; case 0x01CE: int offset2 = 0; - client.QueuePacket(BasePacket.CreatePacket(SendFriendlistPacket.BuildPacket(session.id, new Tuple[] { new Tuple(01, "Test2") }, ref offset2), true, false)); + session.QueuePacket(SendFriendlistPacket.BuildPacket(session.id, new Tuple[] { new Tuple(01, "Test2") }, ref offset2)); break; case 0x01CF: - client.QueuePacket(BasePacket.CreatePacket(FriendStatusPacket.BuildPacket(session.id, null), true, false)); + session.QueuePacket(FriendStatusPacket.BuildPacket(session.id, null)); break; /* SUPPORT DESK STUFF */ //Request for FAQ/Info List case 0x01D0: FaqListRequestPacket faqRequest = new FaqListRequestPacket(subpacket.data); - client.QueuePacket(BasePacket.CreatePacket(FaqListResponsePacket.BuildPacket(session.id, new string[] { "Testing FAQ1", "Coded style!" }), true, false)); + session.QueuePacket(FaqListResponsePacket.BuildPacket(session.id, new string[] { "Testing FAQ1", "Coded style!" })); break; //Request for body of a faq/info selection case 0x01D1: FaqBodyRequestPacket faqBodyRequest = new FaqBodyRequestPacket(subpacket.data); - client.QueuePacket(BasePacket.CreatePacket(FaqBodyResponsePacket.BuildPacket(session.id, "HERE IS A GIANT BODY. Nothing else to say!"), true, false)); + session.QueuePacket(FaqBodyResponsePacket.BuildPacket(session.id, "HERE IS A GIANT BODY. Nothing else to say!")); break; //Request issue list case 0x01D2: GMTicketIssuesRequestPacket issuesRequest = new GMTicketIssuesRequestPacket(subpacket.data); - client.QueuePacket(BasePacket.CreatePacket(IssueListResponsePacket.BuildPacket(session.id, new string[] { "Test1", "Test2", "Test3", "Test4", "Test5" }), true, false)); + session.QueuePacket(IssueListResponsePacket.BuildPacket(session.id, new string[] { "Test1", "Test2", "Test3", "Test4", "Test5" })); break; //Request if GM ticket exists case 0x01D3: - client.QueuePacket(BasePacket.CreatePacket(StartGMTicketPacket.BuildPacket(session.id, false), true, false)); + session.QueuePacket(StartGMTicketPacket.BuildPacket(session.id, false)); break; //Request for GM response message case 0x01D4: - client.QueuePacket(BasePacket.CreatePacket(GMTicketPacket.BuildPacket(session.id, "This is a GM Ticket Title", "This is a GM Ticket Body."), true, false)); + session.QueuePacket(GMTicketPacket.BuildPacket(session.id, "This is a GM Ticket Title", "This is a GM Ticket Body.")); break; //GM Ticket Sent case 0x01D5: GMSupportTicketPacket gmTicket = new GMSupportTicketPacket(subpacket.data); Program.Log.Info("Got GM Ticket: \n" + gmTicket.ticketTitle + "\n" + gmTicket.ticketBody); - client.QueuePacket(BasePacket.CreatePacket(GMTicketSentResponsePacket.BuildPacket(session.id, true), true, false)); + session.QueuePacket(GMTicketSentResponsePacket.BuildPacket(session.id, true)); break; //Request to end ticket case 0x01D6: - client.QueuePacket(BasePacket.CreatePacket(EndGMTicketPacket.BuildPacket(session.id), true, false)); + session.QueuePacket(EndGMTicketPacket.BuildPacket(session.id)); break; default: Program.Log.Debug("Unknown command 0x{0:X} received.", subpacket.gameMessage.opcode); diff --git a/FFXIVClassic Map Server/WorldManager.cs b/FFXIVClassic Map Server/WorldManager.cs index ce915e01..62a6b531 100644 --- a/FFXIVClassic Map Server/WorldManager.cs +++ b/FFXIVClassic Map Server/WorldManager.cs @@ -876,55 +876,55 @@ namespace FFXIVClassic_Map_Server public void RequestWorldLinkshellCreate(Player player, string name, ushort crest) { SubPacket packet = CreateLinkshellPacket.BuildPacket(player.playerSession, name, crest, player.actorId); - Server.GetWorldConnection().QueuePacket(packet, true, false); + player.QueuePacket(packet); } public void RequestWorldLinkshellCrestModify(Player player, string name, ushort crest) { SubPacket packet = ModifyLinkshellPacket.BuildPacket(player.playerSession, 1, name, null, crest, 0); - Server.GetWorldConnection().QueuePacket(packet, true, false); + player.QueuePacket(packet); } public void RequestWorldLinkshellDelete(Player player, string name) { SubPacket packet = DeleteLinkshellPacket.BuildPacket(player.playerSession, name); - Server.GetWorldConnection().QueuePacket(packet, true, false); + player.QueuePacket(packet); } public void RequestWorldLinkshellRankChange(Player player, string lsname, string memberName, byte newRank) { SubPacket packet = LinkshellRankChangePacket.BuildPacket(player.playerSession, memberName, lsname, newRank); - Server.GetWorldConnection().QueuePacket(packet, true, false); + player.QueuePacket(packet); } public void RequestWorldLinkshellInviteMember(Player player, string lsname, uint invitedActorId) { SubPacket packet = LinkshellInvitePacket.BuildPacket(player.playerSession, invitedActorId, lsname); - Server.GetWorldConnection().QueuePacket(packet, true, false); + player.QueuePacket(packet); } public void RequestWorldLinkshellCancelInvite(Player player) { SubPacket packet = LinkshellInviteCancelPacket.BuildPacket(player.playerSession); - Server.GetWorldConnection().QueuePacket(packet, true, false); + player.QueuePacket(packet); } public void RequestWorldLinkshellLeave(Player player, string lsname) { SubPacket packet = LinkshellLeavePacket.BuildPacket(player.playerSession, lsname, null, false); - Server.GetWorldConnection().QueuePacket(packet, true, false); + player.QueuePacket(packet); } public void RequestWorldLinkshellKick(Player player, string lsname, string kickedName) { SubPacket packet = LinkshellLeavePacket.BuildPacket(player.playerSession, lsname, kickedName, true); - Server.GetWorldConnection().QueuePacket(packet, true, false); + player.QueuePacket(packet); } public void RequestWorldLinkshellChangeActive(Player player, string lsname) { SubPacket packet = LinkshellChangePacket.BuildPacket(player.playerSession, lsname); - Server.GetWorldConnection().QueuePacket(packet, true, false); + player.QueuePacket(packet); } private void RequestWorldServerZoneChange(Player player, uint destinationZoneId, byte spawnType, float spawnX, float spawnY, float spawnZ, float spawnRotation) diff --git a/FFXIVClassic Map Server/actors/Actor.cs b/FFXIVClassic Map Server/actors/Actor.cs index a7d87166..265ce29f 100644 --- a/FFXIVClassic Map Server/actors/Actor.cs +++ b/FFXIVClassic Map Server/actors/Actor.cs @@ -184,13 +184,13 @@ namespace FFXIVClassic_Map_Server.Actors return subpackets; } - public BasePacket GetSetEventStatusPackets() + public List GetSetEventStatusPackets() { List subpackets = new List(); //Return empty list if (eventConditions == null) - return BasePacket.CreatePacket(subpackets, true, false); + return subpackets; if (eventConditions.talkEventConditions != null) { @@ -228,7 +228,7 @@ namespace FFXIVClassic_Map_Server.Actors subpackets.Add(SetEventStatus.BuildPacket(actorId, true, 2, condition.conditionName)); } - return BasePacket.CreatePacket(subpackets, true, false); + return subpackets; } public SubPacket CreateIsZoneingPacket() @@ -246,7 +246,7 @@ namespace FFXIVClassic_Map_Server.Actors return ActorInstantiatePacket.BuildPacket(actorId, actorName, className, classParams); } - public virtual BasePacket GetSpawnPackets(Player player, ushort spawnType) + public virtual List GetSpawnPackets(Player player, ushort spawnType) { List subpackets = new List(); subpackets.Add(CreateAddActorPacket(8)); @@ -257,15 +257,15 @@ namespace FFXIVClassic_Map_Server.Actors subpackets.Add(CreateStatePacket()); subpackets.Add(CreateIsZoneingPacket()); subpackets.Add(CreateScriptBindPacket(player)); - return BasePacket.CreatePacket(subpackets, true, false); + return subpackets; } - public virtual BasePacket GetSpawnPackets() + public virtual List GetSpawnPackets() { return GetSpawnPackets(0x1); } - public virtual BasePacket GetSpawnPackets(ushort spawnType) + public virtual List GetSpawnPackets(ushort spawnType) { List subpackets = new List(); subpackets.Add(CreateAddActorPacket(8)); @@ -276,17 +276,19 @@ namespace FFXIVClassic_Map_Server.Actors subpackets.Add(CreateStatePacket()); subpackets.Add(CreateIsZoneingPacket()); subpackets.Add(CreateScriptBindPacket()); - return BasePacket.CreatePacket(subpackets, true, false); + return subpackets; } - public virtual BasePacket GetInitPackets() + public virtual List GetInitPackets() { + List packets = new List(); SetActorPropetyPacket initProperties = new SetActorPropetyPacket("/_init"); initProperties.AddByte(0xE14B0CA8, 1); initProperties.AddByte(0x2138FD71, 1); initProperties.AddByte(0xFBFBCFB1, 1); initProperties.AddTarget(); - return BasePacket.CreatePacket(initProperties.BuildPacket(actorId), true, false); + packets.Add(initProperties.BuildPacket(actorId)); + return packets; } public override bool Equals(Object obj) diff --git a/FFXIVClassic Map Server/actors/area/Area.cs b/FFXIVClassic Map Server/actors/area/Area.cs index b491d905..a9fb2976 100644 --- a/FFXIVClassic Map Server/actors/area/Area.cs +++ b/FFXIVClassic Map Server/actors/area/Area.cs @@ -91,7 +91,7 @@ namespace FFXIVClassic_Map_Server.Actors return ActorInstantiatePacket.BuildPacket(actorId, actorName, "ZoneDefault", lParams); } - public override BasePacket GetSpawnPackets() + public override List GetSpawnPackets() { List subpackets = new List(); subpackets.Add(CreateAddActorPacket(0)); @@ -101,7 +101,7 @@ namespace FFXIVClassic_Map_Server.Actors subpackets.Add(CreateStatePacket()); subpackets.Add(CreateIsZoneingPacket()); subpackets.Add(CreateScriptBindPacket()); - return BasePacket.CreatePacket(subpackets, true, false); + return subpackets; } #region Actor Management @@ -483,7 +483,7 @@ namespace FFXIVClassic_Map_Server.Actors if (player != null && !zoneWide) { - player.QueuePacket(BasePacket.CreatePacket(SetWeatherPacket.BuildPacket(player.actorId, weather, transitionTime), true, false)); + player.QueuePacket(SetWeatherPacket.BuildPacket(player.actorId, weather, transitionTime)); } if (zoneWide) { @@ -494,7 +494,7 @@ namespace FFXIVClassic_Map_Server.Actors if (actor.Value is Player) { player = ((Player)actor.Value); - player.QueuePacket(BasePacket.CreatePacket(SetWeatherPacket.BuildPacket(player.actorId, weather, transitionTime), true, false)); + player.QueuePacket(SetWeatherPacket.BuildPacket(player.actorId, weather, transitionTime)); } } } diff --git a/FFXIVClassic Map Server/actors/chara/npc/Npc.cs b/FFXIVClassic Map Server/actors/chara/npc/Npc.cs index 0db33a71..60f87d13 100644 --- a/FFXIVClassic Map Server/actors/chara/npc/Npc.cs +++ b/FFXIVClassic Map Server/actors/chara/npc/Npc.cs @@ -177,8 +177,8 @@ namespace FFXIVClassic_Map_Server.Actors //ActorInstantiatePacket.BuildPacket(actorId, actorName, className, lParams).DebugPrintSubPacket(); return ActorInstantiatePacket.BuildPacket(actorId, actorName, className, lParams); } - - public override BasePacket GetSpawnPackets(Player player, ushort spawnType) + + public override List GetSpawnPackets(Player player, ushort spawnType) { List subpackets = new List(); subpackets.Add(CreateAddActorPacket()); @@ -199,10 +199,10 @@ namespace FFXIVClassic_Map_Server.Actors subpackets.Add(CreateIsZoneingPacket()); subpackets.Add(CreateScriptBindPacket(player)); - return BasePacket.CreatePacket(subpackets, true, false); + return subpackets; } - public override BasePacket GetInitPackets() + public override List GetInitPackets() { ActorPropertyPacketUtil propPacketUtil = new ActorPropertyPacketUtil("/_init", this); @@ -258,7 +258,7 @@ namespace FFXIVClassic_Map_Server.Actors propPacketUtil.AddProperty("npcWork.pushCommandPriority"); } - return BasePacket.CreatePacket(propPacketUtil.Done(), true, false); + return propPacketUtil.Done(); } public string GetUniqueId() diff --git a/FFXIVClassic Map Server/actors/chara/player/Player.cs b/FFXIVClassic Map Server/actors/chara/player/Player.cs index 8e6a09bf..938df61d 100644 --- a/FFXIVClassic Map Server/actors/chara/player/Player.cs +++ b/FFXIVClassic Map Server/actors/chara/player/Player.cs @@ -292,7 +292,7 @@ namespace FFXIVClassic_Map_Server.Actors return ActorInstantiatePacket.BuildPacket(actorId, actorName, className, lParams); } - public override BasePacket GetSpawnPackets(Player requestPlayer, ushort spawnType) + public override List GetSpawnPackets(Player requestPlayer, ushort spawnType) { List subpackets = new List(); subpackets.Add(CreateAddActorPacket(8)); @@ -310,7 +310,7 @@ namespace FFXIVClassic_Map_Server.Actors subpackets.Add(CreateIsZoneingPacket()); subpackets.AddRange(CreatePlayerRelatedPackets(requestPlayer.actorId)); subpackets.Add(CreateScriptBindPacket(requestPlayer)); - return BasePacket.CreatePacket(subpackets, true, false); + return subpackets; } public List CreatePlayerRelatedPackets(uint requestingPlayerActorId) @@ -347,7 +347,7 @@ namespace FFXIVClassic_Map_Server.Actors return subpackets; } - public override BasePacket GetInitPackets() + public override List GetInitPackets() { ActorPropertyPacketUtil propPacketUtil = new ActorPropertyPacketUtil("/_init", this); @@ -494,7 +494,7 @@ namespace FFXIVClassic_Map_Server.Actors propPacketUtil.AddProperty("playerWork.birthdayDay"); propPacketUtil.AddProperty("playerWork.initialTown"); - return BasePacket.CreatePacket(propPacketUtil.Done(), true, false); + return propPacketUtil.Done(); } public void SendSeamlessZoneInPackets() @@ -529,9 +529,9 @@ namespace FFXIVClassic_Map_Server.Actors playerSession.QueuePacket(GetInitPackets()); - BasePacket areaMasterSpawn = zone.GetSpawnPackets(); - BasePacket debugSpawn = world.GetDebugActor().GetSpawnPackets(); - BasePacket worldMasterSpawn = world.GetActor().GetSpawnPackets(); + List areaMasterSpawn = zone.GetSpawnPackets(); + List debugSpawn = world.GetDebugActor().GetSpawnPackets(); + List worldMasterSpawn = world.GetActor().GetSpawnPackets(); playerSession.QueuePacket(areaMasterSpawn); playerSession.QueuePacket(debugSpawn); @@ -552,14 +552,12 @@ namespace FFXIVClassic_Map_Server.Actors if (zone.GetWeatherDirector() != null) { - BasePacket weatherDirectorSpawn = zone.GetWeatherDirector().GetSpawnPackets(); - playerSession.QueuePacket(weatherDirectorSpawn); + playerSession.QueuePacket(zone.GetWeatherDirector().GetSpawnPackets()); } foreach (Director director in ownedDirectors) { - director.GetSpawnPackets().DebugPrintPacket(); QueuePacket(director.GetSpawnPackets()); QueuePacket(director.GetInitPackets()); } @@ -596,9 +594,9 @@ namespace FFXIVClassic_Map_Server.Actors return actorId == otherActorId; } - public void QueuePacket(BasePacket packet) + public void QueuePacket(List packets) { - playerSession.QueuePacket(packet); + playerSession.QueuePacket(packets); } public void QueuePacket(SubPacket packet) @@ -616,10 +614,10 @@ namespace FFXIVClassic_Map_Server.Actors { try { - BasePacket packet = new BasePacket(path); + // BasePacket packet = new BasePacket(path); - packet.ReplaceActorID(actorId); - QueuePacket(packet); + //packet.ReplaceActorID(actorId); + //QueuePacket(packet); } catch (Exception e) { @@ -1449,7 +1447,6 @@ namespace FFXIVClassic_Map_Server.Actors public void SendDirectorPackets(Director director) { - director.GetSpawnPackets().DebugPrintPacket(); QueuePacket(director.GetSpawnPackets()); QueuePacket(director.GetInitPackets()); } diff --git a/FFXIVClassic Map Server/actors/debug/Debug.cs b/FFXIVClassic Map Server/actors/debug/Debug.cs index 1b1afcbd..49b62173 100644 --- a/FFXIVClassic Map Server/actors/debug/Debug.cs +++ b/FFXIVClassic Map Server/actors/debug/Debug.cs @@ -25,7 +25,7 @@ namespace FFXIVClassic_Map_Server.Actors return ActorInstantiatePacket.BuildPacket(actorId, actorName, className, lParams); } - public override BasePacket GetSpawnPackets() + public override List GetSpawnPackets() { List subpackets = new List(); subpackets.Add(CreateAddActorPacket(0)); @@ -35,7 +35,7 @@ namespace FFXIVClassic_Map_Server.Actors subpackets.Add(CreateStatePacket()); subpackets.Add(CreateIsZoneingPacket()); subpackets.Add(CreateScriptBindPacket()); - return BasePacket.CreatePacket(subpackets, true, false); + return subpackets; } } diff --git a/FFXIVClassic Map Server/actors/director/Director.cs b/FFXIVClassic Map Server/actors/director/Director.cs index 7c58e820..524762ee 100644 --- a/FFXIVClassic Map Server/actors/director/Director.cs +++ b/FFXIVClassic Map Server/actors/director/Director.cs @@ -57,7 +57,7 @@ namespace FFXIVClassic_Map_Server.actors.director return ActorInstantiatePacket.BuildPacket(actorId, actorName, className, actualLParams); } - public override BasePacket GetSpawnPackets(ushort spawnType = 1) + public override List GetSpawnPackets(ushort spawnType = 1) { List subpackets = new List(); subpackets.Add(CreateAddActorPacket(0)); @@ -68,14 +68,16 @@ namespace FFXIVClassic_Map_Server.actors.director subpackets.Add(CreateStatePacket()); subpackets.Add(CreateIsZoneingPacket()); subpackets.Add(CreateScriptBindPacket()); - return BasePacket.CreatePacket(subpackets, true, false); - } + return subpackets; + } - public override BasePacket GetInitPackets() + public override List GetInitPackets() { + List subpackets = new List(); SetActorPropetyPacket initProperties = new SetActorPropetyPacket("/_init"); initProperties.AddTarget(); - return BasePacket.CreatePacket(initProperties.BuildPacket(actorId), true, false); + subpackets.Add(initProperties.BuildPacket(actorId)); + return subpackets; } public void OnTalkEvent(Player player, Npc npc) @@ -108,7 +110,6 @@ namespace FFXIVClassic_Map_Server.actors.director { foreach (Player p in GetPlayerMembers()) { - GetSpawnPackets().DebugPrintPacket(); p.QueuePacket(GetSpawnPackets()); p.QueuePacket(GetInitPackets()); } diff --git a/FFXIVClassic Map Server/actors/world/WorldMaster.cs b/FFXIVClassic Map Server/actors/world/WorldMaster.cs index 5da97052..132afc4d 100644 --- a/FFXIVClassic Map Server/actors/world/WorldMaster.cs +++ b/FFXIVClassic Map Server/actors/world/WorldMaster.cs @@ -24,7 +24,7 @@ namespace FFXIVClassic_Map_Server.Actors return ActorInstantiatePacket.BuildPacket(actorId, actorName, className, lParams); } - public override BasePacket GetSpawnPackets() + public override List GetSpawnPackets() { List subpackets = new List(); subpackets.Add(CreateAddActorPacket(0)); @@ -34,7 +34,7 @@ namespace FFXIVClassic_Map_Server.Actors subpackets.Add(CreateStatePacket()); subpackets.Add(CreateIsZoneingPacket()); subpackets.Add(CreateScriptBindPacket()); - return BasePacket.CreatePacket(subpackets, true, false); + return subpackets; } } } diff --git a/FFXIVClassic Map Server/dataobjects/Session.cs b/FFXIVClassic Map Server/dataobjects/Session.cs index d18e3363..7aca7d7b 100644 --- a/FFXIVClassic Map Server/dataobjects/Session.cs +++ b/FFXIVClassic Map Server/dataobjects/Session.cs @@ -31,15 +31,16 @@ namespace FFXIVClassic_Map_Server.dataobjects actorInstanceList.Add(playerActor); } - public void QueuePacket(BasePacket basePacket) + public void QueuePacket(List packets) { - Server.GetWorldConnection().QueuePacket(basePacket); + foreach (SubPacket s in packets) + QueuePacket(s); } public void QueuePacket(SubPacket subPacket) { subPacket.SetTargetId(id); - Server.GetWorldConnection().QueuePacket(subPacket, true, false); + Server.GetWorldConnection().QueuePacket(subPacket); } public Player GetActor() diff --git a/FFXIVClassic Map Server/dataobjects/ZoneConnection.cs b/FFXIVClassic Map Server/dataobjects/ZoneConnection.cs index a8e957d1..4a7fcc98 100644 --- a/FFXIVClassic Map Server/dataobjects/ZoneConnection.cs +++ b/FFXIVClassic Map Server/dataobjects/ZoneConnection.cs @@ -17,14 +17,7 @@ namespace FFXIVClassic_Map_Server.dataobjects private BlockingCollection SendPacketQueue = new BlockingCollection(1000); public int lastPartialSize = 0; - public void QueuePacket(BasePacket packet) - { - List subPackets = packet.GetSubpackets(); - foreach (SubPacket s in subPackets) - SendPacketQueue.Add(s); - } - - public void QueuePacket(SubPacket subpacket, bool isAuthed, bool isEncrypted) + public void QueuePacket(SubPacket subpacket) { SendPacketQueue.Add(subpacket); } @@ -68,7 +61,7 @@ namespace FFXIVClassic_Map_Server.dataobjects public void RequestZoneChange(uint sessionId, uint destinationZoneId, byte spawnType, float spawnX, float spawnY, float spawnZ, float spawnRotation) { WorldRequestZoneChangePacket.BuildPacket(sessionId, destinationZoneId, spawnType, spawnX, spawnY, spawnZ, spawnRotation).DebugPrintSubPacket(); - QueuePacket(WorldRequestZoneChangePacket.BuildPacket(sessionId, destinationZoneId, spawnType, spawnX, spawnY, spawnZ, spawnRotation), true, false); + QueuePacket(WorldRequestZoneChangePacket.BuildPacket(sessionId, destinationZoneId, spawnType, spawnX, spawnY, spawnZ, spawnRotation)); } } } diff --git a/FFXIVClassic Map Server/lua/LuaEngine.cs b/FFXIVClassic Map Server/lua/LuaEngine.cs index d8d4603f..c34ada7d 100644 --- a/FFXIVClassic Map Server/lua/LuaEngine.cs +++ b/FFXIVClassic Map Server/lua/LuaEngine.cs @@ -607,7 +607,7 @@ namespace FFXIVClassic_Map_Server.lua List SendError = new List(); SendError.Add(EndEventPacket.BuildPacket(player.actorId, player.currentEventOwner, player.currentEventName)); player.SendMessage(SendMessagePacket.MESSAGE_TYPE_SYSTEM_ERROR, "", message); - player.playerSession.QueuePacket(BasePacket.CreatePacket(SendError, true, false)); + player.playerSession.QueuePacket(SendError); } } diff --git a/FFXIVClassic Map Server/packets/send/login/0x7ResponsePacket.cs b/FFXIVClassic Map Server/packets/send/login/0x7ResponsePacket.cs deleted file mode 100644 index 44885647..00000000 --- a/FFXIVClassic Map Server/packets/send/login/0x7ResponsePacket.cs +++ /dev/null @@ -1,39 +0,0 @@ -using FFXIVClassic.Common; -using System; -using System.IO; - -using FFXIVClassic.Common; - -namespace FFXIVClassic_Map_Server.packets.send.login -{ - class Login0x7ResponsePacket - { - public static BasePacket BuildPacket(uint sourceActorId, uint time, uint type) - { - byte[] data = new byte[0x18]; - - using (MemoryStream mem = new MemoryStream(data)) - { - using (BinaryWriter binWriter = new BinaryWriter(mem)) - { - try - { - binWriter.Write((short)0x18); - binWriter.Write((short)type); - binWriter.Write((uint)0); - binWriter.Write((uint)0); - binWriter.Write((uint)0xFFFFFD7F); - - binWriter.Write((uint)sourceActorId); - binWriter.Write((uint)time); - } - catch (Exception) - { - } - } - } - - return BasePacket.CreatePacket(data, false, false); - } - } -} diff --git a/FFXIVClassic World Server/FFXIVClassic World Server.csproj b/FFXIVClassic World Server/FFXIVClassic World Server.csproj index 4710093f..2bf7f335 100644 --- a/FFXIVClassic World Server/FFXIVClassic World Server.csproj +++ b/FFXIVClassic World Server/FFXIVClassic World Server.csproj @@ -190,7 +190,7 @@ - xcopy "$(SolutionDir)data\world_config.ini" "$(SolutionDir)$(ProjectName)\$(OutDir)" /d +