Redid the database, actor_class and npclist was combined. Added commands to the lua engine. Script will default to a PopulaceStandard if no script detected to avoid crashing. Static Actors now loaded from the static actors file.

This commit is contained in:
Filip Maj 2016-01-28 23:24:20 -05:00
parent 789df97d48
commit 5c8277fbb9
8 changed files with 157 additions and 907 deletions

View File

@ -224,24 +224,32 @@ namespace FFXIVClassic_Lobby_Server
player.eventCurrentStarter = eventStart.eventStarter;
//Is it a static actor? If not look in the player's instance
Actor ownerActor = mServer.GetWorldManager().GetActorInWorld(player.eventCurrentOwner);
Actor ownerActor = Server.getStaticActors(player.eventCurrentOwner);
if (ownerActor == null)
break;
{
ownerActor = mServer.GetWorldManager().GetActorInWorld(player.eventCurrentOwner);
if (ownerActor == null)
break;
}
mServer.GetLuaEngine().doActorOnEventStarted(player.getActor(), ownerActor);
//Log.debug(String.Format("\n===Event START===\nSource Actor: 0x{0:X}\nCaller Actor: 0x{1:X}\nVal1: 0x{2:X}\nVal2: 0x{3:X}\nEvent Starter: {4}\nParams: {5}", eventStart.actorID, eventStart.scriptOwnerActorID, eventStart.val1, eventStart.val2, eventStart.eventStarter, LuaParamReader.dumpParams(eventStart.luaParams)));
Log.debug(String.Format("\n===Event START===\nSource Actor: 0x{0:X}\nCaller Actor: 0x{1:X}\nVal1: 0x{2:X}\nVal2: 0x{3:X}\nEvent Starter: {4}\nParams: {5}", eventStart.actorID, eventStart.scriptOwnerActorID, eventStart.val1, eventStart.val2, eventStart.eventStarter, LuaUtils.dumpParams(eventStart.luaParams)));
break;
//Event Result
case 0x012E:
subpacket.debugPrintSubPacket();
EventUpdatePacket eventUpdate = new EventUpdatePacket(subpacket.data);
Log.debug(String.Format("\n===Event UPDATE===\nSource Actor: 0x{0:X}\nCaller Actor: 0x{1:X}\nVal1: 0x{2:X}\nVal2: 0x{3:X}\nFunction ID: 0x{4:X}\nParams: {5}", eventUpdate.actorID, eventUpdate.scriptOwnerActorID, eventUpdate.val1, eventUpdate.val2, eventUpdate.step, LuaUtils.dumpParams(eventUpdate.luaParams)));
Log.debug(String.Format("\n===Event UPDATE===\nSource Actor: 0x{0:X}\nCaller Actor: 0x{1:X}\nVal1: 0x{2:X}\nVal2: 0x{3:X}\nStep: 0x{4:X}\nParams: {5}", eventUpdate.actorID, eventUpdate.scriptOwnerActorID, eventUpdate.val1, eventUpdate.val2, eventUpdate.step, LuaUtils.dumpParams(eventUpdate.luaParams)));
Actor updateOwnerActor = mServer.GetWorldManager().GetActorInWorld(player.eventCurrentOwner);
//Is it a static actor? If not look in the player's instance
Actor updateOwnerActor = Server.getStaticActors(player.eventCurrentOwner);
if (updateOwnerActor == null)
break;
{
updateOwnerActor = mServer.GetWorldManager().GetActorInWorld(player.eventCurrentOwner);
if (updateOwnerActor == null)
break;
}
mServer.GetLuaEngine().doActorOnEventUpdated(player.getActor(), updateOwnerActor, eventUpdate);

View File

