diff --git a/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj b/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj index 761b48fc..a1e692a2 100644 --- a/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj +++ b/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj @@ -68,6 +68,7 @@ + diff --git a/FFXIVClassic Map Server/PacketProcessor.cs b/FFXIVClassic Map Server/PacketProcessor.cs index b9f6569a..1be383a2 100644 --- a/FFXIVClassic Map Server/PacketProcessor.cs +++ b/FFXIVClassic Map Server/PacketProcessor.cs @@ -194,7 +194,7 @@ namespace FFXIVClassic_Lobby_Server //Update Position UpdatePlayerPositionPacket posUpdate = new UpdatePlayerPositionPacket(subpacket.data); player.updatePlayerActorPosition(posUpdate.x, posUpdate.y, posUpdate.z, posUpdate.rot, posUpdate.moveState); - + //Update Instance List instanceUpdatePackets = player.updateInstance(player.getActor().zone.getActorsAroundActor(player.getActor(), 50)); foreach (BasePacket bp in instanceUpdatePackets) diff --git a/FFXIVClassic Map Server/Program.cs b/FFXIVClassic Map Server/Program.cs index 101097cf..06279513 100644 --- a/FFXIVClassic Map Server/Program.cs +++ b/FFXIVClassic Map Server/Program.cs @@ -8,6 +8,8 @@ using MySql.Data.MySqlClient; using System.Reflection; using System.IO; using FFXIVClassic_Lobby_Server.dataobjects; +using System.Collections.Generic; +using System.Text; namespace FFXIVClassic_Lobby_Server { @@ -15,7 +17,7 @@ namespace FFXIVClassic_Lobby_Server { static void Main(string[] args) - { + { #if DEBUG TextWriterTraceListener myWriter = new TextWriterTraceListener(System.Console.Out); Debug.Listeners.Add(myWriter); diff --git a/FFXIVClassic Map Server/Server.cs b/FFXIVClassic Map Server/Server.cs index b81152d2..c6e8f400 100644 --- a/FFXIVClassic Map Server/Server.cs +++ b/FFXIVClassic Map Server/Server.cs @@ -33,7 +33,7 @@ namespace FFXIVClassic_Lobby_Server private List mConnectionList = new List(); private LuaEngine mLuaEngine = new LuaEngine(); private WorldManager mWorldManager; - private StaticActors mStaticActors = new StaticActors(); + private static StaticActors mStaticActors = new StaticActors(); private PacketProcessor mProcessor; private Thread mProcessorThread; private Thread mGameThread; @@ -143,6 +143,14 @@ namespace FFXIVClassic_Lobby_Server } } + public static Actor getStaticActors(string name) + { + if (mStaticActors == null) + mStaticActors = new StaticActors(); + + return mStaticActors.findStaticActor(name); + } + /// /// Receive Callback. Reads in incoming data, converting them to base packets. Base packets are sent to be parsed. If not enough data at the end to build a basepacket, move to the beginning and prepend. /// diff --git a/FFXIVClassic Map Server/actors/Actor.cs b/FFXIVClassic Map Server/actors/Actor.cs index 976cae5d..b56f0dfc 100644 --- a/FFXIVClassic Map Server/actors/Actor.cs +++ b/FFXIVClassic Map Server/actors/Actor.cs @@ -54,9 +54,9 @@ namespace FFXIVClassic_Map_Server.Actors this.classParams = classParams; } - public SubPacket createAddActorPacket(uint playerActorId) + public SubPacket createAddActorPacket(uint playerActorId, byte val) { - return AddActorPacket.buildPacket(actorId, playerActorId, 0); + return AddActorPacket.buildPacket(actorId, playerActorId, val); } public SubPacket createNamePacket(uint playerActorId) @@ -77,7 +77,12 @@ namespace FFXIVClassic_Map_Server.Actors else if (playerActorId == actorId) spawnPacket = SetActorPositionPacket.buildPacket(actorId, playerActorId, 0xFFFFFFFF, positionX, positionY, positionZ, rotation, spawnType, true); else - spawnPacket = SetActorPositionPacket.buildPacket(actorId, playerActorId, actorId, positionX, positionY, positionZ, rotation, spawnType, false); + { + if (this is Player) + spawnPacket = SetActorPositionPacket.buildPacket(actorId, playerActorId, 0, positionX, positionY, positionZ, rotation, spawnType, false); + else + spawnPacket = SetActorPositionPacket.buildPacket(actorId, playerActorId, actorId, positionX, positionY, positionZ, rotation, spawnType, false); + } //return SetActorPositionPacket.buildPacket(actorId, playerActorId, -211.895477f, 190.000000f, 29.651011f, 2.674819f, SetActorPositionPacket.SPAWNTYPE_PLAYERWAKE); spawnedFirstTime = true; @@ -170,7 +175,7 @@ namespace FFXIVClassic_Map_Server.Actors public virtual BasePacket getSpawnPackets(uint playerActorId, uint spawnType) { List subpackets = new List(); - subpackets.Add(createAddActorPacket(playerActorId)); + subpackets.Add(createAddActorPacket(playerActorId, 8)); subpackets.AddRange(getEventConditionPackets(playerActorId)); subpackets.Add(createSpeedPacket(playerActorId)); subpackets.Add(createSpawnPositonPacket(playerActorId, spawnType)); diff --git a/FFXIVClassic Map Server/actors/StaticActors.cs b/FFXIVClassic Map Server/actors/StaticActors.cs index 651e2c1c..aa42ca2d 100644 --- a/FFXIVClassic Map Server/actors/StaticActors.cs +++ b/FFXIVClassic Map Server/actors/StaticActors.cs @@ -9,17 +9,32 @@ namespace FFXIVClassic_Map_Server.Actors { class StaticActors { - private Dictionary mStaticActors = new Dictionary(); + private Dictionary mStaticActors = new Dictionary(); public StaticActors() { + //Judges - mStaticActors.Add(0xA0F5BAF1, new Judge(0x4BAF1, "JudgeMaster")); - mStaticActors.Add(0xA0F5E201, new Judge(0x4E201, "CommonJudge")); - mStaticActors.Add(0xA0F5E206, new Judge(0x4E206, "TutorialJudge")); - mStaticActors.Add(0xA0F5E20D, new Judge(0x4E20D, "ChocoboJudge")); - mStaticActors.Add(0xA0F50911, new Judge(0x50911, "DeceptionJudge")); - + mStaticActors.Add(0xa0f4baf1, new Judge(0xa0f4baf1, "JudgeMaster")); + mStaticActors.Add(0xa0f4e201, new Judge(0xa0f4e201, "CommonJudge")); + mStaticActors.Add(0xa0f4e202, new Judge(0xa0f4e202, "BattleJudge")); + mStaticActors.Add(0xa0f4e203, new Judge(0xa0f4e203, "CraftJudge")); + mStaticActors.Add(0xa0f4e204, new Judge(0xa0f4e204, "HarvestJudge")); + mStaticActors.Add(0xa0f4e205, new Judge(0xa0f4e205, "NegotiationJudge")); + mStaticActors.Add(0xa0f4e206, new Judge(0xa0f4e206, "TutorialJudge")); + mStaticActors.Add(0xa0f4e207, new Judge(0xa0f4e207, "TutorialDummyJudge")); + mStaticActors.Add(0xa0f4e208, new Judge(0xa0f4e208, "AutoAttackJudge")); + mStaticActors.Add(0xa0f4e209, new Judge(0xa0f4e209, "HateControlJudge")); + mStaticActors.Add(0xa0f4e20a, new Judge(0xa0f4e20a, "BattleProcessJudge")); + mStaticActors.Add(0xa0f4e20b, new Judge(0xa0f4e20b, "GameCalculateJudge")); + mStaticActors.Add(0xa0f4e20c, new Judge(0xa0f4e20c, "ActionJudge")); + mStaticActors.Add(0xa0f4e20d, new Judge(0xa0f4e20d, "ChocoboJudge")); + mStaticActors.Add(0xa0f4e20e, new Judge(0xa0f4e20e, "InstanceRaidGuideJudge")); + mStaticActors.Add(0xa0f4e20f, new Judge(0xa0f4e20f, "MusicChangePrefaceJudge")); + mStaticActors.Add(0xa0f4e210, new Judge(0xa0f4e210, "CutSceneOnceBeaconPrefaceJudge")); + mStaticActors.Add(0xa0f50911, new Judge(0xa0f50911, "DepictionJudge")); + mStaticActors.Add(0xa0f50912, new Judge(0xa0f50912, "ItemDropJudge")); + //Commands mStaticActors.Add(0xA0F02EE2, new Command(0xA0F02EE2, "ResetOccupiedCommand")); mStaticActors.Add(0xA0F02EE3, new Command(0xA0F02EE3, "CombinationManagementCommand")); @@ -90,13 +105,750 @@ namespace FFXIVClassic_Map_Server.Actors mStaticActors.Add(0xA0F05EED, new Command(0xA0F05EED, "PlaceDrivenCommand")); mStaticActors.Add(0xA0F05EEE, new Command(0xA0F05EEE, "ContentCommand")); mStaticActors.Add(0xA0F05EEF, new Command(0xA0F05EEF, "ConfirmGroupCommand")); - mStaticActors.Add(0xA0F05EF0, new Command(0xA0F05EF0, "ConfirmWarpCOmmand")); + mStaticActors.Add(0xA0F05EF0, new Command(0xA0F05EF0, "ConfirmWarpCommand")); mStaticActors.Add(0xA0F05EF1, new Command(0xA0F05EF1, "ConfirmTradeCommand")); mStaticActors.Add(0xA0F05EF2, new Command(0xA0F05EF2, "ConfirmRaiseCommand")); mStaticActors.Add(0xA0F05EF8, new Command(0xA0F05EF8, "EmoteSitCommand ")); mStaticActors.Add(0xA0F06A0E, new Command(0xA0F06A0E, "AttackWeaponSKill")); mStaticActors.Add(0xA0F07339, new Command(0xA0F07339, "NegotiateCommand")); mStaticActors.Add(0xA0F07595, new Command(0xA0F07595, "DebugInputCommand")); + + //Quests + mStaticActors.Add(0xa0f1adb1, new Quest(0xa0f1adb1, "Man0l0")); + mStaticActors.Add(0xa0f1adb2, new Quest(0xa0f1adb2, "Man0l1")); + mStaticActors.Add(0xa0f1adb3, new Quest(0xa0f1adb3, "Man1l0")); + mStaticActors.Add(0xa0f1adb4, new Quest(0xa0f1adb4, "Man2l0")); + mStaticActors.Add(0xa0f1adb5, new Quest(0xa0f1adb5, "Man0g0")); + mStaticActors.Add(0xa0f1adb6, new Quest(0xa0f1adb6, "Man0g1")); + mStaticActors.Add(0xa0f1adb7, new Quest(0xa0f1adb7, "Man1g0")); + mStaticActors.Add(0xa0f1adb8, new Quest(0xa0f1adb8, "Man2g0")); + mStaticActors.Add(0xa0f1adb9, new Quest(0xa0f1adb9, "Man0u0")); + mStaticActors.Add(0xa0f1adba, new Quest(0xa0f1adba, "Man0u1")); + mStaticActors.Add(0xa0f1adbb, new Quest(0xa0f1adbb, "Man1u0")); + mStaticActors.Add(0xa0f1adbc, new Quest(0xa0f1adbc, "Man2u0")); + mStaticActors.Add(0xa0f1adbd, new Quest(0xa0f1adbd, "Man200")); + mStaticActors.Add(0xa0f1adbe, new Quest(0xa0f1adbe, "Man206")); + mStaticActors.Add(0xa0f1adbf, new Quest(0xa0f1adbf, "Man300")); + mStaticActors.Add(0xa0f1adc0, new Quest(0xa0f1adc0, "Man304")); + mStaticActors.Add(0xa0f1adc1, new Quest(0xa0f1adc1, "Man308")); + mStaticActors.Add(0xa0f1adc2, new Quest(0xa0f1adc2, "Man402")); + mStaticActors.Add(0xa0f1adc3, new Quest(0xa0f1adc3, "Man406")); + mStaticActors.Add(0xa0f1adc4, new Quest(0xa0f1adc4, "Man502")); + mStaticActors.Add(0xa0f1adc5, new Quest(0xa0f1adc5, "Man504")); + mStaticActors.Add(0xa0f1adec, new Quest(0xa0f1adec, "Pgl200")); + mStaticActors.Add(0xa0f1aded, new Quest(0xa0f1aded, "Pgl300")); + mStaticActors.Add(0xa0f1adee, new Quest(0xa0f1adee, "Pgl306")); + mStaticActors.Add(0xa0f1adef, new Quest(0xa0f1adef, "Pgl400")); + mStaticActors.Add(0xa0f1ae00, new Quest(0xa0f1ae00, "Gla200")); + mStaticActors.Add(0xa0f1ae01, new Quest(0xa0f1ae01, "Gla300")); + mStaticActors.Add(0xa0f1ae02, new Quest(0xa0f1ae02, "Gla306")); + mStaticActors.Add(0xa0f1ae03, new Quest(0xa0f1ae03, "Gla400")); + mStaticActors.Add(0xa0f1ae14, new Quest(0xa0f1ae14, "Exc200")); + mStaticActors.Add(0xa0f1ae15, new Quest(0xa0f1ae15, "Exc300")); + mStaticActors.Add(0xa0f1ae16, new Quest(0xa0f1ae16, "Exc306")); + mStaticActors.Add(0xa0f1ae17, new Quest(0xa0f1ae17, "Exc400")); + mStaticActors.Add(0xa0f1ae18, new Quest(0xa0f1ae18, "Exc500")); + mStaticActors.Add(0xa0f1ae19, new Quest(0xa0f1ae19, "Exc506")); + mStaticActors.Add(0xa0f1ae3c, new Quest(0xa0f1ae3c, "Trl0l1")); + mStaticActors.Add(0xa0f1ae3d, new Quest(0xa0f1ae3d, "Trl0g1")); + mStaticActors.Add(0xa0f1ae3e, new Quest(0xa0f1ae3e, "Trl0u1")); + mStaticActors.Add(0xa0f1ae3f, new Quest(0xa0f1ae3f, "Trl0l2")); + mStaticActors.Add(0xa0f1ae40, new Quest(0xa0f1ae40, "Trl0l3")); + mStaticActors.Add(0xa0f1ae41, new Quest(0xa0f1ae41, "Trl0l4")); + mStaticActors.Add(0xa0f1ae50, new Quest(0xa0f1ae50, "Arc200")); + mStaticActors.Add(0xa0f1ae51, new Quest(0xa0f1ae51, "Arc300")); + mStaticActors.Add(0xa0f1ae52, new Quest(0xa0f1ae52, "Arc306")); + mStaticActors.Add(0xa0f1ae53, new Quest(0xa0f1ae53, "Arc400")); + mStaticActors.Add(0xa0f1ae54, new Quest(0xa0f1ae54, "Arc500")); + mStaticActors.Add(0xa0f1ae55, new Quest(0xa0f1ae55, "Arc506")); + mStaticActors.Add(0xa0f1ae64, new Quest(0xa0f1ae64, "Lnc200")); + mStaticActors.Add(0xa0f1ae65, new Quest(0xa0f1ae65, "Lnc300")); + mStaticActors.Add(0xa0f1ae66, new Quest(0xa0f1ae66, "Lnc306")); + mStaticActors.Add(0xa0f1ae67, new Quest(0xa0f1ae67, "Lnc400")); + mStaticActors.Add(0xa0f1ae68, new Quest(0xa0f1ae68, "Lnc500")); + mStaticActors.Add(0xa0f1ae69, new Quest(0xa0f1ae69, "Lnc506")); + mStaticActors.Add(0xa0f1aea0, new Quest(0xa0f1aea0, "Thm200")); + mStaticActors.Add(0xa0f1aea1, new Quest(0xa0f1aea1, "Thm300")); + mStaticActors.Add(0xa0f1aea2, new Quest(0xa0f1aea2, "Thm306")); + mStaticActors.Add(0xa0f1aea3, new Quest(0xa0f1aea3, "Thm400")); + mStaticActors.Add(0xa0f1aeb4, new Quest(0xa0f1aeb4, "Cnj200")); + mStaticActors.Add(0xa0f1aeb5, new Quest(0xa0f1aeb5, "Cnj300")); + mStaticActors.Add(0xa0f1aeb6, new Quest(0xa0f1aeb6, "Cnj306")); + mStaticActors.Add(0xa0f1aeb7, new Quest(0xa0f1aeb7, "Cnj400")); + mStaticActors.Add(0xa0f1aeb8, new Quest(0xa0f1aeb8, "Cnj500")); + mStaticActors.Add(0xa0f1aeb9, new Quest(0xa0f1aeb9, "Cnj506")); + mStaticActors.Add(0xa0f1aec8, new Quest(0xa0f1aec8, "Acn200")); + mStaticActors.Add(0xa0f1aec9, new Quest(0xa0f1aec9, "Acn300")); + mStaticActors.Add(0xa0f1aeca, new Quest(0xa0f1aeca, "Acn306")); + mStaticActors.Add(0xa0f1aecb, new Quest(0xa0f1aecb, "Acn400")); + mStaticActors.Add(0xa0f1aecc, new Quest(0xa0f1aecc, "Acn500")); + mStaticActors.Add(0xa0f1aecd, new Quest(0xa0f1aecd, "Acn506")); + mStaticActors.Add(0xa0f1aedc, new Quest(0xa0f1aedc, "Wdk200")); + mStaticActors.Add(0xa0f1aedd, new Quest(0xa0f1aedd, "Wdk300")); + mStaticActors.Add(0xa0f1aede, new Quest(0xa0f1aede, "Wdk306")); + mStaticActors.Add(0xa0f1aedf, new Quest(0xa0f1aedf, "Wdk400")); + mStaticActors.Add(0xa0f1aee0, new Quest(0xa0f1aee0, "Wdk500")); + mStaticActors.Add(0xa0f1aee1, new Quest(0xa0f1aee1, "Wdk506")); + mStaticActors.Add(0xa0f1aef0, new Quest(0xa0f1aef0, "Bsm200")); + mStaticActors.Add(0xa0f1aef1, new Quest(0xa0f1aef1, "Bsm300")); + mStaticActors.Add(0xa0f1aef2, new Quest(0xa0f1aef2, "Bsm306")); + mStaticActors.Add(0xa0f1aef3, new Quest(0xa0f1aef3, "Bsm400")); + mStaticActors.Add(0xa0f1aef4, new Quest(0xa0f1aef4, "Bsm500")); + mStaticActors.Add(0xa0f1aef5, new Quest(0xa0f1aef5, "Bsm506")); + mStaticActors.Add(0xa0f1af18, new Quest(0xa0f1af18, "Gld200")); + mStaticActors.Add(0xa0f1af19, new Quest(0xa0f1af19, "Gld300")); + mStaticActors.Add(0xa0f1af1a, new Quest(0xa0f1af1a, "Gld306")); + mStaticActors.Add(0xa0f1af1b, new Quest(0xa0f1af1b, "Gld400")); + mStaticActors.Add(0xa0f1af1c, new Quest(0xa0f1af1c, "Gld500")); + mStaticActors.Add(0xa0f1af1d, new Quest(0xa0f1af1d, "Gld506")); + mStaticActors.Add(0xa0f1af2c, new Quest(0xa0f1af2c, "Tan200")); + mStaticActors.Add(0xa0f1af2d, new Quest(0xa0f1af2d, "Tan300")); + mStaticActors.Add(0xa0f1af2e, new Quest(0xa0f1af2e, "Tan306")); + mStaticActors.Add(0xa0f1af2f, new Quest(0xa0f1af2f, "Tan400")); + mStaticActors.Add(0xa0f1af30, new Quest(0xa0f1af30, "Tan500")); + mStaticActors.Add(0xa0f1af31, new Quest(0xa0f1af31, "Tan506")); + mStaticActors.Add(0xa0f1af40, new Quest(0xa0f1af40, "Wvr200")); + mStaticActors.Add(0xa0f1af41, new Quest(0xa0f1af41, "Wvr300")); + mStaticActors.Add(0xa0f1af42, new Quest(0xa0f1af42, "Wvr306")); + mStaticActors.Add(0xa0f1af43, new Quest(0xa0f1af43, "Wvr400")); + mStaticActors.Add(0xa0f1af44, new Quest(0xa0f1af44, "Wvr500")); + mStaticActors.Add(0xa0f1af45, new Quest(0xa0f1af45, "Wvr506")); + mStaticActors.Add(0xa0f1af54, new Quest(0xa0f1af54, "Alc200")); + mStaticActors.Add(0xa0f1af55, new Quest(0xa0f1af55, "Alc300")); + mStaticActors.Add(0xa0f1af56, new Quest(0xa0f1af56, "Alc306")); + mStaticActors.Add(0xa0f1af57, new Quest(0xa0f1af57, "Alc400")); + mStaticActors.Add(0xa0f1af58, new Quest(0xa0f1af58, "Alc500")); + mStaticActors.Add(0xa0f1af59, new Quest(0xa0f1af59, "Alc506")); + mStaticActors.Add(0xa0f1af68, new Quest(0xa0f1af68, "Cul200")); + mStaticActors.Add(0xa0f1af69, new Quest(0xa0f1af69, "Cul300")); + mStaticActors.Add(0xa0f1af6a, new Quest(0xa0f1af6a, "Cul306")); + mStaticActors.Add(0xa0f1af6b, new Quest(0xa0f1af6b, "Cul400")); + mStaticActors.Add(0xa0f1af6c, new Quest(0xa0f1af6c, "Cul500")); + mStaticActors.Add(0xa0f1af6d, new Quest(0xa0f1af6d, "Cul506")); + mStaticActors.Add(0xa0f1af7c, new Quest(0xa0f1af7c, "Min200")); + mStaticActors.Add(0xa0f1af7d, new Quest(0xa0f1af7d, "Min300")); + mStaticActors.Add(0xa0f1af7e, new Quest(0xa0f1af7e, "Min306")); + mStaticActors.Add(0xa0f1af7f, new Quest(0xa0f1af7f, "Min400")); + mStaticActors.Add(0xa0f1af80, new Quest(0xa0f1af80, "Min500")); + mStaticActors.Add(0xa0f1af81, new Quest(0xa0f1af81, "Min506")); + mStaticActors.Add(0xa0f1af90, new Quest(0xa0f1af90, "Hrv200")); + mStaticActors.Add(0xa0f1af91, new Quest(0xa0f1af91, "Hrv300")); + mStaticActors.Add(0xa0f1af92, new Quest(0xa0f1af92, "Hrv306")); + mStaticActors.Add(0xa0f1af93, new Quest(0xa0f1af93, "Hrv400")); + mStaticActors.Add(0xa0f1af94, new Quest(0xa0f1af94, "Hrv500")); + mStaticActors.Add(0xa0f1af95, new Quest(0xa0f1af95, "Hrv506")); + mStaticActors.Add(0xa0f1afa4, new Quest(0xa0f1afa4, "Fsh200")); + mStaticActors.Add(0xa0f1afa5, new Quest(0xa0f1afa5, "Fsh300")); + mStaticActors.Add(0xa0f1afa6, new Quest(0xa0f1afa6, "Fsh306")); + mStaticActors.Add(0xa0f1afa7, new Quest(0xa0f1afa7, "Fsh400")); + mStaticActors.Add(0xa0f1afa8, new Quest(0xa0f1afa8, "Fsh500")); + mStaticActors.Add(0xa0f1afa9, new Quest(0xa0f1afa9, "Fsh506")); + mStaticActors.Add(0xa0f1afcc, new Quest(0xa0f1afcc, "DftSea")); + mStaticActors.Add(0xa0f1afcd, new Quest(0xa0f1afcd, "DftFst")); + mStaticActors.Add(0xa0f1afce, new Quest(0xa0f1afce, "DftRoc")); + mStaticActors.Add(0xa0f1afcf, new Quest(0xa0f1afcf, "DftWil")); + mStaticActors.Add(0xa0f1afd0, new Quest(0xa0f1afd0, "DftSrt")); + mStaticActors.Add(0xa0f1afd1, new Quest(0xa0f1afd1, "DftLak")); + mStaticActors.Add(0xa0f1b008, new Quest(0xa0f1b008, "Etc0l1")); + mStaticActors.Add(0xa0f1b009, new Quest(0xa0f1b009, "Etc0l2")); + mStaticActors.Add(0xa0f1b00a, new Quest(0xa0f1b00a, "Etc0l3")); + mStaticActors.Add(0xa0f1b00b, new Quest(0xa0f1b00b, "Etc0l4")); + mStaticActors.Add(0xa0f1b00c, new Quest(0xa0f1b00c, "Etc0l5")); + mStaticActors.Add(0xa0f1b00d, new Quest(0xa0f1b00d, "Etc0l6")); + mStaticActors.Add(0xa0f1b00e, new Quest(0xa0f1b00e, "Etc0l7")); + mStaticActors.Add(0xa0f1b00f, new Quest(0xa0f1b00f, "Etc0l8")); + mStaticActors.Add(0xa0f1b010, new Quest(0xa0f1b010, "Etc0l9")); + mStaticActors.Add(0xa0f1b011, new Quest(0xa0f1b011, "Etc0g1")); + mStaticActors.Add(0xa0f1b012, new Quest(0xa0f1b012, "Etc0g2")); + mStaticActors.Add(0xa0f1b013, new Quest(0xa0f1b013, "Etc0g3")); + mStaticActors.Add(0xa0f1b014, new Quest(0xa0f1b014, "Etc0g4")); + mStaticActors.Add(0xa0f1b015, new Quest(0xa0f1b015, "Etc0g5")); + mStaticActors.Add(0xa0f1b016, new Quest(0xa0f1b016, "Etc0g6")); + mStaticActors.Add(0xa0f1b017, new Quest(0xa0f1b017, "Etc0g7")); + mStaticActors.Add(0xa0f1b018, new Quest(0xa0f1b018, "Etc0g8")); + mStaticActors.Add(0xa0f1b019, new Quest(0xa0f1b019, "Etc0g9")); + mStaticActors.Add(0xa0f1b01a, new Quest(0xa0f1b01a, "Etc0u1")); + mStaticActors.Add(0xa0f1b01b, new Quest(0xa0f1b01b, "Etc0u2")); + mStaticActors.Add(0xa0f1b01c, new Quest(0xa0f1b01c, "Etc0u3")); + mStaticActors.Add(0xa0f1b01d, new Quest(0xa0f1b01d, "Etc0u4")); + mStaticActors.Add(0xa0f1b01e, new Quest(0xa0f1b01e, "Etc0u5")); + mStaticActors.Add(0xa0f1b01f, new Quest(0xa0f1b01f, "Etc0u6")); + mStaticActors.Add(0xa0f1b020, new Quest(0xa0f1b020, "Etc0u7")); + mStaticActors.Add(0xa0f1b021, new Quest(0xa0f1b021, "Etc0u8")); + mStaticActors.Add(0xa0f1b022, new Quest(0xa0f1b022, "Etc0u9")); + mStaticActors.Add(0xa0f1b023, new Quest(0xa0f1b023, "Sum6a0")); + mStaticActors.Add(0xa0f1b024, new Quest(0xa0f1b024, "Sum7l0")); + mStaticActors.Add(0xa0f1b025, new Quest(0xa0f1b025, "Sum7t0")); + mStaticActors.Add(0xa0f1b026, new Quest(0xa0f1b026, "Sum8a0")); + mStaticActors.Add(0xa0f1b027, new Quest(0xa0f1b027, "Sum8l0")); + mStaticActors.Add(0xa0f1b028, new Quest(0xa0f1b028, "Sum8t0")); + mStaticActors.Add(0xa0f1b029, new Quest(0xa0f1b029, "Etc1l0")); + mStaticActors.Add(0xa0f1b02a, new Quest(0xa0f1b02a, "Etc1l1")); + mStaticActors.Add(0xa0f1b02b, new Quest(0xa0f1b02b, "Etc1l2")); + mStaticActors.Add(0xa0f1b02c, new Quest(0xa0f1b02c, "Etc1l3")); + mStaticActors.Add(0xa0f1b02d, new Quest(0xa0f1b02d, "Etc1l4")); + mStaticActors.Add(0xa0f1b02e, new Quest(0xa0f1b02e, "Etc1l5")); + mStaticActors.Add(0xa0f1b02f, new Quest(0xa0f1b02f, "Etc1l6")); + mStaticActors.Add(0xa0f1b030, new Quest(0xa0f1b030, "Etc1l7")); + mStaticActors.Add(0xa0f1b031, new Quest(0xa0f1b031, "Etc1l8")); + mStaticActors.Add(0xa0f1b032, new Quest(0xa0f1b032, "Etc1l9")); + mStaticActors.Add(0xa0f1b033, new Quest(0xa0f1b033, "Etc2l0")); + mStaticActors.Add(0xa0f1b034, new Quest(0xa0f1b034, "Etc2l1")); + mStaticActors.Add(0xa0f1b035, new Quest(0xa0f1b035, "Etc2l2")); + mStaticActors.Add(0xa0f1b036, new Quest(0xa0f1b036, "Etc2l3")); + mStaticActors.Add(0xa0f1b037, new Quest(0xa0f1b037, "Etc2l4")); + mStaticActors.Add(0xa0f1b038, new Quest(0xa0f1b038, "Etc2l5")); + mStaticActors.Add(0xa0f1b039, new Quest(0xa0f1b039, "Etc2l6")); + mStaticActors.Add(0xa0f1b03a, new Quest(0xa0f1b03a, "Etc2l7")); + mStaticActors.Add(0xa0f1b03b, new Quest(0xa0f1b03b, "Etc2l8")); + mStaticActors.Add(0xa0f1b03c, new Quest(0xa0f1b03c, "Etc2l9")); + mStaticActors.Add(0xa0f1b03d, new Quest(0xa0f1b03d, "Etc3l0")); + mStaticActors.Add(0xa0f1b03e, new Quest(0xa0f1b03e, "Etc1g0")); + mStaticActors.Add(0xa0f1b03f, new Quest(0xa0f1b03f, "Etc1g1")); + mStaticActors.Add(0xa0f1b040, new Quest(0xa0f1b040, "Etc1g2")); + mStaticActors.Add(0xa0f1b041, new Quest(0xa0f1b041, "Etc1g3")); + mStaticActors.Add(0xa0f1b042, new Quest(0xa0f1b042, "Etc1g4")); + mStaticActors.Add(0xa0f1b043, new Quest(0xa0f1b043, "Etc1g5")); + mStaticActors.Add(0xa0f1b044, new Quest(0xa0f1b044, "Etc1g6")); + mStaticActors.Add(0xa0f1b045, new Quest(0xa0f1b045, "Etc1g7")); + mStaticActors.Add(0xa0f1b046, new Quest(0xa0f1b046, "Etc1g8")); + mStaticActors.Add(0xa0f1b047, new Quest(0xa0f1b047, "Etc1g9")); + mStaticActors.Add(0xa0f1b048, new Quest(0xa0f1b048, "Etc2g0")); + mStaticActors.Add(0xa0f1b049, new Quest(0xa0f1b049, "Etc2g1")); + mStaticActors.Add(0xa0f1b04a, new Quest(0xa0f1b04a, "Etc2g2")); + mStaticActors.Add(0xa0f1b04b, new Quest(0xa0f1b04b, "Etc2g3")); + mStaticActors.Add(0xa0f1b04c, new Quest(0xa0f1b04c, "Etc2g4")); + mStaticActors.Add(0xa0f1b04d, new Quest(0xa0f1b04d, "Etc2g5")); + mStaticActors.Add(0xa0f1b04e, new Quest(0xa0f1b04e, "Etc2g6")); + mStaticActors.Add(0xa0f1b04f, new Quest(0xa0f1b04f, "Etc2g7")); + mStaticActors.Add(0xa0f1b050, new Quest(0xa0f1b050, "Etc2g8")); + mStaticActors.Add(0xa0f1b051, new Quest(0xa0f1b051, "Etc2g9")); + mStaticActors.Add(0xa0f1b052, new Quest(0xa0f1b052, "Etc3g0")); + mStaticActors.Add(0xa0f1b053, new Quest(0xa0f1b053, "Etc1u0")); + mStaticActors.Add(0xa0f1b054, new Quest(0xa0f1b054, "Etc1u1")); + mStaticActors.Add(0xa0f1b055, new Quest(0xa0f1b055, "Etc1u2")); + mStaticActors.Add(0xa0f1b056, new Quest(0xa0f1b056, "Etc1u3")); + mStaticActors.Add(0xa0f1b057, new Quest(0xa0f1b057, "Etc1u4")); + mStaticActors.Add(0xa0f1b058, new Quest(0xa0f1b058, "Etc1u5")); + mStaticActors.Add(0xa0f1b059, new Quest(0xa0f1b059, "Etc1u6")); + mStaticActors.Add(0xa0f1b05a, new Quest(0xa0f1b05a, "Etc1u7")); + mStaticActors.Add(0xa0f1b05b, new Quest(0xa0f1b05b, "Etc1u8")); + mStaticActors.Add(0xa0f1b05c, new Quest(0xa0f1b05c, "Etc1u9")); + mStaticActors.Add(0xa0f1b05d, new Quest(0xa0f1b05d, "Etc2u0")); + mStaticActors.Add(0xa0f1b05e, new Quest(0xa0f1b05e, "Etc2u1")); + mStaticActors.Add(0xa0f1b05f, new Quest(0xa0f1b05f, "Etc2u2")); + mStaticActors.Add(0xa0f1b060, new Quest(0xa0f1b060, "Etc2u3")); + mStaticActors.Add(0xa0f1b061, new Quest(0xa0f1b061, "Etc2u4")); + mStaticActors.Add(0xa0f1b062, new Quest(0xa0f1b062, "Etc2u5")); + mStaticActors.Add(0xa0f1b063, new Quest(0xa0f1b063, "Etc2u6")); + mStaticActors.Add(0xa0f1b064, new Quest(0xa0f1b064, "Etc2u7")); + mStaticActors.Add(0xa0f1b065, new Quest(0xa0f1b065, "Etc2u8")); + mStaticActors.Add(0xa0f1b066, new Quest(0xa0f1b066, "Etc2u9")); + mStaticActors.Add(0xa0f1b067, new Quest(0xa0f1b067, "Etc3u0")); + mStaticActors.Add(0xa0f1b068, new Quest(0xa0f1b068, "Etc1i0")); + mStaticActors.Add(0xa0f1b069, new Quest(0xa0f1b069, "Etc1i1")); + mStaticActors.Add(0xa0f1b06a, new Quest(0xa0f1b06a, "Etc1i2")); + mStaticActors.Add(0xa0f1b06b, new Quest(0xa0f1b06b, "Etc1i3")); + mStaticActors.Add(0xa0f1b06c, new Quest(0xa0f1b06c, "Etc1i4")); + mStaticActors.Add(0xa0f1b06d, new Quest(0xa0f1b06d, "Etc1i5")); + mStaticActors.Add(0xa0f1b06e, new Quest(0xa0f1b06e, "Etc1i6")); + mStaticActors.Add(0xa0f1b06f, new Quest(0xa0f1b06f, "Etc1i7")); + mStaticActors.Add(0xa0f1b070, new Quest(0xa0f1b070, "Etc1i8")); + mStaticActors.Add(0xa0f1b071, new Quest(0xa0f1b071, "Etc1i9")); + mStaticActors.Add(0xa0f1b072, new Quest(0xa0f1b072, "Etc2i0")); + mStaticActors.Add(0xa0f1b073, new Quest(0xa0f1b073, "Etc2i1")); + mStaticActors.Add(0xa0f1b074, new Quest(0xa0f1b074, "Etc2i2")); + mStaticActors.Add(0xa0f1b075, new Quest(0xa0f1b075, "Etc2i3")); + mStaticActors.Add(0xa0f1b076, new Quest(0xa0f1b076, "Etc2i4")); + mStaticActors.Add(0xa0f1b077, new Quest(0xa0f1b077, "Etc2i5")); + mStaticActors.Add(0xa0f1b078, new Quest(0xa0f1b078, "Etc2i6")); + mStaticActors.Add(0xa0f1b079, new Quest(0xa0f1b079, "Etc2i7")); + mStaticActors.Add(0xa0f1b07a, new Quest(0xa0f1b07a, "Etc2i8")); + mStaticActors.Add(0xa0f1b07b, new Quest(0xa0f1b07b, "Etc2i9")); + mStaticActors.Add(0xa0f1b07c, new Quest(0xa0f1b07c, "Etc3i0")); + mStaticActors.Add(0xa0f1b07d, new Quest(0xa0f1b07d, "Etc3i1")); + mStaticActors.Add(0xa0f1b07e, new Quest(0xa0f1b07e, "Etc3i2")); + mStaticActors.Add(0xa0f1b07f, new Quest(0xa0f1b07f, "Etc3i3")); + mStaticActors.Add(0xa0f1b080, new Quest(0xa0f1b080, "Etc3i4")); + mStaticActors.Add(0xa0f1b081, new Quest(0xa0f1b081, "Etc3i5")); + mStaticActors.Add(0xa0f1b082, new Quest(0xa0f1b082, "Etc3i6")); + mStaticActors.Add(0xa0f1b083, new Quest(0xa0f1b083, "Etc3i7")); + mStaticActors.Add(0xa0f1b084, new Quest(0xa0f1b084, "Etc3i8")); + mStaticActors.Add(0xa0f1b085, new Quest(0xa0f1b085, "Etc3i9")); + mStaticActors.Add(0xa0f1b086, new Quest(0xa0f1b086, "Etc3u1")); + mStaticActors.Add(0xa0f1b087, new Quest(0xa0f1b087, "Etc3u2")); + mStaticActors.Add(0xa0f1b088, new Quest(0xa0f1b088, "Etc3u3")); + mStaticActors.Add(0xa0f1b089, new Quest(0xa0f1b089, "Etc3u4")); + mStaticActors.Add(0xa0f1b08a, new Quest(0xa0f1b08a, "Etc3u5")); + mStaticActors.Add(0xa0f1b08b, new Quest(0xa0f1b08b, "Etc3u6")); + mStaticActors.Add(0xa0f1b08c, new Quest(0xa0f1b08c, "Etc3u7")); + mStaticActors.Add(0xa0f1b08d, new Quest(0xa0f1b08d, "Etc3u8")); + mStaticActors.Add(0xa0f1b08e, new Quest(0xa0f1b08e, "Etc3u9")); + mStaticActors.Add(0xa0f1b08f, new Quest(0xa0f1b08f, "Etc3g1")); + mStaticActors.Add(0xa0f1b090, new Quest(0xa0f1b090, "Etc3g2")); + mStaticActors.Add(0xa0f1b091, new Quest(0xa0f1b091, "Etc3g3")); + mStaticActors.Add(0xa0f1b092, new Quest(0xa0f1b092, "Etc3g4")); + mStaticActors.Add(0xa0f1b093, new Quest(0xa0f1b093, "Etc3g5")); + mStaticActors.Add(0xa0f1b094, new Quest(0xa0f1b094, "Etc3g6")); + mStaticActors.Add(0xa0f1b095, new Quest(0xa0f1b095, "Etc3g7")); + mStaticActors.Add(0xa0f1b096, new Quest(0xa0f1b096, "Etc3g8")); + mStaticActors.Add(0xa0f1b097, new Quest(0xa0f1b097, "Etc3g9")); + mStaticActors.Add(0xa0f1b098, new Quest(0xa0f1b098, "Etc3l1")); + mStaticActors.Add(0xa0f1b099, new Quest(0xa0f1b099, "Etc3l2")); + mStaticActors.Add(0xa0f1b09a, new Quest(0xa0f1b09a, "Etc3l3")); + mStaticActors.Add(0xa0f1b09b, new Quest(0xa0f1b09b, "Etc3l4")); + mStaticActors.Add(0xa0f1b09c, new Quest(0xa0f1b09c, "Etc3l5")); + mStaticActors.Add(0xa0f1b09d, new Quest(0xa0f1b09d, "Etc3l6")); + mStaticActors.Add(0xa0f1b09e, new Quest(0xa0f1b09e, "Etc3l7")); + mStaticActors.Add(0xa0f1b09f, new Quest(0xa0f1b09f, "Etc3l8")); + mStaticActors.Add(0xa0f1b0a0, new Quest(0xa0f1b0a0, "Etc3l9")); + mStaticActors.Add(0xa0f1b0a1, new Quest(0xa0f1b0a1, "Wld0u1")); + mStaticActors.Add(0xa0f1b0a2, new Quest(0xa0f1b0a2, "Wld0u2")); + mStaticActors.Add(0xa0f1b0a3, new Quest(0xa0f1b0a3, "Wld0u3")); + mStaticActors.Add(0xa0f1b0a4, new Quest(0xa0f1b0a4, "Wld0u4")); + mStaticActors.Add(0xa0f1b0a5, new Quest(0xa0f1b0a5, "Wld0u5")); + mStaticActors.Add(0xa0f1b0a6, new Quest(0xa0f1b0a6, "Wld0u6")); + mStaticActors.Add(0xa0f1b0a7, new Quest(0xa0f1b0a7, "Wld0u7")); + mStaticActors.Add(0xa0f1b0a8, new Quest(0xa0f1b0a8, "Wld0u8")); + mStaticActors.Add(0xa0f1b0a9, new Quest(0xa0f1b0a9, "Wld0u9")); + mStaticActors.Add(0xa0f1b0aa, new Quest(0xa0f1b0aa, "Wld0g1")); + mStaticActors.Add(0xa0f1b0ab, new Quest(0xa0f1b0ab, "Wld0g2")); + mStaticActors.Add(0xa0f1b0ac, new Quest(0xa0f1b0ac, "Wld0g3")); + mStaticActors.Add(0xa0f1b0ad, new Quest(0xa0f1b0ad, "Wld0g4")); + mStaticActors.Add(0xa0f1b0ae, new Quest(0xa0f1b0ae, "Wld0g5")); + mStaticActors.Add(0xa0f1b0af, new Quest(0xa0f1b0af, "Wld0g6")); + mStaticActors.Add(0xa0f1b0b0, new Quest(0xa0f1b0b0, "Wld0g7")); + mStaticActors.Add(0xa0f1b0b1, new Quest(0xa0f1b0b1, "Wld0g8")); + mStaticActors.Add(0xa0f1b0b2, new Quest(0xa0f1b0b2, "Wld0g9")); + mStaticActors.Add(0xa0f1b0b3, new Quest(0xa0f1b0b3, "Wld0l1")); + mStaticActors.Add(0xa0f1b0b4, new Quest(0xa0f1b0b4, "Wld0l2")); + mStaticActors.Add(0xa0f1b0b5, new Quest(0xa0f1b0b5, "Wld0l3")); + mStaticActors.Add(0xa0f1b0b6, new Quest(0xa0f1b0b6, "Wld0l4")); + mStaticActors.Add(0xa0f1b0b7, new Quest(0xa0f1b0b7, "Wld0l5")); + mStaticActors.Add(0xa0f1b0b8, new Quest(0xa0f1b0b8, "Wld0l6")); + mStaticActors.Add(0xa0f1b0b9, new Quest(0xa0f1b0b9, "Wld0l7")); + mStaticActors.Add(0xa0f1b0ba, new Quest(0xa0f1b0ba, "Wld0l8")); + mStaticActors.Add(0xa0f1b0bb, new Quest(0xa0f1b0bb, "Wld0l9")); + mStaticActors.Add(0xa0f1b0bc, new Quest(0xa0f1b0bc, "Wld0i1")); + mStaticActors.Add(0xa0f1b0bd, new Quest(0xa0f1b0bd, "Wld0i2")); + mStaticActors.Add(0xa0f1b0be, new Quest(0xa0f1b0be, "Wld0i3")); + mStaticActors.Add(0xa0f1b0bf, new Quest(0xa0f1b0bf, "Wld0i4")); + mStaticActors.Add(0xa0f1b0c0, new Quest(0xa0f1b0c0, "Wld0i5")); + mStaticActors.Add(0xa0f1b0c1, new Quest(0xa0f1b0c1, "Wld0i6")); + mStaticActors.Add(0xa0f1b0c2, new Quest(0xa0f1b0c2, "Wld0i7")); + mStaticActors.Add(0xa0f1b0c3, new Quest(0xa0f1b0c3, "Wld0i8")); + mStaticActors.Add(0xa0f1b0c4, new Quest(0xa0f1b0c4, "Wld0i9")); + mStaticActors.Add(0xa0f1b0c5, new Quest(0xa0f1b0c5, "Spl0u1")); + mStaticActors.Add(0xa0f1b0c6, new Quest(0xa0f1b0c6, "Spl0u2")); + mStaticActors.Add(0xa0f1b0c7, new Quest(0xa0f1b0c7, "Spl0u3")); + mStaticActors.Add(0xa0f1b0c8, new Quest(0xa0f1b0c8, "Spl0u4")); + mStaticActors.Add(0xa0f1b0c9, new Quest(0xa0f1b0c9, "Spl0u5")); + mStaticActors.Add(0xa0f1b0ca, new Quest(0xa0f1b0ca, "Spl0g1")); + mStaticActors.Add(0xa0f1b0cb, new Quest(0xa0f1b0cb, "Spl0g2")); + mStaticActors.Add(0xa0f1b0cc, new Quest(0xa0f1b0cc, "Spl0g3")); + mStaticActors.Add(0xa0f1b0cd, new Quest(0xa0f1b0cd, "Spl0g4")); + mStaticActors.Add(0xa0f1b0ce, new Quest(0xa0f1b0ce, "Spl0g5")); + mStaticActors.Add(0xa0f1b0cf, new Quest(0xa0f1b0cf, "Spl0i1")); + mStaticActors.Add(0xa0f1b0d0, new Quest(0xa0f1b0d0, "Spl0i2")); + mStaticActors.Add(0xa0f1b0d1, new Quest(0xa0f1b0d1, "Spl0i3")); + mStaticActors.Add(0xa0f1b0d2, new Quest(0xa0f1b0d2, "Spl0i4")); + mStaticActors.Add(0xa0f1b0d3, new Quest(0xa0f1b0d3, "Spl0i5")); + mStaticActors.Add(0xa0f1b0d4, new Quest(0xa0f1b0d4, "Spl0l1")); + mStaticActors.Add(0xa0f1b0d5, new Quest(0xa0f1b0d5, "Spl0l2")); + mStaticActors.Add(0xa0f1b0d6, new Quest(0xa0f1b0d6, "Spl0l3")); + mStaticActors.Add(0xa0f1b0d7, new Quest(0xa0f1b0d7, "Spl0l4")); + mStaticActors.Add(0xa0f1b0d8, new Quest(0xa0f1b0d8, "Spl0l5")); + mStaticActors.Add(0xa0f1b0d9, new Quest(0xa0f1b0d9, "Noc000")); + mStaticActors.Add(0xa0f1b0da, new Quest(0xa0f1b0da, "Etc303")); + mStaticActors.Add(0xa0f1b0db, new Quest(0xa0f1b0db, "Etc101")); + mStaticActors.Add(0xa0f1b0dc, new Quest(0xa0f1b0dc, "Etc102")); + mStaticActors.Add(0xa0f1b0dd, new Quest(0xa0f1b0dd, "Etc103")); + mStaticActors.Add(0xa0f1b0de, new Quest(0xa0f1b0de, "Etc104")); + mStaticActors.Add(0xa0f1b0df, new Quest(0xa0f1b0df, "Etc105")); + mStaticActors.Add(0xa0f1b0e0, new Quest(0xa0f1b0e0, "Sum6m0")); + mStaticActors.Add(0xa0f1b0e1, new Quest(0xa0f1b0e1, "Noc001")); + mStaticActors.Add(0xa0f1b0e2, new Quest(0xa0f1b0e2, "Etc200")); + mStaticActors.Add(0xa0f1b0e3, new Quest(0xa0f1b0e3, "Etc201")); + mStaticActors.Add(0xa0f1b0e4, new Quest(0xa0f1b0e4, "Etc202")); + mStaticActors.Add(0xa0f1b0e5, new Quest(0xa0f1b0e5, "Etc202")); + mStaticActors.Add(0xa0f1b0e6, new Quest(0xa0f1b0e6, "Etc202")); + mStaticActors.Add(0xa0f1b0e7, new Quest(0xa0f1b0e7, "Etc202")); + mStaticActors.Add(0xa0f1b0e8, new Quest(0xa0f1b0e8, "Etc202")); + mStaticActors.Add(0xa0f1b0ec, new Quest(0xa0f1b0ec, "Etc5g0")); + mStaticActors.Add(0xa0f1b0ed, new Quest(0xa0f1b0ed, "Etc5g1")); + mStaticActors.Add(0xa0f1b0f6, new Quest(0xa0f1b0f6, "Etc5l0")); + mStaticActors.Add(0xa0f1b0f7, new Quest(0xa0f1b0f7, "Etc5l1")); + mStaticActors.Add(0xa0f1b0f8, new Quest(0xa0f1b0f8, "Etc5l2")); + mStaticActors.Add(0xa0f1b0f9, new Quest(0xa0f1b0f9, "Etc5l3")); + mStaticActors.Add(0xa0f1b100, new Quest(0xa0f1b100, "Etc5u0")); + mStaticActors.Add(0xa0f1b101, new Quest(0xa0f1b101, "Etc5u1")); + mStaticActors.Add(0xa0f1b102, new Quest(0xa0f1b102, "Etc5u2")); + mStaticActors.Add(0xa0f1b103, new Quest(0xa0f1b103, "Etc5u3")); + mStaticActors.Add(0xa0f1b10a, new Quest(0xa0f1b10a, "Spl000")); + mStaticActors.Add(0xa0f1b10b, new Quest(0xa0f1b10b, "Spl101")); + mStaticActors.Add(0xa0f1b10c, new Quest(0xa0f1b10c, "Spl102")); + mStaticActors.Add(0xa0f1b10d, new Quest(0xa0f1b10d, "Spl103")); + mStaticActors.Add(0xa0f1b10e, new Quest(0xa0f1b10e, "Noc002")); + mStaticActors.Add(0xa0f1b10f, new Quest(0xa0f1b10f, "Noc003")); + mStaticActors.Add(0xa0f1b113, new Quest(0xa0f1b113, "Sum6g0")); + mStaticActors.Add(0xa0f1b114, new Quest(0xa0f1b114, "Etc106")); + mStaticActors.Add(0xa0f1b115, new Quest(0xa0f1b115, "Etc304")); + mStaticActors.Add(0xa0f1b116, new Quest(0xa0f1b116, "Sum6w0")); + mStaticActors.Add(0xa0f1b261, new Quest(0xa0f1b261, "War0j1")); + mStaticActors.Add(0xa0f1b262, new Quest(0xa0f1b262, "War0j2")); + mStaticActors.Add(0xa0f1b263, new Quest(0xa0f1b263, "War0j3")); + mStaticActors.Add(0xa0f1b264, new Quest(0xa0f1b264, "War0j4")); + mStaticActors.Add(0xa0f1b265, new Quest(0xa0f1b265, "War0j5")); + mStaticActors.Add(0xa0f1b266, new Quest(0xa0f1b266, "War0j6")); + mStaticActors.Add(0xa0f1b275, new Quest(0xa0f1b275, "Mnk0j1")); + mStaticActors.Add(0xa0f1b276, new Quest(0xa0f1b276, "Mnk0j2")); + mStaticActors.Add(0xa0f1b277, new Quest(0xa0f1b277, "Mnk0j3")); + mStaticActors.Add(0xa0f1b278, new Quest(0xa0f1b278, "Mnk0j4")); + mStaticActors.Add(0xa0f1b279, new Quest(0xa0f1b279, "Mnk0j5")); + mStaticActors.Add(0xa0f1b27a, new Quest(0xa0f1b27a, "Mnk0j6")); + mStaticActors.Add(0xa0f1b289, new Quest(0xa0f1b289, "Whm0j1")); + mStaticActors.Add(0xa0f1b28a, new Quest(0xa0f1b28a, "Whm0j2")); + mStaticActors.Add(0xa0f1b28b, new Quest(0xa0f1b28b, "Whm0j3")); + mStaticActors.Add(0xa0f1b28c, new Quest(0xa0f1b28c, "Whm0j4")); + mStaticActors.Add(0xa0f1b28d, new Quest(0xa0f1b28d, "Whm0j5")); + mStaticActors.Add(0xa0f1b28e, new Quest(0xa0f1b28e, "Whm0j6")); + mStaticActors.Add(0xa0f1b29d, new Quest(0xa0f1b29d, "Blm0j1")); + mStaticActors.Add(0xa0f1b29e, new Quest(0xa0f1b29e, "Blm0j2")); + mStaticActors.Add(0xa0f1b29f, new Quest(0xa0f1b29f, "Blm0j3")); + mStaticActors.Add(0xa0f1b2a0, new Quest(0xa0f1b2a0, "Blm0j4")); + mStaticActors.Add(0xa0f1b2a1, new Quest(0xa0f1b2a1, "Blm0j5")); + mStaticActors.Add(0xa0f1b2a2, new Quest(0xa0f1b2a2, "Blm0j6")); + mStaticActors.Add(0xa0f1b2b1, new Quest(0xa0f1b2b1, "Pld0j1")); + mStaticActors.Add(0xa0f1b2b2, new Quest(0xa0f1b2b2, "Pld0j2")); + mStaticActors.Add(0xa0f1b2b3, new Quest(0xa0f1b2b3, "Pld0j3")); + mStaticActors.Add(0xa0f1b2b4, new Quest(0xa0f1b2b4, "Pld0j4")); + mStaticActors.Add(0xa0f1b2b5, new Quest(0xa0f1b2b5, "Pld0j5")); + mStaticActors.Add(0xa0f1b2b6, new Quest(0xa0f1b2b6, "Pld0j6")); + mStaticActors.Add(0xa0f1b2c5, new Quest(0xa0f1b2c5, "Brd0j1")); + mStaticActors.Add(0xa0f1b2c6, new Quest(0xa0f1b2c6, "Brd0j2")); + mStaticActors.Add(0xa0f1b2c7, new Quest(0xa0f1b2c7, "Brd0j3")); + mStaticActors.Add(0xa0f1b2c8, new Quest(0xa0f1b2c8, "Brd0j4")); + mStaticActors.Add(0xa0f1b2c9, new Quest(0xa0f1b2c9, "Brd0j5")); + mStaticActors.Add(0xa0f1b2ca, new Quest(0xa0f1b2ca, "Brd0j6")); + mStaticActors.Add(0xa0f1b2d9, new Quest(0xa0f1b2d9, "Drg0j1")); + mStaticActors.Add(0xa0f1b2da, new Quest(0xa0f1b2da, "Drg0j2")); + mStaticActors.Add(0xa0f1b2db, new Quest(0xa0f1b2db, "Drg0j3")); + mStaticActors.Add(0xa0f1b2dc, new Quest(0xa0f1b2dc, "Drg0j4")); + mStaticActors.Add(0xa0f1b2dd, new Quest(0xa0f1b2dd, "Drg0j5")); + mStaticActors.Add(0xa0f1b2de, new Quest(0xa0f1b2de, "Drg0j6")); + mStaticActors.Add(0xa0f1b329, new Quest(0xa0f1b329, "Com0l1")); + mStaticActors.Add(0xa0f1b32a, new Quest(0xa0f1b32a, "Com0l2")); + mStaticActors.Add(0xa0f1b32b, new Quest(0xa0f1b32b, "Com0l3")); + mStaticActors.Add(0xa0f1b32c, new Quest(0xa0f1b32c, "Com0l4")); + mStaticActors.Add(0xa0f1b32d, new Quest(0xa0f1b32d, "Com0l5")); + mStaticActors.Add(0xa0f1b32e, new Quest(0xa0f1b32e, "Com0l6")); + mStaticActors.Add(0xa0f1b32f, new Quest(0xa0f1b32f, "Com0l7")); + mStaticActors.Add(0xa0f1b330, new Quest(0xa0f1b330, "Com0l8")); + mStaticActors.Add(0xa0f1b331, new Quest(0xa0f1b331, "Com0l9")); + mStaticActors.Add(0xa0f1b332, new Quest(0xa0f1b332, "Com5l0")); + mStaticActors.Add(0xa0f1b333, new Quest(0xa0f1b333, "Com5l1")); + mStaticActors.Add(0xa0f1b334, new Quest(0xa0f1b334, "Com5l2")); + mStaticActors.Add(0xa0f1b335, new Quest(0xa0f1b335, "Com5l3")); + mStaticActors.Add(0xa0f1b336, new Quest(0xa0f1b336, "Com5l4")); + mStaticActors.Add(0xa0f1b337, new Quest(0xa0f1b337, "Com5l5")); + mStaticActors.Add(0xa0f1b338, new Quest(0xa0f1b338, "Gcl101")); + mStaticActors.Add(0xa0f1b339, new Quest(0xa0f1b339, "Gcl301")); + mStaticActors.Add(0xa0f1b33a, new Quest(0xa0f1b33a, "Gcl302")); + mStaticActors.Add(0xa0f1b33b, new Quest(0xa0f1b33b, "Gcl303")); + mStaticActors.Add(0xa0f1b33c, new Quest(0xa0f1b33c, "Gcl304")); + mStaticActors.Add(0xa0f1b33d, new Quest(0xa0f1b33d, "Gcl501")); + mStaticActors.Add(0xa0f1b33e, new Quest(0xa0f1b33e, "Gcl502")); + mStaticActors.Add(0xa0f1b33f, new Quest(0xa0f1b33f, "Gcl601")); + mStaticActors.Add(0xa0f1b340, new Quest(0xa0f1b340, "Gcl602")); + mStaticActors.Add(0xa0f1b341, new Quest(0xa0f1b341, "Gcl603")); + mStaticActors.Add(0xa0f1b342, new Quest(0xa0f1b342, "Gcl305")); + mStaticActors.Add(0xa0f1b343, new Quest(0xa0f1b343, "Gcl102")); + mStaticActors.Add(0xa0f1b344, new Quest(0xa0f1b344, "Gcl701")); + mStaticActors.Add(0xa0f1b345, new Quest(0xa0f1b345, "Gcl103")); + mStaticActors.Add(0xa0f1b346, new Quest(0xa0f1b346, "Gcl104")); + mStaticActors.Add(0xa0f1b347, new Quest(0xa0f1b347, "Gcl105")); + mStaticActors.Add(0xa0f1b348, new Quest(0xa0f1b348, "Gcl106")); + mStaticActors.Add(0xa0f1b349, new Quest(0xa0f1b349, "Gcl107")); + mStaticActors.Add(0xa0f1b34a, new Quest(0xa0f1b34a, "Gcl702")); + mStaticActors.Add(0xa0f1b3f1, new Quest(0xa0f1b3f1, "Com0g1")); + mStaticActors.Add(0xa0f1b3f2, new Quest(0xa0f1b3f2, "Com0g2")); + mStaticActors.Add(0xa0f1b3f3, new Quest(0xa0f1b3f3, "Com0g3")); + mStaticActors.Add(0xa0f1b3f4, new Quest(0xa0f1b3f4, "Com0g4")); + mStaticActors.Add(0xa0f1b3f5, new Quest(0xa0f1b3f5, "Com0g5")); + mStaticActors.Add(0xa0f1b3f6, new Quest(0xa0f1b3f6, "Com0g6")); + mStaticActors.Add(0xa0f1b3f7, new Quest(0xa0f1b3f7, "Com0g7")); + mStaticActors.Add(0xa0f1b3f8, new Quest(0xa0f1b3f8, "Com0g8")); + mStaticActors.Add(0xa0f1b3f9, new Quest(0xa0f1b3f9, "Com0g9")); + mStaticActors.Add(0xa0f1b3fa, new Quest(0xa0f1b3fa, "Com5g0")); + mStaticActors.Add(0xa0f1b3fb, new Quest(0xa0f1b3fb, "Com5g1")); + mStaticActors.Add(0xa0f1b3fc, new Quest(0xa0f1b3fc, "Com5g2")); + mStaticActors.Add(0xa0f1b3fd, new Quest(0xa0f1b3fd, "Com5g3")); + mStaticActors.Add(0xa0f1b3fe, new Quest(0xa0f1b3fe, "Com5g4")); + mStaticActors.Add(0xa0f1b3ff, new Quest(0xa0f1b3ff, "Com5g5")); + mStaticActors.Add(0xa0f1b400, new Quest(0xa0f1b400, "Gcl101")); + mStaticActors.Add(0xa0f1b401, new Quest(0xa0f1b401, "Gcg301")); + mStaticActors.Add(0xa0f1b402, new Quest(0xa0f1b402, "Gcg302")); + mStaticActors.Add(0xa0f1b403, new Quest(0xa0f1b403, "Gcg303")); + mStaticActors.Add(0xa0f1b404, new Quest(0xa0f1b404, "Gcg304")); + mStaticActors.Add(0xa0f1b405, new Quest(0xa0f1b405, "Gcg501")); + mStaticActors.Add(0xa0f1b406, new Quest(0xa0f1b406, "Gcg502")); + mStaticActors.Add(0xa0f1b407, new Quest(0xa0f1b407, "Gcg601")); + mStaticActors.Add(0xa0f1b408, new Quest(0xa0f1b408, "Gcg602")); + mStaticActors.Add(0xa0f1b409, new Quest(0xa0f1b409, "Gcg603")); + mStaticActors.Add(0xa0f1b40a, new Quest(0xa0f1b40a, "Gcg305")); + mStaticActors.Add(0xa0f1b40b, new Quest(0xa0f1b40b, "Gcg102")); + mStaticActors.Add(0xa0f1b40c, new Quest(0xa0f1b40c, "Gcg701")); + mStaticActors.Add(0xa0f1b40d, new Quest(0xa0f1b40d, "Gcg103")); + mStaticActors.Add(0xa0f1b40e, new Quest(0xa0f1b40e, "Gcl104")); + mStaticActors.Add(0xa0f1b40f, new Quest(0xa0f1b40f, "Gcl105")); + mStaticActors.Add(0xa0f1b410, new Quest(0xa0f1b410, "Gcl106")); + mStaticActors.Add(0xa0f1b411, new Quest(0xa0f1b411, "Gcl107")); + mStaticActors.Add(0xa0f1b412, new Quest(0xa0f1b412, "Gcg702")); + mStaticActors.Add(0xa0f1b4b9, new Quest(0xa0f1b4b9, "Com0u1")); + mStaticActors.Add(0xa0f1b4ba, new Quest(0xa0f1b4ba, "Com0u2")); + mStaticActors.Add(0xa0f1b4bb, new Quest(0xa0f1b4bb, "Com0u3")); + mStaticActors.Add(0xa0f1b4bc, new Quest(0xa0f1b4bc, "Com0u4")); + mStaticActors.Add(0xa0f1b4bd, new Quest(0xa0f1b4bd, "Com0u5")); + mStaticActors.Add(0xa0f1b4be, new Quest(0xa0f1b4be, "Com0u6")); + mStaticActors.Add(0xa0f1b4bf, new Quest(0xa0f1b4bf, "Com0u7")); + mStaticActors.Add(0xa0f1b4c0, new Quest(0xa0f1b4c0, "Com0u8")); + mStaticActors.Add(0xa0f1b4c1, new Quest(0xa0f1b4c1, "Com0u9")); + mStaticActors.Add(0xa0f1b4c2, new Quest(0xa0f1b4c2, "Com5u0")); + mStaticActors.Add(0xa0f1b4c3, new Quest(0xa0f1b4c3, "Com5u1")); + mStaticActors.Add(0xa0f1b4c4, new Quest(0xa0f1b4c4, "Com5u2")); + mStaticActors.Add(0xa0f1b4c5, new Quest(0xa0f1b4c5, "Com5u3")); + mStaticActors.Add(0xa0f1b4c6, new Quest(0xa0f1b4c6, "Com5u4")); + mStaticActors.Add(0xa0f1b4c7, new Quest(0xa0f1b4c7, "Com5u5")); + mStaticActors.Add(0xa0f1b4c8, new Quest(0xa0f1b4c8, "Gcl101")); + mStaticActors.Add(0xa0f1b4c9, new Quest(0xa0f1b4c9, "Gcu301")); + mStaticActors.Add(0xa0f1b4ca, new Quest(0xa0f1b4ca, "Gcu302")); + mStaticActors.Add(0xa0f1b4cb, new Quest(0xa0f1b4cb, "Gcu303")); + mStaticActors.Add(0xa0f1b4cc, new Quest(0xa0f1b4cc, "Gcu304")); + mStaticActors.Add(0xa0f1b4cd, new Quest(0xa0f1b4cd, "Gcu501")); + mStaticActors.Add(0xa0f1b4ce, new Quest(0xa0f1b4ce, "Gcu502")); + mStaticActors.Add(0xa0f1b4cf, new Quest(0xa0f1b4cf, "Gcu601")); + mStaticActors.Add(0xa0f1b4d0, new Quest(0xa0f1b4d0, "Gcu602")); + mStaticActors.Add(0xa0f1b4d1, new Quest(0xa0f1b4d1, "Gcu603")); + mStaticActors.Add(0xa0f1b4d2, new Quest(0xa0f1b4d2, "Gcu305")); + mStaticActors.Add(0xa0f1b4d3, new Quest(0xa0f1b4d3, "Gcu102")); + mStaticActors.Add(0xa0f1b4d4, new Quest(0xa0f1b4d4, "Gcu701")); + mStaticActors.Add(0xa0f1b4d5, new Quest(0xa0f1b4d5, "Gcu103")); + mStaticActors.Add(0xa0f1b4d6, new Quest(0xa0f1b4d6, "Gcl104")); + mStaticActors.Add(0xa0f1b4d7, new Quest(0xa0f1b4d7, "Gcl105")); + mStaticActors.Add(0xa0f1b4d8, new Quest(0xa0f1b4d8, "Gcl106")); + mStaticActors.Add(0xa0f1b4d9, new Quest(0xa0f1b4d9, "Gcl107")); + mStaticActors.Add(0xa0f1b4da, new Quest(0xa0f1b4da, "Gcu702")); + mStaticActors.Add(0xa0f1d4c1, new Quest(0xa0f1d4c1, "PgConv")); + mStaticActors.Add(0xa0f1d4c2, new Quest(0xa0f1d4c2, "PgConv")); + mStaticActors.Add(0xa0f1d4c3, new Quest(0xa0f1d4c3, "PgConv")); + mStaticActors.Add(0xa0f1d4c4, new Quest(0xa0f1d4c4, "PgConv")); + mStaticActors.Add(0xa0f1d4c5, new Quest(0xa0f1d4c5, "PgConv")); + mStaticActors.Add(0xa0f1d4c6, new Quest(0xa0f1d4c6, "PgConv")); + mStaticActors.Add(0xa0f1d4c7, new Quest(0xa0f1d4c7, "PgConv")); + mStaticActors.Add(0xa0f1d4c8, new Quest(0xa0f1d4c8, "PgConv")); + mStaticActors.Add(0xa0f1d4c9, new Quest(0xa0f1d4c9, "PgConv")); + mStaticActors.Add(0xa0f1d4ca, new Quest(0xa0f1d4ca, "PgConv")); + mStaticActors.Add(0xa0f1d4cb, new Quest(0xa0f1d4cb, "PgConv")); + mStaticActors.Add(0xa0f1d4cc, new Quest(0xa0f1d4cc, "PgConv")); + mStaticActors.Add(0xa0f1d4cd, new Quest(0xa0f1d4cd, "PgConv")); + mStaticActors.Add(0xa0f1d4ce, new Quest(0xa0f1d4ce, "PgConv")); + mStaticActors.Add(0xa0f1d4cf, new Quest(0xa0f1d4cf, "PgConv")); + mStaticActors.Add(0xa0f1d4d0, new Quest(0xa0f1d4d0, "PgConv")); + mStaticActors.Add(0xa0f1d4d1, new Quest(0xa0f1d4d1, "PgConv")); + mStaticActors.Add(0xa0f1d4d2, new Quest(0xa0f1d4d2, "PgConv")); + mStaticActors.Add(0xa0f1d4d3, new Quest(0xa0f1d4d3, "PgConv")); + mStaticActors.Add(0xa0f1d4d4, new Quest(0xa0f1d4d4, "PgConv")); + mStaticActors.Add(0xa0f1d4d5, new Quest(0xa0f1d4d5, "PgConv")); + mStaticActors.Add(0xa0f1d4d6, new Quest(0xa0f1d4d6, "PgConv")); + mStaticActors.Add(0xa0f1d4d7, new Quest(0xa0f1d4d7, "PgConv")); + mStaticActors.Add(0xa0f1d4d8, new Quest(0xa0f1d4d8, "PgConv")); + mStaticActors.Add(0xa0f1d4d9, new Quest(0xa0f1d4d9, "PgConv")); + mStaticActors.Add(0xa0f1d4da, new Quest(0xa0f1d4da, "PgConv")); + mStaticActors.Add(0xa0f1d4db, new Quest(0xa0f1d4db, "PgConv")); + mStaticActors.Add(0xa0f1d4dc, new Quest(0xa0f1d4dc, "PgConv")); + mStaticActors.Add(0xa0f1d4dd, new Quest(0xa0f1d4dd, "PgConv")); + mStaticActors.Add(0xa0f1d4de, new Quest(0xa0f1d4de, "PgConv")); + mStaticActors.Add(0xa0f1d4df, new Quest(0xa0f1d4df, "PgConv")); + mStaticActors.Add(0xa0f1d4e0, new Quest(0xa0f1d4e0, "PgConv")); + mStaticActors.Add(0xa0f1d4e1, new Quest(0xa0f1d4e1, "PgConv")); + mStaticActors.Add(0xa0f1d4e2, new Quest(0xa0f1d4e2, "PgConv")); + mStaticActors.Add(0xa0f1d4e3, new Quest(0xa0f1d4e3, "PgAeth")); + mStaticActors.Add(0xa0f1d4e4, new Quest(0xa0f1d4e4, "PgAeth")); + mStaticActors.Add(0xa0f1d4e5, new Quest(0xa0f1d4e5, "PgAeth")); + mStaticActors.Add(0xa0f1d4e6, new Quest(0xa0f1d4e6, "PgAeth")); + mStaticActors.Add(0xa0f1d4e7, new Quest(0xa0f1d4e7, "PgAeth")); + mStaticActors.Add(0xa0f1d4e8, new Quest(0xa0f1d4e8, "PgAeth")); + mStaticActors.Add(0xa0f1d4e9, new Quest(0xa0f1d4e9, "PgAeth")); + mStaticActors.Add(0xa0f1d4ea, new Quest(0xa0f1d4ea, "PgAeth")); + mStaticActors.Add(0xa0f1d4eb, new Quest(0xa0f1d4eb, "PgAeth")); + mStaticActors.Add(0xa0f1d4ec, new Quest(0xa0f1d4ec, "PgAeth")); + mStaticActors.Add(0xa0f1d4ed, new Quest(0xa0f1d4ed, "PgAeth")); + mStaticActors.Add(0xa0f1d4ee, new Quest(0xa0f1d4ee, "PgAeth")); + mStaticActors.Add(0xa0f1d4ef, new Quest(0xa0f1d4ef, "PgAeth")); + mStaticActors.Add(0xa0f1d4f0, new Quest(0xa0f1d4f0, "PgAeth")); + mStaticActors.Add(0xa0f1d4f1, new Quest(0xa0f1d4f1, "PgAeth")); + mStaticActors.Add(0xa0f1d4f2, new Quest(0xa0f1d4f2, "PgAeth")); + mStaticActors.Add(0xa0f1d4f3, new Quest(0xa0f1d4f3, "PgAeth")); + mStaticActors.Add(0xa0f1d4f4, new Quest(0xa0f1d4f4, "PgAeth")); + mStaticActors.Add(0xa0f1d4f5, new Quest(0xa0f1d4f5, "PgAeth")); + mStaticActors.Add(0xa0f1d4f6, new Quest(0xa0f1d4f6, "PgAeth")); + mStaticActors.Add(0xa0f1d4f7, new Quest(0xa0f1d4f7, "PgAeth")); + mStaticActors.Add(0xa0f1d4f8, new Quest(0xa0f1d4f8, "PgAeth")); + mStaticActors.Add(0xa0f1d4f9, new Quest(0xa0f1d4f9, "PgAeth")); + mStaticActors.Add(0xa0f1d4fa, new Quest(0xa0f1d4fa, "PgAeth")); + mStaticActors.Add(0xa0f1d4fb, new Quest(0xa0f1d4fb, "PgAeth")); + mStaticActors.Add(0xa0f1d4fc, new Quest(0xa0f1d4fc, "PgAeth")); + mStaticActors.Add(0xa0f1d4fd, new Quest(0xa0f1d4fd, "PgAeth")); + mStaticActors.Add(0xa0f1d4fe, new Quest(0xa0f1d4fe, "PgAeth")); + mStaticActors.Add(0xa0f1d4ff, new Quest(0xa0f1d4ff, "PgAeth")); + mStaticActors.Add(0xa0f1d500, new Quest(0xa0f1d500, "PgAeth")); + mStaticActors.Add(0xa0f1d501, new Quest(0xa0f1d501, "PgAeth")); + mStaticActors.Add(0xa0f1d502, new Quest(0xa0f1d502, "PgAeth")); + mStaticActors.Add(0xa0f1d503, new Quest(0xa0f1d503, "PgAeth")); + mStaticActors.Add(0xa0f1d504, new Quest(0xa0f1d504, "PgAeth")); + mStaticActors.Add(0xa0f1d505, new Quest(0xa0f1d505, "PgAeth")); + mStaticActors.Add(0xa0f1d589, new Quest(0xa0f1d589, "PgConv")); + mStaticActors.Add(0xa0f1d58a, new Quest(0xa0f1d58a, "PgConv")); + mStaticActors.Add(0xa0f1d58b, new Quest(0xa0f1d58b, "PgConv")); + mStaticActors.Add(0xa0f1d58c, new Quest(0xa0f1d58c, "PgConv")); + mStaticActors.Add(0xa0f1d58d, new Quest(0xa0f1d58d, "PgConv")); + mStaticActors.Add(0xa0f1d58e, new Quest(0xa0f1d58e, "PgConv")); + mStaticActors.Add(0xa0f1d58f, new Quest(0xa0f1d58f, "PgConv")); + mStaticActors.Add(0xa0f1d590, new Quest(0xa0f1d590, "PgConv")); + mStaticActors.Add(0xa0f1d591, new Quest(0xa0f1d591, "PgConv")); + mStaticActors.Add(0xa0f1d592, new Quest(0xa0f1d592, "PgConv")); + mStaticActors.Add(0xa0f1d593, new Quest(0xa0f1d593, "PgConv")); + mStaticActors.Add(0xa0f1d594, new Quest(0xa0f1d594, "PgConv")); + mStaticActors.Add(0xa0f1d595, new Quest(0xa0f1d595, "PgConv")); + mStaticActors.Add(0xa0f1d596, new Quest(0xa0f1d596, "PgConv")); + mStaticActors.Add(0xa0f1d597, new Quest(0xa0f1d597, "PgConv")); + mStaticActors.Add(0xa0f1d598, new Quest(0xa0f1d598, "PgConv")); + mStaticActors.Add(0xa0f1d599, new Quest(0xa0f1d599, "PgConv")); + mStaticActors.Add(0xa0f1d59a, new Quest(0xa0f1d59a, "PgConv")); + mStaticActors.Add(0xa0f1d59b, new Quest(0xa0f1d59b, "PgConv")); + mStaticActors.Add(0xa0f1d59c, new Quest(0xa0f1d59c, "PgConv")); + mStaticActors.Add(0xa0f1d59d, new Quest(0xa0f1d59d, "PgAeth")); + mStaticActors.Add(0xa0f1d59e, new Quest(0xa0f1d59e, "PgAeth")); + mStaticActors.Add(0xa0f1d59f, new Quest(0xa0f1d59f, "PgAeth")); + mStaticActors.Add(0xa0f1d5a0, new Quest(0xa0f1d5a0, "PgAeth")); + mStaticActors.Add(0xa0f1d5a1, new Quest(0xa0f1d5a1, "PgAeth")); + mStaticActors.Add(0xa0f1d5a2, new Quest(0xa0f1d5a2, "PgAeth")); + mStaticActors.Add(0xa0f1d5a3, new Quest(0xa0f1d5a3, "PgAeth")); + mStaticActors.Add(0xa0f1d5a4, new Quest(0xa0f1d5a4, "PgAeth")); + mStaticActors.Add(0xa0f1d5a5, new Quest(0xa0f1d5a5, "PgAeth")); + mStaticActors.Add(0xa0f1d5a6, new Quest(0xa0f1d5a6, "PgAeth")); + mStaticActors.Add(0xa0f1d5a7, new Quest(0xa0f1d5a7, "PgAeth")); + mStaticActors.Add(0xa0f1d5a8, new Quest(0xa0f1d5a8, "PgAeth")); + mStaticActors.Add(0xa0f1d5a9, new Quest(0xa0f1d5a9, "PgAeth")); + mStaticActors.Add(0xa0f1d5aa, new Quest(0xa0f1d5aa, "PgAeth")); + mStaticActors.Add(0xa0f1d5ab, new Quest(0xa0f1d5ab, "PgAeth")); + mStaticActors.Add(0xa0f1d5ac, new Quest(0xa0f1d5ac, "PgAeth")); + mStaticActors.Add(0xa0f1d5ad, new Quest(0xa0f1d5ad, "PgAeth")); + mStaticActors.Add(0xa0f1d5ae, new Quest(0xa0f1d5ae, "PgAeth")); + mStaticActors.Add(0xa0f1d5af, new Quest(0xa0f1d5af, "PgAeth")); + mStaticActors.Add(0xa0f1d5b0, new Quest(0xa0f1d5b0, "PgAeth")); + mStaticActors.Add(0xa0f1d5b1, new Quest(0xa0f1d5b1, "PgAeth")); + mStaticActors.Add(0xa0f1d5b2, new Quest(0xa0f1d5b2, "PgAeth")); + mStaticActors.Add(0xa0f1d5b3, new Quest(0xa0f1d5b3, "PgAeth")); + mStaticActors.Add(0xa0f1d5b4, new Quest(0xa0f1d5b4, "PgAeth")); + mStaticActors.Add(0xa0f1d5b5, new Quest(0xa0f1d5b5, "PgAeth")); + mStaticActors.Add(0xa0f1d5b6, new Quest(0xa0f1d5b6, "PgAeth")); + mStaticActors.Add(0xa0f1d5b7, new Quest(0xa0f1d5b7, "PgAeth")); + mStaticActors.Add(0xa0f1d5b8, new Quest(0xa0f1d5b8, "PgAeth")); + mStaticActors.Add(0xa0f1d651, new Quest(0xa0f1d651, "PgConv")); + mStaticActors.Add(0xa0f1d652, new Quest(0xa0f1d652, "PgConv")); + mStaticActors.Add(0xa0f1d653, new Quest(0xa0f1d653, "PgConv")); + mStaticActors.Add(0xa0f1d654, new Quest(0xa0f1d654, "PgConv")); + mStaticActors.Add(0xa0f1d655, new Quest(0xa0f1d655, "PgConv")); + mStaticActors.Add(0xa0f1d656, new Quest(0xa0f1d656, "PgConv")); + mStaticActors.Add(0xa0f1d657, new Quest(0xa0f1d657, "PgConv")); + mStaticActors.Add(0xa0f1d658, new Quest(0xa0f1d658, "PgConv")); + mStaticActors.Add(0xa0f1d659, new Quest(0xa0f1d659, "PgConv")); + mStaticActors.Add(0xa0f1d65a, new Quest(0xa0f1d65a, "PgConv")); + mStaticActors.Add(0xa0f1d65b, new Quest(0xa0f1d65b, "PgConv")); + mStaticActors.Add(0xa0f1d65c, new Quest(0xa0f1d65c, "PgConv")); + mStaticActors.Add(0xa0f1d65d, new Quest(0xa0f1d65d, "PgConv")); + mStaticActors.Add(0xa0f1d65e, new Quest(0xa0f1d65e, "PgConv")); + mStaticActors.Add(0xa0f1d65f, new Quest(0xa0f1d65f, "PgConv")); + mStaticActors.Add(0xa0f1d660, new Quest(0xa0f1d660, "PgConv")); + mStaticActors.Add(0xa0f1d661, new Quest(0xa0f1d661, "PgConv")); + mStaticActors.Add(0xa0f1d662, new Quest(0xa0f1d662, "PgConv")); + mStaticActors.Add(0xa0f1d663, new Quest(0xa0f1d663, "PgConv")); + mStaticActors.Add(0xa0f1d664, new Quest(0xa0f1d664, "PgConv")); + mStaticActors.Add(0xa0f1d665, new Quest(0xa0f1d665, "PgConv")); + mStaticActors.Add(0xa0f1d666, new Quest(0xa0f1d666, "PgConv")); + mStaticActors.Add(0xa0f1d667, new Quest(0xa0f1d667, "PgAeth")); + mStaticActors.Add(0xa0f1d668, new Quest(0xa0f1d668, "PgAeth")); + mStaticActors.Add(0xa0f1d669, new Quest(0xa0f1d669, "PgAeth")); + mStaticActors.Add(0xa0f1d66a, new Quest(0xa0f1d66a, "PgAeth")); + mStaticActors.Add(0xa0f1d66b, new Quest(0xa0f1d66b, "PgAeth")); + mStaticActors.Add(0xa0f1d66c, new Quest(0xa0f1d66c, "PgAeth")); + mStaticActors.Add(0xa0f1d66d, new Quest(0xa0f1d66d, "PgAeth")); + mStaticActors.Add(0xa0f1d66e, new Quest(0xa0f1d66e, "PgAeth")); + mStaticActors.Add(0xa0f1d66f, new Quest(0xa0f1d66f, "PgAeth")); + mStaticActors.Add(0xa0f1d670, new Quest(0xa0f1d670, "PgAeth")); + mStaticActors.Add(0xa0f1d671, new Quest(0xa0f1d671, "PgAeth")); + mStaticActors.Add(0xa0f1d672, new Quest(0xa0f1d672, "PgAeth")); + mStaticActors.Add(0xa0f1d673, new Quest(0xa0f1d673, "PgAeth")); + mStaticActors.Add(0xa0f1d674, new Quest(0xa0f1d674, "PgAeth")); + mStaticActors.Add(0xa0f1d675, new Quest(0xa0f1d675, "PgAeth")); + mStaticActors.Add(0xa0f1d676, new Quest(0xa0f1d676, "PgAeth")); + mStaticActors.Add(0xa0f1d677, new Quest(0xa0f1d677, "PgAeth")); + mStaticActors.Add(0xa0f1d678, new Quest(0xa0f1d678, "PgAeth")); + mStaticActors.Add(0xa0f1d679, new Quest(0xa0f1d679, "PgAeth")); + mStaticActors.Add(0xa0f1d67a, new Quest(0xa0f1d67a, "PgAeth")); + mStaticActors.Add(0xa0f1d67b, new Quest(0xa0f1d67b, "PgAeth")); + mStaticActors.Add(0xa0f1d67c, new Quest(0xa0f1d67c, "PgAeth")); + mStaticActors.Add(0xa0f1d67d, new Quest(0xa0f1d67d, "PgAeth")); + mStaticActors.Add(0xa0f1d67e, new Quest(0xa0f1d67e, "PgAeth")); + mStaticActors.Add(0xa0f1d67f, new Quest(0xa0f1d67f, "PgAeth")); + mStaticActors.Add(0xa0f1d680, new Quest(0xa0f1d680, "PgAeth")); + mStaticActors.Add(0xa0f1d681, new Quest(0xa0f1d681, "PgAeth")); + mStaticActors.Add(0xa0f1d682, new Quest(0xa0f1d682, "PgAeth")); + mStaticActors.Add(0xa0f1d683, new Quest(0xa0f1d683, "PgAeth")); + mStaticActors.Add(0xa0f1d684, new Quest(0xa0f1d684, "PgAeth")); + mStaticActors.Add(0xa0f1d8c2, new Quest(0xa0f1d8c2, "PgAcce")); + mStaticActors.Add(0xa0f1d8c3, new Quest(0xa0f1d8c3, "PgHarvestPointEncounter")); + mStaticActors.Add(0xa0f2bf21, new Quest(0xa0f2bf21, "SceTestTxt")); + mStaticActors.Add(0xa0f2bf22, new Quest(0xa0f2bf22, "TestScenarioB")); + mStaticActors.Add(0xa0f2bf23, new Quest(0xa0f2bf23, "TestScenarioC")); + mStaticActors.Add(0xa0f2bf24, new Quest(0xa0f2bf24, "TestScenarioD")); + mStaticActors.Add(0xa0f2bf25, new Quest(0xa0f2bf25, "SceAlphaA")); + mStaticActors.Add(0xa0f2bf26, new Quest(0xa0f2bf26, "SceCutTest")); + mStaticActors.Add(0xa0f2bf27, new Quest(0xa0f2bf27, "DftAlphaA")); + mStaticActors.Add(0xa0f2bf28, new Quest(0xa0f2bf28, "SceDummy01")); + mStaticActors.Add(0xa0f2bf29, new Quest(0xa0f2bf29, "SceDummy02")); + mStaticActors.Add(0xa0f2bf2a, new Quest(0xa0f2bf2a, "SceDummy03")); + mStaticActors.Add(0xa0f2bf2b, new Quest(0xa0f2bf2b, "SceDummy04")); + mStaticActors.Add(0xa0f2bf2c, new Quest(0xa0f2bf2c, "SceDummy05")); + mStaticActors.Add(0xa0f2bf2d, new Quest(0xa0f2bf2d, "SceDummy06")); + mStaticActors.Add(0xa0f2bf2e, new Quest(0xa0f2bf2e, "SceDummy07")); + mStaticActors.Add(0xa0f2bf2f, new Quest(0xa0f2bf2f, "SceDummy08")); + mStaticActors.Add(0xa0f2bf30, new Quest(0xa0f2bf30, "SceDummy09")); + mStaticActors.Add(0xa0f2bf31, new Quest(0xa0f2bf31, "SceDummy10")); + mStaticActors.Add(0xa0f2bf32, new Quest(0xa0f2bf32, "SceDummy11")); + mStaticActors.Add(0xa0f2bf33, new Quest(0xa0f2bf33, "SceDummy12")); + mStaticActors.Add(0xa0f2bf34, new Quest(0xa0f2bf34, "SceDummy13")); + mStaticActors.Add(0xa0f2bf35, new Quest(0xa0f2bf35, "SceDummy14")); + mStaticActors.Add(0xa0f2bf36, new Quest(0xa0f2bf36, "SceDummy15")); + mStaticActors.Add(0xa0f2bf37, new Quest(0xa0f2bf37, "SceDummy16")); + mStaticActors.Add(0xa0f2bf38, new Quest(0xa0f2bf38, "SceDummy17")); + mStaticActors.Add(0xa0f2bf39, new Quest(0xa0f2bf39, "SceDummy18")); + mStaticActors.Add(0xa0f2bf3a, new Quest(0xa0f2bf3a, "SceDummy19")); + mStaticActors.Add(0xa0f2bf3b, new Quest(0xa0f2bf3b, "SceDummy20")); + mStaticActors.Add(0xa0f2bf3c, new Quest(0xa0f2bf3c, "SceDummy21")); + mStaticActors.Add(0xa0f2bf3d, new Quest(0xa0f2bf3d, "SceDummy22")); + mStaticActors.Add(0xa0f2bf3e, new Quest(0xa0f2bf3e, "SceDummy23")); + mStaticActors.Add(0xa0f2bf3f, new Quest(0xa0f2bf3f, "SceDummy24")); + mStaticActors.Add(0xa0f2bf40, new Quest(0xa0f2bf40, "SceDummy25")); + mStaticActors.Add(0xa0f2bf41, new Quest(0xa0f2bf41, "SceDummy26")); + mStaticActors.Add(0xa0f2bf42, new Quest(0xa0f2bf42, "SceDummy27")); + mStaticActors.Add(0xa0f2bf43, new Quest(0xa0f2bf43, "SceDummy28")); + mStaticActors.Add(0xa0f2bf44, new Quest(0xa0f2bf44, "SceDummy29")); + mStaticActors.Add(0xa0f2bf45, new Quest(0xa0f2bf45, "SceDummy30")); + mStaticActors.Add(0xa0f2bf46, new Quest(0xa0f2bf46, "SceDummy31")); + mStaticActors.Add(0xa0f2bf47, new Quest(0xa0f2bf47, "SceDummy32")); + } public bool exists(uint actorId) @@ -104,6 +856,17 @@ namespace FFXIVClassic_Map_Server.Actors return mStaticActors[actorId] != null; } + public Actor findStaticActor(string name) + { + foreach (Actor a in mStaticActors.Values) + { + if (a.actorName.Equals(name)) + return a; + } + + return null; + } + public Actor getActor(uint actorId) { return mStaticActors[actorId]; diff --git a/FFXIVClassic Map Server/actors/area/Zone.cs b/FFXIVClassic Map Server/actors/area/Zone.cs index 79effdc5..c984468a 100644 --- a/FFXIVClassic Map Server/actors/area/Zone.cs +++ b/FFXIVClassic Map Server/actors/area/Zone.cs @@ -75,7 +75,7 @@ namespace FFXIVClassic_Map_Server.Actors public override BasePacket getSpawnPackets(uint playerActorId) { List subpackets = new List(); - subpackets.Add(createAddActorPacket(playerActorId)); + subpackets.Add(createAddActorPacket(playerActorId, 0)); subpackets.Add(createSpeedPacket(playerActorId)); subpackets.Add(createSpawnPositonPacket(playerActorId, 0x1)); subpackets.Add(createNamePacket(playerActorId)); @@ -175,9 +175,10 @@ namespace FFXIVClassic_Map_Server.Actors return; lock (mActorBlock) + { mActorBlock[gridOldX, gridOldY].Remove(actor); - lock (mActorBlock) mActorBlock[gridX, gridY].Add(actor); + } } public List getActorsAroundPoint(float x, float y, int checkDistance) diff --git a/FFXIVClassic Map Server/actors/chara/player/Player.cs b/FFXIVClassic Map Server/actors/chara/player/Player.cs index 23cafedc..25df3340 100644 --- a/FFXIVClassic Map Server/actors/chara/player/Player.cs +++ b/FFXIVClassic Map Server/actors/chara/player/Player.cs @@ -151,7 +151,7 @@ namespace FFXIVClassic_Map_Server.Actors public override BasePacket getSpawnPackets(uint playerActorId, uint spawnType) { List subpackets = new List(); - subpackets.Add(createAddActorPacket(playerActorId)); + subpackets.Add(createAddActorPacket(playerActorId, 8)); if (isMyPlayer(playerActorId)) subpackets.AddRange(create0x132Packets(playerActorId)); subpackets.Add(createSpeedPacket(playerActorId)); @@ -617,7 +617,9 @@ namespace FFXIVClassic_Map_Server.Actors public void runEventFunction(string functionName, params object[] parameters) { List lParams = LuaUtils.createLuaParamList(parameters); - queuePacket(RunEventFunctionPacket.buildPacket(actorId, playerSession.eventCurrentOwner, playerSession.eventCurrentStarter, functionName, lParams)); + SubPacket spacket = RunEventFunctionPacket.buildPacket(actorId, playerSession.eventCurrentOwner, playerSession.eventCurrentStarter, functionName, lParams); + spacket.debugPrintSubPacket(); + queuePacket(spacket); } public void endEvent() diff --git a/FFXIVClassic Map Server/actors/debug/Debug.cs b/FFXIVClassic Map Server/actors/debug/Debug.cs index 63b1ec9d..1fbb3d59 100644 --- a/FFXIVClassic Map Server/actors/debug/Debug.cs +++ b/FFXIVClassic Map Server/actors/debug/Debug.cs @@ -33,7 +33,7 @@ namespace FFXIVClassic_Map_Server.Actors public override BasePacket getSpawnPackets(uint playerActorId) { List subpackets = new List(); - subpackets.Add(createAddActorPacket(playerActorId)); + subpackets.Add(createAddActorPacket(playerActorId, 0)); subpackets.Add(createSpeedPacket(playerActorId)); subpackets.Add(createSpawnPositonPacket(playerActorId, 0x1)); subpackets.Add(createNamePacket(playerActorId)); diff --git a/FFXIVClassic Map Server/actors/director/WeatherDirector.cs b/FFXIVClassic Map Server/actors/director/WeatherDirector.cs index 2dd303ee..ac0ae74f 100644 --- a/FFXIVClassic Map Server/actors/director/WeatherDirector.cs +++ b/FFXIVClassic Map Server/actors/director/WeatherDirector.cs @@ -36,7 +36,7 @@ namespace FFXIVClassic_Map_Server.Actors public override BasePacket getSpawnPackets(uint playerActorId) { List subpackets = new List(); - subpackets.Add(createAddActorPacket(playerActorId)); + subpackets.Add(createAddActorPacket(playerActorId, 0)); subpackets.Add(createSpeedPacket(playerActorId)); subpackets.Add(createSpawnPositonPacket(playerActorId, 0x1)); subpackets.Add(createNamePacket(playerActorId)); diff --git a/FFXIVClassic Map Server/actors/quest/Quest.cs b/FFXIVClassic Map Server/actors/quest/Quest.cs new file mode 100644 index 00000000..e15fb7bd --- /dev/null +++ b/FFXIVClassic Map Server/actors/quest/Quest.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FFXIVClassic_Map_Server.Actors +{ + class Quest : Actor + { + + public Quest(uint actorID, string name) + : base(actorID) + { + actorName = name; + } + + } +} diff --git a/FFXIVClassic Map Server/actors/world/WorldMaster.cs b/FFXIVClassic Map Server/actors/world/WorldMaster.cs index 076324e5..8d0b2cc1 100644 --- a/FFXIVClassic Map Server/actors/world/WorldMaster.cs +++ b/FFXIVClassic Map Server/actors/world/WorldMaster.cs @@ -31,7 +31,7 @@ namespace FFXIVClassic_Map_Server.Actors public override BasePacket getSpawnPackets(uint playerActorId) { List subpackets = new List(); - subpackets.Add(createAddActorPacket(playerActorId)); + subpackets.Add(createAddActorPacket(playerActorId, 0)); subpackets.Add(createSpeedPacket(playerActorId)); subpackets.Add(createSpawnPositonPacket(playerActorId, 0x1)); subpackets.Add(createNamePacket(playerActorId)); diff --git a/FFXIVClassic Map Server/dataobjects/ConnectedPlayer.cs b/FFXIVClassic Map Server/dataobjects/ConnectedPlayer.cs index 8e76f5ad..92150cbc 100644 --- a/FFXIVClassic Map Server/dataobjects/ConnectedPlayer.cs +++ b/FFXIVClassic Map Server/dataobjects/ConnectedPlayer.cs @@ -72,13 +72,20 @@ namespace FFXIVClassic_Map_Server.dataobjects } public void updatePlayerActorPosition(float x, float y, float z, float rot, ushort moveState) - { - + { + + playerActor.oldPositionX = playerActor.positionX; + playerActor.oldPositionY = playerActor.positionY; + playerActor.oldPositionZ = playerActor.positionZ; + playerActor.oldRotation = playerActor.rotation; + playerActor.positionX = x; playerActor.positionY = y; playerActor.positionZ = z; playerActor.rotation = rot; playerActor.moveState = moveState; + + getActor().zone.updateActorPosition(getActor()); } diff --git a/FFXIVClassic Map Server/lua/LuaEngine.cs b/FFXIVClassic Map Server/lua/LuaEngine.cs index c013c9f8..6c368b90 100644 --- a/FFXIVClassic Map Server/lua/LuaEngine.cs +++ b/FFXIVClassic Map Server/lua/LuaEngine.cs @@ -1,4 +1,5 @@ -using FFXIVClassic_Lobby_Server.packets; +using FFXIVClassic_Lobby_Server; +using FFXIVClassic_Lobby_Server.packets; using FFXIVClassic_Map_Server.Actors; using FFXIVClassic_Map_Server.dataobjects; using FFXIVClassic_Map_Server.packets.receive.events; @@ -35,6 +36,7 @@ namespace FFXIVClassic_Map_Server.lua if (File.Exists(luaPath)) { Script script = new Script(); + script.Globals["getStaticActor"] = (Func)Server.getStaticActors; script.DoFile(luaPath); DynValue result = script.Call(script.Globals["onInstantiate"], player, target); List lparams = LuaUtils.createLuaParamList(result); @@ -51,8 +53,7 @@ namespace FFXIVClassic_Map_Server.lua } return null; - } - + } public void doActorOnEventStarted(Player player, Actor target) { @@ -64,6 +65,7 @@ namespace FFXIVClassic_Map_Server.lua if (File.Exists(luaPath)) { Script script = new Script(); + script.Globals["getStaticActor"] = (Func)Server.getStaticActors; script.DoFile(luaPath); DynValue result = script.Call(script.Globals["onEventStarted"], player, target); } @@ -81,6 +83,7 @@ namespace FFXIVClassic_Map_Server.lua if (File.Exists(luaPath)) { Script script = new Script(); + script.Globals["getStaticActor"] = (Func)Server.getStaticActors; script.DoFile(luaPath); DynValue result = script.Call(script.Globals["onEventStarted"], player, target); } @@ -104,6 +107,7 @@ namespace FFXIVClassic_Map_Server.lua if (File.Exists(luaPath)) { Script script = new Script(); + script.Globals["getStaticActor"] = (Func)Server.getStaticActors; script.DoFile(luaPath); DynValue result = script.Call(script.Globals["onEventUpdate"], player, target, eventUpdate.step, eventUpdate.luaParams); } @@ -121,6 +125,7 @@ namespace FFXIVClassic_Map_Server.lua if (File.Exists(luaPath)) { Script script = new Script(); + script.Globals["getStaticActor"] = (Func)Server.getStaticActors; script.DoFile(luaPath); //Have to do this to combine LuaParams diff --git a/FFXIVClassic Map Server/packets/send/events/RunEventFunctionPacket.cs b/FFXIVClassic Map Server/packets/send/events/RunEventFunctionPacket.cs index 45bfa138..bb753f4e 100644 --- a/FFXIVClassic Map Server/packets/send/events/RunEventFunctionPacket.cs +++ b/FFXIVClassic Map Server/packets/send/events/RunEventFunctionPacket.cs @@ -26,7 +26,7 @@ namespace FFXIVClassic_Map_Server.packets.send.events { binWriter.Write((UInt32)playerActorID); binWriter.Write((UInt32)eventOwnerActorID); - binWriter.Write((Byte)0); + binWriter.Write((Byte)1); binWriter.Write(Encoding.ASCII.GetBytes(eventStarter), 0, Encoding.ASCII.GetByteCount(eventStarter) >= 0x20 ? 0x20 : Encoding.ASCII.GetByteCount(eventStarter)); binWriter.Seek(0x29, SeekOrigin.Begin); binWriter.Write(Encoding.ASCII.GetBytes(callFunction), 0, Encoding.ASCII.GetByteCount(callFunction) >= 0x20 ? 0x20 : Encoding.ASCII.GetByteCount(callFunction)); diff --git a/FFXIVClassic Map Server/utils/SQLGeneration.cs b/FFXIVClassic Map Server/utils/SQLGeneration.cs index e24a9b7d..840ddaa7 100644 --- a/FFXIVClassic Map Server/utils/SQLGeneration.cs +++ b/FFXIVClassic Map Server/utils/SQLGeneration.cs @@ -1,8 +1,10 @@ using FFXIVClassic_Lobby_Server; +using FFXIVClassic_Lobby_Server.common; using FFXIVClassic_Map_Server.packets.send.player; using MySql.Data.MySqlClient; using System; using System.Collections.Generic; +using System.IO; using System.Linq; using System.Text; using System.Text.RegularExpressions; @@ -358,5 +360,44 @@ namespace FFXIVClassic_Map_Server.utils } + + public void getStaticActors() + { + using (MemoryStream s = new MemoryStream(File.ReadAllBytes("D:\\luadec\\script\\staticactorr9w.luab"))) + { + using (BinaryReader binReader = new BinaryReader(s)) + { + + using (StreamWriter w = File.AppendText("D:\\myfile.txt")) + { + + + while (binReader.BaseStream.Position != binReader.BaseStream.Length) + { + uint id = Utils.swapEndian(binReader.ReadUInt32()) | 0xA0F00000; + + List list = new List(); + byte readByte; + + while ((readByte = binReader.ReadByte()) != 0) + { //or whatever your condition is + list.Add(readByte); + } + + string output = Encoding.UTF8.GetString(list.ToArray()); + + string output2 = String.Format("mStaticActors.Add(0x{0:x}, new {2}(0x{0:x}, \"{1}\"));", id, output.Substring(1 + output.LastIndexOf("/")), output.Split('/')[1]); + + Console.WriteLine(output2); + w.WriteLine(output2); + + } + + } + } + } + + return; + } } }