@ -24,6 +24,7 @@ namespace FFXIVClassic_Lobby_Server
public const int FFXIV_MAP_PORT = 54992;
public const int BUFFER_SIZE = 0x400;
public const int BACKLOG = 100;
public const string STATIC_ACTORS_PATH = "./staticactors.bin";
private static Server mSelf;
@ -33,7 +34,7 @@ namespace FFXIVClassic_Lobby_Server
private List<ClientConnection> mConnectionList = new List<ClientConnection>();
private LuaEngine mLuaEngine = new LuaEngine();
private WorldManager mWorldManager;
private static StaticActors mStaticActors = new StaticActors();
private static StaticActors mStaticActors;
private PacketProcessor mProcessor;
private Thread mProcessorThread;
private Thread mGameThread;
@ -51,6 +52,8 @@ namespace FFXIVClassic_Lobby_Server
#region Socket Handling
public bool startServer()
{
mStaticActors = new StaticActors(STATIC_ACTORS_PATH);
mWorldManager = new WorldManager(this);
mWorldManager.LoadZoneList();
mWorldManager.LoadZoneEntranceList();
@ -143,11 +146,13 @@ namespace FFXIVClassic_Lobby_Server
}
}
public static Actor getStaticActors(uint id)
{
return mStaticActors.getActor(id);
}
public static Actor getStaticActors(string name)
{
if (mStaticActors == null)
mStaticActors = new StaticActors();
return mStaticActors.findStaticActor(name);
}
@ -423,7 +428,8 @@ namespace FFXIVClassic_Lobby_Server
else if (split[0].Equals("resetzone"))
{
Log.info(String.Format("Got request to reset zone: {0}", client.getActor().zoneId));
client.queuePacket(BasePacket.createPacket(SendMessagePacket.buildPacket(client.actorID, client.actorID, SendMessagePacket.MESSAGE_TYPE_GENERAL_INFO, "", String.Format("Resting zone {0}...", client.getActor().zoneId)), true, false));
if (client != null)
client.queuePacket(BasePacket.createPacket(SendMessagePacket.buildPacket(client.actorID, client.actorID, SendMessagePacket.MESSAGE_TYPE_GENERAL_INFO, "", String.Format("Resting zone {0}...", client.getActor().zoneId)), true, false));
mWorldManager.reloadZone(client.getActor().zoneId);
}
}

View File

@ -136,16 +136,18 @@ namespace FFXIVClassic_Map_Server
id,
name,
zoneId,
actorTemplateId,
positionX,
positionY,
positionZ,
rotation,
actorState,
animationId,
displayNameId,
customDisplayName,
actorClassName,
eventConditions
FROM server_npclist
FROM gamedata_actor_class
WHERE name is not NULL
";
MySqlCommand cmd = new MySqlCommand(query, conn);
@ -154,11 +156,15 @@ namespace FFXIVClassic_Map_Server
{
while (reader.Read())
{
Npc npc = new Npc(reader.GetUInt32(0), reader.GetString(1), reader.GetUInt32(2), reader.GetUInt32(3), reader.GetFloat(4), reader.GetFloat(5), reader.GetFloat(6), reader.GetFloat(7), reader.GetUInt16(8), reader.GetUInt32(9), reader.GetString(10));
string customName = null;
if (!reader.IsDBNull(10))
customName = reader.GetString(10);
if (!reader.IsDBNull(11))
Npc npc = new Npc(reader.GetUInt32(0), reader.GetString(1), reader.GetUInt32(2), reader.GetFloat(3), reader.GetFloat(4), reader.GetFloat(5), reader.GetFloat(6), reader.GetUInt16(7), reader.GetUInt32(8), reader.GetUInt32(9), customName, reader.GetString(11));
if (!reader.IsDBNull(12))
{
string eventConditions = reader.GetString(11);
string eventConditions = reader.GetString(12);
npc.loadEventConditions(eventConditions);
}
@ -200,17 +206,18 @@ namespace FFXIVClassic_Map_Server
id,
name,
zoneId,
actorTemplateId,
positionX,
positionY,
positionZ,
rotation,
actorState,
animationId,
displayNameId,
customDisplayName,
actorClassName,
eventConditions
FROM server_npclist
WHERE zoneId = @zoneId
FROM gamedata_actorclass
WHERE name is not NULL AND zoneId = @zoneId
";
MySqlCommand cmd = new MySqlCommand(query, conn);
@ -220,7 +227,11 @@ namespace FFXIVClassic_Map_Server
{
while (reader.Read())
{
Npc npc = new Npc(reader.GetUInt32(0), reader.GetString(1), reader.GetUInt32(2), reader.GetUInt32(3), reader.GetFloat(4), reader.GetFloat(5), reader.GetFloat(6), reader.GetFloat(7), reader.GetUInt16(8), reader.GetUInt32(9), reader.GetString(10));
string customName = null;
if (reader.IsDBNull(10))
customName = reader.GetString(10);
Npc npc = new Npc(reader.GetUInt32(0), reader.GetString(1), reader.GetUInt32(2), reader.GetFloat(3), reader.GetFloat(4), reader.GetFloat(5), reader.GetFloat(6), reader.GetUInt16(7), reader.GetUInt32(8), reader.GetUInt32(9), customName, reader.GetString(11));
if (!reader.IsDBNull(11))
{

View File

@ -1,6 +1,8 @@
using FFXIVClassic_Map_Server.dataobjects;
using FFXIVClassic_Lobby_Server.common;
using FFXIVClassic_Map_Server.dataobjects;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
@ -11,844 +13,55 @@ namespace FFXIVClassic_Map_Server.Actors
{
private Dictionary<uint, Actor> mStaticActors = new Dictionary<uint, Actor>();
public StaticActors()
public StaticActors(string path)
{
loadStaticActors(path);
}
//Judges
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"));
public bool loadStaticActors(string path)
{
try
{
using (MemoryStream s = new MemoryStream(File.ReadAllBytes(path)))
{
using (BinaryReader binReader = new BinaryReader(s))
{
//Commands
mStaticActors.Add(0xA0F02EE2, new Command(0xA0F02EE2, "ResetOccupiedCommand"));
mStaticActors.Add(0xA0F02EE3, new Command(0xA0F02EE3, "CombinationManagementCommand"));
mStaticActors.Add(0xA0F02EE4, new Command(0xA0F02EE4, "CombinationStartCommand"));
mStaticActors.Add(0xA0F02EE5, new Command(0xA0F02EE5, "BonusPointCOmmand"));
mStaticActors.Add(0xA0F02EE7, new Command(0xA0F02EE7, "ChangeEquipCommand"));
mStaticActors.Add(0xA0F02EE9, new Command(0xA0F02EE9, "EquipCommand"));
mStaticActors.Add(0xA0F02EEA, new Command(0xA0F02EEA, "EquipAbilityCommand"));
mStaticActors.Add(0xA0F02EEB, new Command(0xA0F02EEB, "PartyTargetCommand"));
mStaticActors.Add(0xA0F02EED, new Command(0xA0F02EED, "EquipPartsShowHideCommand"));
mStaticActors.Add(0xA0F02EEE, new Command(0xA0F02EEE, "ChocoboRideCommand"));
mStaticActors.Add(0xA0F02EEF, new Command(0xA0F02EEF, "ChocoboRideCommand"));
mStaticActors.Add(0xA0F02EF0, new Command(0xA0F02EF0, "ReverseInputOperationCommand"));
mStaticActors.Add(0xA0F02EF1, new Command(0xA0F02EF1, "ChangeJobCommand"));
mStaticActors.Add(0xA0F05209, new Command(0xA0F05209, "ActivateCommand"));
mStaticActors.Add(0xA0F0520A, new Command(0xA0F0520A, "ActivateCommand"));
mStaticActors.Add(0xA0F0520D, new Command(0xA0F0520D, "CommandCancelCommand"));
mStaticActors.Add(0xA0F0520E, new Command(0xA0F0520E, "CommandCancelCommand"));
mStaticActors.Add(0xA0F0520F, new Command(0xA0F0520F, "ItemCommand"));
mStaticActors.Add(0xA0F05210, new Command(0xA0F05210, "AutoAttackTargetChangeCommand"));
mStaticActors.Add(0xA0F055FC, new Command(0xA0F055FC, "CraftCommand"));
mStaticActors.Add(0xA0F055FD, new Command(0xA0F055FD, "CraftCommand"));
mStaticActors.Add(0xA0F055FF, new Command(0xA0F055FF, "CraftCommand"));
mStaticActors.Add(0xA0F05E25, new Command(0xA0F05E25, "TalkCommand"));
mStaticActors.Add(0xA0F05E26, new Command(0xA0F05E26, "EmoteStandardCommand"));
mStaticActors.Add(0xA0F05E28, new Command(0xA0F05E28, "ContinueCommand"));
mStaticActors.Add(0xA0F05E29, new Command(0xA0F05E29, "LoginEventCommand"));
mStaticActors.Add(0xA0F05E8B, new Command(0xA0F05E8B, "PartyInviteCommand"));
mStaticActors.Add(0xA0F05E8C, new Command(0xA0F05E8C, "PartyJoinCommand"));
mStaticActors.Add(0xA0F05E8D, new Command(0xA0F05E8D, "PartyResignCommand"));
mStaticActors.Add(0xA0F05E8E, new Command(0xA0F05E8E, "PartyBreakupCommand"));
mStaticActors.Add(0xA0F05E8F, new Command(0xA0F05E8F, "PartyKickCommand"));
mStaticActors.Add(0xA0F05E90, new Command(0xA0F05E90, "PartyLeaderCommand"));
mStaticActors.Add(0xA0F05E91, new Command(0xA0F05E91, "PartyAcceptCommand"));
mStaticActors.Add(0xA0F05E93, new Command(0xA0F05E93, "RequestQuestJournalCommand"));
mStaticActors.Add(0xA0F05E94, new Command(0xA0F05E94, "RequestInformationCommand"));
mStaticActors.Add(0xA0F05E95, new Command(0xA0F05E95, "NpcLinkshellChatCommand"));
mStaticActors.Add(0xA0F05E96, new Command(0xA0F05E96, "BazaarDealCommand"));
mStaticActors.Add(0xA0F05E97, new Command(0xA0F05E97, "BazaarCheckCommand"));
mStaticActors.Add(0xA0F05E98, new Command(0xA0F05E98, "BazaarUndealCommand"));
mStaticActors.Add(0xA0F05E99, new Command(0xA0F05E99, "TradeOfferCommand"));
mStaticActors.Add(0xA0F05E9A, new Command(0xA0F05E9A, "TradeExecuteCommand"));
mStaticActors.Add(0xA0F05E9B, new Command(0xA0F05E9B, "LogoutCommand"));
mStaticActors.Add(0xA0F05E9C, new Command(0xA0F05E9C, "TeleportCommand"));
mStaticActors.Add(0xA0F05E9D, new Command(0xA0F05E9D, "ItemStuffCommand"));
mStaticActors.Add(0xA0F05E9E, new Command(0xA0F05E9E, "ItemArrangementCommand"));
mStaticActors.Add(0xA0F05E9F, new Command(0xA0F05E9F, "ItemMovePackageCommand"));
mStaticActors.Add(0xA0F05EA0, new Command(0xA0F05EA0, "ItemSplitCommand"));
mStaticActors.Add(0xA0F05EA1, new Command(0xA0F05EA1, "ItemTransferCommand"));
mStaticActors.Add(0xA0F05EA2, new Command(0xA0F05EA2, "ItemWasteCommand"));
mStaticActors.Add(0xA0F05EA3, new Command(0xA0F05EA3, "BazaarTradeCommand"));
mStaticActors.Add(0xA0F05EA4, new Command(0xA0F05EA4, "WidgetOpenCommand"));
mStaticActors.Add(0xA0F05EA5, new Command(0xA0F05EA5, "MacroCommand"));
mStaticActors.Add(0xA0F05EA6, new Command(0xA0F05EA6, "TradeOfferCancelCommand"));
mStaticActors.Add(0xA0F05EA7, new Command(0xA0F05EA7, "LinkshellAppointCommand"));
mStaticActors.Add(0xA0F05EA8, new Command(0xA0F05EA8, "LinkshellInviteCommand"));
mStaticActors.Add(0xA0F05EA9, new Command(0xA0F05EA9, "LinkshellInviteCancelCommand"));
mStaticActors.Add(0xA0F05EAA, new Command(0xA0F05EAA, "LinkshellKickCommand"));
mStaticActors.Add(0xA0F05EAB, new Command(0xA0F05EAB, "LinkshellResignCommand"));
mStaticActors.Add(0xA0F05EAC, new Command(0xA0F05EAC, "LinkshellChangeCommand"));
mStaticActors.Add(0xA0F05EAE, new Command(0xA0F05EAE, "CheckCommand"));
mStaticActors.Add(0xA0F05EAF, new Command(0xA0F05EAF, "NetStatUserSwitchCommand"));
mStaticActors.Add(0xA0F05EB0, new Command(0xA0F05EB0, "ItemMaterializeCommand"));
mStaticActors.Add(0xA0F05EB1, new Command(0xA0F05EB1, "JournalCommand"));
mStaticActors.Add(0xA0F05EB2, new Command(0xA0F05EB2, "DiceCommand"));
mStaticActors.Add(0xA0F05EB3, new Command(0xA0F05EB3, "RepairOrderCommand"));
mStaticActors.Add(0xA0F05EB4, new Command(0xA0F05EB4, "RepairEquipmentsCommand"));
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(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"));
while (binReader.BaseStream.Position != binReader.BaseStream.Length)
{
uint id = Utils.swapEndian(binReader.ReadUInt32()) | 0xA0F00000;
//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"));
List<byte> list = new List<byte>();
byte readByte;
while ((readByte = binReader.ReadByte()) != 0)
list.Add(readByte);
string output = Encoding.UTF8.GetString(list.ToArray());
string actorType = output.Split('/')[1];
string actorName = output.Substring(1 + output.LastIndexOf("/"));
if (actorType.Equals("Command"))
mStaticActors.Add(id, new Command(id, actorName));
else if (actorType.Equals("Quest"))
mStaticActors.Add(id, new Quest(id, actorName));
//else if (actorType.Equals("Status"))
//mStaticActors.Add(id, new Status(id, actorName));
else if (actorType.Equals("Judge"))
mStaticActors.Add(id, new Judge(id, actorName));
}
}
}
}
catch(FileNotFoundException e)
{ Log.error("Could not find staticactors file."); return false; }
Log.info(String.Format("Loaded {0} static actors.", mStaticActors.Count()));
return true;
}
public bool exists(uint actorId)
@ -869,7 +82,10 @@ namespace FFXIVClassic_Map_Server.Actors
public Actor getActor(uint actorId)
{
return mStaticActors[actorId];
if (mStaticActors.ContainsKey(actorId))
return mStaticActors[actorId];
else
return null;
}
}

View File

@ -18,10 +18,13 @@ namespace FFXIVClassic_Map_Server.Actors
{
class Npc : Character
{
public Npc(uint id, string actorName, uint zoneId, uint actorTemplateId, float posX, float posY, float posZ, float rot, ushort actorState, uint animationId, string className)
private uint actorClassId;
public Npc(uint id, string actorName, uint zoneId, float posX, float posY, float posZ, float rot, ushort actorState, uint animationId, uint displayNameId, string customDisplayName, string className)
: base(id)
{
this.actorName = actorName;
this.actorClassId = id;
this.positionX = posX;
this.positionY = posY;
this.positionZ = posZ;
@ -34,7 +37,7 @@ namespace FFXIVClassic_Map_Server.Actors
this.zoneId = zoneId;
loadNpcTemplate(actorTemplateId);
loadNpcTemplate(id);
}
public SubPacket createAddActorPacket(uint playerActorId)
@ -51,7 +54,10 @@ namespace FFXIVClassic_Map_Server.Actors
lParams = lua.doActorOnInstantiate(player, this);
if (lParams == null)
{
className = "PopulaceStandard";
lParams = LuaUtils.createLuaParamList("/Chara/Npc/Populace/PopulaceStandard", false, false, false, false, false, 0xF47F6, false, false, 0, 1, "TEST");
}
return ActorInstantiatePacket.buildPacket(actorId, playerActorId, actorName, className, lParams);
}
@ -75,6 +81,11 @@ namespace FFXIVClassic_Map_Server.Actors
return BasePacket.createPacket(subpackets, true, false);
}
public uint getActorClassId()
{
return actorClassId;
}
public void loadNpcTemplate(uint id)
{
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)))
@ -85,8 +96,6 @@ namespace FFXIVClassic_Map_Server.Actors
string query = @"
SELECT
displayNameId,
customDisplayName,
base,
size,
hairStyle,
@ -126,9 +135,8 @@ namespace FFXIVClassic_Map_Server.Actors
rightIndex,
leftFinger,
rightFinger
FROM gamedata_actor_templates
INNER JOIN gamedata_actor_appearance ON gamedata_actor_templates.id = gamedata_actor_appearance.id
WHERE gamedata_actor_templates.id = @templateId
FROM gamedata_actor_appearance
WHERE id = @templateId
";
MySqlCommand cmd = new MySqlCommand(query, conn);
@ -139,35 +147,25 @@ namespace FFXIVClassic_Map_Server.Actors
while (reader.Read())
{
//Handle Name
if (reader.IsDBNull(1))
displayNameId = reader.GetUInt32(0);
else
{
customDisplayName = reader.GetString(1);
displayNameId = 0xFFFFFFF;
}
//Handle Appearance
modelId = reader.GetUInt32(2);
appearanceIds[Character.SIZE] = reader.GetUInt32(3);
appearanceIds[Character.COLORINFO] = (uint)(reader.GetUInt32(18) | (reader.GetUInt32(17) << 10) | (reader.GetUInt32(19) << 20)); //17 - Skin Color, 16 - Hair Color, 18 - Eye Color
appearanceIds[Character.FACEINFO] = PrimitiveConversion.ToUInt32(CharacterUtils.getFaceInfo(reader.GetByte(8), reader.GetByte(9), reader.GetByte(7), reader.GetByte(16), reader.GetByte(15), reader.GetByte(14), reader.GetByte(13), reader.GetByte(12), reader.GetByte(11), reader.GetByte(10)));
appearanceIds[Character.HIGHLIGHT_HAIR] = (uint)(reader.GetUInt32(5) | reader.GetUInt32(4) << 10); //5- Hair Highlight, 4 - Hair Style
appearanceIds[Character.VOICE] = reader.GetUInt32(19);
appearanceIds[Character.WEAPON1] = reader.GetUInt32(21);
modelId = reader.GetUInt32(0);
appearanceIds[Character.SIZE] = reader.GetUInt32(1);
appearanceIds[Character.COLORINFO] = (uint)(reader.GetUInt32(16) | (reader.GetUInt32(15) << 10) | (reader.GetUInt32(17) << 20)); //17 - Skin Color, 16 - Hair Color, 18 - Eye Color
appearanceIds[Character.FACEINFO] = PrimitiveConversion.ToUInt32(CharacterUtils.getFaceInfo(reader.GetByte(6), reader.GetByte(7), reader.GetByte(5), reader.GetByte(14), reader.GetByte(13), reader.GetByte(12), reader.GetByte(11), reader.GetByte(10), reader.GetByte(9), reader.GetByte(8)));
appearanceIds[Character.HIGHLIGHT_HAIR] = (uint)(reader.GetUInt32(3) | reader.GetUInt32(2) << 10); //5- Hair Highlight, 4 - Hair Style
appearanceIds[Character.VOICE] = reader.GetUInt32(17);
appearanceIds[Character.WEAPON1] = reader.GetUInt32(19);
//appearanceIds[Character.WEAPON2] = reader.GetUInt32(22);
appearanceIds[Character.HEADGEAR] = reader.GetUInt32(28);
appearanceIds[Character.BODYGEAR] = reader.GetUInt32(29);
appearanceIds[Character.LEGSGEAR] = reader.GetUInt32(30);
appearanceIds[Character.HANDSGEAR] = reader.GetUInt32(31);
appearanceIds[Character.FEETGEAR] = reader.GetUInt32(32);
appearanceIds[Character.WAISTGEAR] = reader.GetUInt32(33);
appearanceIds[Character.R_EAR] = reader.GetUInt32(34);
appearanceIds[Character.L_EAR] = reader.GetUInt32(35);
appearanceIds[Character.R_FINGER] = reader.GetUInt32(38);
appearanceIds[Character.L_FINGER] = reader.GetUInt32(39);
appearanceIds[Character.HEADGEAR] = reader.GetUInt32(26);
appearanceIds[Character.BODYGEAR] = reader.GetUInt32(27);
appearanceIds[Character.LEGSGEAR] = reader.GetUInt32(28);
appearanceIds[Character.HANDSGEAR] = reader.GetUInt32(29);
appearanceIds[Character.FEETGEAR] = reader.GetUInt32(30);
appearanceIds[Character.WAISTGEAR] = reader.GetUInt32(31);
appearanceIds[Character.R_EAR] = reader.GetUInt32(32);
appearanceIds[Character.L_EAR] = reader.GetUInt32(33);
appearanceIds[Character.R_FINGER] = reader.GetUInt32(36);
appearanceIds[Character.L_FINGER] = reader.GetUInt32(37);
}
}

View File

@ -18,7 +18,7 @@ namespace FFXIVClassic_Map_Server.lua
{
class LuaEngine
{
const string FILEPATH_COMMANDS = "./scripts/command/{0}.lua";
const string FILEPATH_COMMANDS = "./scripts/commands/{0}.lua";
const string FILEPATH_NPCS = "./scripts/zones/{0}/npcs/{1}.lua";
public LuaEngine()
@ -38,7 +38,7 @@ namespace FFXIVClassic_Map_Server.lua
Script script = new Script();
script.Globals["getStaticActor"] = (Func<string, Actor>)Server.getStaticActors;
script.DoFile(luaPath);
DynValue result = script.Call(script.Globals["onInstantiate"], player, target);
DynValue result = script.Call(script.Globals["onInstantiate"], target);
List<LuaParam> lparams = LuaUtils.createLuaParamList(result);
return lparams;
}
@ -109,7 +109,16 @@ namespace FFXIVClassic_Map_Server.lua
Script script = new Script();
script.Globals["getStaticActor"] = (Func<string, Actor>)Server.getStaticActors;
script.DoFile(luaPath);
DynValue result = script.Call(script.Globals["onEventUpdate"], player, target, eventUpdate.step, eventUpdate.luaParams);
//Have to do this to combine LuaParams
List<Object> objects = new List<Object>();
objects.Add(player);
objects.Add(target);
objects.Add(eventUpdate.step);
objects.AddRange(LuaUtils.createLuaParamObjectList(eventUpdate.luaParams));
//Run Script
DynValue result = script.Call(script.Globals["onEventUpdate"], objects.ToArray());
}
else
{

View File

@ -268,6 +268,11 @@ namespace FFXIVClassic_Map_Server
{
luaParams.Add(new LuaParam(0x0, (int)o));
}
else if (o is double)
{
if (((double)o) % 1 == 0)
luaParams.Add(new LuaParam(0x0, (uint)(double)o));
}
else if (o is string)
{
luaParams.Add(new LuaParam(0x2, (string)o));
@ -302,6 +307,9 @@ namespace FFXIVClassic_Map_Server
public static string dumpParams(List<LuaParam> lParams)
{
if (lParams == null)
return "Param list was null?";
string dumpString = "";
for (int i = 0; i < lParams.Count; i++)
{

View File

@ -19,7 +19,6 @@ namespace FFXIVClassic_Map_Server.packets.receive.events
public uint scriptOwnerActorID;
public uint val1;
public uint val2;
public byte val3;
public string eventStarter;
@ -47,12 +46,7 @@ namespace FFXIVClassic_Map_Server.packets.receive.events
}
eventStarter = Encoding.ASCII.GetString(strList.ToArray());
binReader.ReadUInt32();
binReader.ReadUInt32();
binReader.ReadUInt32();
binReader.ReadUInt32();
binReader.ReadByte();
binReader.BaseStream.Seek(0x31, SeekOrigin.Begin);
luaParams = LuaUtils.readLuaParams(binReader);
}