diff --git a/Source/BNetServer/BNetServer.csproj b/Source/BNetServer/BNetServer.csproj
index b6e680b72..d18f4effa 100644
--- a/Source/BNetServer/BNetServer.csproj
+++ b/Source/BNetServer/BNetServer.csproj
@@ -2,7 +2,7 @@
Exe
- netcoreapp2.1
+ netcoreapp2.2
BNetServer.Server
Red.ico
diff --git a/Source/Framework/Constants/AccountConst.cs b/Source/Framework/Constants/AccountConst.cs
index d07d98d33..664b2f609 100644
--- a/Source/Framework/Constants/AccountConst.cs
+++ b/Source/Framework/Constants/AccountConst.cs
@@ -212,13 +212,13 @@ namespace Framework.Constants
CommandDebugBg = 304,
CommandDebugEntervehicle = 305,
CommandDebugGetitemstate = 306,
- CommandDebugGetitemvalue = 307,
- CommandDebugGetvalue = 308,
+ CommandDebugGetitemvalue = 307, // DEPRECATED: DON'T REUSE
+ CommandDebugGetvalue = 308, // DEPRECATED: DON'T REUSE
CommandDebugHostil = 309,
CommandDebugItemexpire = 310,
CommandDebugLootrecipient = 311,
CommandDebugLos = 312,
- CommandDebugMod32value = 313,
+ CommandDebugMod32value = 313, // DEPRECATED: DON'T REUSE
CommandDebugMoveflags = 314,
CommandDebugPlay = 315,
CommandDebugPlayCinematic = 316,
@@ -237,13 +237,13 @@ namespace Framework.Constants
CommandDebugSendSetphaseshift = 329,
CommandDebugSendSpellfail = 330,
CommandDebugSetaurastate = 331,
- CommandDebugSetbit = 332,
- CommandDebugSetitemvalue = 333,
- CommandDebugSetvalue = 334,
+ CommandDebugSetbit = 332, // DEPRECATED: DON'T REUSE
+ CommandDebugSetitemvalue = 333, // DEPRECATED: DON'T REUSE
+ CommandDebugSetvalue = 334, // DEPRECATED: DON'T REUSE
CommandDebugSetvid = 335,
CommandDebugSpawnvehicle = 336,
CommandDebugThreat = 337,
- CommandDebugUpdate = 338,
+ CommandDebugUpdate = 338, // DEPRECATED: DON'T REUSE
CommandDebugUws = 339,
CommandWpgps = 340,
CommandDeserter = 341,
@@ -451,7 +451,7 @@ namespace Framework.Constants
CommandDemorph = 543,
CommandModify = 544,
CommandModifyArenapoints = 545,
- CommandModifyBit = 546,
+ CommandModifyBit = 546, // DEPRECATED: DON'T REUSE
CommandModifyDrunk = 547,
CommandModifyEnergy = 548,
CommandModifyFaction = 549,
@@ -558,7 +558,7 @@ namespace Framework.Constants
CommandReloadSupportSystem = 650,
CommandReloadGossipMenu = 651,
CommandReloadGossipMenuOption = 652,
- CommandReloadItemEnchantmentTemplate = 653,
+ CommandReloadItemRandomBonusListTemplate = 653,
CommandReloadItemLootTemplate = 654,
CommandReloadItemSetNames = 655,
CommandReloadLfgDungeonRewards = 656,
diff --git a/Source/Framework/Constants/AchievementConst.cs b/Source/Framework/Constants/AchievementConst.cs
index a32952228..0722a7bc2 100644
--- a/Source/Framework/Constants/AchievementConst.cs
+++ b/Source/Framework/Constants/AchievementConst.cs
@@ -411,7 +411,7 @@ namespace Framework.Constants
ReachAccountHonorLevel = 213,
HeartOfAzerothArtifactPowerEarned = 214,
HeartOfAzerothLevelReached = 215,
- TotalTypes
+ TotalTypes = 217
}
public enum CriteriaDataType
diff --git a/Source/Framework/Constants/CreatureConst.cs b/Source/Framework/Constants/CreatureConst.cs
index dd4778137..98650a546 100644
--- a/Source/Framework/Constants/CreatureConst.cs
+++ b/Source/Framework/Constants/CreatureConst.cs
@@ -110,7 +110,7 @@ namespace Framework.Constants
Unk1 = 0x01,
}
- public enum NPCFlags : ulong
+ public enum NPCFlags : uint
{
None = 0x00,
Gossip = 0x01, // 100%
@@ -145,14 +145,19 @@ namespace Framework.Constants
VaultKeeper = 0x20000000, // Void Storage
WildBattlePet = 0x40000000, // Pet That Player Can Fight (Battle Pet)
BlackMarket = 0x80000000, // Black Market
- ItemUpgradeMaster = 0x100000000,
- GarrisonArchitect = 0x200000000,
- Steering = 0x400000000,
- ShipmentCrafter = 0x1000000000,
- GarrisonMissionNpc = 0x2000000000,
- TradeskillNpc = 0x4000000000,
- BlackMarketView = 0x8000000000,
- ContributionCollector = 0x40000000000,
+ }
+
+ public enum NPCFlags2
+ {
+ None = 0x00,
+ ItemUpgradeMaster = 0x01,
+ GarrisonArchitect = 0x02,
+ Steering = 0x04,
+ ShipmentCrafter = 0x10,
+ GarrisonMissionNpc = 0x20,
+ TradeskillNpc = 0x40,
+ BlackMarketView = 0x80,
+ ContributionCollector = 0x400,
}
public enum CreatureTypeFlags : uint
diff --git a/Source/Framework/Constants/ItemConst.cs b/Source/Framework/Constants/ItemConst.cs
index faf60a4ae..0d89872ac 100644
--- a/Source/Framework/Constants/ItemConst.cs
+++ b/Source/Framework/Constants/ItemConst.cs
@@ -29,7 +29,6 @@ namespace Framework.Constants
public const int MaxOutfitItems = 24;
public const int MaxItemExtCostItems = 5;
public const int MaxItemExtCostCurrencies = 5;
- public const int MaxItemRandomProperties = 5;
public const int MaxItemEnchantmentEffects = 3;
public const int MaxProtoSpells = 5;
public const int MaxEquipmentSetIndex = 20;
diff --git a/Source/Framework/Constants/Network/NetworkConst.cs b/Source/Framework/Constants/Network/NetworkConst.cs
index a8ce8b370..e2dd545b9 100644
--- a/Source/Framework/Constants/Network/NetworkConst.cs
+++ b/Source/Framework/Constants/Network/NetworkConst.cs
@@ -21,8 +21,8 @@ namespace Framework.Constants
public enum SessionStatus
{
Authed = 0, // Player authenticated (_player == NULL, m_playerRecentlyLogout = false or will be reset before handler call, m_GUID have garbage)
- Loggedin, // Player in game (_player != NULL, m_GUID == _player->GetGUID(), inWorld())
- Transfer, // Player transferring to another map (_player != NULL, m_GUID == _player->GetGUID(), !inWorld())
+ Loggedin, // Player in game (_player != NULL, m_GUID == _player.GetGUID(), inWorld())
+ Transfer, // Player transferring to another map (_player != NULL, m_GUID == _player.GetGUID(), !inWorld())
LoggedinOrRecentlyLogout, // _player != NULL or _player == NULL && m_playerRecentlyLogout && m_playerLogout, m_GUID store last _player guid)
}
diff --git a/Source/Framework/Constants/Network/Opcodes.cs b/Source/Framework/Constants/Network/Opcodes.cs
index c9bb2585d..3faadec8b 100644
--- a/Source/Framework/Constants/Network/Opcodes.cs
+++ b/Source/Framework/Constants/Network/Opcodes.cs
@@ -28,19 +28,19 @@ namespace Framework.Constants
AddBattlenetFriend = 0x365c,
AddFriend = 0x36d5,
AddIgnore = 0x36d9,
- AddToy = 0x3297,
- AdventureJournalOpenQuest = 0x3201,
- AdventureJournalStartQuest = 0x333e,
- AdventureMapPoiQuery = 0x3245,
+ AddToy = 0x329a,
+ AdventureJournalOpenQuest = 0x3204,
+ AdventureJournalStartQuest = 0x3341,
+ AdventureMapPoiQuery = 0x3248,
AlterAppearance = 0x34f6,
AreaSpiritHealerQuery = 0x34b0,
AreaSpiritHealerQueue = 0x34b1,
- AreaTrigger = 0x31d5,
- ArtifactAddPower = 0x31a8,
- ArtifactSetAppearance = 0x31aa,
- AssignEquipmentSetSpec = 0x3209,
- AttackStop = 0x3254,
- AttackSwing = 0x3253,
+ AreaTrigger = 0x31d8,
+ ArtifactAddPower = 0x31a9,
+ ArtifactSetAppearance = 0x31ab,
+ AssignEquipmentSetSpec = 0x320c,
+ AttackStop = 0x3257,
+ AttackSwing = 0x3256,
AuctionHelloRequest = 0x34cb,
AuctionListBidderItems = 0x34d1,
AuctionListItems = 0x34ce,
@@ -59,13 +59,15 @@ namespace Framework.Constants
AutoEquipItem = 0x399a,
AutoEquipItemSlot = 0x399f,
AutoStoreBagItem = 0x399b,
- AzeriteEmpoweredItemSelectPower = 0x335c,
- AzeriteEmpoweredItemViewed = 0x3348,
+ AzeriteEmpoweredItemSelectPower = 0x335f,
+ AzeriteEmpoweredItemViewed = 0x334b,
+ AzeriteEssenceActivateEssence = 0x3361,
+ AzeriteEssenceUnlockMilestone = 0x3360,
BankerActivate = 0x34b3,
- BattlefieldLeave = 0x3172,
- BattlefieldList = 0x317d,
+ BattlefieldLeave = 0x3173,
+ BattlefieldList = 0x317e,
BattlefieldPort = 0x3527,
- BattlemasterHello = 0x32af,
+ BattlemasterHello = 0x32b2,
BattlemasterJoin = 0x3522,
BattlemasterJoinArena = 0x3523,
BattlemasterJoinBrawl = 0x3525,
@@ -74,21 +76,21 @@ namespace Framework.Constants
BattlenetRequest = 0x36fc,
BattlenetRequestRealmListTicket = 0x3700,
BattlePayAckFailedResponse = 0x36d0,
- BattlePayCancelOpenCheckout = 0x371b,
+ BattlePayCancelOpenCheckout = 0x3719,
BattlePayConfirmPurchaseResponse = 0x36cf,
BattlePayDistributionAssignToTarget = 0x36c6,
BattlePayGetProductList = 0x36be,
BattlePayGetPurchaseList = 0x36bf,
- BattlePayOpenCheckout = 0x3714,
+ BattlePayOpenCheckout = 0x3712,
BattlePayQueryClassTrialBoostResult = 0x36c9,
BattlePayRequestCharacterBoostUnrevoke = 0x36c7,
- BattlePayRequestCurrentVasTransferQueues = 0x3711,
- BattlePayRequestPriceInfo = 0x3710,
- BattlePayRequestVasCharacterQueueTime = 0x3712,
+ BattlePayRequestCurrentVasTransferQueues = 0x370f,
+ BattlePayRequestPriceInfo = 0x370e,
+ BattlePayRequestVasCharacterQueueTime = 0x3710,
BattlePayStartPurchase = 0x36f8,
BattlePayStartVasPurchase = 0x36f9,
BattlePayTrialBoostCharacter = 0x36c8,
- BattlePayValidateBnetVasTransfer = 0x3713,
+ BattlePayValidateBnetVasTransfer = 0x3711,
BattlePayVasPurchaseComplete = 0x36f7,
BattlePetClearFanfare = 0x312c,
BattlePetDeletePet = 0x3625,
@@ -99,14 +101,14 @@ namespace Framework.Constants
BattlePetSetBattleSlot = 0x362d,
BattlePetSetFlags = 0x3631,
BattlePetSummon = 0x3629,
- BattlePetUpdateDisplayNotify = 0x31df,
- BattlePetUpdateNotify = 0x31de,
+ BattlePetUpdateDisplayNotify = 0x31e2,
+ BattlePetUpdateNotify = 0x31e1,
BeginTrade = 0x3157,
BinderActivate = 0x34b2,
BlackMarketBidOnItem = 0x352f,
BlackMarketOpen = 0x352d,
BlackMarketRequestItems = 0x352e,
- BonusRoll = 0x335d,
+ BonusRoll = 0x3362,
BugReport = 0x3688,
BusyTrade = 0x3158,
BuyBackItem = 0x34a4,
@@ -115,7 +117,7 @@ namespace Framework.Constants
BuyReagentBank = 0x34b5,
BuyWowTokenConfirm = 0x36f1,
BuyWowTokenStart = 0x36f0,
- CageBattlePet = 0x31f0,
+ CageBattlePet = 0x31f3,
CalendarAddEvent = 0x367f,
CalendarCommunityFilter = 0x3673,
CalendarComplain = 0x367b,
@@ -131,25 +133,25 @@ namespace Framework.Constants
CalendarRemoveEvent = 0x3679,
CalendarRemoveInvite = 0x3675,
CalendarUpdateEvent = 0x3680,
- CancelAura = 0x31ac,
+ CancelAura = 0x31ad,
CancelAutoRepeatSpell = 0x34e8,
- CancelCast = 0x329d,
- CancelChannelling = 0x3269,
- CancelGrowthAura = 0x326e,
- CancelMasterLootRoll = 0x3211,
- CancelModSpeedNoControlAuras = 0x31ab,
- CancelMountAura = 0x327f,
- CancelQueuedSpell = 0x317e,
+ CancelCast = 0x32a0,
+ CancelChannelling = 0x326c,
+ CancelGrowthAura = 0x3271,
+ CancelMasterLootRoll = 0x3214,
+ CancelModSpeedNoControlAuras = 0x31ac,
+ CancelMountAura = 0x3282,
+ CancelQueuedSpell = 0x317f,
CancelTempEnchantment = 0x34f3,
CancelTrade = 0x315c,
CanDuel = 0x3664,
- CanRedeemWowTokenForBalance = 0x370f,
- CastSpell = 0x329a,
+ CanRedeemWowTokenForBalance = 0x370d,
+ CastSpell = 0x329d,
ChallengeModeRequestLeaders = 0x3090,
ChallengeModeRequestMapStats = 0x308f,
- ChangeBagSlotFlag = 0x3320,
- ChangeBankBagSlotFlag = 0x3321,
- ChangeMonumentAppearance = 0x3302,
+ ChangeBagSlotFlag = 0x3323,
+ ChangeBankBagSlotFlag = 0x3324,
+ ChangeMonumentAppearance = 0x3305,
ChangeSubGroup = 0x364e,
CharacterRenameRequest = 0x36c4,
CharCustomize = 0x3693,
@@ -193,12 +195,20 @@ namespace Framework.Constants
ChatUnregisterAllAddonPrefixes = 0x37ce,
CheckRafEmailEnabled = 0x36d1,
CheckWowTokenVeteranEligibility = 0x36ef,
- ChoiceResponse = 0x329f,
- ClearRaidMarker = 0x31a4,
+ ChoiceResponse = 0x32a2,
+ ClearRaidMarker = 0x31a5,
ClearTradeItem = 0x315e,
ClientPortGraveyard = 0x3529,
CloseInteraction = 0x3493,
- CloseQuestChoice = 0x32a0,
+ CloseQuestChoice = 0x32a3,
+ ClubFinderApplicationResponse = 0x3723,
+ ClubFinderGetApplicantsList = 0x3721,
+ ClubFinderPost = 0x371e,
+ ClubFinderRequestClubsData = 0x3727,
+ ClubFinderRequestClubsList = 0x371f,
+ ClubFinderRequestMembershipToClub = 0x3720,
+ ClubFinderRequestPendingClubsList = 0x3726,
+ ClubFinderRespondToApplicant = 0x3722,
ClubInvite = 0x36ff,
CollectionItemSetFavorite = 0x3634,
CommentatorEnable = 0x35f1,
@@ -211,24 +221,23 @@ namespace Framework.Constants
Complaint = 0x366e,
CompleteCinematic = 0x3547,
CompleteMovie = 0x34de,
- ConfirmArtifactRespec = 0x31a9,
- ConfirmRespecWipe = 0x320b,
+ ConfirmArtifactRespec = 0x31aa,
+ ConfirmRespecWipe = 0x320e,
ConnectToFailed = 0x35d4,
ContributionContribute = 0x3557,
ContributionGetState = 0x3558,
ConversationLineStarted = 0x3548,
- ConvertConsumptionTime = 0x3702,
ConvertRaid = 0x3650,
CreateCharacter = 0x3645,
- CreateShipment = 0x32ee,
+ CreateShipment = 0x32f1,
DbQueryBulk = 0x35e5,
DeclineGuildInvites = 0x3520,
DeclinePetition = 0x3536,
DeleteEquipmentSet = 0x350d,
DelFriend = 0x36d6,
DelIgnore = 0x36da,
- DepositReagentBank = 0x3329,
- DestroyItem = 0x3291,
+ DepositReagentBank = 0x332c,
+ DestroyItem = 0x3294,
DfBootPlayerVote = 0x3616,
DfGetJoinStatus = 0x3614,
DfGetSystemInfo = 0x3613,
@@ -240,10 +249,10 @@ namespace Framework.Constants
DfTeleport = 0x3617,
DiscardedTimeSyncAcks = 0x3a3c,
DismissCritter = 0x34fc,
- DoMasterLootRoll = 0x3210,
+ DoMasterLootRoll = 0x3213,
DoReadyCheck = 0x3635,
DuelResponse = 0x34e3,
- EjectPassenger = 0x323a,
+ EjectPassenger = 0x323d,
Emote = 0x3543,
EnableEncryptionAck = 0x3767,
EnableNagle = 0x376b,
@@ -252,43 +261,43 @@ namespace Framework.Constants
EnumCharacters = 0x35e9,
EnumCharactersDeletedByClient = 0x36e3,
FarSight = 0x34e9,
- GameEventDebugDisable = 0x31b0,
- GameEventDebugEnable = 0x31af,
+ GameEventDebugDisable = 0x31b1,
+ GameEventDebugEnable = 0x31b0,
GameObjReportUse = 0x34f0,
GameObjUse = 0x34ef,
- GarrisonAssignFollowerToBuilding = 0x32d9,
- GarrisonCancelConstruction = 0x32ca,
- GarrisonCheckUpgradeable = 0x331c,
- GarrisonCompleteMission = 0x330f,
- GarrisonGenerateRecruits = 0x32dc,
- GarrisonGetBuildingLandmarks = 0x32ea,
- GarrisonGetMissionReward = 0x3342,
- GarrisonMissionBonusRoll = 0x3311,
- GarrisonPurchaseBuilding = 0x32c6,
- GarrisonRecruitFollower = 0x32de,
- GarrisonRemoveFollower = 0x3306,
- GarrisonRemoveFollowerFromBuilding = 0x32da,
- GarrisonRenameFollower = 0x32db,
- GarrisonRequestBlueprintAndSpecializationData = 0x32c5,
- GarrisonRequestClassSpecCategoryInfo = 0x32e3,
- GarrisonRequestLandingPageShipmentInfo = 0x32ed,
- GarrisonRequestShipmentInfo = 0x32ec,
- GarrisonResearchTalent = 0x32df,
- GarrisonSetBuildingActive = 0x32c7,
- GarrisonSetFollowerFavorite = 0x32d7,
- GarrisonSetFollowerInactive = 0x32d3,
- GarrisonSetRecruitmentPreferences = 0x32dd,
- GarrisonStartMission = 0x330e,
- GarrisonSwapBuildings = 0x32cb,
+ GarrisonAssignFollowerToBuilding = 0x32dc,
+ GarrisonCancelConstruction = 0x32cd,
+ GarrisonCheckUpgradeable = 0x331f,
+ GarrisonCompleteMission = 0x3312,
+ GarrisonGenerateRecruits = 0x32df,
+ GarrisonGetBuildingLandmarks = 0x32ed,
+ GarrisonGetMissionReward = 0x3345,
+ GarrisonMissionBonusRoll = 0x3314,
+ GarrisonPurchaseBuilding = 0x32c9,
+ GarrisonRecruitFollower = 0x32e1,
+ GarrisonRemoveFollower = 0x3309,
+ GarrisonRemoveFollowerFromBuilding = 0x32dd,
+ GarrisonRenameFollower = 0x32de,
+ GarrisonRequestBlueprintAndSpecializationData = 0x32c8,
+ GarrisonRequestClassSpecCategoryInfo = 0x32e6,
+ GarrisonRequestLandingPageShipmentInfo = 0x32f0,
+ GarrisonRequestShipmentInfo = 0x32ef,
+ GarrisonResearchTalent = 0x32e2,
+ GarrisonSetBuildingActive = 0x32ca,
+ GarrisonSetFollowerFavorite = 0x32da,
+ GarrisonSetFollowerInactive = 0x32d6,
+ GarrisonSetRecruitmentPreferences = 0x32e0,
+ GarrisonStartMission = 0x3311,
+ GarrisonSwapBuildings = 0x32ce,
GenerateRandomCharacterName = 0x35e8,
GetAccountCharacterList = 0x36ba,
GetChallengeModeRewards = 0x3685,
- GetGarrisonInfo = 0x32c0,
+ GetGarrisonInfo = 0x32c3,
GetItemPurchaseData = 0x3531,
- GetMirrorImageData = 0x3295,
+ GetMirrorImageData = 0x3298,
GetPvpOptionsEnabled = 0x35ef,
GetRemainingGameTime = 0x36f2,
- GetTrophyList = 0x32ff,
+ GetTrophyList = 0x3302,
GetUndeleteCharacterCooldownStatus = 0x36e5,
GmTicketAcknowledgeSurvey = 0x3697,
GmTicketGetCaseStatus = 0x3696,
@@ -346,27 +355,27 @@ namespace Framework.Constants
InitiateTrade = 0x3156,
Inspect = 0x352b,
InstanceLockResponse = 0x350e,
- IslandQueue = 0x3388,
+ IslandQueue = 0x338e,
ItemPurchaseRefund = 0x3532,
- ItemTextQuery = 0x331d,
- JoinPetBattleQueue = 0x31dc,
- JoinRatedBattleground = 0x3177,
+ ItemTextQuery = 0x3320,
+ JoinPetBattleQueue = 0x31df,
+ JoinRatedBattleground = 0x3178,
KeepAlive = 0x3681,
- KeyboundOverride = 0x3222,
+ KeyboundOverride = 0x3225,
LearnPvpTalents = 0x3556,
LearnTalents = 0x3554,
LeaveGroup = 0x364b,
- LeavePetBattleQueue = 0x31dd,
+ LeavePetBattleQueue = 0x31e0,
LfgListApplyToGroup = 0x360d,
LfgListCancelApplication = 0x360e,
LfgListDeclineApplicant = 0x360f,
LfgListGetStatus = 0x360b,
LfgListInviteApplicant = 0x3610,
LfgListInviteResponse = 0x3611,
- LfgListJoin = 0x335a,
+ LfgListJoin = 0x335d,
LfgListLeave = 0x360a,
LfgListSearch = 0x360c,
- LfgListUpdateRequest = 0x335b,
+ LfgListUpdateRequest = 0x335e,
LfGuildAddRecruit = 0x361c,
LfGuildBrowse = 0x361e,
LfGuildDeclineRecruit = 0x3079,
@@ -380,33 +389,33 @@ namespace Framework.Constants
LiveRegionCharacterCopy = 0x36bc,
LiveRegionGetAccountCharacterList = 0x36bb,
LoadingScreenNotify = 0x35f9,
- LoadSelectedTrophy = 0x3300,
+ LoadSelectedTrophy = 0x3303,
LogoutCancel = 0x34d9,
LogoutInstant = 0x34da,
LogoutRequest = 0x34d7,
LogDisconnect = 0x3769,
LogStreamingError = 0x376d,
- LootItem = 0x320e,
- LootMoney = 0x320d,
- LootRelease = 0x3212,
- LootRoll = 0x3213,
- LootUnit = 0x320c,
+ LootItem = 0x3211,
+ LootMoney = 0x3210,
+ LootRelease = 0x3215,
+ LootRoll = 0x3216,
+ LootUnit = 0x320f,
LowLevelRaid1 = 0x36a4,
LowLevelRaid2 = 0x3515,
MailCreateTextItem = 0x353d,
- MailDelete = 0x3224,
+ MailDelete = 0x3227,
MailGetList = 0x3538,
MailMarkAsRead = 0x353c,
MailReturnToSender = 0x3657,
MailTakeItem = 0x353a,
MailTakeMoney = 0x3539,
- MakeContitionalAppearancePermanent = 0x3227,
- MasterLootItem = 0x320f,
+ MakeContitionalAppearancePermanent = 0x322a,
+ MasterLootItem = 0x3212,
MinimapPing = 0x364d,
- MissileTrajectoryCollision = 0x3189,
+ MissileTrajectoryCollision = 0x318a,
MountClearFanfare = 0x312d,
MountSetFavorite = 0x3633,
- MountSpecialAnim = 0x3280,
+ MountSpecialAnim = 0x3283,
MoveApplyMovementForceAck = 0x3a12,
MoveChangeTransport = 0x3a2c,
MoveChangeVehicleSeats = 0x3a31,
@@ -423,7 +432,6 @@ namespace Framework.Constants
MoveForceRootAck = 0x3a0b,
MoveForceRunBackSpeedChangeAck = 0x3a09,
MoveForceRunSpeedChangeAck = 0x3a08,
- MoveForceSetModMovementForceMagnitudeAck = 0x3a3d,
MoveForceSwimBackSpeedChangeAck = 0x3a1f,
MoveForceSwimSpeedChangeAck = 0x3a0a,
MoveForceTurnRateChangeAck = 0x3a20,
@@ -444,6 +452,7 @@ namespace Framework.Constants
MoveSetFacing = 0x3a06,
MoveSetFly = 0x3a25,
MoveSetIgnoreMovementForcesAck = 0x3a23,
+ MoveSetModMovementForceMagnitudeAck = 0x3a3d,
MoveSetPitch = 0x3a07,
MoveSetRunMode = 0x39f2,
MoveSetVehicleRecIdAck = 0x3a11,
@@ -471,16 +480,16 @@ namespace Framework.Constants
MoveToggleCollisionCheat = 0x3a05,
MoveUpdateFallSpeed = 0x3a17,
MoveWaterWalkAck = 0x3a1a,
- NeutralPlayerSelectFaction = 0x31d2,
+ NeutralPlayerSelectFaction = 0x31d5,
NextCinematicCamera = 0x3546,
- ObjectUpdateFailed = 0x317f,
- ObjectUpdateRescued = 0x3180,
+ ObjectUpdateFailed = 0x3180,
+ ObjectUpdateRescued = 0x3181,
OfferPetition = 0x36b3,
OpeningCinematic = 0x3545,
- OpenItem = 0x331e,
- OpenMissionNpc = 0x32e5,
- OpenShipmentNpc = 0x32eb,
- OpenTradeskillNpc = 0x32f6,
+ OpenItem = 0x3321,
+ OpenMissionNpc = 0x32e8,
+ OpenShipmentNpc = 0x32ee,
+ OpenTradeskillNpc = 0x32f9,
OptOutOfLoot = 0x34f7,
PartyInvite = 0x3603,
PartyInviteResponse = 0x3604,
@@ -491,50 +500,49 @@ namespace Framework.Constants
PetitionShowSignatures = 0x34ca,
PetAbandon = 0x348d,
PetAction = 0x348b,
- PetBattleFinalNotify = 0x31e1,
+ PetBattleFinalNotify = 0x31e4,
PetBattleInput = 0x3642,
- PetBattleQueueProposeMatchResult = 0x3223,
- PetBattleQuitNotify = 0x31e0,
+ PetBattleQueueProposeMatchResult = 0x3226,
+ PetBattleQuitNotify = 0x31e3,
PetBattleReplaceFrontPet = 0x3643,
- PetBattleRequestPvp = 0x31da,
- PetBattleRequestUpdate = 0x31db,
- PetBattleRequestWild = 0x31d8,
- PetBattleScriptErrorNotify = 0x31e2,
- PetBattleWildLocationFail = 0x31d9,
+ PetBattleRequestPvp = 0x31dd,
+ PetBattleRequestUpdate = 0x31de,
+ PetBattleRequestWild = 0x31db,
+ PetBattleScriptErrorNotify = 0x31e5,
+ PetBattleWildLocationFail = 0x31dc,
PetCancelAura = 0x348e,
- PetCastSpell = 0x3299,
+ PetCastSpell = 0x329c,
PetRename = 0x3687,
PetSetAction = 0x348a,
PetSpellAutocast = 0x348f,
PetStopAttack = 0x348c,
Ping = 0x3768,
PlayerLogin = 0x35eb,
- ProtocolMismatch = 0x376e,
PushQuestToParty = 0x349f,
- PvpLogData = 0x317a,
- QueryBattlePetName = 0x3275,
+ PvpLogData = 0x317b,
+ QueryBattlePetName = 0x3278,
QueryCommunityName = 0x368e,
QueryCorpseLocationFromClient = 0x3662,
QueryCorpseTransport = 0x3663,
- QueryCountdownTimer = 0x31a7,
- QueryCreature = 0x326f,
- QueryGameObject = 0x3270,
- QueryGarrisonCreatureName = 0x3276,
+ QueryCountdownTimer = 0x31a8,
+ QueryCreature = 0x3272,
+ QueryGameObject = 0x3273,
+ QueryGarrisonCreatureName = 0x3279,
QueryGuildInfo = 0x3691,
QueryInspectAchievements = 0x3503,
QueryNextMailTime = 0x353b,
- QueryNpcText = 0x3271,
- QueryPageText = 0x3273,
- QueryPetition = 0x3277,
- QueryPetName = 0x3274,
+ QueryNpcText = 0x3274,
+ QueryPageText = 0x3276,
+ QueryPetition = 0x327a,
+ QueryPetName = 0x3277,
QueryPlayerName = 0x368d,
- QueryQuestCompletionNpcs = 0x3174,
- QueryQuestInfo = 0x3272,
+ QueryQuestCompletionNpcs = 0x3175,
+ QueryQuestInfo = 0x3275,
QueryRealmName = 0x3690,
QueryScenarioPoi = 0x3658,
QueryTime = 0x34d6,
- QueryTreasurePicker = 0x3344,
- QueryVoidStorage = 0x31a0,
+ QueryTreasurePicker = 0x3347,
+ QueryVoidStorage = 0x31a1,
QuestConfirmAccept = 0x349e,
QuestGiverAcceptQuest = 0x3498,
QuestGiverChooseReward = 0x349a,
@@ -548,72 +556,71 @@ namespace Framework.Constants
QuestPoiQuery = 0x36b4,
QuestPushResult = 0x34a0,
QueuedMessagesEnd = 0x376c,
- QuickJoinAutoAcceptRequests = 0x370e,
- QuickJoinRequestInvite = 0x370d,
- QuickJoinRespondToInvite = 0x370c,
- QuickJoinSignalToastDisplayed = 0x370b,
+ QuickJoinAutoAcceptRequests = 0x370c,
+ QuickJoinRequestInvite = 0x370b,
+ QuickJoinRespondToInvite = 0x370a,
+ QuickJoinSignalToastDisplayed = 0x3709,
RaidOrBattlegroundEngineSurvey = 0x36ea,
RandomRoll = 0x3656,
ReadyCheckResponse = 0x3636,
- ReadItem = 0x331f,
+ ReadItem = 0x3322,
ReclaimCorpse = 0x34dc,
RecruitAFriend = 0x36d2,
RedeemWowTokenConfirm = 0x36f4,
RedeemWowTokenStart = 0x36f3,
- RemoveNewItem = 0x3347,
+ RemoveNewItem = 0x334a,
ReorderCharacters = 0x35ea,
RepairItem = 0x34ed,
- ReplaceTrophy = 0x3301,
+ ReplaceTrophy = 0x3304,
RepopRequest = 0x3528,
- ReportClientVariables = 0x3708,
- ReportEnabledAddons = 0x3707,
- ReportKeybindingExecutionCounts = 0x3709,
+ ReportClientVariables = 0x3706,
+ ReportEnabledAddons = 0x3705,
+ ReportKeybindingExecutionCounts = 0x3707,
ReportPvpPlayerAfk = 0x34f5,
- ReportServerLag = 0x338d,
+ ReportServerLag = 0x3394,
RequestAccountData = 0x369a,
- RequestAreaPoiUpdate = 0x3346,
+ RequestAreaPoiUpdate = 0x3349,
RequestBattlefieldStatus = 0x35dd,
- RequestCategoryCooldowns = 0x317c,
- RequestCemeteryList = 0x3175,
- RequestChallengeModeAffixes = 0x3205,
+ RequestCategoryCooldowns = 0x317d,
+ RequestCemeteryList = 0x3176,
+ RequestChallengeModeAffixes = 0x3208,
RequestCharacterGuildFollowInfo = 0x3692,
- RequestConquestFormulaConstants = 0x32b2,
- RequestConsumptionConversionInfo = 0x3701,
+ RequestConquestFormulaConstants = 0x32b5,
RequestCrowdControlSpell = 0x352c,
- RequestForcedReactions = 0x3207,
- RequestGuildPartyState = 0x31a6,
- RequestGuildRewardsList = 0x31a5,
- RequestLfgListBlacklist = 0x32a2,
+ RequestForcedReactions = 0x320a,
+ RequestGuildPartyState = 0x31a7,
+ RequestGuildRewardsList = 0x31a6,
+ RequestLfgListBlacklist = 0x32a5,
RequestPartyJoinUpdates = 0x35f8,
RequestPartyMemberStats = 0x3655,
RequestPetInfo = 0x3490,
- RequestPlayedTime = 0x327a,
- RequestPvpBrawlInfo = 0x3194,
- RequestPvpRewards = 0x3193,
- RequestQuestLinesForMap = 0x3389,
+ RequestPlayedTime = 0x327d,
+ RequestPvpBrawlInfo = 0x3195,
+ RequestPvpRewards = 0x3194,
+ RequestQuestLinesForMap = 0x338f,
RequestRaidInfo = 0x36cd,
RequestRatedBattlefieldInfo = 0x35e4,
RequestRealmGuildMasterInfo = 0x309b,
RequestResearchHistory = 0x3167,
RequestStabledPets = 0x3491,
- RequestVehicleExit = 0x3235,
- RequestVehicleNextSeat = 0x3237,
- RequestVehiclePrevSeat = 0x3236,
- RequestVehicleSwitchSeat = 0x3238,
- RequestWorldQuestUpdate = 0x3345,
+ RequestVehicleExit = 0x3238,
+ RequestVehicleNextSeat = 0x323a,
+ RequestVehiclePrevSeat = 0x3239,
+ RequestVehicleSwitchSeat = 0x323b,
+ RequestWorldQuestUpdate = 0x3348,
RequestWowTokenMarketPrice = 0x36ec,
- ResetChallengeMode = 0x3203,
- ResetChallengeModeCheat = 0x3204,
+ ResetChallengeMode = 0x3206,
+ ResetChallengeModeCheat = 0x3207,
ResetInstances = 0x366a,
ResurrectResponse = 0x3686,
- RevertMonumentAppearance = 0x3303,
- RideVehicleInteract = 0x3239,
- SaveCufProfiles = 0x318a,
+ RevertMonumentAppearance = 0x3306,
+ RideVehicleInteract = 0x323c,
+ SaveCufProfiles = 0x318b,
SaveEquipmentSet = 0x350c,
- SaveGuildEmblem = 0x32a6,
- ScenePlaybackCanceled = 0x321f,
- ScenePlaybackComplete = 0x321e,
- SceneTriggerEvent = 0x3220,
+ SaveGuildEmblem = 0x32a9,
+ ScenePlaybackCanceled = 0x3222,
+ ScenePlaybackComplete = 0x3221,
+ SceneTriggerEvent = 0x3223,
SelfRes = 0x3533,
SellItem = 0x34a2,
SellWowTokenConfirm = 0x36ee,
@@ -622,58 +629,58 @@ namespace Framework.Constants
SendMail = 0x35fb,
SendSorRequestViaAddress = 0x3621,
SendTextEmote = 0x3488,
- SetAchievementsHidden = 0x3225,
+ SetAchievementsHidden = 0x3228,
SetActionBarToggles = 0x3534,
SetActionButton = 0x3637,
SetActiveMover = 0x3a37,
- SetAdvancedCombatLogging = 0x32b3,
+ SetAdvancedCombatLogging = 0x32b6,
SetAssistantLeader = 0x3651,
- SetBackpackAutosortDisabled = 0x3322,
- SetBankAutosortDisabled = 0x3323,
+ SetBackpackAutosortDisabled = 0x3325,
+ SetBankAutosortDisabled = 0x3326,
SetContactNotes = 0x36d7,
SetCurrencyFlags = 0x3169,
- SetDifficultyId = 0x3221,
+ SetDifficultyId = 0x3224,
SetDungeonDifficulty = 0x3684,
SetEveryoneIsAssistant = 0x3618,
SetFactionAtWar = 0x34df,
SetFactionInactive = 0x34e1,
SetFactionNotAtWar = 0x34e0,
- SetGameEventDebugViewState = 0x31b8,
- SetInsertItemsLeftToRight = 0x3325,
- SetLfgBonusFactionId = 0x32a1,
+ SetGameEventDebugViewState = 0x31b9,
+ SetInsertItemsLeftToRight = 0x3328,
+ SetLfgBonusFactionId = 0x32a4,
SetLootMethod = 0x364a,
SetLootSpecialization = 0x3541,
SetPartyAssignment = 0x3653,
SetPartyLeader = 0x364c,
SetPetSlot = 0x3168,
SetPlayerDeclinedNames = 0x368c,
- SetPreferredCemetery = 0x3176,
- SetPvp = 0x32aa,
+ SetPreferredCemetery = 0x3177,
+ SetPvp = 0x32ad,
SetRaidDifficulty = 0x36e1,
SetRole = 0x35d9,
SetSavedInstanceExtend = 0x368a,
SetSelection = 0x352a,
SetSheathed = 0x3489,
- SetSortBagsRightToLeft = 0x3324,
+ SetSortBagsRightToLeft = 0x3327,
SetTaxiBenchmarkMode = 0x34f4,
- SetTitle = 0x327e,
+ SetTitle = 0x3281,
SetTradeCurrency = 0x3160,
SetTradeGold = 0x315f,
SetTradeItem = 0x315d,
- SetUsingPartyGarrison = 0x32e7,
- SetWarMode = 0x32ab,
+ SetUsingPartyGarrison = 0x32ea,
+ SetWarMode = 0x32ae,
SetWatchedFaction = 0x34e2,
ShowTradeSkill = 0x36c5,
SignPetition = 0x3535,
SilencePartyTalker = 0x3654,
SocketGems = 0x34ec,
- SortBags = 0x3326,
- SortBankBags = 0x3327,
- SortReagentBankBags = 0x3328,
+ SortBags = 0x3329,
+ SortBankBags = 0x332a,
+ SortReagentBankBags = 0x332b,
SpellClick = 0x3495,
SpiritHealerActivate = 0x34af,
SplitItem = 0x399e,
- StandStateChange = 0x3188,
+ StandStateChange = 0x3189,
StartChallengeMode = 0x354c,
StartSpectatorWarGame = 0x35e0,
StartWarGame = 0x35df,
@@ -681,14 +688,14 @@ namespace Framework.Constants
SupportTicketSubmitBug = 0x3647,
SupportTicketSubmitComplaint = 0x3646,
SupportTicketSubmitSuggestion = 0x3648,
- SurrenderArena = 0x3173,
+ SurrenderArena = 0x3174,
SuspendCommsAck = 0x3764,
SuspendTokenResponse = 0x376a,
SwapInvItem = 0x399d,
SwapItem = 0x399c,
SwapSubGroups = 0x364f,
- SwapVoidItem = 0x31a2,
- TabardVendorActivate = 0x32a7,
+ SwapVoidItem = 0x31a3,
+ TabardVendorActivate = 0x32aa,
TalkToGossip = 0x3492,
TaxiNodeStatusQuery = 0x34a8,
TaxiQueryAvailableNodes = 0x34aa,
@@ -698,45 +705,44 @@ namespace Framework.Constants
TimeSyncResponseDropped = 0x3a3a,
TimeSyncResponseFailed = 0x3a39,
ToggleDifficulty = 0x3659,
- TogglePvp = 0x32a9,
+ TogglePvp = 0x32ac,
TotemDestroyed = 0x34fb,
ToyClearFanfare = 0x312e,
- TradeSkillSetFavorite = 0x3343,
+ TradeSkillSetFavorite = 0x3346,
TrainerBuySpell = 0x34ae,
TrainerList = 0x34ad,
- TransmogrifyItems = 0x3195,
+ TransmogrifyItems = 0x3196,
TurnInPetition = 0x3537,
Tutorial = 0x36e2,
TwitterCheckStatus = 0x312a,
TwitterConnect = 0x3127,
TwitterDisconnect = 0x312b,
- TwitterPost = 0x332a,
+ TwitterPost = 0x332d,
UiTimeRequest = 0x369f,
UnacceptTrade = 0x315b,
UndeleteCharacter = 0x36e4,
UnlearnSkill = 0x34e6,
- UnlearnSpecialization = 0x31a3,
- UnlockVoidStorage = 0x319f,
+ UnlearnSpecialization = 0x31a4,
+ UnlockVoidStorage = 0x31a0,
UpdateAccountData = 0x369b,
- UpdateAreaTriggerVisual = 0x329c,
+ UpdateAreaTriggerVisual = 0x329f,
UpdateClientSettings = 0x3666,
UpdateMissileTrajectory = 0x3a3e,
UpdateRaidTarget = 0x3652,
- UpdateSpellVisual = 0x329b,
+ UpdateSpellVisual = 0x329e,
UpdateVasPurchaseStates = 0x36fa,
UpdateWowTokenAuctionableList = 0x36f5,
UpdateWowTokenCount = 0x36eb,
- UpgradeGarrison = 0x32bb,
- UpgradeItem = 0x3226,
- UsedFollow = 0x3185,
- UseCritterItem = 0x323f,
+ UpgradeGarrison = 0x32be,
+ UsedFollow = 0x3186,
+ UseCritterItem = 0x3242,
UseEquipmentSet = 0x3995,
- UseItem = 0x3296,
- UseToy = 0x3298,
- ViolenceLevel = 0x3183,
- VoiceChatJoinChannel = 0x3717,
- VoiceChatLogin = 0x3716,
- VoidStorageTransfer = 0x31a1,
+ UseItem = 0x3299,
+ UseToy = 0x329b,
+ ViolenceLevel = 0x3184,
+ VoiceChatJoinChannel = 0x3715,
+ VoiceChatLogin = 0x3714,
+ VoidStorageTransfer = 0x31a2,
WardenData = 0x35ed,
Who = 0x3683,
WhoIs = 0x3682,
@@ -751,10 +757,10 @@ namespace Framework.Constants
{
AbortNewWorld = 0x25ae,
AccountCriteriaUpdate = 0x2655,
- AccountDataTimes = 0x2752,
+ AccountDataTimes = 0x2753,
AccountMountUpdate = 0x25c3,
AccountToysUpdate = 0x25c4,
- AchievementDeleted = 0x2727,
+ AchievementDeleted = 0x2728,
AchievementEarned = 0x2663,
ActivateTaxiReply = 0x26ac,
ActiveGlyphs = 0x2c53,
@@ -763,7 +769,7 @@ namespace Framework.Constants
AddLossOfControl = 0x269c,
AddRunePower = 0x26eb,
AdjustSplineDuration = 0x25e8,
- AdventureMapPoiQueryResponse = 0x2845,
+ AdventureMapPoiQueryResponse = 0x2847,
AeLootTargets = 0x262e,
AeLootTargetAck = 0x262f,
AiReaction = 0x26e8,
@@ -771,44 +777,47 @@ namespace Framework.Constants
AllAchievementData = 0x256f,
AllGuildAchievements = 0x29b8,
ArchaeologySurveryCast = 0x2587,
- AreaPoiUpdate = 0x2852,
- AreaSpiritHealerTime = 0x278a,
+ AreaPoiUpdate = 0x2854,
+ AreaSpiritHealerTime = 0x278b,
AreaTriggerDenied = 0x26a3,
- AreaTriggerNoCorpse = 0x275e,
+ AreaTriggerNoCorpse = 0x275f,
AreaTriggerPlayVisualEvent = 0x2640,
AreaTriggerRePath = 0x263e,
AreaTriggerReShape = 0x2643,
ArenaCrowdControlSpells = 0x2651,
- ArenaMatchEnd = 0x28a9,
- ArenaMatchStart = 0x28a8,
+ ArenaMatchEnd = 0x28ac,
+ ArenaMatchStart = 0x28ab,
ArenaPrepOpponentSpecializations = 0x2668,
- ArtifactForgeOpened = 0x27ee,
- ArtifactRespecConfirm = 0x27f1,
- ArtifactTraitsRefunded = 0x27f2,
- ArtifactXpGain = 0x2835,
- AttackerStateUpdate = 0x27db,
+ ArtifactForgeOpened = 0x27ef,
+ ArtifactRespecConfirm = 0x27f2,
+ ArtifactTraitsRefunded = 0x27f3,
+ ArtifactXpGain = 0x2837,
+ AttackerStateUpdate = 0x27dc,
AttackStart = 0x2670,
AttackStop = 0x2671,
- AttackSwingError = 0x273c,
- AttackSwingLandedLog = 0x273d,
- AuctionClosedNotification = 0x2731,
- AuctionCommandResult = 0x272e,
- AuctionHelloResponse = 0x272c,
- AuctionListBidderItemsResult = 0x2735,
- AuctionListItemsResult = 0x2733,
- AuctionListOwnerItemsResult = 0x2734,
- AuctionListPendingSalesResult = 0x2736,
- AuctionOutbidNotification = 0x2730,
- AuctionOwnerBidNotification = 0x2732,
- AuctionReplicateResponse = 0x272d,
- AuctionWonNotification = 0x272f,
+ AttackSwingError = 0x273d,
+ AttackSwingLandedLog = 0x273e,
+ AuctionClosedNotification = 0x2732,
+ AuctionCommandResult = 0x272f,
+ AuctionHelloResponse = 0x272d,
+ AuctionListBidderItemsResult = 0x2736,
+ AuctionListItemsResult = 0x2734,
+ AuctionListOwnerItemsResult = 0x2735,
+ AuctionListPendingSalesResult = 0x2737,
+ AuctionOutbidNotification = 0x2731,
+ AuctionOwnerBidNotification = 0x2733,
+ AuctionReplicateResponse = 0x272e,
+ AuctionWonNotification = 0x2730,
AuraPointsDepleted = 0x2c23,
AuraUpdate = 0x2c22,
AuthChallenge = 0x3048,
AuthResponse = 0x256c,
AvailableHotfixes = 0x25a2,
AzeriteEmpoweredItemEquippedStatusChanged = 0x2876,
- AzeriteEmpoweredItemRespecOpen = 0x283f,
+ AzeriteEmpoweredItemRespecOpen = 0x2841,
+ AzeriteEssenceForgeClose = 0x2879,
+ AzeriteEssenceForgeOpened = 0x2878,
+ AzeriteEssenceSelectionResult = 0x2877,
AzeriteXpGain = 0x2875,
BanReason = 0x26b8,
BarberShopResult = 0x26f1,
@@ -821,44 +830,45 @@ namespace Framework.Constants
BattlefieldStatusQueued = 0x2592,
BattlefieldStatusWaitForGroups = 0x25a6,
BattlegroundInfoThrottled = 0x259c,
- BattlegroundInit = 0x27a9,
+ BattlegroundInit = 0x27aa,
BattlegroundPlayerJoined = 0x2599,
BattlegroundPlayerLeft = 0x259a,
BattlegroundPlayerPositions = 0x2596,
- BattlegroundPoints = 0x27a8,
- BattlenetChallengeAbort = 0x27da,
- BattlenetChallengeStart = 0x27d9,
- BattlenetNotification = 0x284d,
- BattlenetRealmListTicket = 0x284f,
- BattlenetResponse = 0x284c,
- BattlenetSetSessionState = 0x284e,
+ BattlegroundPoints = 0x27a9,
+ BattlenetChallengeAbort = 0x27db,
+ BattlenetChallengeStart = 0x27da,
+ BattlenetNotification = 0x284f,
+ BattlenetRealmListTicket = 0x2851,
+ BattlenetResponse = 0x284e,
+ BattlenetSetSessionState = 0x2850,
BattlenetUpdateSessionKey = 0x286f,
- BattlePayAckFailed = 0x27d2,
- BattlePayBattlePetDelivered = 0x27c7,
- BattlePayConfirmPurchase = 0x27d1,
- BattlePayDeliveryEnded = 0x27c5,
- BattlePayDeliveryStarted = 0x27c4,
- BattlePayDistributionUpdate = 0x27c3,
- BattlePayGetDistributionListResponse = 0x27c1,
- BattlePayGetProductListResponse = 0x27bf,
- BattlePayGetPurchaseListResponse = 0x27c0,
- BattlePayMountDelivered = 0x27c6,
+ BattlePayAckFailed = 0x27d3,
+ BattlePayBattlePetDelivered = 0x27c8,
+ BattlePayBundlePriceUpdate = 0x2862,
+ BattlePayConfirmPurchase = 0x27d2,
+ BattlePayDeliveryEnded = 0x27c6,
+ BattlePayDeliveryStarted = 0x27c5,
+ BattlePayDistributionUpdate = 0x27c4,
+ BattlePayGetDistributionListResponse = 0x27c2,
+ BattlePayGetProductListResponse = 0x27c0,
+ BattlePayGetPurchaseListResponse = 0x27c1,
+ BattlePayMountDelivered = 0x27c7,
BattlePayOpenCheckoutResult = 0x2868,
- BattlePayPurchaseUpdate = 0x27d0,
- BattlePayStartDistributionAssignToTargetResponse = 0x27ce,
- BattlePayStartPurchaseResponse = 0x27cd,
+ BattlePayPurchaseUpdate = 0x27d1,
+ BattlePayStartDistributionAssignToTargetResponse = 0x27cf,
+ BattlePayStartPurchaseResponse = 0x27ce,
BattlePaySubscriptionChanged = 0x2871,
- BattlePayToyDelivered = 0x27c8,
+ BattlePayToyDelivered = 0x27c9,
BattlePayVasBnetTransferValidationResult = 0x2866,
- BattlePayVasBoostConsumed = 0x27c2,
- BattlePayVasCharacterList = 0x2838,
+ BattlePayVasBoostConsumed = 0x27c3,
+ BattlePayVasCharacterList = 0x283a,
BattlePayVasCharacterQueueStatus = 0x2864,
BattlePayVasGuildFollowInfo = 0x29e7,
BattlePayVasGuildMasterList = 0x29e6,
- BattlePayVasPurchaseComplete = 0x283b,
- BattlePayVasPurchaseList = 0x283c,
- BattlePayVasPurchaseStarted = 0x283a,
- BattlePayVasRealmList = 0x2839,
+ BattlePayVasPurchaseComplete = 0x283d,
+ BattlePayVasPurchaseList = 0x283e,
+ BattlePayVasPurchaseStarted = 0x283c,
+ BattlePayVasRealmList = 0x283b,
BattlePayVasTransferQueueStatus = 0x2863,
BattlePetsHealed = 0x260a,
BattlePetCageDateError = 0x26a6,
@@ -873,7 +883,7 @@ namespace Framework.Constants
BattlePetRevoked = 0x2608,
BattlePetTrapLevel = 0x2601,
BattlePetUpdates = 0x2600,
- BinderConfirm = 0x2742,
+ BinderConfirm = 0x2743,
BindPointUpdate = 0x257c,
BlackMarketBidOnItemResult = 0x2647,
BlackMarketOpenResult = 0x2645,
@@ -881,14 +891,14 @@ namespace Framework.Constants
BlackMarketRequestItemsResult = 0x2646,
BlackMarketWon = 0x2649,
BonusRollEmpty = 0x2665,
- BonusRollFailed = 0x2879,
- BossKillCredit = 0x27cc,
+ BonusRollFailed = 0x287c,
+ BossKillCredit = 0x27cd,
BreakTarget = 0x266f,
BroadcastAchievement = 0x2bbc,
BuyFailed = 0x26fa,
BuySucceeded = 0x26f9,
- CacheInfo = 0x274c,
- CacheVersion = 0x274b,
+ CacheInfo = 0x274d,
+ CacheVersion = 0x274c,
CalendarClearPendingAction = 0x26cc,
CalendarCommandResult = 0x26cd,
CalendarEventInitialInvites = 0x26bc,
@@ -909,9 +919,9 @@ namespace Framework.Constants
CalendarSendCalendar = 0x26ba,
CalendarSendEvent = 0x26bb,
CalendarSendNumPending = 0x26cb,
- CameraEffect = 0x276f,
- CancelAutoRepeat = 0x271b,
- CancelCombat = 0x273a,
+ CameraEffect = 0x2770,
+ CancelAutoRepeat = 0x271c,
+ CancelCombat = 0x273b,
CancelOrphanSpellVisual = 0x2c46,
CancelScene = 0x2657,
CancelSpellVisual = 0x2c44,
@@ -929,25 +939,25 @@ namespace Framework.Constants
ChallengeModeRewards = 0x2622,
ChallengeModeStart = 0x261e,
ChallengeModeUpdateDeathCount = 0x261f,
- ChangePlayerDifficultyResult = 0x273e,
+ ChangePlayerDifficultyResult = 0x273f,
ChannelList = 0x2bc3,
ChannelNotify = 0x2bc0,
ChannelNotifyJoined = 0x2bc1,
ChannelNotifyLeft = 0x2bc2,
- CharacterClassTrialCreate = 0x280c,
+ CharacterClassTrialCreate = 0x280d,
CharacterInventoryOverflowWarning = 0x2870,
CharacterItemFixup = 0x285f,
- CharacterLoginFailed = 0x274d,
- CharacterObjectTestResponse = 0x27d8,
- CharacterRenameResult = 0x27b1,
- CharacterUpgradeComplete = 0x280b,
- CharacterUpgradeQueued = 0x280a,
+ CharacterLoginFailed = 0x274e,
+ CharacterObjectTestResponse = 0x27d9,
+ CharacterRenameResult = 0x27b2,
+ CharacterUpgradeComplete = 0x280c,
+ CharacterUpgradeQueued = 0x280b,
CharacterUpgradeSpellTierSet = 0x25f5,
- CharacterUpgradeStarted = 0x2809,
- CharacterUpgradeUnrevokeResult = 0x280d,
- CharCustomize = 0x2722,
- CharCustomizeFailed = 0x2721,
- CharFactionChangeResult = 0x27f6,
+ CharacterUpgradeStarted = 0x280a,
+ CharacterUpgradeUnrevokeResult = 0x280e,
+ CharCustomize = 0x2723,
+ CharCustomizeFailed = 0x2722,
+ CharFactionChangeResult = 0x27f7,
Chat = 0x2bad,
ChatAutoResponded = 0x2bb8,
ChatDown = 0x2bbd,
@@ -968,40 +978,43 @@ namespace Framework.Constants
ClearLossOfControl = 0x269e,
ClearSpellCharges = 0x2c28,
ClearTarget = 0x26e4,
+ ClubFinderApplicantsList = 0x28b3,
+ ClubFinderApplications = 0x28b4,
+ ClubFinderApplicationsChanged = 0x28b5,
+ ClubFinderClubsData = 0x28b6,
+ ClubFinderClubsList = 0x28b2,
CoinRemoved = 0x262d,
CombatEventFailed = 0x2672,
- CommentatorMapInfo = 0x274f,
- CommentatorPlayerInfo = 0x2750,
- CommentatorStateChanged = 0x274e,
+ CommentatorMapInfo = 0x2750,
+ CommentatorPlayerInfo = 0x2751,
+ CommentatorStateChanged = 0x274f,
ComplaintResult = 0x26db,
- CompleteShipmentResponse = 0x27ea,
+ CompleteShipmentResponse = 0x27eb,
ConnectTo = 0x304d,
- ConquestFormulaConstants = 0x27d3,
+ ConquestFormulaConstants = 0x27d4,
ConsoleWrite = 0x2654,
- ConsumptionConversionInfoResponse = 0x2853,
- ConsumptionConversionResult = 0x2854,
- ContactList = 0x27d6,
+ ContactList = 0x27d7,
ContributionCollectorState = 0x2867,
ControlUpdate = 0x2667,
- CooldownCheat = 0x2783,
+ CooldownCheat = 0x2784,
CooldownEvent = 0x26ec,
CorpseLocation = 0x266e,
- CorpseReclaimDelay = 0x2796,
- CorpseTransportQuery = 0x275a,
- CreateChar = 0x2747,
- CreateShipmentResponse = 0x27e9,
- CriteriaDeleted = 0x2726,
- CriteriaUpdate = 0x2720,
+ CorpseReclaimDelay = 0x2797,
+ CorpseTransportQuery = 0x275b,
+ CreateChar = 0x2748,
+ CreateShipmentResponse = 0x27ea,
+ CriteriaDeleted = 0x2727,
+ CriteriaUpdate = 0x2721,
CrossedInebriationThreshold = 0x26f5,
CustomLoadScreen = 0x25e3,
DailyQuestsReset = 0x2a80,
- DamageCalcLog = 0x2814,
+ DamageCalcLog = 0x2815,
DbReply = 0x25a1,
- DeathReleaseLoc = 0x270f,
+ DeathReleaseLoc = 0x2710,
DefenseMessage = 0x2bb6,
- DeleteChar = 0x2748,
- DestroyArenaUnit = 0x278c,
- DestructibleBuildingDamage = 0x273b,
+ DeleteChar = 0x2749,
+ DestroyArenaUnit = 0x278d,
+ DestructibleBuildingDamage = 0x273c,
DifferentInstanceFromParty = 0x258b,
DisenchantCredit = 0x25bc,
Dismount = 0x26e3,
@@ -1021,43 +1034,43 @@ namespace Framework.Constants
DuelOutOfBounds = 0x2675,
DuelRequested = 0x2673,
DuelWinner = 0x2679,
- DurabilityDamageDeath = 0x2792,
- Emote = 0x2815,
+ DurabilityDamageDeath = 0x2793,
+ Emote = 0x2816,
EnableBarberShop = 0x26f0,
EnableEncryption = 0x3049,
- EnchantmentLog = 0x275b,
- EncounterEnd = 0x27cb,
- EncounterStart = 0x27ca,
+ EnchantmentLog = 0x275c,
+ EncounterEnd = 0x27cc,
+ EncounterStart = 0x27cb,
EnumCharactersResult = 0x2583,
EnvironmentalDamageLog = 0x2c21,
EquipmentSetId = 0x26e5,
ExpectedSpamRecords = 0x2bb1,
- ExplorationExperience = 0x27ae,
- FactionBonusInfo = 0x276e,
+ ExplorationExperience = 0x27af,
+ FactionBonusInfo = 0x276f,
FailedPlayerCondition = 0x25e2,
FeatureSystemStatus = 0x25d1,
FeatureSystemStatusGlueScreen = 0x25d2,
- FeignDeathResisted = 0x278f,
- FishEscaped = 0x2702,
- FishNotHooked = 0x2701,
+ FeignDeathResisted = 0x2790,
+ FishEscaped = 0x2703,
+ FishNotHooked = 0x2702,
FlightSplineSync = 0x2df7,
- ForcedDeathUpdate = 0x2710,
- ForceAnim = 0x279d,
+ ForcedDeathUpdate = 0x2711,
+ ForceAnim = 0x279e,
ForceObjectRelink = 0x266a,
- FriendStatus = 0x27d7,
+ FriendStatus = 0x27d8,
GameEventDebugInitialize = 0x2680,
GameObjectActivateAnimKit = 0x25d6,
GameObjectCustomAnim = 0x25d7,
GameObjectDespawn = 0x25d8,
- GameObjectMultiTransition = 0x2877,
+ GameObjectMultiTransition = 0x287a,
GameObjectPlaySpellVisual = 0x2c4b,
GameObjectPlaySpellVisualKit = 0x2c4a,
- GameObjectResetState = 0x2765,
- GameObjectSetState = 0x284b,
- GameObjectUiAction = 0x2762,
+ GameObjectResetState = 0x2766,
+ GameObjectSetState = 0x284d,
+ GameObjectUiAction = 0x2763,
GameSpeedSet = 0x26b0,
- GameTimeSet = 0x2754,
- GameTimeUpdate = 0x2753,
+ GameTimeSet = 0x2755,
+ GameTimeUpdate = 0x2754,
GarrisonAddFollowerResult = 0x2902,
GarrisonAddMissionResult = 0x2906,
GarrisonAssignFollowerToBuildingResult = 0x2918,
@@ -1076,7 +1089,7 @@ namespace Framework.Constants
GarrisonFollowerChangedStatus = 0x2915,
GarrisonFollowerChangedXp = 0x2912,
GarrisonIsUpgradeableResult = 0x2929,
- GarrisonLandingPageShipmentInfo = 0x27ec,
+ GarrisonLandingPageShipmentInfo = 0x27ed,
GarrisonLearnBlueprintResult = 0x28f7,
GarrisonLearnSpecializationResult = 0x28f5,
GarrisonListFollowersCheatResult = 0x2905,
@@ -1107,27 +1120,27 @@ namespace Framework.Constants
GarrisonUnlearnBlueprintResult = 0x28f8,
GarrisonUpgradeResult = 0x28fd,
GenerateRandomCharacterNameResult = 0x2584,
- GetAccountCharacterListResult = 0x27af,
+ GetAccountCharacterListResult = 0x27b0,
GetDisplayedTrophyListResponse = 0x2928,
GetGarrisonInfoResult = 0x28f0,
- GetShipmentsOfTypeResponse = 0x27eb,
- GetShipmentInfoResponse = 0x27e7,
- GetTrophyListResponse = 0x2810,
- GmPlayerInfo = 0x2782,
+ GetShipmentsOfTypeResponse = 0x27ec,
+ GetShipmentInfoResponse = 0x27e8,
+ GetTrophyListResponse = 0x2811,
+ GmPlayerInfo = 0x2783,
GmRequestPlayerInfo = 0x25ee,
GmTicketCaseStatus = 0x26d2,
GmTicketSystemStatus = 0x26d1,
- GodMode = 0x2741,
+ GodMode = 0x2742,
GossipComplete = 0x2a96,
GossipMessage = 0x2a97,
- GossipPoi = 0x27e4,
+ GossipPoi = 0x27e5,
GossipTextUpdate = 0x2a98,
GroupActionThrottled = 0x259d,
- GroupDecline = 0x27df,
- GroupDestroyed = 0x27e1,
+ GroupDecline = 0x27e0,
+ GroupDestroyed = 0x27e2,
GroupInviteConfirmation = 0x2860,
GroupNewLeader = 0x264c,
- GroupUninvite = 0x27e0,
+ GroupUninvite = 0x27e1,
GuildAchievementDeleted = 0x29c5,
GuildAchievementEarned = 0x29c4,
GuildAchievementMembers = 0x29c7,
@@ -1141,6 +1154,7 @@ namespace Framework.Constants
GuildCommandResult = 0x29ba,
GuildCriteriaDeleted = 0x29c6,
GuildCriteriaUpdate = 0x29c3,
+ GuildEventAwayChange = 0x29f0,
GuildEventBankContentsChanged = 0x29f8,
GuildEventBankMoneyChanged = 0x29f7,
GuildEventDisbanded = 0x29ed,
@@ -1180,56 +1194,56 @@ namespace Framework.Constants
GuildRoster = 0x29bb,
GuildRosterUpdate = 0x29bc,
GuildSendRankChange = 0x29b9,
- HealthUpdate = 0x2705,
- HighestThreatUpdate = 0x2716,
+ HealthUpdate = 0x2706,
+ HighestThreatUpdate = 0x2717,
HotfixMessage = 0x25a3,
HotfixResponse = 0x25a4,
- IncomingSummonCompleted = 0x28ab,
- IncomingSummonPending = 0x28aa,
- InitializeFactions = 0x276d,
+ IncomingSummonCompleted = 0x28ae,
+ IncomingSummonPending = 0x28ad,
+ InitializeFactions = 0x276e,
InitialSetup = 0x2580,
- InitWorldStates = 0x2793,
+ InitWorldStates = 0x2794,
InspectResult = 0x2650,
- InstanceEncounterChangePriority = 0x27fc,
- InstanceEncounterDisengageUnit = 0x27fb,
- InstanceEncounterEnd = 0x2804,
- InstanceEncounterEngageUnit = 0x27fa,
- InstanceEncounterGainCombatResurrectionCharge = 0x2806,
- InstanceEncounterInCombatResurrection = 0x2805,
- InstanceEncounterObjectiveComplete = 0x27ff,
- InstanceEncounterObjectiveStart = 0x27fe,
- InstanceEncounterObjectiveUpdate = 0x2803,
- InstanceEncounterPhaseShiftChanged = 0x2807,
- InstanceEncounterSetAllowingRelease = 0x2802,
- InstanceEncounterSetSuppressingRelease = 0x2801,
- InstanceEncounterStart = 0x2800,
- InstanceEncounterTimerStart = 0x27fd,
- InstanceGroupSizeChanged = 0x273f,
+ InstanceEncounterChangePriority = 0x27fd,
+ InstanceEncounterDisengageUnit = 0x27fc,
+ InstanceEncounterEnd = 0x2805,
+ InstanceEncounterEngageUnit = 0x27fb,
+ InstanceEncounterGainCombatResurrectionCharge = 0x2807,
+ InstanceEncounterInCombatResurrection = 0x2806,
+ InstanceEncounterObjectiveComplete = 0x2800,
+ InstanceEncounterObjectiveStart = 0x27ff,
+ InstanceEncounterObjectiveUpdate = 0x2804,
+ InstanceEncounterPhaseShiftChanged = 0x2808,
+ InstanceEncounterSetAllowingRelease = 0x2803,
+ InstanceEncounterSetSuppressingRelease = 0x2802,
+ InstanceEncounterStart = 0x2801,
+ InstanceEncounterTimerStart = 0x27fe,
+ InstanceGroupSizeChanged = 0x2740,
InstanceInfo = 0x2653,
InstanceReset = 0x26b5,
InstanceResetFailed = 0x26b6,
- InstanceSaveCreated = 0x27c9,
- InvalidatePageText = 0x270b,
+ InstanceSaveCreated = 0x27ca,
+ InvalidatePageText = 0x270c,
InvalidatePlayer = 0x26da,
- InvalidPromotionCode = 0x279e,
- InventoryChangeFailure = 0x276b,
- IslandAzeriteXpGain = 0x27ab,
- IslandCompleted = 0x27ac,
- IslandOpenQueueNpc = 0x2840,
+ InvalidPromotionCode = 0x279f,
+ InventoryChangeFailure = 0x276c,
+ IslandAzeriteXpGain = 0x27ac,
+ IslandCompleted = 0x27ad,
+ IslandOpenQueueNpc = 0x2842,
IsQuestCompleteResponse = 0x2a83,
- ItemChanged = 0x2729,
- ItemCooldown = 0x2813,
- ItemEnchantTimeUpdate = 0x27a0,
+ ItemChanged = 0x272a,
+ ItemCooldown = 0x2814,
+ ItemEnchantTimeUpdate = 0x27a1,
ItemExpirePurchaseRefund = 0x25b2,
ItemPurchaseRefundResult = 0x25b0,
ItemPushResult = 0x2639,
- ItemTimeUpdate = 0x279f,
- KickReason = 0x2837,
+ ItemTimeUpdate = 0x27a0,
+ KickReason = 0x2839,
LearnedSpells = 0x2c4d,
LearnPvpTalentsFailed = 0x25ea,
LearnTalentsFailed = 0x25e9,
LevelUpdate = 0x2588,
- LevelUpInfo = 0x2728,
+ LevelUpInfo = 0x2729,
LfgBootPlayer = 0x2a35,
LfgDisabled = 0x2a33,
LfgInstanceShutdownCountdown = 0x2a25,
@@ -1260,21 +1274,21 @@ namespace Framework.Constants
LfGuildRecruits = 0x29cf,
LightningStormEnd = 0x26d7,
LightningStormStart = 0x26d6,
- LiveRegionAccountRestoreResult = 0x27bd,
- LiveRegionCharacterCopyResult = 0x27bb,
- LiveRegionGetAccountCharacterListResult = 0x27b0,
+ LiveRegionAccountRestoreResult = 0x27be,
+ LiveRegionCharacterCopyResult = 0x27bc,
+ LiveRegionGetAccountCharacterListResult = 0x27b1,
LoadCufProfiles = 0x25ce,
- LoadEquipmentSet = 0x2756,
- LoadSelectedTrophyResult = 0x2811,
- LoginSetTimeSpeed = 0x2755,
+ LoadEquipmentSet = 0x2757,
+ LoadSelectedTrophyResult = 0x2812,
+ LoginSetTimeSpeed = 0x2756,
LoginVerifyWorld = 0x25ad,
LogoutCancelAck = 0x26b4,
LogoutComplete = 0x26b3,
LogoutResponse = 0x26b2,
- LogXpGain = 0x2724,
+ LogXpGain = 0x2725,
LootAllPassed = 0x2637,
- LootLegacyRulesInEffect = 0x2878,
- LootList = 0x278b,
+ LootLegacyRulesInEffect = 0x287b,
+ LootList = 0x278c,
LootMoneyNotify = 0x2632,
LootRelease = 0x2631,
LootReleaseAll = 0x2630,
@@ -1285,23 +1299,24 @@ namespace Framework.Constants
LootRollWon = 0x2638,
LossOfControlAuraUpdate = 0x269b,
MailCommandResult = 0x265b,
- MailListResult = 0x27a1,
- MailQueryNextTimeResult = 0x27a2,
- MapObjectivesInit = 0x27aa,
+ MailListResult = 0x27a2,
+ MailQueryNextTimeResult = 0x27a3,
+ MapObjectivesInit = 0x27ab,
MapObjectiveAdd = 0x2597,
MapObjectiveRemove = 0x2598,
MapObjEvents = 0x25d9,
MasterLootCandidateList = 0x2635,
MessageBox = 0x2575,
- MinimapPing = 0x2700,
+ MinimapPing = 0x2701,
MirrorImageComponentedData = 0x2c14,
MirrorImageCreatureData = 0x2c13,
MissileCancel = 0x25da,
- ModifyChargeRecoverySpeed = 0x27b4,
- ModifyCooldown = 0x27b2,
- ModifyCooldownRecoverySpeed = 0x27b3,
- ModifyPartyRange = 0x278e,
+ ModifyChargeRecoverySpeed = 0x27b5,
+ ModifyCooldown = 0x27b3,
+ ModifyCooldownRecoverySpeed = 0x27b4,
+ ModifyPartyRange = 0x278f,
Motd = 0x2baf,
+ MountEquipmentApplyResult = 0x28b7,
MountResult = 0x257a,
MoveApplyMovementForce = 0x2de1,
MoveDisableCollision = 0x2ddd,
@@ -1326,7 +1341,7 @@ namespace Framework.Constants
MoveSetHovering = 0x2dcf,
MoveSetIgnoreMovementForces = 0x2dd7,
MoveSetLandWalk = 0x2dcc,
- MoveSetMovementForceSpeed = 0x2db4,
+ MoveSetModMovementForceMagnitude = 0x2db4,
MoveSetNormalFall = 0x2dce,
MoveSetPitchRate = 0x2dc6,
MoveSetRunBackSpeed = 0x2dbf,
@@ -1377,7 +1392,7 @@ namespace Framework.Constants
MoveUpdateFlightBackSpeed = 0x2daa,
MoveUpdateFlightSpeed = 0x2da9,
MoveUpdateKnockBack = 0x2db0,
- MoveUpdateMovementForceSpeed = 0x2db1,
+ MoveUpdateModMovementForceMagnitude = 0x2db1,
MoveUpdatePitchRate = 0x2dac,
MoveUpdateRemoveMovementForce = 0x2db3,
MoveUpdateRunBackSpeed = 0x2da5,
@@ -1395,30 +1410,30 @@ namespace Framework.Constants
NotifyMoney = 0x25af,
NotifyReceivedMail = 0x265c,
OfferPetitionError = 0x26e9,
- OnCancelExpectedRideVehicleAura = 0x2725,
+ OnCancelExpectedRideVehicleAura = 0x2726,
OnMonsterMove = 0x2da2,
- OpenAlliedRaceDetailsGiver = 0x2841,
- OpenContainer = 0x276c,
+ OpenAlliedRaceDetailsGiver = 0x2843,
+ OpenContainer = 0x276d,
OpenLfgDungeonFinder = 0x2a31,
- OpenShipmentNpcFromGossip = 0x27e6,
- OpenShipmentNpcResult = 0x27e8,
- OpenTransmogrifier = 0x283e,
+ OpenShipmentNpcFromGossip = 0x27e7,
+ OpenShipmentNpcResult = 0x27e9,
+ OpenTransmogrifier = 0x2840,
OverrideLight = 0x26ef,
- PageText = 0x2761,
- PartyCommandResult = 0x27e3,
+ PageText = 0x2762,
+ PartyCommandResult = 0x27e4,
PartyInvite = 0x25cf,
- PartyKillLog = 0x27a6,
- PartyMemberState = 0x27a4,
- PartyMemberStateUpdate = 0x27a3,
+ PartyKillLog = 0x27a7,
+ PartyMemberState = 0x27a5,
+ PartyMemberStateUpdate = 0x27a4,
PartyUpdate = 0x260c,
- PauseMirrorTimer = 0x2758,
- PendingRaidLock = 0x2739,
+ PauseMirrorTimer = 0x2759,
+ PendingRaidLock = 0x273a,
PetitionAlreadySigned = 0x25b8,
PetitionRenameGuildResponse = 0x29fa,
PetitionShowList = 0x26f2,
PetitionShowSignatures = 0x26f3,
- PetitionSignResults = 0x2798,
- PetActionFeedback = 0x2795,
+ PetitionSignResults = 0x2799,
+ PetActionFeedback = 0x2796,
PetActionSound = 0x26cf,
PetAdded = 0x25a9,
PetBattleChatRestricted = 0x2619,
@@ -1440,7 +1455,7 @@ namespace Framework.Constants
PetClearSpells = 0x2c24,
PetDismissSound = 0x26d0,
PetGodMode = 0x26aa,
- PetGuids = 0x274a,
+ PetGuids = 0x274b,
PetLearnedSpells = 0x2c4f,
PetMode = 0x258a,
PetNameInvalid = 0x26f7,
@@ -1451,47 +1466,48 @@ namespace Framework.Constants
PetTameFailure = 0x26e6,
PetUnlearnedSpells = 0x2c50,
PhaseShiftChange = 0x2577,
- PlayedTime = 0x2712,
+ PlayedTime = 0x2713,
PlayerBound = 0x257d,
PlayerSaveGuildEmblem = 0x29f9,
- PlayerSkinned = 0x2790,
- PlayerTabardVendorActivate = 0x27a5,
- PlayMusic = 0x27b7,
- PlayObjectSound = 0x27b8,
- PlayOneShotAnimKit = 0x277a,
+ PlayerSkinned = 0x2791,
+ PlayerTabardVendorActivate = 0x27a6,
+ PlayMusic = 0x27b8,
+ PlayObjectSound = 0x27b9,
+ PlayOneShotAnimKit = 0x277b,
PlayOrphanSpellVisual = 0x2c47,
PlayScene = 0x2656,
- PlaySound = 0x27b6,
- PlaySpeakerbotSound = 0x27b9,
+ PlaySound = 0x27b7,
+ PlaySpeakerbotSound = 0x27ba,
PlaySpellVisual = 0x2c45,
PlaySpellVisualKit = 0x2c49,
- PlayTimeWarning = 0x2743,
+ PlayTimeWarning = 0x2744,
Pong = 0x304e,
- PowerUpdate = 0x2706,
- PreRessurect = 0x27b5,
+ PowerUpdate = 0x2707,
+ PreRessurect = 0x27b6,
PrintNotification = 0x25e1,
- ProcResist = 0x27a7,
- ProposeLevelGrant = 0x271a,
+ ProcResist = 0x27a8,
+ ProposeLevelGrant = 0x271b,
PushSpellToActionBar = 0x2c51,
- PvpCredit = 0x271f,
+ PvpCredit = 0x2720,
PvpLogData = 0x25b3,
+ PvpMatchStart = 0x28b1,
PvpOptionsEnabled = 0x25b6,
PvpSeason = 0x25d3,
- QueryBattlePetNameResponse = 0x270d,
- QueryCommunityNameResponse = 0x2709,
- QueryCreatureResponse = 0x2703,
- QueryGameObjectResponse = 0x2704,
+ QueryBattlePetNameResponse = 0x270e,
+ QueryCommunityNameResponse = 0x270a,
+ QueryCreatureResponse = 0x2704,
+ QueryGameObjectResponse = 0x2705,
QueryGarrisonCreatureNameResponse = 0x292b,
QueryGuildInfoResponse = 0x29e5,
- QueryItemTextResponse = 0x2812,
- QueryNpcTextResponse = 0x2707,
- QueryPageTextResponse = 0x270a,
- QueryPetitionResponse = 0x270e,
- QueryPetNameResponse = 0x270c,
- QueryPlayerNameResponse = 0x2708,
+ QueryItemTextResponse = 0x2813,
+ QueryNpcTextResponse = 0x2708,
+ QueryPageTextResponse = 0x270b,
+ QueryPetitionResponse = 0x270f,
+ QueryPetNameResponse = 0x270d,
+ QueryPlayerNameResponse = 0x2709,
QueryQuestInfoResponse = 0x2a95,
- QueryTimeResponse = 0x2723,
- QueryTreasurePickerResponse = 0x2850,
+ QueryTimeResponse = 0x2724,
+ QueryTreasurePickerResponse = 0x2852,
QuestCompletionNpcResponse = 0x2a81,
QuestConfirmAccept = 0x2a8e,
QuestForceRemoved = 0x2a9b,
@@ -1517,9 +1533,9 @@ namespace Framework.Constants
QuestUpdateCompleteBySpell = 0x2a87,
QuestUpdateFailed = 0x2a89,
QuestUpdateFailedTimer = 0x2a8a,
- RafEmailEnabledResponse = 0x27d4,
- RaidDifficultySet = 0x27f7,
- RaidGroupOnly = 0x27f9,
+ RafEmailEnabledResponse = 0x27d5,
+ RaidDifficultySet = 0x27f8,
+ RaidGroupOnly = 0x27fa,
RaidInstanceMessage = 0x2bb4,
RaidMarkersChanged = 0x25b9,
RandomRoll = 0x264f,
@@ -1527,18 +1543,18 @@ namespace Framework.Constants
ReadyCheckCompleted = 0x260f,
ReadyCheckResponse = 0x260e,
ReadyCheckStarted = 0x260d,
- ReadItemResultFailed = 0x27f3,
- ReadItemResultOk = 0x27ed,
- RealmLookupInformation = 0x2818,
+ ReadItemResultFailed = 0x27f4,
+ ReadItemResultOk = 0x27ee,
+ RealmLookupInformation = 0x2819,
RealmQueryResponse = 0x26ee,
- RecruitAFriendResponse = 0x27d5,
- ReferAFriendExpired = 0x276a,
+ RecruitAFriendResponse = 0x27d6,
+ ReferAFriendExpired = 0x276b,
ReferAFriendFailure = 0x26f4,
RefreshComponent = 0x267c,
RefreshSpellHistory = 0x2c2c,
RemoveItemPassive = 0x25c0,
RemoveLossOfControl = 0x269d,
- ReplaceTrophyResponse = 0x280f,
+ ReplaceTrophyResponse = 0x2810,
ReportPvpPlayerAfkResult = 0x26e2,
RequestAddonList = 0x2662,
RequestCemeteryListResponse = 0x259e,
@@ -1547,7 +1563,7 @@ namespace Framework.Constants
ResearchComplete = 0x2586,
ResetCompressionContext = 0x304f,
ResetFailedNotify = 0x26ea,
- ResetRangedCombatTimer = 0x271c,
+ ResetRangedCombatTimer = 0x271d,
ResetWeeklyCurrency = 0x2574,
RespecWipeConfirm = 0x2629,
RespondInspectAchievements = 0x2571,
@@ -1556,17 +1572,17 @@ namespace Framework.Constants
ResumeToken = 0x25be,
ResurrectClearData = 0x257f,
ResurrectRequest = 0x257e,
- ResyncRunes = 0x2746,
+ ResyncRunes = 0x2747,
RoleChangedInform = 0x258d,
RoleChosen = 0x2a39,
RolePollInform = 0x258e,
RuneRegenDebug = 0x25c8,
- ScenarioBoot = 0x27f4,
- ScenarioCompleted = 0x2834,
+ ScenarioBoot = 0x27f5,
+ ScenarioCompleted = 0x2836,
ScenarioPois = 0x2652,
ScenarioProgressUpdate = 0x264b,
- ScenarioSetShouldShowCriteria = 0x2844,
- ScenarioSpellUpdate = 0x2843,
+ ScenarioSetShouldShowCriteria = 0x2846,
+ ScenarioSpellUpdate = 0x2845,
ScenarioState = 0x264a,
SceneObjectEvent = 0x25f8,
SceneObjectPetBattleFinalRound = 0x25fd,
@@ -1588,45 +1604,45 @@ namespace Framework.Constants
ServerTime = 0x26b1,
SetupCurrency = 0x2572,
SetupResearchHistory = 0x2585,
- SetAiAnimKit = 0x2779,
- SetAllTaskProgress = 0x27dd,
- SetAnimTier = 0x277d,
+ SetAiAnimKit = 0x277a,
+ SetAllTaskProgress = 0x27de,
+ SetAnimTier = 0x277e,
SetCurrency = 0x2573,
SetDfFastLaunchResult = 0x2a2e,
SetDungeonDifficulty = 0x26d3,
- SetFactionAtWar = 0x2745,
- SetFactionNotVisible = 0x2774,
- SetFactionStanding = 0x2775,
- SetFactionVisible = 0x2773,
+ SetFactionAtWar = 0x2746,
+ SetFactionNotVisible = 0x2775,
+ SetFactionStanding = 0x2776,
+ SetFactionVisible = 0x2774,
SetFlatSpellModifier = 0x2c36,
- SetForcedReactions = 0x2764,
+ SetForcedReactions = 0x2765,
SetItemPurchaseData = 0x25b1,
- SetLootMethodFailed = 0x281e,
+ SetLootMethodFailed = 0x281f,
SetMaxWeeklyQuantity = 0x25b7,
- SetMeleeAnimKit = 0x277c,
- SetMovementAnimKit = 0x277b,
+ SetMeleeAnimKit = 0x277d,
+ SetMovementAnimKit = 0x277c,
SetPctSpellModifier = 0x2c37,
SetPetSpecialization = 0x2644,
- SetPlayerDeclinedNamesResult = 0x2711,
+ SetPlayerDeclinedNamesResult = 0x2712,
SetPlayHoverAnim = 0x25cc,
- SetProficiency = 0x277e,
+ SetProficiency = 0x277f,
SetSpellCharges = 0x2c29,
- SetTaskComplete = 0x27de,
+ SetTaskComplete = 0x27df,
SetTimeZoneInformation = 0x26a5,
- SetVehicleRecId = 0x2738,
- ShowAdventureMap = 0x283d,
+ SetVehicleRecId = 0x2739,
+ ShowAdventureMap = 0x283f,
ShowBank = 0x26ae,
- ShowMailbox = 0x27f5,
+ ShowMailbox = 0x27f6,
ShowNeutralPlayerFactionSelectUi = 0x25f1,
- ShowTaxiNodes = 0x26ff,
- ShowTradeSkillResponse = 0x27be,
- SocketGems = 0x2770,
- SocketGemsFailure = 0x2771,
- SortBagsResult = 0x282c,
+ ShowTaxiNodes = 0x2700,
+ ShowTradeSkillResponse = 0x27bf,
+ SocketGems = 0x2771,
+ SocketGemsFailure = 0x2772,
+ SortBagsResult = 0x282d,
SorStartExperienceIncomplete = 0x25f3,
SpecializationChanged = 0x25ed,
SpecialMountAnim = 0x26ce,
- SpecInvoluntarilyChanged = 0x2760,
+ SpecInvoluntarilyChanged = 0x2761,
SpellAbsorbLog = 0x2c1f,
SpellCategoryCooldown = 0x2c17,
SpellChannelStart = 0x2c34,
@@ -1651,73 +1667,74 @@ namespace Framework.Constants
SpellPeriodicAuraLog = 0x2c1b,
SpellPrepare = 0x2c38,
SpellStart = 0x2c3a,
- SpiritHealerConfirm = 0x275d,
- StandStateUpdate = 0x2763,
+ SpiritHealerConfirm = 0x275e,
+ StandStateUpdate = 0x2764,
StartElapsedTimer = 0x261b,
StartElapsedTimers = 0x261d,
StartLootRoll = 0x2633,
- StartMirrorTimer = 0x2757,
+ StartMirrorTimer = 0x2758,
StartTimer = 0x25bb,
StopElapsedTimer = 0x261c,
- StopMirrorTimer = 0x2759,
- StopSpeakerbotSound = 0x27ba,
+ StopMirrorTimer = 0x275a,
+ StopSpeakerbotSound = 0x27bb,
StreamingMovies = 0x25ba,
SummonCancel = 0x26e1,
SummonRaidMemberValidateFailed = 0x258f,
- SummonRequest = 0x2768,
+ SummonRequest = 0x2769,
SupercededSpells = 0x2c4c,
SuspendComms = 0x304a,
SuspendToken = 0x25bd,
- TalentsInvoluntarilyReset = 0x275f,
+ TalentsInvoluntarilyReset = 0x2760,
TaxiNodeStatus = 0x26ab,
TextEmote = 0x26a9,
- ThreatClear = 0x2719,
- ThreatRemove = 0x2718,
- ThreatUpdate = 0x2717,
+ ThreatClear = 0x271a,
+ ThreatRemove = 0x2719,
+ ThreatUpdate = 0x2718,
TimeAdjustment = 0x2da1,
TimeSyncRequest = 0x2da0,
- TitleEarned = 0x2714,
- TitleLost = 0x2715,
+ TitleEarned = 0x2715,
+ TitleLost = 0x2716,
TotemCreated = 0x26fb,
- TotemMoved = 0x26fc,
+ TotemDurationChanged = 0x26fc,
+ TotemMoved = 0x26fd,
TradeStatus = 0x2582,
TradeUpdated = 0x2581,
- TrainerBuyFailed = 0x271e,
- TrainerList = 0x271d,
- TransferAborted = 0x2749,
+ TrainerBuyFailed = 0x271f,
+ TrainerList = 0x271e,
+ TransferAborted = 0x274a,
TransferPending = 0x25e5,
TransmogCollectionUpdate = 0x25c6,
TransmogSetCollectionUpdate = 0x25c7,
- TriggerCinematic = 0x2816,
- TriggerMovie = 0x26fd,
- TurnInPetitionResult = 0x279a,
- TutorialFlags = 0x2808,
- TutorialHighlightSpell = 0x284a,
- TutorialUnhighlightSpell = 0x2849,
+ TriggerCinematic = 0x2817,
+ TriggerMovie = 0x26fe,
+ TurnInPetitionResult = 0x279b,
+ TutorialFlags = 0x2809,
+ TutorialHighlightSpell = 0x284c,
+ TutorialUnhighlightSpell = 0x284b,
TwitterStatus = 0x2ffd,
- UiTime = 0x275c,
- UndeleteCharacterResponse = 0x2819,
- UndeleteCooldownStatusResponse = 0x281a,
+ UiTime = 0x275d,
+ UndeleteCharacterResponse = 0x281a,
+ UndeleteCooldownStatusResponse = 0x281b,
UnlearnedSpells = 0x2c4e,
- UpdateAccountData = 0x2751,
+ UpdateAccountData = 0x2752,
UpdateActionButtons = 0x25f6,
UpdateCelestialBody = 0x286b,
- UpdateCharacterFlags = 0x280e,
+ UpdateCharacterFlags = 0x280f,
UpdateExpansionLevel = 0x2666,
UpdateGameTimeState = 0x2872,
UpdateInstanceOwnership = 0x26d8,
UpdateLastInstance = 0x26b7,
- UpdateObject = 0x2817,
+ UpdateObject = 0x2818,
UpdateTalentData = 0x25ec,
- UpdateTaskProgress = 0x27dc,
+ UpdateTaskProgress = 0x27dd,
UpdateWeeklySpellUsage = 0x2c19,
- UpdateWorldState = 0x2794,
+ UpdateWorldState = 0x2795,
UserlistAdd = 0x2bb9,
UserlistRemove = 0x2bba,
UserlistUpdate = 0x2bbb,
- UseEquipmentSetResult = 0x279b,
+ UseEquipmentSetResult = 0x279c,
VendorInventory = 0x25ca,
- VignetteUpdate = 0x27bc,
+ VignetteUpdate = 0x27bd,
VoidItemSwapResponse = 0x25df,
VoidStorageContents = 0x25dc,
VoidStorageFailed = 0x25db,
@@ -1726,31 +1743,31 @@ namespace Framework.Constants
WaitQueueFinish = 0x256e,
WaitQueueUpdate = 0x256d,
WardenData = 0x2576,
- WarfrontCompleted = 0x27ad,
+ WarfrontCompleted = 0x27ae,
WargameRequestSuccessfullySentToOpponent = 0x25b4,
Weather = 0x26d5,
WeeklySpellUsage = 0x2c18,
Who = 0x2bae,
WhoIs = 0x26d4,
- WorldQuestUpdate = 0x2851,
+ WorldQuestUpdate = 0x2853,
WorldServerInfo = 0x25c2,
- WorldText = 0x2836,
- WowTokenAuctionSold = 0x2824,
- WowTokenBuyRequestConfirmation = 0x2826,
- WowTokenBuyResultConfirmation = 0x2827,
+ WorldText = 0x2838,
+ WowTokenAuctionSold = 0x2825,
+ WowTokenBuyRequestConfirmation = 0x2827,
+ WowTokenBuyResultConfirmation = 0x2828,
WowTokenCanRedeemForBalanceResult = 0x2861,
- WowTokenCanVeteranBuyResult = 0x2825,
- WowTokenDistributionGlueUpdate = 0x281f,
- WowTokenDistributionUpdate = 0x2820,
- WowTokenMarketPriceResponse = 0x2821,
- WowTokenRedeemGameTimeUpdated = 0x2828,
- WowTokenRedeemRequestConfirmation = 0x2829,
- WowTokenRedeemResult = 0x282a,
- WowTokenSellRequestConfirmation = 0x2822,
- WowTokenSellResultConfirmation = 0x2823,
- WowTokenUpdateAuctionableListResponse = 0x282b,
+ WowTokenCanVeteranBuyResult = 0x2826,
+ WowTokenDistributionGlueUpdate = 0x2820,
+ WowTokenDistributionUpdate = 0x2821,
+ WowTokenMarketPriceResponse = 0x2822,
+ WowTokenRedeemGameTimeUpdated = 0x2829,
+ WowTokenRedeemRequestConfirmation = 0x282a,
+ WowTokenRedeemResult = 0x282b,
+ WowTokenSellRequestConfirmation = 0x2823,
+ WowTokenSellResultConfirmation = 0x2824,
+ WowTokenUpdateAuctionableListResponse = 0x282c,
XpGainAborted = 0x25e0,
- XpGainEnabled = 0x27f8,
+ XpGainEnabled = 0x27f9,
ZoneUnderAttack = 0x2bb5,
// Opcodes that are not generated automatically
diff --git a/Source/Framework/Constants/ObjectConst.cs b/Source/Framework/Constants/ObjectConst.cs
index a4640c138..dad353014 100644
--- a/Source/Framework/Constants/ObjectConst.cs
+++ b/Source/Framework/Constants/ObjectConst.cs
@@ -32,7 +32,8 @@ namespace Framework.Constants
Corpse = 10,
AreaTrigger = 11,
SceneObject = 12,
- Conversation = 13
+ Conversation = 13,
+ Max = 14
}
public enum TypeMask
diff --git a/Source/Framework/Constants/PlayerConst.cs b/Source/Framework/Constants/PlayerConst.cs
index 1a53a0cb1..ed974b1bc 100644
--- a/Source/Framework/Constants/PlayerConst.cs
+++ b/Source/Framework/Constants/PlayerConst.cs
@@ -30,14 +30,11 @@ namespace Framework.Constants
public const int MaxMasterySpells = 2;
public const int ReqPrimaryTreeTalents = 31;
- public const int ExploredZonesSize = 320;
+ public const int ExploredZonesSize = 192;
public const ulong MaxMoneyAmount = 99999999999UL;
public const int MaxActionButtons = 132;
public const int MaxActionButtonActionValue = 0x00FFFFFF + 1;
- public const uint KnowTitlesSize = 6;
- public const uint MaxTitleIndex = KnowTitlesSize * 64;
-
public const int MaxDailyQuests = 25;
public const int QuestsCompletedBitsSize = 1750;
@@ -45,7 +42,7 @@ namespace Framework.Constants
public const uint infinityCooldownDelayCheck = Time.Month / 2;
public const int MaxPlayerSummonDelay = 2 * Time.Minute;
- public const int TaxiMaskSize = 286;
+ public const int TaxiMaskSize = 311;
// corpse reclaim times
public const int DeathExpireStep = (5 * Time.Minute);
@@ -76,45 +73,6 @@ namespace Framework.Constants
public const int Gold = Silver * 100;
}
- public struct PlayerFieldOffsets
- {
- public const byte BytesOffsetSkinId = 0;
- public const byte BytesOffsetFaceId = 1;
- public const byte BytesOffsetHairStyleId = 2;
- public const byte BytesOffsetHairColorId = 3;
-
- public const byte Bytes2OffsetCustomDisplayOption = 0; // 3 Bytes
- public const byte Bytes2OffsetFacialStyle = 3;
-
- public const byte Bytes3OffsetPartyType = 0;
- public const byte Bytes3OffsetBankBagSlots = 1;
- public const byte Bytes3OffsetGender = 2;
- public const byte Bytes3OffsetInebriation = 3;
-
- public const byte Bytes4OffsetPvpTitle = 0;
- public const byte Bytes4OffsetArenaFaction = 1;
-
- public const byte FieldBytesOffsetRafGrantableLevel = 0;
- public const byte FieldBytesOffsetActionBarToggles = 1;
- public const byte FieldBytesOffsetLifetimeMaxPvpRank = 2;
- public const byte FieldBytesOffsetNumRespecs = 3;
-
- public const byte FieldBytes2OffsetIgnorePowerRegenPredictionMask = 0;
- public const byte FieldBytes2OffsetAuraVision = 1;
- public const byte FieldBytes2OffsetNumBackpackSlots = 2;
-
- public const byte FieldBytes3OffsetOverrideSpellsId = 2; // Uint16!
- public const byte FieldBytes3OffsetOverrideSpellsIdUint16Offset = FieldBytes3OffsetOverrideSpellsId / 2;
-
- public const byte FieldKillsOffsetTodayKills = 0;
- public const byte FieldKillsOffsetYesterdayKills = 1;
-
- public const byte RestStateXp = 0;
- public const byte RestRestedXp = 1;
- public const byte RestStateHonor = 2;
- public const byte RestRestedHonor = 3;
- }
-
public enum TradeSlots
{
Invalid = -1,
@@ -737,7 +695,8 @@ namespace Framework.Constants
None = 0x00,
BonusLevel90 = 0x01,
BonusLevel100 = 0x02,
- BonusLevel110 = 0x04
+ BonusLevel110 = 0x04,
+ BonusLevel120 = 0x08
}
public enum HeirloomItemFlags
diff --git a/Source/Framework/Constants/SharedConst.cs b/Source/Framework/Constants/SharedConst.cs
index 787f0ec5f..dd4cb4a77 100644
--- a/Source/Framework/Constants/SharedConst.cs
+++ b/Source/Framework/Constants/SharedConst.cs
@@ -31,7 +31,7 @@ namespace Framework.Constants
public const int MaxMailItems = 12;
public const int MaxDeclinedNameCases = 5;
public const int MaxHolidayDurations = 10;
- public const int MaxHolidayDates = 16;
+ public const int MaxHolidayDates = 26;
public const int MaxHolidayFlags = 10;
public const int DefaultMaxLevel = 120;
public const int MaxLevel = 120;
@@ -756,11 +756,12 @@ namespace Framework.Constants
MythicIsland = 40,
PvpIsland = 45,
NormalWarfront = 147,
+ HeroicWarfront = 149,
Max
}
- public enum DifficultyFlags : byte
+ public enum DifficultyFlags : ushort
{
Heroic = 0x01,
Default = 0x02,
@@ -939,10 +940,10 @@ namespace Framework.Constants
{
Talk = 0, // Source/Target = Creature, Target = Any, Datalong = Talk Type (0=Say, 1=Whisper, 2=Yell, 3=Emote Text, 4=Boss Emote Text), Datalong2 & 1 = Player Talk (Instead Of Creature), Dataint = StringId
Emote = 1, // Source/Target = Creature, Datalong = Emote Id, Datalong2 = 0: Set Emote State; > 0: Play Emote State
- FieldSet = 2, // Source/Target = Creature, Datalong = Field Id, Datalog2 = Value
+ FieldSetDeprecated = 2,
MoveTo = 3, // Source/Target = Creature, Datalong2 = Time To Reach, X/Y/Z = Destination
- FlagSet = 4, // Source/Target = Creature, Datalong = Field Id, Datalog2 = Bitmask
- FlagRemove = 5, // Source/Target = Creature, Datalong = Field Id, Datalog2 = Bitmask
+ FlagSetDeprecated = 4,
+ FlagRemoveDeprecated = 5,
TeleportTo = 6, // Source/Target = Creature/Player (See Datalong2), Datalong = MapId, Datalong2 = 0: Player; 1: Creature, X/Y/Z = Destination, O = Orientation
QuestExplored = 7, // Target/Source = Player, Target/Source = Go/Creature, Datalong = Quest Id, Datalong2 = Distance Or 0
KillCredit = 8, // Target/Source = Player, Datalong = Creature Entry, Datalong2 = 0: Personal Credit, 1: Group Credit
@@ -1412,979 +1413,1000 @@ namespace Framework.Constants
ItemLocked = 34,
TwoHandedEquipped = 35,
VendorNotInterested = 36,
- VendorHatesYou = 37,
- VendorSoldOut = 38,
- VendorTooFar = 39,
- VendorDoesntBuy = 40,
- NotEnoughMoney = 41,
- ReceiveItemS = 42,
- DropBoundItem = 43,
- TradeBoundItem = 44,
- TradeQuestItem = 45,
- TradeTempEnchantBound = 46,
- TradeGroundItem = 47,
- TradeBag = 48,
- SpellFailedS = 49,
- ItemCooldown = 50,
- PotionCooldown = 51,
- FoodCooldown = 52,
- SpellCooldown = 53,
- AbilityCooldown = 54,
- SpellAlreadyKnownS = 55,
- PetSpellAlreadyKnownS = 56,
- ProficiencyGainedS = 57,
- SkillGainedS = 58,
- SkillUpSi = 59,
- LearnSpellS = 60,
- LearnAbilityS = 61,
- LearnPassiveS = 62,
- LearnRecipeS = 63,
- LearnCompanionS = 64,
- LearnMountS = 65,
- LearnToyS = 66,
- LearnHeirloomS = 67,
- LearnTransmogS = 68,
- CompletedTransmogSetS = 69,
- RevokeTransmogS = 70,
- InvitePlayerS = 71,
- InviteSelf = 72,
- InvitedToGroupSs = 73,
- InvitedAlreadyInGroupSs = 74,
- AlreadyInGroupS = 75,
- CrossRealmRaidInvite = 76,
- PlayerBusyS = 77,
- NewLeaderS = 78,
- NewLeaderYou = 79,
- NewGuideS = 80,
- NewGuideYou = 81,
- LeftGroupS = 82,
- LeftGroupYou = 83,
- GroupDisbanded = 84,
- DeclineGroupS = 85,
- JoinedGroupS = 86,
- UninviteYou = 87,
- BadPlayerNameS = 88,
- NotInGroup = 89,
- TargetNotInGroupS = 90,
- TargetNotInInstanceS = 91,
- NotInInstanceGroup = 92,
- GroupFull = 93,
- NotLeader = 94,
- PlayerDiedS = 95,
- GuildCreateS = 96,
- GuildInviteS = 97,
- InvitedToGuildSss = 98,
- AlreadyInGuildS = 99,
- AlreadyInvitedToGuildS = 100,
- InvitedToGuild = 101,
- AlreadyInGuild = 102,
- GuildAccept = 103,
- GuildDeclineS = 104,
- GuildDeclineAutoS = 105,
- GuildPermissions = 106,
- GuildJoinS = 107,
- GuildFounderS = 108,
- GuildPromoteSss = 109,
- GuildDemoteSs = 110,
- GuildDemoteSss = 111,
- GuildInviteSelf = 112,
- GuildQuitS = 113,
- GuildLeaveS = 114,
- GuildRemoveSs = 115,
- GuildRemoveSelf = 116,
- GuildDisbandS = 117,
- GuildDisbandSelf = 118,
- GuildLeaderS = 119,
- GuildLeaderSelf = 120,
- GuildPlayerNotFoundS = 121,
- GuildPlayerNotInGuildS = 122,
- GuildPlayerNotInGuild = 123,
- GuildCantPromoteS = 124,
- GuildCantDemoteS = 125,
- GuildNotInAGuild = 126,
- GuildInternal = 127,
- GuildLeaderIsS = 128,
- GuildLeaderChangedSs = 129,
- GuildDisbanded = 130,
- GuildNotAllied = 131,
- GuildLeaderLeave = 132,
- GuildRanksLocked = 133,
- GuildRankInUse = 134,
- GuildRankTooHighS = 135,
- GuildRankTooLowS = 136,
- GuildNameExistsS = 137,
- GuildWithdrawLimit = 138,
- GuildNotEnoughMoney = 139,
- GuildTooMuchMoney = 140,
- GuildBankConjuredItem = 141,
- GuildBankEquippedItem = 142,
- GuildBankBoundItem = 143,
- GuildBankQuestItem = 144,
- GuildBankWrappedItem = 145,
- GuildBankFull = 146,
- GuildBankWrongTab = 147,
- NoGuildCharter = 148,
- OutOfRange = 149,
- PlayerDead = 150,
- ClientLockedOut = 151,
- ClientOnTransport = 152,
- KilledByS = 153,
- LootLocked = 154,
- LootTooFar = 155,
- LootDidntKill = 156,
- LootBadFacing = 157,
- LootNotstanding = 158,
- LootStunned = 159,
- LootNoUi = 160,
- LootWhileInvulnerable = 161,
- NoLoot = 162,
- QuestAcceptedS = 163,
- QuestCompleteS = 164,
- QuestFailedS = 165,
- QuestFailedBagFullS = 166,
- QuestFailedMaxCountS = 167,
- QuestFailedLowLevel = 168,
- QuestFailedMissingItems = 169,
- QuestFailedWrongRace = 170,
- QuestFailedNotEnoughMoney = 171,
- QuestFailedExpansion = 172,
- QuestOnlyOneTimed = 173,
- QuestNeedPrereqs = 174,
- QuestNeedPrereqsCustom = 175,
- QuestAlreadyOn = 176,
- QuestAlreadyDone = 177,
- QuestAlreadyDoneDaily = 178,
- QuestHasInProgress = 179,
- QuestRewardExpI = 180,
- QuestRewardMoneyS = 181,
- QuestMustChoose = 182,
- QuestLogFull = 183,
- CombatDamageSsi = 184,
- InspectS = 185,
- CantUseItem = 186,
- CantUseItemInArena = 187,
- CantUseItemInRatedBattleground = 188,
- MustEquipItem = 189,
- PassiveAbility = 190,
- Hand2skillnotfound = 191,
- NoAttackTarget = 192,
- InvalidAttackTarget = 193,
- AttackPvpTargetWhileUnflagged = 194,
- AttackStunned = 195,
- AttackPacified = 196,
- AttackMounted = 197,
- AttackFleeing = 198,
- AttackConfused = 199,
- AttackCharmed = 200,
- AttackDead = 201,
- AttackPreventedByMechanicS = 202,
- AttackChannel = 203,
- Taxisamenode = 204,
- Taxinosuchpath = 205,
- Taxiunspecifiedservererror = 206,
- Taxinotenoughmoney = 207,
- Taxitoofaraway = 208,
- Taxinovendornearby = 209,
- Taxinotvisited = 210,
- Taxiplayerbusy = 211,
- Taxiplayeralreadymounted = 212,
- Taxiplayershapeshifted = 213,
- Taxiplayermoving = 214,
- Taxinopaths = 215,
- Taxinoteligible = 216,
- Taxinotstanding = 217,
- NoReplyTarget = 218,
- GenericNoTarget = 219,
- InitiateTradeS = 220,
- TradeRequestS = 221,
- TradeBlockedS = 222,
- TradeTargetDead = 223,
- TradeTooFar = 224,
- TradeCancelled = 225,
- TradeComplete = 226,
- TradeBagFull = 227,
- TradeTargetBagFull = 228,
- TradeMaxCountExceeded = 229,
- TradeTargetMaxCountExceeded = 230,
- AlreadyTrading = 231,
- MountInvalidmountee = 232,
- MountToofaraway = 233,
- MountAlreadymounted = 234,
- MountNotmountable = 235,
- MountNotyourpet = 236,
- MountOther = 237,
- MountLooting = 238,
- MountRacecantmount = 239,
- MountShapeshifted = 240,
- MountNoFavorites = 241,
- DismountNopet = 242,
- DismountNotmounted = 243,
- DismountNotyourpet = 244,
- SpellFailedTotems = 245,
- SpellFailedReagents = 246,
- SpellFailedReagentsGeneric = 247,
- CantTradeGold = 248,
- SpellFailedEquippedItem = 249,
- SpellFailedEquippedItemClassS = 250,
- SpellFailedShapeshiftFormS = 251,
- SpellFailedAnotherInProgress = 252,
- Badattackfacing = 253,
- Badattackpos = 254,
- ChestInUse = 255,
- UseCantOpen = 256,
- UseLocked = 257,
- DoorLocked = 258,
- ButtonLocked = 259,
- UseLockedWithItemS = 260,
- UseLockedWithSpellS = 261,
- UseLockedWithSpellKnownSi = 262,
- UseTooFar = 263,
- UseBadAngle = 264,
- UseObjectMoving = 265,
- UseSpellFocus = 266,
- UseDestroyed = 267,
- SetLootFreeforall = 268,
- SetLootRoundrobin = 269,
- SetLootMaster = 270,
- SetLootGroup = 271,
- SetLootThresholdS = 272,
- NewLootMasterS = 273,
- SpecifyMasterLooter = 274,
- LootSpecChangedS = 275,
- TameFailed = 276,
- ChatWhileDead = 277,
- ChatPlayerNotFoundS = 278,
- Newtaxipath = 279,
- NoPet = 280,
- Notyourpet = 281,
- PetNotRenameable = 282,
- QuestObjectiveCompleteS = 283,
- QuestUnknownComplete = 284,
- QuestAddKillSii = 285,
- QuestAddFoundSii = 286,
- QuestAddItemSii = 287,
- QuestAddPlayerKillSii = 288,
- Cannotcreatedirectory = 289,
- Cannotcreatefile = 290,
- PlayerWrongFaction = 291,
- PlayerIsNeutral = 292,
- BankslotFailedTooMany = 293,
- BankslotInsufficientFunds = 294,
- BankslotNotbanker = 295,
- FriendDbError = 296,
- FriendListFull = 297,
- FriendAddedS = 298,
- BattletagFriendAddedS = 299,
- FriendOnlineSs = 300,
- FriendOfflineS = 301,
- FriendNotFound = 302,
- FriendWrongFaction = 303,
- FriendRemovedS = 304,
- BattletagFriendRemovedS = 305,
- FriendError = 306,
- FriendAlreadyS = 307,
- FriendSelf = 308,
- FriendDeleted = 309,
- IgnoreFull = 310,
- IgnoreSelf = 311,
- IgnoreNotFound = 312,
- IgnoreAlreadyS = 313,
- IgnoreAddedS = 314,
- IgnoreRemovedS = 315,
- IgnoreAmbiguous = 316,
- IgnoreDeleted = 317,
- OnlyOneBolt = 318,
- OnlyOneAmmo = 319,
- SpellFailedEquippedSpecificItem = 320,
- WrongBagTypeSubclass = 321,
- CantWrapStackable = 322,
- CantWrapEquipped = 323,
- CantWrapWrapped = 324,
- CantWrapBound = 325,
- CantWrapUnique = 326,
- CantWrapBags = 327,
- OutOfMana = 328,
- OutOfRage = 329,
- OutOfFocus = 330,
- OutOfEnergy = 331,
- OutOfChi = 332,
- OutOfHealth = 333,
- OutOfRunes = 334,
- OutOfRunicPower = 335,
- OutOfSoulShards = 336,
- OutOfLunarPower = 337,
- OutOfHolyPower = 338,
- OutOfMaelstrom = 339,
- OutOfComboPoints = 340,
- OutOfInsanity = 341,
- OutOfArcaneCharges = 342,
- OutOfFury = 343,
- OutOfPain = 344,
- OutOfPowerDisplay = 345,
- LootGone = 346,
- MountForceddismount = 347,
- AutofollowTooFar = 348,
- UnitNotFound = 349,
- InvalidFollowTarget = 350,
- InvalidFollowPvpCombat = 351,
- InvalidFollowTargetPvpCombat = 352,
- InvalidInspectTarget = 353,
- GuildemblemSuccess = 354,
- GuildemblemInvalidTabardColors = 355,
- GuildemblemNoguild = 356,
- GuildemblemNotguildmaster = 357,
- GuildemblemNotenoughmoney = 358,
- GuildemblemInvalidvendor = 359,
- EmblemerrorNotabardgeoset = 360,
- SpellOutOfRange = 361,
- CommandNeedsTarget = 362,
- NoammoS = 363,
- Toobusytofollow = 364,
- DuelRequested = 365,
- DuelCancelled = 366,
- Deathbindalreadybound = 367,
- DeathbindSuccessS = 368,
- Noemotewhilerunning = 369,
- ZoneExplored = 370,
- ZoneExploredXp = 371,
- InvalidItemTarget = 372,
- InvalidQuestTarget = 373,
- IgnoringYouS = 374,
- FishNotHooked = 375,
- FishEscaped = 376,
- SpellFailedNotunsheathed = 377,
- PetitionOfferedS = 378,
- PetitionSigned = 379,
- PetitionSignedS = 380,
- PetitionDeclinedS = 381,
- PetitionAlreadySigned = 382,
- PetitionRestrictedAccountTrial = 383,
- PetitionAlreadySignedOther = 384,
- PetitionInGuild = 385,
- PetitionCreator = 386,
- PetitionNotEnoughSignatures = 387,
- PetitionNotSameServer = 388,
- PetitionFull = 389,
- PetitionAlreadySignedByS = 390,
- GuildNameInvalid = 391,
- SpellUnlearnedS = 392,
- PetSpellRooted = 393,
- PetSpellAffectingCombat = 394,
- PetSpellOutOfRange = 395,
- PetSpellNotBehind = 396,
- PetSpellTargetsDead = 397,
- PetSpellDead = 398,
- PetSpellNopath = 399,
- ItemCantBeDestroyed = 400,
- TicketAlreadyExists = 401,
- TicketCreateError = 402,
- TicketUpdateError = 403,
- TicketDbError = 404,
- TicketNoText = 405,
- TicketTextTooLong = 406,
- ObjectIsBusy = 407,
- ExhaustionWellrested = 408,
- ExhaustionRested = 409,
- ExhaustionNormal = 410,
- ExhaustionTired = 411,
- ExhaustionExhausted = 412,
- NoItemsWhileShapeshifted = 413,
- CantInteractShapeshifted = 414,
- RealmNotFound = 415,
- MailQuestItem = 416,
- MailBoundItem = 417,
- MailConjuredItem = 418,
- MailBag = 419,
- MailToSelf = 420,
- MailTargetNotFound = 421,
- MailDatabaseError = 422,
- MailDeleteItemError = 423,
- MailWrappedCod = 424,
- MailCantSendRealm = 425,
- MailSent = 426,
- NotHappyEnough = 427,
- UseCantImmune = 428,
- CantBeDisenchanted = 429,
- CantUseDisarmed = 430,
- AuctionQuestItem = 431,
- AuctionBoundItem = 432,
- AuctionConjuredItem = 433,
- AuctionLimitedDurationItem = 434,
- AuctionWrappedItem = 435,
- AuctionLootItem = 436,
- AuctionBag = 437,
- AuctionEquippedBag = 438,
- AuctionDatabaseError = 439,
- AuctionBidOwn = 440,
- AuctionBidIncrement = 441,
- AuctionHigherBid = 442,
- AuctionMinBid = 443,
- AuctionRepairItem = 444,
- AuctionUsedCharges = 445,
- AuctionAlreadyBid = 446,
- AuctionStarted = 447,
- AuctionRemoved = 448,
- AuctionOutbidS = 449,
- AuctionWonS = 450,
- AuctionSoldS = 451,
- AuctionExpiredS = 452,
- AuctionRemovedS = 453,
- AuctionBidPlaced = 454,
- LogoutFailed = 455,
- QuestPushSuccessS = 456,
- QuestPushInvalidS = 457,
- QuestPushAcceptedS = 458,
- QuestPushDeclinedS = 459,
- QuestPushBusyS = 460,
- QuestPushDeadS = 461,
- QuestPushLogFullS = 462,
- QuestPushOnquestS = 463,
- QuestPushAlreadyDoneS = 464,
- QuestPushNotDailyS = 465,
- QuestPushTimerExpiredS = 466,
- QuestPushNotInPartyS = 467,
- QuestPushDifferentServerDailyS = 468,
- QuestPushNotAllowedS = 469,
- RaidGroupLowlevel = 470,
- RaidGroupOnly = 471,
- RaidGroupFull = 472,
- RaidGroupRequirementsUnmatch = 473,
- CorpseIsNotInInstance = 474,
- PvpKillHonorable = 475,
- PvpKillDishonorable = 476,
- SpellFailedAlreadyAtFullHealth = 477,
- SpellFailedAlreadyAtFullMana = 478,
- SpellFailedAlreadyAtFullPowerS = 479,
- AutolootMoneyS = 480,
- GenericStunned = 481,
- TargetStunned = 482,
- MustRepairDurability = 483,
- RaidYouJoined = 484,
- RaidYouLeft = 485,
- InstanceGroupJoinedWithParty = 486,
- InstanceGroupJoinedWithRaid = 487,
- RaidMemberAddedS = 488,
- RaidMemberRemovedS = 489,
- InstanceGroupAddedS = 490,
- InstanceGroupRemovedS = 491,
- ClickOnItemToFeed = 492,
- TooManyChatChannels = 493,
- LootRollPending = 494,
- LootPlayerNotFound = 495,
- NotInRaid = 496,
- LoggingOut = 497,
- TargetLoggingOut = 498,
- NotWhileMounted = 499,
- NotWhileShapeshifted = 500,
- NotInCombat = 501,
- NotWhileDisarmed = 502,
- PetBroken = 503,
- TalentWipeError = 504,
- SpecWipeError = 505,
- GlyphWipeError = 506,
- PetSpecWipeError = 507,
- FeignDeathResisted = 508,
- MeetingStoneInQueueS = 509,
- MeetingStoneLeftQueueS = 510,
- MeetingStoneOtherMemberLeft = 511,
- MeetingStonePartyKickedFromQueue = 512,
- MeetingStoneMemberStillInQueue = 513,
- MeetingStoneSuccess = 514,
- MeetingStoneInProgress = 515,
- MeetingStoneMemberAddedS = 516,
- MeetingStoneGroupFull = 517,
- MeetingStoneNotLeader = 518,
- MeetingStoneInvalidLevel = 519,
- MeetingStoneTargetNotInParty = 520,
- MeetingStoneTargetInvalidLevel = 521,
- MeetingStoneMustBeLeader = 522,
- MeetingStoneNoRaidGroup = 523,
- MeetingStoneNeedParty = 524,
- MeetingStoneNotFound = 525,
- GuildemblemSame = 526,
- EquipTradeItem = 527,
- PvpToggleOn = 528,
- PvpToggleOff = 529,
- GroupJoinBattlegroundDeserters = 530,
- GroupJoinBattlegroundDead = 531,
- GroupJoinBattlegroundS = 532,
- GroupJoinBattlegroundFail = 533,
- GroupJoinBattlegroundTooMany = 534,
- SoloJoinBattlegroundS = 535,
- JoinSingleScenarioS = 536,
- BattlegroundTooManyQueues = 537,
- BattlegroundCannotQueueForRated = 538,
- BattledgroundQueuedForRated = 539,
- BattlegroundTeamLeftQueue = 540,
- BattlegroundNotInBattleground = 541,
- AlreadyInArenaTeamS = 542,
- InvalidPromotionCode = 543,
- BgPlayerJoinedSs = 544,
- BgPlayerLeftS = 545,
- RestrictedAccount = 546,
- RestrictedAccountTrial = 547,
- PlayTimeExceeded = 548,
- ApproachingPartialPlayTime = 549,
- ApproachingPartialPlayTime2 = 550,
- ApproachingNoPlayTime = 551,
- ApproachingNoPlayTime2 = 552,
- UnhealthyTime = 553,
- ChatRestrictedTrial = 554,
- ChatThrottled = 555,
- MailReachedCap = 556,
- InvalidRaidTarget = 557,
- RaidLeaderReadyCheckStartS = 558,
- ReadyCheckInProgress = 559,
- ReadyCheckThrottled = 560,
- DungeonDifficultyFailed = 561,
- DungeonDifficultyChangedS = 562,
- TradeWrongRealm = 563,
- TradeNotOnTaplist = 564,
- ChatPlayerAmbiguousS = 565,
- LootCantLootThatNow = 566,
- LootMasterInvFull = 567,
- LootMasterUniqueItem = 568,
- LootMasterOther = 569,
- FilteringYouS = 570,
- UsePreventedByMechanicS = 571,
- ItemUniqueEquippable = 572,
- LfgLeaderIsLfmS = 573,
- LfgPending = 574,
- CantSpeakLangage = 575,
- VendorMissingTurnins = 576,
- BattlegroundNotInTeam = 577,
- NotInBattleground = 578,
- NotEnoughHonorPoints = 579,
- NotEnoughArenaPoints = 580,
- SocketingRequiresMetaGem = 581,
- SocketingMetaGemOnlyInMetaslot = 582,
- SocketingRequiresHydraulicGem = 583,
- SocketingHydraulicGemOnlyInHydraulicslot = 584,
- SocketingRequiresCogwheelGem = 585,
- SocketingCogwheelGemOnlyInCogwheelslot = 586,
- SocketingItemTooLowLevel = 587,
- ItemMaxCountSocketed = 588,
- SystemDisabled = 589,
- QuestFailedTooManyDailyQuestsI = 590,
- ItemMaxCountEquippedSocketed = 591,
- ItemUniqueEquippableSocketed = 592,
- UserSquelched = 593,
- TooMuchGold = 594,
- NotBarberSitting = 595,
- QuestFailedCais = 596,
- InviteRestrictedTrial = 597,
- VoiceIgnoreFull = 598,
- VoiceIgnoreSelf = 599,
- VoiceIgnoreNotFound = 600,
- VoiceIgnoreAlreadyS = 601,
- VoiceIgnoreAddedS = 602,
- VoiceIgnoreRemovedS = 603,
- VoiceIgnoreAmbiguous = 604,
- VoiceIgnoreDeleted = 605,
- UnknownMacroOptionS = 606,
- NotDuringArenaMatch = 607,
- PlayerSilenced = 608,
- PlayerUnsilenced = 609,
- ComsatDisconnect = 610,
- ComsatReconnectAttempt = 611,
- ComsatConnectFail = 612,
- MailInvalidAttachmentSlot = 613,
- MailTooManyAttachments = 614,
- MailInvalidAttachment = 615,
- MailAttachmentExpired = 616,
- VoiceChatParentalDisableMic = 617,
- ProfaneChatName = 618,
- PlayerSilencedEcho = 619,
- PlayerUnsilencedEcho = 620,
- LootCantLootThat = 621,
- ArenaExpiredCais = 622,
- GroupActionThrottled = 623,
- AlreadyPickpocketed = 624,
- NameInvalid = 625,
- NameNoName = 626,
- NameTooShort = 627,
- NameTooLong = 628,
- NameMixedLanguages = 629,
- NameProfane = 630,
- NameReserved = 631,
- NameThreeConsecutive = 632,
- NameInvalidSpace = 633,
- NameConsecutiveSpaces = 634,
- NameRussianConsecutiveSilentCharacters = 635,
- NameRussianSilentCharacterAtBeginningOrEnd = 636,
- NameDeclensionDoesntMatchBaseName = 637,
- ReferAFriendNotReferredBy = 638,
- ReferAFriendTargetTooHigh = 639,
- ReferAFriendInsufficientGrantableLevels = 640,
- ReferAFriendTooFar = 641,
- ReferAFriendDifferentFaction = 642,
- ReferAFriendNotNow = 643,
- ReferAFriendGrantLevelMaxI = 644,
- ReferAFriendSummonLevelMaxI = 645,
- ReferAFriendSummonCooldown = 646,
- ReferAFriendSummonOfflineS = 647,
- ReferAFriendInsufExpanLvl = 648,
- ReferAFriendNotInLfg = 649,
- ReferAFriendNoXrealm = 650,
- ReferAFriendMapIncomingTransferNotAllowed = 651,
- NotSameAccount = 652,
- BadOnUseEnchant = 653,
- TradeSelf = 654,
- TooManySockets = 655,
- ItemMaxLimitCategoryCountExceededIs = 656,
- TradeTargetMaxLimitCategoryCountExceededIs = 657,
- ItemMaxLimitCategorySocketedExceededIs = 658,
- ItemMaxLimitCategoryEquippedExceededIs = 659,
- ShapeshiftFormCannotEquip = 660,
- ItemInventoryFullSatchel = 661,
- ScalingStatItemLevelExceeded = 662,
- ScalingStatItemLevelTooLow = 663,
- PurchaseLevelTooLow = 664,
- GroupSwapFailed = 665,
- InviteInCombat = 666,
- InvalidGlyphSlot = 667,
- GenericNoValidTargets = 668,
- CalendarEventAlertS = 669,
- PetLearnSpellS = 670,
- PetLearnAbilityS = 671,
- PetSpellUnlearnedS = 672,
- InviteUnknownRealm = 673,
- InviteNoPartyServer = 674,
- InvitePartyBusy = 675,
- PartyTargetAmbiguous = 676,
- PartyLfgInviteRaidLocked = 677,
- PartyLfgBootLimit = 678,
- PartyLfgBootCooldownS = 679,
- PartyLfgBootNotEligibleS = 680,
- PartyLfgBootInpatientTimerS = 681,
- PartyLfgBootInProgress = 682,
- PartyLfgBootTooFewPlayers = 683,
- PartyLfgBootVoteSucceeded = 684,
- PartyLfgBootVoteFailed = 685,
- PartyLfgBootInCombat = 686,
- PartyLfgBootDungeonComplete = 687,
- PartyLfgBootLootRolls = 688,
- PartyLfgBootVoteRegistered = 689,
- PartyPrivateGroupOnly = 690,
- PartyLfgTeleportInCombat = 691,
- RaidDisallowedByLevel = 692,
- RaidDisallowedByCrossRealm = 693,
- PartyRoleNotAvailable = 694,
- JoinLfgObjectFailed = 695,
- LfgRemovedLevelup = 696,
- LfgRemovedXpToggle = 697,
- LfgRemovedFactionChange = 698,
- BattlegroundInfoThrottled = 699,
- BattlegroundAlreadyIn = 700,
- ArenaTeamChangeFailedQueued = 701,
- ArenaTeamPermissions = 702,
- NotWhileFalling = 703,
- NotWhileMoving = 704,
- NotWhileFatigued = 705,
- MaxSockets = 706,
- MultiCastActionTotemS = 707,
- BattlegroundJoinLevelup = 708,
- RemoveFromPvpQueueXpGain = 709,
- BattlegroundJoinXpGain = 710,
- BattlegroundJoinMercenary = 711,
- BattlegroundJoinTooManyHealers = 712,
- BattlegroundJoinTooManyTanks = 713,
- BattlegroundJoinTooManyDamage = 714,
- RaidDifficultyFailed = 715,
- RaidDifficultyChangedS = 716,
- LegacyRaidDifficultyChangedS = 717,
- RaidLockoutChangedS = 718,
- RaidConvertedToParty = 719,
- PartyConvertedToRaid = 720,
- PlayerDifficultyChangedS = 721,
- GmresponseDbError = 722,
- BattlegroundJoinRangeIndex = 723,
- ArenaJoinRangeIndex = 724,
- RemoveFromPvpQueueFactionChange = 725,
- BattlegroundJoinFailed = 726,
- BattlegroundJoinNoValidSpecForRole = 727,
- BattlegroundJoinRespec = 728,
- BattlegroundInvitationDeclined = 729,
- BattlegroundJoinTimedOut = 730,
- BattlegroundDupeQueue = 731,
- BattlegroundJoinMustCompleteQuest = 732,
- InBattlegroundRespec = 733,
- MailLimitedDurationItem = 734,
- YellRestrictedTrial = 735,
- ChatRaidRestrictedTrial = 736,
- LfgRoleCheckFailed = 737,
- LfgRoleCheckFailedTimeout = 738,
- LfgRoleCheckFailedNotViable = 739,
- LfgReadyCheckFailed = 740,
- LfgReadyCheckFailedTimeout = 741,
- LfgGroupFull = 742,
- LfgNoLfgObject = 743,
- LfgNoSlotsPlayer = 744,
- LfgNoSlotsParty = 745,
- LfgNoSpec = 746,
- LfgMismatchedSlots = 747,
- LfgMismatchedSlotsLocalXrealm = 748,
- LfgPartyPlayersFromDifferentRealms = 749,
- LfgMembersNotPresent = 750,
- LfgGetInfoTimeout = 751,
- LfgInvalidSlot = 752,
- LfgDeserterPlayer = 753,
- LfgDeserterParty = 754,
- LfgDead = 755,
- LfgRandomCooldownPlayer = 756,
- LfgRandomCooldownParty = 757,
- LfgTooManyMembers = 758,
- LfgTooFewMembers = 759,
- LfgProposalFailed = 760,
- LfgProposalDeclinedSelf = 761,
- LfgProposalDeclinedParty = 762,
- LfgNoSlotsSelected = 763,
- LfgNoRolesSelected = 764,
- LfgRoleCheckInitiated = 765,
- LfgReadyCheckInitiated = 766,
- LfgPlayerDeclinedRoleCheck = 767,
- LfgPlayerDeclinedReadyCheck = 768,
- LfgJoinedQueue = 769,
- LfgJoinedFlexQueue = 770,
- LfgJoinedRfQueue = 771,
- LfgJoinedScenarioQueue = 772,
- LfgJoinedWorldPvpQueue = 773,
- LfgJoinedBattlefieldQueue = 774,
- LfgJoinedList = 775,
- LfgLeftQueue = 776,
- LfgLeftList = 777,
- LfgRoleCheckAborted = 778,
- LfgReadyCheckAborted = 779,
- LfgCantUseBattleground = 780,
- LfgCantUseDungeons = 781,
- LfgReasonTooManyLfg = 782,
- InvalidTeleportLocation = 783,
- TooFarToInteract = 784,
- BattlegroundPlayersFromDifferentRealms = 785,
- DifficultyChangeCooldownS = 786,
- DifficultyChangeCombatCooldownS = 787,
- DifficultyChangeWorldstate = 788,
- DifficultyChangeEncounter = 789,
- DifficultyChangeCombat = 790,
- DifficultyChangePlayerBusy = 791,
- DifficultyChangeAlreadyStarted = 792,
- DifficultyChangeOtherHeroicS = 793,
- DifficultyChangeHeroicInstanceAlreadyRunning = 794,
- ArenaTeamPartySize = 795,
- QuestForceRemovedS = 796,
- AttackNoActions = 797,
- InRandomBg = 798,
- InNonRandomBg = 799,
- AuctionEnoughItems = 800,
- BnFriendSelf = 801,
- BnFriendAlready = 802,
- BnFriendBlocked = 803,
- BnFriendListFull = 804,
- BnFriendRequestSent = 805,
- BnBroadcastThrottle = 806,
- BgDeveloperOnly = 807,
- CurrencySpellSlotMismatch = 808,
- CurrencyNotTradable = 809,
- RequiresExpansionS = 810,
- QuestFailedSpell = 811,
- TalentFailedNotEnoughTalentsInPrimaryTree = 812,
- TalentFailedNoPrimaryTreeSelected = 813,
- TalentFailedCantRemoveTalent = 814,
- TalentFailedUnknown = 815,
- WargameRequestFailure = 816,
- RankRequiresAuthenticator = 817,
- GuildBankVoucherFailed = 818,
- WargameRequestSent = 819,
- RequiresAchievementI = 820,
- RefundResultExceedMaxCurrency = 821,
- CantBuyQuantity = 822,
- ItemIsBattlePayLocked = 823,
- PartyAlreadyInBattlegroundQueue = 824,
- PartyConfirmingBattlegroundQueue = 825,
- BattlefieldTeamPartySize = 826,
- InsuffTrackedCurrencyIs = 827,
- NotOnTournamentRealm = 828,
- GuildTrialAccountTrial = 829,
- GuildTrialAccountVeteran = 830,
- GuildUndeletableDueToLevel = 831,
- CantDoThatInAGroup = 832,
- GuildLeaderReplaced = 833,
- TransmogrifyCantEquip = 834,
- TransmogrifyInvalidItemType = 835,
- TransmogrifyNotSoulbound = 836,
- TransmogrifyInvalidSource = 837,
- TransmogrifyInvalidDestination = 838,
- TransmogrifyMismatch = 839,
- TransmogrifyLegendary = 840,
- TransmogrifySameItem = 841,
- TransmogrifySameAppearance = 842,
- TransmogrifyNotEquipped = 843,
- VoidDepositFull = 844,
- VoidWithdrawFull = 845,
- VoidStorageWrapped = 846,
- VoidStorageStackable = 847,
- VoidStorageUnbound = 848,
- VoidStorageRepair = 849,
- VoidStorageCharges = 850,
- VoidStorageQuest = 851,
- VoidStorageConjured = 852,
- VoidStorageMail = 853,
- VoidStorageBag = 854,
- VoidTransferStorageFull = 855,
- VoidTransferInvFull = 856,
- VoidTransferInternalError = 857,
- VoidTransferItemInvalid = 858,
- DifficultyDisabledInLfg = 859,
- VoidStorageUnique = 860,
- VoidStorageLoot = 861,
- VoidStorageHoliday = 862,
- VoidStorageDuration = 863,
- VoidStorageLoadFailed = 864,
- VoidStorageInvalidItem = 865,
- ParentalControlsChatMuted = 866,
- SorStartExperienceIncomplete = 867,
- SorInvalidEmail = 868,
- SorInvalidComment = 869,
- ChallengeModeResetCooldownS = 870,
- ChallengeModeResetKeystone = 871,
- PetJournalAlreadyInLoadout = 872,
- ReportSubmittedSuccessfully = 873,
- ReportSubmissionFailed = 874,
- SuggestionSubmittedSuccessfully = 875,
- BugSubmittedSuccessfully = 876,
- ChallengeModeEnabled = 877,
- ChallengeModeDisabled = 878,
- PetbattleCreateFailed = 879,
- PetbattleNotHere = 880,
- PetbattleNotHereOnTransport = 881,
- PetbattleNotHereUnevenGround = 882,
- PetbattleNotHereObstructed = 883,
- PetbattleNotWhileInCombat = 884,
- PetbattleNotWhileDead = 885,
- PetbattleNotWhileFlying = 886,
- PetbattleTargetInvalid = 887,
- PetbattleTargetOutOfRange = 888,
- PetbattleTargetNotCapturable = 889,
- PetbattleNotATrainer = 890,
- PetbattleDeclined = 891,
- PetbattleInBattle = 892,
- PetbattleInvalidLoadout = 893,
- PetbattleAllPetsDead = 894,
- PetbattleNoPetsInSlots = 895,
- PetbattleNoAccountLock = 896,
- PetbattleWildPetTapped = 897,
- PetbattleRestrictedAccount = 898,
- PetbattleOpponentNotAvailable = 899,
- PetbattleNotWhileInMatchedBattle = 900,
- CantHaveMorePetsOfThatType = 901,
- CantHaveMorePets = 902,
- PvpMapNotFound = 903,
- PvpMapNotSet = 904,
- PetbattleQueueQueued = 905,
- PetbattleQueueAlreadyQueued = 906,
- PetbattleQueueJoinFailed = 907,
- PetbattleQueueJournalLock = 908,
- PetbattleQueueRemoved = 909,
- PetbattleQueueProposalDeclined = 910,
- PetbattleQueueProposalTimeout = 911,
- PetbattleQueueOpponentDeclined = 912,
- PetbattleQueueRequeuedInternal = 913,
- PetbattleQueueRequeuedRemoved = 914,
- PetbattleQueueSlotLocked = 915,
- PetbattleQueueSlotEmpty = 916,
- PetbattleQueueSlotNoTracker = 917,
- PetbattleQueueSlotNoSpecies = 918,
- PetbattleQueueSlotCantBattle = 919,
- PetbattleQueueSlotRevoked = 920,
- PetbattleQueueSlotDead = 921,
- PetbattleQueueSlotNoPet = 922,
- PetbattleQueueNotWhileNeutral = 923,
- PetbattleGameTimeLimitWarning = 924,
- PetbattleGameRoundsLimitWarning = 925,
- HasRestriction = 926,
- ItemUpgradeItemTooLowLevel = 927,
- ItemUpgradeNoPath = 928,
- ItemUpgradeNoMoreUpgrades = 929,
- BonusRollEmpty = 930,
- ChallengeModeFull = 931,
- ChallengeModeInProgress = 932,
- ChallengeModeIncorrectKeystone = 933,
- BattletagFriendNotFound = 934,
- BattletagFriendNotValid = 935,
- BattletagFriendNotAllowed = 936,
- BattletagFriendThrottled = 937,
- BattletagFriendSuccess = 938,
- PetTooHighLevelToUncage = 939,
- PetbattleInternal = 940,
- CantCagePetYet = 941,
- NoLootInChallengeMode = 942,
- QuestPetBattleVictoriesPvpIi = 943,
- RoleCheckAlreadyInProgress = 944,
- RecruitAFriendAccountLimit = 945,
- RecruitAFriendFailed = 946,
- SetLootPersonal = 947,
- SetLootMethodFailedCombat = 948,
- ReagentBankFull = 949,
- ReagentBankLocked = 950,
- GarrisonBuildingExists = 951,
- GarrisonInvalidPlot = 952,
- GarrisonInvalidBuildingid = 953,
- GarrisonInvalidPlotBuilding = 954,
- GarrisonRequiresBlueprint = 955,
- GarrisonNotEnoughCurrency = 956,
- GarrisonNotEnoughGold = 957,
- GarrisonCompleteMissionWrongFollowerType = 958,
- AlreadyUsingLfgList = 959,
- RestrictedAccountLfgListTrial = 960,
- ToyUseLimitReached = 961,
- ToyAlreadyKnown = 962,
- TransmogSetAlreadyKnown = 963,
- NotEnoughCurrency = 964,
- SpecIsDisabled = 965,
- FeatureRestrictedTrial = 966,
- CantBeObliterated = 967,
- CantBeScrapped = 968,
- ArtifactRelicDoesNotMatchArtifact = 969,
- MustEquipArtifact = 970,
- CantDoThatRightNow = 971,
- AffectingCombat = 972,
- EquipmentManagerCombatSwapS = 973,
- EquipmentManagerBagsFull = 974,
- EquipmentManagerMissingItemS = 975,
- MovieRecordingWarningPerf = 976,
- MovieRecordingWarningDiskFull = 977,
- MovieRecordingWarningNoMovie = 978,
- MovieRecordingWarningRequirements = 979,
- MovieRecordingWarningCompressing = 980,
- NoChallengeModeReward = 981,
- ClaimedChallengeModeReward = 982,
- ChallengeModePeriodResetSs = 983,
- CantDoThatChallengeModeActive = 984,
- TalentFailedRestArea = 985,
- CannotAbandonLastPet = 986,
- TestCvarSetSss = 987,
- QuestTurnInFailReason = 988,
- ClaimedChallengeModeRewardOld = 989,
- TalentGrantedByAura = 990,
- ChallengeModeAlreadyComplete = 991,
- GlyphTargetNotAvailable = 992,
- PvpWarmodeToggleOn = 993,
- PvpWarmodeToggleOff = 994,
- SpellFailedLevelRequirement = 995,
- BattlegroundJoinRequiresLevel = 996,
- BattlegroundJoinDisqualified = 997,
- VoiceChatGenericUnableToConnect = 998,
- VoiceChatServiceLost = 999,
- VoiceChatChannelNameTooShort = 1000,
- VoiceChatChannelNameTooLong = 1001,
- VoiceChatChannelAlreadyExists = 1002,
- VoiceChatTargetNotFound = 1003,
- VoiceChatTooManyRequests = 1004,
- VoiceChatPlayerSilenced = 1005,
- VoiceChatParentalDisableAll = 1006,
- VoiceChatDisabled = 1007,
- NoPvpReward = 1008,
- ClaimedPvpReward = 1009
+ VendorRefuseScrappableAzerite = 37,
+ VendorHatesYou = 38,
+ VendorSoldOut = 39,
+ VendorTooFar = 40,
+ VendorDoesntBuy = 41,
+ NotEnoughMoney = 42,
+ ReceiveItemS = 43,
+ DropBoundItem = 44,
+ TradeBoundItem = 45,
+ TradeQuestItem = 46,
+ TradeTempEnchantBound = 47,
+ TradeGroundItem = 48,
+ TradeBag = 49,
+ SpellFailedS = 50,
+ ItemCooldown = 51,
+ PotionCooldown = 52,
+ FoodCooldown = 53,
+ SpellCooldown = 54,
+ AbilityCooldown = 55,
+ SpellAlreadyKnownS = 56,
+ PetSpellAlreadyKnownS = 57,
+ ProficiencyGainedS = 58,
+ SkillGainedS = 59,
+ SkillUpSi = 60,
+ LearnSpellS = 61,
+ LearnAbilityS = 62,
+ LearnPassiveS = 63,
+ LearnRecipeS = 64,
+ LearnCompanionS = 65,
+ LearnMountS = 66,
+ LearnToyS = 67,
+ LearnHeirloomS = 68,
+ LearnTransmogS = 69,
+ CompletedTransmogSetS = 70,
+ RevokeTransmogS = 71,
+ InvitePlayerS = 72,
+ InviteSelf = 73,
+ InvitedToGroupSs = 74,
+ InvitedAlreadyInGroupSs = 75,
+ AlreadyInGroupS = 76,
+ CrossRealmRaidInvite = 77,
+ PlayerBusyS = 78,
+ NewLeaderS = 79,
+ NewLeaderYou = 80,
+ NewGuideS = 81,
+ NewGuideYou = 82,
+ LeftGroupS = 83,
+ LeftGroupYou = 84,
+ GroupDisbanded = 85,
+ DeclineGroupS = 86,
+ JoinedGroupS = 87,
+ UninviteYou = 88,
+ BadPlayerNameS = 89,
+ NotInGroup = 90,
+ TargetNotInGroupS = 91,
+ TargetNotInInstanceS = 92,
+ NotInInstanceGroup = 93,
+ GroupFull = 94,
+ NotLeader = 95,
+ PlayerDiedS = 96,
+ GuildCreateS = 97,
+ GuildInviteS = 98,
+ InvitedToGuildSss = 99,
+ AlreadyInGuildS = 100,
+ AlreadyInvitedToGuildS = 101,
+ InvitedToGuild = 102,
+ AlreadyInGuild = 103,
+ GuildAccept = 104,
+ GuildDeclineS = 105,
+ GuildDeclineAutoS = 106,
+ GuildPermissions = 107,
+ GuildJoinS = 108,
+ GuildFounderS = 109,
+ GuildPromoteSss = 110,
+ GuildDemoteSs = 111,
+ GuildDemoteSss = 112,
+ GuildInviteSelf = 113,
+ GuildQuitS = 114,
+ GuildLeaveS = 115,
+ GuildRemoveSs = 116,
+ GuildRemoveSelf = 117,
+ GuildDisbandS = 118,
+ GuildDisbandSelf = 119,
+ GuildLeaderS = 120,
+ GuildLeaderSelf = 121,
+ GuildPlayerNotFoundS = 122,
+ GuildPlayerNotInGuildS = 123,
+ GuildPlayerNotInGuild = 124,
+ GuildCantPromoteS = 125,
+ GuildCantDemoteS = 126,
+ GuildNotInAGuild = 127,
+ GuildInternal = 128,
+ GuildLeaderIsS = 129,
+ GuildLeaderChangedSs = 130,
+ GuildDisbanded = 131,
+ GuildNotAllied = 132,
+ GuildLeaderLeave = 133,
+ GuildRanksLocked = 134,
+ GuildRankInUse = 135,
+ GuildRankTooHighS = 136,
+ GuildRankTooLowS = 137,
+ GuildNameExistsS = 138,
+ GuildWithdrawLimit = 139,
+ GuildNotEnoughMoney = 140,
+ GuildTooMuchMoney = 141,
+ GuildBankConjuredItem = 142,
+ GuildBankEquippedItem = 143,
+ GuildBankBoundItem = 144,
+ GuildBankQuestItem = 145,
+ GuildBankWrappedItem = 146,
+ GuildBankFull = 147,
+ GuildBankWrongTab = 148,
+ NoGuildCharter = 149,
+ OutOfRange = 150,
+ PlayerDead = 151,
+ ClientLockedOut = 152,
+ ClientOnTransport = 153,
+ KilledByS = 154,
+ LootLocked = 155,
+ LootTooFar = 156,
+ LootDidntKill = 157,
+ LootBadFacing = 158,
+ LootNotstanding = 159,
+ LootStunned = 160,
+ LootNoUi = 161,
+ LootWhileInvulnerable = 162,
+ NoLoot = 163,
+ QuestAcceptedS = 164,
+ QuestCompleteS = 165,
+ QuestFailedS = 166,
+ QuestFailedBagFullS = 167,
+ QuestFailedMaxCountS = 168,
+ QuestFailedLowLevel = 169,
+ QuestFailedMissingItems = 170,
+ QuestFailedWrongRace = 171,
+ QuestFailedNotEnoughMoney = 172,
+ QuestFailedExpansion = 173,
+ QuestOnlyOneTimed = 174,
+ QuestNeedPrereqs = 175,
+ QuestNeedPrereqsCustom = 176,
+ QuestAlreadyOn = 177,
+ QuestAlreadyDone = 178,
+ QuestAlreadyDoneDaily = 179,
+ QuestHasInProgress = 180,
+ QuestRewardExpI = 181,
+ QuestRewardMoneyS = 182,
+ QuestMustChoose = 183,
+ QuestLogFull = 184,
+ CombatDamageSsi = 185,
+ InspectS = 186,
+ CantUseItem = 187,
+ CantUseItemInArena = 188,
+ CantUseItemInRatedBattleground = 189,
+ MustEquipItem = 190,
+ PassiveAbility = 191,
+ Weapon2hskillnotfound = 192,
+ NoAttackTarget = 193,
+ InvalidAttackTarget = 194,
+ AttackPvpTargetWhileUnflagged = 195,
+ AttackStunned = 196,
+ AttackPacified = 197,
+ AttackMounted = 198,
+ AttackFleeing = 199,
+ AttackConfused = 200,
+ AttackCharmed = 201,
+ AttackDead = 202,
+ AttackPreventedByMechanicS = 203,
+ AttackChannel = 204,
+ Taxisamenode = 205,
+ Taxinosuchpath = 206,
+ Taxiunspecifiedservererror = 207,
+ Taxinotenoughmoney = 208,
+ Taxitoofaraway = 209,
+ Taxinovendornearby = 210,
+ Taxinotvisited = 211,
+ Taxiplayerbusy = 212,
+ Taxiplayeralreadymounted = 213,
+ Taxiplayershapeshifted = 214,
+ Taxiplayermoving = 215,
+ Taxinopaths = 216,
+ Taxinoteligible = 217,
+ Taxinotstanding = 218,
+ NoReplyTarget = 219,
+ GenericNoTarget = 220,
+ InitiateTradeS = 221,
+ TradeRequestS = 222,
+ TradeBlockedS = 223,
+ TradeTargetDead = 224,
+ TradeTooFar = 225,
+ TradeCancelled = 226,
+ TradeComplete = 227,
+ TradeBagFull = 228,
+ TradeTargetBagFull = 229,
+ TradeMaxCountExceeded = 230,
+ TradeTargetMaxCountExceeded = 231,
+ AlreadyTrading = 232,
+ MountInvalidmountee = 233,
+ MountToofaraway = 234,
+ MountAlreadymounted = 235,
+ MountNotmountable = 236,
+ MountNotyourpet = 237,
+ MountOther = 238,
+ MountLooting = 239,
+ MountRacecantmount = 240,
+ MountShapeshifted = 241,
+ MountNoFavorites = 242,
+ DismountNopet = 243,
+ DismountNotmounted = 244,
+ DismountNotyourpet = 245,
+ SpellFailedTotems = 246,
+ SpellFailedReagents = 247,
+ SpellFailedReagentsGeneric = 248,
+ CantTradeGold = 249,
+ SpellFailedEquippedItem = 250,
+ SpellFailedEquippedItemClassS = 251,
+ SpellFailedShapeshiftFormS = 252,
+ SpellFailedAnotherInProgress = 253,
+ Badattackfacing = 254,
+ Badattackpos = 255,
+ ChestInUse = 256,
+ UseCantOpen = 257,
+ UseLocked = 258,
+ DoorLocked = 259,
+ ButtonLocked = 260,
+ UseLockedWithItemS = 261,
+ UseLockedWithSpellS = 262,
+ UseLockedWithSpellKnownSi = 263,
+ UseTooFar = 264,
+ UseBadAngle = 265,
+ UseObjectMoving = 266,
+ UseSpellFocus = 267,
+ UseDestroyed = 268,
+ SetLootFreeforall = 269,
+ SetLootRoundrobin = 270,
+ SetLootMaster = 271,
+ SetLootGroup = 272,
+ SetLootThresholdS = 273,
+ NewLootMasterS = 274,
+ SpecifyMasterLooter = 275,
+ LootSpecChangedS = 276,
+ TameFailed = 277,
+ ChatWhileDead = 278,
+ ChatPlayerNotFoundS = 279,
+ Newtaxipath = 280,
+ NoPet = 281,
+ Notyourpet = 282,
+ PetNotRenameable = 283,
+ QuestObjectiveCompleteS = 284,
+ QuestUnknownComplete = 285,
+ QuestAddKillSii = 286,
+ QuestAddFoundSii = 287,
+ QuestAddItemSii = 288,
+ QuestAddPlayerKillSii = 289,
+ Cannotcreatedirectory = 290,
+ Cannotcreatefile = 291,
+ PlayerWrongFaction = 292,
+ PlayerIsNeutral = 293,
+ BankslotFailedTooMany = 294,
+ BankslotInsufficientFunds = 295,
+ BankslotNotbanker = 296,
+ FriendDbError = 297,
+ FriendListFull = 298,
+ FriendAddedS = 299,
+ BattletagFriendAddedS = 300,
+ FriendOnlineSs = 301,
+ FriendOfflineS = 302,
+ FriendNotFound = 303,
+ FriendWrongFaction = 304,
+ FriendRemovedS = 305,
+ BattletagFriendRemovedS = 306,
+ FriendError = 307,
+ FriendAlreadyS = 308,
+ FriendSelf = 309,
+ FriendDeleted = 310,
+ IgnoreFull = 311,
+ IgnoreSelf = 312,
+ IgnoreNotFound = 313,
+ IgnoreAlreadyS = 314,
+ IgnoreAddedS = 315,
+ IgnoreRemovedS = 316,
+ IgnoreAmbiguous = 317,
+ IgnoreDeleted = 318,
+ OnlyOneBolt = 319,
+ OnlyOneAmmo = 320,
+ SpellFailedEquippedSpecificItem = 321,
+ WrongBagTypeSubclass = 322,
+ CantWrapStackable = 323,
+ CantWrapEquipped = 324,
+ CantWrapWrapped = 325,
+ CantWrapBound = 326,
+ CantWrapUnique = 327,
+ CantWrapBags = 328,
+ OutOfMana = 329,
+ OutOfRage = 330,
+ OutOfFocus = 331,
+ OutOfEnergy = 332,
+ OutOfChi = 333,
+ OutOfHealth = 334,
+ OutOfRunes = 335,
+ OutOfRunicPower = 336,
+ OutOfSoulShards = 337,
+ OutOfLunarPower = 338,
+ OutOfHolyPower = 339,
+ OutOfMaelstrom = 340,
+ OutOfComboPoints = 341,
+ OutOfInsanity = 342,
+ OutOfArcaneCharges = 343,
+ OutOfFury = 344,
+ OutOfPain = 345,
+ OutOfPowerDisplay = 346,
+ LootGone = 347,
+ MountForceddismount = 348,
+ AutofollowTooFar = 349,
+ UnitNotFound = 350,
+ InvalidFollowTarget = 351,
+ InvalidFollowPvpCombat = 352,
+ InvalidFollowTargetPvpCombat = 353,
+ InvalidInspectTarget = 354,
+ GuildemblemSuccess = 355,
+ GuildemblemInvalidTabardColors = 356,
+ GuildemblemNoguild = 357,
+ GuildemblemNotguildmaster = 358,
+ GuildemblemNotenoughmoney = 359,
+ GuildemblemInvalidvendor = 360,
+ EmblemerrorNotabardgeoset = 361,
+ SpellOutOfRange = 362,
+ CommandNeedsTarget = 363,
+ NoammoS = 364,
+ Toobusytofollow = 365,
+ DuelRequested = 366,
+ DuelCancelled = 367,
+ Deathbindalreadybound = 368,
+ DeathbindSuccessS = 369,
+ Noemotewhilerunning = 370,
+ ZoneExplored = 371,
+ ZoneExploredXp = 372,
+ InvalidItemTarget = 373,
+ InvalidQuestTarget = 374,
+ IgnoringYouS = 375,
+ FishNotHooked = 376,
+ FishEscaped = 377,
+ SpellFailedNotunsheathed = 378,
+ PetitionOfferedS = 379,
+ PetitionSigned = 380,
+ PetitionSignedS = 381,
+ PetitionDeclinedS = 382,
+ PetitionAlreadySigned = 383,
+ PetitionRestrictedAccountTrial = 384,
+ PetitionAlreadySignedOther = 385,
+ PetitionInGuild = 386,
+ PetitionCreator = 387,
+ PetitionNotEnoughSignatures = 388,
+ PetitionNotSameServer = 389,
+ PetitionFull = 390,
+ PetitionAlreadySignedByS = 391,
+ GuildNameInvalid = 392,
+ SpellUnlearnedS = 393,
+ PetSpellRooted = 394,
+ PetSpellAffectingCombat = 395,
+ PetSpellOutOfRange = 396,
+ PetSpellNotBehind = 397,
+ PetSpellTargetsDead = 398,
+ PetSpellDead = 399,
+ PetSpellNopath = 400,
+ ItemCantBeDestroyed = 401,
+ TicketAlreadyExists = 402,
+ TicketCreateError = 403,
+ TicketUpdateError = 404,
+ TicketDbError = 405,
+ TicketNoText = 406,
+ TicketTextTooLong = 407,
+ ObjectIsBusy = 408,
+ ExhaustionWellrested = 409,
+ ExhaustionRested = 410,
+ ExhaustionNormal = 411,
+ ExhaustionTired = 412,
+ ExhaustionExhausted = 413,
+ NoItemsWhileShapeshifted = 414,
+ CantInteractShapeshifted = 415,
+ RealmNotFound = 416,
+ MailQuestItem = 417,
+ MailBoundItem = 418,
+ MailConjuredItem = 419,
+ MailBag = 420,
+ MailToSelf = 421,
+ MailTargetNotFound = 422,
+ MailDatabaseError = 423,
+ MailDeleteItemError = 424,
+ MailWrappedCod = 425,
+ MailCantSendRealm = 426,
+ MailTempReturnOutage = 427,
+ MailSent = 428,
+ NotHappyEnough = 429,
+ UseCantImmune = 430,
+ CantBeDisenchanted = 431,
+ CantUseDisarmed = 432,
+ AuctionQuestItem = 433,
+ AuctionBoundItem = 434,
+ AuctionConjuredItem = 435,
+ AuctionLimitedDurationItem = 436,
+ AuctionWrappedItem = 437,
+ AuctionLootItem = 438,
+ AuctionBag = 439,
+ AuctionEquippedBag = 440,
+ AuctionDatabaseError = 441,
+ AuctionBidOwn = 442,
+ AuctionBidIncrement = 443,
+ AuctionHigherBid = 444,
+ AuctionMinBid = 445,
+ AuctionRepairItem = 446,
+ AuctionUsedCharges = 447,
+ AuctionAlreadyBid = 448,
+ AuctionHouseUnavailable = 449,
+ AuctionHouseBusy = 450,
+ AuctionStarted = 451,
+ AuctionRemoved = 452,
+ AuctionOutbidS = 453,
+ AuctionWonS = 454,
+ AuctionSoldS = 455,
+ AuctionExpiredS = 456,
+ AuctionRemovedS = 457,
+ AuctionBidPlaced = 458,
+ LogoutFailed = 459,
+ QuestPushSuccessS = 460,
+ QuestPushInvalidS = 461,
+ QuestPushAcceptedS = 462,
+ QuestPushDeclinedS = 463,
+ QuestPushBusyS = 464,
+ QuestPushDeadS = 465,
+ QuestPushLogFullS = 466,
+ QuestPushOnquestS = 467,
+ QuestPushAlreadyDoneS = 468,
+ QuestPushNotDailyS = 469,
+ QuestPushTimerExpiredS = 470,
+ QuestPushNotInPartyS = 471,
+ QuestPushDifferentServerDailyS = 472,
+ QuestPushNotAllowedS = 473,
+ RaidGroupLowlevel = 474,
+ RaidGroupOnly = 475,
+ RaidGroupFull = 476,
+ RaidGroupRequirementsUnmatch = 477,
+ CorpseIsNotInInstance = 478,
+ PvpKillHonorable = 479,
+ PvpKillDishonorable = 480,
+ SpellFailedAlreadyAtFullHealth = 481,
+ SpellFailedAlreadyAtFullMana = 482,
+ SpellFailedAlreadyAtFullPowerS = 483,
+ AutolootMoneyS = 484,
+ GenericStunned = 485,
+ GenericThrottle = 486,
+ TargetStunned = 487,
+ MustRepairDurability = 488,
+ RaidYouJoined = 489,
+ RaidYouLeft = 490,
+ InstanceGroupJoinedWithParty = 491,
+ InstanceGroupJoinedWithRaid = 492,
+ RaidMemberAddedS = 493,
+ RaidMemberRemovedS = 494,
+ InstanceGroupAddedS = 495,
+ InstanceGroupRemovedS = 496,
+ ClickOnItemToFeed = 497,
+ TooManyChatChannels = 498,
+ LootRollPending = 499,
+ LootPlayerNotFound = 500,
+ NotInRaid = 501,
+ LoggingOut = 502,
+ TargetLoggingOut = 503,
+ NotWhileMounted = 504,
+ NotWhileShapeshifted = 505,
+ NotInCombat = 506,
+ NotWhileDisarmed = 507,
+ PetBroken = 508,
+ TalentWipeError = 509,
+ SpecWipeError = 510,
+ GlyphWipeError = 511,
+ PetSpecWipeError = 512,
+ FeignDeathResisted = 513,
+ MeetingStoneInQueueS = 514,
+ MeetingStoneLeftQueueS = 515,
+ MeetingStoneOtherMemberLeft = 516,
+ MeetingStonePartyKickedFromQueue = 517,
+ MeetingStoneMemberStillInQueue = 518,
+ MeetingStoneSuccess = 519,
+ MeetingStoneInProgress = 520,
+ MeetingStoneMemberAddedS = 521,
+ MeetingStoneGroupFull = 522,
+ MeetingStoneNotLeader = 523,
+ MeetingStoneInvalidLevel = 524,
+ MeetingStoneTargetNotInParty = 525,
+ MeetingStoneTargetInvalidLevel = 526,
+ MeetingStoneMustBeLeader = 527,
+ MeetingStoneNoRaidGroup = 528,
+ MeetingStoneNeedParty = 529,
+ MeetingStoneNotFound = 530,
+ MeetingStoneTargetInVehicle = 531,
+ GuildemblemSame = 532,
+ EquipTradeItem = 533,
+ PvpToggleOn = 534,
+ PvpToggleOff = 535,
+ GroupJoinBattlegroundDeserters = 536,
+ GroupJoinBattlegroundDead = 537,
+ GroupJoinBattlegroundS = 538,
+ GroupJoinBattlegroundFail = 539,
+ GroupJoinBattlegroundTooMany = 540,
+ SoloJoinBattlegroundS = 541,
+ JoinSingleScenarioS = 542,
+ BattlegroundTooManyQueues = 543,
+ BattlegroundCannotQueueForRated = 544,
+ BattledgroundQueuedForRated = 545,
+ BattlegroundTeamLeftQueue = 546,
+ BattlegroundNotInBattleground = 547,
+ AlreadyInArenaTeamS = 548,
+ InvalidPromotionCode = 549,
+ BgPlayerJoinedSs = 550,
+ BgPlayerLeftS = 551,
+ RestrictedAccount = 552,
+ RestrictedAccountTrial = 553,
+ PlayTimeExceeded = 554,
+ ApproachingPartialPlayTime = 555,
+ ApproachingPartialPlayTime2 = 556,
+ ApproachingNoPlayTime = 557,
+ ApproachingNoPlayTime2 = 558,
+ UnhealthyTime = 559,
+ ChatRestrictedTrial = 560,
+ ChatThrottled = 561,
+ MailReachedCap = 562,
+ InvalidRaidTarget = 563,
+ RaidLeaderReadyCheckStartS = 564,
+ ReadyCheckInProgress = 565,
+ ReadyCheckThrottled = 566,
+ DungeonDifficultyFailed = 567,
+ DungeonDifficultyChangedS = 568,
+ TradeWrongRealm = 569,
+ TradeNotOnTaplist = 570,
+ ChatPlayerAmbiguousS = 571,
+ LootCantLootThatNow = 572,
+ LootMasterInvFull = 573,
+ LootMasterUniqueItem = 574,
+ LootMasterOther = 575,
+ FilteringYouS = 576,
+ UsePreventedByMechanicS = 577,
+ ItemUniqueEquippable = 578,
+ LfgLeaderIsLfmS = 579,
+ LfgPending = 580,
+ CantSpeakLangage = 581,
+ VendorMissingTurnins = 582,
+ BattlegroundNotInTeam = 583,
+ NotInBattleground = 584,
+ NotEnoughHonorPoints = 585,
+ NotEnoughArenaPoints = 586,
+ SocketingRequiresMetaGem = 587,
+ SocketingMetaGemOnlyInMetaslot = 588,
+ SocketingRequiresHydraulicGem = 589,
+ SocketingHydraulicGemOnlyInHydraulicslot = 590,
+ SocketingRequiresCogwheelGem = 591,
+ SocketingCogwheelGemOnlyInCogwheelslot = 592,
+ SocketingItemTooLowLevel = 593,
+ ItemMaxCountSocketed = 594,
+ SystemDisabled = 595,
+ QuestFailedTooManyDailyQuestsI = 596,
+ ItemMaxCountEquippedSocketed = 597,
+ ItemUniqueEquippableSocketed = 598,
+ UserSquelched = 599,
+ TooMuchGold = 600,
+ NotBarberSitting = 601,
+ QuestFailedCais = 602,
+ InviteRestrictedTrial = 603,
+ VoiceIgnoreFull = 604,
+ VoiceIgnoreSelf = 605,
+ VoiceIgnoreNotFound = 606,
+ VoiceIgnoreAlreadyS = 607,
+ VoiceIgnoreAddedS = 608,
+ VoiceIgnoreRemovedS = 609,
+ VoiceIgnoreAmbiguous = 610,
+ VoiceIgnoreDeleted = 611,
+ UnknownMacroOptionS = 612,
+ NotDuringArenaMatch = 613,
+ PlayerSilenced = 614,
+ PlayerUnsilenced = 615,
+ ComsatDisconnect = 616,
+ ComsatReconnectAttempt = 617,
+ ComsatConnectFail = 618,
+ MailInvalidAttachmentSlot = 619,
+ MailTooManyAttachments = 620,
+ MailInvalidAttachment = 621,
+ MailAttachmentExpired = 622,
+ VoiceChatParentalDisableMic = 623,
+ ProfaneChatName = 624,
+ PlayerSilencedEcho = 625,
+ PlayerUnsilencedEcho = 626,
+ LootCantLootThat = 627,
+ ArenaExpiredCais = 628,
+ GroupActionThrottled = 629,
+ AlreadyPickpocketed = 630,
+ NameInvalid = 631,
+ NameNoName = 632,
+ NameTooShort = 633,
+ NameTooLong = 634,
+ NameMixedLanguages = 635,
+ NameProfane = 636,
+ NameReserved = 637,
+ NameThreeConsecutive = 638,
+ NameInvalidSpace = 639,
+ NameConsecutiveSpaces = 640,
+ NameRussianConsecutiveSilentCharacters = 641,
+ NameRussianSilentCharacterAtBeginningOrEnd = 642,
+ NameDeclensionDoesntMatchBaseName = 643,
+ ReferAFriendNotReferredBy = 644,
+ ReferAFriendTargetTooHigh = 645,
+ ReferAFriendInsufficientGrantableLevels = 646,
+ ReferAFriendTooFar = 647,
+ ReferAFriendDifferentFaction = 648,
+ ReferAFriendNotNow = 649,
+ ReferAFriendGrantLevelMaxI = 650,
+ ReferAFriendSummonLevelMaxI = 651,
+ ReferAFriendSummonCooldown = 652,
+ ReferAFriendSummonOfflineS = 653,
+ ReferAFriendInsufExpanLvl = 654,
+ ReferAFriendNotInLfg = 655,
+ ReferAFriendNoXrealm = 656,
+ ReferAFriendMapIncomingTransferNotAllowed = 657,
+ NotSameAccount = 658,
+ BadOnUseEnchant = 659,
+ TradeSelf = 660,
+ TooManySockets = 661,
+ ItemMaxLimitCategoryCountExceededIs = 662,
+ TradeTargetMaxLimitCategoryCountExceededIs = 663,
+ ItemMaxLimitCategorySocketedExceededIs = 664,
+ ItemMaxLimitCategoryEquippedExceededIs = 665,
+ ShapeshiftFormCannotEquip = 666,
+ ItemInventoryFullSatchel = 667,
+ ScalingStatItemLevelExceeded = 668,
+ ScalingStatItemLevelTooLow = 669,
+ PurchaseLevelTooLow = 670,
+ GroupSwapFailed = 671,
+ InviteInCombat = 672,
+ InvalidGlyphSlot = 673,
+ GenericNoValidTargets = 674,
+ CalendarEventAlertS = 675,
+ PetLearnSpellS = 676,
+ PetLearnAbilityS = 677,
+ PetSpellUnlearnedS = 678,
+ InviteUnknownRealm = 679,
+ InviteNoPartyServer = 680,
+ InvitePartyBusy = 681,
+ PartyTargetAmbiguous = 682,
+ PartyLfgInviteRaidLocked = 683,
+ PartyLfgBootLimit = 684,
+ PartyLfgBootCooldownS = 685,
+ PartyLfgBootNotEligibleS = 686,
+ PartyLfgBootInpatientTimerS = 687,
+ PartyLfgBootInProgress = 688,
+ PartyLfgBootTooFewPlayers = 689,
+ PartyLfgBootVoteSucceeded = 690,
+ PartyLfgBootVoteFailed = 691,
+ PartyLfgBootInCombat = 692,
+ PartyLfgBootDungeonComplete = 693,
+ PartyLfgBootLootRolls = 694,
+ PartyLfgBootVoteRegistered = 695,
+ PartyPrivateGroupOnly = 696,
+ PartyLfgTeleportInCombat = 697,
+ RaidDisallowedByLevel = 698,
+ RaidDisallowedByCrossRealm = 699,
+ PartyRoleNotAvailable = 700,
+ JoinLfgObjectFailed = 701,
+ LfgRemovedLevelup = 702,
+ LfgRemovedXpToggle = 703,
+ LfgRemovedFactionChange = 704,
+ BattlegroundInfoThrottled = 705,
+ BattlegroundAlreadyIn = 706,
+ ArenaTeamChangeFailedQueued = 707,
+ ArenaTeamPermissions = 708,
+ NotWhileFalling = 709,
+ NotWhileMoving = 710,
+ NotWhileFatigued = 711,
+ MaxSockets = 712,
+ MultiCastActionTotemS = 713,
+ BattlegroundJoinLevelup = 714,
+ RemoveFromPvpQueueXpGain = 715,
+ BattlegroundJoinXpGain = 716,
+ BattlegroundJoinMercenary = 717,
+ BattlegroundJoinTooManyHealers = 718,
+ BattlegroundJoinRatedTooManyHealers = 719,
+ BattlegroundJoinTooManyTanks = 720,
+ BattlegroundJoinTooManyDamage = 721,
+ RaidDifficultyFailed = 722,
+ RaidDifficultyChangedS = 723,
+ LegacyRaidDifficultyChangedS = 724,
+ RaidLockoutChangedS = 725,
+ RaidConvertedToParty = 726,
+ PartyConvertedToRaid = 727,
+ PlayerDifficultyChangedS = 728,
+ GmresponseDbError = 729,
+ BattlegroundJoinRangeIndex = 730,
+ ArenaJoinRangeIndex = 731,
+ RemoveFromPvpQueueFactionChange = 732,
+ BattlegroundJoinFailed = 733,
+ BattlegroundJoinNoValidSpecForRole = 734,
+ BattlegroundJoinRespec = 735,
+ BattlegroundInvitationDeclined = 736,
+ BattlegroundJoinTimedOut = 737,
+ BattlegroundDupeQueue = 738,
+ BattlegroundJoinMustCompleteQuest = 739,
+ InBattlegroundRespec = 740,
+ MailLimitedDurationItem = 741,
+ YellRestrictedTrial = 742,
+ ChatRaidRestrictedTrial = 743,
+ LfgRoleCheckFailed = 744,
+ LfgRoleCheckFailedTimeout = 745,
+ LfgRoleCheckFailedNotViable = 746,
+ LfgReadyCheckFailed = 747,
+ LfgReadyCheckFailedTimeout = 748,
+ LfgGroupFull = 749,
+ LfgNoLfgObject = 750,
+ LfgNoSlotsPlayer = 751,
+ LfgNoSlotsParty = 752,
+ LfgNoSpec = 753,
+ LfgMismatchedSlots = 754,
+ LfgMismatchedSlotsLocalXrealm = 755,
+ LfgPartyPlayersFromDifferentRealms = 756,
+ LfgMembersNotPresent = 757,
+ LfgGetInfoTimeout = 758,
+ LfgInvalidSlot = 759,
+ LfgDeserterPlayer = 760,
+ LfgDeserterParty = 761,
+ LfgDead = 762,
+ LfgRandomCooldownPlayer = 763,
+ LfgRandomCooldownParty = 764,
+ LfgTooManyMembers = 765,
+ LfgTooFewMembers = 766,
+ LfgProposalFailed = 767,
+ LfgProposalDeclinedSelf = 768,
+ LfgProposalDeclinedParty = 769,
+ LfgNoSlotsSelected = 770,
+ LfgNoRolesSelected = 771,
+ LfgRoleCheckInitiated = 772,
+ LfgReadyCheckInitiated = 773,
+ LfgPlayerDeclinedRoleCheck = 774,
+ LfgPlayerDeclinedReadyCheck = 775,
+ LfgJoinedQueue = 776,
+ LfgJoinedFlexQueue = 777,
+ LfgJoinedRfQueue = 778,
+ LfgJoinedScenarioQueue = 779,
+ LfgJoinedWorldPvpQueue = 780,
+ LfgJoinedBattlefieldQueue = 781,
+ LfgJoinedList = 782,
+ LfgLeftQueue = 783,
+ LfgLeftList = 784,
+ LfgRoleCheckAborted = 785,
+ LfgReadyCheckAborted = 786,
+ LfgCantUseBattleground = 787,
+ LfgCantUseDungeons = 788,
+ LfgReasonTooManyLfg = 789,
+ InvalidTeleportLocation = 790,
+ TooFarToInteract = 791,
+ BattlegroundPlayersFromDifferentRealms = 792,
+ DifficultyChangeCooldownS = 793,
+ DifficultyChangeCombatCooldownS = 794,
+ DifficultyChangeWorldstate = 795,
+ DifficultyChangeEncounter = 796,
+ DifficultyChangeCombat = 797,
+ DifficultyChangePlayerBusy = 798,
+ DifficultyChangeAlreadyStarted = 799,
+ DifficultyChangeOtherHeroicS = 800,
+ DifficultyChangeHeroicInstanceAlreadyRunning = 801,
+ ArenaTeamPartySize = 802,
+ QuestForceRemovedS = 803,
+ AttackNoActions = 804,
+ InRandomBg = 805,
+ InNonRandomBg = 806,
+ AuctionEnoughItems = 807,
+ BnFriendSelf = 808,
+ BnFriendAlready = 809,
+ BnFriendBlocked = 810,
+ BnFriendListFull = 811,
+ BnFriendRequestSent = 812,
+ BnBroadcastThrottle = 813,
+ BgDeveloperOnly = 814,
+ CurrencySpellSlotMismatch = 815,
+ CurrencyNotTradable = 816,
+ RequiresExpansionS = 817,
+ QuestFailedSpell = 818,
+ TalentFailedNotEnoughTalentsInPrimaryTree = 819,
+ TalentFailedNoPrimaryTreeSelected = 820,
+ TalentFailedCantRemoveTalent = 821,
+ TalentFailedUnknown = 822,
+ WargameRequestFailure = 823,
+ RankRequiresAuthenticator = 824,
+ GuildBankVoucherFailed = 825,
+ WargameRequestSent = 826,
+ RequiresAchievementI = 827,
+ RefundResultExceedMaxCurrency = 828,
+ CantBuyQuantity = 829,
+ ItemIsBattlePayLocked = 830,
+ PartyAlreadyInBattlegroundQueue = 831,
+ PartyConfirmingBattlegroundQueue = 832,
+ BattlefieldTeamPartySize = 833,
+ InsuffTrackedCurrencyIs = 834,
+ NotOnTournamentRealm = 835,
+ GuildTrialAccountTrial = 836,
+ GuildTrialAccountVeteran = 837,
+ GuildUndeletableDueToLevel = 838,
+ CantDoThatInAGroup = 839,
+ GuildLeaderReplaced = 840,
+ TransmogrifyCantEquip = 841,
+ TransmogrifyInvalidItemType = 842,
+ TransmogrifyNotSoulbound = 843,
+ TransmogrifyInvalidSource = 844,
+ TransmogrifyInvalidDestination = 845,
+ TransmogrifyMismatch = 846,
+ TransmogrifyLegendary = 847,
+ TransmogrifySameItem = 848,
+ TransmogrifySameAppearance = 849,
+ TransmogrifyNotEquipped = 850,
+ VoidDepositFull = 851,
+ VoidWithdrawFull = 852,
+ VoidStorageWrapped = 853,
+ VoidStorageStackable = 854,
+ VoidStorageUnbound = 855,
+ VoidStorageRepair = 856,
+ VoidStorageCharges = 857,
+ VoidStorageQuest = 858,
+ VoidStorageConjured = 859,
+ VoidStorageMail = 860,
+ VoidStorageBag = 861,
+ VoidTransferStorageFull = 862,
+ VoidTransferInvFull = 863,
+ VoidTransferInternalError = 864,
+ VoidTransferItemInvalid = 865,
+ DifficultyDisabledInLfg = 866,
+ VoidStorageUnique = 867,
+ VoidStorageLoot = 868,
+ VoidStorageHoliday = 869,
+ VoidStorageDuration = 870,
+ VoidStorageLoadFailed = 871,
+ VoidStorageInvalidItem = 872,
+ ParentalControlsChatMuted = 873,
+ SorStartExperienceIncomplete = 874,
+ SorInvalidEmail = 875,
+ SorInvalidComment = 876,
+ ChallengeModeResetCooldownS = 877,
+ ChallengeModeResetKeystone = 878,
+ PetJournalAlreadyInLoadout = 879,
+ ReportSubmittedSuccessfully = 880,
+ ReportSubmissionFailed = 881,
+ SuggestionSubmittedSuccessfully = 882,
+ BugSubmittedSuccessfully = 883,
+ ChallengeModeEnabled = 884,
+ ChallengeModeDisabled = 885,
+ PetbattleCreateFailed = 886,
+ PetbattleNotHere = 887,
+ PetbattleNotHereOnTransport = 888,
+ PetbattleNotHereUnevenGround = 889,
+ PetbattleNotHereObstructed = 890,
+ PetbattleNotWhileInCombat = 891,
+ PetbattleNotWhileDead = 892,
+ PetbattleNotWhileFlying = 893,
+ PetbattleTargetInvalid = 894,
+ PetbattleTargetOutOfRange = 895,
+ PetbattleTargetNotCapturable = 896,
+ PetbattleNotATrainer = 897,
+ PetbattleDeclined = 898,
+ PetbattleInBattle = 899,
+ PetbattleInvalidLoadout = 900,
+ PetbattleAllPetsDead = 901,
+ PetbattleNoPetsInSlots = 902,
+ PetbattleNoAccountLock = 903,
+ PetbattleWildPetTapped = 904,
+ PetbattleRestrictedAccount = 905,
+ PetbattleOpponentNotAvailable = 906,
+ PetbattleNotWhileInMatchedBattle = 907,
+ CantHaveMorePetsOfThatType = 908,
+ CantHaveMorePets = 909,
+ PvpMapNotFound = 910,
+ PvpMapNotSet = 911,
+ PetbattleQueueQueued = 912,
+ PetbattleQueueAlreadyQueued = 913,
+ PetbattleQueueJoinFailed = 914,
+ PetbattleQueueJournalLock = 915,
+ PetbattleQueueRemoved = 916,
+ PetbattleQueueProposalDeclined = 917,
+ PetbattleQueueProposalTimeout = 918,
+ PetbattleQueueOpponentDeclined = 919,
+ PetbattleQueueRequeuedInternal = 920,
+ PetbattleQueueRequeuedRemoved = 921,
+ PetbattleQueueSlotLocked = 922,
+ PetbattleQueueSlotEmpty = 923,
+ PetbattleQueueSlotNoTracker = 924,
+ PetbattleQueueSlotNoSpecies = 925,
+ PetbattleQueueSlotCantBattle = 926,
+ PetbattleQueueSlotRevoked = 927,
+ PetbattleQueueSlotDead = 928,
+ PetbattleQueueSlotNoPet = 929,
+ PetbattleQueueNotWhileNeutral = 930,
+ PetbattleGameTimeLimitWarning = 931,
+ PetbattleGameRoundsLimitWarning = 932,
+ HasRestriction = 933,
+ ItemUpgradeItemTooLowLevel = 934,
+ ItemUpgradeNoPath = 935,
+ ItemUpgradeNoMoreUpgrades = 936,
+ BonusRollEmpty = 937,
+ ChallengeModeFull = 938,
+ ChallengeModeInProgress = 939,
+ ChallengeModeIncorrectKeystone = 940,
+ BattletagFriendNotFound = 941,
+ BattletagFriendNotValid = 942,
+ BattletagFriendNotAllowed = 943,
+ BattletagFriendThrottled = 944,
+ BattletagFriendSuccess = 945,
+ PetTooHighLevelToUncage = 946,
+ PetbattleInternal = 947,
+ CantCagePetYet = 948,
+ NoLootInChallengeMode = 949,
+ QuestPetBattleVictoriesPvpIi = 950,
+ RoleCheckAlreadyInProgress = 951,
+ RecruitAFriendAccountLimit = 952,
+ RecruitAFriendFailed = 953,
+ SetLootPersonal = 954,
+ SetLootMethodFailedCombat = 955,
+ ReagentBankFull = 956,
+ ReagentBankLocked = 957,
+ GarrisonBuildingExists = 958,
+ GarrisonInvalidPlot = 959,
+ GarrisonInvalidBuildingid = 960,
+ GarrisonInvalidPlotBuilding = 961,
+ GarrisonRequiresBlueprint = 962,
+ GarrisonNotEnoughCurrency = 963,
+ GarrisonNotEnoughGold = 964,
+ GarrisonCompleteMissionWrongFollowerType = 965,
+ AlreadyUsingLfgList = 966,
+ RestrictedAccountLfgListTrial = 967,
+ ToyUseLimitReached = 968,
+ ToyAlreadyKnown = 969,
+ TransmogSetAlreadyKnown = 970,
+ NotEnoughCurrency = 971,
+ SpecIsDisabled = 972,
+ FeatureRestrictedTrial = 973,
+ CantBeObliterated = 974,
+ CantBeScrapped = 975,
+ ArtifactRelicDoesNotMatchArtifact = 976,
+ MustEquipArtifact = 977,
+ CantDoThatRightNow = 978,
+ AffectingCombat = 979,
+ EquipmentManagerCombatSwapS = 980,
+ EquipmentManagerBagsFull = 981,
+ EquipmentManagerMissingItemS = 982,
+ MovieRecordingWarningPerf = 983,
+ MovieRecordingWarningDiskFull = 984,
+ MovieRecordingWarningNoMovie = 985,
+ MovieRecordingWarningRequirements = 986,
+ MovieRecordingWarningCompressing = 987,
+ NoChallengeModeReward = 988,
+ ClaimedChallengeModeReward = 989,
+ ChallengeModePeriodResetSs = 990,
+ CantDoThatChallengeModeActive = 991,
+ TalentFailedRestArea = 992,
+ CannotAbandonLastPet = 993,
+ TestCvarSetSss = 994,
+ QuestTurnInFailReason = 995,
+ ClaimedChallengeModeRewardOld = 996,
+ TalentGrantedByAura = 997,
+ ChallengeModeAlreadyComplete = 998,
+ GlyphTargetNotAvailable = 999,
+ PvpWarmodeToggleOn = 1000,
+ PvpWarmodeToggleOff = 1001,
+ SpellFailedLevelRequirement = 1002,
+ BattlegroundJoinRequiresLevel = 1003,
+ BattlegroundJoinDisqualified = 1004,
+ VoiceChatGenericUnableToConnect = 1005,
+ VoiceChatServiceLost = 1006,
+ VoiceChatChannelNameTooShort = 1007,
+ VoiceChatChannelNameTooLong = 1008,
+ VoiceChatChannelAlreadyExists = 1009,
+ VoiceChatTargetNotFound = 1010,
+ VoiceChatTooManyRequests = 1011,
+ VoiceChatPlayerSilenced = 1012,
+ VoiceChatParentalDisableAll = 1013,
+ VoiceChatDisabled = 1014,
+ NoPvpReward = 1015,
+ ClaimedPvpReward = 1016,
+ AzeriteEssenceSelectionFailedEssenceNotUnlocked = 1017,
+ AzeriteEssenceSelectionFailedCantRemoveEssence = 1018,
+ AzeriteEssenceSelectionFailedConditionFailed = 1019,
+ AzeriteEssenceSelectionFailedRestArea = 1020,
+ AzeriteEssenceSelectionFailedSlotLocked = 1021,
+ AzeriteEssenceSelectionFailedNotAtForge = 1022,
+ AzeriteEssenceSelectionFailedHeartLevelTooLow = 1023,
+ AzeriteEssenceSelectionFailedNotEquipped = 1024,
+ SocketingRequiresPunchcardredGem = 1025,
+ SocketingPunchcardredGemOnlyInPunchcardredslot = 1026,
+ SocketingRequiresPunchcardyellowGem = 1027,
+ SocketingPunchcardyellowGemOnlyInPunchcardyellowslot = 1028,
+ SocketingRequiresPunchcardblueGem = 1029,
+ SocketingPunchcardblueGemOnlyInPunchcardblueslot = 1030
}
public enum SceneFlags
@@ -2413,4 +2435,15 @@ namespace Framework.Constants
Max
}
+
+ public enum ConversationActorType
+ {
+ WorldObjectActor = 0,
+ CreatureActor = 1
+ }
+
+ public enum CorpseDynFlags
+ {
+ Lootable = 0x0001
+ }
}
diff --git a/Source/Framework/Constants/Spells/SpellConst.cs b/Source/Framework/Constants/Spells/SpellConst.cs
index 453add8e3..fd8e51f93 100644
--- a/Source/Framework/Constants/Spells/SpellConst.cs
+++ b/Source/Framework/Constants/Spells/SpellConst.cs
@@ -709,7 +709,8 @@ namespace Framework.Constants
WrongFaction = 292,
NotEnoughCurrency = 293,
BattleForAzerothRidingRequirement = 294,
- Unknown = 295,
+ MountEquipmentError = 295,
+ Unknown = 296,
// Ok Cast Value - Here In Case A Future Version Removes Success And We Need To Use A Custom Value (Not Sent To Client Either Way)
SpellCastOk = Success
@@ -1711,7 +1712,7 @@ namespace Framework.Constants
Unk4 = 0x10, // 4
AbsorbEnvironmentalDamage = 0x20, // 5
Unk6 = 0x40, // 6
- RankIgnoresCasterLevel = 0x80, // 7 Spell_C_GetSpellRank returns SpellLevels->MaxLevel * 5 instead of std::min(SpellLevels->MaxLevel, caster->Level) * 5
+ RankIgnoresCasterLevel = 0x80, // 7 Spell_C_GetSpellRank returns SpellLevels.MaxLevel * 5 instead of std::min(SpellLevels.MaxLevel, caster.Level) * 5
Unk8 = 0x100, // 8
Unk9 = 0x200, // 9
Unk10 = 0x400, // 10
@@ -2090,7 +2091,17 @@ namespace Framework.Constants
RespecAzeriteEmpoweredItem = 259,
SummonStabledPet = 260,
ScrapItem = 261,
- TotalSpellEffects,
+ Unk262 = 262,
+ RepairItem = 263,
+ RemoveGem = 264,
+ LearnAzeriteEssencePower = 265,
+ Unk266 = 266,
+ Unk267 = 267,
+ ApplyMountEquipment = 268,
+ UpgradeItem = 269,
+ Unk270 = 270,
+ ApplyAreaAuraPartyNonrandom = 271,
+ TotalSpellEffects
}
public enum SpellEffectHandle
diff --git a/Source/Framework/Constants/UnitConst.cs b/Source/Framework/Constants/UnitConst.cs
index 56ef5012a..976e01baa 100644
--- a/Source/Framework/Constants/UnitConst.cs
+++ b/Source/Framework/Constants/UnitConst.cs
@@ -242,7 +242,7 @@ namespace Framework.Constants
///
/// UnitStandStateType
///
- public enum UnitStandStateType
+ public enum UnitStandStateType : byte
{
Stand = 0,
Sit = 1,
@@ -256,23 +256,7 @@ namespace Framework.Constants
Submerged = 9
}
- public struct UnitBytes0Offsets
- {
- public const byte Race = 0;
- public const byte Class = 1;
- public const byte PlayerClass = 2;
- public const byte Gender = 3;
- }
-
- public struct UnitBytes1Offsets
- {
- public const byte StandState = 0;
- public const byte PetTalents = 1; // unused
- public const byte VisFlag = 2;
- public const byte AnimTier = 3;
- }
-
- public enum UnitStandFlags
+ public enum UnitVisFlags
{
Unk1 = 0x01,
Creep = 0x02,
@@ -284,22 +268,16 @@ namespace Framework.Constants
public enum UnitBytes1Flags
{
+ None = 0x00,
AlwaysStand = 0x01,
Hover = 0x02,
Unk3 = 0x04,
All = 0xFF
}
- public struct UnitBytes2Offsets
- {
- public const byte SheathState = 0;
- public const byte PvpFlag = 1;
- public const byte PetFlags = 2;
- public const byte ShapeshiftForm = 3;
- }
-
- public enum UnitBytes2Flags
+ public enum UnitPVPStateFlags
{
+ None = 0x00,
PvP = 0x01,
Unk1 = 0x02,
FFAPvp = 0x04,
@@ -310,8 +288,9 @@ namespace Framework.Constants
Unk7 = 0x80,
}
- public enum UnitPetFlags
- {
+ public enum UnitPetFlags : byte
+ {
+ None = 0x00,
CanBeRenamed = 0x01,
CanBeAbandoned = 0x02
}
diff --git a/Source/Framework/Constants/Update/UpdateFieldFlags.cs b/Source/Framework/Constants/Update/UpdateFieldFlags.cs
deleted file mode 100644
index c94564175..000000000
--- a/Source/Framework/Constants/Update/UpdateFieldFlags.cs
+++ /dev/null
@@ -1,6542 +0,0 @@
-/*
- * Copyright (C) 2012-2019 CypherCore
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-
-namespace Framework.Constants
-{
- public class UpdateFieldFlags
- {
- public const uint None = 0x0;
- public const uint Public = 0x1;
- public const uint Private = 0x2;
- public const uint Owner = 0x4;
- public const uint ItemOwner = 0x8;
- public const uint SpecialInfo = 0x10;
- public const uint PartyMember = 0x20;
- public const uint UnitAll = 0x40;
- public const uint Dynamic = 0x80;
- public const uint Unknownx100 = 0x100;
- public const uint Urgent = 0x200;
- public const uint UrgentSelfOnly = 0x400;
-
- public static uint[] ContainerUpdateFieldFlags = new uint[(int)ContainerFields.End]
- {
- Public, // OBJECT_FIELD_GUID
- Public, // OBJECT_FIELD_GUID+1
- Public, // OBJECT_FIELD_GUID+2
- Public, // OBJECT_FIELD_GUID+3
- Dynamic, // OBJECT_FIELD_ENTRY
- Dynamic | Urgent, // OBJECT_DYNAMIC_FLAGS
- Public, // OBJECT_FIELD_SCALE_X
- Public, // ITEM_FIELD_OWNER
- Public, // ITEM_FIELD_OWNER+1
- Public, // ITEM_FIELD_OWNER+2
- Public, // ITEM_FIELD_OWNER+3
- Public, // ITEM_FIELD_CONTAINED
- Public, // ITEM_FIELD_CONTAINED+1
- Public, // ITEM_FIELD_CONTAINED+2
- Public, // ITEM_FIELD_CONTAINED+3
- Public, // ITEM_FIELD_CREATOR
- Public, // ITEM_FIELD_CREATOR+1
- Public, // ITEM_FIELD_CREATOR+2
- Public, // ITEM_FIELD_CREATOR+3
- Public, // ITEM_FIELD_GIFTCREATOR
- Public, // ITEM_FIELD_GIFTCREATOR+1
- Public, // ITEM_FIELD_GIFTCREATOR+2
- Public, // ITEM_FIELD_GIFTCREATOR+3
- Owner, // ITEM_FIELD_STACK_COUNT
- Owner, // ITEM_FIELD_DURATION
- Owner, // ITEM_FIELD_SPELL_CHARGES
- Owner, // ITEM_FIELD_SPELL_CHARGES+1
- Owner, // ITEM_FIELD_SPELL_CHARGES+2
- Owner, // ITEM_FIELD_SPELL_CHARGES+3
- Owner, // ITEM_FIELD_SPELL_CHARGES+4
- Public, // ITEM_FIELD_FLAGS
- Public, // ITEM_FIELD_ENCHANTMENT
- Public, // ITEM_FIELD_ENCHANTMENT+1
- Public, // ITEM_FIELD_ENCHANTMENT+2
- Public, // ITEM_FIELD_ENCHANTMENT+3
- Public, // ITEM_FIELD_ENCHANTMENT+4
- Public, // ITEM_FIELD_ENCHANTMENT+5
- Public, // ITEM_FIELD_ENCHANTMENT+6
- Public, // ITEM_FIELD_ENCHANTMENT+7
- Public, // ITEM_FIELD_ENCHANTMENT+8
- Public, // ITEM_FIELD_ENCHANTMENT+9
- Public, // ITEM_FIELD_ENCHANTMENT+10
- Public, // ITEM_FIELD_ENCHANTMENT+11
- Public, // ITEM_FIELD_ENCHANTMENT+12
- Public, // ITEM_FIELD_ENCHANTMENT+13
- Public, // ITEM_FIELD_ENCHANTMENT+14
- Public, // ITEM_FIELD_ENCHANTMENT+15
- Public, // ITEM_FIELD_ENCHANTMENT+16
- Public, // ITEM_FIELD_ENCHANTMENT+17
- Public, // ITEM_FIELD_ENCHANTMENT+18
- Public, // ITEM_FIELD_ENCHANTMENT+19
- Public, // ITEM_FIELD_ENCHANTMENT+20
- Public, // ITEM_FIELD_ENCHANTMENT+21
- Public, // ITEM_FIELD_ENCHANTMENT+22
- Public, // ITEM_FIELD_ENCHANTMENT+23
- Public, // ITEM_FIELD_ENCHANTMENT+24
- Public, // ITEM_FIELD_ENCHANTMENT+25
- Public, // ITEM_FIELD_ENCHANTMENT+26
- Public, // ITEM_FIELD_ENCHANTMENT+27
- Public, // ITEM_FIELD_ENCHANTMENT+28
- Public, // ITEM_FIELD_ENCHANTMENT+29
- Public, // ITEM_FIELD_ENCHANTMENT+30
- Public, // ITEM_FIELD_ENCHANTMENT+31
- Public, // ITEM_FIELD_ENCHANTMENT+32
- Public, // ITEM_FIELD_ENCHANTMENT+33
- Public, // ITEM_FIELD_ENCHANTMENT+34
- Public, // ITEM_FIELD_ENCHANTMENT+35
- Public, // ITEM_FIELD_ENCHANTMENT+36
- Public, // ITEM_FIELD_ENCHANTMENT+37
- Public, // ITEM_FIELD_ENCHANTMENT+38
- Public, // ITEM_FIELD_PROPERTY_SEED
- Public, // ITEM_FIELD_RANDOM_PROPERTIES_ID
- Owner, // ITEM_FIELD_DURABILITY
- Owner, // ITEM_FIELD_MAXDURABILITY
- Public, // ITEM_FIELD_CREATE_PLAYED_TIME
- Owner, // ITEM_FIELD_MODIFIERS_MASK
- Public, // ITEM_FIELD_CONTEXT
- Owner, // ITEM_FIELD_ARTIFACT_XP
- Owner, // ITEM_FIELD_ARTIFACT_XP+1
- Owner, // ITEM_FIELD_APPEARANCE_MOD_ID
- Public, // CONTAINER_FIELD_SLOT_1
- Public, // CONTAINER_FIELD_SLOT_1+1
- Public, // CONTAINER_FIELD_SLOT_1+2
- Public, // CONTAINER_FIELD_SLOT_1+3
- Public, // CONTAINER_FIELD_SLOT_1+4
- Public, // CONTAINER_FIELD_SLOT_1+5
- Public, // CONTAINER_FIELD_SLOT_1+6
- Public, // CONTAINER_FIELD_SLOT_1+7
- Public, // CONTAINER_FIELD_SLOT_1+8
- Public, // CONTAINER_FIELD_SLOT_1+9
- Public, // CONTAINER_FIELD_SLOT_1+10
- Public, // CONTAINER_FIELD_SLOT_1+11
- Public, // CONTAINER_FIELD_SLOT_1+12
- Public, // CONTAINER_FIELD_SLOT_1+13
- Public, // CONTAINER_FIELD_SLOT_1+14
- Public, // CONTAINER_FIELD_SLOT_1+15
- Public, // CONTAINER_FIELD_SLOT_1+16
- Public, // CONTAINER_FIELD_SLOT_1+17
- Public, // CONTAINER_FIELD_SLOT_1+18
- Public, // CONTAINER_FIELD_SLOT_1+19
- Public, // CONTAINER_FIELD_SLOT_1+20
- Public, // CONTAINER_FIELD_SLOT_1+21
- Public, // CONTAINER_FIELD_SLOT_1+22
- Public, // CONTAINER_FIELD_SLOT_1+23
- Public, // CONTAINER_FIELD_SLOT_1+24
- Public, // CONTAINER_FIELD_SLOT_1+25
- Public, // CONTAINER_FIELD_SLOT_1+26
- Public, // CONTAINER_FIELD_SLOT_1+27
- Public, // CONTAINER_FIELD_SLOT_1+28
- Public, // CONTAINER_FIELD_SLOT_1+29
- Public, // CONTAINER_FIELD_SLOT_1+30
- Public, // CONTAINER_FIELD_SLOT_1+31
- Public, // CONTAINER_FIELD_SLOT_1+32
- Public, // CONTAINER_FIELD_SLOT_1+33
- Public, // CONTAINER_FIELD_SLOT_1+34
- Public, // CONTAINER_FIELD_SLOT_1+35
- Public, // CONTAINER_FIELD_SLOT_1+36
- Public, // CONTAINER_FIELD_SLOT_1+37
- Public, // CONTAINER_FIELD_SLOT_1+38
- Public, // CONTAINER_FIELD_SLOT_1+39
- Public, // CONTAINER_FIELD_SLOT_1+40
- Public, // CONTAINER_FIELD_SLOT_1+41
- Public, // CONTAINER_FIELD_SLOT_1+42
- Public, // CONTAINER_FIELD_SLOT_1+43
- Public, // CONTAINER_FIELD_SLOT_1+44
- Public, // CONTAINER_FIELD_SLOT_1+45
- Public, // CONTAINER_FIELD_SLOT_1+46
- Public, // CONTAINER_FIELD_SLOT_1+47
- Public, // CONTAINER_FIELD_SLOT_1+48
- Public, // CONTAINER_FIELD_SLOT_1+49
- Public, // CONTAINER_FIELD_SLOT_1+50
- Public, // CONTAINER_FIELD_SLOT_1+51
- Public, // CONTAINER_FIELD_SLOT_1+52
- Public, // CONTAINER_FIELD_SLOT_1+53
- Public, // CONTAINER_FIELD_SLOT_1+54
- Public, // CONTAINER_FIELD_SLOT_1+55
- Public, // CONTAINER_FIELD_SLOT_1+56
- Public, // CONTAINER_FIELD_SLOT_1+57
- Public, // CONTAINER_FIELD_SLOT_1+58
- Public, // CONTAINER_FIELD_SLOT_1+59
- Public, // CONTAINER_FIELD_SLOT_1+60
- Public, // CONTAINER_FIELD_SLOT_1+61
- Public, // CONTAINER_FIELD_SLOT_1+62
- Public, // CONTAINER_FIELD_SLOT_1+63
- Public, // CONTAINER_FIELD_SLOT_1+64
- Public, // CONTAINER_FIELD_SLOT_1+65
- Public, // CONTAINER_FIELD_SLOT_1+66
- Public, // CONTAINER_FIELD_SLOT_1+67
- Public, // CONTAINER_FIELD_SLOT_1+68
- Public, // CONTAINER_FIELD_SLOT_1+69
- Public, // CONTAINER_FIELD_SLOT_1+70
- Public, // CONTAINER_FIELD_SLOT_1+71
- Public, // CONTAINER_FIELD_SLOT_1+72
- Public, // CONTAINER_FIELD_SLOT_1+73
- Public, // CONTAINER_FIELD_SLOT_1+74
- Public, // CONTAINER_FIELD_SLOT_1+75
- Public, // CONTAINER_FIELD_SLOT_1+76
- Public, // CONTAINER_FIELD_SLOT_1+77
- Public, // CONTAINER_FIELD_SLOT_1+78
- Public, // CONTAINER_FIELD_SLOT_1+79
- Public, // CONTAINER_FIELD_SLOT_1+80
- Public, // CONTAINER_FIELD_SLOT_1+81
- Public, // CONTAINER_FIELD_SLOT_1+82
- Public, // CONTAINER_FIELD_SLOT_1+83
- Public, // CONTAINER_FIELD_SLOT_1+84
- Public, // CONTAINER_FIELD_SLOT_1+85
- Public, // CONTAINER_FIELD_SLOT_1+86
- Public, // CONTAINER_FIELD_SLOT_1+87
- Public, // CONTAINER_FIELD_SLOT_1+88
- Public, // CONTAINER_FIELD_SLOT_1+89
- Public, // CONTAINER_FIELD_SLOT_1+90
- Public, // CONTAINER_FIELD_SLOT_1+91
- Public, // CONTAINER_FIELD_SLOT_1+92
- Public, // CONTAINER_FIELD_SLOT_1+93
- Public, // CONTAINER_FIELD_SLOT_1+94
- Public, // CONTAINER_FIELD_SLOT_1+95
- Public, // CONTAINER_FIELD_SLOT_1+96
- Public, // CONTAINER_FIELD_SLOT_1+97
- Public, // CONTAINER_FIELD_SLOT_1+98
- Public, // CONTAINER_FIELD_SLOT_1+99
- Public, // CONTAINER_FIELD_SLOT_1+100
- Public, // CONTAINER_FIELD_SLOT_1+101
- Public, // CONTAINER_FIELD_SLOT_1+102
- Public, // CONTAINER_FIELD_SLOT_1+103
- Public, // CONTAINER_FIELD_SLOT_1+104
- Public, // CONTAINER_FIELD_SLOT_1+105
- Public, // CONTAINER_FIELD_SLOT_1+106
- Public, // CONTAINER_FIELD_SLOT_1+107
- Public, // CONTAINER_FIELD_SLOT_1+108
- Public, // CONTAINER_FIELD_SLOT_1+109
- Public, // CONTAINER_FIELD_SLOT_1+110
- Public, // CONTAINER_FIELD_SLOT_1+111
- Public, // CONTAINER_FIELD_SLOT_1+112
- Public, // CONTAINER_FIELD_SLOT_1+113
- Public, // CONTAINER_FIELD_SLOT_1+114
- Public, // CONTAINER_FIELD_SLOT_1+115
- Public, // CONTAINER_FIELD_SLOT_1+116
- Public, // CONTAINER_FIELD_SLOT_1+117
- Public, // CONTAINER_FIELD_SLOT_1+118
- Public, // CONTAINER_FIELD_SLOT_1+119
- Public, // CONTAINER_FIELD_SLOT_1+120
- Public, // CONTAINER_FIELD_SLOT_1+121
- Public, // CONTAINER_FIELD_SLOT_1+122
- Public, // CONTAINER_FIELD_SLOT_1+123
- Public, // CONTAINER_FIELD_SLOT_1+124
- Public, // CONTAINER_FIELD_SLOT_1+125
- Public, // CONTAINER_FIELD_SLOT_1+126
- Public, // CONTAINER_FIELD_SLOT_1+127
- Public, // CONTAINER_FIELD_SLOT_1+128
- Public, // CONTAINER_FIELD_SLOT_1+129
- Public, // CONTAINER_FIELD_SLOT_1+130
- Public, // CONTAINER_FIELD_SLOT_1+131
- Public, // CONTAINER_FIELD_SLOT_1+132
- Public, // CONTAINER_FIELD_SLOT_1+133
- Public, // CONTAINER_FIELD_SLOT_1+134
- Public, // CONTAINER_FIELD_SLOT_1+135
- Public, // CONTAINER_FIELD_SLOT_1+136
- Public, // CONTAINER_FIELD_SLOT_1+137
- Public, // CONTAINER_FIELD_SLOT_1+138
- Public, // CONTAINER_FIELD_SLOT_1+139
- Public, // CONTAINER_FIELD_SLOT_1+140
- Public, // CONTAINER_FIELD_SLOT_1+141
- Public, // CONTAINER_FIELD_SLOT_1+142
- Public, // CONTAINER_FIELD_SLOT_1+143
- Public, // CONTAINER_FIELD_NUM_SLOTS
- };
-
- public static uint[] AzeriteEmpoweredItemUpdateFieldFlags = new uint[(int)AzeriteEmpoweredItemFields.End]
- {
- Public, // OBJECT_FIELD_GUID
- Public, // OBJECT_FIELD_GUID+1
- Public, // OBJECT_FIELD_GUID+2
- Public, // OBJECT_FIELD_GUID+3
- Dynamic, // OBJECT_FIELD_ENTRY
- Dynamic | Urgent, // OBJECT_DYNAMIC_FLAGS
- Public, // OBJECT_FIELD_SCALE_X
- Public, // ITEM_FIELD_OWNER
- Public, // ITEM_FIELD_OWNER+1
- Public, // ITEM_FIELD_OWNER+2
- Public, // ITEM_FIELD_OWNER+3
- Public, // ITEM_FIELD_CONTAINED
- Public, // ITEM_FIELD_CONTAINED+1
- Public, // ITEM_FIELD_CONTAINED+2
- Public, // ITEM_FIELD_CONTAINED+3
- Public, // ITEM_FIELD_CREATOR
- Public, // ITEM_FIELD_CREATOR+1
- Public, // ITEM_FIELD_CREATOR+2
- Public, // ITEM_FIELD_CREATOR+3
- Public, // ITEM_FIELD_GIFTCREATOR
- Public, // ITEM_FIELD_GIFTCREATOR+1
- Public, // ITEM_FIELD_GIFTCREATOR+2
- Public, // ITEM_FIELD_GIFTCREATOR+3
- Owner, // ITEM_FIELD_STACK_COUNT
- Owner, // ITEM_FIELD_DURATION
- Owner, // ITEM_FIELD_SPELL_CHARGES
- Owner, // ITEM_FIELD_SPELL_CHARGES+1
- Owner, // ITEM_FIELD_SPELL_CHARGES+2
- Owner, // ITEM_FIELD_SPELL_CHARGES+3
- Owner, // ITEM_FIELD_SPELL_CHARGES+4
- Public, // ITEM_FIELD_FLAGS
- Public, // ITEM_FIELD_ENCHANTMENT
- Public, // ITEM_FIELD_ENCHANTMENT+1
- Public, // ITEM_FIELD_ENCHANTMENT+2
- Public, // ITEM_FIELD_ENCHANTMENT+3
- Public, // ITEM_FIELD_ENCHANTMENT+4
- Public, // ITEM_FIELD_ENCHANTMENT+5
- Public, // ITEM_FIELD_ENCHANTMENT+6
- Public, // ITEM_FIELD_ENCHANTMENT+7
- Public, // ITEM_FIELD_ENCHANTMENT+8
- Public, // ITEM_FIELD_ENCHANTMENT+9
- Public, // ITEM_FIELD_ENCHANTMENT+10
- Public, // ITEM_FIELD_ENCHANTMENT+11
- Public, // ITEM_FIELD_ENCHANTMENT+12
- Public, // ITEM_FIELD_ENCHANTMENT+13
- Public, // ITEM_FIELD_ENCHANTMENT+14
- Public, // ITEM_FIELD_ENCHANTMENT+15
- Public, // ITEM_FIELD_ENCHANTMENT+16
- Public, // ITEM_FIELD_ENCHANTMENT+17
- Public, // ITEM_FIELD_ENCHANTMENT+18
- Public, // ITEM_FIELD_ENCHANTMENT+19
- Public, // ITEM_FIELD_ENCHANTMENT+20
- Public, // ITEM_FIELD_ENCHANTMENT+21
- Public, // ITEM_FIELD_ENCHANTMENT+22
- Public, // ITEM_FIELD_ENCHANTMENT+23
- Public, // ITEM_FIELD_ENCHANTMENT+24
- Public, // ITEM_FIELD_ENCHANTMENT+25
- Public, // ITEM_FIELD_ENCHANTMENT+26
- Public, // ITEM_FIELD_ENCHANTMENT+27
- Public, // ITEM_FIELD_ENCHANTMENT+28
- Public, // ITEM_FIELD_ENCHANTMENT+29
- Public, // ITEM_FIELD_ENCHANTMENT+30
- Public, // ITEM_FIELD_ENCHANTMENT+31
- Public, // ITEM_FIELD_ENCHANTMENT+32
- Public, // ITEM_FIELD_ENCHANTMENT+33
- Public, // ITEM_FIELD_ENCHANTMENT+34
- Public, // ITEM_FIELD_ENCHANTMENT+35
- Public, // ITEM_FIELD_ENCHANTMENT+36
- Public, // ITEM_FIELD_ENCHANTMENT+37
- Public, // ITEM_FIELD_ENCHANTMENT+38
- Public, // ITEM_FIELD_PROPERTY_SEED
- Public, // ITEM_FIELD_RANDOM_PROPERTIES_ID
- Owner, // ITEM_FIELD_DURABILITY
- Owner, // ITEM_FIELD_MAXDURABILITY
- Public, // ITEM_FIELD_CREATE_PLAYED_TIME
- Owner, // ITEM_FIELD_MODIFIERS_MASK
- Public, // ITEM_FIELD_CONTEXT
- Owner, // ITEM_FIELD_ARTIFACT_XP
- Owner, // ITEM_FIELD_ARTIFACT_XP+1
- Owner, // ITEM_FIELD_APPEARANCE_MOD_ID
- Public, // AZERITE_EMPOWERED_ITEM_FIELD_SELECTIONS
- Public, // AZERITE_EMPOWERED_ITEM_FIELD_SELECTIONS+1
- Public, // AZERITE_EMPOWERED_ITEM_FIELD_SELECTIONS+2
- Public, // AZERITE_EMPOWERED_ITEM_FIELD_SELECTIONS+3
- };
-
- public static uint[] AzeriteItemUpdateFieldFlags = new uint[(int)AzeriteItemFields.End]
- {
- Public, // OBJECT_FIELD_GUID
- Public, // OBJECT_FIELD_GUID+1
- Public, // OBJECT_FIELD_GUID+2
- Public, // OBJECT_FIELD_GUID+3
- Dynamic, // OBJECT_FIELD_ENTRY
- Dynamic | Urgent, // OBJECT_DYNAMIC_FLAGS
- Public, // OBJECT_FIELD_SCALE_X
- Public, // ITEM_FIELD_OWNER
- Public, // ITEM_FIELD_OWNER+1
- Public, // ITEM_FIELD_OWNER+2
- Public, // ITEM_FIELD_OWNER+3
- Public, // ITEM_FIELD_CONTAINED
- Public, // ITEM_FIELD_CONTAINED+1
- Public, // ITEM_FIELD_CONTAINED+2
- Public, // ITEM_FIELD_CONTAINED+3
- Public, // ITEM_FIELD_CREATOR
- Public, // ITEM_FIELD_CREATOR+1
- Public, // ITEM_FIELD_CREATOR+2
- Public, // ITEM_FIELD_CREATOR+3
- Public, // ITEM_FIELD_GIFTCREATOR
- Public, // ITEM_FIELD_GIFTCREATOR+1
- Public, // ITEM_FIELD_GIFTCREATOR+2
- Public, // ITEM_FIELD_GIFTCREATOR+3
- Owner, // ITEM_FIELD_STACK_COUNT
- Owner, // ITEM_FIELD_DURATION
- Owner, // ITEM_FIELD_SPELL_CHARGES
- Owner, // ITEM_FIELD_SPELL_CHARGES+1
- Owner, // ITEM_FIELD_SPELL_CHARGES+2
- Owner, // ITEM_FIELD_SPELL_CHARGES+3
- Owner, // ITEM_FIELD_SPELL_CHARGES+4
- Public, // ITEM_FIELD_FLAGS
- Public, // ITEM_FIELD_ENCHANTMENT
- Public, // ITEM_FIELD_ENCHANTMENT+1
- Public, // ITEM_FIELD_ENCHANTMENT+2
- Public, // ITEM_FIELD_ENCHANTMENT+3
- Public, // ITEM_FIELD_ENCHANTMENT+4
- Public, // ITEM_FIELD_ENCHANTMENT+5
- Public, // ITEM_FIELD_ENCHANTMENT+6
- Public, // ITEM_FIELD_ENCHANTMENT+7
- Public, // ITEM_FIELD_ENCHANTMENT+8
- Public, // ITEM_FIELD_ENCHANTMENT+9
- Public, // ITEM_FIELD_ENCHANTMENT+10
- Public, // ITEM_FIELD_ENCHANTMENT+11
- Public, // ITEM_FIELD_ENCHANTMENT+12
- Public, // ITEM_FIELD_ENCHANTMENT+13
- Public, // ITEM_FIELD_ENCHANTMENT+14
- Public, // ITEM_FIELD_ENCHANTMENT+15
- Public, // ITEM_FIELD_ENCHANTMENT+16
- Public, // ITEM_FIELD_ENCHANTMENT+17
- Public, // ITEM_FIELD_ENCHANTMENT+18
- Public, // ITEM_FIELD_ENCHANTMENT+19
- Public, // ITEM_FIELD_ENCHANTMENT+20
- Public, // ITEM_FIELD_ENCHANTMENT+21
- Public, // ITEM_FIELD_ENCHANTMENT+22
- Public, // ITEM_FIELD_ENCHANTMENT+23
- Public, // ITEM_FIELD_ENCHANTMENT+24
- Public, // ITEM_FIELD_ENCHANTMENT+25
- Public, // ITEM_FIELD_ENCHANTMENT+26
- Public, // ITEM_FIELD_ENCHANTMENT+27
- Public, // ITEM_FIELD_ENCHANTMENT+28
- Public, // ITEM_FIELD_ENCHANTMENT+29
- Public, // ITEM_FIELD_ENCHANTMENT+30
- Public, // ITEM_FIELD_ENCHANTMENT+31
- Public, // ITEM_FIELD_ENCHANTMENT+32
- Public, // ITEM_FIELD_ENCHANTMENT+33
- Public, // ITEM_FIELD_ENCHANTMENT+34
- Public, // ITEM_FIELD_ENCHANTMENT+35
- Public, // ITEM_FIELD_ENCHANTMENT+36
- Public, // ITEM_FIELD_ENCHANTMENT+37
- Public, // ITEM_FIELD_ENCHANTMENT+38
- Public, // ITEM_FIELD_PROPERTY_SEED
- Public, // ITEM_FIELD_RANDOM_PROPERTIES_ID
- Owner, // ITEM_FIELD_DURABILITY
- Owner, // ITEM_FIELD_MAXDURABILITY
- Public, // ITEM_FIELD_CREATE_PLAYED_TIME
- Owner, // ITEM_FIELD_MODIFIERS_MASK
- Public, // ITEM_FIELD_CONTEXT
- Owner, // ITEM_FIELD_ARTIFACT_XP
- Owner, // ITEM_FIELD_ARTIFACT_XP+1
- Owner, // ITEM_FIELD_APPEARANCE_MOD_ID
- Public, // AZERITE_ITEM_FIELD_XP
- Public, // AZERITE_ITEM_FIELD_XP+1
- Public, // AZERITE_ITEM_FIELD_LEVEL
- Public, // AZERITE_ITEM_FIELD_AURA_LEVEL
- Owner, // AZERITE_ITEM_FIELD_KNOWLEDGE_LEVEL
- Owner, // AZERITE_ITEM_FIELD_DEBUG_KNOWLEDGE_WEEK
- };
-
- public static uint[] ItemDynamicUpdateFieldFlags = new uint[(int)ItemDynamicFields.End]
- {
- Owner, // ITEM_DYNAMIC_FIELD_MODIFIERS
- Owner | Unknownx100, // ITEM_DYNAMIC_FIELD_BONUSLIST_IDS
- Owner, // ITEM_DYNAMIC_FIELD_ARTIFACT_POWERS
- Owner, // ITEM_DYNAMIC_FIELD_GEMS
- };
-
- public static uint[] UnitUpdateFieldFlags = new uint[(int)ActivePlayerFields.End]
- {
- Public, // OBJECT_FIELD_GUID
- Public, // OBJECT_FIELD_GUID+1
- Public, // OBJECT_FIELD_GUID+2
- Public, // OBJECT_FIELD_GUID+3
- Dynamic, // OBJECT_FIELD_ENTRY
- Dynamic | Urgent, // OBJECT_DYNAMIC_FLAGS
- Public, // OBJECT_FIELD_SCALE_X
- Public, // UNIT_FIELD_CHARM
- Public, // UNIT_FIELD_CHARM+1
- Public, // UNIT_FIELD_CHARM+2
- Public, // UNIT_FIELD_CHARM+3
- Public, // UNIT_FIELD_SUMMON
- Public, // UNIT_FIELD_SUMMON+1
- Public, // UNIT_FIELD_SUMMON+2
- Public, // UNIT_FIELD_SUMMON+3
- Private, // UNIT_FIELD_CRITTER
- Private, // UNIT_FIELD_CRITTER+1
- Private, // UNIT_FIELD_CRITTER+2
- Private, // UNIT_FIELD_CRITTER+3
- Public, // UNIT_FIELD_CHARMEDBY
- Public, // UNIT_FIELD_CHARMEDBY+1
- Public, // UNIT_FIELD_CHARMEDBY+2
- Public, // UNIT_FIELD_CHARMEDBY+3
- Public, // UNIT_FIELD_SUMMONEDBY
- Public, // UNIT_FIELD_SUMMONEDBY+1
- Public, // UNIT_FIELD_SUMMONEDBY+2
- Public, // UNIT_FIELD_SUMMONEDBY+3
- Public, // UNIT_FIELD_CREATEDBY
- Public, // UNIT_FIELD_CREATEDBY+1
- Public, // UNIT_FIELD_CREATEDBY+2
- Public, // UNIT_FIELD_CREATEDBY+3
- Public, // UNIT_FIELD_DEMON_CREATOR
- Public, // UNIT_FIELD_DEMON_CREATOR+1
- Public, // UNIT_FIELD_DEMON_CREATOR+2
- Public, // UNIT_FIELD_DEMON_CREATOR+3
- Public, // UNIT_FIELD_LOOK_AT_CONTROLLER_TARGET
- Public, // UNIT_FIELD_LOOK_AT_CONTROLLER_TARGET+1
- Public, // UNIT_FIELD_LOOK_AT_CONTROLLER_TARGET+2
- Public, // UNIT_FIELD_LOOK_AT_CONTROLLER_TARGET+3
- Public, // UNIT_FIELD_TARGET
- Public, // UNIT_FIELD_TARGET+1
- Public, // UNIT_FIELD_TARGET+2
- Public, // UNIT_FIELD_TARGET+3
- Public, // UNIT_FIELD_BATTLE_PET_COMPANION_GUID
- Public, // UNIT_FIELD_BATTLE_PET_COMPANION_GUID+1
- Public, // UNIT_FIELD_BATTLE_PET_COMPANION_GUID+2
- Public, // UNIT_FIELD_BATTLE_PET_COMPANION_GUID+3
- Public, // UNIT_FIELD_BATTLE_PET_DB_ID
- Public, // UNIT_FIELD_BATTLE_PET_DB_ID+1
- Public | Urgent, // UNIT_FIELD_CHANNEL_DATA
- Public | Urgent, // UNIT_FIELD_CHANNEL_DATA+1
- Public, // UNIT_FIELD_SUMMONED_BY_HOME_REALM
- Public, // UNIT_FIELD_BYTES_0
- Public, // UNIT_FIELD_DISPLAY_POWER
- Public, // UNIT_FIELD_OVERRIDE_DISPLAY_POWER_ID
- Public, // UNIT_FIELD_HEALTH
- Public, // UNIT_FIELD_HEALTH+1
- Public | UrgentSelfOnly, // UNIT_FIELD_POWER
- Public | UrgentSelfOnly, // UNIT_FIELD_POWER+1
- Public | UrgentSelfOnly, // UNIT_FIELD_POWER+2
- Public | UrgentSelfOnly, // UNIT_FIELD_POWER+3
- Public | UrgentSelfOnly, // UNIT_FIELD_POWER+4
- Public | UrgentSelfOnly, // UNIT_FIELD_POWER+5
- Public, // UNIT_FIELD_MAXHEALTH
- Public, // UNIT_FIELD_MAXHEALTH+1
- Public, // UNIT_FIELD_MAXPOWER
- Public, // UNIT_FIELD_MAXPOWER+1
- Public, // UNIT_FIELD_MAXPOWER+2
- Public, // UNIT_FIELD_MAXPOWER+3
- Public, // UNIT_FIELD_MAXPOWER+4
- Public, // UNIT_FIELD_MAXPOWER+5
- Private | Owner | UnitAll, // UNIT_FIELD_POWER_REGEN_FLAT_MODIFIER
- Private | Owner | UnitAll, // UNIT_FIELD_POWER_REGEN_FLAT_MODIFIER+1
- Private | Owner | UnitAll, // UNIT_FIELD_POWER_REGEN_FLAT_MODIFIER+2
- Private | Owner | UnitAll, // UNIT_FIELD_POWER_REGEN_FLAT_MODIFIER+3
- Private | Owner | UnitAll, // UNIT_FIELD_POWER_REGEN_FLAT_MODIFIER+4
- Private | Owner | UnitAll, // UNIT_FIELD_POWER_REGEN_FLAT_MODIFIER+5
- Private | Owner | UnitAll, // UNIT_FIELD_POWER_REGEN_INTERRUPTED_FLAT_MODIFIER
- Private | Owner | UnitAll, // UNIT_FIELD_POWER_REGEN_INTERRUPTED_FLAT_MODIFIER+1
- Private | Owner | UnitAll, // UNIT_FIELD_POWER_REGEN_INTERRUPTED_FLAT_MODIFIER+2
- Private | Owner | UnitAll, // UNIT_FIELD_POWER_REGEN_INTERRUPTED_FLAT_MODIFIER+3
- Private | Owner | UnitAll, // UNIT_FIELD_POWER_REGEN_INTERRUPTED_FLAT_MODIFIER+4
- Private | Owner | UnitAll, // UNIT_FIELD_POWER_REGEN_INTERRUPTED_FLAT_MODIFIER+5
- Public, // UNIT_FIELD_LEVEL
- Public, // UNIT_FIELD_EFFECTIVE_LEVEL
- Public, // UNIT_FIELD_CONTENT_TUNING_ID
- Public, // UNIT_FIELD_SCALING_LEVEL_MIN
- Public, // UNIT_FIELD_SCALING_LEVEL_MAX
- Public, // UNIT_FIELD_SCALING_LEVEL_DELTA
- Public, // UNIT_FIELD_SCALING_FACTION_GROUP
- Public, // UNIT_FIELD_SCALING_HEALTH_ITEM_LEVEL_CURVE_ID
- Public, // UNIT_FIELD_SCALING_DAMAGE_ITEM_LEVEL_CURVE_ID
- Public, // UNIT_FIELD_FACTIONTEMPLATE
- Public, // UNIT_VIRTUAL_ITEM_SLOT_ID
- Public, // UNIT_VIRTUAL_ITEM_SLOT_ID+1
- Public, // UNIT_VIRTUAL_ITEM_SLOT_ID+2
- Public, // UNIT_VIRTUAL_ITEM_SLOT_ID+3
- Public, // UNIT_VIRTUAL_ITEM_SLOT_ID+4
- Public, // UNIT_VIRTUAL_ITEM_SLOT_ID+5
- Public | Urgent, // UNIT_FIELD_FLAGS
- Public | Urgent, // UNIT_FIELD_FLAGS_2
- Public | Urgent, // UNIT_FIELD_FLAGS_3
- Public, // UNIT_FIELD_AURASTATE
- Public, // UNIT_FIELD_BASEATTACKTIME
- Public, // UNIT_FIELD_BASEATTACKTIME+1
- Private, // UNIT_FIELD_RANGEDATTACKTIME
- Public, // UNIT_FIELD_BOUNDINGRADIUS
- Public, // UNIT_FIELD_COMBATREACH
- Dynamic | Urgent, // UNIT_FIELD_DISPLAYID
- Dynamic | Urgent, // UNIT_FIELD_DISPLAY_SCALE
- Public | Urgent, // UNIT_FIELD_NATIVEDISPLAYID
- Public | Urgent, // UNIT_FIELD_NATIVE_X_DISPLAY_SCALE
- Public | Urgent, // UNIT_FIELD_MOUNTDISPLAYID
- Private | Owner | SpecialInfo, // UNIT_FIELD_MINDAMAGE
- Private | Owner | SpecialInfo, // UNIT_FIELD_MAXDAMAGE
- Private | Owner | SpecialInfo, // UNIT_FIELD_MINOFFHANDDAMAGE
- Private | Owner | SpecialInfo, // UNIT_FIELD_MAXOFFHANDDAMAGE
- Public, // UNIT_FIELD_BYTES_1
- Public, // UNIT_FIELD_PETNUMBER
- Public, // UNIT_FIELD_PET_NAME_TIMESTAMP
- Owner, // UNIT_FIELD_PETEXPERIENCE
- Owner, // UNIT_FIELD_PETNEXTLEVELEXP
- Public, // UNIT_MOD_CAST_SPEED
- Public, // UNIT_MOD_CAST_HASTE
- Public, // UNIT_FIELD_MOD_HASTE
- Public, // UNIT_FIELD_MOD_RANGED_HASTE
- Public, // UNIT_FIELD_MOD_HASTE_REGEN
- Public, // UNIT_FIELD_MOD_TIME_RATE
- Public, // UNIT_CREATED_BY_SPELL
- Public | Dynamic, // UNIT_NPC_FLAGS
- Public | Dynamic, // UNIT_NPC_FLAGS+1
- Public, // UNIT_NPC_EMOTESTATE
- Private | Owner, // UNIT_FIELD_STAT
- Private | Owner, // UNIT_FIELD_STAT+1
- Private | Owner, // UNIT_FIELD_STAT+2
- Private | Owner, // UNIT_FIELD_STAT+3
- Private | Owner, // UNIT_FIELD_POSSTAT
- Private | Owner, // UNIT_FIELD_POSSTAT+1
- Private | Owner, // UNIT_FIELD_POSSTAT+2
- Private | Owner, // UNIT_FIELD_POSSTAT+3
- Private | Owner, // UNIT_FIELD_NEGSTAT
- Private | Owner, // UNIT_FIELD_NEGSTAT+1
- Private | Owner, // UNIT_FIELD_NEGSTAT+2
- Private | Owner, // UNIT_FIELD_NEGSTAT+3
- Private | Owner | SpecialInfo, // UNIT_FIELD_RESISTANCES
- Private | Owner | SpecialInfo, // UNIT_FIELD_RESISTANCES+1
- Private | Owner | SpecialInfo, // UNIT_FIELD_RESISTANCES+2
- Private | Owner | SpecialInfo, // UNIT_FIELD_RESISTANCES+3
- Private | Owner | SpecialInfo, // UNIT_FIELD_RESISTANCES+4
- Private | Owner | SpecialInfo, // UNIT_FIELD_RESISTANCES+5
- Private | Owner | SpecialInfo, // UNIT_FIELD_RESISTANCES+6
- Private | Owner, // UNIT_FIELD_BONUS_RESISTANCE_MODS
- Private | Owner, // UNIT_FIELD_BONUS_RESISTANCE_MODS+1
- Private | Owner, // UNIT_FIELD_BONUS_RESISTANCE_MODS+2
- Private | Owner, // UNIT_FIELD_BONUS_RESISTANCE_MODS+3
- Private | Owner, // UNIT_FIELD_BONUS_RESISTANCE_MODS+4
- Private | Owner, // UNIT_FIELD_BONUS_RESISTANCE_MODS+5
- Private | Owner, // UNIT_FIELD_BONUS_RESISTANCE_MODS+6
- Public, // UNIT_FIELD_BASE_MANA
- Private | Owner, // UNIT_FIELD_BASE_HEALTH
- Public, // UNIT_FIELD_BYTES_2
- Private | Owner, // UNIT_FIELD_ATTACK_POWER
- Private | Owner, // UNIT_FIELD_ATTACK_POWER_MOD_POS
- Private | Owner, // UNIT_FIELD_ATTACK_POWER_MOD_NEG
- Private | Owner, // UNIT_FIELD_ATTACK_POWER_MULTIPLIER
- Private | Owner, // UNIT_FIELD_RANGED_ATTACK_POWER
- Private | Owner, // UNIT_FIELD_RANGED_ATTACK_POWER_MOD_POS
- Private | Owner, // UNIT_FIELD_RANGED_ATTACK_POWER_MOD_NEG
- Private | Owner, // UNIT_FIELD_RANGED_ATTACK_POWER_MULTIPLIER
- Private | Owner, // UNIT_FIELD_MAIN_HAND_WEAPON_ATTACK_POWER
- Private | Owner, // UNIT_FIELD_OFF_HAND_WEAPON_ATTACK_POWER
- Private | Owner, // UNIT_FIELD_RANGED_HAND_WEAPON_ATTACK_POWER
- Private | Owner, // UNIT_FIELD_ATTACK_SPEED_AURA
- Private | Owner, // UNIT_FIELD_LIFESTEAL
- Private | Owner, // UNIT_FIELD_MINRANGEDDAMAGE
- Private | Owner, // UNIT_FIELD_MAXRANGEDDAMAGE
- Private | Owner, // UNIT_FIELD_POWER_COST_MODIFIER
- Private | Owner, // UNIT_FIELD_POWER_COST_MODIFIER+1
- Private | Owner, // UNIT_FIELD_POWER_COST_MODIFIER+2
- Private | Owner, // UNIT_FIELD_POWER_COST_MODIFIER+3
- Private | Owner, // UNIT_FIELD_POWER_COST_MODIFIER+4
- Private | Owner, // UNIT_FIELD_POWER_COST_MODIFIER+5
- Private | Owner, // UNIT_FIELD_POWER_COST_MODIFIER+6
- Private | Owner, // UNIT_FIELD_POWER_COST_MULTIPLIER
- Private | Owner, // UNIT_FIELD_POWER_COST_MULTIPLIER+1
- Private | Owner, // UNIT_FIELD_POWER_COST_MULTIPLIER+2
- Private | Owner, // UNIT_FIELD_POWER_COST_MULTIPLIER+3
- Private | Owner, // UNIT_FIELD_POWER_COST_MULTIPLIER+4
- Private | Owner, // UNIT_FIELD_POWER_COST_MULTIPLIER+5
- Private | Owner, // UNIT_FIELD_POWER_COST_MULTIPLIER+6
- Private | Owner, // UNIT_FIELD_MAXHEALTHMODIFIER
- Public, // UNIT_FIELD_HOVERHEIGHT
- Public, // UNIT_FIELD_MIN_ITEM_LEVEL_CUTOFF
- Public, // UNIT_FIELD_MIN_ITEM_LEVEL
- Public, // UNIT_FIELD_MAXITEMLEVEL
- Public, // UNIT_FIELD_WILD_BATTLEPET_LEVEL
- Public, // UNIT_FIELD_BATTLEPET_COMPANION_NAME_TIMESTAMP
- Public, // UNIT_FIELD_INTERACT_SPELLID
- Dynamic | Urgent, // UNIT_FIELD_STATE_SPELL_VISUAL_ID
- Dynamic | Urgent, // UNIT_FIELD_STATE_ANIM_ID
- Dynamic | Urgent, // UNIT_FIELD_STATE_ANIM_KIT_ID
- Dynamic | Urgent, // UNIT_FIELD_STATE_WORLD_EFFECT_ID
- Dynamic | Urgent, // UNIT_FIELD_STATE_WORLD_EFFECT_ID+1
- Dynamic | Urgent, // UNIT_FIELD_STATE_WORLD_EFFECT_ID+2
- Dynamic | Urgent, // UNIT_FIELD_STATE_WORLD_EFFECT_ID+3
- Public, // UNIT_FIELD_SCALE_DURATION
- Public, // UNIT_FIELD_LOOKS_LIKE_MOUNT_ID
- Public, // UNIT_FIELD_LOOKS_LIKE_CREATURE_ID
- Public, // UNIT_FIELD_LOOK_AT_CONTROLLER_ID
- Public, // UNIT_FIELD_GUILD_GUID
- Public, // UNIT_FIELD_GUILD_GUID+1
- Public, // UNIT_FIELD_GUILD_GUID+2
- Public, // UNIT_FIELD_GUILD_GUID+3
- Public, // PLAYER_DUEL_ARBITER
- Public, // PLAYER_DUEL_ARBITER+1
- Public, // PLAYER_DUEL_ARBITER+2
- Public, // PLAYER_DUEL_ARBITER+3
- Public, // PLAYER_WOW_ACCOUNT
- Public, // PLAYER_WOW_ACCOUNT+1
- Public, // PLAYER_WOW_ACCOUNT+2
- Public, // PLAYER_WOW_ACCOUNT+3
- Public, // PLAYER_LOOT_TARGET_GUID
- Public, // PLAYER_LOOT_TARGET_GUID+1
- Public, // PLAYER_LOOT_TARGET_GUID+2
- Public, // PLAYER_LOOT_TARGET_GUID+3
- Public, // PLAYER_FLAGS
- Public, // PLAYER_FLAGS_EX
- Public, // PLAYER_GUILDRANK
- Public, // PLAYER_GUILDDELETE_DATE
- Public, // PLAYER_GUILDLEVEL
- Public, // PLAYER_BYTES
- Public, // PLAYER_BYTES_2
- Public, // PLAYER_BYTES_3
- Public, // PLAYER_BYTES_4
- Public, // PLAYER_DUEL_TEAM
- Public, // PLAYER_GUILD_TIMESTAMP
- PartyMember, // PLAYER_QUEST_LOG
- PartyMember, // PLAYER_QUEST_LOG+1
- PartyMember, // PLAYER_QUEST_LOG+2
- PartyMember, // PLAYER_QUEST_LOG+3
- PartyMember, // PLAYER_QUEST_LOG+4
- PartyMember, // PLAYER_QUEST_LOG+5
- PartyMember, // PLAYER_QUEST_LOG+6
- PartyMember, // PLAYER_QUEST_LOG+7
- PartyMember, // PLAYER_QUEST_LOG+8
- PartyMember, // PLAYER_QUEST_LOG+9
- PartyMember, // PLAYER_QUEST_LOG+10
- PartyMember, // PLAYER_QUEST_LOG+11
- PartyMember, // PLAYER_QUEST_LOG+12
- PartyMember, // PLAYER_QUEST_LOG+13
- PartyMember, // PLAYER_QUEST_LOG+14
- PartyMember, // PLAYER_QUEST_LOG+15
- PartyMember, // PLAYER_QUEST_LOG+16
- PartyMember, // PLAYER_QUEST_LOG+17
- PartyMember, // PLAYER_QUEST_LOG+18
- PartyMember, // PLAYER_QUEST_LOG+19
- PartyMember, // PLAYER_QUEST_LOG+20
- PartyMember, // PLAYER_QUEST_LOG+21
- PartyMember, // PLAYER_QUEST_LOG+22
- PartyMember, // PLAYER_QUEST_LOG+23
- PartyMember, // PLAYER_QUEST_LOG+24
- PartyMember, // PLAYER_QUEST_LOG+25
- PartyMember, // PLAYER_QUEST_LOG+26
- PartyMember, // PLAYER_QUEST_LOG+27
- PartyMember, // PLAYER_QUEST_LOG+28
- PartyMember, // PLAYER_QUEST_LOG+29
- PartyMember, // PLAYER_QUEST_LOG+30
- PartyMember, // PLAYER_QUEST_LOG+31
- PartyMember, // PLAYER_QUEST_LOG+32
- PartyMember, // PLAYER_QUEST_LOG+33
- PartyMember, // PLAYER_QUEST_LOG+34
- PartyMember, // PLAYER_QUEST_LOG+35
- PartyMember, // PLAYER_QUEST_LOG+36
- PartyMember, // PLAYER_QUEST_LOG+37
- PartyMember, // PLAYER_QUEST_LOG+38
- PartyMember, // PLAYER_QUEST_LOG+39
- PartyMember, // PLAYER_QUEST_LOG+40
- PartyMember, // PLAYER_QUEST_LOG+41
- PartyMember, // PLAYER_QUEST_LOG+42
- PartyMember, // PLAYER_QUEST_LOG+43
- PartyMember, // PLAYER_QUEST_LOG+44
- PartyMember, // PLAYER_QUEST_LOG+45
- PartyMember, // PLAYER_QUEST_LOG+46
- PartyMember, // PLAYER_QUEST_LOG+47
- PartyMember, // PLAYER_QUEST_LOG+48
- PartyMember, // PLAYER_QUEST_LOG+49
- PartyMember, // PLAYER_QUEST_LOG+50
- PartyMember, // PLAYER_QUEST_LOG+51
- PartyMember, // PLAYER_QUEST_LOG+52
- PartyMember, // PLAYER_QUEST_LOG+53
- PartyMember, // PLAYER_QUEST_LOG+54
- PartyMember, // PLAYER_QUEST_LOG+55
- PartyMember, // PLAYER_QUEST_LOG+56
- PartyMember, // PLAYER_QUEST_LOG+57
- PartyMember, // PLAYER_QUEST_LOG+58
- PartyMember, // PLAYER_QUEST_LOG+59
- PartyMember, // PLAYER_QUEST_LOG+60
- PartyMember, // PLAYER_QUEST_LOG+61
- PartyMember, // PLAYER_QUEST_LOG+62
- PartyMember, // PLAYER_QUEST_LOG+63
- PartyMember, // PLAYER_QUEST_LOG+64
- PartyMember, // PLAYER_QUEST_LOG+65
- PartyMember, // PLAYER_QUEST_LOG+66
- PartyMember, // PLAYER_QUEST_LOG+67
- PartyMember, // PLAYER_QUEST_LOG+68
- PartyMember, // PLAYER_QUEST_LOG+69
- PartyMember, // PLAYER_QUEST_LOG+70
- PartyMember, // PLAYER_QUEST_LOG+71
- PartyMember, // PLAYER_QUEST_LOG+72
- PartyMember, // PLAYER_QUEST_LOG+73
- PartyMember, // PLAYER_QUEST_LOG+74
- PartyMember, // PLAYER_QUEST_LOG+75
- PartyMember, // PLAYER_QUEST_LOG+76
- PartyMember, // PLAYER_QUEST_LOG+77
- PartyMember, // PLAYER_QUEST_LOG+78
- PartyMember, // PLAYER_QUEST_LOG+79
- PartyMember, // PLAYER_QUEST_LOG+80
- PartyMember, // PLAYER_QUEST_LOG+81
- PartyMember, // PLAYER_QUEST_LOG+82
- PartyMember, // PLAYER_QUEST_LOG+83
- PartyMember, // PLAYER_QUEST_LOG+84
- PartyMember, // PLAYER_QUEST_LOG+85
- PartyMember, // PLAYER_QUEST_LOG+86
- PartyMember, // PLAYER_QUEST_LOG+87
- PartyMember, // PLAYER_QUEST_LOG+88
- PartyMember, // PLAYER_QUEST_LOG+89
- PartyMember, // PLAYER_QUEST_LOG+90
- PartyMember, // PLAYER_QUEST_LOG+91
- PartyMember, // PLAYER_QUEST_LOG+92
- PartyMember, // PLAYER_QUEST_LOG+93
- PartyMember, // PLAYER_QUEST_LOG+94
- PartyMember, // PLAYER_QUEST_LOG+95
- PartyMember, // PLAYER_QUEST_LOG+96
- PartyMember, // PLAYER_QUEST_LOG+97
- PartyMember, // PLAYER_QUEST_LOG+98
- PartyMember, // PLAYER_QUEST_LOG+99
- PartyMember, // PLAYER_QUEST_LOG+100
- PartyMember, // PLAYER_QUEST_LOG+101
- PartyMember, // PLAYER_QUEST_LOG+102
- PartyMember, // PLAYER_QUEST_LOG+103
- PartyMember, // PLAYER_QUEST_LOG+104
- PartyMember, // PLAYER_QUEST_LOG+105
- PartyMember, // PLAYER_QUEST_LOG+106
- PartyMember, // PLAYER_QUEST_LOG+107
- PartyMember, // PLAYER_QUEST_LOG+108
- PartyMember, // PLAYER_QUEST_LOG+109
- PartyMember, // PLAYER_QUEST_LOG+110
- PartyMember, // PLAYER_QUEST_LOG+111
- PartyMember, // PLAYER_QUEST_LOG+112
- PartyMember, // PLAYER_QUEST_LOG+113
- PartyMember, // PLAYER_QUEST_LOG+114
- PartyMember, // PLAYER_QUEST_LOG+115
- PartyMember, // PLAYER_QUEST_LOG+116
- PartyMember, // PLAYER_QUEST_LOG+117
- PartyMember, // PLAYER_QUEST_LOG+118
- PartyMember, // PLAYER_QUEST_LOG+119
- PartyMember, // PLAYER_QUEST_LOG+120
- PartyMember, // PLAYER_QUEST_LOG+121
- PartyMember, // PLAYER_QUEST_LOG+122
- PartyMember, // PLAYER_QUEST_LOG+123
- PartyMember, // PLAYER_QUEST_LOG+124
- PartyMember, // PLAYER_QUEST_LOG+125
- PartyMember, // PLAYER_QUEST_LOG+126
- PartyMember, // PLAYER_QUEST_LOG+127
- PartyMember, // PLAYER_QUEST_LOG+128
- PartyMember, // PLAYER_QUEST_LOG+129
- PartyMember, // PLAYER_QUEST_LOG+130
- PartyMember, // PLAYER_QUEST_LOG+131
- PartyMember, // PLAYER_QUEST_LOG+132
- PartyMember, // PLAYER_QUEST_LOG+133
- PartyMember, // PLAYER_QUEST_LOG+134
- PartyMember, // PLAYER_QUEST_LOG+135
- PartyMember, // PLAYER_QUEST_LOG+136
- PartyMember, // PLAYER_QUEST_LOG+137
- PartyMember, // PLAYER_QUEST_LOG+138
- PartyMember, // PLAYER_QUEST_LOG+139
- PartyMember, // PLAYER_QUEST_LOG+140
- PartyMember, // PLAYER_QUEST_LOG+141
- PartyMember, // PLAYER_QUEST_LOG+142
- PartyMember, // PLAYER_QUEST_LOG+143
- PartyMember, // PLAYER_QUEST_LOG+144
- PartyMember, // PLAYER_QUEST_LOG+145
- PartyMember, // PLAYER_QUEST_LOG+146
- PartyMember, // PLAYER_QUEST_LOG+147
- PartyMember, // PLAYER_QUEST_LOG+148
- PartyMember, // PLAYER_QUEST_LOG+149
- PartyMember, // PLAYER_QUEST_LOG+150
- PartyMember, // PLAYER_QUEST_LOG+151
- PartyMember, // PLAYER_QUEST_LOG+152
- PartyMember, // PLAYER_QUEST_LOG+153
- PartyMember, // PLAYER_QUEST_LOG+154
- PartyMember, // PLAYER_QUEST_LOG+155
- PartyMember, // PLAYER_QUEST_LOG+156
- PartyMember, // PLAYER_QUEST_LOG+157
- PartyMember, // PLAYER_QUEST_LOG+158
- PartyMember, // PLAYER_QUEST_LOG+159
- PartyMember, // PLAYER_QUEST_LOG+160
- PartyMember, // PLAYER_QUEST_LOG+161
- PartyMember, // PLAYER_QUEST_LOG+162
- PartyMember, // PLAYER_QUEST_LOG+163
- PartyMember, // PLAYER_QUEST_LOG+164
- PartyMember, // PLAYER_QUEST_LOG+165
- PartyMember, // PLAYER_QUEST_LOG+166
- PartyMember, // PLAYER_QUEST_LOG+167
- PartyMember, // PLAYER_QUEST_LOG+168
- PartyMember, // PLAYER_QUEST_LOG+169
- PartyMember, // PLAYER_QUEST_LOG+170
- PartyMember, // PLAYER_QUEST_LOG+171
- PartyMember, // PLAYER_QUEST_LOG+172
- PartyMember, // PLAYER_QUEST_LOG+173
- PartyMember, // PLAYER_QUEST_LOG+174
- PartyMember, // PLAYER_QUEST_LOG+175
- PartyMember, // PLAYER_QUEST_LOG+176
- PartyMember, // PLAYER_QUEST_LOG+177
- PartyMember, // PLAYER_QUEST_LOG+178
- PartyMember, // PLAYER_QUEST_LOG+179
- PartyMember, // PLAYER_QUEST_LOG+180
- PartyMember, // PLAYER_QUEST_LOG+181
- PartyMember, // PLAYER_QUEST_LOG+182
- PartyMember, // PLAYER_QUEST_LOG+183
- PartyMember, // PLAYER_QUEST_LOG+184
- PartyMember, // PLAYER_QUEST_LOG+185
- PartyMember, // PLAYER_QUEST_LOG+186
- PartyMember, // PLAYER_QUEST_LOG+187
- PartyMember, // PLAYER_QUEST_LOG+188
- PartyMember, // PLAYER_QUEST_LOG+189
- PartyMember, // PLAYER_QUEST_LOG+190
- PartyMember, // PLAYER_QUEST_LOG+191
- PartyMember, // PLAYER_QUEST_LOG+192
- PartyMember, // PLAYER_QUEST_LOG+193
- PartyMember, // PLAYER_QUEST_LOG+194
- PartyMember, // PLAYER_QUEST_LOG+195
- PartyMember, // PLAYER_QUEST_LOG+196
- PartyMember, // PLAYER_QUEST_LOG+197
- PartyMember, // PLAYER_QUEST_LOG+198
- PartyMember, // PLAYER_QUEST_LOG+199
- PartyMember, // PLAYER_QUEST_LOG+200
- PartyMember, // PLAYER_QUEST_LOG+201
- PartyMember, // PLAYER_QUEST_LOG+202
- PartyMember, // PLAYER_QUEST_LOG+203
- PartyMember, // PLAYER_QUEST_LOG+204
- PartyMember, // PLAYER_QUEST_LOG+205
- PartyMember, // PLAYER_QUEST_LOG+206
- PartyMember, // PLAYER_QUEST_LOG+207
- PartyMember, // PLAYER_QUEST_LOG+208
- PartyMember, // PLAYER_QUEST_LOG+209
- PartyMember, // PLAYER_QUEST_LOG+210
- PartyMember, // PLAYER_QUEST_LOG+211
- PartyMember, // PLAYER_QUEST_LOG+212
- PartyMember, // PLAYER_QUEST_LOG+213
- PartyMember, // PLAYER_QUEST_LOG+214
- PartyMember, // PLAYER_QUEST_LOG+215
- PartyMember, // PLAYER_QUEST_LOG+216
- PartyMember, // PLAYER_QUEST_LOG+217
- PartyMember, // PLAYER_QUEST_LOG+218
- PartyMember, // PLAYER_QUEST_LOG+219
- PartyMember, // PLAYER_QUEST_LOG+220
- PartyMember, // PLAYER_QUEST_LOG+221
- PartyMember, // PLAYER_QUEST_LOG+222
- PartyMember, // PLAYER_QUEST_LOG+223
- PartyMember, // PLAYER_QUEST_LOG+224
- PartyMember, // PLAYER_QUEST_LOG+225
- PartyMember, // PLAYER_QUEST_LOG+226
- PartyMember, // PLAYER_QUEST_LOG+227
- PartyMember, // PLAYER_QUEST_LOG+228
- PartyMember, // PLAYER_QUEST_LOG+229
- PartyMember, // PLAYER_QUEST_LOG+230
- PartyMember, // PLAYER_QUEST_LOG+231
- PartyMember, // PLAYER_QUEST_LOG+232
- PartyMember, // PLAYER_QUEST_LOG+233
- PartyMember, // PLAYER_QUEST_LOG+234
- PartyMember, // PLAYER_QUEST_LOG+235
- PartyMember, // PLAYER_QUEST_LOG+236
- PartyMember, // PLAYER_QUEST_LOG+237
- PartyMember, // PLAYER_QUEST_LOG+238
- PartyMember, // PLAYER_QUEST_LOG+239
- PartyMember, // PLAYER_QUEST_LOG+240
- PartyMember, // PLAYER_QUEST_LOG+241
- PartyMember, // PLAYER_QUEST_LOG+242
- PartyMember, // PLAYER_QUEST_LOG+243
- PartyMember, // PLAYER_QUEST_LOG+244
- PartyMember, // PLAYER_QUEST_LOG+245
- PartyMember, // PLAYER_QUEST_LOG+246
- PartyMember, // PLAYER_QUEST_LOG+247
- PartyMember, // PLAYER_QUEST_LOG+248
- PartyMember, // PLAYER_QUEST_LOG+249
- PartyMember, // PLAYER_QUEST_LOG+250
- PartyMember, // PLAYER_QUEST_LOG+251
- PartyMember, // PLAYER_QUEST_LOG+252
- PartyMember, // PLAYER_QUEST_LOG+253
- PartyMember, // PLAYER_QUEST_LOG+254
- PartyMember, // PLAYER_QUEST_LOG+255
- PartyMember, // PLAYER_QUEST_LOG+256
- PartyMember, // PLAYER_QUEST_LOG+257
- PartyMember, // PLAYER_QUEST_LOG+258
- PartyMember, // PLAYER_QUEST_LOG+259
- PartyMember, // PLAYER_QUEST_LOG+260
- PartyMember, // PLAYER_QUEST_LOG+261
- PartyMember, // PLAYER_QUEST_LOG+262
- PartyMember, // PLAYER_QUEST_LOG+263
- PartyMember, // PLAYER_QUEST_LOG+264
- PartyMember, // PLAYER_QUEST_LOG+265
- PartyMember, // PLAYER_QUEST_LOG+266
- PartyMember, // PLAYER_QUEST_LOG+267
- PartyMember, // PLAYER_QUEST_LOG+268
- PartyMember, // PLAYER_QUEST_LOG+269
- PartyMember, // PLAYER_QUEST_LOG+270
- PartyMember, // PLAYER_QUEST_LOG+271
- PartyMember, // PLAYER_QUEST_LOG+272
- PartyMember, // PLAYER_QUEST_LOG+273
- PartyMember, // PLAYER_QUEST_LOG+274
- PartyMember, // PLAYER_QUEST_LOG+275
- PartyMember, // PLAYER_QUEST_LOG+276
- PartyMember, // PLAYER_QUEST_LOG+277
- PartyMember, // PLAYER_QUEST_LOG+278
- PartyMember, // PLAYER_QUEST_LOG+279
- PartyMember, // PLAYER_QUEST_LOG+280
- PartyMember, // PLAYER_QUEST_LOG+281
- PartyMember, // PLAYER_QUEST_LOG+282
- PartyMember, // PLAYER_QUEST_LOG+283
- PartyMember, // PLAYER_QUEST_LOG+284
- PartyMember, // PLAYER_QUEST_LOG+285
- PartyMember, // PLAYER_QUEST_LOG+286
- PartyMember, // PLAYER_QUEST_LOG+287
- PartyMember, // PLAYER_QUEST_LOG+288
- PartyMember, // PLAYER_QUEST_LOG+289
- PartyMember, // PLAYER_QUEST_LOG+290
- PartyMember, // PLAYER_QUEST_LOG+291
- PartyMember, // PLAYER_QUEST_LOG+292
- PartyMember, // PLAYER_QUEST_LOG+293
- PartyMember, // PLAYER_QUEST_LOG+294
- PartyMember, // PLAYER_QUEST_LOG+295
- PartyMember, // PLAYER_QUEST_LOG+296
- PartyMember, // PLAYER_QUEST_LOG+297
- PartyMember, // PLAYER_QUEST_LOG+298
- PartyMember, // PLAYER_QUEST_LOG+299
- PartyMember, // PLAYER_QUEST_LOG+300
- PartyMember, // PLAYER_QUEST_LOG+301
- PartyMember, // PLAYER_QUEST_LOG+302
- PartyMember, // PLAYER_QUEST_LOG+303
- PartyMember, // PLAYER_QUEST_LOG+304
- PartyMember, // PLAYER_QUEST_LOG+305
- PartyMember, // PLAYER_QUEST_LOG+306
- PartyMember, // PLAYER_QUEST_LOG+307
- PartyMember, // PLAYER_QUEST_LOG+308
- PartyMember, // PLAYER_QUEST_LOG+309
- PartyMember, // PLAYER_QUEST_LOG+310
- PartyMember, // PLAYER_QUEST_LOG+311
- PartyMember, // PLAYER_QUEST_LOG+312
- PartyMember, // PLAYER_QUEST_LOG+313
- PartyMember, // PLAYER_QUEST_LOG+314
- PartyMember, // PLAYER_QUEST_LOG+315
- PartyMember, // PLAYER_QUEST_LOG+316
- PartyMember, // PLAYER_QUEST_LOG+317
- PartyMember, // PLAYER_QUEST_LOG+318
- PartyMember, // PLAYER_QUEST_LOG+319
- PartyMember, // PLAYER_QUEST_LOG+320
- PartyMember, // PLAYER_QUEST_LOG+321
- PartyMember, // PLAYER_QUEST_LOG+322
- PartyMember, // PLAYER_QUEST_LOG+323
- PartyMember, // PLAYER_QUEST_LOG+324
- PartyMember, // PLAYER_QUEST_LOG+325
- PartyMember, // PLAYER_QUEST_LOG+326
- PartyMember, // PLAYER_QUEST_LOG+327
- PartyMember, // PLAYER_QUEST_LOG+328
- PartyMember, // PLAYER_QUEST_LOG+329
- PartyMember, // PLAYER_QUEST_LOG+330
- PartyMember, // PLAYER_QUEST_LOG+331
- PartyMember, // PLAYER_QUEST_LOG+332
- PartyMember, // PLAYER_QUEST_LOG+333
- PartyMember, // PLAYER_QUEST_LOG+334
- PartyMember, // PLAYER_QUEST_LOG+335
- PartyMember, // PLAYER_QUEST_LOG+336
- PartyMember, // PLAYER_QUEST_LOG+337
- PartyMember, // PLAYER_QUEST_LOG+338
- PartyMember, // PLAYER_QUEST_LOG+339
- PartyMember, // PLAYER_QUEST_LOG+340
- PartyMember, // PLAYER_QUEST_LOG+341
- PartyMember, // PLAYER_QUEST_LOG+342
- PartyMember, // PLAYER_QUEST_LOG+343
- PartyMember, // PLAYER_QUEST_LOG+344
- PartyMember, // PLAYER_QUEST_LOG+345
- PartyMember, // PLAYER_QUEST_LOG+346
- PartyMember, // PLAYER_QUEST_LOG+347
- PartyMember, // PLAYER_QUEST_LOG+348
- PartyMember, // PLAYER_QUEST_LOG+349
- PartyMember, // PLAYER_QUEST_LOG+350
- PartyMember, // PLAYER_QUEST_LOG+351
- PartyMember, // PLAYER_QUEST_LOG+352
- PartyMember, // PLAYER_QUEST_LOG+353
- PartyMember, // PLAYER_QUEST_LOG+354
- PartyMember, // PLAYER_QUEST_LOG+355
- PartyMember, // PLAYER_QUEST_LOG+356
- PartyMember, // PLAYER_QUEST_LOG+357
- PartyMember, // PLAYER_QUEST_LOG+358
- PartyMember, // PLAYER_QUEST_LOG+359
- PartyMember, // PLAYER_QUEST_LOG+360
- PartyMember, // PLAYER_QUEST_LOG+361
- PartyMember, // PLAYER_QUEST_LOG+362
- PartyMember, // PLAYER_QUEST_LOG+363
- PartyMember, // PLAYER_QUEST_LOG+364
- PartyMember, // PLAYER_QUEST_LOG+365
- PartyMember, // PLAYER_QUEST_LOG+366
- PartyMember, // PLAYER_QUEST_LOG+367
- PartyMember, // PLAYER_QUEST_LOG+368
- PartyMember, // PLAYER_QUEST_LOG+369
- PartyMember, // PLAYER_QUEST_LOG+370
- PartyMember, // PLAYER_QUEST_LOG+371
- PartyMember, // PLAYER_QUEST_LOG+372
- PartyMember, // PLAYER_QUEST_LOG+373
- PartyMember, // PLAYER_QUEST_LOG+374
- PartyMember, // PLAYER_QUEST_LOG+375
- PartyMember, // PLAYER_QUEST_LOG+376
- PartyMember, // PLAYER_QUEST_LOG+377
- PartyMember, // PLAYER_QUEST_LOG+378
- PartyMember, // PLAYER_QUEST_LOG+379
- PartyMember, // PLAYER_QUEST_LOG+380
- PartyMember, // PLAYER_QUEST_LOG+381
- PartyMember, // PLAYER_QUEST_LOG+382
- PartyMember, // PLAYER_QUEST_LOG+383
- PartyMember, // PLAYER_QUEST_LOG+384
- PartyMember, // PLAYER_QUEST_LOG+385
- PartyMember, // PLAYER_QUEST_LOG+386
- PartyMember, // PLAYER_QUEST_LOG+387
- PartyMember, // PLAYER_QUEST_LOG+388
- PartyMember, // PLAYER_QUEST_LOG+389
- PartyMember, // PLAYER_QUEST_LOG+390
- PartyMember, // PLAYER_QUEST_LOG+391
- PartyMember, // PLAYER_QUEST_LOG+392
- PartyMember, // PLAYER_QUEST_LOG+393
- PartyMember, // PLAYER_QUEST_LOG+394
- PartyMember, // PLAYER_QUEST_LOG+395
- PartyMember, // PLAYER_QUEST_LOG+396
- PartyMember, // PLAYER_QUEST_LOG+397
- PartyMember, // PLAYER_QUEST_LOG+398
- PartyMember, // PLAYER_QUEST_LOG+399
- PartyMember, // PLAYER_QUEST_LOG+400
- PartyMember, // PLAYER_QUEST_LOG+401
- PartyMember, // PLAYER_QUEST_LOG+402
- PartyMember, // PLAYER_QUEST_LOG+403
- PartyMember, // PLAYER_QUEST_LOG+404
- PartyMember, // PLAYER_QUEST_LOG+405
- PartyMember, // PLAYER_QUEST_LOG+406
- PartyMember, // PLAYER_QUEST_LOG+407
- PartyMember, // PLAYER_QUEST_LOG+408
- PartyMember, // PLAYER_QUEST_LOG+409
- PartyMember, // PLAYER_QUEST_LOG+410
- PartyMember, // PLAYER_QUEST_LOG+411
- PartyMember, // PLAYER_QUEST_LOG+412
- PartyMember, // PLAYER_QUEST_LOG+413
- PartyMember, // PLAYER_QUEST_LOG+414
- PartyMember, // PLAYER_QUEST_LOG+415
- PartyMember, // PLAYER_QUEST_LOG+416
- PartyMember, // PLAYER_QUEST_LOG+417
- PartyMember, // PLAYER_QUEST_LOG+418
- PartyMember, // PLAYER_QUEST_LOG+419
- PartyMember, // PLAYER_QUEST_LOG+420
- PartyMember, // PLAYER_QUEST_LOG+421
- PartyMember, // PLAYER_QUEST_LOG+422
- PartyMember, // PLAYER_QUEST_LOG+423
- PartyMember, // PLAYER_QUEST_LOG+424
- PartyMember, // PLAYER_QUEST_LOG+425
- PartyMember, // PLAYER_QUEST_LOG+426
- PartyMember, // PLAYER_QUEST_LOG+427
- PartyMember, // PLAYER_QUEST_LOG+428
- PartyMember, // PLAYER_QUEST_LOG+429
- PartyMember, // PLAYER_QUEST_LOG+430
- PartyMember, // PLAYER_QUEST_LOG+431
- PartyMember, // PLAYER_QUEST_LOG+432
- PartyMember, // PLAYER_QUEST_LOG+433
- PartyMember, // PLAYER_QUEST_LOG+434
- PartyMember, // PLAYER_QUEST_LOG+435
- PartyMember, // PLAYER_QUEST_LOG+436
- PartyMember, // PLAYER_QUEST_LOG+437
- PartyMember, // PLAYER_QUEST_LOG+438
- PartyMember, // PLAYER_QUEST_LOG+439
- PartyMember, // PLAYER_QUEST_LOG+440
- PartyMember, // PLAYER_QUEST_LOG+441
- PartyMember, // PLAYER_QUEST_LOG+442
- PartyMember, // PLAYER_QUEST_LOG+443
- PartyMember, // PLAYER_QUEST_LOG+444
- PartyMember, // PLAYER_QUEST_LOG+445
- PartyMember, // PLAYER_QUEST_LOG+446
- PartyMember, // PLAYER_QUEST_LOG+447
- PartyMember, // PLAYER_QUEST_LOG+448
- PartyMember, // PLAYER_QUEST_LOG+449
- PartyMember, // PLAYER_QUEST_LOG+450
- PartyMember, // PLAYER_QUEST_LOG+451
- PartyMember, // PLAYER_QUEST_LOG+452
- PartyMember, // PLAYER_QUEST_LOG+453
- PartyMember, // PLAYER_QUEST_LOG+454
- PartyMember, // PLAYER_QUEST_LOG+455
- PartyMember, // PLAYER_QUEST_LOG+456
- PartyMember, // PLAYER_QUEST_LOG+457
- PartyMember, // PLAYER_QUEST_LOG+458
- PartyMember, // PLAYER_QUEST_LOG+459
- PartyMember, // PLAYER_QUEST_LOG+460
- PartyMember, // PLAYER_QUEST_LOG+461
- PartyMember, // PLAYER_QUEST_LOG+462
- PartyMember, // PLAYER_QUEST_LOG+463
- PartyMember, // PLAYER_QUEST_LOG+464
- PartyMember, // PLAYER_QUEST_LOG+465
- PartyMember, // PLAYER_QUEST_LOG+466
- PartyMember, // PLAYER_QUEST_LOG+467
- PartyMember, // PLAYER_QUEST_LOG+468
- PartyMember, // PLAYER_QUEST_LOG+469
- PartyMember, // PLAYER_QUEST_LOG+470
- PartyMember, // PLAYER_QUEST_LOG+471
- PartyMember, // PLAYER_QUEST_LOG+472
- PartyMember, // PLAYER_QUEST_LOG+473
- PartyMember, // PLAYER_QUEST_LOG+474
- PartyMember, // PLAYER_QUEST_LOG+475
- PartyMember, // PLAYER_QUEST_LOG+476
- PartyMember, // PLAYER_QUEST_LOG+477
- PartyMember, // PLAYER_QUEST_LOG+478
- PartyMember, // PLAYER_QUEST_LOG+479
- PartyMember, // PLAYER_QUEST_LOG+480
- PartyMember, // PLAYER_QUEST_LOG+481
- PartyMember, // PLAYER_QUEST_LOG+482
- PartyMember, // PLAYER_QUEST_LOG+483
- PartyMember, // PLAYER_QUEST_LOG+484
- PartyMember, // PLAYER_QUEST_LOG+485
- PartyMember, // PLAYER_QUEST_LOG+486
- PartyMember, // PLAYER_QUEST_LOG+487
- PartyMember, // PLAYER_QUEST_LOG+488
- PartyMember, // PLAYER_QUEST_LOG+489
- PartyMember, // PLAYER_QUEST_LOG+490
- PartyMember, // PLAYER_QUEST_LOG+491
- PartyMember, // PLAYER_QUEST_LOG+492
- PartyMember, // PLAYER_QUEST_LOG+493
- PartyMember, // PLAYER_QUEST_LOG+494
- PartyMember, // PLAYER_QUEST_LOG+495
- PartyMember, // PLAYER_QUEST_LOG+496
- PartyMember, // PLAYER_QUEST_LOG+497
- PartyMember, // PLAYER_QUEST_LOG+498
- PartyMember, // PLAYER_QUEST_LOG+499
- PartyMember, // PLAYER_QUEST_LOG+500
- PartyMember, // PLAYER_QUEST_LOG+501
- PartyMember, // PLAYER_QUEST_LOG+502
- PartyMember, // PLAYER_QUEST_LOG+503
- PartyMember, // PLAYER_QUEST_LOG+504
- PartyMember, // PLAYER_QUEST_LOG+505
- PartyMember, // PLAYER_QUEST_LOG+506
- PartyMember, // PLAYER_QUEST_LOG+507
- PartyMember, // PLAYER_QUEST_LOG+508
- PartyMember, // PLAYER_QUEST_LOG+509
- PartyMember, // PLAYER_QUEST_LOG+510
- PartyMember, // PLAYER_QUEST_LOG+511
- PartyMember, // PLAYER_QUEST_LOG+512
- PartyMember, // PLAYER_QUEST_LOG+513
- PartyMember, // PLAYER_QUEST_LOG+514
- PartyMember, // PLAYER_QUEST_LOG+515
- PartyMember, // PLAYER_QUEST_LOG+516
- PartyMember, // PLAYER_QUEST_LOG+517
- PartyMember, // PLAYER_QUEST_LOG+518
- PartyMember, // PLAYER_QUEST_LOG+519
- PartyMember, // PLAYER_QUEST_LOG+520
- PartyMember, // PLAYER_QUEST_LOG+521
- PartyMember, // PLAYER_QUEST_LOG+522
- PartyMember, // PLAYER_QUEST_LOG+523
- PartyMember, // PLAYER_QUEST_LOG+524
- PartyMember, // PLAYER_QUEST_LOG+525
- PartyMember, // PLAYER_QUEST_LOG+526
- PartyMember, // PLAYER_QUEST_LOG+527
- PartyMember, // PLAYER_QUEST_LOG+528
- PartyMember, // PLAYER_QUEST_LOG+529
- PartyMember, // PLAYER_QUEST_LOG+530
- PartyMember, // PLAYER_QUEST_LOG+531
- PartyMember, // PLAYER_QUEST_LOG+532
- PartyMember, // PLAYER_QUEST_LOG+533
- PartyMember, // PLAYER_QUEST_LOG+534
- PartyMember, // PLAYER_QUEST_LOG+535
- PartyMember, // PLAYER_QUEST_LOG+536
- PartyMember, // PLAYER_QUEST_LOG+537
- PartyMember, // PLAYER_QUEST_LOG+538
- PartyMember, // PLAYER_QUEST_LOG+539
- PartyMember, // PLAYER_QUEST_LOG+540
- PartyMember, // PLAYER_QUEST_LOG+541
- PartyMember, // PLAYER_QUEST_LOG+542
- PartyMember, // PLAYER_QUEST_LOG+543
- PartyMember, // PLAYER_QUEST_LOG+544
- PartyMember, // PLAYER_QUEST_LOG+545
- PartyMember, // PLAYER_QUEST_LOG+546
- PartyMember, // PLAYER_QUEST_LOG+547
- PartyMember, // PLAYER_QUEST_LOG+548
- PartyMember, // PLAYER_QUEST_LOG+549
- PartyMember, // PLAYER_QUEST_LOG+550
- PartyMember, // PLAYER_QUEST_LOG+551
- PartyMember, // PLAYER_QUEST_LOG+552
- PartyMember, // PLAYER_QUEST_LOG+553
- PartyMember, // PLAYER_QUEST_LOG+554
- PartyMember, // PLAYER_QUEST_LOG+555
- PartyMember, // PLAYER_QUEST_LOG+556
- PartyMember, // PLAYER_QUEST_LOG+557
- PartyMember, // PLAYER_QUEST_LOG+558
- PartyMember, // PLAYER_QUEST_LOG+559
- PartyMember, // PLAYER_QUEST_LOG+560
- PartyMember, // PLAYER_QUEST_LOG+561
- PartyMember, // PLAYER_QUEST_LOG+562
- PartyMember, // PLAYER_QUEST_LOG+563
- PartyMember, // PLAYER_QUEST_LOG+564
- PartyMember, // PLAYER_QUEST_LOG+565
- PartyMember, // PLAYER_QUEST_LOG+566
- PartyMember, // PLAYER_QUEST_LOG+567
- PartyMember, // PLAYER_QUEST_LOG+568
- PartyMember, // PLAYER_QUEST_LOG+569
- PartyMember, // PLAYER_QUEST_LOG+570
- PartyMember, // PLAYER_QUEST_LOG+571
- PartyMember, // PLAYER_QUEST_LOG+572
- PartyMember, // PLAYER_QUEST_LOG+573
- PartyMember, // PLAYER_QUEST_LOG+574
- PartyMember, // PLAYER_QUEST_LOG+575
- PartyMember, // PLAYER_QUEST_LOG+576
- PartyMember, // PLAYER_QUEST_LOG+577
- PartyMember, // PLAYER_QUEST_LOG+578
- PartyMember, // PLAYER_QUEST_LOG+579
- PartyMember, // PLAYER_QUEST_LOG+580
- PartyMember, // PLAYER_QUEST_LOG+581
- PartyMember, // PLAYER_QUEST_LOG+582
- PartyMember, // PLAYER_QUEST_LOG+583
- PartyMember, // PLAYER_QUEST_LOG+584
- PartyMember, // PLAYER_QUEST_LOG+585
- PartyMember, // PLAYER_QUEST_LOG+586
- PartyMember, // PLAYER_QUEST_LOG+587
- PartyMember, // PLAYER_QUEST_LOG+588
- PartyMember, // PLAYER_QUEST_LOG+589
- PartyMember, // PLAYER_QUEST_LOG+590
- PartyMember, // PLAYER_QUEST_LOG+591
- PartyMember, // PLAYER_QUEST_LOG+592
- PartyMember, // PLAYER_QUEST_LOG+593
- PartyMember, // PLAYER_QUEST_LOG+594
- PartyMember, // PLAYER_QUEST_LOG+595
- PartyMember, // PLAYER_QUEST_LOG+596
- PartyMember, // PLAYER_QUEST_LOG+597
- PartyMember, // PLAYER_QUEST_LOG+598
- PartyMember, // PLAYER_QUEST_LOG+599
- PartyMember, // PLAYER_QUEST_LOG+600
- PartyMember, // PLAYER_QUEST_LOG+601
- PartyMember, // PLAYER_QUEST_LOG+602
- PartyMember, // PLAYER_QUEST_LOG+603
- PartyMember, // PLAYER_QUEST_LOG+604
- PartyMember, // PLAYER_QUEST_LOG+605
- PartyMember, // PLAYER_QUEST_LOG+606
- PartyMember, // PLAYER_QUEST_LOG+607
- PartyMember, // PLAYER_QUEST_LOG+608
- PartyMember, // PLAYER_QUEST_LOG+609
- PartyMember, // PLAYER_QUEST_LOG+610
- PartyMember, // PLAYER_QUEST_LOG+611
- PartyMember, // PLAYER_QUEST_LOG+612
- PartyMember, // PLAYER_QUEST_LOG+613
- PartyMember, // PLAYER_QUEST_LOG+614
- PartyMember, // PLAYER_QUEST_LOG+615
- PartyMember, // PLAYER_QUEST_LOG+616
- PartyMember, // PLAYER_QUEST_LOG+617
- PartyMember, // PLAYER_QUEST_LOG+618
- PartyMember, // PLAYER_QUEST_LOG+619
- PartyMember, // PLAYER_QUEST_LOG+620
- PartyMember, // PLAYER_QUEST_LOG+621
- PartyMember, // PLAYER_QUEST_LOG+622
- PartyMember, // PLAYER_QUEST_LOG+623
- PartyMember, // PLAYER_QUEST_LOG+624
- PartyMember, // PLAYER_QUEST_LOG+625
- PartyMember, // PLAYER_QUEST_LOG+626
- PartyMember, // PLAYER_QUEST_LOG+627
- PartyMember, // PLAYER_QUEST_LOG+628
- PartyMember, // PLAYER_QUEST_LOG+629
- PartyMember, // PLAYER_QUEST_LOG+630
- PartyMember, // PLAYER_QUEST_LOG+631
- PartyMember, // PLAYER_QUEST_LOG+632
- PartyMember, // PLAYER_QUEST_LOG+633
- PartyMember, // PLAYER_QUEST_LOG+634
- PartyMember, // PLAYER_QUEST_LOG+635
- PartyMember, // PLAYER_QUEST_LOG+636
- PartyMember, // PLAYER_QUEST_LOG+637
- PartyMember, // PLAYER_QUEST_LOG+638
- PartyMember, // PLAYER_QUEST_LOG+639
- PartyMember, // PLAYER_QUEST_LOG+640
- PartyMember, // PLAYER_QUEST_LOG+641
- PartyMember, // PLAYER_QUEST_LOG+642
- PartyMember, // PLAYER_QUEST_LOG+643
- PartyMember, // PLAYER_QUEST_LOG+644
- PartyMember, // PLAYER_QUEST_LOG+645
- PartyMember, // PLAYER_QUEST_LOG+646
- PartyMember, // PLAYER_QUEST_LOG+647
- PartyMember, // PLAYER_QUEST_LOG+648
- PartyMember, // PLAYER_QUEST_LOG+649
- PartyMember, // PLAYER_QUEST_LOG+650
- PartyMember, // PLAYER_QUEST_LOG+651
- PartyMember, // PLAYER_QUEST_LOG+652
- PartyMember, // PLAYER_QUEST_LOG+653
- PartyMember, // PLAYER_QUEST_LOG+654
- PartyMember, // PLAYER_QUEST_LOG+655
- PartyMember, // PLAYER_QUEST_LOG+656
- PartyMember, // PLAYER_QUEST_LOG+657
- PartyMember, // PLAYER_QUEST_LOG+658
- PartyMember, // PLAYER_QUEST_LOG+659
- PartyMember, // PLAYER_QUEST_LOG+660
- PartyMember, // PLAYER_QUEST_LOG+661
- PartyMember, // PLAYER_QUEST_LOG+662
- PartyMember, // PLAYER_QUEST_LOG+663
- PartyMember, // PLAYER_QUEST_LOG+664
- PartyMember, // PLAYER_QUEST_LOG+665
- PartyMember, // PLAYER_QUEST_LOG+666
- PartyMember, // PLAYER_QUEST_LOG+667
- PartyMember, // PLAYER_QUEST_LOG+668
- PartyMember, // PLAYER_QUEST_LOG+669
- PartyMember, // PLAYER_QUEST_LOG+670
- PartyMember, // PLAYER_QUEST_LOG+671
- PartyMember, // PLAYER_QUEST_LOG+672
- PartyMember, // PLAYER_QUEST_LOG+673
- PartyMember, // PLAYER_QUEST_LOG+674
- PartyMember, // PLAYER_QUEST_LOG+675
- PartyMember, // PLAYER_QUEST_LOG+676
- PartyMember, // PLAYER_QUEST_LOG+677
- PartyMember, // PLAYER_QUEST_LOG+678
- PartyMember, // PLAYER_QUEST_LOG+679
- PartyMember, // PLAYER_QUEST_LOG+680
- PartyMember, // PLAYER_QUEST_LOG+681
- PartyMember, // PLAYER_QUEST_LOG+682
- PartyMember, // PLAYER_QUEST_LOG+683
- PartyMember, // PLAYER_QUEST_LOG+684
- PartyMember, // PLAYER_QUEST_LOG+685
- PartyMember, // PLAYER_QUEST_LOG+686
- PartyMember, // PLAYER_QUEST_LOG+687
- PartyMember, // PLAYER_QUEST_LOG+688
- PartyMember, // PLAYER_QUEST_LOG+689
- PartyMember, // PLAYER_QUEST_LOG+690
- PartyMember, // PLAYER_QUEST_LOG+691
- PartyMember, // PLAYER_QUEST_LOG+692
- PartyMember, // PLAYER_QUEST_LOG+693
- PartyMember, // PLAYER_QUEST_LOG+694
- PartyMember, // PLAYER_QUEST_LOG+695
- PartyMember, // PLAYER_QUEST_LOG+696
- PartyMember, // PLAYER_QUEST_LOG+697
- PartyMember, // PLAYER_QUEST_LOG+698
- PartyMember, // PLAYER_QUEST_LOG+699
- PartyMember, // PLAYER_QUEST_LOG+700
- PartyMember, // PLAYER_QUEST_LOG+701
- PartyMember, // PLAYER_QUEST_LOG+702
- PartyMember, // PLAYER_QUEST_LOG+703
- PartyMember, // PLAYER_QUEST_LOG+704
- PartyMember, // PLAYER_QUEST_LOG+705
- PartyMember, // PLAYER_QUEST_LOG+706
- PartyMember, // PLAYER_QUEST_LOG+707
- PartyMember, // PLAYER_QUEST_LOG+708
- PartyMember, // PLAYER_QUEST_LOG+709
- PartyMember, // PLAYER_QUEST_LOG+710
- PartyMember, // PLAYER_QUEST_LOG+711
- PartyMember, // PLAYER_QUEST_LOG+712
- PartyMember, // PLAYER_QUEST_LOG+713
- PartyMember, // PLAYER_QUEST_LOG+714
- PartyMember, // PLAYER_QUEST_LOG+715
- PartyMember, // PLAYER_QUEST_LOG+716
- PartyMember, // PLAYER_QUEST_LOG+717
- PartyMember, // PLAYER_QUEST_LOG+718
- PartyMember, // PLAYER_QUEST_LOG+719
- PartyMember, // PLAYER_QUEST_LOG+720
- PartyMember, // PLAYER_QUEST_LOG+721
- PartyMember, // PLAYER_QUEST_LOG+722
- PartyMember, // PLAYER_QUEST_LOG+723
- PartyMember, // PLAYER_QUEST_LOG+724
- PartyMember, // PLAYER_QUEST_LOG+725
- PartyMember, // PLAYER_QUEST_LOG+726
- PartyMember, // PLAYER_QUEST_LOG+727
- PartyMember, // PLAYER_QUEST_LOG+728
- PartyMember, // PLAYER_QUEST_LOG+729
- PartyMember, // PLAYER_QUEST_LOG+730
- PartyMember, // PLAYER_QUEST_LOG+731
- PartyMember, // PLAYER_QUEST_LOG+732
- PartyMember, // PLAYER_QUEST_LOG+733
- PartyMember, // PLAYER_QUEST_LOG+734
- PartyMember, // PLAYER_QUEST_LOG+735
- PartyMember, // PLAYER_QUEST_LOG+736
- PartyMember, // PLAYER_QUEST_LOG+737
- PartyMember, // PLAYER_QUEST_LOG+738
- PartyMember, // PLAYER_QUEST_LOG+739
- PartyMember, // PLAYER_QUEST_LOG+740
- PartyMember, // PLAYER_QUEST_LOG+741
- PartyMember, // PLAYER_QUEST_LOG+742
- PartyMember, // PLAYER_QUEST_LOG+743
- PartyMember, // PLAYER_QUEST_LOG+744
- PartyMember, // PLAYER_QUEST_LOG+745
- PartyMember, // PLAYER_QUEST_LOG+746
- PartyMember, // PLAYER_QUEST_LOG+747
- PartyMember, // PLAYER_QUEST_LOG+748
- PartyMember, // PLAYER_QUEST_LOG+749
- PartyMember, // PLAYER_QUEST_LOG+750
- PartyMember, // PLAYER_QUEST_LOG+751
- PartyMember, // PLAYER_QUEST_LOG+752
- PartyMember, // PLAYER_QUEST_LOG+753
- PartyMember, // PLAYER_QUEST_LOG+754
- PartyMember, // PLAYER_QUEST_LOG+755
- PartyMember, // PLAYER_QUEST_LOG+756
- PartyMember, // PLAYER_QUEST_LOG+757
- PartyMember, // PLAYER_QUEST_LOG+758
- PartyMember, // PLAYER_QUEST_LOG+759
- PartyMember, // PLAYER_QUEST_LOG+760
- PartyMember, // PLAYER_QUEST_LOG+761
- PartyMember, // PLAYER_QUEST_LOG+762
- PartyMember, // PLAYER_QUEST_LOG+763
- PartyMember, // PLAYER_QUEST_LOG+764
- PartyMember, // PLAYER_QUEST_LOG+765
- PartyMember, // PLAYER_QUEST_LOG+766
- PartyMember, // PLAYER_QUEST_LOG+767
- PartyMember, // PLAYER_QUEST_LOG+768
- PartyMember, // PLAYER_QUEST_LOG+769
- PartyMember, // PLAYER_QUEST_LOG+770
- PartyMember, // PLAYER_QUEST_LOG+771
- PartyMember, // PLAYER_QUEST_LOG+772
- PartyMember, // PLAYER_QUEST_LOG+773
- PartyMember, // PLAYER_QUEST_LOG+774
- PartyMember, // PLAYER_QUEST_LOG+775
- PartyMember, // PLAYER_QUEST_LOG+776
- PartyMember, // PLAYER_QUEST_LOG+777
- PartyMember, // PLAYER_QUEST_LOG+778
- PartyMember, // PLAYER_QUEST_LOG+779
- PartyMember, // PLAYER_QUEST_LOG+780
- PartyMember, // PLAYER_QUEST_LOG+781
- PartyMember, // PLAYER_QUEST_LOG+782
- PartyMember, // PLAYER_QUEST_LOG+783
- PartyMember, // PLAYER_QUEST_LOG+784
- PartyMember, // PLAYER_QUEST_LOG+785
- PartyMember, // PLAYER_QUEST_LOG+786
- PartyMember, // PLAYER_QUEST_LOG+787
- PartyMember, // PLAYER_QUEST_LOG+788
- PartyMember, // PLAYER_QUEST_LOG+789
- PartyMember, // PLAYER_QUEST_LOG+790
- PartyMember, // PLAYER_QUEST_LOG+791
- PartyMember, // PLAYER_QUEST_LOG+792
- PartyMember, // PLAYER_QUEST_LOG+793
- PartyMember, // PLAYER_QUEST_LOG+794
- PartyMember, // PLAYER_QUEST_LOG+795
- PartyMember, // PLAYER_QUEST_LOG+796
- PartyMember, // PLAYER_QUEST_LOG+797
- PartyMember, // PLAYER_QUEST_LOG+798
- PartyMember, // PLAYER_QUEST_LOG+799
- PartyMember, // PLAYER_QUEST_LOG+800
- PartyMember, // PLAYER_QUEST_LOG+801
- PartyMember, // PLAYER_QUEST_LOG+802
- PartyMember, // PLAYER_QUEST_LOG+803
- PartyMember, // PLAYER_QUEST_LOG+804
- PartyMember, // PLAYER_QUEST_LOG+805
- PartyMember, // PLAYER_QUEST_LOG+806
- PartyMember, // PLAYER_QUEST_LOG+807
- PartyMember, // PLAYER_QUEST_LOG+808
- PartyMember, // PLAYER_QUEST_LOG+809
- PartyMember, // PLAYER_QUEST_LOG+810
- PartyMember, // PLAYER_QUEST_LOG+811
- PartyMember, // PLAYER_QUEST_LOG+812
- PartyMember, // PLAYER_QUEST_LOG+813
- PartyMember, // PLAYER_QUEST_LOG+814
- PartyMember, // PLAYER_QUEST_LOG+815
- PartyMember, // PLAYER_QUEST_LOG+816
- PartyMember, // PLAYER_QUEST_LOG+817
- PartyMember, // PLAYER_QUEST_LOG+818
- PartyMember, // PLAYER_QUEST_LOG+819
- PartyMember, // PLAYER_QUEST_LOG+820
- PartyMember, // PLAYER_QUEST_LOG+821
- PartyMember, // PLAYER_QUEST_LOG+822
- PartyMember, // PLAYER_QUEST_LOG+823
- PartyMember, // PLAYER_QUEST_LOG+824
- PartyMember, // PLAYER_QUEST_LOG+825
- PartyMember, // PLAYER_QUEST_LOG+826
- PartyMember, // PLAYER_QUEST_LOG+827
- PartyMember, // PLAYER_QUEST_LOG+828
- PartyMember, // PLAYER_QUEST_LOG+829
- PartyMember, // PLAYER_QUEST_LOG+830
- PartyMember, // PLAYER_QUEST_LOG+831
- PartyMember, // PLAYER_QUEST_LOG+832
- PartyMember, // PLAYER_QUEST_LOG+833
- PartyMember, // PLAYER_QUEST_LOG+834
- PartyMember, // PLAYER_QUEST_LOG+835
- PartyMember, // PLAYER_QUEST_LOG+836
- PartyMember, // PLAYER_QUEST_LOG+837
- PartyMember, // PLAYER_QUEST_LOG+838
- PartyMember, // PLAYER_QUEST_LOG+839
- PartyMember, // PLAYER_QUEST_LOG+840
- PartyMember, // PLAYER_QUEST_LOG+841
- PartyMember, // PLAYER_QUEST_LOG+842
- PartyMember, // PLAYER_QUEST_LOG+843
- PartyMember, // PLAYER_QUEST_LOG+844
- PartyMember, // PLAYER_QUEST_LOG+845
- PartyMember, // PLAYER_QUEST_LOG+846
- PartyMember, // PLAYER_QUEST_LOG+847
- PartyMember, // PLAYER_QUEST_LOG+848
- PartyMember, // PLAYER_QUEST_LOG+849
- PartyMember, // PLAYER_QUEST_LOG+850
- PartyMember, // PLAYER_QUEST_LOG+851
- PartyMember, // PLAYER_QUEST_LOG+852
- PartyMember, // PLAYER_QUEST_LOG+853
- PartyMember, // PLAYER_QUEST_LOG+854
- PartyMember, // PLAYER_QUEST_LOG+855
- PartyMember, // PLAYER_QUEST_LOG+856
- PartyMember, // PLAYER_QUEST_LOG+857
- PartyMember, // PLAYER_QUEST_LOG+858
- PartyMember, // PLAYER_QUEST_LOG+859
- PartyMember, // PLAYER_QUEST_LOG+860
- PartyMember, // PLAYER_QUEST_LOG+861
- PartyMember, // PLAYER_QUEST_LOG+862
- PartyMember, // PLAYER_QUEST_LOG+863
- PartyMember, // PLAYER_QUEST_LOG+864
- PartyMember, // PLAYER_QUEST_LOG+865
- PartyMember, // PLAYER_QUEST_LOG+866
- PartyMember, // PLAYER_QUEST_LOG+867
- PartyMember, // PLAYER_QUEST_LOG+868
- PartyMember, // PLAYER_QUEST_LOG+869
- PartyMember, // PLAYER_QUEST_LOG+870
- PartyMember, // PLAYER_QUEST_LOG+871
- PartyMember, // PLAYER_QUEST_LOG+872
- PartyMember, // PLAYER_QUEST_LOG+873
- PartyMember, // PLAYER_QUEST_LOG+874
- PartyMember, // PLAYER_QUEST_LOG+875
- PartyMember, // PLAYER_QUEST_LOG+876
- PartyMember, // PLAYER_QUEST_LOG+877
- PartyMember, // PLAYER_QUEST_LOG+878
- PartyMember, // PLAYER_QUEST_LOG+879
- PartyMember, // PLAYER_QUEST_LOG+880
- PartyMember, // PLAYER_QUEST_LOG+881
- PartyMember, // PLAYER_QUEST_LOG+882
- PartyMember, // PLAYER_QUEST_LOG+883
- PartyMember, // PLAYER_QUEST_LOG+884
- PartyMember, // PLAYER_QUEST_LOG+885
- PartyMember, // PLAYER_QUEST_LOG+886
- PartyMember, // PLAYER_QUEST_LOG+887
- PartyMember, // PLAYER_QUEST_LOG+888
- PartyMember, // PLAYER_QUEST_LOG+889
- PartyMember, // PLAYER_QUEST_LOG+890
- PartyMember, // PLAYER_QUEST_LOG+891
- PartyMember, // PLAYER_QUEST_LOG+892
- PartyMember, // PLAYER_QUEST_LOG+893
- PartyMember, // PLAYER_QUEST_LOG+894
- PartyMember, // PLAYER_QUEST_LOG+895
- PartyMember, // PLAYER_QUEST_LOG+896
- PartyMember, // PLAYER_QUEST_LOG+897
- PartyMember, // PLAYER_QUEST_LOG+898
- PartyMember, // PLAYER_QUEST_LOG+899
- PartyMember, // PLAYER_QUEST_LOG+900
- PartyMember, // PLAYER_QUEST_LOG+901
- PartyMember, // PLAYER_QUEST_LOG+902
- PartyMember, // PLAYER_QUEST_LOG+903
- PartyMember, // PLAYER_QUEST_LOG+904
- PartyMember, // PLAYER_QUEST_LOG+905
- PartyMember, // PLAYER_QUEST_LOG+906
- PartyMember, // PLAYER_QUEST_LOG+907
- PartyMember, // PLAYER_QUEST_LOG+908
- PartyMember, // PLAYER_QUEST_LOG+909
- PartyMember, // PLAYER_QUEST_LOG+910
- PartyMember, // PLAYER_QUEST_LOG+911
- PartyMember, // PLAYER_QUEST_LOG+912
- PartyMember, // PLAYER_QUEST_LOG+913
- PartyMember, // PLAYER_QUEST_LOG+914
- PartyMember, // PLAYER_QUEST_LOG+915
- PartyMember, // PLAYER_QUEST_LOG+916
- PartyMember, // PLAYER_QUEST_LOG+917
- PartyMember, // PLAYER_QUEST_LOG+918
- PartyMember, // PLAYER_QUEST_LOG+919
- PartyMember, // PLAYER_QUEST_LOG+920
- PartyMember, // PLAYER_QUEST_LOG+921
- PartyMember, // PLAYER_QUEST_LOG+922
- PartyMember, // PLAYER_QUEST_LOG+923
- PartyMember, // PLAYER_QUEST_LOG+924
- PartyMember, // PLAYER_QUEST_LOG+925
- PartyMember, // PLAYER_QUEST_LOG+926
- PartyMember, // PLAYER_QUEST_LOG+927
- PartyMember, // PLAYER_QUEST_LOG+928
- PartyMember, // PLAYER_QUEST_LOG+929
- PartyMember, // PLAYER_QUEST_LOG+930
- PartyMember, // PLAYER_QUEST_LOG+931
- PartyMember, // PLAYER_QUEST_LOG+932
- PartyMember, // PLAYER_QUEST_LOG+933
- PartyMember, // PLAYER_QUEST_LOG+934
- PartyMember, // PLAYER_QUEST_LOG+935
- PartyMember, // PLAYER_QUEST_LOG+936
- PartyMember, // PLAYER_QUEST_LOG+937
- PartyMember, // PLAYER_QUEST_LOG+938
- PartyMember, // PLAYER_QUEST_LOG+939
- PartyMember, // PLAYER_QUEST_LOG+940
- PartyMember, // PLAYER_QUEST_LOG+941
- PartyMember, // PLAYER_QUEST_LOG+942
- PartyMember, // PLAYER_QUEST_LOG+943
- PartyMember, // PLAYER_QUEST_LOG+944
- PartyMember, // PLAYER_QUEST_LOG+945
- PartyMember, // PLAYER_QUEST_LOG+946
- PartyMember, // PLAYER_QUEST_LOG+947
- PartyMember, // PLAYER_QUEST_LOG+948
- PartyMember, // PLAYER_QUEST_LOG+949
- PartyMember, // PLAYER_QUEST_LOG+950
- PartyMember, // PLAYER_QUEST_LOG+951
- PartyMember, // PLAYER_QUEST_LOG+952
- PartyMember, // PLAYER_QUEST_LOG+953
- PartyMember, // PLAYER_QUEST_LOG+954
- PartyMember, // PLAYER_QUEST_LOG+955
- PartyMember, // PLAYER_QUEST_LOG+956
- PartyMember, // PLAYER_QUEST_LOG+957
- PartyMember, // PLAYER_QUEST_LOG+958
- PartyMember, // PLAYER_QUEST_LOG+959
- PartyMember, // PLAYER_QUEST_LOG+960
- PartyMember, // PLAYER_QUEST_LOG+961
- PartyMember, // PLAYER_QUEST_LOG+962
- PartyMember, // PLAYER_QUEST_LOG+963
- PartyMember, // PLAYER_QUEST_LOG+964
- PartyMember, // PLAYER_QUEST_LOG+965
- PartyMember, // PLAYER_QUEST_LOG+966
- PartyMember, // PLAYER_QUEST_LOG+967
- PartyMember, // PLAYER_QUEST_LOG+968
- PartyMember, // PLAYER_QUEST_LOG+969
- PartyMember, // PLAYER_QUEST_LOG+970
- PartyMember, // PLAYER_QUEST_LOG+971
- PartyMember, // PLAYER_QUEST_LOG+972
- PartyMember, // PLAYER_QUEST_LOG+973
- PartyMember, // PLAYER_QUEST_LOG+974
- PartyMember, // PLAYER_QUEST_LOG+975
- PartyMember, // PLAYER_QUEST_LOG+976
- PartyMember, // PLAYER_QUEST_LOG+977
- PartyMember, // PLAYER_QUEST_LOG+978
- PartyMember, // PLAYER_QUEST_LOG+979
- PartyMember, // PLAYER_QUEST_LOG+980
- PartyMember, // PLAYER_QUEST_LOG+981
- PartyMember, // PLAYER_QUEST_LOG+982
- PartyMember, // PLAYER_QUEST_LOG+983
- PartyMember, // PLAYER_QUEST_LOG+984
- PartyMember, // PLAYER_QUEST_LOG+985
- PartyMember, // PLAYER_QUEST_LOG+986
- PartyMember, // PLAYER_QUEST_LOG+987
- PartyMember, // PLAYER_QUEST_LOG+988
- PartyMember, // PLAYER_QUEST_LOG+989
- PartyMember, // PLAYER_QUEST_LOG+990
- PartyMember, // PLAYER_QUEST_LOG+991
- PartyMember, // PLAYER_QUEST_LOG+992
- PartyMember, // PLAYER_QUEST_LOG+993
- PartyMember, // PLAYER_QUEST_LOG+994
- PartyMember, // PLAYER_QUEST_LOG+995
- PartyMember, // PLAYER_QUEST_LOG+996
- PartyMember, // PLAYER_QUEST_LOG+997
- PartyMember, // PLAYER_QUEST_LOG+998
- PartyMember, // PLAYER_QUEST_LOG+999
- PartyMember, // PLAYER_QUEST_LOG+1000
- PartyMember, // PLAYER_QUEST_LOG+1001
- PartyMember, // PLAYER_QUEST_LOG+1002
- PartyMember, // PLAYER_QUEST_LOG+1003
- PartyMember, // PLAYER_QUEST_LOG+1004
- PartyMember, // PLAYER_QUEST_LOG+1005
- PartyMember, // PLAYER_QUEST_LOG+1006
- PartyMember, // PLAYER_QUEST_LOG+1007
- PartyMember, // PLAYER_QUEST_LOG+1008
- PartyMember, // PLAYER_QUEST_LOG+1009
- PartyMember, // PLAYER_QUEST_LOG+1010
- PartyMember, // PLAYER_QUEST_LOG+1011
- PartyMember, // PLAYER_QUEST_LOG+1012
- PartyMember, // PLAYER_QUEST_LOG+1013
- PartyMember, // PLAYER_QUEST_LOG+1014
- PartyMember, // PLAYER_QUEST_LOG+1015
- PartyMember, // PLAYER_QUEST_LOG+1016
- PartyMember, // PLAYER_QUEST_LOG+1017
- PartyMember, // PLAYER_QUEST_LOG+1018
- PartyMember, // PLAYER_QUEST_LOG+1019
- PartyMember, // PLAYER_QUEST_LOG+1020
- PartyMember, // PLAYER_QUEST_LOG+1021
- PartyMember, // PLAYER_QUEST_LOG+1022
- PartyMember, // PLAYER_QUEST_LOG+1023
- PartyMember, // PLAYER_QUEST_LOG+1024
- PartyMember, // PLAYER_QUEST_LOG+1025
- PartyMember, // PLAYER_QUEST_LOG+1026
- PartyMember, // PLAYER_QUEST_LOG+1027
- PartyMember, // PLAYER_QUEST_LOG+1028
- PartyMember, // PLAYER_QUEST_LOG+1029
- PartyMember, // PLAYER_QUEST_LOG+1030
- PartyMember, // PLAYER_QUEST_LOG+1031
- PartyMember, // PLAYER_QUEST_LOG+1032
- PartyMember, // PLAYER_QUEST_LOG+1033
- PartyMember, // PLAYER_QUEST_LOG+1034
- PartyMember, // PLAYER_QUEST_LOG+1035
- PartyMember, // PLAYER_QUEST_LOG+1036
- PartyMember, // PLAYER_QUEST_LOG+1037
- PartyMember, // PLAYER_QUEST_LOG+1038
- PartyMember, // PLAYER_QUEST_LOG+1039
- PartyMember, // PLAYER_QUEST_LOG+1040
- PartyMember, // PLAYER_QUEST_LOG+1041
- PartyMember, // PLAYER_QUEST_LOG+1042
- PartyMember, // PLAYER_QUEST_LOG+1043
- PartyMember, // PLAYER_QUEST_LOG+1044
- PartyMember, // PLAYER_QUEST_LOG+1045
- PartyMember, // PLAYER_QUEST_LOG+1046
- PartyMember, // PLAYER_QUEST_LOG+1047
- PartyMember, // PLAYER_QUEST_LOG+1048
- PartyMember, // PLAYER_QUEST_LOG+1049
- PartyMember, // PLAYER_QUEST_LOG+1050
- PartyMember, // PLAYER_QUEST_LOG+1051
- PartyMember, // PLAYER_QUEST_LOG+1052
- PartyMember, // PLAYER_QUEST_LOG+1053
- PartyMember, // PLAYER_QUEST_LOG+1054
- PartyMember, // PLAYER_QUEST_LOG+1055
- PartyMember, // PLAYER_QUEST_LOG+1056
- PartyMember, // PLAYER_QUEST_LOG+1057
- PartyMember, // PLAYER_QUEST_LOG+1058
- PartyMember, // PLAYER_QUEST_LOG+1059
- PartyMember, // PLAYER_QUEST_LOG+1060
- PartyMember, // PLAYER_QUEST_LOG+1061
- PartyMember, // PLAYER_QUEST_LOG+1062
- PartyMember, // PLAYER_QUEST_LOG+1063
- PartyMember, // PLAYER_QUEST_LOG+1064
- PartyMember, // PLAYER_QUEST_LOG+1065
- PartyMember, // PLAYER_QUEST_LOG+1066
- PartyMember, // PLAYER_QUEST_LOG+1067
- PartyMember, // PLAYER_QUEST_LOG+1068
- PartyMember, // PLAYER_QUEST_LOG+1069
- PartyMember, // PLAYER_QUEST_LOG+1070
- PartyMember, // PLAYER_QUEST_LOG+1071
- PartyMember, // PLAYER_QUEST_LOG+1072
- PartyMember, // PLAYER_QUEST_LOG+1073
- PartyMember, // PLAYER_QUEST_LOG+1074
- PartyMember, // PLAYER_QUEST_LOG+1075
- PartyMember, // PLAYER_QUEST_LOG+1076
- PartyMember, // PLAYER_QUEST_LOG+1077
- PartyMember, // PLAYER_QUEST_LOG+1078
- PartyMember, // PLAYER_QUEST_LOG+1079
- PartyMember, // PLAYER_QUEST_LOG+1080
- PartyMember, // PLAYER_QUEST_LOG+1081
- PartyMember, // PLAYER_QUEST_LOG+1082
- PartyMember, // PLAYER_QUEST_LOG+1083
- PartyMember, // PLAYER_QUEST_LOG+1084
- PartyMember, // PLAYER_QUEST_LOG+1085
- PartyMember, // PLAYER_QUEST_LOG+1086
- PartyMember, // PLAYER_QUEST_LOG+1087
- PartyMember, // PLAYER_QUEST_LOG+1088
- PartyMember, // PLAYER_QUEST_LOG+1089
- PartyMember, // PLAYER_QUEST_LOG+1090
- PartyMember, // PLAYER_QUEST_LOG+1091
- PartyMember, // PLAYER_QUEST_LOG+1092
- PartyMember, // PLAYER_QUEST_LOG+1093
- PartyMember, // PLAYER_QUEST_LOG+1094
- PartyMember, // PLAYER_QUEST_LOG+1095
- PartyMember, // PLAYER_QUEST_LOG+1096
- PartyMember, // PLAYER_QUEST_LOG+1097
- PartyMember, // PLAYER_QUEST_LOG+1098
- PartyMember, // PLAYER_QUEST_LOG+1099
- PartyMember, // PLAYER_QUEST_LOG+1100
- PartyMember, // PLAYER_QUEST_LOG+1101
- PartyMember, // PLAYER_QUEST_LOG+1102
- PartyMember, // PLAYER_QUEST_LOG+1103
- PartyMember, // PLAYER_QUEST_LOG+1104
- PartyMember, // PLAYER_QUEST_LOG+1105
- PartyMember, // PLAYER_QUEST_LOG+1106
- PartyMember, // PLAYER_QUEST_LOG+1107
- PartyMember, // PLAYER_QUEST_LOG+1108
- PartyMember, // PLAYER_QUEST_LOG+1109
- PartyMember, // PLAYER_QUEST_LOG+1110
- PartyMember, // PLAYER_QUEST_LOG+1111
- PartyMember, // PLAYER_QUEST_LOG+1112
- PartyMember, // PLAYER_QUEST_LOG+1113
- PartyMember, // PLAYER_QUEST_LOG+1114
- PartyMember, // PLAYER_QUEST_LOG+1115
- PartyMember, // PLAYER_QUEST_LOG+1116
- PartyMember, // PLAYER_QUEST_LOG+1117
- PartyMember, // PLAYER_QUEST_LOG+1118
- PartyMember, // PLAYER_QUEST_LOG+1119
- PartyMember, // PLAYER_QUEST_LOG+1120
- PartyMember, // PLAYER_QUEST_LOG+1121
- PartyMember, // PLAYER_QUEST_LOG+1122
- PartyMember, // PLAYER_QUEST_LOG+1123
- PartyMember, // PLAYER_QUEST_LOG+1124
- PartyMember, // PLAYER_QUEST_LOG+1125
- PartyMember, // PLAYER_QUEST_LOG+1126
- PartyMember, // PLAYER_QUEST_LOG+1127
- PartyMember, // PLAYER_QUEST_LOG+1128
- PartyMember, // PLAYER_QUEST_LOG+1129
- PartyMember, // PLAYER_QUEST_LOG+1130
- PartyMember, // PLAYER_QUEST_LOG+1131
- PartyMember, // PLAYER_QUEST_LOG+1132
- PartyMember, // PLAYER_QUEST_LOG+1133
- PartyMember, // PLAYER_QUEST_LOG+1134
- PartyMember, // PLAYER_QUEST_LOG+1135
- PartyMember, // PLAYER_QUEST_LOG+1136
- PartyMember, // PLAYER_QUEST_LOG+1137
- PartyMember, // PLAYER_QUEST_LOG+1138
- PartyMember, // PLAYER_QUEST_LOG+1139
- PartyMember, // PLAYER_QUEST_LOG+1140
- PartyMember, // PLAYER_QUEST_LOG+1141
- PartyMember, // PLAYER_QUEST_LOG+1142
- PartyMember, // PLAYER_QUEST_LOG+1143
- PartyMember, // PLAYER_QUEST_LOG+1144
- PartyMember, // PLAYER_QUEST_LOG+1145
- PartyMember, // PLAYER_QUEST_LOG+1146
- PartyMember, // PLAYER_QUEST_LOG+1147
- PartyMember, // PLAYER_QUEST_LOG+1148
- PartyMember, // PLAYER_QUEST_LOG+1149
- PartyMember, // PLAYER_QUEST_LOG+1150
- PartyMember, // PLAYER_QUEST_LOG+1151
- PartyMember, // PLAYER_QUEST_LOG+1152
- PartyMember, // PLAYER_QUEST_LOG+1153
- PartyMember, // PLAYER_QUEST_LOG+1154
- PartyMember, // PLAYER_QUEST_LOG+1155
- PartyMember, // PLAYER_QUEST_LOG+1156
- PartyMember, // PLAYER_QUEST_LOG+1157
- PartyMember, // PLAYER_QUEST_LOG+1158
- PartyMember, // PLAYER_QUEST_LOG+1159
- PartyMember, // PLAYER_QUEST_LOG+1160
- PartyMember, // PLAYER_QUEST_LOG+1161
- PartyMember, // PLAYER_QUEST_LOG+1162
- PartyMember, // PLAYER_QUEST_LOG+1163
- PartyMember, // PLAYER_QUEST_LOG+1164
- PartyMember, // PLAYER_QUEST_LOG+1165
- PartyMember, // PLAYER_QUEST_LOG+1166
- PartyMember, // PLAYER_QUEST_LOG+1167
- PartyMember, // PLAYER_QUEST_LOG+1168
- PartyMember, // PLAYER_QUEST_LOG+1169
- PartyMember, // PLAYER_QUEST_LOG+1170
- PartyMember, // PLAYER_QUEST_LOG+1171
- PartyMember, // PLAYER_QUEST_LOG+1172
- PartyMember, // PLAYER_QUEST_LOG+1173
- PartyMember, // PLAYER_QUEST_LOG+1174
- PartyMember, // PLAYER_QUEST_LOG+1175
- PartyMember, // PLAYER_QUEST_LOG+1176
- PartyMember, // PLAYER_QUEST_LOG+1177
- PartyMember, // PLAYER_QUEST_LOG+1178
- PartyMember, // PLAYER_QUEST_LOG+1179
- PartyMember, // PLAYER_QUEST_LOG+1180
- PartyMember, // PLAYER_QUEST_LOG+1181
- PartyMember, // PLAYER_QUEST_LOG+1182
- PartyMember, // PLAYER_QUEST_LOG+1183
- PartyMember, // PLAYER_QUEST_LOG+1184
- PartyMember, // PLAYER_QUEST_LOG+1185
- PartyMember, // PLAYER_QUEST_LOG+1186
- PartyMember, // PLAYER_QUEST_LOG+1187
- PartyMember, // PLAYER_QUEST_LOG+1188
- PartyMember, // PLAYER_QUEST_LOG+1189
- PartyMember, // PLAYER_QUEST_LOG+1190
- PartyMember, // PLAYER_QUEST_LOG+1191
- PartyMember, // PLAYER_QUEST_LOG+1192
- PartyMember, // PLAYER_QUEST_LOG+1193
- PartyMember, // PLAYER_QUEST_LOG+1194
- PartyMember, // PLAYER_QUEST_LOG+1195
- PartyMember, // PLAYER_QUEST_LOG+1196
- PartyMember, // PLAYER_QUEST_LOG+1197
- PartyMember, // PLAYER_QUEST_LOG+1198
- PartyMember, // PLAYER_QUEST_LOG+1199
- PartyMember, // PLAYER_QUEST_LOG+1200
- PartyMember, // PLAYER_QUEST_LOG+1201
- PartyMember, // PLAYER_QUEST_LOG+1202
- PartyMember, // PLAYER_QUEST_LOG+1203
- PartyMember, // PLAYER_QUEST_LOG+1204
- PartyMember, // PLAYER_QUEST_LOG+1205
- PartyMember, // PLAYER_QUEST_LOG+1206
- PartyMember, // PLAYER_QUEST_LOG+1207
- PartyMember, // PLAYER_QUEST_LOG+1208
- PartyMember, // PLAYER_QUEST_LOG+1209
- PartyMember, // PLAYER_QUEST_LOG+1210
- PartyMember, // PLAYER_QUEST_LOG+1211
- PartyMember, // PLAYER_QUEST_LOG+1212
- PartyMember, // PLAYER_QUEST_LOG+1213
- PartyMember, // PLAYER_QUEST_LOG+1214
- PartyMember, // PLAYER_QUEST_LOG+1215
- PartyMember, // PLAYER_QUEST_LOG+1216
- PartyMember, // PLAYER_QUEST_LOG+1217
- PartyMember, // PLAYER_QUEST_LOG+1218
- PartyMember, // PLAYER_QUEST_LOG+1219
- PartyMember, // PLAYER_QUEST_LOG+1220
- PartyMember, // PLAYER_QUEST_LOG+1221
- PartyMember, // PLAYER_QUEST_LOG+1222
- PartyMember, // PLAYER_QUEST_LOG+1223
- PartyMember, // PLAYER_QUEST_LOG+1224
- PartyMember, // PLAYER_QUEST_LOG+1225
- PartyMember, // PLAYER_QUEST_LOG+1226
- PartyMember, // PLAYER_QUEST_LOG+1227
- PartyMember, // PLAYER_QUEST_LOG+1228
- PartyMember, // PLAYER_QUEST_LOG+1229
- PartyMember, // PLAYER_QUEST_LOG+1230
- PartyMember, // PLAYER_QUEST_LOG+1231
- PartyMember, // PLAYER_QUEST_LOG+1232
- PartyMember, // PLAYER_QUEST_LOG+1233
- PartyMember, // PLAYER_QUEST_LOG+1234
- PartyMember, // PLAYER_QUEST_LOG+1235
- PartyMember, // PLAYER_QUEST_LOG+1236
- PartyMember, // PLAYER_QUEST_LOG+1237
- PartyMember, // PLAYER_QUEST_LOG+1238
- PartyMember, // PLAYER_QUEST_LOG+1239
- PartyMember, // PLAYER_QUEST_LOG+1240
- PartyMember, // PLAYER_QUEST_LOG+1241
- PartyMember, // PLAYER_QUEST_LOG+1242
- PartyMember, // PLAYER_QUEST_LOG+1243
- PartyMember, // PLAYER_QUEST_LOG+1244
- PartyMember, // PLAYER_QUEST_LOG+1245
- PartyMember, // PLAYER_QUEST_LOG+1246
- PartyMember, // PLAYER_QUEST_LOG+1247
- PartyMember, // PLAYER_QUEST_LOG+1248
- PartyMember, // PLAYER_QUEST_LOG+1249
- PartyMember, // PLAYER_QUEST_LOG+1250
- PartyMember, // PLAYER_QUEST_LOG+1251
- PartyMember, // PLAYER_QUEST_LOG+1252
- PartyMember, // PLAYER_QUEST_LOG+1253
- PartyMember, // PLAYER_QUEST_LOG+1254
- PartyMember, // PLAYER_QUEST_LOG+1255
- PartyMember, // PLAYER_QUEST_LOG+1256
- PartyMember, // PLAYER_QUEST_LOG+1257
- PartyMember, // PLAYER_QUEST_LOG+1258
- PartyMember, // PLAYER_QUEST_LOG+1259
- PartyMember, // PLAYER_QUEST_LOG+1260
- PartyMember, // PLAYER_QUEST_LOG+1261
- PartyMember, // PLAYER_QUEST_LOG+1262
- PartyMember, // PLAYER_QUEST_LOG+1263
- PartyMember, // PLAYER_QUEST_LOG+1264
- PartyMember, // PLAYER_QUEST_LOG+1265
- PartyMember, // PLAYER_QUEST_LOG+1266
- PartyMember, // PLAYER_QUEST_LOG+1267
- PartyMember, // PLAYER_QUEST_LOG+1268
- PartyMember, // PLAYER_QUEST_LOG+1269
- PartyMember, // PLAYER_QUEST_LOG+1270
- PartyMember, // PLAYER_QUEST_LOG+1271
- PartyMember, // PLAYER_QUEST_LOG+1272
- PartyMember, // PLAYER_QUEST_LOG+1273
- PartyMember, // PLAYER_QUEST_LOG+1274
- PartyMember, // PLAYER_QUEST_LOG+1275
- PartyMember, // PLAYER_QUEST_LOG+1276
- PartyMember, // PLAYER_QUEST_LOG+1277
- PartyMember, // PLAYER_QUEST_LOG+1278
- PartyMember, // PLAYER_QUEST_LOG+1279
- PartyMember, // PLAYER_QUEST_LOG+1280
- PartyMember, // PLAYER_QUEST_LOG+1281
- PartyMember, // PLAYER_QUEST_LOG+1282
- PartyMember, // PLAYER_QUEST_LOG+1283
- PartyMember, // PLAYER_QUEST_LOG+1284
- PartyMember, // PLAYER_QUEST_LOG+1285
- PartyMember, // PLAYER_QUEST_LOG+1286
- PartyMember, // PLAYER_QUEST_LOG+1287
- PartyMember, // PLAYER_QUEST_LOG+1288
- PartyMember, // PLAYER_QUEST_LOG+1289
- PartyMember, // PLAYER_QUEST_LOG+1290
- PartyMember, // PLAYER_QUEST_LOG+1291
- PartyMember, // PLAYER_QUEST_LOG+1292
- PartyMember, // PLAYER_QUEST_LOG+1293
- PartyMember, // PLAYER_QUEST_LOG+1294
- PartyMember, // PLAYER_QUEST_LOG+1295
- PartyMember, // PLAYER_QUEST_LOG+1296
- PartyMember, // PLAYER_QUEST_LOG+1297
- PartyMember, // PLAYER_QUEST_LOG+1298
- PartyMember, // PLAYER_QUEST_LOG+1299
- PartyMember, // PLAYER_QUEST_LOG+1300
- PartyMember, // PLAYER_QUEST_LOG+1301
- PartyMember, // PLAYER_QUEST_LOG+1302
- PartyMember, // PLAYER_QUEST_LOG+1303
- PartyMember, // PLAYER_QUEST_LOG+1304
- PartyMember, // PLAYER_QUEST_LOG+1305
- PartyMember, // PLAYER_QUEST_LOG+1306
- PartyMember, // PLAYER_QUEST_LOG+1307
- PartyMember, // PLAYER_QUEST_LOG+1308
- PartyMember, // PLAYER_QUEST_LOG+1309
- PartyMember, // PLAYER_QUEST_LOG+1310
- PartyMember, // PLAYER_QUEST_LOG+1311
- PartyMember, // PLAYER_QUEST_LOG+1312
- PartyMember, // PLAYER_QUEST_LOG+1313
- PartyMember, // PLAYER_QUEST_LOG+1314
- PartyMember, // PLAYER_QUEST_LOG+1315
- PartyMember, // PLAYER_QUEST_LOG+1316
- PartyMember, // PLAYER_QUEST_LOG+1317
- PartyMember, // PLAYER_QUEST_LOG+1318
- PartyMember, // PLAYER_QUEST_LOG+1319
- PartyMember, // PLAYER_QUEST_LOG+1320
- PartyMember, // PLAYER_QUEST_LOG+1321
- PartyMember, // PLAYER_QUEST_LOG+1322
- PartyMember, // PLAYER_QUEST_LOG+1323
- PartyMember, // PLAYER_QUEST_LOG+1324
- PartyMember, // PLAYER_QUEST_LOG+1325
- PartyMember, // PLAYER_QUEST_LOG+1326
- PartyMember, // PLAYER_QUEST_LOG+1327
- PartyMember, // PLAYER_QUEST_LOG+1328
- PartyMember, // PLAYER_QUEST_LOG+1329
- PartyMember, // PLAYER_QUEST_LOG+1330
- PartyMember, // PLAYER_QUEST_LOG+1331
- PartyMember, // PLAYER_QUEST_LOG+1332
- PartyMember, // PLAYER_QUEST_LOG+1333
- PartyMember, // PLAYER_QUEST_LOG+1334
- PartyMember, // PLAYER_QUEST_LOG+1335
- PartyMember, // PLAYER_QUEST_LOG+1336
- PartyMember, // PLAYER_QUEST_LOG+1337
- PartyMember, // PLAYER_QUEST_LOG+1338
- PartyMember, // PLAYER_QUEST_LOG+1339
- PartyMember, // PLAYER_QUEST_LOG+1340
- PartyMember, // PLAYER_QUEST_LOG+1341
- PartyMember, // PLAYER_QUEST_LOG+1342
- PartyMember, // PLAYER_QUEST_LOG+1343
- PartyMember, // PLAYER_QUEST_LOG+1344
- PartyMember, // PLAYER_QUEST_LOG+1345
- PartyMember, // PLAYER_QUEST_LOG+1346
- PartyMember, // PLAYER_QUEST_LOG+1347
- PartyMember, // PLAYER_QUEST_LOG+1348
- PartyMember, // PLAYER_QUEST_LOG+1349
- PartyMember, // PLAYER_QUEST_LOG+1350
- PartyMember, // PLAYER_QUEST_LOG+1351
- PartyMember, // PLAYER_QUEST_LOG+1352
- PartyMember, // PLAYER_QUEST_LOG+1353
- PartyMember, // PLAYER_QUEST_LOG+1354
- PartyMember, // PLAYER_QUEST_LOG+1355
- PartyMember, // PLAYER_QUEST_LOG+1356
- PartyMember, // PLAYER_QUEST_LOG+1357
- PartyMember, // PLAYER_QUEST_LOG+1358
- PartyMember, // PLAYER_QUEST_LOG+1359
- PartyMember, // PLAYER_QUEST_LOG+1360
- PartyMember, // PLAYER_QUEST_LOG+1361
- PartyMember, // PLAYER_QUEST_LOG+1362
- PartyMember, // PLAYER_QUEST_LOG+1363
- PartyMember, // PLAYER_QUEST_LOG+1364
- PartyMember, // PLAYER_QUEST_LOG+1365
- PartyMember, // PLAYER_QUEST_LOG+1366
- PartyMember, // PLAYER_QUEST_LOG+1367
- PartyMember, // PLAYER_QUEST_LOG+1368
- PartyMember, // PLAYER_QUEST_LOG+1369
- PartyMember, // PLAYER_QUEST_LOG+1370
- PartyMember, // PLAYER_QUEST_LOG+1371
- PartyMember, // PLAYER_QUEST_LOG+1372
- PartyMember, // PLAYER_QUEST_LOG+1373
- PartyMember, // PLAYER_QUEST_LOG+1374
- PartyMember, // PLAYER_QUEST_LOG+1375
- PartyMember, // PLAYER_QUEST_LOG+1376
- PartyMember, // PLAYER_QUEST_LOG+1377
- PartyMember, // PLAYER_QUEST_LOG+1378
- PartyMember, // PLAYER_QUEST_LOG+1379
- PartyMember, // PLAYER_QUEST_LOG+1380
- PartyMember, // PLAYER_QUEST_LOG+1381
- PartyMember, // PLAYER_QUEST_LOG+1382
- PartyMember, // PLAYER_QUEST_LOG+1383
- PartyMember, // PLAYER_QUEST_LOG+1384
- PartyMember, // PLAYER_QUEST_LOG+1385
- PartyMember, // PLAYER_QUEST_LOG+1386
- PartyMember, // PLAYER_QUEST_LOG+1387
- PartyMember, // PLAYER_QUEST_LOG+1388
- PartyMember, // PLAYER_QUEST_LOG+1389
- PartyMember, // PLAYER_QUEST_LOG+1390
- PartyMember, // PLAYER_QUEST_LOG+1391
- PartyMember, // PLAYER_QUEST_LOG+1392
- PartyMember, // PLAYER_QUEST_LOG+1393
- PartyMember, // PLAYER_QUEST_LOG+1394
- PartyMember, // PLAYER_QUEST_LOG+1395
- PartyMember, // PLAYER_QUEST_LOG+1396
- PartyMember, // PLAYER_QUEST_LOG+1397
- PartyMember, // PLAYER_QUEST_LOG+1398
- PartyMember, // PLAYER_QUEST_LOG+1399
- PartyMember, // PLAYER_QUEST_LOG+1400
- PartyMember, // PLAYER_QUEST_LOG+1401
- PartyMember, // PLAYER_QUEST_LOG+1402
- PartyMember, // PLAYER_QUEST_LOG+1403
- PartyMember, // PLAYER_QUEST_LOG+1404
- PartyMember, // PLAYER_QUEST_LOG+1405
- PartyMember, // PLAYER_QUEST_LOG+1406
- PartyMember, // PLAYER_QUEST_LOG+1407
- PartyMember, // PLAYER_QUEST_LOG+1408
- PartyMember, // PLAYER_QUEST_LOG+1409
- PartyMember, // PLAYER_QUEST_LOG+1410
- PartyMember, // PLAYER_QUEST_LOG+1411
- PartyMember, // PLAYER_QUEST_LOG+1412
- PartyMember, // PLAYER_QUEST_LOG+1413
- PartyMember, // PLAYER_QUEST_LOG+1414
- PartyMember, // PLAYER_QUEST_LOG+1415
- PartyMember, // PLAYER_QUEST_LOG+1416
- PartyMember, // PLAYER_QUEST_LOG+1417
- PartyMember, // PLAYER_QUEST_LOG+1418
- PartyMember, // PLAYER_QUEST_LOG+1419
- PartyMember, // PLAYER_QUEST_LOG+1420
- PartyMember, // PLAYER_QUEST_LOG+1421
- PartyMember, // PLAYER_QUEST_LOG+1422
- PartyMember, // PLAYER_QUEST_LOG+1423
- PartyMember, // PLAYER_QUEST_LOG+1424
- PartyMember, // PLAYER_QUEST_LOG+1425
- PartyMember, // PLAYER_QUEST_LOG+1426
- PartyMember, // PLAYER_QUEST_LOG+1427
- PartyMember, // PLAYER_QUEST_LOG+1428
- PartyMember, // PLAYER_QUEST_LOG+1429
- PartyMember, // PLAYER_QUEST_LOG+1430
- PartyMember, // PLAYER_QUEST_LOG+1431
- PartyMember, // PLAYER_QUEST_LOG+1432
- PartyMember, // PLAYER_QUEST_LOG+1433
- PartyMember, // PLAYER_QUEST_LOG+1434
- PartyMember, // PLAYER_QUEST_LOG+1435
- PartyMember, // PLAYER_QUEST_LOG+1436
- PartyMember, // PLAYER_QUEST_LOG+1437
- PartyMember, // PLAYER_QUEST_LOG+1438
- PartyMember, // PLAYER_QUEST_LOG+1439
- PartyMember, // PLAYER_QUEST_LOG+1440
- PartyMember, // PLAYER_QUEST_LOG+1441
- PartyMember, // PLAYER_QUEST_LOG+1442
- PartyMember, // PLAYER_QUEST_LOG+1443
- PartyMember, // PLAYER_QUEST_LOG+1444
- PartyMember, // PLAYER_QUEST_LOG+1445
- PartyMember, // PLAYER_QUEST_LOG+1446
- PartyMember, // PLAYER_QUEST_LOG+1447
- PartyMember, // PLAYER_QUEST_LOG+1448
- PartyMember, // PLAYER_QUEST_LOG+1449
- PartyMember, // PLAYER_QUEST_LOG+1450
- PartyMember, // PLAYER_QUEST_LOG+1451
- PartyMember, // PLAYER_QUEST_LOG+1452
- PartyMember, // PLAYER_QUEST_LOG+1453
- PartyMember, // PLAYER_QUEST_LOG+1454
- PartyMember, // PLAYER_QUEST_LOG+1455
- PartyMember, // PLAYER_QUEST_LOG+1456
- PartyMember, // PLAYER_QUEST_LOG+1457
- PartyMember, // PLAYER_QUEST_LOG+1458
- PartyMember, // PLAYER_QUEST_LOG+1459
- PartyMember, // PLAYER_QUEST_LOG+1460
- PartyMember, // PLAYER_QUEST_LOG+1461
- PartyMember, // PLAYER_QUEST_LOG+1462
- PartyMember, // PLAYER_QUEST_LOG+1463
- PartyMember, // PLAYER_QUEST_LOG+1464
- PartyMember, // PLAYER_QUEST_LOG+1465
- PartyMember, // PLAYER_QUEST_LOG+1466
- PartyMember, // PLAYER_QUEST_LOG+1467
- PartyMember, // PLAYER_QUEST_LOG+1468
- PartyMember, // PLAYER_QUEST_LOG+1469
- PartyMember, // PLAYER_QUEST_LOG+1470
- PartyMember, // PLAYER_QUEST_LOG+1471
- PartyMember, // PLAYER_QUEST_LOG+1472
- PartyMember, // PLAYER_QUEST_LOG+1473
- PartyMember, // PLAYER_QUEST_LOG+1474
- PartyMember, // PLAYER_QUEST_LOG+1475
- PartyMember, // PLAYER_QUEST_LOG+1476
- PartyMember, // PLAYER_QUEST_LOG+1477
- PartyMember, // PLAYER_QUEST_LOG+1478
- PartyMember, // PLAYER_QUEST_LOG+1479
- PartyMember, // PLAYER_QUEST_LOG+1480
- PartyMember, // PLAYER_QUEST_LOG+1481
- PartyMember, // PLAYER_QUEST_LOG+1482
- PartyMember, // PLAYER_QUEST_LOG+1483
- PartyMember, // PLAYER_QUEST_LOG+1484
- PartyMember, // PLAYER_QUEST_LOG+1485
- PartyMember, // PLAYER_QUEST_LOG+1486
- PartyMember, // PLAYER_QUEST_LOG+1487
- PartyMember, // PLAYER_QUEST_LOG+1488
- PartyMember, // PLAYER_QUEST_LOG+1489
- PartyMember, // PLAYER_QUEST_LOG+1490
- PartyMember, // PLAYER_QUEST_LOG+1491
- PartyMember, // PLAYER_QUEST_LOG+1492
- PartyMember, // PLAYER_QUEST_LOG+1493
- PartyMember, // PLAYER_QUEST_LOG+1494
- PartyMember, // PLAYER_QUEST_LOG+1495
- PartyMember, // PLAYER_QUEST_LOG+1496
- PartyMember, // PLAYER_QUEST_LOG+1497
- PartyMember, // PLAYER_QUEST_LOG+1498
- PartyMember, // PLAYER_QUEST_LOG+1499
- PartyMember, // PLAYER_QUEST_LOG+1500
- PartyMember, // PLAYER_QUEST_LOG+1501
- PartyMember, // PLAYER_QUEST_LOG+1502
- PartyMember, // PLAYER_QUEST_LOG+1503
- PartyMember, // PLAYER_QUEST_LOG+1504
- PartyMember, // PLAYER_QUEST_LOG+1505
- PartyMember, // PLAYER_QUEST_LOG+1506
- PartyMember, // PLAYER_QUEST_LOG+1507
- PartyMember, // PLAYER_QUEST_LOG+1508
- PartyMember, // PLAYER_QUEST_LOG+1509
- PartyMember, // PLAYER_QUEST_LOG+1510
- PartyMember, // PLAYER_QUEST_LOG+1511
- PartyMember, // PLAYER_QUEST_LOG+1512
- PartyMember, // PLAYER_QUEST_LOG+1513
- PartyMember, // PLAYER_QUEST_LOG+1514
- PartyMember, // PLAYER_QUEST_LOG+1515
- PartyMember, // PLAYER_QUEST_LOG+1516
- PartyMember, // PLAYER_QUEST_LOG+1517
- PartyMember, // PLAYER_QUEST_LOG+1518
- PartyMember, // PLAYER_QUEST_LOG+1519
- PartyMember, // PLAYER_QUEST_LOG+1520
- PartyMember, // PLAYER_QUEST_LOG+1521
- PartyMember, // PLAYER_QUEST_LOG+1522
- PartyMember, // PLAYER_QUEST_LOG+1523
- PartyMember, // PLAYER_QUEST_LOG+1524
- PartyMember, // PLAYER_QUEST_LOG+1525
- PartyMember, // PLAYER_QUEST_LOG+1526
- PartyMember, // PLAYER_QUEST_LOG+1527
- PartyMember, // PLAYER_QUEST_LOG+1528
- PartyMember, // PLAYER_QUEST_LOG+1529
- PartyMember, // PLAYER_QUEST_LOG+1530
- PartyMember, // PLAYER_QUEST_LOG+1531
- PartyMember, // PLAYER_QUEST_LOG+1532
- PartyMember, // PLAYER_QUEST_LOG+1533
- PartyMember, // PLAYER_QUEST_LOG+1534
- PartyMember, // PLAYER_QUEST_LOG+1535
- PartyMember, // PLAYER_QUEST_LOG+1536
- PartyMember, // PLAYER_QUEST_LOG+1537
- PartyMember, // PLAYER_QUEST_LOG+1538
- PartyMember, // PLAYER_QUEST_LOG+1539
- PartyMember, // PLAYER_QUEST_LOG+1540
- PartyMember, // PLAYER_QUEST_LOG+1541
- PartyMember, // PLAYER_QUEST_LOG+1542
- PartyMember, // PLAYER_QUEST_LOG+1543
- PartyMember, // PLAYER_QUEST_LOG+1544
- PartyMember, // PLAYER_QUEST_LOG+1545
- PartyMember, // PLAYER_QUEST_LOG+1546
- PartyMember, // PLAYER_QUEST_LOG+1547
- PartyMember, // PLAYER_QUEST_LOG+1548
- PartyMember, // PLAYER_QUEST_LOG+1549
- PartyMember, // PLAYER_QUEST_LOG+1550
- PartyMember, // PLAYER_QUEST_LOG+1551
- PartyMember, // PLAYER_QUEST_LOG+1552
- PartyMember, // PLAYER_QUEST_LOG+1553
- PartyMember, // PLAYER_QUEST_LOG+1554
- PartyMember, // PLAYER_QUEST_LOG+1555
- PartyMember, // PLAYER_QUEST_LOG+1556
- PartyMember, // PLAYER_QUEST_LOG+1557
- PartyMember, // PLAYER_QUEST_LOG+1558
- PartyMember, // PLAYER_QUEST_LOG+1559
- PartyMember, // PLAYER_QUEST_LOG+1560
- PartyMember, // PLAYER_QUEST_LOG+1561
- PartyMember, // PLAYER_QUEST_LOG+1562
- PartyMember, // PLAYER_QUEST_LOG+1563
- PartyMember, // PLAYER_QUEST_LOG+1564
- PartyMember, // PLAYER_QUEST_LOG+1565
- PartyMember, // PLAYER_QUEST_LOG+1566
- PartyMember, // PLAYER_QUEST_LOG+1567
- PartyMember, // PLAYER_QUEST_LOG+1568
- PartyMember, // PLAYER_QUEST_LOG+1569
- PartyMember, // PLAYER_QUEST_LOG+1570
- PartyMember, // PLAYER_QUEST_LOG+1571
- PartyMember, // PLAYER_QUEST_LOG+1572
- PartyMember, // PLAYER_QUEST_LOG+1573
- PartyMember, // PLAYER_QUEST_LOG+1574
- PartyMember, // PLAYER_QUEST_LOG+1575
- PartyMember, // PLAYER_QUEST_LOG+1576
- PartyMember, // PLAYER_QUEST_LOG+1577
- PartyMember, // PLAYER_QUEST_LOG+1578
- PartyMember, // PLAYER_QUEST_LOG+1579
- PartyMember, // PLAYER_QUEST_LOG+1580
- PartyMember, // PLAYER_QUEST_LOG+1581
- PartyMember, // PLAYER_QUEST_LOG+1582
- PartyMember, // PLAYER_QUEST_LOG+1583
- PartyMember, // PLAYER_QUEST_LOG+1584
- PartyMember, // PLAYER_QUEST_LOG+1585
- PartyMember, // PLAYER_QUEST_LOG+1586
- PartyMember, // PLAYER_QUEST_LOG+1587
- PartyMember, // PLAYER_QUEST_LOG+1588
- PartyMember, // PLAYER_QUEST_LOG+1589
- PartyMember, // PLAYER_QUEST_LOG+1590
- PartyMember, // PLAYER_QUEST_LOG+1591
- PartyMember, // PLAYER_QUEST_LOG+1592
- PartyMember, // PLAYER_QUEST_LOG+1593
- PartyMember, // PLAYER_QUEST_LOG+1594
- PartyMember, // PLAYER_QUEST_LOG+1595
- PartyMember, // PLAYER_QUEST_LOG+1596
- PartyMember, // PLAYER_QUEST_LOG+1597
- PartyMember, // PLAYER_QUEST_LOG+1598
- PartyMember, // PLAYER_QUEST_LOG+1599
- Public, // PLAYER_VISIBLE_ITEM
- Public, // PLAYER_VISIBLE_ITEM+1
- Public, // PLAYER_VISIBLE_ITEM+2
- Public, // PLAYER_VISIBLE_ITEM+3
- Public, // PLAYER_VISIBLE_ITEM+4
- Public, // PLAYER_VISIBLE_ITEM+5
- Public, // PLAYER_VISIBLE_ITEM+6
- Public, // PLAYER_VISIBLE_ITEM+7
- Public, // PLAYER_VISIBLE_ITEM+8
- Public, // PLAYER_VISIBLE_ITEM+9
- Public, // PLAYER_VISIBLE_ITEM+10
- Public, // PLAYER_VISIBLE_ITEM+11
- Public, // PLAYER_VISIBLE_ITEM+12
- Public, // PLAYER_VISIBLE_ITEM+13
- Public, // PLAYER_VISIBLE_ITEM+14
- Public, // PLAYER_VISIBLE_ITEM+15
- Public, // PLAYER_VISIBLE_ITEM+16
- Public, // PLAYER_VISIBLE_ITEM+17
- Public, // PLAYER_VISIBLE_ITEM+18
- Public, // PLAYER_VISIBLE_ITEM+19
- Public, // PLAYER_VISIBLE_ITEM+20
- Public, // PLAYER_VISIBLE_ITEM+21
- Public, // PLAYER_VISIBLE_ITEM+22
- Public, // PLAYER_VISIBLE_ITEM+23
- Public, // PLAYER_VISIBLE_ITEM+24
- Public, // PLAYER_VISIBLE_ITEM+25
- Public, // PLAYER_VISIBLE_ITEM+26
- Public, // PLAYER_VISIBLE_ITEM+27
- Public, // PLAYER_VISIBLE_ITEM+28
- Public, // PLAYER_VISIBLE_ITEM+29
- Public, // PLAYER_VISIBLE_ITEM+30
- Public, // PLAYER_VISIBLE_ITEM+31
- Public, // PLAYER_VISIBLE_ITEM+32
- Public, // PLAYER_VISIBLE_ITEM+33
- Public, // PLAYER_VISIBLE_ITEM+34
- Public, // PLAYER_VISIBLE_ITEM+35
- Public, // PLAYER_VISIBLE_ITEM+36
- Public, // PLAYER_VISIBLE_ITEM+37
- Public, // PLAYER_CHOSEN_TITLE
- Public, // PLAYER_FAKE_INEBRIATION
- Public, // PLAYER_FIELD_VIRTUAL_PLAYER_REALM
- Public, // PLAYER_FIELD_CURRENT_SPEC_ID
- Public, // PLAYER_FIELD_TAXI_MOUNT_ANIM_KIT_ID
- Public, // PLAYER_FIELD_AVG_ITEM_LEVEL
- Public, // PLAYER_FIELD_AVG_ITEM_LEVEL+1
- Public, // PLAYER_FIELD_AVG_ITEM_LEVEL+2
- Public, // PLAYER_FIELD_AVG_ITEM_LEVEL+3
- Public, // PLAYER_FIELD_CURRENT_BATTLE_PET_BREED_QUALITY
- Public, // PLAYER_FIELD_HONOR_LEVEL
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+1
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+2
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+3
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+4
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+5
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+6
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+7
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+8
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+9
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+10
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+11
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+12
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+13
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+14
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+15
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+16
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+17
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+18
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+19
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+20
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+21
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+22
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+23
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+24
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+25
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+26
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+27
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+28
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+29
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+30
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+31
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+32
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+33
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+34
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+35
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+36
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+37
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+38
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+39
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+40
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+41
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+42
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+43
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+44
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+45
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+46
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+47
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+48
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+49
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+50
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+51
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+52
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+53
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+54
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+55
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+56
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+57
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+58
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+59
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+60
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+61
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+62
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+63
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+64
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+65
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+66
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+67
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+68
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+69
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+70
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+71
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+72
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+73
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+74
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+75
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+76
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+77
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+78
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+79
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+80
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+81
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+82
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+83
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+84
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+85
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+86
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+87
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+88
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+89
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+90
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+91
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+92
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+93
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+94
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+95
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+96
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+97
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+98
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+99
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+100
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+101
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+102
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+103
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+104
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+105
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+106
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+107
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+108
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+109
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+110
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+111
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+112
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+113
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+114
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+115
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+116
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+117
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+118
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+119
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+120
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+121
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+122
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+123
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+124
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+125
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+126
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+127
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+128
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+129
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+130
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+131
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+132
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+133
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+134
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+135
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+136
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+137
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+138
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+139
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+140
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+141
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+142
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+143
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+144
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+145
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+146
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+147
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+148
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+149
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+150
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+151
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+152
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+153
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+154
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+155
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+156
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+157
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+158
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+159
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+160
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+161
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+162
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+163
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+164
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+165
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+166
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+167
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+168
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+169
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+170
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+171
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+172
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+173
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+174
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+175
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+176
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+177
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+178
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+179
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+180
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+181
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+182
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+183
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+184
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+185
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+186
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+187
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+188
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+189
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+190
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+191
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+192
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+193
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+194
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+195
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+196
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+197
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+198
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+199
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+200
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+201
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+202
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+203
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+204
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+205
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+206
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+207
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+208
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+209
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+210
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+211
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+212
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+213
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+214
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+215
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+216
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+217
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+218
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+219
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+220
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+221
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+222
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+223
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+224
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+225
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+226
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+227
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+228
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+229
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+230
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+231
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+232
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+233
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+234
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+235
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+236
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+237
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+238
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+239
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+240
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+241
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+242
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+243
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+244
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+245
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+246
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+247
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+248
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+249
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+250
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+251
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+252
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+253
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+254
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+255
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+256
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+257
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+258
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+259
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+260
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+261
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+262
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+263
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+264
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+265
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+266
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+267
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+268
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+269
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+270
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+271
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+272
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+273
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+274
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+275
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+276
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+277
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+278
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+279
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+280
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+281
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+282
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+283
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+284
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+285
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+286
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+287
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+288
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+289
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+290
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+291
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+292
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+293
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+294
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+295
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+296
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+297
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+298
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+299
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+300
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+301
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+302
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+303
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+304
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+305
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+306
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+307
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+308
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+309
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+310
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+311
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+312
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+313
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+314
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+315
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+316
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+317
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+318
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+319
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+320
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+321
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+322
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+323
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+324
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+325
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+326
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+327
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+328
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+329
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+330
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+331
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+332
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+333
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+334
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+335
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+336
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+337
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+338
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+339
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+340
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+341
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+342
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+343
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+344
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+345
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+346
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+347
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+348
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+349
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+350
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+351
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+352
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+353
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+354
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+355
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+356
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+357
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+358
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+359
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+360
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+361
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+362
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+363
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+364
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+365
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+366
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+367
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+368
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+369
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+370
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+371
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+372
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+373
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+374
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+375
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+376
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+377
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+378
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+379
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+380
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+381
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+382
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+383
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+384
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+385
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+386
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+387
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+388
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+389
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+390
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+391
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+392
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+393
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+394
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+395
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+396
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+397
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+398
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+399
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+400
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+401
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+402
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+403
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+404
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+405
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+406
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+407
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+408
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+409
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+410
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+411
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+412
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+413
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+414
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+415
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+416
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+417
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+418
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+419
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+420
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+421
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+422
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+423
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+424
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+425
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+426
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+427
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+428
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+429
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+430
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+431
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+432
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+433
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+434
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+435
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+436
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+437
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+438
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+439
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+440
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+441
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+442
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+443
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+444
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+445
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+446
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+447
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+448
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+449
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+450
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+451
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+452
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+453
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+454
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+455
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+456
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+457
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+458
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+459
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+460
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+461
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+462
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+463
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+464
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+465
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+466
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+467
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+468
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+469
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+470
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+471
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+472
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+473
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+474
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+475
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+476
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+477
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+478
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+479
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+480
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+481
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+482
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+483
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+484
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+485
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+486
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+487
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+488
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+489
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+490
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+491
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+492
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+493
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+494
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+495
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+496
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+497
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+498
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+499
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+500
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+501
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+502
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+503
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+504
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+505
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+506
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+507
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+508
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+509
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+510
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+511
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+512
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+513
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+514
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+515
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+516
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+517
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+518
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+519
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+520
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+521
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+522
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+523
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+524
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+525
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+526
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+527
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+528
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+529
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+530
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+531
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+532
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+533
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+534
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+535
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+536
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+537
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+538
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+539
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+540
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+541
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+542
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+543
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+544
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+545
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+546
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+547
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+548
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+549
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+550
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+551
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+552
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+553
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+554
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+555
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+556
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+557
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+558
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+559
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+560
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+561
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+562
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+563
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+564
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+565
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+566
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+567
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+568
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+569
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+570
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+571
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+572
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+573
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+574
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+575
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+576
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+577
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+578
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+579
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+580
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+581
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+582
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+583
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+584
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+585
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+586
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+587
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+588
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+589
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+590
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+591
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+592
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+593
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+594
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+595
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+596
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+597
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+598
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+599
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+600
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+601
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+602
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+603
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+604
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+605
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+606
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+607
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+608
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+609
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+610
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+611
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+612
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+613
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+614
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+615
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+616
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+617
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+618
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+619
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+620
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+621
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+622
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+623
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+624
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+625
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+626
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+627
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+628
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+629
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+630
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+631
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+632
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+633
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+634
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+635
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+636
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+637
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+638
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+639
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+640
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+641
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+642
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+643
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+644
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+645
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+646
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+647
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+648
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+649
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+650
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+651
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+652
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+653
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+654
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+655
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+656
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+657
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+658
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+659
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+660
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+661
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+662
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+663
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+664
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+665
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+666
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+667
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+668
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+669
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+670
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+671
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+672
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+673
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+674
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+675
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+676
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+677
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+678
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+679
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+680
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+681
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+682
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+683
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+684
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+685
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+686
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+687
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+688
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+689
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+690
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+691
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+692
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+693
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+694
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+695
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+696
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+697
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+698
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+699
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+700
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+701
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+702
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+703
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+704
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+705
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+706
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+707
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+708
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+709
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+710
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+711
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+712
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+713
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+714
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+715
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+716
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+717
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+718
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+719
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+720
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+721
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+722
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+723
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+724
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+725
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+726
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+727
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+728
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+729
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+730
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+731
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+732
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+733
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+734
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+735
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+736
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+737
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+738
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+739
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+740
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+741
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+742
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+743
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+744
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+745
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+746
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+747
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+748
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+749
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+750
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+751
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+752
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+753
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+754
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+755
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+756
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+757
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+758
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+759
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+760
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+761
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+762
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+763
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+764
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+765
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+766
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+767
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+768
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+769
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+770
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+771
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+772
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+773
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+774
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+775
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+776
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+777
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+778
- Public, // ACTIVE_PLAYER_FIELD_INV_SLOT_HEAD+779
- Public, // ACTIVE_PLAYER_FIELD_FARSIGHT
- Public, // ACTIVE_PLAYER_FIELD_FARSIGHT+1
- Public, // ACTIVE_PLAYER_FIELD_FARSIGHT+2
- Public, // ACTIVE_PLAYER_FIELD_FARSIGHT+3
- Public, // ACTIVE_PLAYER_FIELD_SUMMONED_BATTLE_PET_ID
- Public, // ACTIVE_PLAYER_FIELD_SUMMONED_BATTLE_PET_ID+1
- Public, // ACTIVE_PLAYER_FIELD_SUMMONED_BATTLE_PET_ID+2
- Public, // ACTIVE_PLAYER_FIELD_SUMMONED_BATTLE_PET_ID+3
- Public, // ACTIVE_PLAYER_FIELD_KNOWN_TITLES
- Public, // ACTIVE_PLAYER_FIELD_KNOWN_TITLES+1
- Public, // ACTIVE_PLAYER_FIELD_KNOWN_TITLES+2
- Public, // ACTIVE_PLAYER_FIELD_KNOWN_TITLES+3
- Public, // ACTIVE_PLAYER_FIELD_KNOWN_TITLES+4
- Public, // ACTIVE_PLAYER_FIELD_KNOWN_TITLES+5
- Public, // ACTIVE_PLAYER_FIELD_KNOWN_TITLES+6
- Public, // ACTIVE_PLAYER_FIELD_KNOWN_TITLES+7
- Public, // ACTIVE_PLAYER_FIELD_KNOWN_TITLES+8
- Public, // ACTIVE_PLAYER_FIELD_KNOWN_TITLES+9
- Public, // ACTIVE_PLAYER_FIELD_KNOWN_TITLES+10
- Public, // ACTIVE_PLAYER_FIELD_KNOWN_TITLES+11
- Public, // ACTIVE_PLAYER_FIELD_COINAGE
- Public, // ACTIVE_PLAYER_FIELD_COINAGE+1
- Public, // ACTIVE_PLAYER_FIELD_XP
- Public, // ACTIVE_PLAYER_FIELD_NEXT_LEVEL_XP
- Public, // ACTIVE_PLAYER_FIELD_TRIAL_XP
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+1
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+2
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+3
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+4
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+5
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+6
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+7
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+8
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+9
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+10
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+11
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+12
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+13
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+14
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+15
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+16
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+17
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+18
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+19
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+20
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+21
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+22
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+23
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+24
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+25
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+26
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+27
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+28
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+29
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+30
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+31
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+32
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+33
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+34
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+35
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+36
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+37
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+38
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+39
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+40
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+41
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+42
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+43
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+44
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+45
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+46
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+47
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+48
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+49
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+50
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+51
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+52
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+53
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+54
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+55
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+56
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+57
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+58
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+59
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+60
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+61
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+62
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+63
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+64
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+65
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+66
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+67
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+68
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+69
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+70
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+71
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+72
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+73
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+74
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+75
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+76
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+77
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+78
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+79
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+80
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+81
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+82
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+83
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+84
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+85
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+86
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+87
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+88
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+89
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+90
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+91
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+92
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+93
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+94
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+95
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+96
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+97
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+98
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+99
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+100
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+101
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+102
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+103
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+104
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+105
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+106
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+107
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+108
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+109
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+110
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+111
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+112
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+113
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+114
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+115
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+116
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+117
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+118
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+119
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+120
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+121
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+122
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+123
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+124
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+125
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+126
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+127
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+128
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+129
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+130
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+131
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+132
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+133
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+134
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+135
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+136
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+137
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+138
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+139
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+140
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+141
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+142
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+143
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+144
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+145
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+146
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+147
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+148
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+149
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+150
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+151
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+152
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+153
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+154
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+155
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+156
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+157
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+158
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+159
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+160
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+161
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+162
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+163
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+164
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+165
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+166
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+167
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+168
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+169
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+170
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+171
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+172
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+173
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+174
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+175
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+176
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+177
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+178
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+179
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+180
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+181
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+182
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+183
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+184
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+185
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+186
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+187
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+188
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+189
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+190
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+191
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+192
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+193
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+194
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+195
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+196
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+197
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+198
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+199
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+200
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+201
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+202
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+203
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+204
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+205
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+206
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+207
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+208
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+209
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+210
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+211
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+212
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+213
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+214
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+215
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+216
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+217
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+218
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+219
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+220
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+221
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+222
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+223
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+224
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+225
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+226
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+227
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+228
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+229
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+230
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+231
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+232
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+233
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+234
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+235
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+236
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+237
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+238
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+239
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+240
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+241
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+242
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+243
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+244
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+245
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+246
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+247
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+248
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+249
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+250
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+251
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+252
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+253
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+254
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+255
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+256
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+257
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+258
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+259
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+260
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+261
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+262
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+263
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+264
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+265
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+266
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+267
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+268
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+269
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+270
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+271
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+272
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+273
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+274
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+275
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+276
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+277
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+278
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+279
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+280
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+281
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+282
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+283
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+284
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+285
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+286
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+287
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+288
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+289
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+290
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+291
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+292
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+293
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+294
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+295
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+296
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+297
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+298
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+299
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+300
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+301
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+302
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+303
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+304
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+305
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+306
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+307
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+308
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+309
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+310
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+311
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+312
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+313
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+314
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+315
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+316
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+317
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+318
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+319
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+320
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+321
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+322
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+323
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+324
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+325
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+326
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+327
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+328
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+329
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+330
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+331
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+332
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+333
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+334
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+335
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+336
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+337
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+338
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+339
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+340
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+341
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+342
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+343
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+344
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+345
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+346
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+347
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+348
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+349
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+350
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+351
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+352
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+353
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+354
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+355
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+356
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+357
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+358
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+359
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+360
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+361
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+362
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+363
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+364
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+365
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+366
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+367
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+368
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+369
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+370
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+371
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+372
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+373
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+374
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+375
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+376
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+377
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+378
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+379
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+380
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+381
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+382
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+383
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+384
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+385
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+386
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+387
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+388
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+389
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+390
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+391
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+392
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+393
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+394
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+395
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+396
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+397
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+398
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+399
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+400
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+401
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+402
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+403
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+404
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+405
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+406
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+407
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+408
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+409
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+410
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+411
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+412
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+413
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+414
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+415
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+416
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+417
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+418
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+419
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+420
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+421
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+422
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+423
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+424
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+425
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+426
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+427
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+428
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+429
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+430
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+431
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+432
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+433
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+434
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+435
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+436
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+437
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+438
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+439
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+440
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+441
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+442
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+443
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+444
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+445
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+446
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+447
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+448
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+449
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+450
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+451
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+452
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+453
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+454
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+455
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+456
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+457
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+458
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+459
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+460
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+461
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+462
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+463
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+464
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+465
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+466
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+467
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+468
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+469
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+470
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+471
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+472
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+473
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+474
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+475
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+476
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+477
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+478
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+479
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+480
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+481
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+482
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+483
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+484
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+485
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+486
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+487
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+488
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+489
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+490
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+491
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+492
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+493
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+494
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+495
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+496
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+497
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+498
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+499
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+500
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+501
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+502
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+503
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+504
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+505
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+506
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+507
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+508
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+509
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+510
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+511
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+512
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+513
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+514
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+515
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+516
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+517
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+518
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+519
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+520
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+521
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+522
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+523
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+524
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+525
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+526
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+527
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+528
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+529
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+530
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+531
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+532
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+533
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+534
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+535
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+536
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+537
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+538
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+539
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+540
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+541
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+542
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+543
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+544
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+545
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+546
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+547
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+548
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+549
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+550
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+551
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+552
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+553
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+554
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+555
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+556
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+557
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+558
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+559
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+560
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+561
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+562
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+563
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+564
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+565
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+566
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+567
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+568
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+569
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+570
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+571
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+572
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+573
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+574
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+575
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+576
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+577
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+578
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+579
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+580
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+581
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+582
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+583
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+584
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+585
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+586
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+587
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+588
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+589
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+590
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+591
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+592
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+593
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+594
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+595
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+596
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+597
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+598
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+599
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+600
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+601
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+602
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+603
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+604
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+605
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+606
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+607
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+608
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+609
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+610
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+611
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+612
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+613
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+614
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+615
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+616
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+617
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+618
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+619
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+620
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+621
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+622
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+623
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+624
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+625
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+626
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+627
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+628
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+629
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+630
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+631
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+632
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+633
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+634
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+635
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+636
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+637
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+638
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+639
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+640
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+641
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+642
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+643
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+644
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+645
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+646
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+647
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+648
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+649
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+650
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+651
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+652
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+653
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+654
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+655
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+656
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+657
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+658
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+659
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+660
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+661
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+662
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+663
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+664
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+665
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+666
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+667
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+668
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+669
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+670
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+671
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+672
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+673
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+674
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+675
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+676
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+677
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+678
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+679
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+680
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+681
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+682
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+683
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+684
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+685
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+686
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+687
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+688
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+689
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+690
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+691
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+692
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+693
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+694
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+695
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+696
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+697
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+698
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+699
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+700
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+701
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+702
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+703
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+704
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+705
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+706
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+707
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+708
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+709
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+710
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+711
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+712
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+713
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+714
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+715
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+716
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+717
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+718
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+719
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+720
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+721
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+722
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+723
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+724
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+725
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+726
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+727
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+728
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+729
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+730
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+731
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+732
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+733
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+734
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+735
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+736
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+737
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+738
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+739
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+740
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+741
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+742
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+743
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+744
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+745
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+746
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+747
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+748
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+749
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+750
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+751
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+752
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+753
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+754
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+755
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+756
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+757
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+758
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+759
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+760
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+761
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+762
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+763
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+764
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+765
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+766
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+767
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+768
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+769
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+770
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+771
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+772
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+773
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+774
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+775
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+776
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+777
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+778
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+779
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+780
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+781
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+782
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+783
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+784
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+785
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+786
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+787
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+788
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+789
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+790
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+791
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+792
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+793
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+794
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+795
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+796
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+797
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+798
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+799
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+800
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+801
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+802
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+803
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+804
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+805
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+806
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+807
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+808
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+809
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+810
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+811
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+812
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+813
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+814
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+815
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+816
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+817
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+818
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+819
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+820
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+821
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+822
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+823
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+824
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+825
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+826
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+827
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+828
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+829
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+830
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+831
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+832
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+833
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+834
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+835
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+836
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+837
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+838
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+839
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+840
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+841
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+842
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+843
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+844
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+845
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+846
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+847
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+848
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+849
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+850
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+851
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+852
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+853
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+854
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+855
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+856
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+857
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+858
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+859
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+860
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+861
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+862
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+863
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+864
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+865
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+866
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+867
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+868
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+869
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+870
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+871
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+872
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+873
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+874
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+875
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+876
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+877
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+878
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+879
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+880
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+881
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+882
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+883
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+884
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+885
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+886
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+887
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+888
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+889
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+890
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+891
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+892
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+893
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+894
- Public, // ACTIVE_PLAYER_FIELD_SKILL_LINEID+895
- Public, // ACTIVE_PLAYER_FIELD_CHARACTER_POINTS
- Public, // ACTIVE_PLAYER_FIELD_MAX_TALENT_TIERS
- Public, // ACTIVE_PLAYER_FIELD_TRACK_CREATURES
- Public, // ACTIVE_PLAYER_FIELD_TRACK_RESOURCES
- Public, // ACTIVE_PLAYER_FIELD_TRACK_RESOURCES+1
- Public, // ACTIVE_PLAYER_FIELD_EXPERTISE
- Public, // ACTIVE_PLAYER_FIELD_OFFHAND_EXPERTISE
- Public, // ACTIVE_PLAYER_FIELD_RANGED_EXPERTISE
- Public, // ACTIVE_PLAYER_FIELD_COMBAT_RATING_EXPERTISE
- Public, // ACTIVE_PLAYER_FIELD_BLOCK_PERCENTAGE
- Public, // ACTIVE_PLAYER_FIELD_DODGE_PERCENTAGE
- Public, // ACTIVE_PLAYER_FIELD_DODGE_PERCENTAGE_FROM_ATTRIBUTE
- Public, // ACTIVE_PLAYER_FIELD_PARRY_PERCENTAGE
- Public, // ACTIVE_PLAYER_FIELD_PARRY_PERCENTAGE_FROM_ATTRIBUTE
- Public, // ACTIVE_PLAYER_FIELD_CRIT_PERCENTAGE
- Public, // ACTIVE_PLAYER_FIELD_RANGED_CRIT_PERCENTAGE
- Public, // ACTIVE_PLAYER_FIELD_OFFHAND_CRIT_PERCENTAGE
- Public, // ACTIVE_PLAYER_FIELD_SPELL_CRIT_PERCENTAGE1
- Public, // ACTIVE_PLAYER_FIELD_SHIELD_BLOCK
- Public, // ACTIVE_PLAYER_FIELD_SHIELD_BLOCK_CRIT_PERCENTAGE
- Public, // ACTIVE_PLAYER_FIELD_MASTERY
- Public, // ACTIVE_PLAYER_FIELD_SPEED
- Public, // ACTIVE_PLAYER_FIELD_AVOIDANCE
- Public, // ACTIVE_PLAYER_FIELD_STURDINESS
- Public, // ACTIVE_PLAYER_FIELD_VERSATILITY
- Public, // ACTIVE_PLAYER_FIELD_VERSATILITY_BONUS
- Public, // ACTIVE_PLAYER_FIELD_PVP_POWER_DAMAGE
- Public, // ACTIVE_PLAYER_FIELD_PVP_POWER_HEALING
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+1
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+2
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+3
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+4
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+5
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+6
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+7
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+8
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+9
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+10
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+11
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+12
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+13
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+14
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+15
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+16
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+17
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+18
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+19
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+20
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+21
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+22
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+23
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+24
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+25
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+26
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+27
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+28
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+29
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+30
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+31
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+32
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+33
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+34
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+35
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+36
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+37
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+38
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+39
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+40
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+41
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+42
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+43
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+44
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+45
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+46
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+47
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+48
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+49
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+50
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+51
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+52
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+53
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+54
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+55
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+56
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+57
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+58
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+59
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+60
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+61
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+62
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+63
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+64
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+65
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+66
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+67
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+68
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+69
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+70
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+71
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+72
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+73
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+74
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+75
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+76
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+77
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+78
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+79
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+80
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+81
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+82
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+83
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+84
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+85
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+86
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+87
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+88
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+89
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+90
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+91
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+92
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+93
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+94
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+95
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+96
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+97
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+98
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+99
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+100
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+101
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+102
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+103
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+104
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+105
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+106
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+107
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+108
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+109
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+110
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+111
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+112
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+113
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+114
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+115
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+116
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+117
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+118
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+119
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+120
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+121
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+122
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+123
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+124
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+125
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+126
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+127
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+128
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+129
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+130
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+131
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+132
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+133
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+134
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+135
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+136
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+137
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+138
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+139
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+140
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+141
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+142
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+143
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+144
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+145
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+146
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+147
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+148
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+149
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+150
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+151
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+152
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+153
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+154
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+155
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+156
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+157
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+158
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+159
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+160
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+161
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+162
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+163
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+164
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+165
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+166
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+167
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+168
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+169
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+170
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+171
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+172
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+173
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+174
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+175
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+176
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+177
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+178
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+179
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+180
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+181
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+182
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+183
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+184
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+185
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+186
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+187
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+188
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+189
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+190
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+191
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+192
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+193
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+194
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+195
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+196
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+197
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+198
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+199
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+200
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+201
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+202
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+203
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+204
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+205
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+206
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+207
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+208
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+209
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+210
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+211
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+212
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+213
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+214
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+215
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+216
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+217
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+218
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+219
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+220
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+221
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+222
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+223
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+224
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+225
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+226
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+227
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+228
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+229
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+230
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+231
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+232
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+233
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+234
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+235
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+236
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+237
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+238
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+239
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+240
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+241
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+242
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+243
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+244
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+245
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+246
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+247
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+248
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+249
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+250
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+251
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+252
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+253
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+254
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+255
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+256
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+257
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+258
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+259
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+260
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+261
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+262
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+263
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+264
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+265
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+266
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+267
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+268
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+269
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+270
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+271
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+272
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+273
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+274
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+275
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+276
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+277
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+278
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+279
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+280
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+281
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+282
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+283
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+284
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+285
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+286
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+287
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+288
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+289
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+290
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+291
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+292
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+293
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+294
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+295
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+296
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+297
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+298
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+299
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+300
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+301
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+302
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+303
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+304
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+305
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+306
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+307
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+308
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+309
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+310
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+311
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+312
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+313
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+314
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+315
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+316
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+317
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+318
- Public, // ACTIVE_PLAYER_FIELD_EXPLORED_ZONES+319
- Public, // ACTIVE_PLAYER_FIELD_REST_INFO
- Public, // ACTIVE_PLAYER_FIELD_REST_INFO+1
- Public, // ACTIVE_PLAYER_FIELD_REST_INFO+2
- Public, // ACTIVE_PLAYER_FIELD_REST_INFO+3
- Public, // ACTIVE_PLAYER_FIELD_MOD_DAMAGE_DONE_POS
- Public, // ACTIVE_PLAYER_FIELD_MOD_DAMAGE_DONE_POS+1
- Public, // ACTIVE_PLAYER_FIELD_MOD_DAMAGE_DONE_POS+2
- Public, // ACTIVE_PLAYER_FIELD_MOD_DAMAGE_DONE_POS+3
- Public, // ACTIVE_PLAYER_FIELD_MOD_DAMAGE_DONE_POS+4
- Public, // ACTIVE_PLAYER_FIELD_MOD_DAMAGE_DONE_POS+5
- Public, // ACTIVE_PLAYER_FIELD_MOD_DAMAGE_DONE_POS+6
- Public, // ACTIVE_PLAYER_FIELD_MOD_DAMAGE_DONE_NEG
- Public, // ACTIVE_PLAYER_FIELD_MOD_DAMAGE_DONE_NEG+1
- Public, // ACTIVE_PLAYER_FIELD_MOD_DAMAGE_DONE_NEG+2
- Public, // ACTIVE_PLAYER_FIELD_MOD_DAMAGE_DONE_NEG+3
- Public, // ACTIVE_PLAYER_FIELD_MOD_DAMAGE_DONE_NEG+4
- Public, // ACTIVE_PLAYER_FIELD_MOD_DAMAGE_DONE_NEG+5
- Public, // ACTIVE_PLAYER_FIELD_MOD_DAMAGE_DONE_NEG+6
- Public, // ACTIVE_PLAYER_FIELD_MOD_DAMAGE_DONE_PCT
- Public, // ACTIVE_PLAYER_FIELD_MOD_DAMAGE_DONE_PCT+1
- Public, // ACTIVE_PLAYER_FIELD_MOD_DAMAGE_DONE_PCT+2
- Public, // ACTIVE_PLAYER_FIELD_MOD_DAMAGE_DONE_PCT+3
- Public, // ACTIVE_PLAYER_FIELD_MOD_DAMAGE_DONE_PCT+4
- Public, // ACTIVE_PLAYER_FIELD_MOD_DAMAGE_DONE_PCT+5
- Public, // ACTIVE_PLAYER_FIELD_MOD_DAMAGE_DONE_PCT+6
- Public, // ACTIVE_PLAYER_FIELD_MOD_HEALING_DONE_POS
- Public, // ACTIVE_PLAYER_FIELD_MOD_HEALING_PCT
- Public, // ACTIVE_PLAYER_FIELD_MOD_HEALING_DONE_PCT
- Public, // ACTIVE_PLAYER_FIELD_MOD_PERIODIC_HEALING_DONE_PERCENT
- Public, // ACTIVE_PLAYER_FIELD_WEAPON_DMG_MULTIPLIERS
- Public, // ACTIVE_PLAYER_FIELD_WEAPON_DMG_MULTIPLIERS+1
- Public, // ACTIVE_PLAYER_FIELD_WEAPON_DMG_MULTIPLIERS+2
- Public, // ACTIVE_PLAYER_FIELD_WEAPON_ATK_SPEED_MULTIPLIERS
- Public, // ACTIVE_PLAYER_FIELD_WEAPON_ATK_SPEED_MULTIPLIERS+1
- Public, // ACTIVE_PLAYER_FIELD_WEAPON_ATK_SPEED_MULTIPLIERS+2
- Public, // ACTIVE_PLAYER_FIELD_MOD_SPELL_POWER_PCT
- Public, // ACTIVE_PLAYER_FIELD_MOD_RESILIENCE_PERCENT
- Public, // ACTIVE_PLAYER_FIELD_OVERRIDE_SPELL_POWER_BY_AP_PCT
- Public, // ACTIVE_PLAYER_FIELD_OVERRIDE_AP_BY_SPELL_POWER_PERCENT
- Public, // ACTIVE_PLAYER_FIELD_MOD_TARGET_RESISTANCE
- Public, // ACTIVE_PLAYER_FIELD_MOD_TARGET_PHYSICAL_RESISTANCE
- Public, // ACTIVE_PLAYER_FIELD_LOCAL_FLAGS
- Public, // ACTIVE_PLAYER_FIELD_BYTES
- Public, // ACTIVE_PLAYER_FIELD_PVP_MEDALS
- Public, // ACTIVE_PLAYER_FIELD_BUYBACK_PRICE
- Public, // ACTIVE_PLAYER_FIELD_BUYBACK_PRICE+1
- Public, // ACTIVE_PLAYER_FIELD_BUYBACK_PRICE+2
- Public, // ACTIVE_PLAYER_FIELD_BUYBACK_PRICE+3
- Public, // ACTIVE_PLAYER_FIELD_BUYBACK_PRICE+4
- Public, // ACTIVE_PLAYER_FIELD_BUYBACK_PRICE+5
- Public, // ACTIVE_PLAYER_FIELD_BUYBACK_PRICE+6
- Public, // ACTIVE_PLAYER_FIELD_BUYBACK_PRICE+7
- Public, // ACTIVE_PLAYER_FIELD_BUYBACK_PRICE+8
- Public, // ACTIVE_PLAYER_FIELD_BUYBACK_PRICE+9
- Public, // ACTIVE_PLAYER_FIELD_BUYBACK_PRICE+10
- Public, // ACTIVE_PLAYER_FIELD_BUYBACK_PRICE+11
- Public, // ACTIVE_PLAYER_FIELD_BUYBACK_TIMESTAMP
- Public, // ACTIVE_PLAYER_FIELD_BUYBACK_TIMESTAMP+1
- Public, // ACTIVE_PLAYER_FIELD_BUYBACK_TIMESTAMP+2
- Public, // ACTIVE_PLAYER_FIELD_BUYBACK_TIMESTAMP+3
- Public, // ACTIVE_PLAYER_FIELD_BUYBACK_TIMESTAMP+4
- Public, // ACTIVE_PLAYER_FIELD_BUYBACK_TIMESTAMP+5
- Public, // ACTIVE_PLAYER_FIELD_BUYBACK_TIMESTAMP+6
- Public, // ACTIVE_PLAYER_FIELD_BUYBACK_TIMESTAMP+7
- Public, // ACTIVE_PLAYER_FIELD_BUYBACK_TIMESTAMP+8
- Public, // ACTIVE_PLAYER_FIELD_BUYBACK_TIMESTAMP+9
- Public, // ACTIVE_PLAYER_FIELD_BUYBACK_TIMESTAMP+10
- Public, // ACTIVE_PLAYER_FIELD_BUYBACK_TIMESTAMP+11
- Public, // ACTIVE_PLAYER_FIELD_KILLS
- Public, // ACTIVE_PLAYER_FIELD_LIFETIME_HONORABLE_KILLS
- Public, // ACTIVE_PLAYER_FIELD_WATCHED_FACTION_INDEX
- Public, // ACTIVE_PLAYER_FIELD_COMBAT_RATING
- Public, // ACTIVE_PLAYER_FIELD_COMBAT_RATING+1
- Public, // ACTIVE_PLAYER_FIELD_COMBAT_RATING+2
- Public, // ACTIVE_PLAYER_FIELD_COMBAT_RATING+3
- Public, // ACTIVE_PLAYER_FIELD_COMBAT_RATING+4
- Public, // ACTIVE_PLAYER_FIELD_COMBAT_RATING+5
- Public, // ACTIVE_PLAYER_FIELD_COMBAT_RATING+6
- Public, // ACTIVE_PLAYER_FIELD_COMBAT_RATING+7
- Public, // ACTIVE_PLAYER_FIELD_COMBAT_RATING+8
- Public, // ACTIVE_PLAYER_FIELD_COMBAT_RATING+9
- Public, // ACTIVE_PLAYER_FIELD_COMBAT_RATING+10
- Public, // ACTIVE_PLAYER_FIELD_COMBAT_RATING+11
- Public, // ACTIVE_PLAYER_FIELD_COMBAT_RATING+12
- Public, // ACTIVE_PLAYER_FIELD_COMBAT_RATING+13
- Public, // ACTIVE_PLAYER_FIELD_COMBAT_RATING+14
- Public, // ACTIVE_PLAYER_FIELD_COMBAT_RATING+15
- Public, // ACTIVE_PLAYER_FIELD_COMBAT_RATING+16
- Public, // ACTIVE_PLAYER_FIELD_COMBAT_RATING+17
- Public, // ACTIVE_PLAYER_FIELD_COMBAT_RATING+18
- Public, // ACTIVE_PLAYER_FIELD_COMBAT_RATING+19
- Public, // ACTIVE_PLAYER_FIELD_COMBAT_RATING+20
- Public, // ACTIVE_PLAYER_FIELD_COMBAT_RATING+21
- Public, // ACTIVE_PLAYER_FIELD_COMBAT_RATING+22
- Public, // ACTIVE_PLAYER_FIELD_COMBAT_RATING+23
- Public, // ACTIVE_PLAYER_FIELD_COMBAT_RATING+24
- Public, // ACTIVE_PLAYER_FIELD_COMBAT_RATING+25
- Public, // ACTIVE_PLAYER_FIELD_COMBAT_RATING+26
- Public, // ACTIVE_PLAYER_FIELD_COMBAT_RATING+27
- Public, // ACTIVE_PLAYER_FIELD_COMBAT_RATING+28
- Public, // ACTIVE_PLAYER_FIELD_COMBAT_RATING+29
- Public, // ACTIVE_PLAYER_FIELD_COMBAT_RATING+30
- Public, // ACTIVE_PLAYER_FIELD_COMBAT_RATING+31
- Public, // ACTIVE_PLAYER_FIELD_ARENA_TEAM_INFO
- Public, // ACTIVE_PLAYER_FIELD_ARENA_TEAM_INFO+1
- Public, // ACTIVE_PLAYER_FIELD_ARENA_TEAM_INFO+2
- Public, // ACTIVE_PLAYER_FIELD_ARENA_TEAM_INFO+3
- Public, // ACTIVE_PLAYER_FIELD_ARENA_TEAM_INFO+4
- Public, // ACTIVE_PLAYER_FIELD_ARENA_TEAM_INFO+5
- Public, // ACTIVE_PLAYER_FIELD_ARENA_TEAM_INFO+6
- Public, // ACTIVE_PLAYER_FIELD_ARENA_TEAM_INFO+7
- Public, // ACTIVE_PLAYER_FIELD_ARENA_TEAM_INFO+8
- Public, // ACTIVE_PLAYER_FIELD_ARENA_TEAM_INFO+9
- Public, // ACTIVE_PLAYER_FIELD_ARENA_TEAM_INFO+10
- Public, // ACTIVE_PLAYER_FIELD_ARENA_TEAM_INFO+11
- Public, // ACTIVE_PLAYER_FIELD_ARENA_TEAM_INFO+12
- Public, // ACTIVE_PLAYER_FIELD_ARENA_TEAM_INFO+13
- Public, // ACTIVE_PLAYER_FIELD_ARENA_TEAM_INFO+14
- Public, // ACTIVE_PLAYER_FIELD_ARENA_TEAM_INFO+15
- Public, // ACTIVE_PLAYER_FIELD_ARENA_TEAM_INFO+16
- Public, // ACTIVE_PLAYER_FIELD_ARENA_TEAM_INFO+17
- Public, // ACTIVE_PLAYER_FIELD_ARENA_TEAM_INFO+18
- Public, // ACTIVE_PLAYER_FIELD_ARENA_TEAM_INFO+19
- Public, // ACTIVE_PLAYER_FIELD_ARENA_TEAM_INFO+20
- Public, // ACTIVE_PLAYER_FIELD_ARENA_TEAM_INFO+21
- Public, // ACTIVE_PLAYER_FIELD_ARENA_TEAM_INFO+22
- Public, // ACTIVE_PLAYER_FIELD_ARENA_TEAM_INFO+23
- Public, // ACTIVE_PLAYER_FIELD_ARENA_TEAM_INFO+24
- Public, // ACTIVE_PLAYER_FIELD_ARENA_TEAM_INFO+25
- Public, // ACTIVE_PLAYER_FIELD_ARENA_TEAM_INFO+26
- Public, // ACTIVE_PLAYER_FIELD_ARENA_TEAM_INFO+27
- Public, // ACTIVE_PLAYER_FIELD_ARENA_TEAM_INFO+28
- Public, // ACTIVE_PLAYER_FIELD_ARENA_TEAM_INFO+29
- Public, // ACTIVE_PLAYER_FIELD_ARENA_TEAM_INFO+30
- Public, // ACTIVE_PLAYER_FIELD_ARENA_TEAM_INFO+31
- Public, // ACTIVE_PLAYER_FIELD_ARENA_TEAM_INFO+32
- Public, // ACTIVE_PLAYER_FIELD_ARENA_TEAM_INFO+33
- Public, // ACTIVE_PLAYER_FIELD_ARENA_TEAM_INFO+34
- Public, // ACTIVE_PLAYER_FIELD_ARENA_TEAM_INFO+35
- Public, // ACTIVE_PLAYER_FIELD_ARENA_TEAM_INFO+36
- Public, // ACTIVE_PLAYER_FIELD_ARENA_TEAM_INFO+37
- Public, // ACTIVE_PLAYER_FIELD_ARENA_TEAM_INFO+38
- Public, // ACTIVE_PLAYER_FIELD_ARENA_TEAM_INFO+39
- Public, // ACTIVE_PLAYER_FIELD_ARENA_TEAM_INFO+40
- Public, // ACTIVE_PLAYER_FIELD_ARENA_TEAM_INFO+41
- Public, // ACTIVE_PLAYER_FIELD_ARENA_TEAM_INFO+42
- Public, // ACTIVE_PLAYER_FIELD_ARENA_TEAM_INFO+43
- Public, // ACTIVE_PLAYER_FIELD_ARENA_TEAM_INFO+44
- Public, // ACTIVE_PLAYER_FIELD_ARENA_TEAM_INFO+45
- Public, // ACTIVE_PLAYER_FIELD_ARENA_TEAM_INFO+46
- Public, // ACTIVE_PLAYER_FIELD_ARENA_TEAM_INFO+47
- Public, // ACTIVE_PLAYER_FIELD_ARENA_TEAM_INFO+48
- Public, // ACTIVE_PLAYER_FIELD_ARENA_TEAM_INFO+49
- Public, // ACTIVE_PLAYER_FIELD_ARENA_TEAM_INFO+50
- Public, // ACTIVE_PLAYER_FIELD_ARENA_TEAM_INFO+51
- Public, // ACTIVE_PLAYER_FIELD_ARENA_TEAM_INFO+52
- Public, // ACTIVE_PLAYER_FIELD_ARENA_TEAM_INFO+53
- Public, // ACTIVE_PLAYER_FIELD_MAX_LEVEL
- Public, // ACTIVE_PLAYER_FIELD_SCALING_PLAYER_LEVEL_DELTA
- Public, // ACTIVE_PLAYER_FIELD_MAX_CREATURE_SCALING_LEVEL
- Public, // ACTIVE_PLAYER_FIELD_NO_REAGENT_COST
- Public, // ACTIVE_PLAYER_FIELD_NO_REAGENT_COST+1
- Public, // ACTIVE_PLAYER_FIELD_NO_REAGENT_COST+2
- Public, // ACTIVE_PLAYER_FIELD_NO_REAGENT_COST+3
- Public, // ACTIVE_PLAYER_FIELD_PET_SPELL_POWER
- Public, // ACTIVE_PLAYER_FIELD_PROFESSION_SKILL_LINE
- Public, // ACTIVE_PLAYER_FIELD_PROFESSION_SKILL_LINE+1
- Public, // ACTIVE_PLAYER_FIELD_UI_HIT_MODIFIER
- Public, // ACTIVE_PLAYER_FIELD_UI_SPELL_HIT_MODIFIER
- Public, // ACTIVE_PLAYER_FIELD_HOME_REALM_TIME_OFFSET
- Public, // ACTIVE_PLAYER_FIELD_MOD_PET_HASTE
- Public, // ACTIVE_PLAYER_FIELD_BYTES2
- Public | UrgentSelfOnly, // ACTIVE_PLAYER_FIELD_BYTES3
- Public, // ACTIVE_PLAYER_FIELD_LFG_BONUS_FACTION_ID
- Public, // ACTIVE_PLAYER_FIELD_LOOT_SPEC_ID
- Public | UrgentSelfOnly, // ACTIVE_PLAYER_FIELD_OVERRIDE_ZONE_PVP_TYPE
- Public, // ACTIVE_PLAYER_FIELD_BAG_SLOT_FLAGS
- Public, // ACTIVE_PLAYER_FIELD_BAG_SLOT_FLAGS+1
- Public, // ACTIVE_PLAYER_FIELD_BAG_SLOT_FLAGS+2
- Public, // ACTIVE_PLAYER_FIELD_BAG_SLOT_FLAGS+3
- Public, // ACTIVE_PLAYER_FIELD_BANK_BAG_SLOT_FLAGS
- Public, // ACTIVE_PLAYER_FIELD_BANK_BAG_SLOT_FLAGS+1
- Public, // ACTIVE_PLAYER_FIELD_BANK_BAG_SLOT_FLAGS+2
- Public, // ACTIVE_PLAYER_FIELD_BANK_BAG_SLOT_FLAGS+3
- Public, // ACTIVE_PLAYER_FIELD_BANK_BAG_SLOT_FLAGS+4
- Public, // ACTIVE_PLAYER_FIELD_BANK_BAG_SLOT_FLAGS+5
- Public, // ACTIVE_PLAYER_FIELD_BANK_BAG_SLOT_FLAGS+6
- Public, // ACTIVE_PLAYER_FIELD_INSERT_ITEMS_LEFT_TO_RIGHT
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+2
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+3
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+4
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+5
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+6
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+7
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+8
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+9
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+10
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+11
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+12
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+13
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+14
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+15
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+16
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+17
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+18
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+19
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+20
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+21
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+22
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+23
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+24
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+25
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+26
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+27
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+28
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+29
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+30
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+31
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+32
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+33
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+34
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+35
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+36
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+37
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+38
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+39
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+40
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+41
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+42
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+43
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+44
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+45
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+46
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+47
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+48
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+49
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+50
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+51
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+52
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+53
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+54
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+55
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+56
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+57
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+58
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+59
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+60
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+61
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+62
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+63
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+64
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+65
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+66
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+67
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+68
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+69
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+70
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+71
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+72
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+73
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+74
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+75
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+76
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+77
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+78
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+79
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+80
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+81
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+82
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+83
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+84
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+85
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+86
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+87
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+88
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+89
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+90
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+91
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+92
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+93
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+94
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+95
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+96
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+97
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+98
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+99
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+100
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+101
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+102
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+103
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+104
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+105
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+106
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+107
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+108
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+109
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+110
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+111
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+112
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+113
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+114
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+115
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+116
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+117
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+118
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+119
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+120
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+121
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+122
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+123
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+124
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+125
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+126
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+127
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+128
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+129
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+130
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+131
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+132
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+133
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+134
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+135
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+136
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+137
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+138
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+139
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+140
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+141
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+142
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+143
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+144
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+145
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+146
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+147
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+148
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+149
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+150
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+151
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+152
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+153
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+154
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+155
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+156
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+157
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+158
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+159
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+160
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+161
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+162
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+163
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+164
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+165
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+166
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+167
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+168
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+169
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+170
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+171
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+172
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+173
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+174
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+175
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+176
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+177
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+178
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+179
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+180
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+181
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+182
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+183
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+184
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+185
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+186
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+187
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+188
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+189
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+190
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+191
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+192
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+193
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+194
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+195
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+196
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+197
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+198
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+199
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+200
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+201
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+202
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+203
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+204
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+205
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+206
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+207
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+208
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+209
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+210
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+211
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+212
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+213
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+214
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+215
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+216
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+217
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+218
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+219
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+220
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+221
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+222
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+223
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+224
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+225
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+226
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+227
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+228
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+229
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+230
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+231
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+232
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+233
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+234
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+235
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+236
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+237
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+238
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+239
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+240
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+241
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+242
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+243
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+244
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+245
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+246
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+247
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+248
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+249
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+250
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+251
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+252
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+253
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+254
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+255
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+256
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+257
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+258
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+259
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+260
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+261
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+262
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+263
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+264
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+265
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+266
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+267
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+268
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+269
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+270
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+271
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+272
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+273
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+274
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+275
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+276
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+277
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+278
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+279
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+280
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+281
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+282
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+283
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+284
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+285
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+286
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+287
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+288
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+289
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+290
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+291
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+292
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+293
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+294
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+295
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+296
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+297
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+298
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+299
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+300
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+301
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+302
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+303
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+304
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+305
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+306
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+307
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+308
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+309
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+310
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+311
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+312
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+313
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+314
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+315
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+316
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+317
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+318
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+319
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+320
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+321
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+322
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+323
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+324
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+325
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+326
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+327
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+328
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+329
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+330
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+331
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+332
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+333
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+334
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+335
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+336
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+337
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+338
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+339
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+340
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+341
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+342
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+343
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+344
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+345
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+346
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+347
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+348
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+349
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+350
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+351
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+352
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+353
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+354
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+355
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+356
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+357
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+358
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+359
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+360
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+361
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+362
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+363
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+364
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+365
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+366
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+367
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+368
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+369
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+370
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+371
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+372
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+373
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+374
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+375
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+376
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+377
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+378
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+379
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+380
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+381
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+382
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+383
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+384
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+385
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+386
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+387
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+388
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+389
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+390
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+391
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+392
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+393
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+394
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+395
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+396
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+397
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+398
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+399
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+400
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+401
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+402
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+403
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+404
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+405
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+406
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+407
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+408
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+409
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+410
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+411
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+412
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+413
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+414
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+415
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+416
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+417
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+418
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+419
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+420
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+421
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+422
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+423
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+424
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+425
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+426
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+427
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+428
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+429
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+430
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+431
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+432
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+433
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+434
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+435
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+436
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+437
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+438
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+439
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+440
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+441
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+442
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+443
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+444
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+445
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+446
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+447
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+448
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+449
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+450
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+451
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+452
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+453
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+454
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+455
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+456
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+457
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+458
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+459
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+460
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+461
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+462
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+463
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+464
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+465
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+466
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+467
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+468
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+469
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+470
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+471
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+472
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+473
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+474
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+475
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+476
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+477
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+478
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+479
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+480
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+481
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+482
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+483
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+484
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+485
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+486
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+487
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+488
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+489
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+490
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+491
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+492
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+493
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+494
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+495
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+496
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+497
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+498
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+499
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+500
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+501
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+502
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+503
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+504
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+505
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+506
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+507
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+508
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+509
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+510
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+511
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+512
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+513
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+514
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+515
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+516
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+517
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+518
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+519
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+520
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+521
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+522
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+523
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+524
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+525
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+526
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+527
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+528
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+529
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+530
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+531
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+532
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+533
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+534
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+535
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+536
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+537
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+538
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+539
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+540
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+541
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+542
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+543
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+544
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+545
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+546
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+547
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+548
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+549
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+550
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+551
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+552
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+553
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+554
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+555
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+556
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+557
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+558
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+559
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+560
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+561
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+562
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+563
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+564
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+565
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+566
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+567
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+568
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+569
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+570
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+571
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+572
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+573
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+574
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+575
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+576
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+577
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+578
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+579
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+580
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+581
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+582
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+583
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+584
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+585
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+586
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+587
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+588
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+589
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+590
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+591
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+592
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+593
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+594
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+595
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+596
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+597
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+598
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+599
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+600
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+601
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+602
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+603
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+604
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+605
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+606
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+607
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+608
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+609
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+610
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+611
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+612
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+613
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+614
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+615
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+616
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+617
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+618
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+619
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+620
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+621
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+622
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+623
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+624
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+625
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+626
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+627
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+628
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+629
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+630
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+631
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+632
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+633
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+634
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+635
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+636
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+637
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+638
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+639
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+640
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+641
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+642
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+643
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+644
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+645
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+646
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+647
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+648
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+649
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+650
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+651
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+652
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+653
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+654
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+655
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+656
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+657
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+658
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+659
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+660
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+661
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+662
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+663
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+664
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+665
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+666
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+667
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+668
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+669
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+670
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+671
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+672
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+673
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+674
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+675
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+676
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+677
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+678
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+679
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+680
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+681
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+682
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+683
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+684
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+685
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+686
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+687
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+688
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+689
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+690
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+691
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+692
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+693
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+694
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+695
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+696
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+697
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+698
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+699
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+700
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+701
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+702
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+703
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+704
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+705
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+706
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+707
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+708
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+709
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+710
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+711
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+712
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+713
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+714
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+715
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+716
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+717
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+718
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+719
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+720
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+721
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+722
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+723
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+724
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+725
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+726
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+727
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+728
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+729
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+730
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+731
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+732
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+733
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+734
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+735
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+736
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+737
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+738
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+739
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+740
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+741
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+742
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+743
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+744
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+745
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+746
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+747
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+748
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+749
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+750
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+751
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+752
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+753
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+754
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+755
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+756
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+757
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+758
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+759
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+760
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+761
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+762
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+763
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+764
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+765
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+766
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+767
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+768
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+769
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+770
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+771
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+772
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+773
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+774
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+775
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+776
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+777
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+778
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+779
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+780
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+781
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+782
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+783
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+784
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+785
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+786
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+787
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+788
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+789
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+790
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+791
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+792
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+793
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+794
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+795
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+796
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+797
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+798
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+799
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+800
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+801
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+802
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+803
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+804
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+805
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+806
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+807
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+808
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+809
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+810
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+811
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+812
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+813
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+814
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+815
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+816
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+817
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+818
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+819
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+820
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+821
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+822
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+823
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+824
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+825
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+826
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+827
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+828
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+829
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+830
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+831
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+832
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+833
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+834
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+835
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+836
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+837
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+838
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+839
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+840
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+841
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+842
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+843
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+844
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+845
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+846
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+847
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+848
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+849
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+850
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+851
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+852
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+853
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+854
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+855
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+856
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+857
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+858
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+859
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+860
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+861
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+862
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+863
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+864
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+865
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+866
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+867
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+868
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+869
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+870
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+871
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+872
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+873
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+874
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+875
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+876
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+877
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+878
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+879
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+880
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+881
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+882
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+883
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+884
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+885
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+886
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+887
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+888
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+889
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+890
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+891
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+892
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+893
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+894
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+895
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+896
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+897
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+898
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+899
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+900
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+901
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+902
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+903
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+904
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+905
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+906
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+907
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+908
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+909
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+910
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+911
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+912
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+913
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+914
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+915
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+916
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+917
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+918
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+919
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+920
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+921
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+922
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+923
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+924
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+925
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+926
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+927
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+928
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+929
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+930
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+931
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+932
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+933
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+934
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+935
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+936
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+937
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+938
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+939
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+940
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+941
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+942
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+943
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+944
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+945
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+946
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+947
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+948
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+949
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+950
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+951
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+952
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+953
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+954
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+955
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+956
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+957
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+958
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+959
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+960
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+961
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+962
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+963
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+964
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+965
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+966
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+967
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+968
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+969
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+970
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+971
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+972
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+973
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+974
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+975
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+976
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+977
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+978
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+979
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+980
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+981
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+982
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+983
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+984
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+985
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+986
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+987
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+988
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+989
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+990
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+991
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+992
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+993
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+994
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+995
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+996
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+997
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+998
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+999
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1000
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1001
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1002
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1003
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1004
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1005
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1006
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1007
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1008
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1009
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1010
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1011
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1012
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1013
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1014
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1015
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1016
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1017
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1018
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1019
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1020
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1021
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1022
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1023
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1024
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1025
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1026
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1027
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1028
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1029
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1030
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1031
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1032
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1033
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1034
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1035
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1036
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1037
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1038
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1039
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1040
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1041
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1042
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1043
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1044
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1045
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1046
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1047
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1048
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1049
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1050
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1051
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1052
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1053
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1054
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1055
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1056
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1057
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1058
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1059
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1060
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1061
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1062
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1063
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1064
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1065
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1066
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1067
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1068
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1069
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1070
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1071
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1072
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1073
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1074
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1075
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1076
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1077
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1078
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1079
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1080
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1081
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1082
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1083
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1084
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1085
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1086
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1087
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1088
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1089
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1090
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1091
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1092
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1093
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1094
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1095
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1096
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1097
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1098
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1099
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1100
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1101
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1102
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1103
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1104
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1105
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1106
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1107
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1108
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1109
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1110
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1111
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1112
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1113
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1114
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1115
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1116
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1117
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1118
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1119
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1120
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1121
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1122
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1123
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1124
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1125
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1126
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1127
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1128
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1129
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1130
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1131
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1132
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1133
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1134
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1135
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1136
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1137
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1138
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1139
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1140
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1141
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1142
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1143
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1144
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1145
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1146
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1147
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1148
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1149
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1150
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1151
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1152
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1153
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1154
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1155
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1156
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1157
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1158
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1159
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1160
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1161
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1162
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1163
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1164
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1165
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1166
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1167
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1168
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1169
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1170
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1171
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1172
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1173
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1174
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1175
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1176
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1177
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1178
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1179
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1180
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1181
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1182
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1183
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1184
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1185
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1186
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1187
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1188
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1189
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1190
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1191
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1192
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1193
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1194
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1195
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1196
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1197
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1198
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1199
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1200
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1201
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1202
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1203
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1204
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1205
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1206
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1207
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1208
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1209
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1210
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1211
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1212
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1213
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1214
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1215
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1216
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1217
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1218
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1219
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1220
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1221
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1222
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1223
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1224
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1225
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1226
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1227
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1228
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1229
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1230
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1231
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1232
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1233
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1234
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1235
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1236
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1237
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1238
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1239
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1240
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1241
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1242
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1243
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1244
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1245
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1246
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1247
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1248
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1249
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1250
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1251
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1252
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1253
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1254
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1255
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1256
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1257
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1258
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1259
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1260
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1261
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1262
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1263
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1264
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1265
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1266
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1267
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1268
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1269
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1270
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1271
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1272
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1273
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1274
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1275
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1276
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1277
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1278
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1279
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1280
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1281
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1282
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1283
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1284
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1285
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1286
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1287
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1288
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1289
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1290
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1291
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1292
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1293
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1294
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1295
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1296
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1297
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1298
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1299
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1300
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1301
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1302
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1303
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1304
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1305
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1306
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1307
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1308
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1309
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1310
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1311
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1312
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1313
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1314
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1315
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1316
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1317
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1318
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1319
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1320
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1321
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1322
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1323
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1324
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1325
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1326
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1327
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1328
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1329
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1330
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1331
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1332
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1333
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1334
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1335
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1336
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1337
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1338
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1339
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1340
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1341
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1342
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1343
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1344
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1345
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1346
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1347
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1348
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1349
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1350
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1351
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1352
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1353
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1354
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1355
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1356
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1357
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1358
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1359
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1360
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1361
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1362
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1363
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1364
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1365
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1366
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1367
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1368
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1369
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1370
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1371
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1372
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1373
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1374
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1375
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1376
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1377
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1378
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1379
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1380
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1381
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1382
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1383
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1384
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1385
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1386
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1387
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1388
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1389
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1390
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1391
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1392
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1393
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1394
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1395
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1396
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1397
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1398
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1399
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1400
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1401
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1402
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1403
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1404
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1405
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1406
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1407
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1408
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1409
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1410
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1411
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1412
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1413
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1414
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1415
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1416
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1417
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1418
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1419
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1420
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1421
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1422
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1423
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1424
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1425
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1426
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1427
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1428
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1429
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1430
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1431
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1432
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1433
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1434
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1435
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1436
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1437
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1438
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1439
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1440
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1441
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1442
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1443
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1444
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1445
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1446
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1447
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1448
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1449
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1450
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1451
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1452
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1453
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1454
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1455
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1456
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1457
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1458
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1459
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1460
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1461
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1462
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1463
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1464
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1465
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1466
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1467
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1468
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1469
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1470
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1471
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1472
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1473
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1474
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1475
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1476
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1477
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1478
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1479
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1480
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1481
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1482
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1483
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1484
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1485
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1486
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1487
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1488
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1489
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1490
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1491
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1492
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1493
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1494
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1495
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1496
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1497
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1498
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1499
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1500
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1501
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1502
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1503
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1504
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1505
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1506
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1507
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1508
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1509
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1510
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1511
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1512
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1513
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1514
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1515
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1516
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1517
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1518
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1519
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1520
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1521
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1522
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1523
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1524
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1525
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1526
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1527
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1528
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1529
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1530
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1531
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1532
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1533
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1534
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1535
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1536
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1537
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1538
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1539
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1540
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1541
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1542
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1543
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1544
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1545
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1546
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1547
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1548
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1549
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1550
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1551
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1552
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1553
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1554
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1555
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1556
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1557
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1558
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1559
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1560
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1561
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1562
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1563
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1564
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1565
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1566
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1567
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1568
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1569
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1570
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1571
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1572
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1573
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1574
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1575
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1576
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1577
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1578
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1579
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1580
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1581
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1582
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1583
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1584
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1585
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1586
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1587
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1588
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1589
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1590
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1591
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1592
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1593
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1594
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1595
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1596
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1597
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1598
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1599
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1600
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1601
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1602
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1603
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1604
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1605
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1606
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1607
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1608
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1609
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1610
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1611
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1612
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1613
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1614
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1615
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1616
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1617
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1618
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1619
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1620
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1621
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1622
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1623
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1624
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1625
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1626
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1627
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1628
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1629
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1630
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1631
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1632
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1633
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1634
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1635
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1636
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1637
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1638
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1639
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1640
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1641
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1642
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1643
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1644
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1645
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1646
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1647
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1648
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1649
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1650
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1651
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1652
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1653
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1654
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1655
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1656
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1657
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1658
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1659
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1660
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1661
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1662
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1663
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1664
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1665
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1666
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1667
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1668
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1669
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1670
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1671
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1672
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1673
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1674
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1675
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1676
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1677
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1678
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1679
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1680
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1681
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1682
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1683
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1684
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1685
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1686
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1687
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1688
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1689
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1690
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1691
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1692
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1693
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1694
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1695
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1696
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1697
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1698
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1699
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1700
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1701
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1702
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1703
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1704
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1705
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1706
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1707
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1708
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1709
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1710
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1711
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1712
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1713
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1714
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1715
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1716
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1717
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1718
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1719
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1720
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1721
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1722
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1723
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1724
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1725
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1726
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1727
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1728
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1729
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1730
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1731
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1732
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1733
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1734
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1735
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1736
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1737
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1738
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1739
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1740
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1741
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1742
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1743
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1744
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1745
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1746
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1747
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1748
- Public, // ACTIVE_PLAYER_FIELD_QUEST_COMPLETED+1749
- Public, // ACTIVE_PLAYER_FIELD_HONOR
- Public, // ACTIVE_PLAYER_FIELD_HONOR_NEXT_LEVEL
- Public, // ACTIVE_PLAYER_FIELD_PVP_TIER_MAX_FROM_WINS
- Public, // ACTIVE_PLAYER_FIELD_PVP_LAST_WEEKS_TIER_MAX_FROM_WINS
- };
-
- public static uint[] UnitDynamicUpdateFieldFlags = new uint[(int)ActivePlayerDynamicFields.End]
- {
- Public | Urgent, // UNIT_DYNAMIC_FIELD_PASSIVE_SPELLS
- Public | Urgent, // UNIT_DYNAMIC_FIELD_WORLD_EFFECTS
- Public | Urgent, // UNIT_DYNAMIC_FIELD_CHANNEL_OBJECTS
- Public, // PLAYER_DYNAMIC_FIELD_ARENA_COOLDOWNS
- Public, // ACTIVE_PLAYER_DYNAMIC_FIELD_RESERACH_SITE
- Public, // ACTIVE_PLAYER_DYNAMIC_FIELD_RESEARCH_SITE_PROGRESS
- Public, // ACTIVE_PLAYER_DYNAMIC_FIELD_DAILY_QUESTS
- Public, // ACTIVE_PLAYER_DYNAMIC_FIELD_AVAILABLE_QUEST_LINE_X_QUEST_ID
- None, //
- Public, // ACTIVE_PLAYER_DYNAMIC_FIELD_HEIRLOOMS
- Public, // ACTIVE_PLAYER_DYNAMIC_FIELD_HEIRLOOM_FLAGS
- Public, // ACTIVE_PLAYER_DYNAMIC_FIELD_TOYS
- Public, // ACTIVE_PLAYER_DYNAMIC_FIELD_TRANSMOG
- Public, // ACTIVE_PLAYER_DYNAMIC_FIELD_CONDITIONAL_TRANSMOG
- Public, // ACTIVE_PLAYER_DYNAMIC_FIELD_SELF_RES_SPELLS
- Public, // ACTIVE_PLAYER_DYNAMIC_FIELD_CHARACTER_RESTRICTIONS
- Public, // ACTIVE_PLAYER_DYNAMIC_FIELD_SPELL_PCT_MOD_BY_LABEL
- Public, // ACTIVE_PLAYER_DYNAMIC_FIELD_SPELL_FLAT_MOD_BY_LABEL
- Public, // ACTIVE_PLAYER_DYNAMIC_FIELD_RESERACH
- };
-
- public static uint[] GameObjectUpdateFieldFlags = new uint[(int)GameObjectFields.End]
- {
- Public, // OBJECT_FIELD_GUID
- Public, // OBJECT_FIELD_GUID+1
- Public, // OBJECT_FIELD_GUID+2
- Public, // OBJECT_FIELD_GUID+3
- Dynamic, // OBJECT_FIELD_ENTRY
- Dynamic | Urgent, // OBJECT_DYNAMIC_FLAGS
- Public, // OBJECT_FIELD_SCALE_X
- Public, // GAMEOBJECT_FIELD_CREATED_BY
- Public, // GAMEOBJECT_FIELD_CREATED_BY+1
- Public, // GAMEOBJECT_FIELD_CREATED_BY+2
- Public, // GAMEOBJECT_FIELD_CREATED_BY+3
- Public, // GAMEOBJECT_FIELD_GUILD_GUID
- Public, // GAMEOBJECT_FIELD_GUILD_GUID+1
- Public, // GAMEOBJECT_FIELD_GUILD_GUID+2
- Public, // GAMEOBJECT_FIELD_GUILD_GUID+3
- Dynamic | Urgent, // GAMEOBJECT_DISPLAYID
- Public | Urgent, // GAMEOBJECT_FLAGS
- Public, // GAMEOBJECT_PARENTROTATION
- Public, // GAMEOBJECT_PARENTROTATION+1
- Public, // GAMEOBJECT_PARENTROTATION+2
- Public, // GAMEOBJECT_PARENTROTATION+3
- Public, // GAMEOBJECT_FACTION
- Public, // GAMEOBJECT_LEVEL
- Public | Urgent, // GAMEOBJECT_BYTES_1
- Public | Dynamic | Urgent, // GAMEOBJECT_SPELL_VISUAL_ID
- Dynamic | Urgent, // GAMEOBJECT_STATE_SPELL_VISUAL_ID
- Dynamic | Urgent, // GAMEOBJECT_STATE_ANIM_ID
- Dynamic | Urgent, // GAMEOBJECT_STATE_ANIM_KIT_ID
- Dynamic | Urgent, // GAMEOBJECT_STATE_WORLD_EFFECT_ID
- Dynamic | Urgent, // GAMEOBJECT_STATE_WORLD_EFFECT_ID+1
- Dynamic | Urgent, // GAMEOBJECT_STATE_WORLD_EFFECT_ID+2
- Dynamic | Urgent, // GAMEOBJECT_STATE_WORLD_EFFECT_ID+3
- Public | Urgent, // GAMEOBJECT_FIELD_CUSTOM_PARAM
- };
-
- public static uint[] GameObjectDynamicUpdateFieldFlags = new uint[(int)GameObjectDynamicFields.End]
- {
- Public, // GAMEOBJECT_DYNAMIC_ENABLE_DOODAD_SETS
- };
-
- public static uint[] DynamicObjectUpdateFieldFlags = new uint[(int)DynamicObjectFields.End]
- {
- Public, // OBJECT_FIELD_GUID
- Public, // OBJECT_FIELD_GUID+1
- Public, // OBJECT_FIELD_GUID+2
- Public, // OBJECT_FIELD_GUID+3
- Dynamic, // OBJECT_FIELD_ENTRY
- Dynamic | Urgent, // OBJECT_DYNAMIC_FLAGS
- Public, // OBJECT_FIELD_SCALE_X
- Public, // DYNAMICOBJECT_CASTER
- Public, // DYNAMICOBJECT_CASTER+1
- Public, // DYNAMICOBJECT_CASTER+2
- Public, // DYNAMICOBJECT_CASTER+3
- Public, // DYNAMICOBJECT_TYPE
- Public, // DYNAMICOBJECT_SPELL_X_SPELL_VISUAL_ID
- Public, // DYNAMICOBJECT_SPELLID
- Public, // DYNAMICOBJECT_RADIUS
- Public, // DYNAMICOBJECT_CASTTIME
- };
-
- public static uint[] CorpseUpdateFieldFlags = new uint[(int)CorpseFields.End]
- {
- Public, // OBJECT_FIELD_GUID
- Public, // OBJECT_FIELD_GUID+1
- Public, // OBJECT_FIELD_GUID+2
- Public, // OBJECT_FIELD_GUID+3
- Dynamic, // OBJECT_FIELD_ENTRY
- Dynamic | Urgent, // OBJECT_DYNAMIC_FLAGS
- Public, // OBJECT_FIELD_SCALE_X
- Public, // CORPSE_FIELD_OWNER
- Public, // CORPSE_FIELD_OWNER+1
- Public, // CORPSE_FIELD_OWNER+2
- Public, // CORPSE_FIELD_OWNER+3
- Public, // CORPSE_FIELD_PARTY
- Public, // CORPSE_FIELD_PARTY+1
- Public, // CORPSE_FIELD_PARTY+2
- Public, // CORPSE_FIELD_PARTY+3
- Public, // CORPSE_FIELD_GUILD_GUID
- Public, // CORPSE_FIELD_GUILD_GUID+1
- Public, // CORPSE_FIELD_GUILD_GUID+2
- Public, // CORPSE_FIELD_GUILD_GUID+3
- Public, // CORPSE_FIELD_DISPLAY_ID
- Public, // CORPSE_FIELD_ITEM
- Public, // CORPSE_FIELD_ITEM+1
- Public, // CORPSE_FIELD_ITEM+2
- Public, // CORPSE_FIELD_ITEM+3
- Public, // CORPSE_FIELD_ITEM+4
- Public, // CORPSE_FIELD_ITEM+5
- Public, // CORPSE_FIELD_ITEM+6
- Public, // CORPSE_FIELD_ITEM+7
- Public, // CORPSE_FIELD_ITEM+8
- Public, // CORPSE_FIELD_ITEM+9
- Public, // CORPSE_FIELD_ITEM+10
- Public, // CORPSE_FIELD_ITEM+11
- Public, // CORPSE_FIELD_ITEM+12
- Public, // CORPSE_FIELD_ITEM+13
- Public, // CORPSE_FIELD_ITEM+14
- Public, // CORPSE_FIELD_ITEM+15
- Public, // CORPSE_FIELD_ITEM+16
- Public, // CORPSE_FIELD_ITEM+17
- Public, // CORPSE_FIELD_ITEM+18
- Public, // CORPSE_FIELD_BYTES_1
- Public, // CORPSE_FIELD_BYTES_2
- Public, // CORPSE_FIELD_FLAGS
- Dynamic, // CORPSE_FIELD_DYNAMIC_FLAGS
- Public, // CORPSE_FIELD_FACTIONTEMPLATE
- Public, // CORPSE_FIELD_CUSTOM_DISPLAY_OPTION
- };
-
- public static uint[] AreaTriggerUpdateFieldFlags = new uint[(int)AreaTriggerFields.End]
- {
- Public, // OBJECT_FIELD_GUID
- Public, // OBJECT_FIELD_GUID+1
- Public, // OBJECT_FIELD_GUID+2
- Public, // OBJECT_FIELD_GUID+3
- Dynamic, // OBJECT_FIELD_ENTRY
- Dynamic | Urgent, // OBJECT_DYNAMIC_FLAGS
- Public, // OBJECT_FIELD_SCALE_X
- Public | Urgent, // AREATRIGGER_OVERRIDE_SCALE_CURVE
- Public | Urgent, // AREATRIGGER_OVERRIDE_SCALE_CURVE+1
- Public | Urgent, // AREATRIGGER_OVERRIDE_SCALE_CURVE+2
- Public | Urgent, // AREATRIGGER_OVERRIDE_SCALE_CURVE+3
- Public | Urgent, // AREATRIGGER_OVERRIDE_SCALE_CURVE+4
- Public | Urgent, // AREATRIGGER_OVERRIDE_SCALE_CURVE+5
- Public | Urgent, // AREATRIGGER_OVERRIDE_SCALE_CURVE+6
- Public | Urgent, // AREATRIGGER_EXTRA_SCALE_CURVE
- Public | Urgent, // AREATRIGGER_EXTRA_SCALE_CURVE+1
- Public | Urgent, // AREATRIGGER_EXTRA_SCALE_CURVE+2
- Public | Urgent, // AREATRIGGER_EXTRA_SCALE_CURVE+3
- Public | Urgent, // AREATRIGGER_EXTRA_SCALE_CURVE+4
- Public | Urgent, // AREATRIGGER_EXTRA_SCALE_CURVE+5
- Public | Urgent, // AREATRIGGER_EXTRA_SCALE_CURVE+6
- Public, // AREATRIGGER_CASTER
- Public, // AREATRIGGER_CASTER+1
- Public, // AREATRIGGER_CASTER+2
- Public, // AREATRIGGER_CASTER+3
- Public, // AREATRIGGER_DURATION
- Public | Urgent, // AREATRIGGER_TIME_TO_TARGET
- Public | Urgent, // AREATRIGGER_TIME_TO_TARGET_SCALE
- Public | Urgent, // AREATRIGGER_TIME_TO_TARGET_EXTRA_SCALE
- Public, // AREATRIGGER_SPELLID
- Public, // AREATRIGGER_SPELL_FOR_VISUALS
- Public, // AREATRIGGER_SPELL_X_SPELL_VISUAL_ID
- Dynamic | Urgent, // AREATRIGGER_BOUNDS_RADIUS_2D
- Public, // AREATRIGGER_DECAL_PROPERTIES_ID
- Public, // AREATRIGGER_CREATING_EFFECT_GUID
- Public, // AREATRIGGER_CREATING_EFFECT_GUID+1
- Public, // AREATRIGGER_CREATING_EFFECT_GUID+2
- Public, // AREATRIGGER_CREATING_EFFECT_GUID+3
- };
-
- public static uint[] SceneObjectUpdateFieldFlags = new uint[(int)SceneObjectFields.End]
- {
- Public, // OBJECT_FIELD_GUID
- Public, // OBJECT_FIELD_GUID+1
- Public, // OBJECT_FIELD_GUID+2
- Public, // OBJECT_FIELD_GUID+3
- Dynamic, // OBJECT_FIELD_ENTRY
- Dynamic | Urgent, // OBJECT_DYNAMIC_FLAGS
- Public, // OBJECT_FIELD_SCALE_X
- Public, // SCENEOBJECT_FIELD_SCRIPT_PACKAGE_ID
- Public, // SCENEOBJECT_FIELD_RND_SEED_VAL
- Public, // SCENEOBJECT_FIELD_CREATEDBY
- Public, // SCENEOBJECT_FIELD_CREATEDBY+1
- Public, // SCENEOBJECT_FIELD_CREATEDBY+2
- Public, // SCENEOBJECT_FIELD_CREATEDBY+3
- Public, // SCENEOBJECT_FIELD_SCENE_TYPE
- };
-
- public static uint[] ConversationUpdateFieldFlags = new uint[(int)ConversationFields.End]
- {
- Public, // OBJECT_FIELD_GUID
- Public, // OBJECT_FIELD_GUID+1
- Public, // OBJECT_FIELD_GUID+2
- Public, // OBJECT_FIELD_GUID+3
- Dynamic, // OBJECT_FIELD_ENTRY
- Dynamic | Urgent, // OBJECT_DYNAMIC_FLAGS
- Public, // OBJECT_FIELD_SCALE_X
- Dynamic, // CONVERSATION_LAST_LINE_END_TIME
- };
-
- public static uint[] ConversationDynamicUpdateFieldFlags = new uint[(int)ConversationDynamicFields.End]
- {
- Public, // CONVERSATION_DYNAMIC_FIELD_ACTORS
- Unknownx100, // CONVERSATION_DYNAMIC_FIELD_LINES
- };
- }
-}
diff --git a/Source/Framework/Constants/Update/UpdateFields.cs b/Source/Framework/Constants/Update/UpdateFields.cs
deleted file mode 100644
index c6e386044..000000000
--- a/Source/Framework/Constants/Update/UpdateFields.cs
+++ /dev/null
@@ -1,455 +0,0 @@
-/*
- * Copyright (C) 2012-2019 CypherCore
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-
-namespace Framework.Constants
-{
- public enum ObjectFields
- {
- Guid = 0x000, // Size: 4, Flags: Public
- Entry = 0x004, // Size: 1, Flags: Dynamic
- DynamicFlags = 0x005, // Size: 1, Flags: Dynamic, Urgent
- ScaleX = 0x006, // Size: 1, Flags: Public
- End = 0x007,
- }
-
- public enum ItemFields
- {
- Owner = ObjectFields.End + 0x000, // Size: 4, Flags: Public
- Contained = ObjectFields.End + 0x004, // Size: 4, Flags: Public
- Creator = ObjectFields.End + 0x008, // Size: 4, Flags: Public
- GiftCreator = ObjectFields.End + 0x00c, // Size: 4, Flags: Public
- StackCount = ObjectFields.End + 0x010, // Size: 1, Flags: Owner
- Duration = ObjectFields.End + 0x011, // Size: 1, Flags: Owner
- SpellCharges = ObjectFields.End + 0x012, // Size: 5, Flags: Owner
- Flags = ObjectFields.End + 0x017, // Size: 1, Flags: Public
- Enchantment = ObjectFields.End + 0x018, // Size: 39, Flags: Public
- PropertySeed = ObjectFields.End + 0x03f, // Size: 1, Flags: Public
- RandomPropertiesId = ObjectFields.End + 0x040, // Size: 1, Flags: Public
- Durability = ObjectFields.End + 0x041, // Size: 1, Flags: Owner
- MaxDurability = ObjectFields.End + 0x042, // Size: 1, Flags: Owner
- CreatePlayedTime = ObjectFields.End + 0x043, // Size: 1, Flags: Public
- ModifiersMask = ObjectFields.End + 0x044, // Size: 1, Flags: Owner
- Context = ObjectFields.End + 0x045, // Size: 1, Flags: Public
- ArtifactXp = ObjectFields.End + 0x046, // Size: 2, Flags: OWNER
- AppearanceModId = ObjectFields.End + 0x048, // Size: 1, Flags: OWNER
- End = ObjectFields.End + 0x049
- }
-
- public enum ItemDynamicFields
- {
- Modifiers = 0x000, // Flags: Owner
- BonusListIds = 0x001, // Flags: Owner, 0x100
- ArtifactPowers = 0x002, // Flags: OWNER
- Gems = 0x003, // Flags: OWNER
- End = 0x004
- }
-
- public enum ContainerFields
- {
- Slot1 = ItemFields.End + 0x000, // Size: 144, Flags: Public
- NumSlots = ItemFields.End + 0x090, // Size: 1, Flags: Public
- End = ItemFields.End + 0x091
- }
-
- public enum AzeriteEmpoweredItemFields
- {
- Selections = ItemFields.End + 0x000, // Size: 4, Flags: PUBLIC
- End = ItemFields.End + 0x004,
- }
-
- public enum AzeriteEmpoweredItemDynamicFields
- {
- End = ItemDynamicFields.End + 0x000,
- }
-
- public enum AzeriteItemFields
- {
- Xp = ItemFields.End + 0x000, // Size: 2, Flags: PUBLIC
- Level = ItemFields.End + 0x002, // Size: 1, Flags: PUBLIC
- AuraLevel = ItemFields.End + 0x003, // Size: 1, Flags: PUBLIC
- KnowledgeLevel = ItemFields.End + 0x004, // Size: 1, Flags: OWNER
- DebugKnowledgeWeek = ItemFields.End + 0x005, // Size: 1, Flags: OWNER
- End = ItemFields.End + 0x006,
- }
-
- public enum AzeriteItemDynamicFields
- {
- End = ItemDynamicFields.End + 0x000,
- }
-
- public enum UnitFields
- {
- Charm = ObjectFields.End + 0x000, // Size: 4, Flags: Public
- Summon = ObjectFields.End + 0x004, // Size: 4, Flags: Public
- Critter = ObjectFields.End + 0x008, // Size: 4, Flags: Privaten
- CharmedBy = ObjectFields.End + 0x00c, // Size: 4, Flags: Public
- SummonedBy = ObjectFields.End + 0x010, // Size: 4, Flags: Public
- CreatedBy = ObjectFields.End + 0x014, // Size: 4, Flags: Public
- DemonCreator = ObjectFields.End + 0x018, // Size: 4, Flags: Public
- LookAtControllerTarget = ObjectFields.End + 0x01c, // Size: 4, Flags: Public
- Target = ObjectFields.End + 0x020, // Size: 4, Flags: Public
- BattlePetCompanionGuid = ObjectFields.End + 0x024, // Size: 4, Flags: Public
- BattlePetDbId = ObjectFields.End + 0x028, // Size: 2, Flags: Public
- ChannelData = ObjectFields.End + 0x02a, // Size: 2, Flags: Public, Urgent
- SummonedByHomeRealm = ObjectFields.End + 0x02c, // Size: 1, Flags: Public
- Bytes0 = ObjectFields.End + 0x02d, // Size: 1, Flags: Public
- DisplayPower = ObjectFields.End + 0x02e, // Size: 1, Flags: Public
- OverrideDisplayPowerId = ObjectFields.End + 0x02f, // Size: 1, Flags: Public
- Health = ObjectFields.End + 0x030, // Size: 2, Flags: Public
- Power = ObjectFields.End + 0x032, // Size: 6, Flags: Public, UrgentSelfOnly
- MaxHealth = ObjectFields.End + 0x038, // Size: 2, Flags: Public
- MaxPower = ObjectFields.End + 0x03a, // Size: 6, Flags: Public
- PowerRegenFlatModifier = ObjectFields.End + 0x040, // Size: 6, Flags: Private, Owner, UnitAll
- PowerRegenInterruptedFlatModifier = ObjectFields.End + 0x046, // Size: 6, Flags: Private, Owner, UnitAll
- Level = ObjectFields.End + 0x04c, // Size: 1, Flags: Public
- EffectiveLevel = ObjectFields.End + 0x04d, // Size: 1, Flags: Public
- ContentTuningId = ObjectFields.End + 0x04e, // Size: 1, Flags: Public
- ScalingLevelMin = ObjectFields.End + 0x04f, // Size: 1, Flags: Public
- ScalingLevelMax = ObjectFields.End + 0x050, // Size: 1, Flags: Public
- ScalingLevelDelta = ObjectFields.End + 0x051, // Size: 1, Flags: Public
- ScalingFactionGroup = ObjectFields.End + 0x052, // Size: 1, Flags: Public
- ScalingHealthItemLevelCurveId = ObjectFields.End + 0x053, // Size: 1, Flags: Public
- ScalingDamageItemLevelCurveId = ObjectFields.End + 0x054, // Size: 1, Flags: Public
- FactionTemplate = ObjectFields.End + 0x055, // Size: 1, Flags: Public
- VirtualItemSlotId = ObjectFields.End + 0x056, // Size: 6, Flags: Public
- Flags = ObjectFields.End + 0x05c, // Size: 1, Flags: Public, Urgent
- Flags2 = ObjectFields.End + 0x05d, // Size: 1, Flags: Public, Urgent
- Flags3 = ObjectFields.End + 0x05e, // Size: 1, Flags: Public, UrgentScalingLevelDelta
- AuraState = ObjectFields.End + 0x05f, // Size: 1, Flags: Public
- BaseAttackTime = ObjectFields.End + 0x060, // Size: 2, Flags: Public
- RangedAttackTime = ObjectFields.End + 0x062, // Size: 1, Flags: Private
- BoundingRadius = ObjectFields.End + 0x063, // Size: 1, Flags: Public
- CombatReach = ObjectFields.End + 0x064, // Size: 1, Flags: Public
- DisplayId = ObjectFields.End + 0x065, // Size: 1, Flags: Dynamic, Urgent
- DisplayScale = ObjectFields.End + 0x066, // Size: 1, Flags: Dynamic, Urgent
- NativeDisplayId = ObjectFields.End + 0x067, // Size: 1, Flags: Public, Urgent
- NativeXDisplayScale = ObjectFields.End + 0x068, // Size: 1, Flags: Public, Urgent
- MountDisplayId = ObjectFields.End + 0x069, // Size: 1, Flags: Public, Urgent
- MinDamage = ObjectFields.End + 0x06a, // Size: 1, Flags: Private, Owner, SpecialInfo
- MaxDamage = ObjectFields.End + 0x06b, // Size: 1, Flags: Private, Owner, SpecialInfo
- MinOffHandDamage = ObjectFields.End + 0x06c, // Size: 1, Flags: Private, Owner, SpecialInfo
- MaxOffHandDamage = ObjectFields.End + 0x06d, // Size: 1, Flags: Private, Owner, SpecialInfo
- Bytes1 = ObjectFields.End + 0x06e, // Size: 1, Flags: Public
- PetNumber = ObjectFields.End + 0x06f, // Size: 1, Flags: Public
- PetNameTimestamp = ObjectFields.End + 0x070, // Size: 1, Flags: Public
- PetExperience = ObjectFields.End + 0x071, // Size: 1, Flags: Owner
- PetNextLevelExp = ObjectFields.End + 0x072, // Size: 1, Flags: Owner
- ModCastSpeed = ObjectFields.End + 0x073, // Size: 1, Flags: Public
- ModCastHaste = ObjectFields.End + 0x074, // Size: 1, Flags: Public
- ModHaste = ObjectFields.End + 0x075, // Size: 1, Flags: Public
- ModRangedHaste = ObjectFields.End + 0x076, // Size: 1, Flags: Public
- ModHasteRegen = ObjectFields.End + 0x077, // Size: 1, Flags: Public
- ModTimeRate = ObjectFields.End + 0x078, // Size: 1, Flags: Public
- CreatedBySpell = ObjectFields.End + 0x079, // Size: 1, Flags: Public
- NpcFlags = ObjectFields.End + 0x07a, // Size: 2, Flags: Public, Dynamic
- NpcEmotestate = ObjectFields.End + 0x07c, // Size: 1, Flags: Public
- Stat = ObjectFields.End + 0x07d, // Size: 4, Flags: Private, Owner
- PosStat = ObjectFields.End + 0x081, // Size: 4, Flags: Private, Owner
- NegStat = ObjectFields.End + 0x085, // Size: 4, Flags: Private, Owner
- Resistances = ObjectFields.End + 0x089, // Size: 7, Flags: Private, Owner, SpecialInfo
- BonusResistanceMods = ObjectFields.End + 0x090, // Size: 7, Flags: Private, Owner
- BaseMana = ObjectFields.End + 0x097, // Size: 1, Flags: Public
- BaseHealth = ObjectFields.End + 0x098, // Size: 1, Flags: Private, Owner
- Bytes2 = ObjectFields.End + 0x099, // Size: 1, Flags: Public
- AttackPower = ObjectFields.End + 0x09a, // Size: 1, Flags: Private, Owner
- AttackPowerModPos = ObjectFields.End + 0x09b, // Size: 1, Flags: Private, Owner
- AttackPowerModNeg = ObjectFields.End + 0x09c, // Size: 1, Flags: Private, Owner
- AttackPowerMultiplier = ObjectFields.End + 0x09d, // Size: 1, Flags: Private, Owner
- RangedAttackPower = ObjectFields.End + 0x09e, // Size: 1, Flags: Private, Owner
- RangedAttackPowerModPos = ObjectFields.End + 0x09f, // Size: 1, Flags: Private, Owner
- RangedAttackPowerModNeg = ObjectFields.End + 0x0a0, // Size: 1, Flags: Private, Owner
- RangedAttackPowerMultiplier = ObjectFields.End + 0x0a1, // Size: 1, Flags: Private, Owner
- MainHandWeaponAttackPower = ObjectFields.End + 0x0a2, // Size: 1, Flags: Private, Owner
- OffHandWeaponAttackPower = ObjectFields.End + 0x0a3, // Size: 1, Flags: Private, Owner
- RangedHandWeaponAttackPower = ObjectFields.End + 0x0a4, // Size: 1, Flags: Private, Owner
- AttackSpeedAura = ObjectFields.End + 0x0a5, // Size: 1, Flags: Private, Owner
- Lifesteal = ObjectFields.End + 0x0a6, // Size: 1, Flags: Private, Owner
- MinRangedDamage = ObjectFields.End + 0x0a7, // Size: 1, Flags: Private, Owner
- MaxRangedDamage = ObjectFields.End + 0x0a8, // Size: 1, Flags: Private, Owner
- PowerCostModifier = ObjectFields.End + 0x0a9, // Size: 7, Flags: Private, Owner
- PowerCostMultiplier = ObjectFields.End + 0x0b0, // Size: 7, Flags: Private, Owner
- MaxHealthModifier = ObjectFields.End + 0x0b7, // Size: 1, Flags: Private, Owner
- HoverHeight = ObjectFields.End + 0x0b8, // Size: 1, Flags: Public
- MinItemLevelCutoff = ObjectFields.End + 0x0b9, // Size: 1, Flags: Public
- MinItemLevel = ObjectFields.End + 0x0ba, // Size: 1, Flags: Public
- MaxItemlevel = ObjectFields.End + 0x0bb, // Size: 1, Flags: Public
- WildBattlepetLevel = ObjectFields.End + 0x0bc, // Size: 1, Flags: Public
- BattlepetCompanionNameTimestamp = ObjectFields.End + 0x0bd, // Size: 1, Flags: Public
- InteractSpellid = ObjectFields.End + 0x0be, // Size: 1, Flags: Public
- StateSpellVisualId = ObjectFields.End + 0x0bf, // Size: 1, Flags: Dynamic, Urgent
- StateAnimId = ObjectFields.End + 0x0c0, // Size: 1, Flags: Dynamic, Urgent
- StateAnimKitId = ObjectFields.End + 0x0c1, // Size: 1, Flags: Dynamic, Urgent
- StateWorldEffectId = ObjectFields.End + 0x0c2, // Size: 4, Flags: Dynamic, Urgent
- ScaleDuration = ObjectFields.End + 0x0c6, // Size: 1, Flags: Public
- LooksLikeMountId = ObjectFields.End + 0x0c7, // Size: 1, Flags: Public
- LooksLikeCreatureId = ObjectFields.End + 0x0c8, // Size: 1, Flags: Public
- LookAtControllerId = ObjectFields.End + 0x0c9, // Size: 1, Flags: Public
- GuildGuid = ObjectFields.End + 0x0ca, // Size: 4, Flags: Public
- End = ObjectFields.End + 0x0ce
- }
-
- public enum UnitDynamicFields
- {
- PassiveSpells = 0x000, // Flags: Public, Urgent
- WorldEffects = 0x001, // Flags: Public, Urgent
- ChannelObjects = 0x002, // Flags: PUBLIC, URGENT
- End = 0x003
- }
-
- public enum PlayerFields
- {
- DuelArbiter = UnitFields.End + 0x000, // Size: 4, Flags: Public
- WowAccount = UnitFields.End + 0x004, // Size: 4, Flags: Public
- LootTargetGuid = UnitFields.End + 0x008, // Size: 4, Flags: Public
- Flags = UnitFields.End + 0x00c, // Size: 1, Flags: Public
- FlagsEx = UnitFields.End + 0x00d, // Size: 1, Flags: Public
- GuildRank = UnitFields.End + 0x00e, // Size: 1, Flags: Public
- GuildDeleteDate = UnitFields.End + 0x00f, // Size: 1, Flags: Public
- GuildLevel = UnitFields.End + 0x010, // Size: 1, Flags: Public
- Bytes = UnitFields.End + 0x011, // Size: 1, Flags: Public
- Bytes2 = UnitFields.End + 0x012, // Size: 1, Flags: Public
- Bytes3 = UnitFields.End + 0x013, // Size: 1, Flags: Public
- Bytes4 = UnitFields.End + 0x014, // Size: 1, Flags: Public
- DuelTeam = UnitFields.End + 0x015, // Size: 1, Flags: Public
- GuildTimestamp = UnitFields.End + 0x016, // Size: 1, Flags: Public
- QuestLog = UnitFields.End + 0x017, // Size: 1600, Flags: PartyMember
- VisibleItem = UnitFields.End + 0x657, // Size: 38, Flags: Public
- ChosenTitle = UnitFields.End + 0x67d, // Size: 1, Flags: Public
- FakeInebriation = UnitFields.End + 0x67e, // Size: 1, Flags: Public
- VirtualRealm = UnitFields.End + 0x67f, // Size: 1, Flags: Public
- CurrentSpecId = UnitFields.End + 0x680, // Size: 1, Flags: Public
- TaxiMountAnimKitId = UnitFields.End + 0x681, // Size: 1, Flags: Public
- AvgItemLevel = UnitFields.End + 0x682, // Size: 4, Flags: Public
- CurrentBattlePetBreedQuality = UnitFields.End + 0x686, // Size: 1, Flags: Public
- HonorLevel = UnitFields.End + 0x687, // Size: 1, Flags: Public
- End = UnitFields.End + 0x688
- }
-
- public enum PlayerDynamicFields
- {
- ArenaCooldowns = UnitDynamicFields.End + 0x000, // Flags: Public
- End = UnitDynamicFields.End + 0x001,
- }
-
- public enum ActivePlayerFields
- {
- InvSlotHead = PlayerFields.End + 0x000, // Size: 780, Flags: Public
- Farsight = PlayerFields.End + 0x30c, // Size: 4, Flags: Public
- SummonedBattlePetId = PlayerFields.End + 0x310, // Size: 4, Flags: Public
- KnownTitles = PlayerFields.End + 0x314, // Size: 12, Flags: Public
- Coinage = PlayerFields.End + 0x320, // Size: 2, Flags: Public
- Xp = PlayerFields.End + 0x322, // Size: 1, Flags: Public
- NextLevelXp = PlayerFields.End + 0x323, // Size: 1, Flags: Public
- TrialXp = PlayerFields.End + 0x324, // Size: 1, Flags: Public
- SkillLineId = PlayerFields.End + 0x325, // Size: 128, Flags: Public
- SkillLineStep = PlayerFields.End + 0x3a5, // Size: 128, Flags: Public
- SkillLineRank = PlayerFields.End + 0x425, // Size: 128, Flags: Public
- SkillLineStartRank = PlayerFields.End + 0x4a5, // Size: 128, Flags: Public
- SkillLineMaxRank = PlayerFields.End + 0x525, // Size: 128, Flags: Public
- SkillLineTempBonus = PlayerFields.End + 0x5a5, // Size: 128, Flags: Public
- SkillLinePermBonus = PlayerFields.End + 0x625, // Size: 128, Flags: Public
- CharacterPoints = PlayerFields.End + 0x6a5, // Size: 1, Flags: Public
- MaxTalentTiers = PlayerFields.End + 0x6a6, // Size: 1, Flags: Public
- TrackCreatures = PlayerFields.End + 0x6a7, // Size: 1, Flags: Public
- TrackResources = PlayerFields.End + 0x6a8, // Size: 2, Flags: Public
- Expertise = PlayerFields.End + 0x6aa, // Size: 1, Flags: Public
- OffhandExpertise = PlayerFields.End + 0x6ab, // Size: 1, Flags: Public
- RangedExpertise = PlayerFields.End + 0x6ac, // Size: 1, Flags: Public
- CombatRatingExpertise = PlayerFields.End + 0x6ad, // Size: 1, Flags: Public
- BlockPercentage = PlayerFields.End + 0x6ae, // Size: 1, Flags: Public
- DodgePercentage = PlayerFields.End + 0x6af, // Size: 1, Flags: Public
- DodgePercentageFromAttribute = PlayerFields.End + 0x6b0, // Size: 1, Flags: Public
- ParryPercentage = PlayerFields.End + 0x6b1, // Size: 1, Flags: Public
- ParryPercentageFromAttribute = PlayerFields.End + 0x6b2, // Size: 1, Flags: Public
- CritPercentage = PlayerFields.End + 0x6b3, // Size: 1, Flags: Public
- RangedCritPercentage = PlayerFields.End + 0x6b4, // Size: 1, Flags: Public
- OffhandCritPercentage = PlayerFields.End + 0x6b5, // Size: 1, Flags: Public
- SpellCritPercentage1 = PlayerFields.End + 0x6b6, // Size: 1, Flags: Public
- ShieldBlock = PlayerFields.End + 0x6b7, // Size: 1, Flags: Public
- ShieldBlockCritPercentage = PlayerFields.End + 0x6b8, // Size: 1, Flags: Public
- Mastery = PlayerFields.End + 0x6b9, // Size: 1, Flags: Public
- Speed = PlayerFields.End + 0x6ba, // Size: 1, Flags: Public
- Avoidance = PlayerFields.End + 0x6bb, // Size: 1, Flags: Public
- Sturdiness = PlayerFields.End + 0x6bc, // Size: 1, Flags: Public
- Versatility = PlayerFields.End + 0x6bd, // Size: 1, Flags: Public
- VersatilityBonus = PlayerFields.End + 0x6be, // Size: 1, Flags: Public
- PvpPowerDamage = PlayerFields.End + 0x6bf, // Size: 1, Flags: Public
- PvpPowerHealing = PlayerFields.End + 0x6c0, // Size: 1, Flags: Public
- ExploredZones = PlayerFields.End + 0x6c1, // Size: 320, Flags: Public
- RestInfo = PlayerFields.End + 0x801, // Size: 4, Flags: Public
- ModDamageDonePos = PlayerFields.End + 0x805, // Size: 7, Flags: Public
- ModDamageDoneNeg = PlayerFields.End + 0x80c, // Size: 7, Flags: Public
- ModDamageDonePct = PlayerFields.End + 0x813, // Size: 7, Flags: Public
- ModHealingDonePos = PlayerFields.End + 0x81a, // Size: 1, Flags: Public
- ModHealingPct = PlayerFields.End + 0x81b, // Size: 1, Flags: Public
- ModHealingDonePct = PlayerFields.End + 0x81c, // Size: 1, Flags: Public
- ModPeriodicHealingDonePercent = PlayerFields.End + 0x81d, // Size: 1, Flags: Public
- WeaponDmgMultipliers = PlayerFields.End + 0x81e, // Size: 3, Flags: Public
- WeaponAtkSpeedMultipliers = PlayerFields.End + 0x821, // Size: 3, Flags: Public
- ModSpellPowerPct = PlayerFields.End + 0x824, // Size: 1, Flags: Public
- ModResiliencePercent = PlayerFields.End + 0x825, // Size: 1, Flags: Public
- OverrideSpellPowerByApPct = PlayerFields.End + 0x826, // Size: 1, Flags: Public
- OverrideApBySpellPowerPercent = PlayerFields.End + 0x827, // Size: 1, Flags: Public
- ModTargetResistance = PlayerFields.End + 0x828, // Size: 1, Flags: Public
- ModTargetPhysicalResistance = PlayerFields.End + 0x829, // Size: 1, Flags: Public
- LocalFlags = PlayerFields.End + 0x82a, // Size: 1, Flags: Public
- Bytes = PlayerFields.End + 0x82b, // Size: 1, Flags: Public
- PvpMedals = PlayerFields.End + 0x82c, // Size: 1, Flags: Public
- BuyBackPrice = PlayerFields.End + 0x82d, // Size: 12, Flags: Public
- BuyBackTimestamp = PlayerFields.End + 0x839, // Size: 12, Flags: Public
- Kills = PlayerFields.End + 0x845, // Size: 1, Flags: Public
- LifetimeHonorableKills = PlayerFields.End + 0x846, // Size: 1, Flags: Public
- WatchedFactionIndex = PlayerFields.End + 0x847, // Size: 1, Flags: Public
- CombatRating = PlayerFields.End + 0x848, // Size: 32, Flags: Public
- ArenaTeamInfo = PlayerFields.End + 0x868, // Size: 54, Flags: Public
- MaxLevel = PlayerFields.End + 0x89e, // Size: 1, Flags: Public
- ScalingPlayerLevelDelta = PlayerFields.End + 0x89f, // Size: 1, Flags: Public
- MaxCreatureScalingLevel = PlayerFields.End + 0x8a0, // Size: 1, Flags: Public
- NoReagentCost = PlayerFields.End + 0x8a1, // Size: 4, Flags: Public
- PetSpellPower = PlayerFields.End + 0x8a5, // Size: 1, Flags: Public
- ProfessionSkillLine = PlayerFields.End + 0x8a6, // Size: 2, Flags: Public
- UiHitModifier = PlayerFields.End + 0x8a8, // Size: 1, Flags: Public
- UiSpellHitModifier = PlayerFields.End + 0x8a9, // Size: 1, Flags: Public
- HomeRealmTimeOffset = PlayerFields.End + 0x8aa, // Size: 1, Flags: Public
- ModPetHaste = PlayerFields.End + 0x8ab, // Size: 1, Flags: Public
- Bytes2 = PlayerFields.End + 0x8ac, // Size: 1, Flags: Public
- Bytes3 = PlayerFields.End + 0x8ad, // Size: 1, Flags: Public, UrgentSelfOnly
- LfgBonusFactionId = PlayerFields.End + 0x8ae, // Size: 1, Flags: Public
- LootSpecId = PlayerFields.End + 0x8af, // Size: 1, Flags: Public
- OverrideZonePvpType = PlayerFields.End + 0x8b0, // Size: 1, Flags: Public, UrgentSelfOnly
- BagSlotFlags = PlayerFields.End + 0x8b1, // Size: 4, Flags: Public
- BankBagSlotFlags = PlayerFields.End + 0x8b5, // Size: 7, Flags: Public
- InsertItemsLeftToRight = PlayerFields.End + 0x8bc, // Size: 1, Flags: Public
- QuestCompleted = PlayerFields.End + 0x8bd, // Size: 1750, Flags: Public
- Honor = PlayerFields.End + 0xf93, // Size: 1, Flags: Public
- HonorNextLevel = PlayerFields.End + 0xf94, // Size: 1, Flags: Public
- PvpTierMaxFromWins = PlayerFields.End + 0xf95, // Size: 1, Flags: Public
- PvpLastWeeksTierMaxFromWins = PlayerFields.End + 0xf96, // Size: 1, Flags: Public
- End = PlayerFields.End + 0xf97,
- }
-
- public enum ActivePlayerDynamicFields
- {
- ReserachSite = PlayerDynamicFields.End + 0x000, // Flags: Public
- ResearchSiteProgress = PlayerDynamicFields.End + 0x001, // Flags: Public
- DailyQuests = PlayerDynamicFields.End + 0x002, // Flags: Public
- AvailableQuestLineXQuestId = PlayerDynamicFields.End + 0x003, // Flags: Public
- Heirlooms = PlayerDynamicFields.End + 0x005, // Flags: Public
- HeirloomFlags = PlayerDynamicFields.End + 0x006, // Flags: Public
- Toys = PlayerDynamicFields.End + 0x007, // Flags: Public
- Transmog = PlayerDynamicFields.End + 0x008, // Flags: Public
- ConditionalTransmog = PlayerDynamicFields.End + 0x009, // Flags: Public
- SelfResSpells = PlayerDynamicFields.End + 0x00a, // Flags: Public
- CharacterRestrictions = PlayerDynamicFields.End + 0x00b, // Flags: Public
- SpellPctModByLabel = PlayerDynamicFields.End + 0x00c, // Flags: Public
- SpellFlatModByLabel = PlayerDynamicFields.End + 0x00d, // Flags: Public
- Reserach = PlayerDynamicFields.End + 0x00e, // Flags: Public
- End = PlayerDynamicFields.End + 0x00f,
- }
-
- public enum GameObjectFields
- {
- CreatedBy = ObjectFields.End + 0x000, // Size: 4, Flags: Public
- GuildGuid = ObjectFields.End + 0x004, // Size: 4, Flags: Public
- DisplayId = ObjectFields.End + 0x008, // Size: 1, Flags: Dynamic, Urgent
- Flags = ObjectFields.End + 0x009, // Size: 1, Flags: Public, Urgent
- ParentRotation = ObjectFields.End + 0x00a, // Size: 4, Flags: Public
- Faction = ObjectFields.End + 0x00e, // Size: 1, Flags: Public
- Level = ObjectFields.End + 0x00f, // Size: 1, Flags: Public
- Bytes1 = ObjectFields.End + 0x010, // Size: 1, Flags: Public, Urgent
- SpellVisualId = ObjectFields.End + 0x011, // Size: 1, Flags: Public, Dynamic, Urgent
- StateSpellVisualId = ObjectFields.End + 0x012, // Size: 1, Flags: Dynamic, Urgent
- StateAnimId = ObjectFields.End + 0x013, // Size: 1, Flags: Dynamic, Urgent
- StateAnimKitId = ObjectFields.End + 0x014, // Size: 1, Flags: Dynamic, Urgent
- StateWorldEffectId = ObjectFields.End + 0x015, // Size: 4, Flags: Dynamic, Urgent
- CustomParam = ObjectFields.End + 0x019, // Size: 1, Flags: Public, Urgent
- End = ObjectFields.End + 0x01a,
- }
-
- public enum GameObjectDynamicFields
- {
- EnableDoodadSets = 0x000, // Flags: PUBLIC
- End = 0x001
- }
-
- public enum DynamicObjectFields
- {
- Caster = ObjectFields.End + 0x000, // Size: 4, Flags: Public
- Type = ObjectFields.End + 0x004, // Size: 1, Flags: Public
- SpellXSpellVisualId = ObjectFields.End + 0x005, // Size: 1, Flags: Public
- SpellId = ObjectFields.End + 0x006, // Size: 1, Flags: Public
- Radius = ObjectFields.End + 0x007, // Size: 1, Flags: Public
- CastTime = ObjectFields.End + 0x008, // Size: 1, Flags: Public
- End = ObjectFields.End + 0x009
- }
-
- public enum CorpseFields
- {
- Owner = ObjectFields.End + 0x000, // Size: 4, Flags: Public
- Party = ObjectFields.End + 0x004, // Size: 4, Flags: Public
- GuildGuid = ObjectFields.End + 0x008, // Size: 4, Flags: PUBLIC
- DisplayId = ObjectFields.End + 0x00C, // Size: 1, Flags: Public
- Item = ObjectFields.End + 0x00D, // Size: 19, Flags: Public
- Bytes1 = ObjectFields.End + 0x020, // Size: 1, Flags: Public
- Bytes2 = ObjectFields.End + 0x021, // Size: 1, Flags: Public
- Flags = ObjectFields.End + 0x022, // Size: 1, Flags: Public
- DynamicFlags = ObjectFields.End + 0x023, // Size: 1, Flags: Dynamic
- FactionTemplate = ObjectFields.End + 0x024, // Size: 1, Flags: Public
- CustomDisplayOption = ObjectFields.End + 0x025, // Size: 1, Flags: PUBLIC
- End = ObjectFields.End + 0x026
- }
-
- public enum AreaTriggerFields
- {
- OverrideScaleCurve = ObjectFields.End + 0x000, // Size: 7, Flags: Public, Urgent
- ExtraScaleCurve = ObjectFields.End + 0x007, // Size: 7, Flags: Public, Urgent
- Caster = ObjectFields.End + 0x00e, // Size: 4, Flags: Public
- Duration = ObjectFields.End + 0x012, // Size: 1, Flags: Public
- TimeToTarget = ObjectFields.End + 0x013, // Size: 1, Flags: Public, Urgent
- TimeToTargetScale = ObjectFields.End + 0x014, // Size: 1, Flags: Public, Urgent
- TimeToTargetExtraScale = ObjectFields.End + 0x015, // Size: 1, Flags: Public, Urgent
- SpellId = ObjectFields.End + 0x016, // Size: 1, Flags: Public
- SpellForVisuals = ObjectFields.End + 0x017, // Size: 1, Flags: PUBLIC
- SpellXSpellVisualId = ObjectFields.End + 0x018, // Size: 1, Flags: Dynamic
- BoundsRadius2d = ObjectFields.End + 0x019, // Size: 1, Flags: Dynamic, Urgent
- DecalPropertiesId = ObjectFields.End + 0x01A, // Size: 1, Flags: Public
- CreatingEffectGuid = ObjectFields.End + 0x01B, // Size: 4, Flags: PUBLIC
- End = ObjectFields.End + 0x01F
- }
-
- public enum SceneObjectFields
- {
- ScriptPackageId = ObjectFields.End + 0x000, // Size: 1, Flags: Public
- RndSeedVal = ObjectFields.End + 0x001, // Size: 1, Flags: Public
- Createdby = ObjectFields.End + 0x002, // Size: 4, Flags: Public
- SceneType = ObjectFields.End + 0x006, // Size: 1, Flags: Public
- End = ObjectFields.End + 0x007
- }
-
- public enum ConversationFields
- {
- LastLineEndTime = ObjectFields.End + 0x000, // Size: 1, Flags: DYNAMIC
- End = ObjectFields.End + 0x001
- }
-
- public enum ConversationDynamicFields
- {
- Actors = 0x000, // Flags: Public
- Lines = 0x001, // Flags: 0x100
- End = 0x002
- }
-}
diff --git a/Source/Framework/Constants/Update/UpdateFlags.cs b/Source/Framework/Constants/Update/UpdateFlags.cs
index 538316d2a..f8e221582 100644
--- a/Source/Framework/Constants/Update/UpdateFlags.cs
+++ b/Source/Framework/Constants/Update/UpdateFlags.cs
@@ -42,4 +42,13 @@ namespace Framework.Constants
//UPDATEFLAG_SCENEOBJECT = 0x10000,
//UPDATEFLAG_SCENE_PENDING_INSTANCE = 0x20000
}
+
+ public enum UpdateFieldFlag
+ {
+ None = 0,
+ Owner = 0x01,
+ PartyMember = 0x02,
+ UnitAll = 0x04,
+ Empath = 0x08
+ }
}
diff --git a/Source/Framework/Cryptography/PacketCrypt.cs b/Source/Framework/Cryptography/PacketCrypt.cs
index 2830f7ed1..df994f882 100644
--- a/Source/Framework/Cryptography/PacketCrypt.cs
+++ b/Source/Framework/Cryptography/PacketCrypt.cs
@@ -15,6 +15,7 @@
* along with this program. If not, see .
*/
+using Security.Cryptography;
using System;
using System.Security.Cryptography;
@@ -25,66 +26,54 @@ namespace Framework.Cryptography
static readonly byte[] ServerEncryptionKey = { 0x08, 0xF1, 0x95, 0x9F, 0x47, 0xE5, 0xD2, 0xDB, 0xA1, 0x3D, 0x77, 0x8F, 0x3F, 0x3E, 0xE7, 0x00 };
static readonly byte[] ServerDecryptionKey = { 0x40, 0xAA, 0xD3, 0x92, 0x26, 0x71, 0x43, 0x47, 0x3A, 0x31, 0x08, 0xA6, 0xE7, 0xDC, 0x98, 0x2A };
- public void Initialize(byte[] sessionKey)
+ public void Initialize(byte[] key)
{
if (IsInitialized)
throw new InvalidOperationException("PacketCrypt already initialized!");
- SARC4Encrypt = new SARC4();
- SARC4Decrypt = new SARC4();
+ _clientDecrypt = new AuthenticatedAesCng();
+ _clientDecrypt.Key = key;
+ _clientDecrypt.CngMode = CngChainingMode.Gcm;
+ _clientDecrypt.TagSize = 96;
- var encryptSHA1 = new HMACSHA1(ServerEncryptionKey);
- var decryptSHA1 = new HMACSHA1(ServerDecryptionKey);
-
- SARC4Encrypt.PrepareKey(encryptSHA1.ComputeHash(sessionKey));
- SARC4Decrypt.PrepareKey(decryptSHA1.ComputeHash(sessionKey));
-
- var PacketEncryptionDummy = new byte[0x400];
- var PacketDecryptionDummy = new byte[0x400];
-
- SARC4Encrypt.ProcessBuffer(PacketEncryptionDummy, PacketEncryptionDummy.Length);
- SARC4Decrypt.ProcessBuffer(PacketDecryptionDummy, PacketDecryptionDummy.Length);
+ _serverEncrypt = new AuthenticatedAesCng();
+ _serverEncrypt.Key = key;
+ _serverEncrypt.CngMode = CngChainingMode.Gcm;
+ _serverEncrypt.TagSize = 96;
IsInitialized = true;
}
- public void Initialize(byte[] sessionKey, byte[] serverSeed, byte[] clientSeed)
+ public bool Encrypt(ref byte[] data, int length, ref byte[] tag)
{
if (IsInitialized)
- throw new InvalidOperationException("PacketCrypt already initialized!");
+ {
+ _serverEncrypt.IV = BitConverter.GetBytes(_serverCounter).Combine(BitConverter.GetBytes(0x52565253));
- SARC4Encrypt = new SARC4();
- SARC4Decrypt = new SARC4();
+ using (IAuthenticatedCryptoTransform encryptor = _serverEncrypt.CreateAuthenticatedEncryptor())
+ {
+ data = encryptor.TransformFinalBlock(data, 0, length);
+ tag = encryptor.GetTag();
+ }
+ }
- var encryptSHA1 = new HMACSHA1(serverSeed);
- var decryptSHA1 = new HMACSHA1(clientSeed);
-
- SARC4Encrypt.PrepareKey(encryptSHA1.ComputeHash(sessionKey));
- SARC4Decrypt.PrepareKey(decryptSHA1.ComputeHash(sessionKey));
-
- var PacketEncryptionDummy = new byte[0x400];
- var PacketDecryptionDummy = new byte[0x400];
-
- SARC4Encrypt.ProcessBuffer(PacketEncryptionDummy, PacketEncryptionDummy.Length);
- SARC4Decrypt.ProcessBuffer(PacketDecryptionDummy, PacketDecryptionDummy.Length);
-
- IsInitialized = true;
+ ++_serverCounter;
+ return true;
}
- public void Encrypt(byte[] data, int count)
+ public bool Decrypt(ref byte[] data, int length, byte[] tag)
{
- if (!IsInitialized)
- throw new InvalidOperationException("PacketCrypt not initialized!");
+ if (IsInitialized)
+ {
+ _clientDecrypt.IV = BitConverter.GetBytes(_clientCounter).Combine(BitConverter.GetBytes(0x544E4C43));
+ _clientDecrypt.Tag = tag;
- SARC4Encrypt.ProcessBuffer(data, count);
- }
+ using (ICryptoTransform decryptor = _clientDecrypt.CreateDecryptor())
+ data = decryptor.TransformFinalBlock(data, 0, length);
+ }
- public void Decrypt(byte[] data, int count)
- {
- if (!IsInitialized)
- throw new InvalidOperationException("PacketCrypt not initialized!");
-
- SARC4Decrypt.ProcessBuffer(data, count);
+ ++_clientCounter;
+ return true;
}
public void Dispose()
@@ -93,7 +82,11 @@ namespace Framework.Cryptography
}
public bool IsInitialized { get; set; }
- SARC4 SARC4Encrypt;
- SARC4 SARC4Decrypt;
+
+ AuthenticatedAesCng _clientDecrypt;
+ AuthenticatedAesCng _serverEncrypt;
+ ulong _clientCounter;
+ ulong _serverCounter;
}
+
}
diff --git a/Source/Framework/Cryptography/RsaCrypt.cs b/Source/Framework/Cryptography/RsaCrypt.cs
index 8e7813eef..8b9591ba3 100644
--- a/Source/Framework/Cryptography/RsaCrypt.cs
+++ b/Source/Framework/Cryptography/RsaCrypt.cs
@@ -15,103 +15,32 @@
* along with this program. If not, see .
*/
-using System;
-using System.Numerics;
+using System.Security.Cryptography;
namespace Framework.Cryptography
{
- public class RsaCrypt : IDisposable
+ public class RsaCrypt
{
- public RsaCrypt()
+ public static RSACryptoServiceProvider RSA;
+ static RsaCrypt()
{
- Dispose();
+ RSA = new RSACryptoServiceProvider(2048);
+ RSA.ImportParameters(RsaStore.RSAParameters);
}
-
- public void InitializeEncryption(T p, T q, T dp, T dq, T iq, bool isBigEndian = false)
- {
- _p = p.ToBigInteger(isBigEndian);
- _q = q.ToBigInteger(isBigEndian);
- _dp = dp.ToBigInteger(isBigEndian);
- _dq = dq.ToBigInteger(isBigEndian);
- _iq = iq.ToBigInteger(isBigEndian);
-
- if (_p.IsZero && _q.IsZero)
- throw new InvalidOperationException("'0' isn't allowed for p or q");
- else
- _isEncryptionInitialized = true;
- }
-
- public void InitializeDecryption(T e, T n, bool reverseBytes = false)
- {
- _e = e.ToBigInteger(reverseBytes);
- _n = n.ToBigInteger(reverseBytes);
-
- _isDecryptionInitialized = true;
- }
-
- public byte[] Encrypt(T data, bool isBigEndian = false)
- {
- if (!_isEncryptionInitialized)
- throw new InvalidOperationException("Encryption not initialized");
-
- var bData = data.ToBigInteger(isBigEndian);
-
- var m1 = BigInteger.ModPow(bData % _p, _dp, _p);
- var m2 = BigInteger.ModPow(bData % _q, _dq, _q);
-
- var h = (_iq * (m1 - m2)) % _p;
-
- // Be sure to use the positive remainder
- if (h.Sign == -1)
- h = _p + h;
-
- var m = m2 + h * _q;
-
- return m.ToByteArray();
- }
-
- public byte[] Decrypt(T data, bool isBigEndian = false)
- {
- if (!_isDecryptionInitialized)
- throw new InvalidOperationException("Encryption not initialized");
-
- var c = data.ToBigInteger(isBigEndian);
-
- return BigInteger.ModPow(c, _e, _n).ToByteArray();
- }
-
- public void Dispose()
- {
- _e = 0;
- _n = 0;
- _p = 0;
- _q = 0;
- _dp = 0;
- _dq = 0;
- _iq = 0;
-
- _isEncryptionInitialized = false;
- _isDecryptionInitialized = false;
- }
-
- BigInteger _e;
- BigInteger _n;
- BigInteger _p;
- BigInteger _q;
- BigInteger _dp;
- BigInteger _dq;
- BigInteger _iq;
- bool _isEncryptionInitialized;
- bool _isDecryptionInitialized;
}
public class RsaStore
{
- public static byte[] DP = { 0xE1, 0xA6, 0x22, 0xAB, 0xFF, 0x57, 0x83, 0x45, 0x3F, 0x93, 0x76, 0xC8, 0xFA, 0xD9, 0x17, 0xE1, 0x49, 0x73, 0xC2, 0x13, 0x28, 0x0B, 0x1F, 0xE2, 0x9A, 0xF4, 0x7F, 0x7C, 0x37, 0x56, 0xA1, 0xDF, 0x51, 0x97, 0x2F, 0x15, 0x10, 0x97, 0xCD, 0x2A, 0x40, 0x09, 0xFC, 0x0A, 0xC3, 0x3F, 0x88, 0x86, 0xA9, 0x51, 0x13, 0xE1, 0x76, 0xCF, 0xA8, 0x37, 0x9A, 0x91, 0x3B, 0xD0, 0x70, 0xA1, 0xD7, 0x03, 0x71, 0x59, 0x6C, 0xB3, 0x41, 0xB8, 0x32, 0x68, 0x56, 0xC8, 0xB8, 0xD1, 0xF9, 0x1D, 0x04, 0xC5, 0x13, 0xB5, 0x8E, 0x57, 0x73, 0x02, 0x97, 0x7B, 0x33, 0x60, 0x68, 0xA9, 0xC2, 0x40, 0x96, 0x3C, 0x57, 0x4E, 0x4F, 0xC0, 0xAB, 0x21, 0x5C, 0xBA, 0x7D, 0x65, 0xAA, 0x1B, 0xD6, 0x43, 0x06, 0xCE, 0x3E, 0x0C, 0xB9, 0xB2, 0x82, 0xB0, 0xC9, 0x54, 0x59, 0x32, 0xC5, 0x88, 0x08, 0x9C, 0x9B, 0xBF };
- public static byte[] DQ = { 0xE3, 0xB1, 0xED, 0x52, 0xEF, 0xE6, 0x88, 0x40, 0x50, 0x89, 0x4C, 0x99, 0xE5, 0xF7, 0xED, 0x03, 0x1C, 0x54, 0x11, 0x24, 0x2F, 0x9D, 0xE8, 0xE6, 0x39, 0xFA, 0x19, 0xF4, 0x06, 0x55, 0x0B, 0x8B, 0x95, 0xC8, 0xB1, 0xE2, 0x7C, 0x75, 0x3B, 0x2A, 0x40, 0xC3, 0xE7, 0xE0, 0x25, 0x18, 0xBF, 0xB5, 0x03, 0x1B, 0x5A, 0x57, 0x92, 0x3C, 0x85, 0x7D, 0x7F, 0x43, 0x56, 0x1F, 0x1E, 0x80, 0xC3, 0xBA, 0xF0, 0x53, 0xD7, 0x6A, 0xD0, 0xF2, 0xDD, 0x9C, 0xC6, 0x53, 0xE7, 0xB4, 0xD3, 0x9D, 0xAB, 0xBF, 0xE0, 0x97, 0x50, 0x92, 0x23, 0xB9, 0xB7, 0xDC, 0xAA, 0xC4, 0x20, 0x93, 0x5A, 0xF5, 0xDE, 0x76, 0x28, 0x93, 0x91, 0x44, 0x1E, 0x4C, 0x15, 0x2F, 0x7F, 0x45, 0x3C, 0x3B, 0x7D, 0x36, 0x3B, 0x24, 0xC7, 0x8C, 0x65, 0x43, 0xAE, 0x65, 0x84, 0xBC, 0xF9, 0x76, 0x4E, 0x3C, 0x44, 0x05, 0xBC, 0xFA };
- public static byte[] InverseQ = { 0x63, 0xC1, 0x14, 0x2B, 0x57, 0x0B, 0x8A, 0x3C, 0x27, 0xDB, 0x96, 0x82, 0x27, 0xEB, 0xF6, 0x45, 0x6D, 0x07, 0x50, 0xE8, 0x4A, 0xD4, 0xB6, 0x7A, 0x3C, 0x8B, 0x4D, 0x65, 0xF0, 0x50, 0x70, 0x84, 0x71, 0x2B, 0xC6, 0x6D, 0x28, 0x2D, 0x76, 0x38, 0x73, 0x93, 0xDB, 0x44, 0xD7, 0xC0, 0x7F, 0xD9, 0x57, 0x18, 0x28, 0x57, 0xF1, 0x13, 0x38, 0xA4, 0x91, 0x67, 0x1E, 0x13, 0x73, 0x55, 0xFC, 0x7B, 0xAF, 0x50, 0xFA, 0xFD, 0x16, 0x12, 0x6F, 0xA4, 0x95, 0x15, 0x9C, 0x07, 0x18, 0xA6, 0x46, 0xFD, 0xB3, 0xCF, 0xA5, 0x0E, 0x05, 0x30, 0xEC, 0x2C, 0xCD, 0x62, 0xDD, 0x6F, 0xB1, 0xFE, 0x6C, 0x05, 0x2F, 0x11, 0xA6, 0xA0, 0x98, 0xAC, 0x9B, 0x15, 0xF0, 0x04, 0xC4, 0x7B, 0x79, 0xAA, 0x51, 0x25, 0x2A, 0x84, 0x73, 0xE6, 0x77, 0x47, 0xA3, 0xEB, 0xCF, 0x6D, 0xC8, 0x96, 0x3A, 0x1B, 0x02, 0x52 };
- public static byte[] P = { 0x7D, 0xBD, 0xB9, 0xE1, 0x2D, 0xAE, 0x42, 0x56, 0x6E, 0x2B, 0xE2, 0x89, 0xD9, 0xBB, 0x0C, 0x1F, 0x67, 0x28, 0xC1, 0x4D, 0x91, 0x3C, 0xAD, 0x5F, 0xF0, 0x43, 0x86, 0x5C, 0x27, 0xDC, 0x58, 0xB3, 0x0E, 0x75, 0x77, 0x78, 0x49, 0x35, 0xE7, 0xE7, 0xDF, 0xFD, 0x74, 0xAB, 0x4E, 0xFE, 0xD3, 0xAB, 0x6B, 0x96, 0xF7, 0x89, 0xB2, 0x5A, 0x6A, 0x25, 0x03, 0x5A, 0x92, 0x1A, 0xF1, 0xFC, 0x05, 0x4E, 0xCE, 0xDD, 0x37, 0xA4, 0x02, 0x53, 0x76, 0xCB, 0xC2, 0xD9, 0x63, 0xCB, 0x51, 0x94, 0xEC, 0x5C, 0x39, 0xCC, 0xB2, 0x17, 0x0C, 0xA3, 0x43, 0x9A, 0xD0, 0x83, 0x27, 0x67, 0x52, 0x64, 0x37, 0x0E, 0x38, 0xB7, 0x9B, 0xF4, 0x2D, 0xB8, 0x0F, 0x30, 0x72, 0xD3, 0x15, 0xF3, 0x2C, 0x39, 0x55, 0x72, 0x2C, 0x55, 0x80, 0x63, 0xA0, 0xA1, 0x6F, 0x28, 0xF3, 0xF3, 0x5A, 0x6F, 0x68, 0x59, 0xB3, 0xF3 };
- public static byte[] Q = { 0x0B, 0x1A, 0x13, 0x07, 0x12, 0xEF, 0xDD, 0x97, 0x01, 0x9A, 0x21, 0x7D, 0xFA, 0xA3, 0xB7, 0xE2, 0x39, 0x2E, 0x04, 0x92, 0x96, 0x45, 0x2A, 0xEB, 0x57, 0x03, 0xAC, 0xB1, 0x83, 0xCD, 0x25, 0x4F, 0x2C, 0xA9, 0xA1, 0x54, 0x26, 0x54, 0xCF, 0xE6, 0x1B, 0x53, 0x51, 0x3A, 0xC1, 0x15, 0xF4, 0x17, 0xBB, 0x17, 0x1F, 0x37, 0x66, 0x36, 0x1A, 0xD4, 0xB1, 0x5B, 0x49, 0xA8, 0xF1, 0x02, 0xB0, 0x42, 0xA9, 0x66, 0xA0, 0xE2, 0x52, 0x2C, 0x8C, 0x89, 0xA2, 0xDD, 0xA6, 0xF1, 0xA3, 0xDF, 0xB6, 0x80, 0x63, 0xB8, 0x10, 0xDA, 0xDE, 0x84, 0x56, 0xFA, 0xFB, 0x72, 0x65, 0x5E, 0xA3, 0x9C, 0x78, 0x65, 0xD0, 0x73, 0x07, 0x34, 0x1D, 0xE1, 0x4D, 0x77, 0xE8, 0x00, 0x0F, 0x80, 0x1C, 0x5A, 0x21, 0x55, 0x0A, 0x8C, 0xF4, 0x93, 0xF5, 0xF8, 0x40, 0xF2, 0x40, 0xEA, 0x52, 0x12, 0x40, 0xF0, 0xBF, 0xFA };
- public static byte[] WherePacketHmac = { 0x2C, 0x1F, 0x1D, 0x80, 0xC3, 0x8C, 0x23, 0x64, 0xDA, 0x90, 0xCA, 0x8E, 0x2C, 0xFC, 0x0C, 0xCE, 0x09, 0xD3, 0x62, 0xF9, 0xF3, 0x8B, 0xBE, 0x9F, 0x19, 0xEF, 0x58, 0xA1, 0x1C, 0x34, 0x14, 0x41, 0x3F, 0x23, 0xFD, 0xD3, 0xE8, 0x14, 0xEC, 0x2A, 0xFD, 0x4F, 0x95, 0xBA, 0x30, 0x7E, 0x56, 0x5D, 0x83, 0x95, 0x81, 0x69, 0xB0, 0x5A, 0xB4, 0x9D, 0xA8, 0x55, 0xFF, 0xFC, 0xEE, 0x58, 0x0A, 0x2F };
+ public static RSAParameters RSAParameters = new RSAParameters()
+ {
+ Modulus = new byte[] { 0xee, 0xb3, 0xdc, 0xd4, 0xd3, 0xc3, 0xb4, 0x54, 0x51, 0xce, 0x66, 0x5b, 0xcb, 0x32, 0xb8, 0xf0, 0xf7, 0x92, 0x53, 0xc6, 0x19, 0xf2, 0x0c, 0x85, 0x2f, 0x8a, 0x26, 0xa9, 0x7a, 0x45, 0x9f, 0x60, 0xc4, 0xeb, 0xcd, 0xea, 0x7f, 0x8d, 0x59, 0xd8, 0x57, 0xb2, 0x60, 0x7b, 0x09, 0x4c, 0x9b, 0x68, 0xb8, 0xc7, 0xed, 0xef, 0x1e, 0x80, 0x0d, 0xe6, 0x6b, 0x37, 0x5b, 0x53, 0x90, 0xeb, 0x18, 0x13, 0x0d, 0x7f, 0x43, 0x64, 0x83, 0xda, 0x98, 0xe6, 0xac, 0xc2, 0x30, 0xa2, 0x82, 0xa5, 0xc6, 0xcb, 0xc7, 0xfb, 0x86, 0x9f, 0x9f, 0xa9, 0x02, 0x6a, 0x03, 0x49, 0xc5, 0x38, 0xfb, 0xc0, 0xc8, 0x55, 0xcc, 0xc0, 0xce, 0x25, 0x91, 0xbe, 0x85, 0xcf, 0xd1, 0xd1, 0x37, 0xce, 0xcc, 0x83, 0xd2, 0xea, 0x30, 0x80, 0x07, 0x7b, 0x80, 0x9f, 0x9d, 0x44, 0x54, 0x22, 0x29, 0xbe, 0x86, 0xda, 0xdb, 0x48, 0xc5, 0xa9, 0xf9, 0x13, 0x36, 0x95, 0x23, 0x76, 0xf1, 0x0e, 0xdc, 0x84, 0x0d, 0x94, 0x02, 0x12, 0xa8, 0x97, 0xf3, 0x3b, 0x14, 0xee, 0xaa, 0x6f, 0x98, 0x05, 0x27, 0x4e, 0x1f, 0xa3, 0x60, 0xa5, 0xa9, 0xda, 0xd8, 0x17, 0xdf, 0x33, 0xcb, 0xe2, 0x13, 0x54, 0x8b, 0x18, 0xb0, 0xca, 0xb9, 0xbb, 0x88, 0x64, 0x06, 0xdf, 0x75, 0xa6, 0xd7, 0x61, 0x00, 0xbb, 0xb0, 0x5a, 0x0e, 0x7a, 0xd4, 0x77, 0x08, 0x4d, 0x15, 0xe2, 0x10, 0x83, 0xb0, 0x04, 0xaa, 0x9e, 0x8b, 0x77, 0xa9, 0x06, 0x89, 0x5d, 0x08, 0x5d, 0x0f, 0xb8, 0x2e, 0x6b, 0xc1, 0xcb, 0x64, 0xcf, 0x6e, 0x5c, 0xdb, 0x4f, 0x58, 0x65, 0x08, 0x51, 0xfb, 0x0d, 0x48, 0x1a, 0x6f, 0xb6, 0x3d, 0x1f, 0x0b, 0xdd, 0xfe, 0x1b, 0x1d, 0xf0, 0xbf, 0xb0, 0x27, 0x6b, 0xf5, 0x8e, 0xbc, 0xc7, 0x40, 0x01, 0xff, 0xa7, 0x0b, 0x80, 0xd6, 0x5f },
+ Exponent = new byte[] { 0x01, 0x00, 0x01 },
+ P = new byte[] { 0xf3, 0xb3, 0x59, 0x68, 0x6f, 0x5a, 0xf3, 0xf3, 0x28, 0x6f, 0xa1, 0xa0, 0x63, 0x80, 0x55, 0x2c, 0x72, 0x55, 0x39, 0x2c, 0xf3, 0x15, 0xd3, 0x72, 0x30, 0x0f, 0xb8, 0x2d, 0xf4, 0x9b, 0xb7, 0x38, 0x0e, 0x37, 0x64, 0x52, 0x67, 0x27, 0x83, 0xd0, 0x9a, 0x43, 0xa3, 0x0c, 0x17, 0xb2, 0xcc, 0x39, 0x5c, 0xec, 0x94, 0x51, 0xcb, 0x63, 0xd9, 0xc2, 0xcb, 0x76, 0x53, 0x02, 0xa4, 0x37, 0xdd, 0xce, 0x4e, 0x05, 0xfc, 0xf1, 0x1a, 0x92, 0x5a, 0x03, 0x25, 0x6a, 0x5a, 0xb2, 0x89, 0xf7, 0x96, 0x6b, 0xab, 0xd3, 0xfe, 0x4e, 0xab, 0x74, 0xfd, 0xdf, 0xe7, 0xe7, 0x35, 0x49, 0x78, 0x77, 0x75, 0x0e, 0xb3, 0x58, 0xdc, 0x27, 0x5c, 0x86, 0x43, 0xf0, 0x5f, 0xad, 0x3c, 0x91, 0x4d, 0xc1, 0x28, 0x67, 0x1f, 0x0c, 0xbb, 0xd9, 0x89, 0xe2, 0x2b, 0x6e, 0x56, 0x42, 0xae, 0x2d, 0xe1, 0xb9, 0xbd, 0x7d },
+ Q = new byte[] { 0xfa, 0xbf, 0xf0, 0x40, 0x12, 0x52, 0xea, 0x40, 0xf2, 0x40, 0xf8, 0xf5, 0x93, 0xf4, 0x8c, 0x0a, 0x55, 0x21, 0x5a, 0x1c, 0x80, 0x0f, 0x00, 0xe8, 0x77, 0x4d, 0xe1, 0x1d, 0x34, 0x07, 0x73, 0xd0, 0x65, 0x78, 0x9c, 0xa3, 0x5e, 0x65, 0x72, 0xfb, 0xfa, 0x56, 0x84, 0xde, 0xda, 0x10, 0xb8, 0x63, 0x80, 0xb6, 0xdf, 0xa3, 0xf1, 0xa6, 0xdd, 0xa2, 0x89, 0x8c, 0x2c, 0x52, 0xe2, 0xa0, 0x66, 0xa9, 0x42, 0xb0, 0x02, 0xf1, 0xa8, 0x49, 0x5b, 0xb1, 0xd4, 0x1a, 0x36, 0x66, 0x37, 0x1f, 0x17, 0xbb, 0x17, 0xf4, 0x15, 0xc1, 0x3a, 0x51, 0x53, 0x1b, 0xe6, 0xcf, 0x54, 0x26, 0x54, 0xa1, 0xa9, 0x2c, 0x4f, 0x25, 0xcd, 0x83, 0xb1, 0xac, 0x03, 0x57, 0xeb, 0x2a, 0x45, 0x96, 0x92, 0x04, 0x2e, 0x39, 0xe2, 0xb7, 0xa3, 0xfa, 0x7d, 0x21, 0x9a, 0x01, 0x97, 0xdd, 0xef, 0x12, 0x07, 0x13, 0x1a, 0x0b },
+ DP = new byte[] { 0xbf, 0x9b, 0x9c, 0x08, 0x88, 0xc5, 0x32, 0x59, 0x54, 0xc9, 0xb0, 0x82, 0xb2, 0xb9, 0x0c, 0x3e, 0xce, 0x06, 0x43, 0xd6, 0x1b, 0xaa, 0x65, 0x7d, 0xba, 0x5c, 0x21, 0xab, 0xc0, 0x4f, 0x4e, 0x57, 0x3c, 0x96, 0x40, 0xc2, 0xa9, 0x68, 0x60, 0x33, 0x7b, 0x97, 0x02, 0x73, 0x57, 0x8e, 0xb5, 0x13, 0xc5, 0x04, 0x1d, 0xf9, 0xd1, 0xb8, 0xc8, 0x56, 0x68, 0x32, 0xb8, 0x41, 0xb3, 0x6c, 0x59, 0x71, 0x03, 0xd7, 0xa1, 0x70, 0xd0, 0x3b, 0x91, 0x9a, 0x37, 0xa8, 0xcf, 0x76, 0xe1, 0x13, 0x51, 0xa9, 0x86, 0x88, 0x3f, 0xc3, 0x0a, 0xfc, 0x09, 0x40, 0x2a, 0xcd, 0x97, 0x10, 0x15, 0x2f, 0x97, 0x51, 0xdf, 0xa1, 0x56, 0x37, 0x7c, 0x7f, 0xf4, 0x9a, 0xe2, 0x1f, 0x0b, 0x28, 0x13, 0xc2, 0x73, 0x49, 0xe1, 0x17, 0xd9, 0xfa, 0xc8, 0x76, 0x93, 0x3f, 0x45, 0x83, 0x57, 0xff, 0xab, 0x22, 0xa6, 0xe1 },
+ DQ = new byte[] { 0xfa, 0xbc, 0x05, 0x44, 0x3c, 0x4e, 0x76, 0xf9, 0xbc, 0x84, 0x65, 0xae, 0x43, 0x65, 0x8c, 0xc7, 0x24, 0x3b, 0x36, 0x7d, 0x3b, 0x3c, 0x45, 0x7f, 0x2f, 0x15, 0x4c, 0x1e, 0x44, 0x91, 0x93, 0x28, 0x76, 0xde, 0xf5, 0x5a, 0x93, 0x20, 0xc4, 0xaa, 0xdc, 0xb7, 0xb9, 0x23, 0x92, 0x50, 0x97, 0xe0, 0xbf, 0xab, 0x9d, 0xd3, 0xb4, 0xe7, 0x53, 0xc6, 0x9c, 0xdd, 0xf2, 0xd0, 0x6a, 0xd7, 0x53, 0xf0, 0xba, 0xc3, 0x80, 0x1e, 0x1f, 0x56, 0x43, 0x7f, 0x7d, 0x85, 0x3c, 0x92, 0x57, 0x5a, 0x1b, 0x03, 0xb5, 0xbf, 0x18, 0x25, 0xe0, 0xe7, 0xc3, 0x40, 0x2a, 0x3b, 0x75, 0x7c, 0xe2, 0xb1, 0xc8, 0x95, 0x8b, 0x0b, 0x55, 0x06, 0xf4, 0x19, 0xfa, 0x39, 0xe6, 0xe8, 0x9d, 0x2f, 0x24, 0x11, 0x54, 0x1c, 0x03, 0xed, 0xf7, 0xe5, 0x99, 0x4c, 0x89, 0x50, 0x40, 0x88, 0xe6, 0xef, 0x52, 0xed, 0xb1, 0xe3 },
+ InverseQ = new byte[] { 0x52, 0x02, 0x1b, 0x3a, 0x96, 0xc8, 0x6d, 0xcf, 0xeb, 0xa3, 0x47, 0x77, 0xe6, 0x73, 0x84, 0x2a, 0x25, 0x51, 0xaa, 0x79, 0x7b, 0xc4, 0x04, 0xf0, 0x15, 0x9b, 0xac, 0x98, 0xa0, 0xa6, 0x11, 0x2f, 0x05, 0x6c, 0xfe, 0xb1, 0x6f, 0xdd, 0x62, 0xcd, 0x2c, 0xec, 0x30, 0x05, 0x0e, 0xa5, 0xcf, 0xb3, 0xfd, 0x46, 0xa6, 0x18, 0x07, 0x9c, 0x15, 0x95, 0xa4, 0x6f, 0x12, 0x16, 0xfd, 0xfa, 0x50, 0xaf, 0x7b, 0xfc, 0x55, 0x73, 0x13, 0x1e, 0x67, 0x91, 0xa4, 0x38, 0x13, 0xf1, 0x57, 0x28, 0x18, 0x57, 0xd9, 0x7f, 0xc0, 0xd7, 0x44, 0xdb, 0x93, 0x73, 0x38, 0x76, 0x2d, 0x28, 0x6d, 0xc6, 0x2b, 0x71, 0x84, 0x70, 0x50, 0xf0, 0x65, 0x4d, 0x8b, 0x3c, 0x7a, 0xb6, 0xd4, 0x4a, 0xe8, 0x50, 0x07, 0x6d, 0x45, 0xf6, 0xeb, 0x27, 0x82, 0x96, 0xdb, 0x27, 0x3c, 0x8a, 0x0b, 0x57, 0x2b, 0x14, 0xc1, 0x63 },
+ D = new byte[] { 0x22, 0x9a, 0xe6, 0xaf, 0xe0, 0x07, 0x66, 0x34, 0x37, 0x2b, 0xe2, 0x00, 0xfa, 0xc3, 0x5e, 0xb6, 0x68, 0x5d, 0xc9, 0x51, 0x55, 0xdf, 0x96, 0x5b, 0x14, 0x9a, 0x45, 0xa2, 0x9a, 0x3c, 0x4f, 0xaf, 0xba, 0xbc, 0xa8, 0xbc, 0x8f, 0x43, 0x51, 0xbc, 0x20, 0x72, 0x96, 0xb4, 0x1f, 0x94, 0x00, 0x8f, 0xbd, 0x02, 0x17, 0x07, 0x6c, 0x77, 0x8a, 0x0c, 0x56, 0x8c, 0xce, 0xeb, 0x9d, 0x7d, 0xc7, 0x9e, 0xb3, 0x7d, 0x38, 0xaa, 0xf0, 0xc6, 0x97, 0x16, 0x12, 0x03, 0x91, 0x03, 0x6e, 0x47, 0x54, 0x3b, 0xa4, 0xc1, 0x5d, 0x31, 0xf4, 0xf6, 0x8e, 0x88, 0x09, 0xf3, 0xfe, 0xe8, 0x94, 0xee, 0xcc, 0xdc, 0x4b, 0x73, 0xc4, 0x2f, 0x04, 0x23, 0x07, 0xc9, 0x2a, 0x14, 0xd7, 0xaf, 0x5e, 0x4c, 0xda, 0x1d, 0xe3, 0x6c, 0x1c, 0x29, 0x96, 0x6b, 0x0d, 0x64, 0xa3, 0x81, 0xd4, 0x65, 0x6f, 0xad, 0x78, 0xce, 0x9b, 0x52, 0xad, 0x39, 0x9e, 0x02, 0x4d, 0x33, 0x34, 0x5a, 0xb3, 0xda, 0x2d, 0x50, 0xd3, 0xf5, 0xac, 0x7c, 0xa7, 0x29, 0x23, 0x98, 0x5c, 0x35, 0xea, 0xf1, 0x8f, 0x8f, 0xf4, 0x79, 0x0e, 0x4c, 0xbd, 0x56, 0x96, 0x9b, 0xb5, 0xf6, 0x4e, 0xbb, 0xf0, 0x04, 0x5b, 0x6e, 0x7d, 0x5c, 0x31, 0x22, 0x42, 0x04, 0xeb, 0x07, 0x81, 0x20, 0xf9, 0x2e, 0x06, 0x26, 0x31, 0xea, 0x03, 0x33, 0xd9, 0x06, 0x63, 0x32, 0xff, 0x18, 0x65, 0x0c, 0xae, 0x28, 0x31, 0x77, 0x9f, 0xa9, 0x74, 0x9c, 0x7c, 0x3e, 0x30, 0xd1, 0x1c, 0x6e, 0xb8, 0x21, 0x6b, 0xea, 0x5c, 0x4b, 0x3d, 0x9c, 0xf4, 0x4b, 0x7e, 0x41, 0x2b, 0x59, 0x08, 0x5a, 0x62, 0x24, 0xba, 0xff, 0xbd, 0x79, 0x0b, 0x88, 0xe0, 0x7a, 0xf5, 0x0b, 0x25, 0x70, 0x72, 0x1e, 0x1f, 0x91, 0xfb, 0xeb, 0xa7, 0xce, 0x31, 0xf2, 0xdb, 0xc0, 0x16, 0x79 },
+ };
}
}
diff --git a/Source/Framework/Database/Databases/CharacterDatabase.cs b/Source/Framework/Database/Databases/CharacterDatabase.cs
index 55a91f792..6e8e85271 100644
--- a/Source/Framework/Database/Databases/CharacterDatabase.cs
+++ b/Source/Framework/Database/Databases/CharacterDatabase.cs
@@ -21,7 +21,7 @@ namespace Framework.Database
{
public override void PreparedStatements()
{
- const string SelectItemInstanceContent = "ii.guid, ii.itemEntry, ii.creatorGuid, ii.giftCreatorGuid, ii.count, ii.duration, ii.charges, ii.flags, ii.enchantments, ii.randomPropertyType, ii.randomPropertyId, " +
+ const string SelectItemInstanceContent = "ii.guid, ii.itemEntry, ii.creatorGuid, ii.giftCreatorGuid, ii.count, ii.duration, ii.charges, ii.flags, ii.enchantments, ii.randomBonusListId, " +
"ii.durability, ii.playedTime, ii.text, ii.upgradeId, ii.battlePetSpeciesId, ii.battlePetBreedData, ii.battlePetLevel, ii.battlePetDisplayId, ii.context, ii.bonusListIDs, " +
"iit.itemModifiedAppearanceAllSpecs, iit.itemModifiedAppearanceSpec1, iit.itemModifiedAppearanceSpec2, iit.itemModifiedAppearanceSpec3, iit.itemModifiedAppearanceSpec4, " +
"iit.spellItemEnchantmentAllSpecs, iit.spellItemEnchantmentSpec1, iit.spellItemEnchantmentSpec2, iit.spellItemEnchantmentSpec3, iit.spellItemEnchantmentSpec4, " +
@@ -168,8 +168,8 @@ namespace Framework.Database
PrepareStatement(CharStatements.DEL_ITEM_BOP_TRADE, "DELETE FROM item_soulbound_trade_data WHERE itemGuid = ? LIMIT 1");
PrepareStatement(CharStatements.INS_ITEM_BOP_TRADE, "INSERT INTO item_soulbound_trade_data VALUES (?, ?)");
PrepareStatement(CharStatements.REP_INVENTORY_ITEM, "REPLACE INTO character_inventory (guid, bag, slot, item) VALUES (?, ?, ?, ?)");
- PrepareStatement(CharStatements.REP_ITEM_INSTANCE, "REPLACE INTO item_instance (itemEntry, owner_guid, creatorGuid, giftCreatorGuid, count, duration, charges, flags, enchantments, randomPropertyType, randomPropertyId, durability, playedTime, text, upgradeId, battlePetSpeciesId, battlePetBreedData, battlePetLevel, battlePetDisplayId, context, bonusListIDs, guid) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
- PrepareStatement(CharStatements.UPD_ITEM_INSTANCE, "UPDATE item_instance SET itemEntry = ?, owner_guid = ?, creatorGuid = ?, giftCreatorGuid = ?, count = ?, duration = ?, charges = ?, flags = ?, enchantments = ?, randomPropertyType = ?, randomPropertyId = ?, durability = ?, playedTime = ?, text = ?, upgradeId = ?, battlePetSpeciesId = ?, battlePetBreedData = ?, battlePetLevel = ?, battlePetDisplayId = ?, context = ?, bonusListIDs = ? WHERE guid = ?");
+ PrepareStatement(CharStatements.REP_ITEM_INSTANCE, "REPLACE INTO item_instance (itemEntry, owner_guid, creatorGuid, giftCreatorGuid, count, duration, charges, flags, enchantments, randomBonusListId, durability, playedTime, text, upgradeId, battlePetSpeciesId, battlePetBreedData, battlePetLevel, battlePetDisplayId, context, bonusListIDs, guid) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
+ PrepareStatement(CharStatements.UPD_ITEM_INSTANCE, "UPDATE item_instance SET itemEntry = ?, owner_guid = ?, creatorGuid = ?, giftCreatorGuid = ?, count = ?, duration = ?, charges = ?, flags = ?, enchantments = ?, randomBonusListId = ?, durability = ?, playedTime = ?, text = ?, upgradeId = ?, battlePetSpeciesId = ?, battlePetBreedData = ?, battlePetLevel = ?, battlePetDisplayId = ?, context = ?, bonusListIDs = ? WHERE guid = ?");
PrepareStatement(CharStatements.UPD_ITEM_INSTANCE_ON_LOAD, "UPDATE item_instance SET duration = ?, flags = ?, durability = ?, upgradeId = ? WHERE guid = ?");
PrepareStatement(CharStatements.DEL_ITEM_INSTANCE, "DELETE FROM item_instance WHERE guid = ?");
PrepareStatement(CharStatements.DEL_ITEM_INSTANCE_BY_OWNER, "DELETE FROM item_instance WHERE owner_guid = ?");
@@ -625,8 +625,8 @@ namespace Framework.Database
PrepareStatement(CharStatements.DEL_CHAR_FISHINGSTEPS, "DELETE FROM character_fishingsteps WHERE guid = ?");
// Void Storage
- PrepareStatement(CharStatements.SEL_CHAR_VOID_STORAGE, "SELECT itemId, itemEntry, slot, creatorGuid, randomPropertyType, randomProperty, suffixFactor, upgradeId, fixedScalingLevel, artifactKnowledgeLevel, context, bonusListIDs FROM character_void_storage WHERE playerGuid = ?");
- PrepareStatement(CharStatements.REP_CHAR_VOID_STORAGE_ITEM, "REPLACE INTO character_void_storage (itemId, playerGuid, itemEntry, slot, creatorGuid, randomPropertyType, randomProperty, suffixFactor, upgradeId, fixedScalingLevel, artifactKnowledgeLevel, context, bonusListIDs) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
+ PrepareStatement(CharStatements.SEL_CHAR_VOID_STORAGE, "SELECT itemId, itemEntry, slot, creatorGuid, randomBonusListId, upgradeId, fixedScalingLevel, artifactKnowledgeLevel, context, bonusListIDs FROM character_void_storage WHERE playerGuid = ?");
+ PrepareStatement(CharStatements.REP_CHAR_VOID_STORAGE_ITEM, "REPLACE INTO character_void_storage (itemId, playerGuid, itemEntry, slot, creatorGuid, randomBonusListId, upgradeId, fixedScalingLevel, artifactKnowledgeLevel, context, bonusListIDs) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
PrepareStatement(CharStatements.DEL_CHAR_VOID_STORAGE_ITEM_BY_CHAR_GUID, "DELETE FROM character_void_storage WHERE playerGuid = ?");
PrepareStatement(CharStatements.DEL_CHAR_VOID_STORAGE_ITEM_BY_SLOT, "DELETE FROM character_void_storage WHERE slot = ? AND playerGuid = ?");
@@ -643,10 +643,10 @@ namespace Framework.Database
PrepareStatement(CharStatements.DEL_GUILD_FINDER_GUILD_SETTINGS, "DELETE FROM guild_finder_guild_settings WHERE guildId = ?");
// Items that hold loot or money
- PrepareStatement(CharStatements.SEL_ITEMCONTAINER_ITEMS, "SELECT item_id, item_count, follow_rules, ffa, blocked, counted, under_threshold, needs_quest, rnd_type, rnd_prop, rnd_suffix, context, bonus_list_ids FROM item_loot_items WHERE container_id = ?");
+ PrepareStatement(CharStatements.SEL_ITEMCONTAINER_ITEMS, "SELECT item_id, item_count, follow_rules, ffa, blocked, counted, under_threshold, needs_quest, rnd_bonus, context, bonus_list_ids FROM item_loot_items WHERE container_id = ?");
PrepareStatement(CharStatements.DEL_ITEMCONTAINER_ITEMS, "DELETE FROM item_loot_items WHERE container_id = ?");
PrepareStatement(CharStatements.DEL_ITEMCONTAINER_ITEM, "DELETE FROM item_loot_items WHERE container_id = ? AND item_id = ?");
- PrepareStatement(CharStatements.INS_ITEMCONTAINER_ITEMS, "INSERT INTO item_loot_items (container_id, item_id, item_count, follow_rules, ffa, blocked, counted, under_threshold, needs_quest, rnd_type, rnd_prop, rnd_suffix, context, bonus_list_ids) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
+ PrepareStatement(CharStatements.INS_ITEMCONTAINER_ITEMS, "INSERT INTO item_loot_items (container_id, item_id, item_count, follow_rules, ffa, blocked, counted, under_threshold, needs_quest, rnd_bonus, context, bonus_list_ids) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
PrepareStatement(CharStatements.SEL_ITEMCONTAINER_MONEY, "SELECT money FROM item_loot_money WHERE container_id = ?");
PrepareStatement(CharStatements.DEL_ITEMCONTAINER_MONEY, "DELETE FROM item_loot_money WHERE container_id = ?");
PrepareStatement(CharStatements.INS_ITEMCONTAINER_MONEY, "INSERT INTO item_loot_money (container_id, money) VALUES (?, ?)");
diff --git a/Source/Framework/Database/Databases/HotfixDatabase.cs b/Source/Framework/Database/Databases/HotfixDatabase.cs
index 269ab2d5d..b42bf650c 100644
--- a/Source/Framework/Database/Databases/HotfixDatabase.cs
+++ b/Source/Framework/Database/Databases/HotfixDatabase.cs
@@ -22,12 +22,12 @@ namespace Framework.Database
public override void PreparedStatements()
{
// Achievement.db2
- PrepareStatement(HotfixStatements.SEL_ACHIEVEMENT, "SELECT Description, Title, Reward, ID, InstanceID, Faction, Supercedes, Category, MinimumCriteria, " +
- "Points, Flags, UiOrder, IconFileID, CriteriaTree, SharesCriteria FROM achievement ORDER BY ID DESC");
+ PrepareStatement(HotfixStatements.SEL_ACHIEVEMENT, "SELECT Description, Title, Reward, ID, InstanceID, Faction, Supercedes, Category, MinimumCriteria, " +
+ "Points, Flags, UiOrder, IconFileID, RewardItemID, CriteriaTree, SharesCriteria FROM achievement ORDER BY ID DESC");
PrepareStatement(HotfixStatements.SEL_ACHIEVEMENT_LOCALE, "SELECT ID, Description_lang, Title_lang, Reward_lang FROM achievement_locale WHERE locale = ?");
// AnimationData.db2
- PrepareStatement(HotfixStatements.SEL_ANIMATION_DATA, "SELECT ID, Fallback, BehaviorTier, BehaviorID, Flags1, Flags2 FROM animation_data ORDER BY ID DESC");
+ PrepareStatement(HotfixStatements.SEL_ANIMATION_DATA, "SELECT ID, BehaviorID, BehaviorTier, Fallback, Flags1, Flags2 FROM animation_data ORDER BY ID DESC");
// AnimKit.db2
PrepareStatement(HotfixStatements.SEL_ANIM_KIT, "SELECT ID, OneShotDuration, OneShotStopAnimKitID, LowDefAnimKitID FROM anim_kit ORDER BY ID DESC");
@@ -36,42 +36,42 @@ namespace Framework.Database
PrepareStatement(HotfixStatements.SEL_AREA_GROUP_MEMBER, "SELECT ID, AreaID, AreaGroupID FROM area_group_member ORDER BY ID DESC");
// AreaTable.db2
- PrepareStatement(HotfixStatements.SEL_AREA_TABLE, "SELECT ID, ZoneName, AreaName, ContinentID, ParentAreaID, AreaBit, SoundProviderPref, " +
- "SoundProviderPrefUnderwater, AmbienceID, UwAmbience, ZoneMusic, UwZoneMusic, ExplorationLevel, IntroSound, UwIntroSound, FactionGroupMask, " +
- "AmbientMultiplier, MountFlags, PvpCombatWorldStateID, WildBattlePetLevelMin, WildBattlePetLevelMax, WindSettingsID, Flags1, Flags2, " +
+ PrepareStatement(HotfixStatements.SEL_AREA_TABLE, "SELECT ID, ZoneName, AreaName, ContinentID, ParentAreaID, AreaBit, SoundProviderPref, " +
+ "SoundProviderPrefUnderwater, AmbienceID, UwAmbience, ZoneMusic, UwZoneMusic, ExplorationLevel, IntroSound, UwIntroSound, FactionGroupMask, " +
+ "AmbientMultiplier, MountFlags, PvpCombatWorldStateID, WildBattlePetLevelMin, WildBattlePetLevelMax, WindSettingsID, Flags1, Flags2, " +
"LiquidTypeID1, LiquidTypeID2, LiquidTypeID3, LiquidTypeID4 FROM area_table ORDER BY ID DESC");
PrepareStatement(HotfixStatements.SEL_AREA_TABLE_LOCALE, "SELECT ID, AreaName_lang FROM area_table_locale WHERE locale = ?");
// AreaTrigger.db2
- PrepareStatement(HotfixStatements.SEL_AREA_TRIGGER, "SELECT PosX, PosY, PosZ, ID, ContinentID, PhaseUseFlags, PhaseID, PhaseGroupID, Radius, BoxLength, " +
+ PrepareStatement(HotfixStatements.SEL_AREA_TRIGGER, "SELECT PosX, PosY, PosZ, ID, ContinentID, PhaseUseFlags, PhaseID, PhaseGroupID, Radius, BoxLength, " +
"BoxWidth, BoxHeight, BoxYaw, ShapeType, ShapeID, AreaTriggerActionSetID, Flags FROM area_trigger ORDER BY ID DESC");
// ArmorLocation.db2
- PrepareStatement(HotfixStatements.SEL_ARMOR_LOCATION, "SELECT ID, Clothmodifier, Leathermodifier, Chainmodifier, Platemodifier, Modifier FROM armor_location" +
+ PrepareStatement(HotfixStatements.SEL_ARMOR_LOCATION, "SELECT ID, Clothmodifier, Leathermodifier, Chainmodifier, Platemodifier, Modifier FROM armor_location" +
" ORDER BY ID DESC");
// Artifact.db2
- PrepareStatement(HotfixStatements.SEL_ARTIFACT, "SELECT Name, ID, UiTextureKitID, UiNameColor, UiBarOverlayColor, UiBarBackgroundColor, " +
+ PrepareStatement(HotfixStatements.SEL_ARTIFACT, "SELECT Name, ID, UiTextureKitID, UiNameColor, UiBarOverlayColor, UiBarBackgroundColor, " +
"ChrSpecializationID, Flags, ArtifactCategoryID, UiModelSceneID, SpellVisualKitID FROM artifact ORDER BY ID DESC");
PrepareStatement(HotfixStatements.SEL_ARTIFACT_LOCALE, "SELECT ID, Name_lang FROM artifact_locale WHERE locale = ?");
// ArtifactAppearance.db2
- PrepareStatement(HotfixStatements.SEL_ARTIFACT_APPEARANCE, "SELECT Name, ID, ArtifactAppearanceSetID, DisplayIndex, UnlockPlayerConditionID, " +
- "ItemAppearanceModifierID, UiSwatchColor, UiModelSaturation, UiModelOpacity, OverrideShapeshiftFormID, OverrideShapeshiftDisplayID, " +
- "UiItemAppearanceID, UiAltItemAppearanceID, Flags, UiCameraID FROM artifact_appearance ORDER BY ID DESC");
+ PrepareStatement(HotfixStatements.SEL_ARTIFACT_APPEARANCE, "SELECT Name, ID, ArtifactAppearanceSetID, DisplayIndex, UnlockPlayerConditionID, " +
+ "ItemAppearanceModifierID, UiSwatchColor, UiModelSaturation, UiModelOpacity, OverrideShapeshiftFormID, OverrideShapeshiftDisplayID, " +
+ "UiItemAppearanceID, UiAltItemAppearanceID, Flags, UiCameraID, UsablePlayerConditionID FROM artifact_appearance ORDER BY ID DESC");
PrepareStatement(HotfixStatements.SEL_ARTIFACT_APPEARANCE_LOCALE, "SELECT ID, Name_lang FROM artifact_appearance_locale WHERE locale = ?");
// ArtifactAppearanceSet.db2
- PrepareStatement(HotfixStatements.SEL_ARTIFACT_APPEARANCE_SET, "SELECT Name, Description, ID, DisplayIndex, UiCameraID, AltHandUICameraID, " +
+ PrepareStatement(HotfixStatements.SEL_ARTIFACT_APPEARANCE_SET, "SELECT Name, Description, ID, DisplayIndex, UiCameraID, AltHandUICameraID, " +
"ForgeAttachmentOverride, Flags, ArtifactID FROM artifact_appearance_set ORDER BY ID DESC");
- PrepareStatement(HotfixStatements.SEL_ARTIFACT_APPEARANCE_SET_LOCALE, "SELECT ID, Name_lang, Description_lang FROM artifact_appearance_set_locale" +
+ PrepareStatement(HotfixStatements.SEL_ARTIFACT_APPEARANCE_SET_LOCALE, "SELECT ID, Name_lang, Description_lang FROM artifact_appearance_set_locale" +
" WHERE locale = ?");
// ArtifactCategory.db2
PrepareStatement(HotfixStatements.SEL_ARTIFACT_CATEGORY, "SELECT ID, XpMultCurrencyID, XpMultCurveID FROM artifact_category ORDER BY ID DESC");
// ArtifactPower.db2
- PrepareStatement(HotfixStatements.SEL_ARTIFACT_POWER, "SELECT DisplayPosX, DisplayPosY, ID, ArtifactID, MaxPurchasableRank, Label, Flags, Tier" +
+ PrepareStatement(HotfixStatements.SEL_ARTIFACT_POWER, "SELECT DisplayPosX, DisplayPosY, ID, ArtifactID, MaxPurchasableRank, Label, Flags, Tier" +
" FROM artifact_power ORDER BY ID DESC");
// ArtifactPowerLink.db2
@@ -81,19 +81,19 @@ namespace Framework.Database
PrepareStatement(HotfixStatements.SEL_ARTIFACT_POWER_PICKER, "SELECT ID, PlayerConditionID FROM artifact_power_picker ORDER BY ID DESC");
// ArtifactPowerRank.db2
- PrepareStatement(HotfixStatements.SEL_ARTIFACT_POWER_RANK, "SELECT ID, RankIndex, SpellID, ItemBonusListID, AuraPointsOverride, ArtifactPowerID" +
+ PrepareStatement(HotfixStatements.SEL_ARTIFACT_POWER_RANK, "SELECT ID, RankIndex, SpellID, ItemBonusListID, AuraPointsOverride, ArtifactPowerID" +
" FROM artifact_power_rank ORDER BY ID DESC");
// ArtifactQuestXp.db2
- PrepareStatement(HotfixStatements.SEL_ARTIFACT_QUEST_XP, "SELECT ID, Difficulty1, Difficulty2, Difficulty3, Difficulty4, Difficulty5, Difficulty6, " +
+ PrepareStatement(HotfixStatements.SEL_ARTIFACT_QUEST_XP, "SELECT ID, Difficulty1, Difficulty2, Difficulty3, Difficulty4, Difficulty5, Difficulty6, " +
"Difficulty7, Difficulty8, Difficulty9, Difficulty10 FROM artifact_quest_xp ORDER BY ID DESC");
// ArtifactTier.db2
- PrepareStatement(HotfixStatements.SEL_ARTIFACT_TIER, "SELECT ID, ArtifactTier, MaxNumTraits, MaxArtifactKnowledge, KnowledgePlayerCondition, " +
+ PrepareStatement(HotfixStatements.SEL_ARTIFACT_TIER, "SELECT ID, ArtifactTier, MaxNumTraits, MaxArtifactKnowledge, KnowledgePlayerCondition, " +
"MinimumEmpowerKnowledge FROM artifact_tier ORDER BY ID DESC");
// ArtifactUnlock.db2
- PrepareStatement(HotfixStatements.SEL_ARTIFACT_UNLOCK, "SELECT ID, PowerID, PowerRank, ItemBonusListID, PlayerConditionID, ArtifactID FROM artifact_unlock" +
+ PrepareStatement(HotfixStatements.SEL_ARTIFACT_UNLOCK, "SELECT ID, PowerID, PowerRank, ItemBonusListID, PlayerConditionID, ArtifactID FROM artifact_unlock" +
" ORDER BY ID DESC");
// AuctionHouse.db2
@@ -107,7 +107,7 @@ namespace Framework.Database
PrepareStatement(HotfixStatements.SEL_BANNED_ADDONS, "SELECT ID, Name, Version, Flags FROM banned_addons ORDER BY ID DESC");
// BarberShopStyle.db2
- PrepareStatement(HotfixStatements.SEL_BARBER_SHOP_STYLE, "SELECT DisplayName, Description, ID, Type, CostModifier, Race, Sex, Data FROM barber_shop_style" +
+ PrepareStatement(HotfixStatements.SEL_BARBER_SHOP_STYLE, "SELECT DisplayName, Description, ID, Type, CostModifier, Race, Sex, Data FROM barber_shop_style" +
" ORDER BY ID DESC");
PrepareStatement(HotfixStatements.SEL_BARBER_SHOP_STYLE_LOCALE, "SELECT ID, DisplayName_lang, Description_lang FROM barber_shop_style_locale WHERE locale = ?");
@@ -115,28 +115,28 @@ namespace Framework.Database
PrepareStatement(HotfixStatements.SEL_BATTLE_PET_BREED_QUALITY, "SELECT ID, StateMultiplier, QualityEnum FROM battle_pet_breed_quality ORDER BY ID DESC");
// BattlePetBreedState.db2
- PrepareStatement(HotfixStatements.SEL_BATTLE_PET_BREED_STATE, "SELECT ID, BattlePetStateID, Value, BattlePetBreedID FROM battle_pet_breed_state" +
+ PrepareStatement(HotfixStatements.SEL_BATTLE_PET_BREED_STATE, "SELECT ID, BattlePetStateID, Value, BattlePetBreedID FROM battle_pet_breed_state" +
" ORDER BY ID DESC");
// BattlePetSpecies.db2
- PrepareStatement(HotfixStatements.SEL_BATTLE_PET_SPECIES, "SELECT Description, SourceText, ID, CreatureID, SummonSpellID, IconFileDataID, PetTypeEnum, " +
+ PrepareStatement(HotfixStatements.SEL_BATTLE_PET_SPECIES, "SELECT Description, SourceText, ID, CreatureID, SummonSpellID, IconFileDataID, PetTypeEnum, " +
"Flags, SourceTypeEnum, CardUIModelSceneID, LoadoutUIModelSceneID FROM battle_pet_species ORDER BY ID DESC");
PrepareStatement(HotfixStatements.SEL_BATTLE_PET_SPECIES_LOCALE, "SELECT ID, Description_lang, SourceText_lang FROM battle_pet_species_locale WHERE locale = ?");
// BattlePetSpeciesState.db2
- PrepareStatement(HotfixStatements.SEL_BATTLE_PET_SPECIES_STATE, "SELECT ID, BattlePetStateID, Value, BattlePetSpeciesID FROM battle_pet_species_state" +
+ PrepareStatement(HotfixStatements.SEL_BATTLE_PET_SPECIES_STATE, "SELECT ID, BattlePetStateID, Value, BattlePetSpeciesID FROM battle_pet_species_state" +
" ORDER BY ID DESC");
// BattlemasterList.db2
- PrepareStatement(HotfixStatements.SEL_BATTLEMASTER_LIST, "SELECT ID, Name, GameType, ShortDescription, LongDescription, InstanceType, MinLevel, MaxLevel, " +
- "RatedPlayers, MinPlayers, MaxPlayers, GroupsAllowed, MaxGroupSize, HolidayWorldState, Flags, IconFileDataID, RequiredPlayerConditionID, " +
- "MapID1, MapID2, MapID3, MapID4, MapID5, MapID6, MapID7, MapID8, MapID9, MapID10, MapID11, MapID12, MapID13, MapID14, MapID15, MapID16" +
+ PrepareStatement(HotfixStatements.SEL_BATTLEMASTER_LIST, "SELECT ID, Name, GameType, ShortDescription, LongDescription, InstanceType, MinLevel, MaxLevel, " +
+ "RatedPlayers, MinPlayers, MaxPlayers, GroupsAllowed, MaxGroupSize, HolidayWorldState, Flags, IconFileDataID, RequiredPlayerConditionID, " +
+ "MapID1, MapID2, MapID3, MapID4, MapID5, MapID6, MapID7, MapID8, MapID9, MapID10, MapID11, MapID12, MapID13, MapID14, MapID15, MapID16" +
" FROM battlemaster_list ORDER BY ID DESC");
- PrepareStatement(HotfixStatements.SEL_BATTLEMASTER_LIST_LOCALE, "SELECT ID, Name_lang, GameType_lang, ShortDescription_lang, LongDescription_lang" +
+ PrepareStatement(HotfixStatements.SEL_BATTLEMASTER_LIST_LOCALE, "SELECT ID, Name_lang, GameType_lang, ShortDescription_lang, LongDescription_lang" +
" FROM battlemaster_list_locale WHERE locale = ?");
// BroadcastText.db2
- PrepareStatement(HotfixStatements.SEL_BROADCAST_TEXT, "SELECT Text, Text1, ID, LanguageID, ConditionID, EmotesID, Flags, ChatBubbleDurationMs, " +
+ PrepareStatement(HotfixStatements.SEL_BROADCAST_TEXT, "SELECT Text, Text1, ID, LanguageID, ConditionID, EmotesID, Flags, ChatBubbleDurationMs, " +
"SoundEntriesID1, SoundEntriesID2, EmoteID1, EmoteID2, EmoteID3, EmoteDelay1, EmoteDelay2, EmoteDelay3 FROM broadcast_text ORDER BY ID DESC");
PrepareStatement(HotfixStatements.SEL_BROADCAST_TEXT_LOCALE, "SELECT ID, Text_lang, Text1_lang FROM broadcast_text_locale WHERE locale = ?");
@@ -144,20 +144,20 @@ namespace Framework.Database
PrepareStatement(HotfixStatements.SEL_CFG_REGIONS, "SELECT ID, Tag, RegionID, Raidorigin, RegionGroupMask, ChallengeOrigin FROM cfg_regions ORDER BY ID DESC");
// CharacterFacialHairStyles.db2
- PrepareStatement(HotfixStatements.SEL_CHARACTER_FACIAL_HAIR_STYLES, "SELECT ID, Geoset1, Geoset2, Geoset3, Geoset4, Geoset5, RaceID, SexID, VariationID" +
+ PrepareStatement(HotfixStatements.SEL_CHARACTER_FACIAL_HAIR_STYLES, "SELECT ID, Geoset1, Geoset2, Geoset3, Geoset4, Geoset5, RaceID, SexID, VariationID" +
" FROM character_facial_hair_styles ORDER BY ID DESC");
// CharBaseSection.db2
- PrepareStatement(HotfixStatements.SEL_CHAR_BASE_SECTION, "SELECT ID, LayoutResType, VariationEnum, ResolutionVariationEnum FROM char_base_section" +
+ PrepareStatement(HotfixStatements.SEL_CHAR_BASE_SECTION, "SELECT ID, LayoutResType, VariationEnum, ResolutionVariationEnum FROM char_base_section" +
" ORDER BY ID DESC");
// CharSections.db2
- PrepareStatement(HotfixStatements.SEL_CHAR_SECTIONS, "SELECT ID, RaceID, SexID, BaseSection, VariationIndex, ColorIndex, Flags, MaterialResourcesID1, " +
+ PrepareStatement(HotfixStatements.SEL_CHAR_SECTIONS, "SELECT ID, RaceID, SexID, BaseSection, VariationIndex, ColorIndex, Flags, MaterialResourcesID1, " +
"MaterialResourcesID2, MaterialResourcesID3 FROM char_sections ORDER BY ID DESC");
// CharStartOutfit.db2
- PrepareStatement(HotfixStatements.SEL_CHAR_START_OUTFIT, "SELECT ID, ClassID, SexID, OutfitID, PetDisplayID, PetFamilyID, ItemID1, ItemID2, ItemID3, " +
- "ItemID4, ItemID5, ItemID6, ItemID7, ItemID8, ItemID9, ItemID10, ItemID11, ItemID12, ItemID13, ItemID14, ItemID15, ItemID16, ItemID17, " +
+ PrepareStatement(HotfixStatements.SEL_CHAR_START_OUTFIT, "SELECT ID, ClassID, SexID, OutfitID, PetDisplayID, PetFamilyID, ItemID1, ItemID2, ItemID3, " +
+ "ItemID4, ItemID5, ItemID6, ItemID7, ItemID8, ItemID9, ItemID10, ItemID11, ItemID12, ItemID13, ItemID14, ItemID15, ItemID16, ItemID17, " +
"ItemID18, ItemID19, ItemID20, ItemID21, ItemID22, ItemID23, ItemID24, RaceID FROM char_start_outfit ORDER BY ID DESC");
// CharTitles.db2
@@ -169,90 +169,95 @@ namespace Framework.Database
PrepareStatement(HotfixStatements.SEL_CHAT_CHANNELS_LOCALE, "SELECT ID, Name_lang, Shortcut_lang FROM chat_channels_locale WHERE locale = ?");
// ChrClasses.db2
- PrepareStatement(HotfixStatements.SEL_CHR_CLASSES, "SELECT Name, Filename, NameMale, NameFemale, PetNameToken, ID, CreateScreenFileDataID, " +
- "SelectScreenFileDataID, IconFileDataID, LowResScreenFileDataID, StartingLevel, Flags, CinematicSequenceID, DefaultSpec, PrimaryStatPriority, " +
- "DisplayPower, RangedAttackPowerPerAgility, AttackPowerPerAgility, AttackPowerPerStrength, SpellClassSet FROM chr_classes ORDER BY ID DESC");
+ PrepareStatement(HotfixStatements.SEL_CHR_CLASSES, "SELECT Name, Filename, NameMale, NameFemale, PetNameToken, ID, CreateScreenFileDataID, " +
+ "SelectScreenFileDataID, IconFileDataID, LowResScreenFileDataID, StartingLevel, SpellTextureBlobFileDataID, Flags, CinematicSequenceID, " +
+ "DefaultSpec, PrimaryStatPriority, DisplayPower, RangedAttackPowerPerAgility, AttackPowerPerAgility, AttackPowerPerStrength, SpellClassSet" +
+ " FROM chr_classes ORDER BY ID DESC");
PrepareStatement(HotfixStatements.SEL_CHR_CLASSES_LOCALE, "SELECT ID, Name_lang, NameMale_lang, NameFemale_lang FROM chr_classes_locale WHERE locale = ?");
// ChrClassesXPowerTypes.db2
PrepareStatement(HotfixStatements.SEL_CHR_CLASSES_X_POWER_TYPES, "SELECT ID, PowerType, ClassID FROM chr_classes_x_power_types ORDER BY ID DESC");
// ChrRaces.db2
- PrepareStatement(HotfixStatements.SEL_CHR_RACES, "SELECT ClientPrefix, ClientFileString, Name, NameFemale, NameLowercase, NameFemaleLowercase, ID, Flags, " +
- "MaleDisplayId, FemaleDisplayId, HighResMaleDisplayId, HighResFemaleDisplayId, CreateScreenFileDataID, SelectScreenFileDataID, " +
- "MaleCustomizeOffset1, MaleCustomizeOffset2, MaleCustomizeOffset3, FemaleCustomizeOffset1, FemaleCustomizeOffset2, FemaleCustomizeOffset3, " +
- "LowResScreenFileDataID, AlteredFormStartVisualKitID1, AlteredFormStartVisualKitID2, AlteredFormStartVisualKitID3, " +
- "AlteredFormFinishVisualKitID1, AlteredFormFinishVisualKitID2, AlteredFormFinishVisualKitID3, HeritageArmorAchievementID, StartingLevel, " +
- "UiDisplayOrder, FemaleSkeletonFileDataID, MaleSkeletonFileDataID, HelmVisFallbackRaceID, FactionID, CinematicSequenceID, ResSicknessSpellID, " +
- "SplashSoundID, BaseLanguage, CreatureType, Alliance, RaceRelated, UnalteredVisualRaceID, CharComponentTextureLayoutID, " +
- "CharComponentTexLayoutHiResID, DefaultClassID, NeutralRaceID, MaleModelFallbackRaceID, MaleModelFallbackSex, FemaleModelFallbackRaceID, " +
- "FemaleModelFallbackSex, MaleTextureFallbackRaceID, MaleTextureFallbackSex, FemaleTextureFallbackRaceID, FemaleTextureFallbackSex" +
+ PrepareStatement(HotfixStatements.SEL_CHR_RACES, "SELECT ClientPrefix, ClientFileString, Name, NameFemale, NameLowercase, NameFemaleLowercase, ID, Flags, " +
+ "MaleDisplayId, FemaleDisplayId, HighResMaleDisplayId, HighResFemaleDisplayId, CreateScreenFileDataID, SelectScreenFileDataID, " +
+ "MaleCustomizeOffset1, MaleCustomizeOffset2, MaleCustomizeOffset3, FemaleCustomizeOffset1, FemaleCustomizeOffset2, FemaleCustomizeOffset3, " +
+ "LowResScreenFileDataID, AlteredFormStartVisualKitID1, AlteredFormStartVisualKitID2, AlteredFormStartVisualKitID3, " +
+ "AlteredFormFinishVisualKitID1, AlteredFormFinishVisualKitID2, AlteredFormFinishVisualKitID3, HeritageArmorAchievementID, StartingLevel, " +
+ "UiDisplayOrder, FemaleSkeletonFileDataID, MaleSkeletonFileDataID, HelmVisFallbackRaceID, FactionID, CinematicSequenceID, ResSicknessSpellID, " +
+ "SplashSoundID, BaseLanguage, CreatureType, Alliance, RaceRelated, UnalteredVisualRaceID, CharComponentTextureLayoutID, " +
+ "CharComponentTexLayoutHiResID, DefaultClassID, NeutralRaceID, MaleModelFallbackRaceID, MaleModelFallbackSex, FemaleModelFallbackRaceID, " +
+ "FemaleModelFallbackSex, MaleTextureFallbackRaceID, MaleTextureFallbackSex, FemaleTextureFallbackRaceID, FemaleTextureFallbackSex" +
" FROM chr_races ORDER BY ID DESC");
- PrepareStatement(HotfixStatements.SEL_CHR_RACES_LOCALE, "SELECT ID, Name_lang, NameFemale_lang, NameLowercase_lang, NameFemaleLowercase_lang" +
+ PrepareStatement(HotfixStatements.SEL_CHR_RACES_LOCALE, "SELECT ID, Name_lang, NameFemale_lang, NameLowercase_lang, NameFemaleLowercase_lang" +
" FROM chr_races_locale WHERE locale = ?");
// ChrSpecialization.db2
- PrepareStatement(HotfixStatements.SEL_CHR_SPECIALIZATION, "SELECT Name, FemaleName, Description, ID, ClassID, OrderIndex, PetTalentType, Role, Flags, " +
+ PrepareStatement(HotfixStatements.SEL_CHR_SPECIALIZATION, "SELECT Name, FemaleName, Description, ID, ClassID, OrderIndex, PetTalentType, Role, Flags, " +
"SpellIconFileID, PrimaryStatPriority, AnimReplacements, MasterySpellID1, MasterySpellID2 FROM chr_specialization ORDER BY ID DESC");
- PrepareStatement(HotfixStatements.SEL_CHR_SPECIALIZATION_LOCALE, "SELECT ID, Name_lang, FemaleName_lang, Description_lang FROM chr_specialization_locale" +
+ PrepareStatement(HotfixStatements.SEL_CHR_SPECIALIZATION_LOCALE, "SELECT ID, Name_lang, FemaleName_lang, Description_lang FROM chr_specialization_locale" +
" WHERE locale = ?");
// CinematicCamera.db2
- PrepareStatement(HotfixStatements.SEL_CINEMATIC_CAMERA, "SELECT ID, OriginX, OriginY, OriginZ, SoundID, OriginFacing, FileDataID FROM cinematic_camera" +
+ PrepareStatement(HotfixStatements.SEL_CINEMATIC_CAMERA, "SELECT ID, OriginX, OriginY, OriginZ, SoundID, OriginFacing, FileDataID FROM cinematic_camera" +
" ORDER BY ID DESC");
// CinematicSequences.db2
- PrepareStatement(HotfixStatements.SEL_CINEMATIC_SEQUENCES, "SELECT ID, SoundID, Camera1, Camera2, Camera3, Camera4, Camera5, Camera6, Camera7, Camera8" +
+ PrepareStatement(HotfixStatements.SEL_CINEMATIC_SEQUENCES, "SELECT ID, SoundID, Camera1, Camera2, Camera3, Camera4, Camera5, Camera6, Camera7, Camera8" +
" FROM cinematic_sequences ORDER BY ID DESC");
// ContentTuning.db2
- PrepareStatement(HotfixStatements.SEL_CONTENT_TUNING, "SELECT ID, MinLevel, MaxLevel, Flags, ExpectedStatModID, DifficultyESMID FROM content_tuning" +
+ PrepareStatement(HotfixStatements.SEL_CONTENT_TUNING, "SELECT ID, MinLevel, MaxLevel, Flags, ExpansionID FROM content_tuning ORDER BY ID DESC");
+
+ // ContentTuningXExpected.db2
+ PrepareStatement(HotfixStatements.SEL_CONTENT_TUNING_X_EXPECTED, "SELECT ID, ExpectedStatModID, ContentTuningID FROM content_tuning_x_expected" +
" ORDER BY ID DESC");
// ConversationLine.db2
- PrepareStatement(HotfixStatements.SEL_CONVERSATION_LINE, "SELECT ID, BroadcastTextID, SpellVisualKitID, AdditionalDuration, NextConversationLineID, " +
+ PrepareStatement(HotfixStatements.SEL_CONVERSATION_LINE, "SELECT ID, BroadcastTextID, SpellVisualKitID, AdditionalDuration, NextConversationLineID, " +
"AnimKitID, SpeechType, StartAnimation, EndAnimation FROM conversation_line ORDER BY ID DESC");
// CreatureDisplayInfo.db2
- PrepareStatement(HotfixStatements.SEL_CREATURE_DISPLAY_INFO, "SELECT ID, ModelID, SoundID, SizeClass, CreatureModelScale, CreatureModelAlpha, BloodID, " +
- "ExtendedDisplayInfoID, NPCSoundID, ParticleColorID, PortraitCreatureDisplayInfoID, PortraitTextureFileDataID, ObjectEffectPackageID, " +
- "AnimReplacementSetID, Flags, StateSpellVisualKitID, PlayerOverrideScale, PetInstanceScale, UnarmedWeaponType, MountPoofSpellVisualKitID, " +
- "DissolveEffectID, Gender, DissolveOutEffectID, CreatureModelMinLod, TextureVariationFileDataID1, TextureVariationFileDataID2, " +
+ PrepareStatement(HotfixStatements.SEL_CREATURE_DISPLAY_INFO, "SELECT ID, ModelID, SoundID, SizeClass, CreatureModelScale, CreatureModelAlpha, BloodID, " +
+ "ExtendedDisplayInfoID, NPCSoundID, ParticleColorID, PortraitCreatureDisplayInfoID, PortraitTextureFileDataID, ObjectEffectPackageID, " +
+ "AnimReplacementSetID, Flags, StateSpellVisualKitID, PlayerOverrideScale, PetInstanceScale, UnarmedWeaponType, MountPoofSpellVisualKitID, " +
+ "DissolveEffectID, Gender, DissolveOutEffectID, CreatureModelMinLod, TextureVariationFileDataID1, TextureVariationFileDataID2, " +
"TextureVariationFileDataID3 FROM creature_display_info ORDER BY ID DESC");
// CreatureDisplayInfoExtra.db2
- PrepareStatement(HotfixStatements.SEL_CREATURE_DISPLAY_INFO_EXTRA, "SELECT ID, DisplayRaceID, DisplaySexID, DisplayClassID, SkinID, FaceID, HairStyleID, " +
- "HairColorID, FacialHairID, Flags, BakeMaterialResourcesID, HDBakeMaterialResourcesID, CustomDisplayOption1, CustomDisplayOption2, " +
+ PrepareStatement(HotfixStatements.SEL_CREATURE_DISPLAY_INFO_EXTRA, "SELECT ID, DisplayRaceID, DisplaySexID, DisplayClassID, SkinID, FaceID, HairStyleID, " +
+ "HairColorID, FacialHairID, Flags, BakeMaterialResourcesID, HDBakeMaterialResourcesID, CustomDisplayOption1, CustomDisplayOption2, " +
"CustomDisplayOption3 FROM creature_display_info_extra ORDER BY ID DESC");
// CreatureFamily.db2
- PrepareStatement(HotfixStatements.SEL_CREATURE_FAMILY, "SELECT ID, Name, MinScale, MinScaleLevel, MaxScale, MaxScaleLevel, PetFoodMask, PetTalentType, " +
+ PrepareStatement(HotfixStatements.SEL_CREATURE_FAMILY, "SELECT ID, Name, MinScale, MinScaleLevel, MaxScale, MaxScaleLevel, PetFoodMask, PetTalentType, " +
"IconFileID, SkillLine1, SkillLine2 FROM creature_family ORDER BY ID DESC");
PrepareStatement(HotfixStatements.SEL_CREATURE_FAMILY_LOCALE, "SELECT ID, Name_lang FROM creature_family_locale WHERE locale = ?");
// CreatureModelData.db2
- PrepareStatement(HotfixStatements.SEL_CREATURE_MODEL_DATA, "SELECT ID, GeoBox1, GeoBox2, GeoBox3, GeoBox4, GeoBox5, GeoBox6, Flags, FileDataID, BloodID, " +
- "FootprintTextureID, FootprintTextureLength, FootprintTextureWidth, FootprintParticleScale, FoleyMaterialID, FootstepCameraEffectID, " +
- "DeathThudCameraEffectID, SoundID, SizeClass, CollisionWidth, CollisionHeight, WorldEffectScale, CreatureGeosetDataID, HoverHeight, " +
- "AttachedEffectScale, ModelScale, MissileCollisionRadius, MissileCollisionPush, MissileCollisionRaise, MountHeight, OverrideLootEffectScale, " +
- "OverrideNameScale, OverrideSelectionRadius, TamedPetBaseScale FROM creature_model_data ORDER BY ID DESC");
+ PrepareStatement(HotfixStatements.SEL_CREATURE_MODEL_DATA, "SELECT ID, GeoBox1, GeoBox2, GeoBox3, GeoBox4, GeoBox5, GeoBox6, Flags, FileDataID, BloodID, " +
+ "FootprintTextureID, FootprintTextureLength, FootprintTextureWidth, FootprintParticleScale, FoleyMaterialID, FootstepCameraEffectID, " +
+ "DeathThudCameraEffectID, SoundID, SizeClass, CollisionWidth, CollisionHeight, WorldEffectScale, CreatureGeosetDataID, HoverHeight, " +
+ "AttachedEffectScale, ModelScale, MissileCollisionRadius, MissileCollisionPush, MissileCollisionRaise, MountHeight, OverrideLootEffectScale, " +
+ "OverrideNameScale, OverrideSelectionRadius, TamedPetBaseScale, Unknown820_1, Unknown820_2, Unknown820_31, Unknown820_32" +
+ " FROM creature_model_data ORDER BY ID DESC");
// CreatureType.db2
PrepareStatement(HotfixStatements.SEL_CREATURE_TYPE, "SELECT ID, Name, Flags FROM creature_type ORDER BY ID DESC");
PrepareStatement(HotfixStatements.SEL_CREATURE_TYPE_LOCALE, "SELECT ID, Name_lang FROM creature_type_locale WHERE locale = ?");
// Criteria.db2
- PrepareStatement(HotfixStatements.SEL_CRITERIA, "SELECT ID, Type, Asset, ModifierTreeId, StartEvent, StartAsset, StartTimer, FailEvent, FailAsset, Flags, " +
+ PrepareStatement(HotfixStatements.SEL_CRITERIA, "SELECT ID, Type, Asset, ModifierTreeId, StartEvent, StartAsset, StartTimer, FailEvent, FailAsset, Flags, " +
"EligibilityWorldStateID, EligibilityWorldStateValue FROM criteria ORDER BY ID DESC");
// CriteriaTree.db2
- PrepareStatement(HotfixStatements.SEL_CRITERIA_TREE, "SELECT ID, Description, Parent, Amount, Operator, CriteriaID, OrderIndex, Flags FROM criteria_tree" +
+ PrepareStatement(HotfixStatements.SEL_CRITERIA_TREE, "SELECT ID, Description, Parent, Amount, Operator, CriteriaID, OrderIndex, Flags FROM criteria_tree" +
" ORDER BY ID DESC");
PrepareStatement(HotfixStatements.SEL_CRITERIA_TREE_LOCALE, "SELECT ID, Description_lang FROM criteria_tree_locale WHERE locale = ?");
// CurrencyTypes.db2
- PrepareStatement(HotfixStatements.SEL_CURRENCY_TYPES, "SELECT ID, Name, Description, CategoryID, InventoryIconFileID, SpellWeight, SpellCategory, MaxQty, " +
- "MaxEarnablePerWeek, Flags, Quality, FactionID FROM currency_types ORDER BY ID DESC");
+ PrepareStatement(HotfixStatements.SEL_CURRENCY_TYPES, "SELECT ID, Name, Description, CategoryID, InventoryIconFileID, SpellWeight, SpellCategory, MaxQty, " +
+ "MaxEarnablePerWeek, Flags, Quality, FactionID, ItemGroupSoundsID FROM currency_types ORDER BY ID DESC");
PrepareStatement(HotfixStatements.SEL_CURRENCY_TYPES_LOCALE, "SELECT ID, Name_lang, Description_lang FROM currency_types_locale WHERE locale = ?");
// Curve.db2
@@ -262,36 +267,36 @@ namespace Framework.Database
PrepareStatement(HotfixStatements.SEL_CURVE_POINT, "SELECT ID, PosX, PosY, CurveID, OrderIndex FROM curve_point ORDER BY ID DESC");
// DestructibleModelData.db2
- PrepareStatement(HotfixStatements.SEL_DESTRUCTIBLE_MODEL_DATA, "SELECT ID, State0ImpactEffectDoodadSet, State0AmbientDoodadSet, State1Wmo, " +
- "State1DestructionDoodadSet, State1ImpactEffectDoodadSet, State1AmbientDoodadSet, State2Wmo, State2DestructionDoodadSet, " +
- "State2ImpactEffectDoodadSet, State2AmbientDoodadSet, State3Wmo, State3InitDoodadSet, State3AmbientDoodadSet, EjectDirection, DoNotHighlight, " +
- "State0Wmo, HealEffect, HealEffectSpeed, State0NameSet, State1NameSet, State2NameSet, State3NameSet FROM destructible_model_data" +
+ PrepareStatement(HotfixStatements.SEL_DESTRUCTIBLE_MODEL_DATA, "SELECT ID, State0ImpactEffectDoodadSet, State0AmbientDoodadSet, State1Wmo, " +
+ "State1DestructionDoodadSet, State1ImpactEffectDoodadSet, State1AmbientDoodadSet, State2Wmo, State2DestructionDoodadSet, " +
+ "State2ImpactEffectDoodadSet, State2AmbientDoodadSet, State3Wmo, State3InitDoodadSet, State3AmbientDoodadSet, EjectDirection, DoNotHighlight, " +
+ "State0Wmo, HealEffect, HealEffectSpeed, State0NameSet, State1NameSet, State2NameSet, State3NameSet FROM destructible_model_data" +
" ORDER BY ID DESC");
// Difficulty.db2
- PrepareStatement(HotfixStatements.SEL_DIFFICULTY, "SELECT ID, Name, InstanceType, OrderIndex, OldEnumValue, FallbackDifficultyID, MinPlayers, MaxPlayers, " +
- "Flags, ItemContext, ToggleDifficultyID, GroupSizeHealthCurveID, GroupSizeDmgCurveID, GroupSizeSpellPointsCurveID FROM difficulty" +
+ PrepareStatement(HotfixStatements.SEL_DIFFICULTY, "SELECT ID, Name, InstanceType, OrderIndex, OldEnumValue, FallbackDifficultyID, MinPlayers, MaxPlayers, " +
+ "Flags, ItemContext, ToggleDifficultyID, GroupSizeHealthCurveID, GroupSizeDmgCurveID, GroupSizeSpellPointsCurveID FROM difficulty" +
" ORDER BY ID DESC");
PrepareStatement(HotfixStatements.SEL_DIFFICULTY_LOCALE, "SELECT ID, Name_lang FROM difficulty_locale WHERE locale = ?");
// DungeonEncounter.db2
- PrepareStatement(HotfixStatements.SEL_DUNGEON_ENCOUNTER, "SELECT Name, ID, MapID, DifficultyID, OrderIndex, Bit, CreatureDisplayID, Flags, SpellIconFileID" +
- " FROM dungeon_encounter ORDER BY ID DESC");
+ PrepareStatement(HotfixStatements.SEL_DUNGEON_ENCOUNTER, "SELECT Name, ID, MapID, DifficultyID, OrderIndex, CompleteWorldStateID, Bit, CreatureDisplayID, " +
+ "Flags, SpellIconFileID, Faction FROM dungeon_encounter ORDER BY ID DESC");
PrepareStatement(HotfixStatements.SEL_DUNGEON_ENCOUNTER_LOCALE, "SELECT ID, Name_lang FROM dungeon_encounter_locale WHERE locale = ?");
// DurabilityCosts.db2
- PrepareStatement(HotfixStatements.SEL_DURABILITY_COSTS, "SELECT ID, WeaponSubClassCost1, WeaponSubClassCost2, WeaponSubClassCost3, WeaponSubClassCost4, " +
- "WeaponSubClassCost5, WeaponSubClassCost6, WeaponSubClassCost7, WeaponSubClassCost8, WeaponSubClassCost9, WeaponSubClassCost10, " +
- "WeaponSubClassCost11, WeaponSubClassCost12, WeaponSubClassCost13, WeaponSubClassCost14, WeaponSubClassCost15, WeaponSubClassCost16, " +
- "WeaponSubClassCost17, WeaponSubClassCost18, WeaponSubClassCost19, WeaponSubClassCost20, WeaponSubClassCost21, ArmorSubClassCost1, " +
- "ArmorSubClassCost2, ArmorSubClassCost3, ArmorSubClassCost4, ArmorSubClassCost5, ArmorSubClassCost6, ArmorSubClassCost7, ArmorSubClassCost8" +
+ PrepareStatement(HotfixStatements.SEL_DURABILITY_COSTS, "SELECT ID, WeaponSubClassCost1, WeaponSubClassCost2, WeaponSubClassCost3, WeaponSubClassCost4, " +
+ "WeaponSubClassCost5, WeaponSubClassCost6, WeaponSubClassCost7, WeaponSubClassCost8, WeaponSubClassCost9, WeaponSubClassCost10, " +
+ "WeaponSubClassCost11, WeaponSubClassCost12, WeaponSubClassCost13, WeaponSubClassCost14, WeaponSubClassCost15, WeaponSubClassCost16, " +
+ "WeaponSubClassCost17, WeaponSubClassCost18, WeaponSubClassCost19, WeaponSubClassCost20, WeaponSubClassCost21, ArmorSubClassCost1, " +
+ "ArmorSubClassCost2, ArmorSubClassCost3, ArmorSubClassCost4, ArmorSubClassCost5, ArmorSubClassCost6, ArmorSubClassCost7, ArmorSubClassCost8" +
" FROM durability_costs ORDER BY ID DESC");
// DurabilityQuality.db2
PrepareStatement(HotfixStatements.SEL_DURABILITY_QUALITY, "SELECT ID, Data FROM durability_quality ORDER BY ID DESC");
// Emotes.db2
- PrepareStatement(HotfixStatements.SEL_EMOTES, "SELECT ID, RaceMask, EmoteSlashCommand, AnimID, EmoteFlags, EmoteSpecProc, EmoteSpecProcParam, EventSoundID, " +
+ PrepareStatement(HotfixStatements.SEL_EMOTES, "SELECT ID, RaceMask, EmoteSlashCommand, AnimID, EmoteFlags, EmoteSpecProc, EmoteSpecProcParam, EventSoundID, " +
"SpellVisualKitID, ClassMask FROM emotes ORDER BY ID DESC");
// EmotesText.db2
@@ -301,74 +306,74 @@ namespace Framework.Database
PrepareStatement(HotfixStatements.SEL_EMOTES_TEXT_SOUND, "SELECT ID, RaceID, ClassID, SexID, SoundID, EmotesTextID FROM emotes_text_sound ORDER BY ID DESC");
// ExpectedStat.db2
- PrepareStatement(HotfixStatements.SEL_EXPECTED_STAT, "SELECT ID, ExpansionID, CreatureHealth, PlayerHealth, CreatureAutoAttackDps, CreatureArmor, " +
+ PrepareStatement(HotfixStatements.SEL_EXPECTED_STAT, "SELECT ID, ExpansionID, CreatureHealth, PlayerHealth, CreatureAutoAttackDps, CreatureArmor, " +
"PlayerMana, PlayerPrimaryStat, PlayerSecondaryStat, ArmorConstant, CreatureSpellDamage, Lvl FROM expected_stat ORDER BY ID DESC");
// ExpectedStatMod.db2
- PrepareStatement(HotfixStatements.SEL_EXPECTED_STAT_MOD, "SELECT ID, CreatureHealthMod, PlayerHealthMod, CreatureAutoAttackDPSMod, CreatureArmorMod, " +
+ PrepareStatement(HotfixStatements.SEL_EXPECTED_STAT_MOD, "SELECT ID, CreatureHealthMod, PlayerHealthMod, CreatureAutoAttackDPSMod, CreatureArmorMod, " +
"PlayerManaMod, PlayerPrimaryStatMod, PlayerSecondaryStatMod, ArmorConstantMod, CreatureSpellDamageMod FROM expected_stat_mod ORDER BY ID DESC");
// Faction.db2
- PrepareStatement(HotfixStatements.SEL_FACTION, "SELECT ReputationRaceMask1, ReputationRaceMask2, ReputationRaceMask3, ReputationRaceMask4, Name, " +
- "Description, ID, ReputationIndex, ParentFactionID, Expansion, FriendshipRepID, Flags, ParagonFactionID, ReputationClassMask1, " +
- "ReputationClassMask2, ReputationClassMask3, ReputationClassMask4, ReputationFlags1, ReputationFlags2, ReputationFlags3, ReputationFlags4, " +
- "ReputationBase1, ReputationBase2, ReputationBase3, ReputationBase4, ReputationMax1, ReputationMax2, ReputationMax3, ReputationMax4, " +
+ PrepareStatement(HotfixStatements.SEL_FACTION, "SELECT ReputationRaceMask1, ReputationRaceMask2, ReputationRaceMask3, ReputationRaceMask4, Name, " +
+ "Description, ID, ReputationIndex, ParentFactionID, Expansion, FriendshipRepID, Flags, ParagonFactionID, ReputationClassMask1, " +
+ "ReputationClassMask2, ReputationClassMask3, ReputationClassMask4, ReputationFlags1, ReputationFlags2, ReputationFlags3, ReputationFlags4, " +
+ "ReputationBase1, ReputationBase2, ReputationBase3, ReputationBase4, ReputationMax1, ReputationMax2, ReputationMax3, ReputationMax4, " +
"ParentFactionMod1, ParentFactionMod2, ParentFactionCap1, ParentFactionCap2 FROM faction ORDER BY ID DESC");
PrepareStatement(HotfixStatements.SEL_FACTION_LOCALE, "SELECT ID, Name_lang, Description_lang FROM faction_locale WHERE locale = ?");
// FactionTemplate.db2
- PrepareStatement(HotfixStatements.SEL_FACTION_TEMPLATE, "SELECT ID, Faction, Flags, FactionGroup, FriendGroup, EnemyGroup, Enemies1, Enemies2, Enemies3, " +
+ PrepareStatement(HotfixStatements.SEL_FACTION_TEMPLATE, "SELECT ID, Faction, Flags, FactionGroup, FriendGroup, EnemyGroup, Enemies1, Enemies2, Enemies3, " +
"Enemies4, Friend1, Friend2, Friend3, Friend4 FROM faction_template ORDER BY ID DESC");
// GameobjectDisplayInfo.db2
- PrepareStatement(HotfixStatements.SEL_GAMEOBJECT_DISPLAY_INFO, "SELECT ID, GeoBoxMinX, GeoBoxMinY, GeoBoxMinZ, GeoBoxMaxX, GeoBoxMaxY, GeoBoxMaxZ, " +
+ PrepareStatement(HotfixStatements.SEL_GAMEOBJECT_DISPLAY_INFO, "SELECT ID, GeoBoxMinX, GeoBoxMinY, GeoBoxMinZ, GeoBoxMaxX, GeoBoxMaxY, GeoBoxMaxZ, " +
"FileDataID, ObjectEffectPackageID, OverrideLootEffectScale, OverrideNameScale FROM gameobject_display_info ORDER BY ID DESC");
// Gameobjects.db2
- PrepareStatement(HotfixStatements.SEL_GAMEOBJECTS, "SELECT Name, PosX, PosY, PosZ, Rot1, Rot2, Rot3, Rot4, ID, OwnerID, DisplayID, Scale, TypeID, " +
- "PhaseUseFlags, PhaseID, PhaseGroupID, PropValue1, PropValue2, PropValue3, PropValue4, PropValue5, PropValue6, PropValue7, PropValue8" +
+ PrepareStatement(HotfixStatements.SEL_GAMEOBJECTS, "SELECT Name, PosX, PosY, PosZ, Rot1, Rot2, Rot3, Rot4, ID, OwnerID, DisplayID, Scale, TypeID, " +
+ "PhaseUseFlags, PhaseID, PhaseGroupID, PropValue1, PropValue2, PropValue3, PropValue4, PropValue5, PropValue6, PropValue7, PropValue8" +
" FROM gameobjects ORDER BY ID DESC");
PrepareStatement(HotfixStatements.SEL_GAMEOBJECTS_LOCALE, "SELECT ID, Name_lang FROM gameobjects_locale WHERE locale = ?");
// GarrAbility.db2
- PrepareStatement(HotfixStatements.SEL_GARR_ABILITY, "SELECT Name, Description, ID, GarrAbilityCategoryID, GarrFollowerTypeID, IconFileDataID, " +
+ PrepareStatement(HotfixStatements.SEL_GARR_ABILITY, "SELECT Name, Description, ID, GarrAbilityCategoryID, GarrFollowerTypeID, IconFileDataID, " +
"FactionChangeGarrAbilityID, Flags FROM garr_ability ORDER BY ID DESC");
PrepareStatement(HotfixStatements.SEL_GARR_ABILITY_LOCALE, "SELECT ID, Name_lang, Description_lang FROM garr_ability_locale WHERE locale = ?");
// GarrBuilding.db2
- PrepareStatement(HotfixStatements.SEL_GARR_BUILDING, "SELECT ID, HordeName, AllianceName, Description, Tooltip, GarrTypeID, BuildingType, " +
- "HordeGameObjectID, AllianceGameObjectID, GarrSiteID, UpgradeLevel, BuildSeconds, CurrencyTypeID, CurrencyQty, HordeUiTextureKitID, " +
- "AllianceUiTextureKitID, IconFileDataID, AllianceSceneScriptPackageID, HordeSceneScriptPackageID, MaxAssignments, ShipmentCapacity, " +
+ PrepareStatement(HotfixStatements.SEL_GARR_BUILDING, "SELECT ID, HordeName, AllianceName, Description, Tooltip, GarrTypeID, BuildingType, " +
+ "HordeGameObjectID, AllianceGameObjectID, GarrSiteID, UpgradeLevel, BuildSeconds, CurrencyTypeID, CurrencyQty, HordeUiTextureKitID, " +
+ "AllianceUiTextureKitID, IconFileDataID, AllianceSceneScriptPackageID, HordeSceneScriptPackageID, MaxAssignments, ShipmentCapacity, " +
"GarrAbilityID, BonusGarrAbilityID, GoldCost, Flags FROM garr_building ORDER BY ID DESC");
- PrepareStatement(HotfixStatements.SEL_GARR_BUILDING_LOCALE, "SELECT ID, HordeName_lang, AllianceName_lang, Description_lang, Tooltip_lang" +
+ PrepareStatement(HotfixStatements.SEL_GARR_BUILDING_LOCALE, "SELECT ID, HordeName_lang, AllianceName_lang, Description_lang, Tooltip_lang" +
" FROM garr_building_locale WHERE locale = ?");
// GarrBuildingPlotInst.db2
- PrepareStatement(HotfixStatements.SEL_GARR_BUILDING_PLOT_INST, "SELECT MapOffsetX, MapOffsetY, ID, GarrBuildingID, GarrSiteLevelPlotInstID, " +
+ PrepareStatement(HotfixStatements.SEL_GARR_BUILDING_PLOT_INST, "SELECT MapOffsetX, MapOffsetY, ID, GarrBuildingID, GarrSiteLevelPlotInstID, " +
"UiTextureAtlasMemberID FROM garr_building_plot_inst ORDER BY ID DESC");
// GarrClassSpec.db2
- PrepareStatement(HotfixStatements.SEL_GARR_CLASS_SPEC, "SELECT ClassSpec, ClassSpecMale, ClassSpecFemale, ID, UiTextureAtlasMemberID, GarrFollItemSetID, " +
+ PrepareStatement(HotfixStatements.SEL_GARR_CLASS_SPEC, "SELECT ClassSpec, ClassSpecMale, ClassSpecFemale, ID, UiTextureAtlasMemberID, GarrFollItemSetID, " +
"FollowerClassLimit, Flags FROM garr_class_spec ORDER BY ID DESC");
- PrepareStatement(HotfixStatements.SEL_GARR_CLASS_SPEC_LOCALE, "SELECT ID, ClassSpec_lang, ClassSpecMale_lang, ClassSpecFemale_lang FROM garr_class_spec_locale" +
+ PrepareStatement(HotfixStatements.SEL_GARR_CLASS_SPEC_LOCALE, "SELECT ID, ClassSpec_lang, ClassSpecMale_lang, ClassSpecFemale_lang FROM garr_class_spec_locale" +
" WHERE locale = ?");
// GarrFollower.db2
- PrepareStatement(HotfixStatements.SEL_GARR_FOLLOWER, "SELECT HordeSourceText, AllianceSourceText, TitleName, ID, GarrTypeID, GarrFollowerTypeID, " +
- "HordeCreatureID, AllianceCreatureID, HordeGarrFollRaceID, AllianceGarrFollRaceID, HordeGarrClassSpecID, AllianceGarrClassSpecID, Quality, " +
- "FollowerLevel, ItemLevelWeapon, ItemLevelArmor, HordeSourceTypeEnum, AllianceSourceTypeEnum, HordeIconFileDataID, AllianceIconFileDataID, " +
- "HordeGarrFollItemSetID, AllianceGarrFollItemSetID, HordeUITextureKitID, AllianceUITextureKitID, Vitality, HordeFlavorGarrStringID, " +
- "AllianceFlavorGarrStringID, HordeSlottingBroadcastTextID, AllySlottingBroadcastTextID, ChrClassID, Flags, Gender FROM garr_follower" +
+ PrepareStatement(HotfixStatements.SEL_GARR_FOLLOWER, "SELECT HordeSourceText, AllianceSourceText, TitleName, ID, GarrTypeID, GarrFollowerTypeID, " +
+ "HordeCreatureID, AllianceCreatureID, HordeGarrFollRaceID, AllianceGarrFollRaceID, HordeGarrClassSpecID, AllianceGarrClassSpecID, Quality, " +
+ "FollowerLevel, ItemLevelWeapon, ItemLevelArmor, HordeSourceTypeEnum, AllianceSourceTypeEnum, HordeIconFileDataID, AllianceIconFileDataID, " +
+ "HordeGarrFollItemSetID, AllianceGarrFollItemSetID, HordeUITextureKitID, AllianceUITextureKitID, Vitality, HordeFlavorGarrStringID, " +
+ "AllianceFlavorGarrStringID, HordeSlottingBroadcastTextID, AllySlottingBroadcastTextID, ChrClassID, Flags, Gender FROM garr_follower" +
" ORDER BY ID DESC");
- PrepareStatement(HotfixStatements.SEL_GARR_FOLLOWER_LOCALE, "SELECT ID, HordeSourceText_lang, AllianceSourceText_lang, TitleName_lang FROM garr_follower_locale" +
+ PrepareStatement(HotfixStatements.SEL_GARR_FOLLOWER_LOCALE, "SELECT ID, HordeSourceText_lang, AllianceSourceText_lang, TitleName_lang FROM garr_follower_locale" +
" WHERE locale = ?");
// GarrFollowerXAbility.db2
- PrepareStatement(HotfixStatements.SEL_GARR_FOLLOWER_X_ABILITY, "SELECT ID, OrderIndex, FactionIndex, GarrAbilityID, GarrFollowerID" +
+ PrepareStatement(HotfixStatements.SEL_GARR_FOLLOWER_X_ABILITY, "SELECT ID, OrderIndex, FactionIndex, GarrAbilityID, GarrFollowerID" +
" FROM garr_follower_x_ability ORDER BY ID DESC");
// GarrPlot.db2
- PrepareStatement(HotfixStatements.SEL_GARR_PLOT, "SELECT ID, Name, PlotType, HordeConstructObjID, AllianceConstructObjID, Flags, UiCategoryID, " +
+ PrepareStatement(HotfixStatements.SEL_GARR_PLOT, "SELECT ID, Name, PlotType, HordeConstructObjID, AllianceConstructObjID, Flags, UiCategoryID, " +
"UpgradeRequirement1, UpgradeRequirement2 FROM garr_plot ORDER BY ID DESC");
// GarrPlotBuilding.db2
@@ -378,11 +383,11 @@ namespace Framework.Database
PrepareStatement(HotfixStatements.SEL_GARR_PLOT_INSTANCE, "SELECT ID, Name, GarrPlotID FROM garr_plot_instance ORDER BY ID DESC");
// GarrSiteLevel.db2
- PrepareStatement(HotfixStatements.SEL_GARR_SITE_LEVEL, "SELECT ID, TownHallUiPosX, TownHallUiPosY, GarrSiteID, GarrLevel, MapID, UpgradeMovieID, " +
+ PrepareStatement(HotfixStatements.SEL_GARR_SITE_LEVEL, "SELECT ID, TownHallUiPosX, TownHallUiPosY, GarrSiteID, GarrLevel, MapID, UpgradeMovieID, " +
"UiTextureKitID, MaxBuildingLevel, UpgradeCost, UpgradeGoldCost FROM garr_site_level ORDER BY ID DESC");
// GarrSiteLevelPlotInst.db2
- PrepareStatement(HotfixStatements.SEL_GARR_SITE_LEVEL_PLOT_INST, "SELECT ID, UiMarkerPosX, UiMarkerPosY, GarrSiteLevelID, GarrPlotInstanceID, UiMarkerSize" +
+ PrepareStatement(HotfixStatements.SEL_GARR_SITE_LEVEL_PLOT_INST, "SELECT ID, UiMarkerPosX, UiMarkerPosY, GarrSiteLevelID, GarrPlotInstanceID, UiMarkerSize" +
" FROM garr_site_level_plot_inst ORDER BY ID DESC");
// GemProperties.db2
@@ -392,7 +397,7 @@ namespace Framework.Database
PrepareStatement(HotfixStatements.SEL_GLYPH_BINDABLE_SPELL, "SELECT ID, SpellID, GlyphPropertiesID FROM glyph_bindable_spell ORDER BY ID DESC");
// GlyphProperties.db2
- PrepareStatement(HotfixStatements.SEL_GLYPH_PROPERTIES, "SELECT ID, SpellID, SpellIconID, GlyphType, GlyphExclusiveCategoryID FROM glyph_properties" +
+ PrepareStatement(HotfixStatements.SEL_GLYPH_PROPERTIES, "SELECT ID, SpellID, GlyphType, GlyphExclusiveCategoryID, SpellIconFileDataID FROM glyph_properties" +
" ORDER BY ID DESC");
// GlyphRequiredSpec.db2
@@ -411,20 +416,21 @@ namespace Framework.Database
PrepareStatement(HotfixStatements.SEL_GUILD_PERK_SPELLS, "SELECT ID, SpellID FROM guild_perk_spells ORDER BY ID DESC");
// Heirloom.db2
- PrepareStatement(HotfixStatements.SEL_HEIRLOOM, "SELECT SourceText, ID, ItemID, LegacyUpgradedItemID, StaticUpgradedItemID, SourceTypeEnum, Flags, " +
- "LegacyItemID, UpgradeItemID1, UpgradeItemID2, UpgradeItemID3, UpgradeItemBonusListID1, UpgradeItemBonusListID2, UpgradeItemBonusListID3" +
- " FROM heirloom ORDER BY ID DESC");
+ PrepareStatement(HotfixStatements.SEL_HEIRLOOM, "SELECT SourceText, ID, ItemID, LegacyUpgradedItemID, StaticUpgradedItemID, SourceTypeEnum, Flags, " +
+ "LegacyItemID, UpgradeItemID1, UpgradeItemID2, UpgradeItemID3, UpgradeItemID4, UpgradeItemBonusListID1, UpgradeItemBonusListID2, " +
+ "UpgradeItemBonusListID3, UpgradeItemBonusListID4 FROM heirloom ORDER BY ID DESC");
PrepareStatement(HotfixStatements.SEL_HEIRLOOM_LOCALE, "SELECT ID, SourceText_lang FROM heirloom_locale WHERE locale = ?");
// Holidays.db2
- PrepareStatement(HotfixStatements.SEL_HOLIDAYS, "SELECT ID, Region, Looping, HolidayNameID, HolidayDescriptionID, Priority, CalendarFilterType, Flags, " +
- "Duration1, Duration2, Duration3, Duration4, Duration5, Duration6, Duration7, Duration8, Duration9, Duration10, Date1, Date2, Date3, Date4, " +
- "Date5, Date6, Date7, Date8, Date9, Date10, Date11, Date12, Date13, Date14, Date15, Date16, CalendarFlags1, CalendarFlags2, CalendarFlags3, " +
- "CalendarFlags4, CalendarFlags5, CalendarFlags6, CalendarFlags7, CalendarFlags8, CalendarFlags9, CalendarFlags10, TextureFileDataID1, " +
- "TextureFileDataID2, TextureFileDataID3 FROM holidays ORDER BY ID DESC");
+ PrepareStatement(HotfixStatements.SEL_HOLIDAYS, "SELECT ID, Region, Looping, HolidayNameID, HolidayDescriptionID, Priority, CalendarFilterType, Flags, " +
+ "Duration1, Duration2, Duration3, Duration4, Duration5, Duration6, Duration7, Duration8, Duration9, Duration10, Date1, Date2, Date3, Date4, " +
+ "Date5, Date6, Date7, Date8, Date9, Date10, Date11, Date12, Date13, Date14, Date15, Date16, Date17, Date18, Date19, Date20, Date21, Date22, " +
+ "Date23, Date24, Date25, Date26, CalendarFlags1, CalendarFlags2, CalendarFlags3, CalendarFlags4, CalendarFlags5, CalendarFlags6, " +
+ "CalendarFlags7, CalendarFlags8, CalendarFlags9, CalendarFlags10, TextureFileDataID1, TextureFileDataID2, TextureFileDataID3 FROM holidays" +
+ " ORDER BY ID DESC");
// ImportPriceArmor.db2
- PrepareStatement(HotfixStatements.SEL_IMPORT_PRICE_ARMOR, "SELECT ID, ClothModifier, LeatherModifier, ChainModifier, PlateModifier FROM import_price_armor" +
+ PrepareStatement(HotfixStatements.SEL_IMPORT_PRICE_ARMOR, "SELECT ID, ClothModifier, LeatherModifier, ChainModifier, PlateModifier FROM import_price_armor" +
" ORDER BY ID DESC");
// ImportPriceQuality.db2
@@ -437,19 +443,19 @@ namespace Framework.Database
PrepareStatement(HotfixStatements.SEL_IMPORT_PRICE_WEAPON, "SELECT ID, Data FROM import_price_weapon ORDER BY ID DESC");
// Item.db2
- PrepareStatement(HotfixStatements.SEL_ITEM, "SELECT ID, ClassID, SubclassID, Material, InventoryType, SheatheType, SoundOverrideSubclassID, IconFileDataID, " +
+ PrepareStatement(HotfixStatements.SEL_ITEM, "SELECT ID, ClassID, SubclassID, Material, InventoryType, SheatheType, SoundOverrideSubclassID, IconFileDataID, " +
"ItemGroupSoundsID FROM item ORDER BY ID DESC");
// ItemAppearance.db2
- PrepareStatement(HotfixStatements.SEL_ITEM_APPEARANCE, "SELECT ID, DisplayType, ItemDisplayInfoID, DefaultIconFileDataID, UiOrder FROM item_appearance" +
+ PrepareStatement(HotfixStatements.SEL_ITEM_APPEARANCE, "SELECT ID, DisplayType, ItemDisplayInfoID, DefaultIconFileDataID, UiOrder FROM item_appearance" +
" ORDER BY ID DESC");
// ItemArmorQuality.db2
- PrepareStatement(HotfixStatements.SEL_ITEM_ARMOR_QUALITY, "SELECT ID, Qualitymod1, Qualitymod2, Qualitymod3, Qualitymod4, Qualitymod5, Qualitymod6, " +
+ PrepareStatement(HotfixStatements.SEL_ITEM_ARMOR_QUALITY, "SELECT ID, Qualitymod1, Qualitymod2, Qualitymod3, Qualitymod4, Qualitymod5, Qualitymod6, " +
"Qualitymod7 FROM item_armor_quality ORDER BY ID DESC");
// ItemArmorShield.db2
- PrepareStatement(HotfixStatements.SEL_ITEM_ARMOR_SHIELD, "SELECT ID, Quality1, Quality2, Quality3, Quality4, Quality5, Quality6, Quality7, ItemLevel" +
+ PrepareStatement(HotfixStatements.SEL_ITEM_ARMOR_SHIELD, "SELECT ID, Quality1, Quality2, Quality3, Quality4, Quality5, Quality6, Quality7, ItemLevel" +
" FROM item_armor_shield ORDER BY ID DESC");
// ItemArmorTotal.db2
@@ -460,18 +466,18 @@ namespace Framework.Database
PrepareStatement(HotfixStatements.SEL_ITEM_BAG_FAMILY_LOCALE, "SELECT ID, Name_lang FROM item_bag_family_locale WHERE locale = ?");
// ItemBonus.db2
- PrepareStatement(HotfixStatements.SEL_ITEM_BONUS, "SELECT ID, Value1, Value2, Value3, ParentItemBonusListID, Type, OrderIndex FROM item_bonus" +
+ PrepareStatement(HotfixStatements.SEL_ITEM_BONUS, "SELECT ID, Value1, Value2, Value3, ParentItemBonusListID, Type, OrderIndex FROM item_bonus" +
" ORDER BY ID DESC");
// ItemBonusListLevelDelta.db2
PrepareStatement(HotfixStatements.SEL_ITEM_BONUS_LIST_LEVEL_DELTA, "SELECT ItemLevelDelta, ID FROM item_bonus_list_level_delta ORDER BY ID DESC");
// ItemBonusTreeNode.db2
- PrepareStatement(HotfixStatements.SEL_ITEM_BONUS_TREE_NODE, "SELECT ID, ItemContext, ChildItemBonusTreeID, ChildItemBonusListID, ChildItemLevelSelectorID, " +
+ PrepareStatement(HotfixStatements.SEL_ITEM_BONUS_TREE_NODE, "SELECT ID, ItemContext, ChildItemBonusTreeID, ChildItemBonusListID, ChildItemLevelSelectorID, " +
"ParentItemBonusTreeID FROM item_bonus_tree_node ORDER BY ID DESC");
// ItemChildEquipment.db2
- PrepareStatement(HotfixStatements.SEL_ITEM_CHILD_EQUIPMENT, "SELECT ID, ChildItemID, ChildItemEquipSlot, ParentItemID FROM item_child_equipment" +
+ PrepareStatement(HotfixStatements.SEL_ITEM_CHILD_EQUIPMENT, "SELECT ID, ParentItemID, ChildItemID, ChildItemEquipSlot FROM item_child_equipment" +
" ORDER BY ID DESC");
// ItemClass.db2
@@ -482,44 +488,45 @@ namespace Framework.Database
PrepareStatement(HotfixStatements.SEL_ITEM_CURRENCY_COST, "SELECT ID, ItemID FROM item_currency_cost ORDER BY ID DESC");
// ItemDamageAmmo.db2
- PrepareStatement(HotfixStatements.SEL_ITEM_DAMAGE_AMMO, "SELECT ID, ItemLevel, Quality1, Quality2, Quality3, Quality4, Quality5, Quality6, Quality7" +
+ PrepareStatement(HotfixStatements.SEL_ITEM_DAMAGE_AMMO, "SELECT ID, ItemLevel, Quality1, Quality2, Quality3, Quality4, Quality5, Quality6, Quality7" +
" FROM item_damage_ammo ORDER BY ID DESC");
// ItemDamageOneHand.db2
- PrepareStatement(HotfixStatements.SEL_ITEM_DAMAGE_ONE_HAND, "SELECT ID, ItemLevel, Quality1, Quality2, Quality3, Quality4, Quality5, Quality6, Quality7" +
+ PrepareStatement(HotfixStatements.SEL_ITEM_DAMAGE_ONE_HAND, "SELECT ID, ItemLevel, Quality1, Quality2, Quality3, Quality4, Quality5, Quality6, Quality7" +
" FROM item_damage_one_hand ORDER BY ID DESC");
// ItemDamageOneHandCaster.db2
- PrepareStatement(HotfixStatements.SEL_ITEM_DAMAGE_ONE_HAND_CASTER, "SELECT ID, ItemLevel, Quality1, Quality2, Quality3, Quality4, Quality5, Quality6, " +
+ PrepareStatement(HotfixStatements.SEL_ITEM_DAMAGE_ONE_HAND_CASTER, "SELECT ID, ItemLevel, Quality1, Quality2, Quality3, Quality4, Quality5, Quality6, " +
"Quality7 FROM item_damage_one_hand_caster ORDER BY ID DESC");
// ItemDamageTwoHand.db2
- PrepareStatement(HotfixStatements.SEL_ITEM_DAMAGE_TWO_HAND, "SELECT ID, ItemLevel, Quality1, Quality2, Quality3, Quality4, Quality5, Quality6, Quality7" +
+ PrepareStatement(HotfixStatements.SEL_ITEM_DAMAGE_TWO_HAND, "SELECT ID, ItemLevel, Quality1, Quality2, Quality3, Quality4, Quality5, Quality6, Quality7" +
" FROM item_damage_two_hand ORDER BY ID DESC");
// ItemDamageTwoHandCaster.db2
- PrepareStatement(HotfixStatements.SEL_ITEM_DAMAGE_TWO_HAND_CASTER, "SELECT ID, ItemLevel, Quality1, Quality2, Quality3, Quality4, Quality5, Quality6, " +
+ PrepareStatement(HotfixStatements.SEL_ITEM_DAMAGE_TWO_HAND_CASTER, "SELECT ID, ItemLevel, Quality1, Quality2, Quality3, Quality4, Quality5, Quality6, " +
"Quality7 FROM item_damage_two_hand_caster ORDER BY ID DESC");
// ItemDisenchantLoot.db2
- PrepareStatement(HotfixStatements.SEL_ITEM_DISENCHANT_LOOT, "SELECT ID, Subclass, Quality, MinLevel, MaxLevel, SkillRequired, ExpansionID, Class" +
+ PrepareStatement(HotfixStatements.SEL_ITEM_DISENCHANT_LOOT, "SELECT ID, Subclass, Quality, MinLevel, MaxLevel, SkillRequired, ExpansionID, Class" +
" FROM item_disenchant_loot ORDER BY ID DESC");
// ItemEffect.db2
- PrepareStatement(HotfixStatements.SEL_ITEM_EFFECT, "SELECT ID, LegacySlotIndex, TriggerType, Charges, CoolDownMSec, CategoryCoolDownMSec, SpellCategoryID, " +
+ PrepareStatement(HotfixStatements.SEL_ITEM_EFFECT, "SELECT ID, LegacySlotIndex, TriggerType, Charges, CoolDownMSec, CategoryCoolDownMSec, SpellCategoryID, " +
"SpellID, ChrSpecializationID, ParentItemID FROM item_effect ORDER BY ID DESC");
// ItemExtendedCost.db2
- PrepareStatement(HotfixStatements.SEL_ITEM_EXTENDED_COST, "SELECT ID, RequiredArenaRating, ArenaBracket, Flags, MinFactionID, MinReputation, " +
- "RequiredAchievement, ItemID1, ItemID2, ItemID3, ItemID4, ItemID5, ItemCount1, ItemCount2, ItemCount3, ItemCount4, ItemCount5, CurrencyID1, " +
- "CurrencyID2, CurrencyID3, CurrencyID4, CurrencyID5, CurrencyCount1, CurrencyCount2, CurrencyCount3, CurrencyCount4, CurrencyCount5" +
+ PrepareStatement(HotfixStatements.SEL_ITEM_EXTENDED_COST, "SELECT ID, RequiredArenaRating, ArenaBracket, Flags, MinFactionID, MinReputation, " +
+ "RequiredAchievement, ItemID1, ItemID2, ItemID3, ItemID4, ItemID5, ItemCount1, ItemCount2, ItemCount3, ItemCount4, ItemCount5, CurrencyID1, " +
+ "CurrencyID2, CurrencyID3, CurrencyID4, CurrencyID5, CurrencyCount1, CurrencyCount2, CurrencyCount3, CurrencyCount4, CurrencyCount5" +
" FROM item_extended_cost ORDER BY ID DESC");
// ItemLevelSelector.db2
- PrepareStatement(HotfixStatements.SEL_ITEM_LEVEL_SELECTOR, "SELECT ID, MinItemLevel, ItemLevelSelectorQualitySetID FROM item_level_selector ORDER BY ID DESC");
+ PrepareStatement(HotfixStatements.SEL_ITEM_LEVEL_SELECTOR, "SELECT ID, MinItemLevel, ItemLevelSelectorQualitySetID, AzeriteUnlockMappingSet" +
+ " FROM item_level_selector ORDER BY ID DESC");
// ItemLevelSelectorQuality.db2
- PrepareStatement(HotfixStatements.SEL_ITEM_LEVEL_SELECTOR_QUALITY, "SELECT ID, QualityItemBonusListID, Quality, ParentILSQualitySetID" +
+ PrepareStatement(HotfixStatements.SEL_ITEM_LEVEL_SELECTOR_QUALITY, "SELECT ID, QualityItemBonusListID, Quality, ParentILSQualitySetID" +
" FROM item_level_selector_quality ORDER BY ID DESC");
// ItemLevelSelectorQualitySet.db2
@@ -530,35 +537,25 @@ namespace Framework.Database
PrepareStatement(HotfixStatements.SEL_ITEM_LIMIT_CATEGORY_LOCALE, "SELECT ID, Name_lang FROM item_limit_category_locale WHERE locale = ?");
// ItemLimitCategoryCondition.db2
- PrepareStatement(HotfixStatements.SEL_ITEM_LIMIT_CATEGORY_CONDITION, "SELECT ID, AddQuantity, PlayerConditionID, ParentItemLimitCategoryID" +
+ PrepareStatement(HotfixStatements.SEL_ITEM_LIMIT_CATEGORY_CONDITION, "SELECT ID, AddQuantity, PlayerConditionID, ParentItemLimitCategoryID" +
" FROM item_limit_category_condition ORDER BY ID DESC");
// ItemModifiedAppearance.db2
- PrepareStatement(HotfixStatements.SEL_ITEM_MODIFIED_APPEARANCE, "SELECT ID, ItemID, ItemAppearanceModifierID, ItemAppearanceID, OrderIndex, " +
+ PrepareStatement(HotfixStatements.SEL_ITEM_MODIFIED_APPEARANCE, "SELECT ID, ItemID, ItemAppearanceModifierID, ItemAppearanceID, OrderIndex, " +
"TransmogSourceTypeEnum FROM item_modified_appearance ORDER BY ID DESC");
// ItemPriceBase.db2
PrepareStatement(HotfixStatements.SEL_ITEM_PRICE_BASE, "SELECT ID, ItemLevel, Armor, Weapon FROM item_price_base ORDER BY ID DESC");
- // ItemRandomProperties.db2
- PrepareStatement(HotfixStatements.SEL_ITEM_RANDOM_PROPERTIES, "SELECT ID, Name, Enchantment1, Enchantment2, Enchantment3, Enchantment4, Enchantment5" +
- " FROM item_random_properties ORDER BY ID DESC");
- PrepareStatement(HotfixStatements.SEL_ITEM_RANDOM_PROPERTIES_LOCALE, "SELECT ID, Name_lang FROM item_random_properties_locale WHERE locale = ?");
-
- // ItemRandomSuffix.db2
- PrepareStatement(HotfixStatements.SEL_ITEM_RANDOM_SUFFIX, "SELECT ID, Name, Enchantment1, Enchantment2, Enchantment3, Enchantment4, Enchantment5, " +
- "AllocationPct1, AllocationPct2, AllocationPct3, AllocationPct4, AllocationPct5 FROM item_random_suffix ORDER BY ID DESC");
- PrepareStatement(HotfixStatements.SEL_ITEM_RANDOM_SUFFIX_LOCALE, "SELECT ID, Name_lang FROM item_random_suffix_locale WHERE locale = ?");
-
// ItemSearchName.db2
- PrepareStatement(HotfixStatements.SEL_ITEM_SEARCH_NAME, "SELECT AllowableRace, Display, ID, OverallQualityID, ExpansionID, MinFactionID, MinReputation, " +
- "AllowableClass, RequiredLevel, RequiredSkill, RequiredSkillRank, RequiredAbility, ItemLevel, Flags1, Flags2, Flags3, Flags4" +
+ PrepareStatement(HotfixStatements.SEL_ITEM_SEARCH_NAME, "SELECT AllowableRace, Display, ID, OverallQualityID, ExpansionID, MinFactionID, MinReputation, " +
+ "AllowableClass, RequiredLevel, RequiredSkill, RequiredSkillRank, RequiredAbility, ItemLevel, Flags1, Flags2, Flags3, Flags4" +
" FROM item_search_name ORDER BY ID DESC");
PrepareStatement(HotfixStatements.SEL_ITEM_SEARCH_NAME_LOCALE, "SELECT ID, Display_lang FROM item_search_name_locale WHERE locale = ?");
// ItemSet.db2
- PrepareStatement(HotfixStatements.SEL_ITEM_SET, "SELECT ID, Name, SetFlags, RequiredSkill, RequiredSkillRank, ItemID1, ItemID2, ItemID3, ItemID4, ItemID5, " +
- "ItemID6, ItemID7, ItemID8, ItemID9, ItemID10, ItemID11, ItemID12, ItemID13, ItemID14, ItemID15, ItemID16, ItemID17 FROM item_set" +
+ PrepareStatement(HotfixStatements.SEL_ITEM_SET, "SELECT ID, Name, SetFlags, RequiredSkill, RequiredSkillRank, ItemID1, ItemID2, ItemID3, ItemID4, ItemID5, " +
+ "ItemID6, ItemID7, ItemID8, ItemID9, ItemID10, ItemID11, ItemID12, ItemID13, ItemID14, ItemID15, ItemID16, ItemID17 FROM item_set" +
" ORDER BY ID DESC");
PrepareStatement(HotfixStatements.SEL_ITEM_SET_LOCALE, "SELECT ID, Name_lang FROM item_set_locale WHERE locale = ?");
@@ -566,64 +563,64 @@ namespace Framework.Database
PrepareStatement(HotfixStatements.SEL_ITEM_SET_SPELL, "SELECT ID, ChrSpecID, SpellID, Threshold, ItemSetID FROM item_set_spell ORDER BY ID DESC");
// ItemSparse.db2
- PrepareStatement(HotfixStatements.SEL_ITEM_SPARSE, "SELECT ID, AllowableRace, Description, Display3, Display2, Display1, Display, DmgVariance, " +
- "DurationInInventory, QualityModifier, BagFamily, ItemRange, StatPercentageOfSocket1, StatPercentageOfSocket2, StatPercentageOfSocket3, " +
- "StatPercentageOfSocket4, StatPercentageOfSocket5, StatPercentageOfSocket6, StatPercentageOfSocket7, StatPercentageOfSocket8, " +
- "StatPercentageOfSocket9, StatPercentageOfSocket10, StatPercentEditor1, StatPercentEditor2, StatPercentEditor3, StatPercentEditor4, " +
- "StatPercentEditor5, StatPercentEditor6, StatPercentEditor7, StatPercentEditor8, StatPercentEditor9, StatPercentEditor10, Stackable, " +
- "MaxCount, RequiredAbility, SellPrice, BuyPrice, VendorStackCount, PriceVariance, PriceRandomValue, Flags1, Flags2, Flags3, Flags4, " +
- "FactionRelated, ItemNameDescriptionID, RequiredTransmogHoliday, RequiredHoliday, LimitCategory, GemProperties, SocketMatchEnchantmentId, " +
- "TotemCategoryID, InstanceBound, ZoneBound, ItemSet, ItemRandomSuffixGroupID, RandomSelect, LockID, StartQuestID, PageID, ItemDelay, " +
- "ScalingStatDistributionID, MinFactionID, RequiredSkillRank, RequiredSkill, ItemLevel, AllowableClass, ExpansionID, ArtifactID, SpellWeight, " +
- "SpellWeightCategory, SocketType1, SocketType2, SocketType3, SheatheType, Material, PageMaterialID, LanguageID, Bonding, DamageDamageType, " +
- "StatModifierBonusStat1, StatModifierBonusStat2, StatModifierBonusStat3, StatModifierBonusStat4, StatModifierBonusStat5, " +
- "StatModifierBonusStat6, StatModifierBonusStat7, StatModifierBonusStat8, StatModifierBonusStat9, StatModifierBonusStat10, ContainerSlots, " +
- "MinReputation, RequiredPVPMedal, RequiredPVPRank, RequiredLevel, InventoryType, OverallQualityID FROM item_sparse ORDER BY ID DESC");
- PrepareStatement(HotfixStatements.SEL_ITEM_SPARSE_LOCALE, "SELECT ID, Description_lang, Display3_lang, Display2_lang, Display1_lang, Display_lang" +
+ PrepareStatement(HotfixStatements.SEL_ITEM_SPARSE, "SELECT ID, AllowableRace, Description, Display3, Display2, Display1, Display, DmgVariance, " +
+ "DurationInInventory, QualityModifier, BagFamily, ItemRange, StatPercentageOfSocket1, StatPercentageOfSocket2, StatPercentageOfSocket3, " +
+ "StatPercentageOfSocket4, StatPercentageOfSocket5, StatPercentageOfSocket6, StatPercentageOfSocket7, StatPercentageOfSocket8, " +
+ "StatPercentageOfSocket9, StatPercentageOfSocket10, StatPercentEditor1, StatPercentEditor2, StatPercentEditor3, StatPercentEditor4, " +
+ "StatPercentEditor5, StatPercentEditor6, StatPercentEditor7, StatPercentEditor8, StatPercentEditor9, StatPercentEditor10, Stackable, " +
+ "MaxCount, RequiredAbility, SellPrice, BuyPrice, VendorStackCount, PriceVariance, PriceRandomValue, Flags1, Flags2, Flags3, Flags4, " +
+ "FactionRelated, ItemNameDescriptionID, RequiredTransmogHoliday, RequiredHoliday, LimitCategory, GemProperties, SocketMatchEnchantmentId, " +
+ "TotemCategoryID, InstanceBound, ZoneBound, ItemSet, LockID, StartQuestID, PageID, ItemDelay, ScalingStatDistributionID, MinFactionID, " +
+ "RequiredSkillRank, RequiredSkill, ItemLevel, AllowableClass, ExpansionID, ArtifactID, SpellWeight, SpellWeightCategory, SocketType1, " +
+ "SocketType2, SocketType3, SheatheType, Material, PageMaterialID, LanguageID, Bonding, DamageDamageType, StatModifierBonusStat1, " +
+ "StatModifierBonusStat2, StatModifierBonusStat3, StatModifierBonusStat4, StatModifierBonusStat5, StatModifierBonusStat6, " +
+ "StatModifierBonusStat7, StatModifierBonusStat8, StatModifierBonusStat9, StatModifierBonusStat10, ContainerSlots, MinReputation, " +
+ "RequiredPVPMedal, RequiredPVPRank, RequiredLevel, InventoryType, OverallQualityID FROM item_sparse ORDER BY ID DESC");
+ PrepareStatement(HotfixStatements.SEL_ITEM_SPARSE_LOCALE, "SELECT ID, Description_lang, Display3_lang, Display2_lang, Display1_lang, Display_lang" +
" FROM item_sparse_locale WHERE locale = ?");
// ItemSpec.db2
- PrepareStatement(HotfixStatements.SEL_ITEM_SPEC, "SELECT ID, MinLevel, MaxLevel, ItemType, PrimaryStat, SecondaryStat, SpecializationID FROM item_spec" +
+ PrepareStatement(HotfixStatements.SEL_ITEM_SPEC, "SELECT ID, MinLevel, MaxLevel, ItemType, PrimaryStat, SecondaryStat, SpecializationID FROM item_spec" +
" ORDER BY ID DESC");
// ItemSpecOverride.db2
PrepareStatement(HotfixStatements.SEL_ITEM_SPEC_OVERRIDE, "SELECT ID, SpecID, ItemID FROM item_spec_override ORDER BY ID DESC");
// ItemUpgrade.db2
- PrepareStatement(HotfixStatements.SEL_ITEM_UPGRADE, "SELECT ID, ItemUpgradePathID, ItemLevelIncrement, PrerequisiteID, CurrencyType, CurrencyAmount" +
+ PrepareStatement(HotfixStatements.SEL_ITEM_UPGRADE, "SELECT ID, ItemUpgradePathID, ItemLevelIncrement, PrerequisiteID, CurrencyType, CurrencyAmount" +
" FROM item_upgrade ORDER BY ID DESC");
// ItemXBonusTree.db2
PrepareStatement(HotfixStatements.SEL_ITEM_X_BONUS_TREE, "SELECT ID, ItemBonusTreeID, ItemID FROM item_x_bonus_tree ORDER BY ID DESC");
// Keychain.db2
- PrepareStatement(HotfixStatements.SEL_KEYCHAIN, "SELECT ID, Key1, Key2, Key3, Key4, Key5, Key6, Key7, Key8, Key9, Key10, Key11, Key12, Key13, Key14, Key15, " +
- "Key16, Key17, Key18, Key19, Key20, Key21, Key22, Key23, Key24, Key25, Key26, Key27, Key28, Key29, Key30, Key31, Key32 FROM keychain" +
+ PrepareStatement(HotfixStatements.SEL_KEYCHAIN, "SELECT ID, Key1, Key2, Key3, Key4, Key5, Key6, Key7, Key8, Key9, Key10, Key11, Key12, Key13, Key14, Key15, " +
+ "Key16, Key17, Key18, Key19, Key20, Key21, Key22, Key23, Key24, Key25, Key26, Key27, Key28, Key29, Key30, Key31, Key32 FROM keychain" +
" ORDER BY ID DESC");
// LfgDungeons.db2
- PrepareStatement(HotfixStatements.SEL_LFG_DUNGEONS, "SELECT ID, Name, Description, MinLevel, MaxLevel, TypeID, Subtype, Faction, IconTextureFileID, " +
- "RewardsBgTextureFileID, PopupBgTextureFileID, ExpansionLevel, MapID, DifficultyID, MinGear, GroupID, OrderIndex, RequiredPlayerConditionId, " +
- "TargetLevel, TargetLevelMin, TargetLevelMax, RandomID, ScenarioID, FinalEncounterID, CountTank, CountHealer, CountDamage, MinCountTank, " +
+ PrepareStatement(HotfixStatements.SEL_LFG_DUNGEONS, "SELECT ID, Name, Description, MinLevel, MaxLevel, TypeID, Subtype, Faction, IconTextureFileID, " +
+ "RewardsBgTextureFileID, PopupBgTextureFileID, ExpansionLevel, MapID, DifficultyID, MinGear, GroupID, OrderIndex, RequiredPlayerConditionId, " +
+ "TargetLevel, TargetLevelMin, TargetLevelMax, RandomID, ScenarioID, FinalEncounterID, CountTank, CountHealer, CountDamage, MinCountTank, " +
"MinCountHealer, MinCountDamage, BonusReputationAmount, MentorItemLevel, MentorCharLevel, Flags1, Flags2 FROM lfg_dungeons ORDER BY ID DESC");
PrepareStatement(HotfixStatements.SEL_LFG_DUNGEONS_LOCALE, "SELECT ID, Name_lang, Description_lang FROM lfg_dungeons_locale WHERE locale = ?");
// Light.db2
- PrepareStatement(HotfixStatements.SEL_LIGHT, "SELECT ID, GameCoordsX, GameCoordsY, GameCoordsZ, GameFalloffStart, GameFalloffEnd, ContinentID, " +
- "LightParamsID1, LightParamsID2, LightParamsID3, LightParamsID4, LightParamsID5, LightParamsID6, LightParamsID7, LightParamsID8 FROM light" +
+ PrepareStatement(HotfixStatements.SEL_LIGHT, "SELECT ID, GameCoordsX, GameCoordsY, GameCoordsZ, GameFalloffStart, GameFalloffEnd, ContinentID, " +
+ "LightParamsID1, LightParamsID2, LightParamsID3, LightParamsID4, LightParamsID5, LightParamsID6, LightParamsID7, LightParamsID8 FROM light" +
" ORDER BY ID DESC");
// LiquidType.db2
- PrepareStatement(HotfixStatements.SEL_LIQUID_TYPE, "SELECT ID, Name, Texture1, Texture2, Texture3, Texture4, Texture5, Texture6, Flags, SoundBank, SoundID, " +
- "SpellID, MaxDarkenDepth, FogDarkenIntensity, AmbDarkenIntensity, DirDarkenIntensity, LightID, ParticleScale, ParticleMovement, " +
- "ParticleTexSlots, MaterialID, MinimapStaticCol, FrameCountTexture1, FrameCountTexture2, FrameCountTexture3, FrameCountTexture4, " +
- "FrameCountTexture5, FrameCountTexture6, Color1, Color2, Float1, Float2, Float3, `Float4`, Float5, Float6, Float7, `Float8`, Float9, Float10, " +
- "Float11, Float12, Float13, Float14, Float15, Float16, Float17, Float18, `Int1`, `Int2`, `Int3`, `Int4`, Coefficient1, Coefficient2, " +
+ PrepareStatement(HotfixStatements.SEL_LIQUID_TYPE, "SELECT ID, Name, Texture1, Texture2, Texture3, Texture4, Texture5, Texture6, Flags, SoundBank, SoundID, " +
+ "SpellID, MaxDarkenDepth, FogDarkenIntensity, AmbDarkenIntensity, DirDarkenIntensity, LightID, ParticleScale, ParticleMovement, " +
+ "ParticleTexSlots, MaterialID, MinimapStaticCol, FrameCountTexture1, FrameCountTexture2, FrameCountTexture3, FrameCountTexture4, " +
+ "FrameCountTexture5, FrameCountTexture6, Color1, Color2, Float1, Float2, Float3, `Float4`, Float5, Float6, Float7, `Float8`, Float9, Float10, " +
+ "Float11, Float12, Float13, Float14, Float15, Float16, Float17, Float18, `Int1`, `Int2`, `Int3`, `Int4`, Coefficient1, Coefficient2, " +
"Coefficient3, Coefficient4 FROM liquid_type ORDER BY ID DESC");
// Lock.db2
- PrepareStatement(HotfixStatements.SEL_LOCK, "SELECT ID, Index1, Index2, Index3, Index4, Index5, Index6, Index7, Index8, Skill1, Skill2, Skill3, Skill4, " +
- "Skill5, Skill6, Skill7, Skill8, Type1, Type2, Type3, Type4, Type5, Type6, Type7, Type8, Action1, Action2, Action3, Action4, Action5, " +
+ PrepareStatement(HotfixStatements.SEL_LOCK, "SELECT ID, Index1, Index2, Index3, Index4, Index5, Index6, Index7, Index8, Skill1, Skill2, Skill3, Skill4, " +
+ "Skill5, Skill6, Skill7, Skill8, Type1, Type2, Type3, Type4, Type5, Type6, Type7, Type8, Action1, Action2, Action3, Action4, Action5, " +
"Action6, Action7, Action8 FROM `lock` ORDER BY ID DESC");
// MailTemplate.db2
@@ -631,32 +628,32 @@ namespace Framework.Database
PrepareStatement(HotfixStatements.SEL_MAIL_TEMPLATE_LOCALE, "SELECT ID, Body_lang FROM mail_template_locale WHERE locale = ?");
// Map.db2
- PrepareStatement(HotfixStatements.SEL_MAP, "SELECT ID, Directory, MapName, MapDescription0, MapDescription1, PvpShortDescription, PvpLongDescription, " +
- "CorpseX, CorpseY, MapType, InstanceType, ExpansionID, AreaTableID, LoadingScreenID, TimeOfDayOverride, ParentMapID, CosmeticParentMapID, " +
- "TimeOffset, MinimapIconScale, CorpseMapID, MaxPlayers, WindSettingsID, ZmpFileDataID, Flags1, Flags2 FROM map ORDER BY ID DESC");
- PrepareStatement(HotfixStatements.SEL_MAP_LOCALE, "SELECT ID, MapName_lang, MapDescription0_lang, MapDescription1_lang, PvpShortDescription_lang, " +
+ PrepareStatement(HotfixStatements.SEL_MAP, "SELECT ID, Directory, MapName, MapDescription0, MapDescription1, PvpShortDescription, PvpLongDescription, " +
+ "CorpseX, CorpseY, MapType, InstanceType, ExpansionID, AreaTableID, LoadingScreenID, TimeOfDayOverride, ParentMapID, CosmeticParentMapID, " +
+ "TimeOffset, MinimapIconScale, CorpseMapID, MaxPlayers, WindSettingsID, ZmpFileDataID, WdtFileDataID, Flags1, Flags2 FROM map ORDER BY ID DESC");
+ PrepareStatement(HotfixStatements.SEL_MAP_LOCALE, "SELECT ID, MapName_lang, MapDescription0_lang, MapDescription1_lang, PvpShortDescription_lang, " +
"PvpLongDescription_lang FROM map_locale WHERE locale = ?");
// MapDifficulty.db2
- PrepareStatement(HotfixStatements.SEL_MAP_DIFFICULTY, "SELECT ID, Message, ItemContextPickerID, ContentTuningID, DifficultyID, LockID, ResetInterval, " +
- "MaxPlayers, ItemContext, Flags, MapID FROM map_difficulty ORDER BY ID DESC");
+ PrepareStatement(HotfixStatements.SEL_MAP_DIFFICULTY, "SELECT ID, Message, DifficultyID, LockID, ResetInterval, MaxPlayers, ItemContext, " +
+ "ItemContextPickerID, Flags, ContentTuningID, MapID FROM map_difficulty ORDER BY ID DESC");
PrepareStatement(HotfixStatements.SEL_MAP_DIFFICULTY_LOCALE, "SELECT ID, Message_lang FROM map_difficulty_locale WHERE locale = ?");
// ModifierTree.db2
- PrepareStatement(HotfixStatements.SEL_MODIFIER_TREE, "SELECT ID, Parent, Operator, Amount, Type, Asset, SecondaryAsset, TertiaryAsset FROM modifier_tree" +
+ PrepareStatement(HotfixStatements.SEL_MODIFIER_TREE, "SELECT ID, Parent, Operator, Amount, Type, Asset, SecondaryAsset, TertiaryAsset FROM modifier_tree" +
" ORDER BY ID DESC");
// Mount.db2
- PrepareStatement(HotfixStatements.SEL_MOUNT, "SELECT Name, SourceText, Description, ID, MountTypeID, Flags, SourceTypeEnum, SourceSpellID, " +
+ PrepareStatement(HotfixStatements.SEL_MOUNT, "SELECT Name, SourceText, Description, ID, MountTypeID, Flags, SourceTypeEnum, SourceSpellID, " +
"PlayerConditionID, MountFlyRideHeight, UiModelSceneID FROM mount ORDER BY ID DESC");
PrepareStatement(HotfixStatements.SEL_MOUNT_LOCALE, "SELECT ID, Name_lang, SourceText_lang, Description_lang FROM mount_locale WHERE locale = ?");
// MountCapability.db2
- PrepareStatement(HotfixStatements.SEL_MOUNT_CAPABILITY, "SELECT ID, Flags, ReqRidingSkill, ReqAreaID, ReqSpellAuraID, ReqSpellKnownID, ModSpellAuraID, " +
- "ReqMapID FROM mount_capability ORDER BY ID DESC");
+ PrepareStatement(HotfixStatements.SEL_MOUNT_CAPABILITY, "SELECT ID, Flags, ReqRidingSkill, ReqAreaID, ReqSpellAuraID, ReqSpellKnownID, ModSpellAuraID, " +
+ "ReqMapID, PlayerConditionID FROM mount_capability ORDER BY ID DESC");
// MountTypeXCapability.db2
- PrepareStatement(HotfixStatements.SEL_MOUNT_TYPE_X_CAPABILITY, "SELECT ID, MountTypeID, MountCapabilityID, OrderIndex FROM mount_type_x_capability" +
+ PrepareStatement(HotfixStatements.SEL_MOUNT_TYPE_X_CAPABILITY, "SELECT ID, MountTypeID, MountCapabilityID, OrderIndex FROM mount_type_x_capability" +
" ORDER BY ID DESC");
// MountXDisplay.db2
@@ -678,11 +675,11 @@ namespace Framework.Database
PrepareStatement(HotfixStatements.SEL_NAMES_RESERVED_LOCALE, "SELECT ID, Name, LocaleMask FROM names_reserved_locale ORDER BY ID DESC");
// NumTalentsAtLevel.db2
- PrepareStatement(HotfixStatements.SEL_NUM_TALENTS_AT_LEVEL, "SELECT ID, NumTalents, NumTalentsDeathKnight, NumTalentsDemonHunter FROM num_talents_at_level" +
+ PrepareStatement(HotfixStatements.SEL_NUM_TALENTS_AT_LEVEL, "SELECT ID, NumTalents, NumTalentsDeathKnight, NumTalentsDemonHunter FROM num_talents_at_level" +
" ORDER BY ID DESC");
// OverrideSpellData.db2
- PrepareStatement(HotfixStatements.SEL_OVERRIDE_SPELL_DATA, "SELECT ID, Spells1, Spells2, Spells3, Spells4, Spells5, Spells6, Spells7, Spells8, Spells9, " +
+ PrepareStatement(HotfixStatements.SEL_OVERRIDE_SPELL_DATA, "SELECT ID, Spells1, Spells2, Spells3, Spells4, Spells5, Spells6, Spells7, Spells8, Spells9, " +
"Spells10, PlayerActionBarFileDataID, Flags FROM override_spell_data ORDER BY ID DESC");
// Phase.db2
@@ -692,22 +689,22 @@ namespace Framework.Database
PrepareStatement(HotfixStatements.SEL_PHASE_X_PHASE_GROUP, "SELECT ID, PhaseID, PhaseGroupID FROM phase_x_phase_group ORDER BY ID DESC");
// PlayerCondition.db2
- PrepareStatement(HotfixStatements.SEL_PLAYER_CONDITION, "SELECT RaceMask, FailureDescription, ID, MinLevel, MaxLevel, ClassMask, SkillLogic, LanguageID, " +
- "MinLanguage, MaxLanguage, MaxFactionID, MaxReputation, ReputationLogic, CurrentPvpFaction, PvpMedal, PrevQuestLogic, CurrQuestLogic, " +
- "CurrentCompletedQuestLogic, SpellLogic, ItemLogic, ItemFlags, AuraSpellLogic, WorldStateExpressionID, WeatherID, PartyStatus, " +
- "LifetimeMaxPVPRank, AchievementLogic, Gender, NativeGender, AreaLogic, LfgLogic, CurrencyLogic, QuestKillID, QuestKillLogic, " +
- "MinExpansionLevel, MaxExpansionLevel, MinAvgItemLevel, MaxAvgItemLevel, MinAvgEquippedItemLevel, MaxAvgEquippedItemLevel, PhaseUseFlags, " +
- "PhaseID, PhaseGroupID, Flags, ChrSpecializationIndex, ChrSpecializationRole, ModifierTreeID, PowerType, PowerTypeComp, PowerTypeValue, " +
- "WeaponSubclassMask, MaxGuildLevel, MinGuildLevel, MaxExpansionTier, MinExpansionTier, MinPVPRank, MaxPVPRank, SkillID1, SkillID2, SkillID3, " +
- "SkillID4, MinSkill1, MinSkill2, MinSkill3, MinSkill4, MaxSkill1, MaxSkill2, MaxSkill3, MaxSkill4, MinFactionID1, MinFactionID2, " +
- "MinFactionID3, MinReputation1, MinReputation2, MinReputation3, PrevQuestID1, PrevQuestID2, PrevQuestID3, PrevQuestID4, CurrQuestID1, " +
- "CurrQuestID2, CurrQuestID3, CurrQuestID4, CurrentCompletedQuestID1, CurrentCompletedQuestID2, CurrentCompletedQuestID3, " +
- "CurrentCompletedQuestID4, SpellID1, SpellID2, SpellID3, SpellID4, ItemID1, ItemID2, ItemID3, ItemID4, ItemCount1, ItemCount2, ItemCount3, " +
- "ItemCount4, Explored1, Explored2, Time1, Time2, AuraSpellID1, AuraSpellID2, AuraSpellID3, AuraSpellID4, AuraStacks1, AuraStacks2, " +
- "AuraStacks3, AuraStacks4, Achievement1, Achievement2, Achievement3, Achievement4, AreaID1, AreaID2, AreaID3, AreaID4, LfgStatus1, " +
- "LfgStatus2, LfgStatus3, LfgStatus4, LfgCompare1, LfgCompare2, LfgCompare3, LfgCompare4, LfgValue1, LfgValue2, LfgValue3, LfgValue4, " +
- "CurrencyID1, CurrencyID2, CurrencyID3, CurrencyID4, CurrencyCount1, CurrencyCount2, CurrencyCount3, CurrencyCount4, QuestKillMonster1, " +
- "QuestKillMonster2, QuestKillMonster3, QuestKillMonster4, QuestKillMonster5, QuestKillMonster6, MovementFlags1, MovementFlags2" +
+ PrepareStatement(HotfixStatements.SEL_PLAYER_CONDITION, "SELECT RaceMask, FailureDescription, ID, MinLevel, MaxLevel, ClassMask, SkillLogic, LanguageID, " +
+ "MinLanguage, MaxLanguage, MaxFactionID, MaxReputation, ReputationLogic, CurrentPvpFaction, PvpMedal, PrevQuestLogic, CurrQuestLogic, " +
+ "CurrentCompletedQuestLogic, SpellLogic, ItemLogic, ItemFlags, AuraSpellLogic, WorldStateExpressionID, WeatherID, PartyStatus, " +
+ "LifetimeMaxPVPRank, AchievementLogic, Gender, NativeGender, AreaLogic, LfgLogic, CurrencyLogic, QuestKillID, QuestKillLogic, " +
+ "MinExpansionLevel, MaxExpansionLevel, MinAvgItemLevel, MaxAvgItemLevel, MinAvgEquippedItemLevel, MaxAvgEquippedItemLevel, PhaseUseFlags, " +
+ "PhaseID, PhaseGroupID, Flags, ChrSpecializationIndex, ChrSpecializationRole, ModifierTreeID, PowerType, PowerTypeComp, PowerTypeValue, " +
+ "WeaponSubclassMask, MaxGuildLevel, MinGuildLevel, MaxExpansionTier, MinExpansionTier, MinPVPRank, MaxPVPRank, SkillID1, SkillID2, SkillID3, " +
+ "SkillID4, MinSkill1, MinSkill2, MinSkill3, MinSkill4, MaxSkill1, MaxSkill2, MaxSkill3, MaxSkill4, MinFactionID1, MinFactionID2, " +
+ "MinFactionID3, MinReputation1, MinReputation2, MinReputation3, PrevQuestID1, PrevQuestID2, PrevQuestID3, PrevQuestID4, CurrQuestID1, " +
+ "CurrQuestID2, CurrQuestID3, CurrQuestID4, CurrentCompletedQuestID1, CurrentCompletedQuestID2, CurrentCompletedQuestID3, " +
+ "CurrentCompletedQuestID4, SpellID1, SpellID2, SpellID3, SpellID4, ItemID1, ItemID2, ItemID3, ItemID4, ItemCount1, ItemCount2, ItemCount3, " +
+ "ItemCount4, Explored1, Explored2, Time1, Time2, AuraSpellID1, AuraSpellID2, AuraSpellID3, AuraSpellID4, AuraStacks1, AuraStacks2, " +
+ "AuraStacks3, AuraStacks4, Achievement1, Achievement2, Achievement3, Achievement4, AreaID1, AreaID2, AreaID3, AreaID4, LfgStatus1, " +
+ "LfgStatus2, LfgStatus3, LfgStatus4, LfgCompare1, LfgCompare2, LfgCompare3, LfgCompare4, LfgValue1, LfgValue2, LfgValue3, LfgValue4, " +
+ "CurrencyID1, CurrencyID2, CurrencyID3, CurrencyID4, CurrencyCount1, CurrencyCount2, CurrencyCount3, CurrencyCount4, QuestKillMonster1, " +
+ "QuestKillMonster2, QuestKillMonster3, QuestKillMonster4, QuestKillMonster5, QuestKillMonster6, MovementFlags1, MovementFlags2" +
" FROM player_condition ORDER BY ID DESC");
PrepareStatement(HotfixStatements.SEL_PLAYER_CONDITION_LOCALE, "SELECT ID, FailureDescription_lang FROM player_condition_locale WHERE locale = ?");
@@ -715,11 +712,11 @@ namespace Framework.Database
PrepareStatement(HotfixStatements.SEL_POWER_DISPLAY, "SELECT ID, GlobalStringBaseTag, ActualType, Red, Green, Blue FROM power_display ORDER BY ID DESC");
// PowerType.db2
- PrepareStatement(HotfixStatements.SEL_POWER_TYPE, "SELECT ID, NameGlobalStringTag, CostGlobalStringTag, PowerTypeEnum, MinPower, MaxBasePower, CenterPower, " +
+ PrepareStatement(HotfixStatements.SEL_POWER_TYPE, "SELECT ID, NameGlobalStringTag, CostGlobalStringTag, PowerTypeEnum, MinPower, MaxBasePower, CenterPower, " +
"DefaultPower, DisplayModifier, RegenInterruptTimeMS, RegenPeace, RegenCombat, Flags FROM power_type ORDER BY ID DESC");
// PrestigeLevelInfo.db2
- PrepareStatement(HotfixStatements.SEL_PRESTIGE_LEVEL_INFO, "SELECT ID, Name, PrestigeLevel, BadgeTextureFileDataID, Flags, AwardedAchievementID" +
+ PrepareStatement(HotfixStatements.SEL_PRESTIGE_LEVEL_INFO, "SELECT ID, Name, PrestigeLevel, BadgeTextureFileDataID, Flags, AwardedAchievementID" +
" FROM prestige_level_info ORDER BY ID DESC");
PrepareStatement(HotfixStatements.SEL_PRESTIGE_LEVEL_INFO_LOCALE, "SELECT ID, Name_lang FROM prestige_level_info_locale WHERE locale = ?");
@@ -730,7 +727,7 @@ namespace Framework.Database
PrepareStatement(HotfixStatements.SEL_PVP_ITEM, "SELECT ID, ItemID, ItemLevelDelta FROM pvp_item ORDER BY ID DESC");
// PvpTalent.db2
- PrepareStatement(HotfixStatements.SEL_PVP_TALENT, "SELECT Description, ID, SpecID, SpellID, OverridesSpellID, Flags, ActionBarSpellID, PvpTalentCategoryID, " +
+ PrepareStatement(HotfixStatements.SEL_PVP_TALENT, "SELECT Description, ID, SpecID, SpellID, OverridesSpellID, Flags, ActionBarSpellID, PvpTalentCategoryID, " +
"LevelRequired FROM pvp_talent ORDER BY ID DESC");
PrepareStatement(HotfixStatements.SEL_PVP_TALENT_LOCALE, "SELECT ID, Description_lang FROM pvp_talent_locale WHERE locale = ?");
@@ -738,15 +735,15 @@ namespace Framework.Database
PrepareStatement(HotfixStatements.SEL_PVP_TALENT_CATEGORY, "SELECT ID, TalentSlotMask FROM pvp_talent_category ORDER BY ID DESC");
// PvpTalentSlotUnlock.db2
- PrepareStatement(HotfixStatements.SEL_PVP_TALENT_SLOT_UNLOCK, "SELECT ID, Slot, LevelRequired, DeathKnightLevelRequired, DemonHunterLevelRequired" +
+ PrepareStatement(HotfixStatements.SEL_PVP_TALENT_SLOT_UNLOCK, "SELECT ID, Slot, LevelRequired, DeathKnightLevelRequired, DemonHunterLevelRequired" +
" FROM pvp_talent_slot_unlock ORDER BY ID DESC");
// QuestFactionReward.db2
- PrepareStatement(HotfixStatements.SEL_QUEST_FACTION_REWARD, "SELECT ID, Difficulty1, Difficulty2, Difficulty3, Difficulty4, Difficulty5, Difficulty6, " +
+ PrepareStatement(HotfixStatements.SEL_QUEST_FACTION_REWARD, "SELECT ID, Difficulty1, Difficulty2, Difficulty3, Difficulty4, Difficulty5, Difficulty6, " +
"Difficulty7, Difficulty8, Difficulty9, Difficulty10 FROM quest_faction_reward ORDER BY ID DESC");
// QuestMoneyReward.db2
- PrepareStatement(HotfixStatements.SEL_QUEST_MONEY_REWARD, "SELECT ID, Difficulty1, Difficulty2, Difficulty3, Difficulty4, Difficulty5, Difficulty6, " +
+ PrepareStatement(HotfixStatements.SEL_QUEST_MONEY_REWARD, "SELECT ID, Difficulty1, Difficulty2, Difficulty3, Difficulty4, Difficulty5, Difficulty6, " +
"Difficulty7, Difficulty8, Difficulty9, Difficulty10 FROM quest_money_reward ORDER BY ID DESC");
// QuestPackageItem.db2
@@ -760,19 +757,19 @@ namespace Framework.Database
PrepareStatement(HotfixStatements.SEL_QUEST_V2, "SELECT ID, UniqueBitFlag FROM quest_v2 ORDER BY ID DESC");
// QuestXp.db2
- PrepareStatement(HotfixStatements.SEL_QUEST_XP, "SELECT ID, Difficulty1, Difficulty2, Difficulty3, Difficulty4, Difficulty5, Difficulty6, Difficulty7, " +
+ PrepareStatement(HotfixStatements.SEL_QUEST_XP, "SELECT ID, Difficulty1, Difficulty2, Difficulty3, Difficulty4, Difficulty5, Difficulty6, Difficulty7, " +
"Difficulty8, Difficulty9, Difficulty10 FROM quest_xp ORDER BY ID DESC");
// RandPropPoints.db2
- PrepareStatement(HotfixStatements.SEL_RAND_PROP_POINTS, "SELECT ID, DamageReplaceStat, Epic1, Epic2, Epic3, Epic4, Epic5, Superior1, Superior2, Superior3, " +
- "Superior4, Superior5, Good1, Good2, Good3, Good4, Good5 FROM rand_prop_points ORDER BY ID DESC");
+ PrepareStatement(HotfixStatements.SEL_RAND_PROP_POINTS, "SELECT ID, DamageReplaceStat, DamageSecondary, Epic1, Epic2, Epic3, Epic4, Epic5, Superior1, " +
+ "Superior2, Superior3, Superior4, Superior5, Good1, Good2, Good3, Good4, Good5 FROM rand_prop_points ORDER BY ID DESC");
// RewardPack.db2
- PrepareStatement(HotfixStatements.SEL_REWARD_PACK, "SELECT ID, CharTitleID, Money, ArtifactXPDifficulty, ArtifactXPMultiplier, ArtifactXPCategoryID, " +
+ PrepareStatement(HotfixStatements.SEL_REWARD_PACK, "SELECT ID, CharTitleID, Money, ArtifactXPDifficulty, ArtifactXPMultiplier, ArtifactXPCategoryID, " +
"TreasurePickerID FROM reward_pack ORDER BY ID DESC");
// RewardPackXCurrencyType.db2
- PrepareStatement(HotfixStatements.SEL_REWARD_PACK_X_CURRENCY_TYPE, "SELECT ID, CurrencyTypeID, Quantity, RewardPackID FROM reward_pack_x_currency_type" +
+ PrepareStatement(HotfixStatements.SEL_REWARD_PACK_X_CURRENCY_TYPE, "SELECT ID, CurrencyTypeID, Quantity, RewardPackID FROM reward_pack_x_currency_type" +
" ORDER BY ID DESC");
// RewardPackXItem.db2
@@ -782,7 +779,7 @@ namespace Framework.Database
PrepareStatement(HotfixStatements.SEL_RULESET_ITEM_UPGRADE, "SELECT ID, ItemID, ItemUpgradeID FROM ruleset_item_upgrade ORDER BY ID DESC");
// ScalingStatDistribution.db2
- PrepareStatement(HotfixStatements.SEL_SCALING_STAT_DISTRIBUTION, "SELECT ID, PlayerLevelToItemLevelCurveID, MinLevel, MaxLevel" +
+ PrepareStatement(HotfixStatements.SEL_SCALING_STAT_DISTRIBUTION, "SELECT ID, PlayerLevelToItemLevelCurveID, MinLevel, MaxLevel" +
" FROM scaling_stat_distribution ORDER BY ID DESC");
// Scenario.db2
@@ -790,7 +787,7 @@ namespace Framework.Database
PrepareStatement(HotfixStatements.SEL_SCENARIO_LOCALE, "SELECT ID, Name_lang FROM scenario_locale WHERE locale = ?");
// ScenarioStep.db2
- PrepareStatement(HotfixStatements.SEL_SCENARIO_STEP, "SELECT ID, Description, Title, ScenarioID, Criteriatreeid, RewardQuestID, RelatedStep, Supersedes, " +
+ PrepareStatement(HotfixStatements.SEL_SCENARIO_STEP, "SELECT ID, Description, Title, ScenarioID, Criteriatreeid, RewardQuestID, RelatedStep, Supersedes, " +
"OrderIndex, Flags, VisibilityPlayerConditionID, WidgetSetID FROM scenario_step ORDER BY ID DESC");
PrepareStatement(HotfixStatements.SEL_SCENARIO_STEP_LOCALE, "SELECT ID, Description_lang, Title_lang FROM scenario_step_locale WHERE locale = ?");
@@ -807,76 +804,76 @@ namespace Framework.Database
PrepareStatement(HotfixStatements.SEL_SCENE_SCRIPT_TEXT, "SELECT ID, Name, Script FROM scene_script_text ORDER BY ID DESC");
// SkillLine.db2
- PrepareStatement(HotfixStatements.SEL_SKILL_LINE, "SELECT DisplayName, AlternateVerb, Description, HordeDisplayName, OverrideSourceInfoDisplayName, ID, " +
+ PrepareStatement(HotfixStatements.SEL_SKILL_LINE, "SELECT DisplayName, AlternateVerb, Description, HordeDisplayName, OverrideSourceInfoDisplayName, ID, " +
"CategoryID, SpellIconFileID, CanLink, ParentSkillLineID, ParentTierIndex, Flags, SpellBookSpellID FROM skill_line ORDER BY ID DESC");
- PrepareStatement(HotfixStatements.SEL_SKILL_LINE_LOCALE, "SELECT ID, DisplayName_lang, AlternateVerb_lang, Description_lang, HordeDisplayName_lang" +
+ PrepareStatement(HotfixStatements.SEL_SKILL_LINE_LOCALE, "SELECT ID, DisplayName_lang, AlternateVerb_lang, Description_lang, HordeDisplayName_lang" +
" FROM skill_line_locale WHERE locale = ?");
// SkillLineAbility.db2
- PrepareStatement(HotfixStatements.SEL_SKILL_LINE_ABILITY, "SELECT RaceMask, ID, SkillLine, Spell, MinSkillLineRank, ClassMask, SupercedesSpell, " +
- "AcquireMethod, TrivialSkillLineRankHigh, TrivialSkillLineRankLow, Flags, NumSkillUps, UniqueBit, TradeSkillCategoryID, SkillupSkillLineID" +
+ PrepareStatement(HotfixStatements.SEL_SKILL_LINE_ABILITY, "SELECT RaceMask, ID, SkillLine, Spell, MinSkillLineRank, ClassMask, SupercedesSpell, " +
+ "AcquireMethod, TrivialSkillLineRankHigh, TrivialSkillLineRankLow, Flags, NumSkillUps, UniqueBit, TradeSkillCategoryID, SkillupSkillLineID" +
" FROM skill_line_ability ORDER BY ID DESC");
// SkillRaceClassInfo.db2
- PrepareStatement(HotfixStatements.SEL_SKILL_RACE_CLASS_INFO, "SELECT ID, RaceMask, SkillID, ClassMask, Flags, Availability, MinLevel, SkillTierID" +
+ PrepareStatement(HotfixStatements.SEL_SKILL_RACE_CLASS_INFO, "SELECT ID, RaceMask, SkillID, ClassMask, Flags, Availability, MinLevel, SkillTierID" +
" FROM skill_race_class_info ORDER BY ID DESC");
// SoundKit.db2
- PrepareStatement(HotfixStatements.SEL_SOUND_KIT, "SELECT ID, SoundType, VolumeFloat, Flags, MinDistance, DistanceCutoff, EAXDef, SoundKitAdvancedID, " +
- "VolumeVariationPlus, VolumeVariationMinus, PitchVariationPlus, PitchVariationMinus, DialogType, PitchAdjust, BusOverwriteID, MaxInstances" +
+ PrepareStatement(HotfixStatements.SEL_SOUND_KIT, "SELECT ID, SoundType, VolumeFloat, Flags, MinDistance, DistanceCutoff, EAXDef, SoundKitAdvancedID, " +
+ "VolumeVariationPlus, VolumeVariationMinus, PitchVariationPlus, PitchVariationMinus, DialogType, PitchAdjust, BusOverwriteID, MaxInstances" +
" FROM sound_kit ORDER BY ID DESC");
// SpecializationSpells.db2
- PrepareStatement(HotfixStatements.SEL_SPECIALIZATION_SPELLS, "SELECT Description, ID, SpecID, SpellID, OverridesSpellID, DisplayOrder" +
+ PrepareStatement(HotfixStatements.SEL_SPECIALIZATION_SPELLS, "SELECT Description, ID, SpecID, SpellID, OverridesSpellID, DisplayOrder" +
" FROM specialization_spells ORDER BY ID DESC");
PrepareStatement(HotfixStatements.SEL_SPECIALIZATION_SPELLS_LOCALE, "SELECT ID, Description_lang FROM specialization_spells_locale WHERE locale = ?");
// SpellAuraOptions.db2
- PrepareStatement(HotfixStatements.SEL_SPELL_AURA_OPTIONS, "SELECT ID, DifficultyID, CumulativeAura, ProcCategoryRecovery, ProcChance, ProcCharges, " +
+ PrepareStatement(HotfixStatements.SEL_SPELL_AURA_OPTIONS, "SELECT ID, DifficultyID, CumulativeAura, ProcCategoryRecovery, ProcChance, ProcCharges, " +
"SpellProcsPerMinuteID, ProcTypeMask1, ProcTypeMask2, SpellID FROM spell_aura_options ORDER BY ID DESC");
// SpellAuraRestrictions.db2
- PrepareStatement(HotfixStatements.SEL_SPELL_AURA_RESTRICTIONS, "SELECT ID, DifficultyID, CasterAuraState, TargetAuraState, ExcludeCasterAuraState, " +
- "ExcludeTargetAuraState, CasterAuraSpell, TargetAuraSpell, ExcludeCasterAuraSpell, ExcludeTargetAuraSpell, SpellID" +
+ PrepareStatement(HotfixStatements.SEL_SPELL_AURA_RESTRICTIONS, "SELECT ID, DifficultyID, CasterAuraState, TargetAuraState, ExcludeCasterAuraState, " +
+ "ExcludeTargetAuraState, CasterAuraSpell, TargetAuraSpell, ExcludeCasterAuraSpell, ExcludeTargetAuraSpell, SpellID" +
" FROM spell_aura_restrictions ORDER BY ID DESC");
// SpellCastTimes.db2
PrepareStatement(HotfixStatements.SEL_SPELL_CAST_TIMES, "SELECT ID, Base, PerLevel, Minimum FROM spell_cast_times ORDER BY ID DESC");
// SpellCastingRequirements.db2
- PrepareStatement(HotfixStatements.SEL_SPELL_CASTING_REQUIREMENTS, "SELECT ID, SpellID, FacingCasterFlags, MinFactionID, MinReputation, RequiredAreasID, " +
+ PrepareStatement(HotfixStatements.SEL_SPELL_CASTING_REQUIREMENTS, "SELECT ID, SpellID, FacingCasterFlags, MinFactionID, MinReputation, RequiredAreasID, " +
"RequiredAuraVision, RequiresSpellFocus FROM spell_casting_requirements ORDER BY ID DESC");
// SpellCategories.db2
- PrepareStatement(HotfixStatements.SEL_SPELL_CATEGORIES, "SELECT ID, DifficultyID, Category, DefenseType, DispelType, Mechanic, PreventionType, " +
+ PrepareStatement(HotfixStatements.SEL_SPELL_CATEGORIES, "SELECT ID, DifficultyID, Category, DefenseType, DispelType, Mechanic, PreventionType, " +
"StartRecoveryCategory, ChargeCategory, SpellID FROM spell_categories ORDER BY ID DESC");
// SpellCategory.db2
- PrepareStatement(HotfixStatements.SEL_SPELL_CATEGORY, "SELECT ID, Name, Flags, UsesPerWeek, MaxCharges, ChargeRecoveryTime, TypeMask FROM spell_category" +
+ PrepareStatement(HotfixStatements.SEL_SPELL_CATEGORY, "SELECT ID, Name, Flags, UsesPerWeek, MaxCharges, ChargeRecoveryTime, TypeMask FROM spell_category" +
" ORDER BY ID DESC");
PrepareStatement(HotfixStatements.SEL_SPELL_CATEGORY_LOCALE, "SELECT ID, Name_lang FROM spell_category_locale WHERE locale = ?");
// SpellClassOptions.db2
- PrepareStatement(HotfixStatements.SEL_SPELL_CLASS_OPTIONS, "SELECT ID, SpellID, ModalNextSpell, SpellClassSet, SpellClassMask1, SpellClassMask2, " +
+ PrepareStatement(HotfixStatements.SEL_SPELL_CLASS_OPTIONS, "SELECT ID, SpellID, ModalNextSpell, SpellClassSet, SpellClassMask1, SpellClassMask2, " +
"SpellClassMask3, SpellClassMask4 FROM spell_class_options ORDER BY ID DESC");
// SpellCooldowns.db2
- PrepareStatement(HotfixStatements.SEL_SPELL_COOLDOWNS, "SELECT ID, DifficultyID, CategoryRecoveryTime, RecoveryTime, StartRecoveryTime, SpellID" +
+ PrepareStatement(HotfixStatements.SEL_SPELL_COOLDOWNS, "SELECT ID, DifficultyID, CategoryRecoveryTime, RecoveryTime, StartRecoveryTime, SpellID" +
" FROM spell_cooldowns ORDER BY ID DESC");
// SpellDuration.db2
PrepareStatement(HotfixStatements.SEL_SPELL_DURATION, "SELECT ID, Duration, DurationPerLevel, MaxDuration FROM spell_duration ORDER BY ID DESC");
// SpellEffect.db2
- PrepareStatement(HotfixStatements.SEL_SPELL_EFFECT, "SELECT ID, DifficultyID, EffectIndex, Effect, EffectAmplitude, EffectAttributes, EffectAura, " +
- "EffectAuraPeriod, EffectBonusCoefficient, EffectChainAmplitude, EffectChainTargets, EffectItemType, EffectMechanic, EffectPointsPerResource, " +
- "EffectPosFacing, EffectRealPointsPerLevel, EffectTriggerSpell, BonusCoefficientFromAP, PvpMultiplier, Coefficient, Variance, " +
- "ResourceCoefficient, GroupSizeBasePointsCoefficient, EffectBasePoints, EffectMiscValue1, EffectMiscValue2, EffectRadiusIndex1, " +
- "EffectRadiusIndex2, EffectSpellClassMask1, EffectSpellClassMask2, EffectSpellClassMask3, EffectSpellClassMask4, ImplicitTarget1, " +
+ PrepareStatement(HotfixStatements.SEL_SPELL_EFFECT, "SELECT ID, DifficultyID, EffectIndex, Effect, EffectAmplitude, EffectAttributes, EffectAura, " +
+ "EffectAuraPeriod, EffectBonusCoefficient, EffectChainAmplitude, EffectChainTargets, EffectItemType, EffectMechanic, EffectPointsPerResource, " +
+ "EffectPosFacing, EffectRealPointsPerLevel, EffectTriggerSpell, BonusCoefficientFromAP, PvpMultiplier, Coefficient, Variance, " +
+ "ResourceCoefficient, GroupSizeBasePointsCoefficient, EffectBasePoints, EffectMiscValue1, EffectMiscValue2, EffectRadiusIndex1, " +
+ "EffectRadiusIndex2, EffectSpellClassMask1, EffectSpellClassMask2, EffectSpellClassMask3, EffectSpellClassMask4, ImplicitTarget1, " +
"ImplicitTarget2, SpellID FROM spell_effect ORDER BY ID DESC");
// SpellEquippedItems.db2
- PrepareStatement(HotfixStatements.SEL_SPELL_EQUIPPED_ITEMS, "SELECT ID, SpellID, EquippedItemClass, EquippedItemInvTypes, EquippedItemSubclass" +
+ PrepareStatement(HotfixStatements.SEL_SPELL_EQUIPPED_ITEMS, "SELECT ID, SpellID, EquippedItemClass, EquippedItemInvTypes, EquippedItemSubclass" +
" FROM spell_equipped_items ORDER BY ID DESC");
// SpellFocusObject.db2
@@ -884,41 +881,41 @@ namespace Framework.Database
PrepareStatement(HotfixStatements.SEL_SPELL_FOCUS_OBJECT_LOCALE, "SELECT ID, Name_lang FROM spell_focus_object_locale WHERE locale = ?");
// SpellInterrupts.db2
- PrepareStatement(HotfixStatements.SEL_SPELL_INTERRUPTS, "SELECT ID, DifficultyID, InterruptFlags, AuraInterruptFlags1, AuraInterruptFlags2, " +
+ PrepareStatement(HotfixStatements.SEL_SPELL_INTERRUPTS, "SELECT ID, DifficultyID, InterruptFlags, AuraInterruptFlags1, AuraInterruptFlags2, " +
"ChannelInterruptFlags1, ChannelInterruptFlags2, SpellID FROM spell_interrupts ORDER BY ID DESC");
// SpellItemEnchantment.db2
- PrepareStatement(HotfixStatements.SEL_SPELL_ITEM_ENCHANTMENT, "SELECT ID, Name, HordeName, EffectArg1, EffectArg2, EffectArg3, EffectScalingPoints1, " +
- "EffectScalingPoints2, EffectScalingPoints3, TransmogCost, IconFileDataID, TransmogPlayerConditionID, EffectPointsMin1, EffectPointsMin2, " +
- "EffectPointsMin3, ItemVisual, Flags, RequiredSkillID, RequiredSkillRank, ItemLevel, Charges, Effect1, Effect2, Effect3, ScalingClass, " +
+ PrepareStatement(HotfixStatements.SEL_SPELL_ITEM_ENCHANTMENT, "SELECT ID, Name, HordeName, EffectArg1, EffectArg2, EffectArg3, EffectScalingPoints1, " +
+ "EffectScalingPoints2, EffectScalingPoints3, TransmogPlayerConditionID, TransmogCost, IconFileDataID, EffectPointsMin1, EffectPointsMin2, " +
+ "EffectPointsMin3, ItemVisual, Flags, RequiredSkillID, RequiredSkillRank, ItemLevel, Charges, Effect1, Effect2, Effect3, ScalingClass, " +
"ScalingClassRestricted, ConditionID, MinLevel, MaxLevel FROM spell_item_enchantment ORDER BY ID DESC");
PrepareStatement(HotfixStatements.SEL_SPELL_ITEM_ENCHANTMENT_LOCALE, "SELECT ID, Name_lang, HordeName_lang FROM spell_item_enchantment_locale WHERE locale = ?");
// SpellItemEnchantmentCondition.db2
- PrepareStatement(HotfixStatements.SEL_SPELL_ITEM_ENCHANTMENT_CONDITION, "SELECT ID, LtOperandType1, LtOperandType2, LtOperandType3, LtOperandType4, " +
- "LtOperandType5, LtOperand1, LtOperand2, LtOperand3, LtOperand4, LtOperand5, Operator1, Operator2, Operator3, Operator4, Operator5, " +
- "RtOperandType1, RtOperandType2, RtOperandType3, RtOperandType4, RtOperandType5, RtOperand1, RtOperand2, RtOperand3, RtOperand4, RtOperand5, " +
+ PrepareStatement(HotfixStatements.SEL_SPELL_ITEM_ENCHANTMENT_CONDITION, "SELECT ID, LtOperandType1, LtOperandType2, LtOperandType3, LtOperandType4, " +
+ "LtOperandType5, LtOperand1, LtOperand2, LtOperand3, LtOperand4, LtOperand5, Operator1, Operator2, Operator3, Operator4, Operator5, " +
+ "RtOperandType1, RtOperandType2, RtOperandType3, RtOperandType4, RtOperandType5, RtOperand1, RtOperand2, RtOperand3, RtOperand4, RtOperand5, " +
"Logic1, Logic2, Logic3, Logic4, Logic5 FROM spell_item_enchantment_condition ORDER BY ID DESC");
// SpellLearnSpell.db2
PrepareStatement(HotfixStatements.SEL_SPELL_LEARN_SPELL, "SELECT ID, SpellID, LearnSpellID, OverridesSpellID FROM spell_learn_spell ORDER BY ID DESC");
// SpellLevels.db2
- PrepareStatement(HotfixStatements.SEL_SPELL_LEVELS, "SELECT ID, DifficultyID, BaseLevel, MaxLevel, SpellLevel, MaxPassiveAuraLevel, SpellID" +
+ PrepareStatement(HotfixStatements.SEL_SPELL_LEVELS, "SELECT ID, DifficultyID, BaseLevel, MaxLevel, SpellLevel, MaxPassiveAuraLevel, SpellID" +
" FROM spell_levels ORDER BY ID DESC");
// SpellMisc.db2
- PrepareStatement(HotfixStatements.SEL_SPELL_MISC, "SELECT ID, DifficultyID, CastingTimeIndex, DurationIndex, RangeIndex, SchoolMask, Speed, LaunchDelay, " +
- "MinDuration, SpellIconFileDataID, ActiveIconFileDataID, Attributes1, Attributes2, Attributes3, Attributes4, Attributes5, Attributes6, " +
- "Attributes7, Attributes8, Attributes9, Attributes10, Attributes11, Attributes12, Attributes13, Attributes14, SpellID FROM spell_misc" +
- " ORDER BY ID DESC");
+ PrepareStatement(HotfixStatements.SEL_SPELL_MISC, "SELECT ID, DifficultyID, CastingTimeIndex, DurationIndex, RangeIndex, SchoolMask, Speed, LaunchDelay, " +
+ "MinDuration, SpellIconFileDataID, ActiveIconFileDataID, ContentTuningID, Attributes1, Attributes2, Attributes3, Attributes4, Attributes5, " +
+ "Attributes6, Attributes7, Attributes8, Attributes9, Attributes10, Attributes11, Attributes12, Attributes13, Attributes14, SpellID" +
+ " FROM spell_misc ORDER BY ID DESC");
// SpellName.db2
PrepareStatement(HotfixStatements.SEL_SPELL_NAME, "SELECT ID, Name FROM spell_name ORDER BY ID DESC");
PrepareStatement(HotfixStatements.SEL_SPELL_NAME_LOCALE, "SELECT ID, Name_lang FROM spell_name_locale WHERE locale = ?");
// SpellPower.db2
- PrepareStatement(HotfixStatements.SEL_SPELL_POWER, "SELECT ID, OrderIndex, ManaCost, ManaCostPerLevel, ManaPerSecond, PowerDisplayID, AltPowerBarID, " +
+ PrepareStatement(HotfixStatements.SEL_SPELL_POWER, "SELECT ID, OrderIndex, ManaCost, ManaCostPerLevel, ManaPerSecond, PowerDisplayID, AltPowerBarID, " +
"PowerCostPct, PowerCostMaxPct, PowerPctPerSecond, PowerType, RequiredAuraSpellID, OptionalCost, SpellID FROM spell_power ORDER BY ID DESC");
// SpellPowerDifficulty.db2
@@ -928,72 +925,72 @@ namespace Framework.Database
PrepareStatement(HotfixStatements.SEL_SPELL_PROCS_PER_MINUTE, "SELECT ID, BaseProcRate, Flags FROM spell_procs_per_minute ORDER BY ID DESC");
// SpellProcsPerMinuteMod.db2
- PrepareStatement(HotfixStatements.SEL_SPELL_PROCS_PER_MINUTE_MOD, "SELECT ID, Type, Param, Coeff, SpellProcsPerMinuteID FROM spell_procs_per_minute_mod" +
+ PrepareStatement(HotfixStatements.SEL_SPELL_PROCS_PER_MINUTE_MOD, "SELECT ID, Type, Param, Coeff, SpellProcsPerMinuteID FROM spell_procs_per_minute_mod" +
" ORDER BY ID DESC");
// SpellRadius.db2
PrepareStatement(HotfixStatements.SEL_SPELL_RADIUS, "SELECT ID, Radius, RadiusPerLevel, RadiusMin, RadiusMax FROM spell_radius ORDER BY ID DESC");
// SpellRange.db2
- PrepareStatement(HotfixStatements.SEL_SPELL_RANGE, "SELECT ID, DisplayName, DisplayNameShort, Flags, RangeMin1, RangeMin2, RangeMax1, RangeMax2" +
+ PrepareStatement(HotfixStatements.SEL_SPELL_RANGE, "SELECT ID, DisplayName, DisplayNameShort, Flags, RangeMin1, RangeMin2, RangeMax1, RangeMax2" +
" FROM spell_range ORDER BY ID DESC");
PrepareStatement(HotfixStatements.SEL_SPELL_RANGE_LOCALE, "SELECT ID, DisplayName_lang, DisplayNameShort_lang FROM spell_range_locale WHERE locale = ?");
// SpellReagents.db2
- PrepareStatement(HotfixStatements.SEL_SPELL_REAGENTS, "SELECT ID, SpellID, Reagent1, Reagent2, Reagent3, Reagent4, Reagent5, Reagent6, Reagent7, Reagent8, " +
- "ReagentCount1, ReagentCount2, ReagentCount3, ReagentCount4, ReagentCount5, ReagentCount6, ReagentCount7, ReagentCount8 FROM spell_reagents" +
+ PrepareStatement(HotfixStatements.SEL_SPELL_REAGENTS, "SELECT ID, SpellID, Reagent1, Reagent2, Reagent3, Reagent4, Reagent5, Reagent6, Reagent7, Reagent8, " +
+ "ReagentCount1, ReagentCount2, ReagentCount3, ReagentCount4, ReagentCount5, ReagentCount6, ReagentCount7, ReagentCount8 FROM spell_reagents" +
" ORDER BY ID DESC");
// SpellScaling.db2
- PrepareStatement(HotfixStatements.SEL_SPELL_SCALING, "SELECT ID, SpellID, Class, MinScalingLevel, MaxScalingLevel, ScalesFromItemLevel FROM spell_scaling" +
+ PrepareStatement(HotfixStatements.SEL_SPELL_SCALING, "SELECT ID, SpellID, Class, MinScalingLevel, MaxScalingLevel, ScalesFromItemLevel FROM spell_scaling" +
" ORDER BY ID DESC");
// SpellShapeshift.db2
- PrepareStatement(HotfixStatements.SEL_SPELL_SHAPESHIFT, "SELECT ID, SpellID, StanceBarOrder, ShapeshiftExclude1, ShapeshiftExclude2, ShapeshiftMask1, " +
+ PrepareStatement(HotfixStatements.SEL_SPELL_SHAPESHIFT, "SELECT ID, SpellID, StanceBarOrder, ShapeshiftExclude1, ShapeshiftExclude2, ShapeshiftMask1, " +
"ShapeshiftMask2 FROM spell_shapeshift ORDER BY ID DESC");
// SpellShapeshiftForm.db2
- PrepareStatement(HotfixStatements.SEL_SPELL_SHAPESHIFT_FORM, "SELECT ID, Name, CreatureType, Flags, AttackIconFileID, BonusActionBar, CombatRoundTime, " +
- "DamageVariance, MountTypeID, CreatureDisplayID1, CreatureDisplayID2, CreatureDisplayID3, CreatureDisplayID4, PresetSpellID1, PresetSpellID2, " +
+ PrepareStatement(HotfixStatements.SEL_SPELL_SHAPESHIFT_FORM, "SELECT ID, Name, CreatureType, Flags, AttackIconFileID, BonusActionBar, CombatRoundTime, " +
+ "DamageVariance, MountTypeID, CreatureDisplayID1, CreatureDisplayID2, CreatureDisplayID3, CreatureDisplayID4, PresetSpellID1, PresetSpellID2, " +
"PresetSpellID3, PresetSpellID4, PresetSpellID5, PresetSpellID6, PresetSpellID7, PresetSpellID8 FROM spell_shapeshift_form ORDER BY ID DESC");
PrepareStatement(HotfixStatements.SEL_SPELL_SHAPESHIFT_FORM_LOCALE, "SELECT ID, Name_lang FROM spell_shapeshift_form_locale WHERE locale = ?");
// SpellTargetRestrictions.db2
- PrepareStatement(HotfixStatements.SEL_SPELL_TARGET_RESTRICTIONS, "SELECT ID, DifficultyID, ConeDegrees, MaxTargets, MaxTargetLevel, TargetCreatureType, " +
+ PrepareStatement(HotfixStatements.SEL_SPELL_TARGET_RESTRICTIONS, "SELECT ID, DifficultyID, ConeDegrees, MaxTargets, MaxTargetLevel, TargetCreatureType, " +
"Targets, Width, SpellID FROM spell_target_restrictions ORDER BY ID DESC");
// SpellTotems.db2
- PrepareStatement(HotfixStatements.SEL_SPELL_TOTEMS, "SELECT ID, SpellID, RequiredTotemCategoryID1, RequiredTotemCategoryID2, Totem1, Totem2" +
+ PrepareStatement(HotfixStatements.SEL_SPELL_TOTEMS, "SELECT ID, SpellID, RequiredTotemCategoryID1, RequiredTotemCategoryID2, Totem1, Totem2" +
" FROM spell_totems ORDER BY ID DESC");
// SpellXSpellVisual.db2
- PrepareStatement(HotfixStatements.SEL_SPELL_X_SPELL_VISUAL, "SELECT ID, DifficultyID, SpellVisualID, Probability, Flags, Priority, SpellIconFileID, " +
- "ActiveIconFileID, ViewerUnitConditionID, ViewerPlayerConditionID, CasterUnitConditionID, CasterPlayerConditionID, SpellID" +
+ PrepareStatement(HotfixStatements.SEL_SPELL_X_SPELL_VISUAL, "SELECT ID, DifficultyID, SpellVisualID, Probability, Flags, Priority, SpellIconFileID, " +
+ "ActiveIconFileID, ViewerUnitConditionID, ViewerPlayerConditionID, CasterUnitConditionID, CasterPlayerConditionID, SpellID" +
" FROM spell_x_spell_visual ORDER BY ID DESC");
// SummonProperties.db2
PrepareStatement(HotfixStatements.SEL_SUMMON_PROPERTIES, "SELECT ID, Control, Faction, Title, Slot, Flags FROM summon_properties ORDER BY ID DESC");
// TactKey.db2
- PrepareStatement(HotfixStatements.SEL_TACT_KEY, "SELECT ID, Key1, Key2, Key3, Key4, Key5, Key6, Key7, Key8, Key9, Key10, Key11, Key12, Key13, Key14, Key15, " +
+ PrepareStatement(HotfixStatements.SEL_TACT_KEY, "SELECT ID, Key1, Key2, Key3, Key4, Key5, Key6, Key7, Key8, Key9, Key10, Key11, Key12, Key13, Key14, Key15, " +
"Key16 FROM tact_key ORDER BY ID DESC");
// Talent.db2
- PrepareStatement(HotfixStatements.SEL_TALENT, "SELECT ID, Description, TierID, Flags, ColumnIndex, ClassID, SpecID, SpellID, OverridesSpellID, " +
+ PrepareStatement(HotfixStatements.SEL_TALENT, "SELECT ID, Description, TierID, Flags, ColumnIndex, ClassID, SpecID, SpellID, OverridesSpellID, " +
"CategoryMask1, CategoryMask2 FROM talent ORDER BY ID DESC");
PrepareStatement(HotfixStatements.SEL_TALENT_LOCALE, "SELECT ID, Description_lang FROM talent_locale WHERE locale = ?");
// TaxiNodes.db2
- PrepareStatement(HotfixStatements.SEL_TAXI_NODES, "SELECT Name, PosX, PosY, PosZ, MapOffsetX, MapOffsetY, FlightMapOffsetX, FlightMapOffsetY, ID, " +
- "ContinentID, ConditionID, CharacterBitNumber, Flags, UiTextureKitID, Facing, SpecialIconConditionID, VisibilityConditionID, " +
- "MountCreatureID1, MountCreatureID2 FROM taxi_nodes ORDER BY ID DESC");
+ PrepareStatement(HotfixStatements.SEL_TAXI_NODES, "SELECT Name, PosX, PosY, PosZ, MapOffsetX, MapOffsetY, FlightMapOffsetX, FlightMapOffsetY, ID, " +
+ "ContinentID, ConditionID, CharacterBitNumber, Flags, UiTextureKitID, MinimapAtlasMemberID, Facing, SpecialIconConditionID, " +
+ "VisibilityConditionID, MountCreatureID1, MountCreatureID2 FROM taxi_nodes ORDER BY ID DESC");
PrepareStatement(HotfixStatements.SEL_TAXI_NODES_LOCALE, "SELECT ID, Name_lang FROM taxi_nodes_locale WHERE locale = ?");
// TaxiPath.db2
PrepareStatement(HotfixStatements.SEL_TAXI_PATH, "SELECT ID, FromTaxiNode, ToTaxiNode, Cost FROM taxi_path ORDER BY ID DESC");
// TaxiPathNode.db2
- PrepareStatement(HotfixStatements.SEL_TAXI_PATH_NODE, "SELECT LocX, LocY, LocZ, ID, PathID, NodeIndex, ContinentID, Flags, Delay, ArrivalEventID, " +
+ PrepareStatement(HotfixStatements.SEL_TAXI_PATH_NODE, "SELECT LocX, LocY, LocZ, ID, PathID, NodeIndex, ContinentID, Flags, Delay, ArrivalEventID, " +
"DepartureEventID FROM taxi_path_node ORDER BY ID DESC");
// TotemCategory.db2
@@ -1008,8 +1005,8 @@ namespace Framework.Database
PrepareStatement(HotfixStatements.SEL_TRANSMOG_HOLIDAY, "SELECT ID, RequiredTransmogHoliday FROM transmog_holiday ORDER BY ID DESC");
// TransmogSet.db2
- PrepareStatement(HotfixStatements.SEL_TRANSMOG_SET, "SELECT Name, ID, ClassMask, TrackingQuestID, Flags, TransmogSetGroupID, ItemNameDescriptionID, " +
- "ParentTransmogSetID, ExpansionID, UiOrder FROM transmog_set ORDER BY ID DESC");
+ PrepareStatement(HotfixStatements.SEL_TRANSMOG_SET, "SELECT Name, ID, ClassMask, TrackingQuestID, Flags, TransmogSetGroupID, ItemNameDescriptionID, " +
+ "ParentTransmogSetID, Unknown810, ExpansionID, PatchID, UiOrder FROM transmog_set ORDER BY ID DESC");
PrepareStatement(HotfixStatements.SEL_TRANSMOG_SET_LOCALE, "SELECT ID, Name_lang FROM transmog_set_locale WHERE locale = ?");
// TransmogSetGroup.db2
@@ -1020,64 +1017,64 @@ namespace Framework.Database
PrepareStatement(HotfixStatements.SEL_TRANSMOG_SET_ITEM, "SELECT ID, TransmogSetID, ItemModifiedAppearanceID, Flags FROM transmog_set_item ORDER BY ID DESC");
// TransportAnimation.db2
- PrepareStatement(HotfixStatements.SEL_TRANSPORT_ANIMATION, "SELECT ID, PosX, PosY, PosZ, SequenceID, TimeIndex, TransportID FROM transport_animation" +
+ PrepareStatement(HotfixStatements.SEL_TRANSPORT_ANIMATION, "SELECT ID, PosX, PosY, PosZ, SequenceID, TimeIndex, TransportID FROM transport_animation" +
" ORDER BY ID DESC");
// TransportRotation.db2
- PrepareStatement(HotfixStatements.SEL_TRANSPORT_ROTATION, "SELECT ID, Rot1, Rot2, Rot3, Rot4, TimeIndex, GameObjectsID FROM transport_rotation" +
+ PrepareStatement(HotfixStatements.SEL_TRANSPORT_ROTATION, "SELECT ID, Rot1, Rot2, Rot3, Rot4, TimeIndex, GameObjectsID FROM transport_rotation" +
" ORDER BY ID DESC");
// UiMap.db2
- PrepareStatement(HotfixStatements.SEL_UI_MAP, "SELECT Name, ID, ParentUiMapID, Flags, System, Type, LevelRangeMin, LevelRangeMax, BountySetID, " +
+ PrepareStatement(HotfixStatements.SEL_UI_MAP, "SELECT Name, ID, ParentUiMapID, Flags, System, Type, LevelRangeMin, LevelRangeMax, BountySetID, " +
"BountyDisplayLocation, VisibilityPlayerConditionID, HelpTextPosition, BkgAtlasID FROM ui_map ORDER BY ID DESC");
PrepareStatement(HotfixStatements.SEL_UI_MAP_LOCALE, "SELECT ID, Name_lang FROM ui_map_locale WHERE locale = ?");
// UiMapAssignment.db2
- PrepareStatement(HotfixStatements.SEL_UI_MAP_ASSIGNMENT, "SELECT UiMinX, UiMinY, UiMaxX, UiMaxY, Region1X, Region1Y, Region1Z, Region2X, Region2Y, " +
+ PrepareStatement(HotfixStatements.SEL_UI_MAP_ASSIGNMENT, "SELECT UiMinX, UiMinY, UiMaxX, UiMaxY, Region1X, Region1Y, Region1Z, Region2X, Region2Y, " +
"Region2Z, ID, UiMapID, OrderIndex, MapID, AreaID, WmoDoodadPlacementID, WmoGroupID FROM ui_map_assignment ORDER BY ID DESC");
// UiMapLink.db2
- PrepareStatement(HotfixStatements.SEL_UI_MAP_LINK, "SELECT UiMinX, UiMinY, UiMaxX, UiMaxY, ID, ParentUiMapID, OrderIndex, ChildUiMapID FROM ui_map_link" +
- " ORDER BY ID DESC");
+ PrepareStatement(HotfixStatements.SEL_UI_MAP_LINK, "SELECT UiMinX, UiMinY, UiMaxX, UiMaxY, ID, ParentUiMapID, OrderIndex, ChildUiMapID, " +
+ "OverrideHighlightFileDataID, OverrideHighlightAtlasID FROM ui_map_link ORDER BY ID DESC");
// UiMapXMapArt.db2
PrepareStatement(HotfixStatements.SEL_UI_MAP_X_MAP_ART, "SELECT ID, PhaseID, UiMapArtID, UiMapID FROM ui_map_x_map_art ORDER BY ID DESC");
// UnitPowerBar.db2
- PrepareStatement(HotfixStatements.SEL_UNIT_POWER_BAR, "SELECT ID, Name, Cost, OutOfError, ToolTip, MinPower, MaxPower, StartPower, CenterPower, " +
- "RegenerationPeace, RegenerationCombat, BarType, Flags, StartInset, EndInset, FileDataID1, FileDataID2, FileDataID3, FileDataID4, " +
+ PrepareStatement(HotfixStatements.SEL_UNIT_POWER_BAR, "SELECT ID, Name, Cost, OutOfError, ToolTip, MinPower, MaxPower, StartPower, CenterPower, " +
+ "RegenerationPeace, RegenerationCombat, BarType, Flags, StartInset, EndInset, FileDataID1, FileDataID2, FileDataID3, FileDataID4, " +
"FileDataID5, FileDataID6, Color1, Color2, Color3, Color4, Color5, Color6 FROM unit_power_bar ORDER BY ID DESC");
- PrepareStatement(HotfixStatements.SEL_UNIT_POWER_BAR_LOCALE, "SELECT ID, Name_lang, Cost_lang, OutOfError_lang, ToolTip_lang FROM unit_power_bar_locale" +
+ PrepareStatement(HotfixStatements.SEL_UNIT_POWER_BAR_LOCALE, "SELECT ID, Name_lang, Cost_lang, OutOfError_lang, ToolTip_lang FROM unit_power_bar_locale" +
" WHERE locale = ?");
// Vehicle.db2
- PrepareStatement(HotfixStatements.SEL_VEHICLE, "SELECT ID, Flags, FlagsB, TurnSpeed, PitchSpeed, PitchMin, PitchMax, MouseLookOffsetPitch, " +
- "CameraFadeDistScalarMin, CameraFadeDistScalarMax, CameraPitchOffset, FacingLimitRight, FacingLimitLeft, CameraYawOffset, UiLocomotionType, " +
- "VehicleUIIndicatorID, MissileTargetingID, SeatID1, SeatID2, SeatID3, SeatID4, SeatID5, SeatID6, SeatID7, SeatID8, PowerDisplayID1, " +
+ PrepareStatement(HotfixStatements.SEL_VEHICLE, "SELECT ID, Flags, FlagsB, TurnSpeed, PitchSpeed, PitchMin, PitchMax, MouseLookOffsetPitch, " +
+ "CameraFadeDistScalarMin, CameraFadeDistScalarMax, CameraPitchOffset, FacingLimitRight, FacingLimitLeft, CameraYawOffset, UiLocomotionType, " +
+ "VehicleUIIndicatorID, MissileTargetingID, SeatID1, SeatID2, SeatID3, SeatID4, SeatID5, SeatID6, SeatID7, SeatID8, PowerDisplayID1, " +
"PowerDisplayID2, PowerDisplayID3 FROM vehicle ORDER BY ID DESC");
// VehicleSeat.db2
- PrepareStatement(HotfixStatements.SEL_VEHICLE_SEAT, "SELECT ID, AttachmentOffsetX, AttachmentOffsetY, AttachmentOffsetZ, CameraOffsetX, CameraOffsetY, " +
- "CameraOffsetZ, Flags, FlagsB, FlagsC, AttachmentID, EnterPreDelay, EnterSpeed, EnterGravity, EnterMinDuration, EnterMaxDuration, " +
- "EnterMinArcHeight, EnterMaxArcHeight, EnterAnimStart, EnterAnimLoop, RideAnimStart, RideAnimLoop, RideUpperAnimStart, RideUpperAnimLoop, " +
- "ExitPreDelay, ExitSpeed, ExitGravity, ExitMinDuration, ExitMaxDuration, ExitMinArcHeight, ExitMaxArcHeight, ExitAnimStart, ExitAnimLoop, " +
- "ExitAnimEnd, VehicleEnterAnim, VehicleEnterAnimBone, VehicleExitAnim, VehicleExitAnimBone, VehicleRideAnimLoop, VehicleRideAnimLoopBone, " +
- "PassengerAttachmentID, PassengerYaw, PassengerPitch, PassengerRoll, VehicleEnterAnimDelay, VehicleExitAnimDelay, VehicleAbilityDisplay, " +
- "EnterUISoundID, ExitUISoundID, UiSkinFileDataID, CameraEnteringDelay, CameraEnteringDuration, CameraExitingDelay, CameraExitingDuration, " +
- "CameraPosChaseRate, CameraFacingChaseRate, CameraEnteringZoom, CameraSeatZoomMin, CameraSeatZoomMax, EnterAnimKitID, RideAnimKitID, " +
+ PrepareStatement(HotfixStatements.SEL_VEHICLE_SEAT, "SELECT ID, AttachmentOffsetX, AttachmentOffsetY, AttachmentOffsetZ, CameraOffsetX, CameraOffsetY, " +
+ "CameraOffsetZ, Flags, FlagsB, FlagsC, AttachmentID, EnterPreDelay, EnterSpeed, EnterGravity, EnterMinDuration, EnterMaxDuration, " +
+ "EnterMinArcHeight, EnterMaxArcHeight, EnterAnimStart, EnterAnimLoop, RideAnimStart, RideAnimLoop, RideUpperAnimStart, RideUpperAnimLoop, " +
+ "ExitPreDelay, ExitSpeed, ExitGravity, ExitMinDuration, ExitMaxDuration, ExitMinArcHeight, ExitMaxArcHeight, ExitAnimStart, ExitAnimLoop, " +
+ "ExitAnimEnd, VehicleEnterAnim, VehicleEnterAnimBone, VehicleExitAnim, VehicleExitAnimBone, VehicleRideAnimLoop, VehicleRideAnimLoopBone, " +
+ "PassengerAttachmentID, PassengerYaw, PassengerPitch, PassengerRoll, VehicleEnterAnimDelay, VehicleExitAnimDelay, VehicleAbilityDisplay, " +
+ "EnterUISoundID, ExitUISoundID, UiSkinFileDataID, CameraEnteringDelay, CameraEnteringDuration, CameraExitingDelay, CameraExitingDuration, " +
+ "CameraPosChaseRate, CameraFacingChaseRate, CameraEnteringZoom, CameraSeatZoomMin, CameraSeatZoomMax, EnterAnimKitID, RideAnimKitID, " +
"ExitAnimKitID, VehicleEnterAnimKitID, VehicleRideAnimKitID, VehicleExitAnimKitID, CameraModeID FROM vehicle_seat ORDER BY ID DESC");
// WmoAreaTable.db2
- PrepareStatement(HotfixStatements.SEL_WMO_AREA_TABLE, "SELECT AreaName, ID, WmoID, NameSetID, WmoGroupID, SoundProviderPref, SoundProviderPrefUnderwater, " +
+ PrepareStatement(HotfixStatements.SEL_WMO_AREA_TABLE, "SELECT AreaName, ID, WmoID, NameSetID, WmoGroupID, SoundProviderPref, SoundProviderPrefUnderwater, " +
"AmbienceID, UwAmbience, ZoneMusic, UwZoneMusic, IntroSound, UwIntroSound, AreaTableID, Flags FROM wmo_area_table ORDER BY ID DESC");
PrepareStatement(HotfixStatements.SEL_WMO_AREA_TABLE_LOCALE, "SELECT ID, AreaName_lang FROM wmo_area_table_locale WHERE locale = ?");
// WorldEffect.db2
- PrepareStatement(HotfixStatements.SEL_WORLD_EFFECT, "SELECT ID, QuestFeedbackEffectID, WhenToDisplay, TargetType, TargetAsset, PlayerConditionID, " +
+ PrepareStatement(HotfixStatements.SEL_WORLD_EFFECT, "SELECT ID, QuestFeedbackEffectID, WhenToDisplay, TargetType, TargetAsset, PlayerConditionID, " +
"CombatConditionID FROM world_effect ORDER BY ID DESC");
// WorldMapOverlay.db2
- PrepareStatement(HotfixStatements.SEL_WORLD_MAP_OVERLAY, "SELECT ID, UiMapArtID, TextureWidth, TextureHeight, OffsetX, OffsetY, HitRectTop, HitRectBottom, " +
+ PrepareStatement(HotfixStatements.SEL_WORLD_MAP_OVERLAY, "SELECT ID, UiMapArtID, TextureWidth, TextureHeight, OffsetX, OffsetY, HitRectTop, HitRectBottom, " +
"HitRectLeft, HitRectRight, PlayerConditionID, Flags, AreaID1, AreaID2, AreaID3, AreaID4 FROM world_map_overlay ORDER BY ID DESC");
// WorldSafeLocs.db2
@@ -1189,6 +1186,8 @@ namespace Framework.Database
SEL_CONTENT_TUNING,
+ SEL_CONTENT_TUNING_X_EXPECTED,
+
SEL_CONVERSATION_LINE,
SEL_CREATURE_DISPLAY_INFO,
@@ -1359,12 +1358,6 @@ namespace Framework.Database
SEL_ITEM_PRICE_BASE,
- SEL_ITEM_RANDOM_PROPERTIES,
- SEL_ITEM_RANDOM_PROPERTIES_LOCALE,
-
- SEL_ITEM_RANDOM_SUFFIX,
- SEL_ITEM_RANDOM_SUFFIX_LOCALE,
-
SEL_ITEM_SEARCH_NAME,
SEL_ITEM_SEARCH_NAME_LOCALE,
diff --git a/Source/Framework/Database/Databases/LoginDatabase.cs b/Source/Framework/Database/Databases/LoginDatabase.cs
index 4ff821ec3..b78713979 100644
--- a/Source/Framework/Database/Databases/LoginDatabase.cs
+++ b/Source/Framework/Database/Databases/LoginDatabase.cs
@@ -27,8 +27,7 @@ namespace Framework.Database
PrepareStatement(LoginStatements.SEL_REALMLIST, "SELECT id, name, address, localAddress, localSubnetMask, port, icon, flag, timezone, allowedSecurityLevel, population, gamebuild, Region, Battlegroup FROM realmlist WHERE flag <> 3 ORDER BY name");
PrepareStatement(LoginStatements.DEL_EXPIRED_IP_BANS, "DELETE FROM ip_banned WHERE unbandate<>bandate AND unbandate<=UNIX_TIMESTAMP()");
PrepareStatement(LoginStatements.UPD_EXPIRED_ACCOUNT_BANS, "UPDATE account_banned SET active = 0 WHERE active = 1 AND unbandate<>bandate AND unbandate<=UNIX_TIMESTAMP()");
- PrepareStatement(LoginStatements.SEL_IP_INFO, "(SELECT unbandate > UNIX_TIMESTAMP() OR unbandate = bandate AS banned, NULL as country FROM ip_banned WHERE ip = ?) " +
- "UNION (SELECT NULL AS banned, country FROM ip2nation WHERE INET_NTOA(ip) = ?)");
+ PrepareStatement(LoginStatements.SEL_IP_INFO, "SELECT unbandate > UNIX_TIMESTAMP() OR unbandate = bandate AS banned, NULL as country FROM ip_banned WHERE ip = ?");
PrepareStatement(LoginStatements.INS_IP_AUTO_BANNED, "INSERT INTO ip_banned (ip, bandate, unbandate, bannedby, banreason) VALUES (?, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()+?, 'Cypher Auth', 'Failed login autoban')");
PrepareStatement(LoginStatements.SEL_IP_BANNED_ALL, "SELECT ip, bandate, unbandate, bannedby, banreason FROM ip_banned WHERE (bandate = unbandate OR unbandate > UNIX_TIMESTAMP()) ORDER BY unbandate");
@@ -38,7 +37,6 @@ namespace Framework.Database
PrepareStatement(LoginStatements.DEL_ACCOUNT_BANNED, "DELETE FROM account_banned WHERE id = ?");
PrepareStatement(LoginStatements.UPD_ACCOUNT_INFO_CONTINUED_SESSION, "UPDATE account SET sessionkey = ? WHERE id = ?");
PrepareStatement(LoginStatements.SEL_ACCOUNT_INFO_CONTINUED_SESSION, "SELECT username, sessionkey FROM account WHERE id = ?");
- PrepareStatement(LoginStatements.SEL_LOGON_COUNTRY, "SELECT country FROM ip2nation WHERE ip < ? ORDER BY ip DESC LIMIT 0,1");
PrepareStatement(LoginStatements.SEL_ACCOUNT_ID_BY_NAME, "SELECT id FROM account WHERE username = ?");
PrepareStatement(LoginStatements.SEL_ACCOUNT_LIST_BY_NAME, "SELECT id, username FROM account WHERE username = ?");
PrepareStatement(LoginStatements.SEL_ACCOUNT_INFO_BY_NAME, "SELECT a.id, a.sessionkey, ba.last_ip, ba.locked, ba.lock_country, a.expansion, a.mutetime, ba.locale, a.recruiter, a.os, ba.id, aa.gmLevel, " +
@@ -95,7 +93,6 @@ namespace Framework.Database
PrepareStatement(LoginStatements.SEL_LAST_IP, "SELECT last_ip FROM account WHERE id = ?");
PrepareStatement(LoginStatements.SEL_REALMLIST_SECURITY_LEVEL, "SELECT allowedSecurityLevel from realmlist WHERE id = ?");
PrepareStatement(LoginStatements.DEL_ACCOUNT, "DELETE FROM account WHERE id = ?");
- PrepareStatement(LoginStatements.SEL_IP2NATION_COUNTRY, "SELECT c.country FROM ip2nationCountries c, ip2nation i WHERE i.ip < ? AND c.code = i.country ORDER BY i.ip DESC LIMIT 0,1");
PrepareStatement(LoginStatements.SEL_AUTOBROADCAST, "SELECT id, weight, text FROM autobroadcast WHERE realmid = ? OR realmid = -1");
PrepareStatement(LoginStatements.GET_EMAIL_BY_ID, "SELECT email FROM account WHERE id = ?");
// 0: uint32, 1: uint32, 2: uint8, 3: uint32, 4: string // Complete name: "Login_Insert_AccountLoginDeLete_IP_Logging"
@@ -191,7 +188,6 @@ namespace Framework.Database
UPD_ACCOUNT_INFO_CONTINUED_SESSION,
SEL_ACCOUNT_INFO_CONTINUED_SESSION,
UPD_VS,
- SEL_LOGON_COUNTRY,
SEL_ACCOUNT_ID_BY_NAME,
SEL_ACCOUNT_LIST_BY_NAME,
SEL_ACCOUNT_INFO_BY_NAME,
diff --git a/Source/Framework/Database/MySqlBase.cs b/Source/Framework/Database/MySqlBase.cs
index 5bd77db1e..b5d4b371c 100644
--- a/Source/Framework/Database/MySqlBase.cs
+++ b/Source/Framework/Database/MySqlBase.cs
@@ -220,8 +220,8 @@ namespace Framework.Database
{
try
{
- string query = File.ReadAllText(path);
- if (query.Length > 1048576) //Default size limit of querys
+ string query = File.ReadAllText(path);
+ if (Encoding.UTF8.GetByteCount(query) > 1048576) //Default size limit of querys
Apply("SET GLOBAL max_allowed_packet=1073741824;");
using (var connection = _connectionInfo.GetConnection())
@@ -229,6 +229,7 @@ namespace Framework.Database
connection.Open();
using (MySqlCommand cmd = connection.CreateCommand())
{
+ cmd.CommandTimeout = 120;
cmd.CommandText = query;
cmd.ExecuteNonQuery();
return true;
diff --git a/Source/Framework/Framework.csproj b/Source/Framework/Framework.csproj
index e665da40e..91d9cc2ef 100644
--- a/Source/Framework/Framework.csproj
+++ b/Source/Framework/Framework.csproj
@@ -12,7 +12,8 @@
-
+
+
diff --git a/Source/Framework/IO/ByteBuffer.cs b/Source/Framework/IO/ByteBuffer.cs
index a7b333d14..cc8fbb6c2 100644
--- a/Source/Framework/IO/ByteBuffer.cs
+++ b/Source/Framework/IO/ByteBuffer.cs
@@ -162,30 +162,30 @@ namespace Framework.IO
//BitPacking
public byte ReadBit()
{
- if (BitPosition == 8)
+ if (_bitPosition == 8)
{
BitValue = ReadUInt8();
- BitPosition = 0;
+ _bitPosition = 0;
}
int returnValue = BitValue;
BitValue = (byte)(2 * returnValue);
- ++BitPosition;
+ ++_bitPosition;
return (byte)(returnValue >> 7);
}
public bool HasBit()
{
- if (BitPosition == 8)
+ if (_bitPosition == 8)
{
BitValue = ReadUInt8();
- BitPosition = 0;
+ _bitPosition = 0;
}
int returnValue = BitValue;
BitValue = (byte)(2 * returnValue);
- ++BitPosition;
+ ++_bitPosition;
return Convert.ToBoolean(returnValue >> 7);
}
@@ -203,64 +203,64 @@ namespace Framework.IO
#endregion
#region Write Methods
- public void WriteInt8(T data)
+ public void WriteInt8(sbyte data)
{
FlushBits();
- writeStream.Write(Convert.ToSByte(data));
+ writeStream.Write(data);
}
- public void WriteInt16(T data)
+ public void WriteInt16(short data)
{
FlushBits();
- writeStream.Write(Convert.ToInt16(data));
+ writeStream.Write(data);
}
- public void WriteInt32(T data)
+ public void WriteInt32(int data)
{
FlushBits();
- writeStream.Write(Convert.ToInt32(data));
+ writeStream.Write(data);
}
- public void WriteInt64(T data)
+ public void WriteInt64(long data)
{
FlushBits();
- writeStream.Write(Convert.ToInt64(data));
+ writeStream.Write(data);
}
- public void WriteUInt8(T data)
+ public void WriteUInt8(byte data)
{
FlushBits();
- writeStream.Write(Convert.ToByte(data));
+ writeStream.Write(data);
}
- public void WriteUInt16(T data)
+ public void WriteUInt16(ushort data)
{
FlushBits();
- writeStream.Write(Convert.ToUInt16(data));
+ writeStream.Write(data);
}
- public void WriteUInt32(T data)
+ public void WriteUInt32(uint data)
{
FlushBits();
- writeStream.Write(Convert.ToUInt32(data));
+ writeStream.Write(data);
}
- public void WriteUInt64(T data)
+ public void WriteUInt64(ulong data)
{
FlushBits();
- writeStream.Write(Convert.ToUInt64(data));
+ writeStream.Write(data);
}
- public void WriteFloat(T data)
+ public void WriteFloat(float data)
{
FlushBits();
- writeStream.Write(Convert.ToSingle(data));
+ writeStream.Write(data);
}
- public void WriteDouble(T data)
+ public void WriteDouble(double data)
{
FlushBits();
- writeStream.Write(Convert.ToDouble(data));
+ writeStream.Write(data);
}
///
@@ -329,16 +329,16 @@ namespace Framework.IO
public bool WriteBit(object bit)
{
- --BitPosition;
+ --_bitPosition;
if (Convert.ToBoolean(bit))
- BitValue |= (byte)(1 << BitPosition);
+ BitValue |= (byte)(1 << _bitPosition);
- if (BitPosition == 0)
+ if (_bitPosition == 0)
{
writeStream.Write(BitValue);
- BitPosition = 8;
+ _bitPosition = 8;
BitValue = 0;
}
return Convert.ToBoolean(bit);
@@ -363,22 +363,27 @@ namespace Framework.IO
}
#endregion
+ public bool HasUnfinishedBitPack()
+ {
+ return _bitPosition != 8;
+ }
+
public void FlushBits()
{
- if (BitPosition == 8)
+ if (_bitPosition == 8)
return;
writeStream.Write(BitValue);
BitValue = 0;
- BitPosition = 8;
+ _bitPosition = 8;
}
public void ResetBitPos()
{
- if (BitPosition > 7)
+ if (_bitPosition > 7)
return;
- BitPosition = 8;
+ _bitPosition = 8;
BitValue = 0;
}
@@ -412,12 +417,12 @@ namespace Framework.IO
public void Clear()
{
- BitPosition = 8;
+ _bitPosition = 8;
BitValue = 0;
writeStream = new BinaryWriter(new MemoryStream());
}
- byte BitPosition = 8;
+ byte _bitPosition = 8;
byte BitValue;
BinaryWriter writeStream;
BinaryReader readStream;
diff --git a/Source/Framework/Util/CollectionExtensions.cs b/Source/Framework/Util/CollectionExtensions.cs
index 2d48ca870..efd5b5d3f 100644
--- a/Source/Framework/Util/CollectionExtensions.cs
+++ b/Source/Framework/Util/CollectionExtensions.cs
@@ -103,6 +103,11 @@ namespace System.Collections.Generic
int cur = list.Count;
if (size < cur)
list.RemoveRange((int)size, cur - (int)size);
+ else
+ {
+ for (var i = list.Count; i < size; ++i)
+ list.Add(default(T));
+ }
}
public static void RandomResize(this IList list, uint size)
diff --git a/Source/Game/AI/AISelector.cs b/Source/Game/AI/AISelector.cs
index 0c60ba577..addea7873 100644
--- a/Source/Game/AI/AISelector.cs
+++ b/Source/Game/AI/AISelector.cs
@@ -70,7 +70,7 @@ namespace Game.AI
return new VehicleAI(creature);
else if (creature.HasUnitTypeMask(UnitTypeMask.ControlableGuardian) && ((Guardian)creature).GetOwner().IsTypeId(TypeId.Player))
return new PetAI(creature);
- else if (creature.HasFlag64(UnitFields.NpcFlags, NPCFlags.SpellClick))
+ else if (creature.HasNpcFlag(NPCFlags.SpellClick))
return new NullCreatureAI(creature);
else if (creature.IsGuard())
return new GuardAI(creature);
diff --git a/Source/Game/AI/CoreAI/CreatureAI.cs b/Source/Game/AI/CoreAI/CreatureAI.cs
index 4d8276557..7700df73c 100644
--- a/Source/Game/AI/CoreAI/CreatureAI.cs
+++ b/Source/Game/AI/CoreAI/CreatureAI.cs
@@ -333,9 +333,9 @@ namespace Game.AI
if (point)
{
point.SetObjectScale(SharedConst.BoundaryVisualizeCreatureScale);
- point.SetFlag(UnitFields.Flags, UnitFlags.ImmuneToPc | UnitFlags.Stunned | UnitFlags.ImmuneToNpc);
+ point.AddUnitFlag(UnitFlags.ImmuneToPc | UnitFlags.Stunned | UnitFlags.ImmuneToNpc);
if (!hasOutOfBoundsNeighbor)
- point.SetFlag(UnitFields.Flags, UnitFlags.NotSelectable);
+ point.AddUnitFlag(UnitFlags.NotSelectable);
}
Q.Remove(front);
}
diff --git a/Source/Game/AI/CoreAI/PassiveAI.cs b/Source/Game/AI/CoreAI/PassiveAI.cs
index 69cc205e8..6247fc856 100644
--- a/Source/Game/AI/CoreAI/PassiveAI.cs
+++ b/Source/Game/AI/CoreAI/PassiveAI.cs
@@ -65,14 +65,14 @@ namespace Game.AI
public override void JustDied(Unit unit)
{
// We died while possessed, disable our loot
- me.RemoveFlag(ObjectFields.DynamicFlags, UnitDynFlags.Lootable);
+ me.RemoveDynamicFlag(UnitDynFlags.Lootable);
}
public override void KilledUnit(Unit victim)
{
// We killed a creature, disable victim's loot
if (victim.IsTypeId(TypeId.Unit))
- victim.RemoveFlag(ObjectFields.DynamicFlags, UnitDynFlags.Lootable);
+ me.RemoveDynamicFlag(UnitDynFlags.Lootable);
}
public override void OnCharmed(bool apply)
diff --git a/Source/Game/AI/PlayerAI/PlayerAI.cs b/Source/Game/AI/PlayerAI/PlayerAI.cs
index 41384f5f9..5d8cafcce 100644
--- a/Source/Game/AI/PlayerAI/PlayerAI.cs
+++ b/Source/Game/AI/PlayerAI/PlayerAI.cs
@@ -392,7 +392,7 @@ namespace Game.AI
public PlayerAI(Player player) : base(player)
{
me = player;
- _selfSpec = player.GetUInt32Value(PlayerFields.CurrentSpecId);
+ _selfSpec = player.GetPrimarySpecialization();
_isSelfHealer = IsPlayerHealer(player);
_isSelfRangedAttacker = IsPlayerRangedAttacker(player);
}
@@ -414,15 +414,15 @@ namespace Game.AI
default:
return false;
case Class.Paladin:
- return who.GetUInt32Value(PlayerFields.CurrentSpecId) == (uint)TalentSpecialization.PaladinHoly;
+ return who.GetPrimarySpecialization() == (uint)TalentSpecialization.PaladinHoly;
case Class.Priest:
- return who.GetUInt32Value(PlayerFields.CurrentSpecId) == (uint)TalentSpecialization.PriestDiscipline || who.GetUInt32Value(PlayerFields.CurrentSpecId) == (uint)TalentSpecialization.PriestHoly;
+ return who.GetPrimarySpecialization() == (uint)TalentSpecialization.PriestDiscipline || who.GetPrimarySpecialization() == (uint)TalentSpecialization.PriestHoly;
case Class.Shaman:
- return who.GetUInt32Value(PlayerFields.CurrentSpecId) == (uint)TalentSpecialization.ShamanRestoration;
+ return who.GetPrimarySpecialization() == (uint)TalentSpecialization.ShamanRestoration;
case Class.Monk:
- return who.GetUInt32Value(PlayerFields.CurrentSpecId) == (uint)TalentSpecialization.MonkMistweaver;
+ return who.GetPrimarySpecialization() == (uint)TalentSpecialization.MonkMistweaver;
case Class.Druid:
- return who.GetUInt32Value(PlayerFields.CurrentSpecId) == (uint)TalentSpecialization.DruidRestoration;
+ return who.GetPrimarySpecialization() == (uint)TalentSpecialization.DruidRestoration;
}
}
bool IsPlayerRangedAttacker(Player who)
@@ -454,11 +454,11 @@ namespace Game.AI
return false;
}
case Class.Priest:
- return who.GetUInt32Value(PlayerFields.CurrentSpecId) == (uint)TalentSpecialization.PriestShadow;
+ return who.GetPrimarySpecialization() == (uint)TalentSpecialization.PriestShadow;
case Class.Shaman:
- return who.GetUInt32Value(PlayerFields.CurrentSpecId) == (uint)TalentSpecialization.ShamanElemental;
+ return who.GetPrimarySpecialization() == (uint)TalentSpecialization.ShamanElemental;
case Class.Druid:
- return who.GetUInt32Value(PlayerFields.CurrentSpecId) == (uint)TalentSpecialization.DruidBalance;
+ return who.GetPrimarySpecialization() == (uint)TalentSpecialization.DruidBalance;
}
}
@@ -659,7 +659,7 @@ namespace Game.AI
return (!who || who == me) ? _isSelfHealer : IsPlayerHealer(who);
}
public bool IsRangedAttacker(Player who = null) { return (!who || who == me) ? _isSelfRangedAttacker : IsPlayerRangedAttacker(who); }
- uint GetSpec(Player who = null) { return (!who || who == me) ? _selfSpec : who.GetUInt32Value(PlayerFields.CurrentSpecId); }
+ uint GetSpec(Player who = null) { return (!who || who == me) ? _selfSpec : who.GetPrimarySpecialization(); }
void SetIsRangedAttacker(bool state) { _isSelfRangedAttacker = state; } // this allows overriding of the default ranged attacker detection
public virtual Unit SelectAttackTarget() { return me.GetCharmer() ? me.GetCharmer().GetVictim() : null; }
diff --git a/Source/Game/AI/ScriptedAI/ScriptedAI.cs b/Source/Game/AI/ScriptedAI/ScriptedAI.cs
index 8bed3deb9..c70e09911 100644
--- a/Source/Game/AI/ScriptedAI/ScriptedAI.cs
+++ b/Source/Game/AI/ScriptedAI/ScriptedAI.cs
@@ -125,7 +125,7 @@ namespace Game.AI
return null;
//Silenced so we can't cast
- if (me.HasFlag(UnitFields.Flags, UnitFlags.Silenced))
+ if (me.HasUnitFlag(UnitFlags.Silenced))
return null;
//Using the extended script system we first create a list of viable spells
diff --git a/Source/Game/AI/ScriptedAI/ScriptedEscortAI.cs b/Source/Game/AI/ScriptedAI/ScriptedEscortAI.cs
index 06d9c94f7..868c625b2 100644
--- a/Source/Game/AI/ScriptedAI/ScriptedEscortAI.cs
+++ b/Source/Game/AI/ScriptedAI/ScriptedEscortAI.cs
@@ -133,7 +133,7 @@ namespace Game.AI
//add a small delay before going to first waypoint, normal in near all cases
m_uiWPWaitTimer = 1000;
- if (me.getFaction() != me.GetCreatureTemplate().Faction)
+ if (me.GetFaction() != me.GetCreatureTemplate().Faction)
me.RestoreFaction();
Reset();
@@ -162,7 +162,7 @@ namespace Game.AI
{
me.GetMotionMaster().MoveTargetedHome();
if (HasImmuneToNPCFlags)
- me.SetFlag(UnitFields.Flags, UnitFlags.ImmuneToNpc);
+ me.AddUnitFlag(UnitFlags.ImmuneToNpc);
Reset();
}
}
@@ -463,11 +463,12 @@ namespace Game.AI
}
//disable npcflags
- me.SetUInt64Value(UnitFields.NpcFlags, (ulong)NPCFlags.None);
- if (me.HasFlag(UnitFields.Flags, UnitFlags.ImmuneToNpc))
+ me.SetNpcFlags(NPCFlags.None);
+ me.SetNpcFlags2(NPCFlags2.None);
+ if (me.HasUnitFlag(UnitFlags.ImmuneToNpc))
{
HasImmuneToNPCFlags = true;
- me.RemoveFlag(UnitFields.Flags, UnitFlags.ImmuneToNpc);
+ me.RemoveUnitFlag(UnitFlags.ImmuneToNpc);
}
Log.outDebug(LogFilter.Scripts, $"EscortAI started. ActiveAttacker = {m_bIsActiveAttacker}, Run = {m_bIsRunning}, PlayerGUID = {m_uiPlayerGUID.ToString()}");
diff --git a/Source/Game/AI/ScriptedAI/ScriptedFollowerAI.cs b/Source/Game/AI/ScriptedAI/ScriptedFollowerAI.cs
index 8b06c4548..6b4c9f6db 100644
--- a/Source/Game/AI/ScriptedAI/ScriptedFollowerAI.cs
+++ b/Source/Game/AI/ScriptedAI/ScriptedFollowerAI.cs
@@ -168,7 +168,7 @@ namespace Game.AI
if (!IsCombatMovementAllowed())
SetCombatMovement(true);
- if (me.getFaction() != me.GetCreatureTemplate().Faction)
+ if (me.GetFaction() != me.GetCreatureTemplate().Faction)
me.SetFaction(me.GetCreatureTemplate().Faction);
Reset();
@@ -318,7 +318,8 @@ namespace Game.AI
Log.outDebug(LogFilter.Scripts, "FollowerAI start with WAYPOINT_MOTION_TYPE, set to MoveIdle.");
}
- me.SetUInt64Value(UnitFields.NpcFlags, (uint)NPCFlags.None);
+ me.SetNpcFlags(NPCFlags.None);
+ me.SetNpcFlags2(NPCFlags2.None);
AddFollowState(eFollowState.Inprogress);
diff --git a/Source/Game/AI/SmartScripts/SmartAI.cs b/Source/Game/AI/SmartScripts/SmartAI.cs
index 401a66c80..ef61503da 100644
--- a/Source/Game/AI/SmartScripts/SmartAI.cs
+++ b/Source/Game/AI/SmartScripts/SmartAI.cs
@@ -131,8 +131,8 @@ namespace Game.AI
if (invoker && invoker.GetTypeId() == TypeId.Player)
{
- mEscortNPCFlags = me.GetUInt32Value(UnitFields.NpcFlags);
- me.SetFlag(UnitFields.NpcFlags, 0);
+ mEscortNPCFlags = me.m_unitData.NpcFlags[0];
+ me.SetNpcFlags(NPCFlags.None);
}
GetScript().ProcessEventsFor(SmartEvents.WaypointStart, null, mCurrentWPID, GetScript().GetPathId());
@@ -227,7 +227,7 @@ namespace Game.AI
if (mEscortNPCFlags != 0)
{
- me.SetFlag(UnitFields.NpcFlags, mEscortNPCFlags);
+ me.SetNpcFlags((NPCFlags)mEscortNPCFlags);
mEscortNPCFlags = 0;
}
@@ -591,7 +591,7 @@ namespace Game.AI
mDespawnState = 0;
mEscortState = SmartEscortState.None;
me.SetVisible(true);
- if (me.getFaction() != me.GetCreatureTemplate().Faction)
+ if (me.GetFaction() != me.GetCreatureTemplate().Faction)
me.RestoreFaction();
mJustReset = true;
JustReachedHome();
@@ -646,7 +646,7 @@ namespace Game.AI
public override void AttackStart(Unit who)
{
// dont allow charmed npcs to act on their own
- if (me.HasFlag(UnitFields.Flags, UnitFlags.PlayerControlled))
+ if (me.HasUnitFlag(UnitFlags.PlayerControlled))
{
if (who && mCanAutoAttack)
me.Attack(who, true);
diff --git a/Source/Game/AI/SmartScripts/SmartAIManager.cs b/Source/Game/AI/SmartScripts/SmartAIManager.cs
index 48162e25b..6d5e528b6 100644
--- a/Source/Game/AI/SmartScripts/SmartAIManager.cs
+++ b/Source/Game/AI/SmartScripts/SmartAIManager.cs
@@ -1715,7 +1715,7 @@ namespace Game.AI
[FieldOffset(16)]
public Raw raw;
- [FieldOffset(32)]
+ [FieldOffset(40)]
public string param_string;
#region Structs
diff --git a/Source/Game/AI/SmartScripts/SmartScript.cs b/Source/Game/AI/SmartScripts/SmartScript.cs
index 31512a46e..2f74dbd21 100644
--- a/Source/Game/AI/SmartScripts/SmartScript.cs
+++ b/Source/Game/AI/SmartScripts/SmartScript.cs
@@ -221,7 +221,7 @@ namespace Game.AI
CreatureTemplate ci = Global.ObjectMgr.GetCreatureTemplate(obj.ToCreature().GetEntry());
if (ci != null)
{
- if (obj.ToCreature().getFaction() != ci.Faction)
+ if (obj.ToCreature().GetFaction() != ci.Faction)
{
obj.ToCreature().SetFaction(ci.Faction);
Log.outDebug(LogFilter.ScriptsAi, "SmartScript.ProcessAction. SMART_ACTION_SET_FACTION: Creature entry {0}, GuidLow {1} set faction to {2}",
@@ -647,7 +647,7 @@ namespace Game.AI
{
if (IsUnit(obj))
{
- obj.ToUnit().SetUInt32Value(UnitFields.NpcEmotestate, e.Action.emote.emoteId);
+ obj.ToUnit().SetEmoteState((Emote)e.Action.emote.emoteId);
Log.outDebug(LogFilter.ScriptsAi, "SmartScript.ProcessAction. SMART_ACTION_SET_EMOTE_STATE. Unit {0} set emotestate to {1}",
obj.GetGUID().ToString(), e.Action.emote.emoteId);
}
@@ -668,13 +668,13 @@ namespace Game.AI
{
if (e.Action.unitFlag.type == 0)
{
- obj.ToUnit().SetFlag(UnitFields.Flags, e.Action.unitFlag.flag);
+ obj.ToUnit().AddUnitFlag((UnitFlags)e.Action.unitFlag.flag);
Log.outDebug(LogFilter.ScriptsAi, "SmartScript.ProcessAction. SMART_ACTION_SET_UNIT_FLAG. Unit {0} added flag {1} to UNIT_FIELD_FLAGS",
obj.GetGUID().ToString(), e.Action.unitFlag.flag);
}
else
{
- obj.ToUnit().SetFlag(UnitFields.Flags2, e.Action.unitFlag.flag);
+ obj.ToUnit().AddUnitFlag2((UnitFlags2)e.Action.unitFlag.flag);
Log.outDebug(LogFilter.ScriptsAi, "SmartScript.ProcessAction. SMART_ACTION_SET_UNIT_FLAG. Unit {0} added flag {1} to UNIT_FIELD_FLAGS_2",
obj.GetGUID().ToString(), e.Action.unitFlag.flag);
}
@@ -696,13 +696,13 @@ namespace Game.AI
{
if (e.Action.unitFlag.type == 0)
{
- obj.ToUnit().RemoveFlag(UnitFields.Flags2, e.Action.unitFlag.flag);
+ obj.ToUnit().RemoveUnitFlag((UnitFlags)e.Action.unitFlag.flag);
Log.outDebug(LogFilter.ScriptsAi, "SmartScript.ProcessAction. SMART_ACTION_REMOVE_UNIT_FLAG. Unit {0} removed flag {1} to UNIT_FIELD_FLAGS",
obj.GetGUID().ToString(), e.Action.unitFlag.flag);
}
else
{
- obj.ToUnit().RemoveFlag(UnitFields.Flags2, e.Action.unitFlag.flag);
+ obj.ToUnit().RemoveUnitFlag2((UnitFlags2)e.Action.unitFlag.flag);
Log.outDebug(LogFilter.ScriptsAi, "SmartScript.ProcessAction. SMART_ACTION_REMOVE_UNIT_FLAG. Unit {0} removed flag {1} to UNIT_FIELD_FLAGS_2",
obj.GetGUID().ToString(), e.Action.unitFlag.flag);
}
@@ -1756,7 +1756,7 @@ namespace Game.AI
foreach (var obj in targets)
if (IsUnit(obj))
- obj.ToUnit().SetUInt64Value(UnitFields.NpcFlags, e.Action.unitFlag.flag);
+ obj.ToUnit().SetNpcFlags((NPCFlags)e.Action.unitFlag.flag);
break;
}
case SmartActions.AddNpcFlag:
@@ -1767,7 +1767,7 @@ namespace Game.AI
foreach (var obj in targets)
if (IsUnit(obj))
- obj.ToUnit().SetFlag64(UnitFields.NpcFlags, e.Action.unitFlag.flag);
+ obj.ToUnit().AddNpcFlag((NPCFlags)e.Action.unitFlag.flag);
break;
}
case SmartActions.RemoveNpcFlag:
@@ -1778,7 +1778,7 @@ namespace Game.AI
foreach (var obj in targets)
if (IsUnit(obj))
- obj.ToUnit().RemoveFlag64(UnitFields.NpcFlags, e.Action.unitFlag.flag);
+ obj.ToUnit().RemoveNpcFlag((NPCFlags)e.Action.unitFlag.flag);
break;
}
case SmartActions.CrossCast:
@@ -1937,7 +1937,25 @@ namespace Game.AI
break;
foreach (var obj in targets)
if (IsUnit(obj))
- obj.ToUnit().SetByteFlag(UnitFields.Bytes1, (byte)e.Action.setunitByte.type, e.Action.setunitByte.byte1);
+ {
+ switch (e.Action.setunitByte.type)
+ {
+ case 0:
+ obj.ToUnit().SetStandState((UnitStandStateType)e.Action.setunitByte.byte1);
+ break;
+ case 1:
+ // pet talent points
+ break;
+ case 2:
+ obj.ToUnit().AddVisFlags((UnitVisFlags)e.Action.setunitByte.byte1);
+ break;
+ case 3:
+ // this is totally wrong to maintain compatibility with existing scripts
+ // TODO: fix with animtier overhaul
+ obj.ToUnit().SetAnimTier((UnitBytes1Flags)(obj.ToUnit().m_unitData.AnimTier | e.Action.setunitByte.byte1), false);
+ break;
+ }
+ }
break;
}
case SmartActions.RemoveUnitFieldBytes1:
@@ -1948,7 +1966,23 @@ namespace Game.AI
foreach (var obj in targets)
if (IsUnit(obj))
- obj.ToUnit().RemoveByteFlag(UnitFields.Bytes1, (byte)e.Action.delunitByte.type, e.Action.delunitByte.byte1);
+ {
+ switch (e.Action.setunitByte.type)
+ {
+ case 0:
+ obj.ToUnit().SetStandState(UnitStandStateType.Stand);
+ break;
+ case 1:
+ // pet talent points
+ break;
+ case 2:
+ obj.ToUnit().RemoveVisFlags((UnitVisFlags)e.Action.setunitByte.byte1);
+ break;
+ case 3:
+ obj.ToUnit().SetAnimTier((UnitBytes1Flags)(obj.ToUnit().m_unitData.AnimTier & ~e.Action.setunitByte.byte1), false);
+ break;
+ }
+ }
break;
}
case SmartActions.InterruptSpell:
@@ -1981,7 +2015,7 @@ namespace Game.AI
foreach (var obj in targets)
if (IsUnit(obj))
- obj.ToUnit().SetUInt32Value(ObjectFields.DynamicFlags, e.Action.unitFlag.flag);
+ obj.ToUnit().SetDynamicFlags((UnitDynFlags)e.Action.unitFlag.flag);
break;
}
case SmartActions.AddDynamicFlag:
@@ -1992,7 +2026,7 @@ namespace Game.AI
foreach (var obj in targets)
if (IsUnit(obj))
- obj.ToUnit().SetFlag(ObjectFields.DynamicFlags, e.Action.unitFlag.flag);
+ obj.ToUnit().AddDynamicFlag((UnitDynFlags)e.Action.unitFlag.flag);
break;
}
case SmartActions.RemoveDynamicFlag:
@@ -2003,7 +2037,7 @@ namespace Game.AI
foreach (var obj in targets)
if (IsUnit(obj))
- obj.ToUnit().RemoveFlag(ObjectFields.DynamicFlags, e.Action.unitFlag.flag);
+ obj.ToUnit().RemoveDynamicFlag((UnitDynFlags)e.Action.unitFlag.flag);
break;
}
case SmartActions.JumpToPos:
@@ -2163,7 +2197,7 @@ namespace Game.AI
foreach (var obj in targets)
if (IsGameObject(obj))
- obj.ToGameObject().SetUInt32Value(GameObjectFields.Flags, e.Action.goFlag.flag);
+ obj.ToGameObject().SetFlags((GameObjectFlags)e.Action.goFlag.flag);
break;
}
case SmartActions.AddGoFlag:
@@ -2174,7 +2208,7 @@ namespace Game.AI
foreach (var obj in targets)
if (IsGameObject(obj))
- obj.ToGameObject().SetFlag(GameObjectFields.Flags, e.Action.goFlag.flag);
+ obj.ToGameObject().AddFlag((GameObjectFlags)e.Action.goFlag.flag);
break;
}
case SmartActions.RemoveGoFlag:
@@ -2185,7 +2219,7 @@ namespace Game.AI
foreach (var obj in targets)
if (IsGameObject(obj))
- obj.ToGameObject().RemoveFlag(GameObjectFields.Flags, e.Action.goFlag.flag);
+ obj.ToGameObject().RemoveFlag((GameObjectFlags)e.Action.goFlag.flag);
break;
}
case SmartActions.SummonCreatureGroup:
diff --git a/Source/Game/Achievements/AchievementManager.cs b/Source/Game/Achievements/AchievementManager.cs
index 87d69c42f..5041c7468 100644
--- a/Source/Game/Achievements/AchievementManager.cs
+++ b/Source/Game/Achievements/AchievementManager.cs
@@ -514,7 +514,7 @@ namespace Game.Achievements
//! Since no common attributes were found, (not even in titleRewardFlags field)
//! we explicitly check by ID. Maybe in the future we could move the achievement_reward
//! condition fields to the condition system.
- uint titleId = reward.TitleId[achievement.Id == 1793 ? _owner.GetByteValue(PlayerFields.Bytes3, PlayerFieldOffsets.Bytes3OffsetGender) : (_owner.GetTeam() == Team.Alliance ? 0 : 1)];
+ uint titleId = reward.TitleId[achievement.Id == 1793 ? _owner.m_playerData.NativeSex : (_owner.GetTeam() == Team.Alliance ? 0 : 1)];
if (titleId != 0)
{
CharTitlesRecord titleEntry = CliDB.CharTitlesStorage.LookupByKey(titleId);
diff --git a/Source/Game/Achievements/CriteriaHandler.cs b/Source/Game/Achievements/CriteriaHandler.cs
index 35d904583..140769eb6 100644
--- a/Source/Game/Achievements/CriteriaHandler.cs
+++ b/Source/Game/Achievements/CriteriaHandler.cs
@@ -284,7 +284,7 @@ namespace Game.Achievements
SetCriteriaProgress(criteria, referencePlayer.GetReputationMgr().GetVisibleFactionCount(), referencePlayer);
break;
case CriteriaTypes.EarnHonorableKill:
- SetCriteriaProgress(criteria, referencePlayer.GetUInt32Value(ActivePlayerFields.LifetimeHonorableKills), referencePlayer);
+ SetCriteriaProgress(criteria, referencePlayer.m_activePlayerData.LifetimeHonorableKills, referencePlayer);
break;
case CriteriaTypes.HighestGoldValueOwned:
SetCriteriaProgress(criteria, referencePlayer.GetMoney(), referencePlayer, ProgressType.Highest);
@@ -1063,12 +1063,12 @@ namespace Game.Achievements
if (area.AreaBit < 0)
continue;
- int playerIndexOffset = (int)((uint)area.AreaBit / 32);
+ int playerIndexOffset = (int)((uint)area.AreaBit / 64);
if (playerIndexOffset >= PlayerConst.ExploredZonesSize)
continue;
- uint mask = 1u << (int)((uint)area.AreaBit % 32);
- if (Convert.ToBoolean(referencePlayer.GetUInt32Value(ActivePlayerFields.ExploredZones + playerIndexOffset) & mask))
+ ulong mask = 1ul << (int)((uint)area.AreaBit % 64);
+ if (Convert.ToBoolean(referencePlayer.m_activePlayerData.ExploredZones[playerIndexOffset] & mask))
{
matchFound = true;
break;
diff --git a/Source/Game/Arenas/ArenaScore.cs b/Source/Game/Arenas/ArenaScore.cs
index b476ce1cf..24c48c2ae 100644
--- a/Source/Game/Arenas/ArenaScore.cs
+++ b/Source/Game/Arenas/ArenaScore.cs
@@ -29,7 +29,7 @@ namespace Game.Arenas
TeamId = (int)(team == Team.Alliance ? BattlegroundTeamId.Alliance : BattlegroundTeamId.Horde);
}
- public override void BuildPvPLogPlayerDataPacket(out PVPLogData.PlayerData playerData)
+ public override void BuildPvPLogPlayerDataPacket(out PVPLogData.PVPMatchPlayerStatistics playerData)
{
base.BuildPvPLogPlayerDataPacket(out playerData);
diff --git a/Source/Game/AuctionHouse/AuctionManager.cs b/Source/Game/AuctionHouse/AuctionManager.cs
index a5df0869d..c8c2591be 100644
--- a/Source/Game/AuctionHouse/AuctionManager.cs
+++ b/Source/Game/AuctionHouse/AuctionManager.cs
@@ -555,38 +555,6 @@ namespace Game
string name = proto.GetName(player.GetSession().GetSessionDbcLocale());
if (string.IsNullOrEmpty(name))
continue;
-
- // DO NOT use GetItemEnchantMod(proto.RandomProperty) as it may return a result
- // that matches the search but it may not equal item.GetItemRandomPropertyId()
- // used in BuildAuctionInfo() which then causes wrong items to be listed
- int propRefID = item.GetItemRandomPropertyId();
- if (propRefID != 0)
- {
- string suffix = null;
- // Append the suffix to the name (ie: of the Monkey) if one exists
- // These are found in ItemRandomProperties.dbc, not ItemRandomSuffix.dbc
- // even though the DBC names seem misleading
- if (propRefID < 0)
- {
- ItemRandomSuffixRecord itemRandSuffix = CliDB.ItemRandomSuffixStorage.LookupByKey(-propRefID);
- if (itemRandSuffix != null)
- suffix = itemRandSuffix.Name[player.GetSession().GetSessionDbcLocale()];
- }
- else
- {
- ItemRandomPropertiesRecord itemRandProp = CliDB.ItemRandomPropertiesStorage.LookupByKey(propRefID);
- if (itemRandProp != null)
- suffix = itemRandProp.Name[player.GetSession().GetSessionDbcLocale()];
- }
-
- // dbc local name
- if (!string.IsNullOrEmpty(suffix))
- {
- // Append the suffix (ie: of the Monkey) to the name using localization
- // or default enUS if localization is invalid
- name += ' ' + suffix;
- }
- }
}
// Add the item if no search term or if entered search term was found
@@ -645,7 +613,7 @@ namespace Game
}
byte i = 0;
- foreach (ItemDynamicFieldGems gemData in item.GetGems())
+ foreach (SocketedGem gemData in item.m_itemData.Gems)
{
if (gemData.ItemId != 0)
{
diff --git a/Source/Game/BattleFields/BattleField.cs b/Source/Game/BattleFields/BattleField.cs
index dd0b096cc..5780c956b 100644
--- a/Source/Game/BattleFields/BattleField.cs
+++ b/Source/Game/BattleFields/BattleField.cs
@@ -501,7 +501,7 @@ namespace Game.BattleFields
{
creature.CombatStop();
creature.SetReactState(ReactStates.Passive);
- creature.SetFlag(UnitFields.Flags, UnitFlags.NonAttackable | UnitFlags.NotSelectable);
+ creature.AddUnitFlag(UnitFlags.NonAttackable | UnitFlags.NotSelectable);
creature.DisappearAndDie();
creature.SetVisible(false);
}
@@ -509,14 +509,14 @@ namespace Game.BattleFields
public void ShowNpc(Creature creature, bool aggressive)
{
creature.SetVisible(true);
- creature.RemoveFlag(UnitFields.Flags, UnitFlags.NonAttackable | UnitFlags.NotSelectable);
+ creature.RemoveUnitFlag(UnitFlags.NonAttackable | UnitFlags.NotSelectable);
if (!creature.IsAlive())
creature.Respawn(true);
if (aggressive)
creature.SetReactState(ReactStates.Aggressive);
else
{
- creature.SetFlag(UnitFields.Flags, UnitFlags.NonAttackable);
+ creature.AddUnitFlag(UnitFlags.NonAttackable);
creature.SetReactState(ReactStates.Passive);
}
}
diff --git a/Source/Game/BattleFields/Zones/WinterGrasp.cs b/Source/Game/BattleFields/Zones/WinterGrasp.cs
index 8c90403c1..82344cd4e 100644
--- a/Source/Game/BattleFields/Zones/WinterGrasp.cs
+++ b/Source/Game/BattleFields/Zones/WinterGrasp.cs
@@ -187,7 +187,7 @@ namespace Game.BattleFields
// Update faction of relic, only attacker can click on
relic.SetFaction(WGConst.WintergraspFaction[GetAttackerTeam()]);
// Set in use (not allow to click on before last door is broken)
- relic.SetFlag(GameObjectFields.Flags, GameObjectFlags.InUse | GameObjectFlags.NotSelectable);
+ relic.AddFlag(GameObjectFlags.InUse | GameObjectFlags.NotSelectable);
m_titansRelicGUID = relic.GetGUID();
}
else
@@ -1157,7 +1157,7 @@ namespace Game.BattleFields
}
_wg.SetRelicInteractible(true);
if (_wg.GetRelic())
- _wg.GetRelic().RemoveFlag(GameObjectFields.Flags, GameObjectFlags.InUse | GameObjectFlags.NotSelectable);
+ _wg.GetRelic().RemoveFlag(GameObjectFlags.InUse | GameObjectFlags.NotSelectable);
else
Log.outError(LogFilter.Server, "BattlefieldWG: Titan Relic not found.");
break;
diff --git a/Source/Game/BattleGrounds/BattleGround.cs b/Source/Game/BattleGrounds/BattleGround.cs
index 354990be8..0368c8aa2 100644
--- a/Source/Game/BattleGrounds/BattleGround.cs
+++ b/Source/Game/BattleGrounds/BattleGround.cs
@@ -426,7 +426,7 @@ namespace Game.BattleGrounds
player.SendPacket(battlefieldStatus);
// Correctly display EnemyUnitFrame
- player.SetByteValue(PlayerFields.Bytes4, 3, (byte)player.GetBGTeam());
+ player.SetArenaFaction((byte)player.GetBGTeam());
player.RemoveAurasDueToSpell(BattlegroundConst.SpellArenaPreparation);
player.ResetAllPowers();
@@ -974,7 +974,7 @@ namespace Game.BattleGrounds
public virtual void AddPlayer(Player player)
{
// remove afk from player
- if (player.HasFlag(PlayerFields.Flags, PlayerFlags.AFK))
+ if (player.isAFK())
player.ToggleAFK();
// score struct must be created in inherited class
@@ -985,7 +985,7 @@ namespace Game.BattleGrounds
BattlegroundPlayer bp = new BattlegroundPlayer();
bp.OfflineRemoveTime = 0;
bp.Team = team;
- bp.ActiveSpec = player.GetInt32Value(PlayerFields.CurrentSpecId);
+ bp.ActiveSpec = (int)player.GetPrimarySpecialization();
// Add to list/maps
m_Players[guid] = bp;
@@ -1221,12 +1221,9 @@ namespace Game.BattleGrounds
{
pvpLogData = new PVPLogData();
- if (GetStatus() == BattlegroundStatus.WaitLeave)
- pvpLogData.Winner.Set((byte)GetWinner());
-
foreach (var score in PlayerScores)
{
- PVPLogData.PlayerData playerData;
+ PVPLogData.PVPMatchPlayerStatistics playerData;
score.Value.BuildPvPLogPlayerDataPacket(out playerData);
@@ -1234,14 +1231,14 @@ namespace Game.BattleGrounds
if (player)
{
playerData.IsInWorld = true;
- playerData.PrimaryTalentTree = (int)player.GetUInt32Value(PlayerFields.CurrentSpecId);
+ playerData.PrimaryTalentTree = (int)player.GetPrimarySpecialization();
playerData.Sex = (int)player.GetGender();
playerData.PlayerRace = player.GetRace();
playerData.PlayerClass = (int)player.GetClass();
playerData.HonorLevel = (int)player.GetHonorLevel();
}
- pvpLogData.Players.Add(playerData);
+ pvpLogData.Statistics.Add(playerData);
}
pvpLogData.PlayerCount[(int)BattlegroundTeamId.Horde] = (sbyte)GetPlayersCountByTeam(Team.Horde);
@@ -1534,9 +1531,6 @@ namespace Game.BattleGrounds
// casting visual effect
creature.SetChannelSpellId(BattlegroundConst.SpellSpiritHealChannel);
creature.SetChannelSpellXSpellVisualId(BattlegroundConst.SpellSpiritHealChannelVisual);
- // correct cast speed
- creature.SetFloatValue(UnitFields.ModCastSpeed, 1.0f);
- creature.SetFloatValue(UnitFields.ModCastHaste, 1.0f);
//creature.CastSpell(creature, SPELL_SPIRIT_HEAL_CHANNEL, true);
return true;
}
@@ -1649,7 +1643,7 @@ namespace Game.BattleGrounds
if (!isArena())
{
// To be able to remove insignia -- ONLY IN Battlegrounds
- victim.SetFlag(UnitFields.Flags, UnitFlags.Skinnable);
+ victim.AddUnitFlag(UnitFlags.Skinnable);
RewardXPAtKill(killer, victim);
}
}
diff --git a/Source/Game/BattleGrounds/BattleGroundManager.cs b/Source/Game/BattleGrounds/BattleGroundManager.cs
index e0bb86786..5d6439015 100644
--- a/Source/Game/BattleGrounds/BattleGroundManager.cs
+++ b/Source/Game/BattleGrounds/BattleGroundManager.cs
@@ -702,7 +702,7 @@ namespace Game.BattleGrounds
CreatureTemplate cInfo = Global.ObjectMgr.GetCreatureTemplate(entry);
if (cInfo != null)
{
- if (!cInfo.Npcflag.HasAnyFlag(NPCFlags.BattleMaster))
+ if (!cInfo.Npcflag.HasAnyFlag((uint)NPCFlags.BattleMaster))
Log.outError(LogFilter.Sql, "Creature (Entry: {0}) listed in `battlemaster_entry` is not a battlemaster.", entry);
}
else
@@ -733,10 +733,10 @@ namespace Game.BattleGrounds
var templates = Global.ObjectMgr.GetCreatureTemplates();
foreach (var creature in templates)
{
- if (creature.Value.Npcflag.HasAnyFlag(NPCFlags.BattleMaster) && !mBattleMastersMap.ContainsKey(creature.Value.Entry))
+ if (creature.Value.Npcflag.HasAnyFlag((uint)NPCFlags.BattleMaster) && !mBattleMastersMap.ContainsKey(creature.Value.Entry))
{
Log.outError(LogFilter.Sql, "CreatureTemplate (Entry: {0}) has UNIT_NPC_FLAG_BATTLEMASTER but no data in `battlemaster_entry` table. Removing flag!", creature.Value.Entry);
- templates[creature.Key].Npcflag &= ~NPCFlags.BattleMaster;
+ templates[creature.Key].Npcflag &= ~(uint)NPCFlags.BattleMaster;
}
}
}
diff --git a/Source/Game/BattleGrounds/BattleGroundScore.cs b/Source/Game/BattleGrounds/BattleGroundScore.cs
index 07202609c..ac624c5e6 100644
--- a/Source/Game/BattleGrounds/BattleGroundScore.cs
+++ b/Source/Game/BattleGrounds/BattleGroundScore.cs
@@ -57,9 +57,9 @@ namespace Game.BattleGrounds
}
}
- public virtual void BuildPvPLogPlayerDataPacket(out PVPLogData.PlayerData playerData)
+ public virtual void BuildPvPLogPlayerDataPacket(out PVPLogData.PVPMatchPlayerStatistics playerData)
{
- playerData = new PVPLogData.PlayerData();
+ playerData = new PVPLogData.PVPMatchPlayerStatistics();
playerData.PlayerGUID = PlayerGuid;
playerData.Kills = KillingBlows;
playerData.Faction = (byte)TeamId;
diff --git a/Source/Game/BattleGrounds/Zones/ArathiBasin.cs b/Source/Game/BattleGrounds/Zones/ArathiBasin.cs
index 1d81cce3b..d320db8bd 100644
--- a/Source/Game/BattleGrounds/Zones/ArathiBasin.cs
+++ b/Source/Game/BattleGrounds/Zones/ArathiBasin.cs
@@ -833,7 +833,7 @@ namespace Game.BattleGrounds.Zones
}
}
- public override void BuildPvPLogPlayerDataPacket(out PVPLogData.PlayerData playerData)
+ public override void BuildPvPLogPlayerDataPacket(out PVPLogData.PVPMatchPlayerStatistics playerData)
{
base.BuildPvPLogPlayerDataPacket(out playerData);
diff --git a/Source/Game/BattleGrounds/Zones/EyeofStorm.cs b/Source/Game/BattleGrounds/Zones/EyeofStorm.cs
index 557102cd4..4315f4c62 100644
--- a/Source/Game/BattleGrounds/Zones/EyeofStorm.cs
+++ b/Source/Game/BattleGrounds/Zones/EyeofStorm.cs
@@ -999,7 +999,7 @@ namespace Game.BattleGrounds.Zones
}
}
- public override void BuildPvPLogPlayerDataPacket(out PVPLogData.PlayerData playerData)
+ public override void BuildPvPLogPlayerDataPacket(out PVPLogData.PVPMatchPlayerStatistics playerData)
{
base.BuildPvPLogPlayerDataPacket(out playerData);
diff --git a/Source/Game/BattleGrounds/Zones/StrandofAncients.cs b/Source/Game/BattleGrounds/Zones/StrandofAncients.cs
index 30ef1757d..ead79249e 100644
--- a/Source/Game/BattleGrounds/Zones/StrandofAncients.cs
+++ b/Source/Game/BattleGrounds/Zones/StrandofAncients.cs
@@ -689,9 +689,9 @@ namespace Game.BattleGrounds.Zones
if (dem)
{
if (start)
- dem.SetFlag(UnitFields.Flags, UnitFlags.NonAttackable | UnitFlags.NotSelectable);
+ dem.AddUnitFlag(UnitFlags.NonAttackable | UnitFlags.NotSelectable);
else
- dem.RemoveFlag(UnitFields.Flags, UnitFlags.NonAttackable | UnitFlags.NotSelectable);
+ dem.RemoveUnitFlag(UnitFlags.NonAttackable | UnitFlags.NotSelectable);
}
}
}
@@ -768,9 +768,9 @@ namespace Game.BattleGrounds.Zones
if (go)
{
if (CanInteractWithObject(objectId))
- go.RemoveFlag(GameObjectFields.Flags, GameObjectFlags.NotSelectable);
+ go.RemoveFlag(GameObjectFlags.NotSelectable);
else
- go.SetFlag(GameObjectFields.Flags, GameObjectFlags.NotSelectable);
+ go.AddFlag(GameObjectFlags.NotSelectable);
}
}
@@ -1153,7 +1153,7 @@ namespace Game.BattleGrounds.Zones
}
}
- public override void BuildPvPLogPlayerDataPacket(out PVPLogData.PlayerData playerData)
+ public override void BuildPvPLogPlayerDataPacket(out PVPLogData.PVPMatchPlayerStatistics playerData)
{
base.BuildPvPLogPlayerDataPacket(out playerData);
diff --git a/Source/Game/BattleGrounds/Zones/WarsongGluch.cs b/Source/Game/BattleGrounds/Zones/WarsongGluch.cs
index a23420dcc..6b1170c9c 100644
--- a/Source/Game/BattleGrounds/Zones/WarsongGluch.cs
+++ b/Source/Game/BattleGrounds/Zones/WarsongGluch.cs
@@ -966,7 +966,7 @@ namespace Game.BattleGrounds.Zones
}
}
- public override void BuildPvPLogPlayerDataPacket(out PVPLogData.PlayerData playerData)
+ public override void BuildPvPLogPlayerDataPacket(out PVPLogData.PVPMatchPlayerStatistics playerData)
{
base.BuildPvPLogPlayerDataPacket(out playerData);
diff --git a/Source/Game/BattlePets/BattlePetManager.cs b/Source/Game/BattlePets/BattlePetManager.cs
index 2aa33b3ba..143d6fe64 100644
--- a/Source/Game/BattlePets/BattlePetManager.cs
+++ b/Source/Game/BattlePets/BattlePetManager.cs
@@ -406,7 +406,7 @@ namespace Game.BattlePets
return;
// TODO: set proper CreatureID for spell DEFAULT_SUMMON_BATTLE_PET_SPELL (default EffectMiscValueA is 40721 - Murkimus the Gladiator)
- _owner.GetPlayer().SetGuidValue(ActivePlayerFields.SummonedBattlePetId, guid);
+ _owner.GetPlayer().SetSummonedBattlePetGUID(guid);
_owner.GetPlayer().CastSpell(_owner.GetPlayer(), speciesEntry.SummonSpellID != 0 ? speciesEntry.SummonSpellID : SharedConst.DefaultSummonBattlePetSpell);
// TODO: set pet level, quality... update fields
@@ -416,10 +416,10 @@ namespace Game.BattlePets
{
Player ownerPlayer = _owner.GetPlayer();
Creature pet = ObjectAccessor.GetCreatureOrPetOrVehicle(ownerPlayer, ownerPlayer.GetCritterGUID());
- if (pet && ownerPlayer.GetGuidValue(ActivePlayerFields.SummonedBattlePetId) == pet.GetGuidValue(UnitFields.BattlePetCompanionGuid))
+ if (pet && ownerPlayer.m_activePlayerData.SummonedBattlePetGUID == pet.GetBattlePetCompanionGUID())
{
pet.DespawnOrUnsummon();
- ownerPlayer.SetGuidValue(ActivePlayerFields.SummonedBattlePetId, ObjectGuid.Empty);
+ ownerPlayer.SetSummonedBattlePetGUID(ObjectGuid.Empty);
}
}
diff --git a/Source/Game/Calendar/CalendarManager.cs b/Source/Game/Calendar/CalendarManager.cs
index bc8067dff..7682315fe 100644
--- a/Source/Game/Calendar/CalendarManager.cs
+++ b/Source/Game/Calendar/CalendarManager.cs
@@ -546,7 +546,7 @@ namespace Game
Player invitee = Global.ObjAccessor.FindPlayer(inviteeGuid);
uint inviteeLevel = invitee ? invitee.getLevel() : Player.GetLevelFromDB(inviteeGuid);
- uint inviteeGuildId = invitee ? invitee.GetGuildId() : Player.GetGuildIdFromDB(inviteeGuid);
+ ulong inviteeGuildId = invitee ? invitee.GetGuildId() : Player.GetGuildIdFromDB(inviteeGuid);
CalendarEventInviteInfo inviteInfo = new CalendarEventInviteInfo();
inviteInfo.Guid = inviteeGuid;
diff --git a/Source/Game/Chat/Channels/ChannelAppenders.cs b/Source/Game/Chat/Channels/ChannelAppenders.cs
index b0ccbd432..40635c45c 100644
--- a/Source/Game/Chat/Channels/ChannelAppenders.cs
+++ b/Source/Game/Chat/Channels/ChannelAppenders.cs
@@ -65,9 +65,9 @@ namespace Game.Chat
LocaleConstant localeIdx = Global.WorldMgr.GetAvailableDbcLocale(locale);
ChannelNotifyJoined notify = new ChannelNotifyJoined();
- //notify->ChannelWelcomeMsg = "";
+ //notify.ChannelWelcomeMsg = "";
notify.ChatChannelID = (int)_source.GetChannelId();
- //notify->InstanceID = 0;
+ //notify.InstanceID = 0;
notify.ChannelFlags = _source.GetFlags();
notify.Channel = _source.GetName(localeIdx);
return notify;
diff --git a/Source/Game/Chat/Commands/AccountCommands.cs b/Source/Game/Chat/Commands/AccountCommands.cs
index 9713be3cb..163f25778 100644
--- a/Source/Game/Chat/Commands/AccountCommands.cs
+++ b/Source/Game/Chat/Commands/AccountCommands.cs
@@ -750,7 +750,7 @@ namespace Game.Chat
var ipBytes = System.Net.IPAddress.Parse(handler.GetSession().GetRemoteAddress()).GetAddressBytes();
Array.Reverse(ipBytes);
- PreparedStatement stmt = DB.Login.GetPreparedStatement(LoginStatements.SEL_LOGON_COUNTRY);
+ /*PreparedStatement stmt = DB.Login.GetPreparedStatement(LoginStatements.SEL_LOGON_COUNTRY);
stmt.AddValue(0, BitConverter.ToUInt32(ipBytes, 0));
SQLResult result = DB.Login.Query(stmt);
@@ -767,7 +767,7 @@ namespace Game.Chat
{
handler.SendSysMessage("[IP2NATION] Table empty");
Log.outDebug(LogFilter.Server, "[IP2NATION] Table empty");
- }
+ }*/
}
else if (param == "off")
{
diff --git a/Source/Game/Chat/Commands/BNetAccountCommands.cs b/Source/Game/Chat/Commands/BNetAccountCommands.cs
index 4eab55815..47c97cb07 100644
--- a/Source/Game/Chat/Commands/BNetAccountCommands.cs
+++ b/Source/Game/Chat/Commands/BNetAccountCommands.cs
@@ -285,7 +285,8 @@ namespace Game.Chat.Commands
}
[CommandGroup("lock", RBACPermissions.CommandBnetAccount, true)]
- class LockCommands {
+ class LockCommands
+ {
[Command("country", RBACPermissions.CommandBnetAccountLockCountry, true)]
static bool HandleLockCountryCommand(StringArguments args, CommandHandler handler)
{
@@ -300,7 +301,7 @@ namespace Game.Chat.Commands
{
if (param == "on")
{
- PreparedStatement stmt = DB.Login.GetPreparedStatement(LoginStatements.SEL_LOGON_COUNTRY);
+ /*PreparedStatement stmt = DB.Login.GetPreparedStatement(LoginStatements.SEL_LOGON_COUNTRY);
var ipBytes = System.Net.IPAddress.Parse(handler.GetSession().GetRemoteAddress()).GetAddressBytes();
Array.Reverse(ipBytes);
stmt.AddValue(0, BitConverter.ToUInt32(ipBytes, 0));
@@ -318,7 +319,7 @@ namespace Game.Chat.Commands
{
handler.SendSysMessage("[IP2NATION] Table empty");
Log.outDebug(LogFilter.Server, "[IP2NATION] Table empty");
- }
+ }*/
}
else if (param == "off")
{
diff --git a/Source/Game/Chat/Commands/CharacterCommands.cs b/Source/Game/Chat/Commands/CharacterCommands.cs
index 4a6cf94b5..e17e06132 100644
--- a/Source/Game/Chat/Commands/CharacterCommands.cs
+++ b/Source/Game/Chat/Commands/CharacterCommands.cs
@@ -52,7 +52,7 @@ namespace Game.Chat
if (string.IsNullOrEmpty(name))
continue;
- string activeStr = target.GetUInt32Value(PlayerFields.ChosenTitle) == titleInfo.MaskID
+ string activeStr = target.m_playerData.PlayerTitle == titleInfo.MaskID
? handler.GetCypherString(CypherStrings.Active) : "";
string titleNameStr = string.Format(name.ConvertFormatSyntax(), targetName);
@@ -600,7 +600,7 @@ namespace Game.Chat
if (!int.TryParse(daysStr, out keepDays) || keepDays < 0)
return false;
}
- // config option value 0 -> disabled and can't be used
+ // config option value 0 . disabled and can't be used
else if (keepDays <= 0)
return false;
@@ -777,7 +777,7 @@ namespace Game.Chat
{
player.GiveLevel((uint)newLevel);
player.InitTalentForLevel();
- player.SetUInt32Value(ActivePlayerFields.Xp, 0);
+ player.SetXP(0);
if (handler.needReportToTarget(player))
{
diff --git a/Source/Game/Chat/Commands/CheatCommands.cs b/Source/Game/Chat/Commands/CheatCommands.cs
index 59d86c541..142983939 100644
--- a/Source/Game/Chat/Commands/CheatCommands.cs
+++ b/Source/Game/Chat/Commands/CheatCommands.cs
@@ -245,9 +245,9 @@ namespace Game.Chat.Commands
for (ushort i = 0; i < PlayerConst.ExploredZonesSize; ++i)
{
if (flag != 0)
- handler.GetSession().GetPlayer().SetFlag(ActivePlayerFields.ExploredZones + i, 0xFFFFFFFF);
+ handler.GetSession().GetPlayer().AddExploredZones(i, 0xFFFFFFFFFFFFFFFF);
else
- handler.GetSession().GetPlayer().SetFlag(ActivePlayerFields.ExploredZones + i, 0);
+ handler.GetSession().GetPlayer().RemoveExploredZones(i, 0xFFFFFFFFFFFFFFFF);
}
return true;
diff --git a/Source/Game/Chat/Commands/DebugCommands.cs b/Source/Game/Chat/Commands/DebugCommands.cs
index 4e33e57dd..66493eb35 100644
--- a/Source/Game/Chat/Commands/DebugCommands.cs
+++ b/Source/Game/Chat/Commands/DebugCommands.cs
@@ -435,78 +435,6 @@ namespace Game.Chat
return true;
}
- [Command("getitemvalue", RBACPermissions.CommandDebugGetitemvalue)]
- static bool HandleDebugGetItemValueCommand(StringArguments args, CommandHandler handler)
- {
- if (args.Empty())
- return false;
-
- if (!ulong.TryParse(args.NextString(), out ulong guid))
- return false;
-
- if (!uint.TryParse(args.NextString(), out uint index))
- return false;
-
- Item item = handler.GetSession().GetPlayer().GetItemByGuid(ObjectGuid.Create(HighGuid.Item, guid));
- if (!item)
- return false;
-
- if (index >= item.valuesCount)
- return false;
-
- uint value = item.GetUInt32Value(index);
-
- handler.SendSysMessage("Item {0}: value at {1} is {2}", guid, index, value);
-
- return true;
- }
-
- [Command("getvalue", RBACPermissions.CommandDebugGetvalue)]
- static bool HandleDebugGetValueCommand(StringArguments args, CommandHandler handler)
- {
- if (args.Empty())
- return false;
-
- string fieldStr = args.NextString();
- string valueStr = args.NextString();
-
- if (string.IsNullOrEmpty(fieldStr))
- return false;
-
- Unit target = handler.getSelectedUnit();
- if (!target)
- {
- handler.SendSysMessage(CypherStrings.SelectCharOrCreature);
- return false;
- }
-
- if (!uint.TryParse(fieldStr, out uint field))
- return false;
-
- ObjectGuid guid = target.GetGUID();
- if (field >= target.valuesCount)
- {
- handler.SendSysMessage(CypherStrings.TooBigIndex, field, guid.ToString(), target.valuesCount);
- return false;
- }
-
- if (!bool.TryParse(valueStr, out bool isInt32))
- isInt32 = true;
-
- if (isInt32)
- {
- uint value = target.GetUInt32Value(field);
- handler.SendSysMessage(CypherStrings.GetUintField, guid.ToString(), field, value);
- }
- else
- {
- float value = target.GetFloatValue(field);
- handler.SendSysMessage(CypherStrings.GetFloatField, guid.ToString(), field, value);
- }
-
- return true;
- }
-
[Command("hostil", RBACPermissions.CommandDebugHostil)]
static bool HandleDebugHostileRefListCommand(StringArguments args, CommandHandler handler)
{
@@ -570,31 +498,6 @@ namespace Game.Chat
return true;
}
- [Command("Mod32Value", RBACPermissions.CommandDebugMod32value)]
- static bool HandleDebugMod32ValueCommand(StringArguments args, CommandHandler handler)
- {
- if (args.Empty())
- return false;
-
- uint field = args.NextUInt32();
- int value = args.NextInt32();
-
- if (field >= handler.GetSession().GetPlayer().valuesCount)
- {
- handler.SendSysMessage(CypherStrings.TooBigIndex, field, handler.GetSession().GetPlayer().GetGUID().ToString(), handler.GetSession().GetPlayer().valuesCount);
- return false;
- }
-
- uint currentValue = handler.GetSession().GetPlayer().GetUInt32Value(field);
-
- currentValue += (uint)value;
- handler.GetSession().GetPlayer().SetUInt32Value(field, currentValue);
-
- handler.SendSysMessage(CypherStrings.Change32bitField, field, currentValue);
-
- return true;
- }
-
[Command("moveflags", RBACPermissions.CommandDebugMoveflags)]
static bool HandleDebugMoveflagsCommand(StringArguments args, CommandHandler handler)
{
@@ -794,103 +697,6 @@ namespace Game.Chat
return true;
}
- [Command("setbit", RBACPermissions.CommandDebugSetbit)]
- static bool HandleDebugSet32BitCommand(StringArguments args, CommandHandler handler)
- {
- if (args.Empty())
- return false;
-
- WorldObject target = handler.GetSelectedObject();
- if (!target)
- {
- handler.SendSysMessage(CypherStrings.SelectCharOrCreature);
- return false;
- }
-
- uint field = args.NextUInt32();
- uint val = args.NextUInt32();
- if (val > 32) //uint = 32 bits
- return false;
-
- uint value = (uint)(val != 0 ? 1 << ((int)val - 1) : 0);
- target.SetUInt32Value(field, value);
-
- handler.SendSysMessage(CypherStrings.Set32bitField, field, value);
- return true;
- }
-
- [Command("setitemvalue", RBACPermissions.CommandDebugSetitemvalue)]
- static bool HandleDebugSetItemValueCommand(StringArguments args, CommandHandler handler)
- {
- if (args.Empty())
- return false;
-
- if (!ulong.TryParse(args.NextString(), out ulong guid))
- return false;
-
- if (!uint.TryParse(args.NextString(), out uint index))
- return false;
-
- if (!uint.TryParse(args.NextString(), out uint value))
- return false;
-
- Item item = handler.GetSession().GetPlayer().GetItemByGuid(ObjectGuid.Create(HighGuid.Item, guid));
- if (!item)
- return false;
-
- if (index >= item.valuesCount)
- return false;
-
- item.SetUInt32Value(index, value);
- return true;
- }
-
- [Command("setvalue", RBACPermissions.CommandDebugSetvalue)]
- static bool HandleDebugSetValueCommand(StringArguments args, CommandHandler handler)
- {
- if (args.Empty())
- return false;
-
- WorldObject target = handler.GetSelectedObject();
- if (!target)
- {
- handler.SendSysMessage(CypherStrings.SelectCharOrCreature);
- return false;
- }
-
- ObjectGuid guid = target.GetGUID();
-
- uint field = args.NextUInt32();
- if (field >= target.valuesCount)
- {
- handler.SendSysMessage(CypherStrings.TooBigIndex, field, guid.ToString(), target.valuesCount);
- return false;
- }
-
- string valueStr = args.NextString();
- if (!bool.TryParse(args.NextString(), out bool isInt32))
- isInt32 = true;
-
- if (isInt32)
- {
- if (!uint.TryParse(valueStr, out uint value))
- return false;
-
- target.SetUInt32Value(field, value);
- handler.SendSysMessage(CypherStrings.SetUintField, guid.ToString(), field, value);
- }
- else
- {
- if (!float.TryParse(valueStr, out float value))
- return false;
-
- target.SetFloatValue(field, value);
- handler.SendSysMessage(CypherStrings.SetFloatField, guid.ToString(), field, value);
- }
-
- return true;
- }
-
[Command("setvid", RBACPermissions.CommandDebugSetvid)]
static bool HandleDebugSetVehicleIdCommand(StringArguments args, CommandHandler handler)
{
@@ -992,49 +798,6 @@ namespace Game.Chat
return true;
}
- [Command("update", RBACPermissions.CommandDebugUpdate)]
- static bool HandleDebugUpdateCommand(StringArguments args, CommandHandler handler)
- {
- if (args.Empty())
- return false;
-
- Unit unit = handler.getSelectedUnit();
- if (!unit)
- {
- handler.SendSysMessage(CypherStrings.SelectCharOrCreature);
- return false;
- }
-
- uint updateIndex = args.NextUInt32();
-
- //check updateIndex
- if (unit.IsTypeId(TypeId.Player))
- {
- if (updateIndex >= (int)PlayerFields.End)
- return true;
- }
- else if (updateIndex >= (int)UnitFields.End)
- return true;
-
- uint value;
- string valueStr = args.NextString();
- if (string.IsNullOrEmpty(valueStr))
- {
- value = unit.GetUInt32Value(updateIndex);
-
- handler.SendSysMessage(CypherStrings.Update, unit.GetGUID().ToString(), updateIndex, value);
- return true;
- }
-
- if (!uint.TryParse(valueStr, out value))
- return false;
-
- handler.SendSysMessage(CypherStrings.UpdateChange, unit.GetGUID().ToString(), updateIndex, value);
- unit.SetUInt32Value(updateIndex, value);
-
- return true;
- }
-
[Command("uws", RBACPermissions.CommandDebugUws)]
static bool HandleDebugUpdateWorldStateCommand(StringArguments args, CommandHandler handler)
{
diff --git a/Source/Game/Chat/Commands/GameObjectCommands.cs b/Source/Game/Chat/Commands/GameObjectCommands.cs
index 1057ac5e9..fdb316118 100644
--- a/Source/Game/Chat/Commands/GameObjectCommands.cs
+++ b/Source/Game/Chat/Commands/GameObjectCommands.cs
@@ -625,19 +625,34 @@ namespace Game.Chat
if (string.IsNullOrEmpty(state))
return false;
- if (!int.TryParse(state, out int objectState))
+ if (!uint.TryParse(state, out uint objectState))
return false;
- if (objectType < 4)
- obj.SetByteValue(GameObjectFields.Bytes1, (byte)objectType, (byte)objectState);
- else if (objectType == 4)
- obj.SendCustomAnim((uint)objectState);
- else if (objectType == 5)
+ switch (objectType)
{
- if (objectState < 0 || objectState > (uint)GameObjectDestructibleState.Rebuilding)
- return false;
+ case 0:
+ obj.SetGoState((GameObjectState)objectState);
+ break;
+ case 1:
+ obj.SetGoType((GameObjectTypes)objectState);
+ break;
+ case 2:
+ obj.SetGoArtKit((byte)objectState);
+ break;
+ case 3:
+ obj.SetGoAnimProgress(objectState);
+ break;
+ case 4:
+ obj.SendCustomAnim(objectState);
+ break;
+ case 5:
+ if (objectState < 0 || objectState > (uint)GameObjectDestructibleState.Rebuilding)
+ return false;
- obj.SetDestructibleState((GameObjectDestructibleState)objectState);
+ obj.SetDestructibleState((GameObjectDestructibleState)objectState);
+ break;
+ default:
+ break;
}
handler.SendSysMessage("Set gobject type {0} state {1}", objectType, objectState);
diff --git a/Source/Game/Chat/Commands/GuildCommands.cs b/Source/Game/Chat/Commands/GuildCommands.cs
index 29cd0b83a..ed77f8c16 100644
--- a/Source/Game/Chat/Commands/GuildCommands.cs
+++ b/Source/Game/Chat/Commands/GuildCommands.cs
@@ -103,7 +103,7 @@ namespace Game.Chat
if (!handler.extractPlayerTarget(args, out target, out targetGuid))
return false;
- uint guildId = target != null ? target.GetGuildId() : Player.GetGuildIdFromDB(targetGuid);
+ ulong guildId = target != null ? target.GetGuildId() : Player.GetGuildIdFromDB(targetGuid);
if (guildId == 0)
return false;
diff --git a/Source/Game/Chat/Commands/LookupCommands.cs b/Source/Game/Chat/Commands/LookupCommands.cs
index 66304bbd9..4298b6d93 100644
--- a/Source/Game/Chat/Commands/LookupCommands.cs
+++ b/Source/Game/Chat/Commands/LookupCommands.cs
@@ -834,7 +834,7 @@ namespace Game.Chat
string knownStr = target && target.HasTitle(titleInfo) ? handler.GetCypherString(CypherStrings.Known) : "";
- string activeStr = target && target.GetUInt32Value(PlayerFields.ChosenTitle) == titleInfo.MaskID
+ string activeStr = target && target.m_playerData.PlayerTitle == titleInfo.MaskID
? handler.GetCypherString(CypherStrings.Active) : "";
string titleNameStr = string.Format(name.ConvertFormatSyntax(), targetName);
diff --git a/Source/Game/Chat/Commands/MiscCommands.cs b/Source/Game/Chat/Commands/MiscCommands.cs
index ae5a27d7f..c94df6507 100644
--- a/Source/Game/Chat/Commands/MiscCommands.cs
+++ b/Source/Game/Chat/Commands/MiscCommands.cs
@@ -345,7 +345,7 @@ namespace Game.Chat
return false;
}
- Item item = playerTarget.StoreNewItem(dest, itemId, true, ItemEnchantment.GenerateItemRandomPropertyId(itemId), null, 0, bonusListIDs);
+ Item item = playerTarget.StoreNewItem(dest, itemId, true, ItemEnchantmentManager.GenerateItemRandomBonusListId(itemId), null, 0, bonusListIDs);
// remove binding (let GM give it to another player later)
if (player == playerTarget)
@@ -420,7 +420,7 @@ namespace Game.Chat
InventoryResult msg = playerTarget.CanStoreNewItem(ItemConst.NullBag, ItemConst.NullSlot, dest, template.Value.GetId(), 1);
if (msg == InventoryResult.Ok)
{
- Item item = playerTarget.StoreNewItem(dest, template.Value.GetId(), true, ItemRandomEnchantmentId.Empty, null, 0, bonusListIDs);
+ Item item = playerTarget.StoreNewItem(dest, template.Value.GetId(), true, 0, null, 0, bonusListIDs);
// remove binding (let GM give it to another player later)
if (player == playerTarget)
@@ -451,7 +451,7 @@ namespace Game.Chat
{
if (args.Empty())
{
- if (handler.GetSession().GetPlayer().HasFlag(PlayerFields.Flags, PlayerFlags.Developer))
+ if (handler.GetSession().GetPlayer().HasPlayerFlag(PlayerFlags.Developer))
handler.GetSession().SendNotification(CypherStrings.DevOn);
else
handler.GetSession().SendNotification(CypherStrings.DevOff);
@@ -462,14 +462,14 @@ namespace Game.Chat
if (argstr == "on")
{
- handler.GetSession().GetPlayer().SetFlag(PlayerFields.Flags, PlayerFlags.Developer);
+ handler.GetSession().GetPlayer().HasPlayerFlag(PlayerFlags.Developer);
handler.GetSession().SendNotification(CypherStrings.DevOn);
return true;
}
if (argstr == "off")
{
- handler.GetSession().GetPlayer().RemoveFlag(PlayerFields.Flags, PlayerFlags.Developer);
+ handler.GetSession().GetPlayer().RemovePlayerFlag(PlayerFlags.Developer);
handler.GetSession().SendNotification(CypherStrings.DevOff);
return true;
}
@@ -1181,16 +1181,15 @@ namespace Game.Chat
return false;
}
- int offset = area.AreaBit / 32;
+ uint offset = (uint)area.AreaBit / 64;
if (offset >= PlayerConst.ExploredZonesSize)
{
handler.SendSysMessage(CypherStrings.BadValue);
return false;
}
- uint val = (1u << (area.AreaBit % 32));
- uint currFields = playerTarget.GetUInt32Value(ActivePlayerFields.ExploredZones + offset);
- playerTarget.SetUInt32Value(ActivePlayerFields.ExploredZones + offset, (currFields | val));
+ ulong val = 1ul << (area.AreaBit % 64);
+ playerTarget.AddExploredZones(offset, val);
handler.SendSysMessage(CypherStrings.ExploreArea);
return true;
@@ -1222,16 +1221,15 @@ namespace Game.Chat
return false;
}
- int offset = area.AreaBit / 32;
+ uint offset = (uint)area.AreaBit / 64;
if (offset >= PlayerConst.ExploredZonesSize)
{
handler.SendSysMessage(CypherStrings.BadValue);
return false;
}
- uint val = (1u << (area.AreaBit % 32));
- uint currFields = playerTarget.GetUInt32Value(ActivePlayerFields.ExploredZones + offset);
- playerTarget.SetUInt32Value(ActivePlayerFields.ExploredZones + offset, (currFields ^ val));
+ uint val = (1u << (area.AreaBit % 64));
+ playerTarget.RemoveExploredZones(offset, val);
handler.SendSysMessage(CypherStrings.UnexploreArea);
return true;
@@ -1404,7 +1402,7 @@ namespace Game.Chat
mapId = target.GetMapId();
areaId = target.GetAreaId();
alive = target.IsAlive() ? handler.GetCypherString(CypherStrings.Yes) : handler.GetCypherString(CypherStrings.No);
- gender = (Gender)target.GetByteValue(PlayerFields.Bytes3, PlayerFieldOffsets.Bytes3OffsetGender);
+ gender = (Gender)(byte)target.m_playerData.NativeSex;
}
// get additional information from DB
else
@@ -1996,7 +1994,7 @@ namespace Game.Chat
}
go.ModifyHealth(-damage, player);
- handler.SendSysMessage(CypherStrings.GameobjectDamaged, go.GetName(), guidLow, -damage, go.m_goValue.Building.Health);
+ handler.SendSysMessage(CypherStrings.GameobjectDamaged, go.GetName(), guidLow, -damage, go.GetGoValue().Building.Health);
}
return true;
diff --git a/Source/Game/Chat/Commands/ModifyCommands.cs b/Source/Game/Chat/Commands/ModifyCommands.cs
index ce92212ab..a0f51b631 100644
--- a/Source/Game/Chat/Commands/ModifyCommands.cs
+++ b/Source/Game/Chat/Commands/ModifyCommands.cs
@@ -122,22 +122,22 @@ namespace Game.Chat
if (!uint.TryParse(pfactionid, out uint factionid))
{
- uint _factionid = target.getFaction();
- uint _flag = target.GetUInt32Value(UnitFields.Flags);
- ulong _npcflag = target.GetUInt64Value(UnitFields.NpcFlags);
- uint _dyflag = target.GetUInt32Value(ObjectFields.DynamicFlags);
+ uint _factionid = target.GetFaction();
+ uint _flag = target.m_unitData.Flags;
+ ulong _npcflag = (ulong)target.m_unitData.NpcFlags[0] << 32 | target.m_unitData.NpcFlags[1];
+ uint _dyflag = target.m_objectData.DynamicFlags;
handler.SendSysMessage(CypherStrings.CurrentFaction, target.GetGUID().ToString(), _factionid, _flag, _npcflag, _dyflag);
return true;
}
if (!uint.TryParse(args.NextString(), out uint flag))
- flag = target.GetUInt32Value(UnitFields.Flags);
+ flag = target.m_unitData.Flags;
if (!ulong.TryParse(args.NextString(), out ulong npcflag))
- npcflag = target.GetUInt64Value(UnitFields.NpcFlags);
+ npcflag = (ulong)target.m_unitData.NpcFlags[0] << 32 | target.m_unitData.NpcFlags[1];
if (!uint.TryParse(args.NextString(), out uint dyflag))
- dyflag = target.GetUInt32Value(ObjectFields.DynamicFlags);
+ dyflag = target.m_objectData.DynamicFlags;
if (!CliDB.FactionTemplateStorage.ContainsKey(factionid))
{
@@ -148,9 +148,10 @@ namespace Game.Chat
handler.SendSysMessage(CypherStrings.YouChangeFaction, target.GetGUID().ToString(), factionid, flag, npcflag, dyflag);
target.SetFaction(factionid);
- target.SetUInt32Value(UnitFields.Flags, flag);
- target.SetUInt64Value(UnitFields.NpcFlags, npcflag);
- target.SetUInt32Value(ObjectFields.DynamicFlags, dyflag);
+ target.SetUnitFlags((UnitFlags)flag);
+ target.SetNpcFlags((NPCFlags)(npcflag & 0xFFFFFFFF));
+ target.SetNpcFlags2((NPCFlags2)(npcflag >> 32));
+ target.SetDynamicFlags((UnitDynFlags)dyflag);
return true;
}
@@ -217,7 +218,7 @@ namespace Game.Chat
NotifyModification(handler, target, CypherStrings.YouChangeSize, CypherStrings.YoursSizeChanged, Scale);
Creature creatureTarget = target.ToCreature();
if (creatureTarget)
- creatureTarget.SetFloatValue(UnitFields.DisplayScale, Scale);
+ creatureTarget.SetDisplayId(creatureTarget.GetDisplayId(), Scale);
else
target.SetObjectScale(Scale);
return true;
@@ -322,51 +323,6 @@ namespace Game.Chat
return true;
}
- [Command("bit", RBACPermissions.CommandModifyBit)]
- static bool HandleModifyBitCommand(StringArguments args, CommandHandler handler)
- {
- if (args.Empty())
- return false;
-
- Unit target = handler.getSelectedUnit();
- if (!target)
- {
- handler.SendSysMessage(CypherStrings.NoCharSelected);
-
- return false;
- }
-
- // check online security
- if (target.IsTypeId(TypeId.Player) && handler.HasLowerSecurity(target.ToPlayer(), ObjectGuid.Empty))
- return false;
-
- ushort field = args.NextUInt16();
- int bit = args.NextInt32();
-
- if (field < (int)ObjectFields.End || field >= target.valuesCount)
- {
- handler.SendSysMessage(CypherStrings.BadValue);
- return false;
- }
- if (bit < 1 || bit > 32)
- {
- handler.SendSysMessage(CypherStrings.BadValue);
- return false;
- }
-
- if (target.HasFlag(field, (1 << (bit - 1))))
- {
- target.RemoveFlag(field, (1 << (bit - 1)));
- handler.SendSysMessage(CypherStrings.RemoveBit, bit, field);
- }
- else
- {
- target.SetFlag(field, (1 << (bit - 1)));
- handler.SendSysMessage(CypherStrings.SetBit, bit, field);
- }
- return true;
- }
-
[Command("honor", RBACPermissions.CommandModifyHonor)]
static bool HandleModifyHonorCommand(StringArguments args, CommandHandler handler)
{
@@ -591,7 +547,7 @@ namespace Game.Chat
return false;
uint anim_id = args.NextUInt32();
- handler.GetSession().GetPlayer().SetUInt32Value(UnitFields.NpcEmotestate, anim_id);
+ handler.GetSession().GetPlayer().SetEmoteState((Emote)anim_id);
return true;
}
@@ -637,8 +593,8 @@ namespace Game.Chat
}
// Set gender
- target.SetByteValue(UnitFields.Bytes0, 3, (byte)gender);
- target.SetByteValue(PlayerFields.Bytes3, PlayerFieldOffsets.Bytes3OffsetGender, (byte)gender);
+ target.SetGender(gender);
+ target.SetNativeSex(gender);
// Change display ID
target.InitDisplayIds();
diff --git a/Source/Game/Chat/Commands/NPCCommands.cs b/Source/Game/Chat/Commands/NPCCommands.cs
index be10f6abf..68fa348fe 100644
--- a/Source/Game/Chat/Commands/NPCCommands.cs
+++ b/Source/Game/Chat/Commands/NPCCommands.cs
@@ -44,8 +44,8 @@ namespace Game.Chat
CreatureTemplate cInfo = target.GetCreatureTemplate();
- uint faction = target.getFaction();
- ulong npcflags = target.GetUInt64Value(UnitFields.NpcFlags);
+ uint faction = target.GetFaction();
+ ulong npcflags = (ulong)target.m_unitData.NpcFlags[0] << 32 | target.m_unitData.NpcFlags[1];
uint mechanicImmuneMask = cInfo.MechanicImmuneMask;
uint displayid = target.GetDisplayId();
uint nativeid = target.GetNativeDisplayId();
@@ -63,22 +63,22 @@ namespace Game.Chat
handler.SendSysMessage(CypherStrings.NpcinfoHealth, target.GetCreateHealth(), target.GetMaxHealth(), target.GetHealth());
handler.SendSysMessage(CypherStrings.NpcinfoInhabitType, cInfo.InhabitType);
- handler.SendSysMessage(CypherStrings.NpcinfoUnitFieldFlags, target.GetUInt32Value(UnitFields.Flags));
- foreach (uint value in Enum.GetValues(typeof(UnitFlags)))
- if (target.GetUInt32Value(UnitFields.Flags).HasAnyFlag(value))
+ handler.SendSysMessage(CypherStrings.NpcinfoUnitFieldFlags, target.m_unitData.Flags);
+ foreach (UnitFlags value in Enum.GetValues(typeof(UnitFlags)))
+ if (target.HasUnitFlag(value))
handler.SendSysMessage("{0} (0x{1:X})", (UnitFlags)value, value);
- handler.SendSysMessage(CypherStrings.NpcinfoUnitFieldFlags2, target.GetUInt32Value(UnitFields.Flags2));
- foreach (uint value in Enum.GetValues(typeof(UnitFlags2)))
- if (target.GetUInt32Value(UnitFields.Flags2).HasAnyFlag(value))
+ handler.SendSysMessage(CypherStrings.NpcinfoUnitFieldFlags2, target.m_unitData.Flags2);
+ foreach (UnitFlags2 value in Enum.GetValues(typeof(UnitFlags2)))
+ if (target.HasUnitFlag2(value))
handler.SendSysMessage("{0} (0x{1:X})", (UnitFlags2)value, value);
- handler.SendSysMessage(CypherStrings.NpcinfoUnitFieldFlags3, target.GetUInt32Value(UnitFields.Flags3));
- foreach (uint value in Enum.GetValues(typeof(UnitFlags3)))
- if (target.GetUInt32Value(UnitFields.Flags3).HasAnyFlag(value))
+ handler.SendSysMessage(CypherStrings.NpcinfoUnitFieldFlags3, target.m_unitData.Flags3);
+ foreach (UnitFlags3 value in Enum.GetValues(typeof(UnitFlags3)))
+ if (target.HasUnitFlag3(value))
handler.SendSysMessage("{0} (0x{1:X})", (UnitFlags3)value, value);
- handler.SendSysMessage(CypherStrings.NpcinfoDynamicFlags, target.GetUInt32Value(ObjectFields.DynamicFlags));
+ handler.SendSysMessage(CypherStrings.NpcinfoDynamicFlags, target.GetDynamicFlags());
handler.SendSysMessage(CypherStrings.CommandRawpawntimes, defRespawnDelayStr, curRespawnDelayStr);
handler.SendSysMessage(CypherStrings.NpcinfoLoot, cInfo.LootId, cInfo.PickPocketId, cInfo.SkinLootId);
handler.SendSysMessage(CypherStrings.NpcinfoDungeonId, target.GetInstanceId());
@@ -243,7 +243,7 @@ namespace Game.Chat
return false;
}
- target.SetUInt32Value(UnitFields.NpcEmotestate, emote);
+ target.SetEmoteState((Emote)emote);
return true;
}
@@ -402,13 +402,13 @@ namespace Game.Chat
uint level = (creatureTarget.getLevel() < (player.getLevel() - 5)) ? (player.getLevel() - 5) : creatureTarget.getLevel();
// prepare visual effect for levelup
- pet.SetUInt32Value(UnitFields.Level, level - 1);
+ pet.SetLevel(level - 1);
// add to world
pet.GetMap().AddToMap(pet.ToCreature());
// visual effect for levelup
- pet.SetUInt32Value(UnitFields.Level, level);
+ pet.SetLevel(level);
// caster have pet now
player.SetMinion(pet, true);
@@ -685,7 +685,8 @@ namespace Game.Chat
return false;
}
- creature.SetUInt64Value(UnitFields.NpcFlags, npcFlags);
+ creature.SetNpcFlags((NPCFlags)(npcFlags & 0xFFFFFFFF));
+ creature.SetNpcFlags2((NPCFlags2)(npcFlags >> 32));
PreparedStatement stmt = DB.World.GetPreparedStatement(WorldStatements.UPD_CREATURE_NPCFLAG);
stmt.AddValue(0, npcFlags);
diff --git a/Source/Game/Chat/Commands/PetCommands.cs b/Source/Game/Chat/Commands/PetCommands.cs
index f852490b2..c15243c96 100644
--- a/Source/Game/Chat/Commands/PetCommands.cs
+++ b/Source/Game/Chat/Commands/PetCommands.cs
@@ -63,8 +63,8 @@ namespace Game.Chat
creatureTarget.RemoveCorpse();
creatureTarget.SetHealth(0); // just for nice GM-mode view
- pet.SetGuidValue(UnitFields.CreatedBy, player.GetGUID());
- pet.SetUInt32Value(UnitFields.FactionTemplate, player.getFaction());
+ pet.SetCreatorGUID(player.GetGUID());
+ pet.SetFaction(player.GetFaction());
if (!pet.InitStatsForLevel(creatureTarget.getLevel()))
{
@@ -74,7 +74,7 @@ namespace Game.Chat
}
// prepare visual effect for levelup
- pet.SetUInt32Value(UnitFields.Level, creatureTarget.getLevel() - 1);
+ pet.SetLevel(creatureTarget.getLevel() - 1);
pet.GetCharmInfo().SetPetNumber(Global.ObjectMgr.GeneratePetNumber(), true);
// this enables pet details window (Shift+P)
@@ -84,7 +84,7 @@ namespace Game.Chat
pet.GetMap().AddToMap(pet.ToCreature());
// visual effect for levelup
- pet.SetUInt32Value(UnitFields.Level, creatureTarget.getLevel());
+ pet.SetLevel(creatureTarget.getLevel());
player.SetMinion(pet, true);
pet.SavePetToDB(PetSaveMode.AsCurrent);
diff --git a/Source/Game/Chat/Commands/ReloadCommand.cs b/Source/Game/Chat/Commands/ReloadCommand.cs
index 9db4740e5..518482d18 100644
--- a/Source/Game/Chat/Commands/ReloadCommand.cs
+++ b/Source/Game/Chat/Commands/ReloadCommand.cs
@@ -395,12 +395,12 @@ namespace Game.Chat
return true;
}
- [Command("item_enchantment_template", RBACPermissions.CommandReloadItemEnchantmentTemplate, true)]
- static bool HandleReloadItemEnchantementsCommand(StringArguments args, CommandHandler handler)
+ [Command("item_random_bonus_list_template", RBACPermissions.CommandReloadItemRandomBonusListTemplate, true)]
+ static bool HandleReloadItemRandomBonusListTemplatesCommand(StringArguments args, CommandHandler handler)
{
- Log.outInfo(LogFilter.Server, "Re-Loading Item Random Enchantments Table...");
- ItemEnchantment.LoadRandomEnchantmentsTable();
- handler.SendGlobalGMSysMessage("DB table `item_enchantment_template` reloaded.");
+ Log.outInfo(LogFilter.Server, "Re-Loading Random item bonus list definitions...");
+ ItemEnchantmentManager.LoadItemRandomBonusListTemplates();
+ handler.SendGlobalGMSysMessage("DB table `item_random_bonus_list_template` reloaded.");
return true;
}
@@ -1015,7 +1015,7 @@ namespace Game.Chat
static bool HandleReloadAllItemCommand(StringArguments args, CommandHandler handler)
{
HandleReloadPageTextsCommand(null, handler);
- HandleReloadItemEnchantementsCommand(null, handler);
+ HandleReloadItemRandomBonusListTemplatesCommand(null, handler);
return true;
}
diff --git a/Source/Game/Chat/Commands/ResetCommands.cs b/Source/Game/Chat/Commands/ResetCommands.cs
index 100c8d2f3..f5e27b2a9 100644
--- a/Source/Game/Chat/Commands/ResetCommands.cs
+++ b/Source/Game/Chat/Commands/ResetCommands.cs
@@ -51,8 +51,7 @@ namespace Game.Chat
if (!handler.extractPlayerTarget(args, out target))
return false;
- target.SetUInt32Value(ActivePlayerFields.Kills, 0);
- target.SetUInt32Value(ActivePlayerFields.LifetimeHonorableKills, 0);
+ target.ResetHonorStats();
target.UpdateCriteria(CriteriaTypes.EarnHonorableKill);
return true;
@@ -74,18 +73,18 @@ namespace Game.Chat
player.SetShapeshiftForm(ShapeShiftForm.None);
player.setFactionForRace(player.GetRace());
- player.SetUInt32Value(UnitFields.DisplayPower, (uint)powerType);
+ player.SetPowerType(powerType);
// reset only if player not in some form;
if (player.GetShapeshiftForm() == ShapeShiftForm.None)
player.InitDisplayIds();
- player.SetByteValue(UnitFields.Bytes2, UnitBytes2Offsets.PvpFlag, (byte)UnitBytes2Flags.PvP);
+ player.SetPvpFlags(UnitPVPStateFlags.PvP);
- player.SetUInt32Value(UnitFields.Flags, (uint)UnitFlags.PvpAttackable);
+ player.SetUnitFlags(UnitFlags.PvpAttackable);
//-1 is default value
- player.SetUInt32Value(ActivePlayerFields.WatchedFactionIndex, 0xFFFFFFFF);
+ player.SetWatchedFactionIndex(0xFFFFFFFF);
return true;
}
@@ -110,7 +109,7 @@ namespace Game.Chat
target.InitStatsForLevel(true);
target.InitTaxiNodesForLevel();
target.InitTalentForLevel();
- target.SetUInt32Value(ActivePlayerFields.Xp, 0);
+ target.SetXP(0);
target._ApplyAllLevelScaleItemMods(true);
diff --git a/Source/Game/Chat/Commands/TitleCommands.cs b/Source/Game/Chat/Commands/TitleCommands.cs
index 32ffbaf51..d8f874540 100644
--- a/Source/Game/Chat/Commands/TitleCommands.cs
+++ b/Source/Game/Chat/Commands/TitleCommands.cs
@@ -62,7 +62,7 @@ namespace Game.Chat.Commands
string tNameLink = handler.GetNameLink(target);
target.SetTitle(titleInfo); // to be sure that title now known
- target.SetUInt32Value(PlayerFields.ChosenTitle, titleInfo.MaskID);
+ target.SetChosenTitle(titleInfo.MaskID);
handler.SendSysMessage(CypherStrings.TitleCurrentRes, id, (target.GetGender() == Gender.Male ? titleInfo.Name : titleInfo.Name1)[handler.GetSessionDbcLocale()], tNameLink);
return true;
@@ -150,9 +150,9 @@ namespace Game.Chat.Commands
handler.SendSysMessage(CypherStrings.TitleRemoveRes, id, titleNameStr, tNameLink);
- if (!target.HasTitle(target.GetUInt32Value(PlayerFields.ChosenTitle)))
+ if (!target.HasTitle(target.m_playerData.PlayerTitle))
{
- target.SetUInt32Value(PlayerFields.ChosenTitle, 0);
+ target.SetChosenTitle(0);
handler.SendSysMessage(CypherStrings.CurrentTitleReset, tNameLink);
}
@@ -189,12 +189,12 @@ namespace Game.Chat.Commands
titles &= ~titles2; // remove not existed titles
- target.SetUInt64Value(ActivePlayerFields.KnownTitles, titles);
+ target.SetKnownTitles(0, titles);
handler.SendSysMessage(CypherStrings.Done);
- if (!target.HasTitle(target.GetUInt32Value(PlayerFields.ChosenTitle)))
+ if (!target.HasTitle(target.m_playerData.PlayerTitle))
{
- target.SetUInt32Value(PlayerFields.ChosenTitle, 0);
+ target.SetChosenTitle(0);
handler.SendSysMessage(CypherStrings.CurrentTitleReset, handler.GetNameLink(target));
}
diff --git a/Source/Game/Conditions/ConditionManager.cs b/Source/Game/Conditions/ConditionManager.cs
index 320132aba..6defd27b2 100644
--- a/Source/Game/Conditions/ConditionManager.cs
+++ b/Source/Game/Conditions/ConditionManager.cs
@@ -1689,7 +1689,7 @@ namespace Game
if (condition.Gender >= 0 && (int)player.GetGender() != condition.Gender)
return false;
- if (condition.NativeGender >= 0 && player.GetByteValue(PlayerFields.Bytes3, PlayerFieldOffsets.Bytes3OffsetGender) != condition.NativeGender)
+ if (condition.NativeGender >= 0 && player.m_playerData.NativeSex != condition.NativeGender)
return false;
if (condition.PowerType != -1 && condition.PowerTypeComp != 0)
@@ -1701,7 +1701,7 @@ namespace Game
if (condition.ChrSpecializationIndex >= 0 || condition.ChrSpecializationRole >= 0)
{
- ChrSpecializationRecord spec = CliDB.ChrSpecializationStorage.LookupByKey(player.GetUInt32Value(PlayerFields.CurrentSpecId));
+ ChrSpecializationRecord spec = CliDB.ChrSpecializationStorage.LookupByKey(player.GetPrimarySpecialization());
if (spec != null)
{
if (condition.ChrSpecializationIndex >= 0 && spec.OrderIndex != condition.ChrSpecializationIndex)
@@ -1785,10 +1785,10 @@ namespace Game
}
}
- if (condition.PvpMedal != 0 && !Convert.ToBoolean((1 << (condition.PvpMedal - 1)) & player.GetUInt32Value(ActivePlayerFields.PvpMedals)))
+ if (condition.PvpMedal != 0 && !Convert.ToBoolean((1 << (condition.PvpMedal - 1)) & player.m_activePlayerData.PvpMedals))
return false;
- if (condition.LifetimeMaxPVPRank != 0 && player.GetByteValue(ActivePlayerFields.Bytes, PlayerFieldOffsets.FieldBytesOffsetLifetimeMaxPvpRank) != condition.LifetimeMaxPVPRank)
+ if (condition.LifetimeMaxPVPRank != 0 && player.m_activePlayerData.LifetimeMaxRank != condition.LifetimeMaxPVPRank)
return false;
if (condition.MovementFlags[0] != 0 && !Convert.ToBoolean((uint)player.GetUnitMovementFlags() & condition.MovementFlags[0]))
@@ -1841,7 +1841,7 @@ namespace Game
{
uint questBit = Global.DB2Mgr.GetQuestUniqueBitFlag(condition.PrevQuestID[i]);
if (questBit != 0)
- results[i] = (player.GetUInt32Value(ActivePlayerFields.QuestCompleted + (int)((questBit - 1) >> 5)) & (1 << (int)((questBit - 1) & 31))) != 0;
+ results[i] = (player.m_activePlayerData.QuestCompleted[((int)questBit - 1) >> 6] & (1ul << (((int)questBit - 1) & 63))) != 0;
}
if (!PlayerConditionLogic(condition.PrevQuestLogic, results))
@@ -1920,7 +1920,7 @@ namespace Game
{
AreaTableRecord area = CliDB.AreaTableStorage.LookupByKey(condition.Explored[i]);
if (area != null)
- if (area.AreaBit != -1 && !Convert.ToBoolean(player.GetUInt32Value(ActivePlayerFields.ExploredZones + area.AreaBit / 32) & (1 << (area.AreaBit % 32))))
+ if (area.AreaBit != -1 && !Convert.ToBoolean(player.m_activePlayerData.ExploredZones[area.AreaBit / 64] & (1ul << ((int)area.AreaBit % 64))))
return false;
}
}
@@ -2014,16 +2014,16 @@ namespace Game
}
}
- if (condition.MinAvgItemLevel != 0 && Math.Floor(player.GetFloatValue(PlayerFields.AvgItemLevel)) < condition.MinAvgItemLevel)
+ if (condition.MinAvgItemLevel != 0 && Math.Floor(player.m_playerData.AvgItemLevel[0]) < condition.MinAvgItemLevel)
return false;
- if (condition.MaxAvgItemLevel != 0 && Math.Floor(player.GetFloatValue(PlayerFields.AvgItemLevel)) > condition.MaxAvgItemLevel)
+ if (condition.MaxAvgItemLevel != 0 && Math.Floor(player.m_playerData.AvgItemLevel[0]) > condition.MaxAvgItemLevel)
return false;
- if (condition.MinAvgEquippedItemLevel != 0 && Math.Floor(player.GetFloatValue(PlayerFields.AvgItemLevel + 1)) < condition.MinAvgEquippedItemLevel)
+ if (condition.MinAvgEquippedItemLevel != 0 && Math.Floor(player.m_playerData.AvgItemLevel[1]) < condition.MinAvgEquippedItemLevel)
return false;
- if (condition.MaxAvgEquippedItemLevel != 0 && Math.Floor(player.GetFloatValue(PlayerFields.AvgItemLevel + 1)) > condition.MaxAvgEquippedItemLevel)
+ if (condition.MaxAvgEquippedItemLevel != 0 && Math.Floor(player.m_playerData.AvgItemLevel[1]) > condition.MaxAvgEquippedItemLevel)
return false;
if (condition.ModifierTreeID != 0 && !player.ModifierTreeSatisfied(condition.ModifierTreeID))
diff --git a/Source/Game/DataStorage/CliDB.cs b/Source/Game/DataStorage/CliDB.cs
index fa64ef6ca..bc14b12fe 100644
--- a/Source/Game/DataStorage/CliDB.cs
+++ b/Source/Game/DataStorage/CliDB.cs
@@ -76,6 +76,7 @@ namespace Game.DataStorage
CinematicCameraStorage = DBReader.Read("CinematicCamera.db2", HotfixStatements.SEL_CINEMATIC_CAMERA);
CinematicSequencesStorage = DBReader.Read("CinematicSequences.db2", HotfixStatements.SEL_CINEMATIC_SEQUENCES);
ContentTuningStorage = DBReader.Read("ContentTuning.db2", HotfixStatements.SEL_CONTENT_TUNING);
+ ContentTuningXExpectedStorage = DBReader.Read("ContentTuningXExpected.db2", HotfixStatements.SEL_CONTENT_TUNING_X_EXPECTED);
ConversationLineStorage = DBReader.Read("ConversationLine.db2", HotfixStatements.SEL_CONVERSATION_LINE);
CreatureDisplayInfoStorage = DBReader.Read("CreatureDisplayInfo.db2", HotfixStatements.SEL_CREATURE_DISPLAY_INFO);
CreatureDisplayInfoExtraStorage = DBReader.Read("CreatureDisplayInfoExtra.db2", HotfixStatements.SEL_CREATURE_DISPLAY_INFO_EXTRA);
@@ -153,8 +154,6 @@ namespace Game.DataStorage
ItemLimitCategoryConditionStorage = DBReader.Read("ItemLimitCategoryCondition.db2", HotfixStatements.SEL_ITEM_LIMIT_CATEGORY_CONDITION);
ItemModifiedAppearanceStorage = DBReader.Read("ItemModifiedAppearance.db2", HotfixStatements.SEL_ITEM_MODIFIED_APPEARANCE);
ItemPriceBaseStorage = DBReader.Read("ItemPriceBase.db2", HotfixStatements.SEL_ITEM_PRICE_BASE);
- ItemRandomPropertiesStorage = DBReader.Read("ItemRandomProperties.db2", HotfixStatements.SEL_ITEM_RANDOM_PROPERTIES, HotfixStatements.SEL_ITEM_RANDOM_PROPERTIES_LOCALE);
- ItemRandomSuffixStorage = DBReader.Read("ItemRandomSuffix.db2", HotfixStatements.SEL_ITEM_RANDOM_SUFFIX, HotfixStatements.SEL_ITEM_RANDOM_SUFFIX_LOCALE);
ItemSearchNameStorage = DBReader.Read("ItemSearchName.db2", HotfixStatements.SEL_ITEM_SEARCH_NAME, HotfixStatements.SEL_ITEM_SEARCH_NAME_LOCALE);
ItemSetStorage = DBReader.Read("ItemSet.db2", HotfixStatements.SEL_ITEM_SET, HotfixStatements.SEL_ITEM_SET_LOCALE);
ItemSetSpellStorage = DBReader.Read("ItemSetSpell.db2", HotfixStatements.SEL_ITEM_SET_SPELL);
@@ -324,13 +323,13 @@ namespace Game.DataStorage
}
// Check loaded DB2 files proper version
- if (!AreaTableStorage.ContainsKey(10048) || // last area added in 8.0.1 (28153)
- !CharTitlesStorage.ContainsKey(633) || // last char title added in 8.0.1 (28153)
- !GemPropertiesStorage.ContainsKey(3745) || // last gem property added in 8.0.1 (28153)
- !ItemStorage.ContainsKey(164760) || // last item added in 8.0.1 (28153)
- !ItemExtendedCostStorage.ContainsKey(6448) || // last item extended cost added in 8.0.1 (28153)
- !MapStorage.ContainsKey(2103) || // last map added in 8.0.1 (28153)
- !SpellNameStorage.ContainsKey(281872)) // last spell added in 8.0.1 (28153)
+ if (!AreaTableStorage.ContainsKey(10521) || // last area added in 8.0.1 (28153)
+ !CharTitlesStorage.ContainsKey(649) || // last char title added in 8.0.1 (28153)
+ !GemPropertiesStorage.ContainsKey(3746) || // last gem property added in 8.0.1 (28153)
+ !ItemStorage.ContainsKey(168279) || // last item added in 8.0.1 (28153)
+ !ItemExtendedCostStorage.ContainsKey(6545) || // last item extended cost added in 8.0.1 (28153)
+ !MapStorage.ContainsKey(2178) || // last map added in 8.0.1 (28153)
+ !SpellNameStorage.ContainsKey(296952)) // last spell added in 8.0.1 (28153)
{
Log.outError(LogFilter.Misc, "You have _outdated_ DB2 files. Please extract correct versions from current using client.");
Global.WorldMgr.ShutdownServ(10, ShutdownMask.Force, ShutdownExitCode.Error);
@@ -420,6 +419,7 @@ namespace Game.DataStorage
public static DB6Storage CinematicCameraStorage;
public static DB6Storage CinematicSequencesStorage;
public static DB6Storage ContentTuningStorage;
+ public static DB6Storage ContentTuningXExpectedStorage;
public static DB6Storage ConversationLineStorage;
public static DB6Storage CreatureDisplayInfoStorage;
public static DB6Storage CreatureDisplayInfoExtraStorage;
@@ -497,8 +497,6 @@ namespace Game.DataStorage
public static DB6Storage ItemLimitCategoryConditionStorage;
public static DB6Storage ItemModifiedAppearanceStorage;
public static DB6Storage ItemPriceBaseStorage;
- public static DB6Storage ItemRandomPropertiesStorage;
- public static DB6Storage ItemRandomSuffixStorage;
public static DB6Storage ItemSearchNameStorage;
public static DB6Storage ItemSetStorage;
public static DB6Storage ItemSetSpellStorage;
@@ -725,6 +723,8 @@ namespace Game.DataStorage
return row.Health;
case -8:
return row.DamageReplaceStat;
+ case -9:
+ return row.DamageSecondary;
default:
break;
}
diff --git a/Source/Game/DataStorage/ClientReader/DB6Storage.cs b/Source/Game/DataStorage/ClientReader/DB6Storage.cs
index 316fac45b..b415ab04b 100644
--- a/Source/Game/DataStorage/ClientReader/DB6Storage.cs
+++ b/Source/Game/DataStorage/ClientReader/DB6Storage.cs
@@ -232,34 +232,34 @@ namespace Game.DataStorage
switch (Type.GetTypeCode(type))
{
case TypeCode.Boolean:
- buffer.WriteUInt8(fieldInfo.GetValue(entry));
+ buffer.WriteUInt8((byte)((bool)fieldInfo.GetValue(entry) ? 1 : 0));
break;
case TypeCode.SByte:
- buffer.WriteInt8(fieldInfo.GetValue(entry));
+ buffer.WriteInt8((sbyte)fieldInfo.GetValue(entry));
break;
case TypeCode.Byte:
- buffer.WriteUInt8(fieldInfo.GetValue(entry));
+ buffer.WriteUInt8((byte)fieldInfo.GetValue(entry));
break;
case TypeCode.Int16:
- buffer.WriteInt16(fieldInfo.GetValue(entry));
+ buffer.WriteInt16((short)fieldInfo.GetValue(entry));
break;
case TypeCode.UInt16:
- buffer.WriteUInt16(fieldInfo.GetValue(entry));
+ buffer.WriteUInt16((ushort)fieldInfo.GetValue(entry));
break;
case TypeCode.Int32:
- buffer.WriteInt32(fieldInfo.GetValue(entry));
+ buffer.WriteInt32((int)fieldInfo.GetValue(entry));
break;
case TypeCode.UInt32:
- buffer.WriteUInt32(fieldInfo.GetValue(entry));
+ buffer.WriteUInt32((uint)fieldInfo.GetValue(entry));
break;
case TypeCode.Int64:
- buffer.WriteInt64(fieldInfo.GetValue(entry));
+ buffer.WriteInt64((long)fieldInfo.GetValue(entry));
break;
case TypeCode.UInt64:
- buffer.WriteUInt64(fieldInfo.GetValue(entry));
+ buffer.WriteUInt64((ulong)fieldInfo.GetValue(entry));
break;
case TypeCode.Single:
- buffer.WriteFloat(fieldInfo.GetValue(entry));
+ buffer.WriteFloat((float)fieldInfo.GetValue(entry));
break;
case TypeCode.Object:
switch (type.Name)
@@ -294,34 +294,34 @@ namespace Game.DataStorage
switch (Type.GetTypeCode(type))
{
case TypeCode.Boolean:
- buffer.WriteUInt8(array.GetValue(i));
+ buffer.WriteUInt8((byte)((bool)array.GetValue(i) ? 1 : 0));
break;
case TypeCode.SByte:
- buffer.WriteInt8(array.GetValue(i));
+ buffer.WriteInt8((sbyte)array.GetValue(i));
break;
case TypeCode.Byte:
- buffer.WriteUInt8(array.GetValue(i));
+ buffer.WriteUInt8((byte)array.GetValue(i));
break;
case TypeCode.Int16:
- buffer.WriteInt16(array.GetValue(i));
+ buffer.WriteInt16((short)array.GetValue(i));
break;
case TypeCode.UInt16:
- buffer.WriteUInt16(array.GetValue(i));
+ buffer.WriteUInt16((ushort)array.GetValue(i));
break;
case TypeCode.Int32:
- buffer.WriteInt32(array.GetValue(i));
+ buffer.WriteInt32((int)array.GetValue(i));
break;
case TypeCode.UInt32:
- buffer.WriteUInt32(array.GetValue(i));
+ buffer.WriteUInt32((uint)array.GetValue(i));
break;
case TypeCode.Int64:
- buffer.WriteInt64(array.GetValue(i));
+ buffer.WriteInt64((long)array.GetValue(i));
break;
case TypeCode.UInt64:
- buffer.WriteUInt64(array.GetValue(i));
+ buffer.WriteUInt64((ulong)array.GetValue(i));
break;
case TypeCode.Single:
- buffer.WriteFloat(array.GetValue(i));
+ buffer.WriteFloat((float)array.GetValue(i));
break;
case TypeCode.String:
var str = (string)array.GetValue(i);
diff --git a/Source/Game/DataStorage/ClientReader/DBReader.cs b/Source/Game/DataStorage/ClientReader/DBReader.cs
index 3dd07bf8c..2672f4114 100644
--- a/Source/Game/DataStorage/ClientReader/DBReader.cs
+++ b/Source/Game/DataStorage/ClientReader/DBReader.cs
@@ -32,8 +32,8 @@ namespace Game.DataStorage
{
class DBReader
{
- private const int HeaderSize = 72 + 1 * 36;
- private const uint WDC2FmtSig = 0x32434457; // WDC2
+ private const int HeaderSize = 72;
+ private const uint WDC3FmtSig = 0x33434457; // WDC3
public static DB6Storage Read(string fileName, HotfixStatements preparedStatement, HotfixStatements preparedStatementLocale = 0) where T : new()
{
@@ -71,7 +71,7 @@ namespace Game.DataStorage
{
Header = new WDCHeader();
Header.Signature = reader.ReadUInt32();
- if (Header.Signature != WDC2FmtSig)
+ if (Header.Signature != WDC3FmtSig)
return false;
Header.RecordCount = reader.ReadUInt32();
@@ -126,28 +126,41 @@ namespace Game.DataStorage
}
}
+ long previousStringTableSize = 0;
for (int sectionIndex = 0; sectionIndex < Header.SectionsCount; sectionIndex++)
{
+ if (sections[sectionIndex].TactKeyLookup != 0)// && !hasTactKeyFunc(sections[sectionIndex].TactKeyLookup))
+ {
+ previousStringTableSize += sections[sectionIndex].StringTableSize;
+ //Console.WriteLine("Detected db2 with encrypted section! HasKey {0}", CASC.HasKey(Sections[sectionIndex].TactKeyLookup));
+ continue;
+ }
+
reader.BaseStream.Position = sections[sectionIndex].FileOffset;
byte[] recordsData;
Dictionary stringsTable = null;
- List> offsetmap = null;
+ SparseEntry[] sparseEntries = null;
+
if (!Header.HasOffsetTable())
{
// records data
recordsData = reader.ReadBytes((int)(sections[sectionIndex].NumRecords * Header.RecordSize));
- Array.Resize(ref recordsData, recordsData.Length + 8); // pad with extra zeros so we don't crash when reading
-
// string data
stringsTable = new Dictionary();
+ long stringDataOffset = 0;
+ if (sectionIndex == 0)
+ stringDataOffset = (Header.RecordCount - sections[sectionIndex].NumRecords) * Header.RecordSize;
+ else
+ stringDataOffset = previousStringTableSize;
+
for (int i = 0; i < sections[sectionIndex].StringTableSize;)
{
long oldPos = reader.BaseStream.Position;
- stringsTable[oldPos] = reader.ReadCString();
+ stringsTable[oldPos + stringDataOffset] = reader.ReadCString();
i += (int)(reader.BaseStream.Position - oldPos);
}
@@ -159,29 +172,23 @@ namespace Game.DataStorage
if (reader.BaseStream.Position != sections[sectionIndex].SparseTableOffset)
throw new Exception("reader.BaseStream.Position != sections[sectionIndex].SparseTableOffset");
-
- offsetmap = new List>();
- for (int i = 0; i < (Header.MaxId - Header.MinId + 1); i++)
- {
- int offset = reader.ReadInt32();
- short length = reader.ReadInt16();
-
- if (offset == 0 || length == 0)
- continue;
-
- offsetmap.Add(new Tuple(offset, length));
- }
}
+ Array.Resize(ref recordsData, recordsData.Length + 8); // pad with extra zeros so we don't crash when reading
+
// index data
int[] indexData = reader.ReadArray((uint)(sections[sectionIndex].IndexDataSize / 4));
+ bool isIndexEmpty = Header.HasIndexTable() && indexData.Count(i => i == 0) == sections[sectionIndex].NumRecords;
// duplicate rows data
Dictionary copyData = new Dictionary();
- for (int i = 0; i < sections[sectionIndex].CopyTableSize / 8; i++)
+ for (int i = 0; i < sections[sectionIndex].NumCopyRecords; i++)
copyData[reader.ReadInt32()] = reader.ReadInt32();
+ if (sections[sectionIndex].NumSparseRecords > 0)
+ sparseEntries = reader.ReadArray((uint)sections[sectionIndex].NumSparseRecords);
+
// reference data
ReferenceData refData = null;
@@ -208,24 +215,31 @@ namespace Game.DataStorage
};
}
+ if (sections[sectionIndex].NumSparseRecords > 0)
+ {
+ // TODO: use this shit
+ int[] sparseIndexData = reader.ReadArray((uint)sections[sectionIndex].NumSparseRecords);
+
+ if (Header.HasIndexTable() && indexData.Length != sparseIndexData.Length)
+ throw new Exception("indexData.Length != sparseIndexData.Length");
+
+ //indexData = sparseIndexData;
+ }
+
BitReader bitReader = new BitReader(recordsData);
- for (int i = 0; i < Header.RecordCount; ++i)
+ for (int i = 0; i < sections[sectionIndex].NumRecords; ++i)
{
bitReader.Position = 0;
- if (offsetmap != null)
- bitReader.Offset = offsetmap[i].Item1 - sections[sectionIndex].FileOffset;
+ if (Header.HasOffsetTable())
+ bitReader.Offset = sparseEntries[i].Offset - sections[sectionIndex].FileOffset;
else
bitReader.Offset = i * (int)Header.RecordSize;
bool hasRef = refData.Entries.TryGetValue(i, out int refId);
- var rec = new WDC2Row(this, bitReader, sections[sectionIndex].FileOffset, sections[sectionIndex].IndexDataSize != 0 ? indexData[i] : -1, hasRef ? refId : -1, stringsTable);
-
- if (sections[sectionIndex].IndexDataSize != 0)
- _records.Add(indexData[i], rec);
- else
- _records.Add(rec.Id, rec);
+ var rec = new WDC3Row(this, bitReader, sections[sectionIndex].FileOffset, Header.HasIndexTable() ? (isIndexEmpty ? i : indexData[i]) : -1, hasRef ? refId : -1, stringsTable);
+ _records.Add(rec.Id, rec);
}
foreach (var copyRow in copyData)
@@ -234,6 +248,8 @@ namespace Game.DataStorage
rec.Id = copyRow.Key;
_records.Add(copyRow.Key, rec);
}
+
+ previousStringTableSize += sections[sectionIndex].StringTableSize;
}
}
@@ -246,10 +262,10 @@ namespace Game.DataStorage
internal Value32[][] PalletData;
internal Dictionary[] CommonData;
- Dictionary _records = new Dictionary();
+ Dictionary _records = new Dictionary();
}
- class WDC2Row
+ class WDC3Row
{
private BitReader _data;
private int _dataOffset;
@@ -265,7 +281,7 @@ namespace Game.DataStorage
private Dictionary[] _commonData;
private Dictionary _stringsTable;
- public WDC2Row(DBReader reader, BitReader data, int recordsOffset, int id, int refId, Dictionary stringsTable)
+ public WDC3Row(DBReader reader, BitReader data, int recordsOffset, int id, int refId, Dictionary stringsTable)
{
_data = data;
_recordsOffset = recordsOffset;
@@ -553,9 +569,9 @@ namespace Game.DataStorage
return obj;
}
- public WDC2Row Clone()
+ public WDC3Row Clone()
{
- return (WDC2Row)MemberwiseClone();
+ return (WDC3Row)MemberwiseClone();
}
}
@@ -669,14 +685,15 @@ namespace Game.DataStorage
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct SectionHeader
{
- public long TactKeyLookup;
+ public ulong TactKeyLookup;
public int FileOffset;
public int NumRecords;
public int StringTableSize;
- public int CopyTableSize;
public int SparseTableOffset; // CatalogDataOffset, absolute value, {uint offset, ushort size}[MaxId - MinId + 1]
public int IndexDataSize; // int indexData[IndexDataSize / 4]
public int ParentLookupDataSize; // uint NumRecords, uint minId, uint maxId, {uint id, uint index}[NumRecords], questionable usefulness...
+ public int NumSparseRecords;
+ public int NumCopyRecords;
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
diff --git a/Source/Game/DataStorage/DB2Manager.cs b/Source/Game/DataStorage/DB2Manager.cs
index b99974ba3..d0cb33290 100644
--- a/Source/Game/DataStorage/DB2Manager.cs
+++ b/Source/Game/DataStorage/DB2Manager.cs
@@ -136,6 +136,13 @@ namespace Game.DataStorage
_defaultChrSpecializationsByClass[(uint)chrSpec.ClassID] = chrSpec;
}
+ foreach (ContentTuningXExpectedRecord contentTuningXExpectedStat in CliDB.ContentTuningXExpectedStorage.Values)
+ {
+ ExpectedStatModRecord expectedStatMod = CliDB.ExpectedStatModStorage.LookupByKey(contentTuningXExpectedStat.ExpectedStatModID);
+ if (expectedStatMod != null)
+ _expectedStatModsByContentTuning.Add(contentTuningXExpectedStat.ContentTuningID, expectedStatMod);
+ }
+
foreach (CurvePointRecord curvePoint in CliDB.CurvePointStorage.Values)
{
if (CliDB.CurveStorage.ContainsKey(curvePoint.CurveID))
@@ -396,6 +403,12 @@ namespace Game.DataStorage
CliDB.RulesetItemUpgradeStorage.Clear();
+ foreach (SkillLineRecord skill in CliDB.SkillLineStorage.Values)
+ {
+ if (skill.ParentSkillLineID != 0)
+ _skillLinesByParentSkillLine.Add(skill.ParentSkillLineID, skill);
+ }
+
foreach (SkillLineAbilityRecord skillLineAbility in CliDB.SkillLineAbilityStorage.Values)
_skillLineAbilitiesBySkillupSkill.Add(skillLineAbility.SkillupSkillLineID != 0 ? skillLineAbility.SkillupSkillLineID : skillLineAbility.SkillLine, skillLineAbility);
@@ -969,61 +982,93 @@ namespace Game.DataStorage
if (expectedStatRecord == null)
return 1.0f;
- ExpectedStatModRecord[] mods = new ExpectedStatModRecord[3];
- ContentTuningRecord contentTuning = CliDB.ContentTuningStorage.LookupByKey(contentTuningId);
- if (contentTuning != null)
- {
- mods[0] = CliDB.ExpectedStatModStorage.LookupByKey(contentTuning.ExpectedStatModID);
- mods[1] = CliDB.ExpectedStatModStorage.LookupByKey(contentTuning.DifficultyESMID);
- }
+ ExpectedStatModRecord classMod = null;
switch (unitClass)
{
case Class.Warrior:
- mods[2] = CliDB.ExpectedStatModStorage.LookupByKey(4);
+ classMod = CliDB.ExpectedStatModStorage.LookupByKey(4);
break;
case Class.Paladin:
- mods[2] = CliDB.ExpectedStatModStorage.LookupByKey(2);
+ classMod = CliDB.ExpectedStatModStorage.LookupByKey(2);
break;
case Class.Rogue:
- mods[2] = CliDB.ExpectedStatModStorage.LookupByKey(3);
+ classMod = CliDB.ExpectedStatModStorage.LookupByKey(3);
break;
case Class.Mage:
- mods[2] = CliDB.ExpectedStatModStorage.LookupByKey(1);
+ classMod = CliDB.ExpectedStatModStorage.LookupByKey(1);
break;
default:
break;
}
+
+ List contentTuningMods = _expectedStatModsByContentTuning.LookupByKey(contentTuningId);
float value = 0.0f;
switch (stat)
{
case ExpectedStatType.CreatureHealth:
- value = mods.Sum(expectedStatMod => expectedStatRecord.CreatureHealth * (expectedStatMod != null ? expectedStatMod.CreatureHealthMod : 1.0f));
+ value = expectedStatRecord.CreatureHealth;
+ if (contentTuningMods != null)
+ value *= contentTuningMods.Sum(expectedStatMod => expectedStatMod != null ? expectedStatMod.CreatureHealthMod : 1.0f);
+ if (classMod != null)
+ value *= classMod.CreatureHealthMod;
break;
case ExpectedStatType.PlayerHealth:
- value = mods.Sum(expectedStatMod => expectedStatRecord.PlayerHealth * (expectedStatMod != null ? expectedStatMod.PlayerHealthMod : 1.0f));
+ value = expectedStatRecord.PlayerHealth;
+ if (contentTuningMods != null)
+ value *= contentTuningMods.Sum(expectedStatMod => expectedStatMod != null ? expectedStatMod.PlayerHealthMod : 1.0f);
+ if (classMod != null)
+ value *= classMod.PlayerHealthMod;
break;
case ExpectedStatType.CreatureAutoAttackDps:
- value = mods.Sum(expectedStatMod => expectedStatRecord.CreatureAutoAttackDps * (expectedStatMod != null ? expectedStatMod.CreatureAutoAttackDPSMod : 1.0f));
+ value = expectedStatRecord.CreatureAutoAttackDps;
+ if (contentTuningMods != null)
+ value *= contentTuningMods.Sum(expectedStatMod => expectedStatMod != null ? expectedStatMod.CreatureAutoAttackDPSMod : 1.0f);
+ if (classMod != null)
+ value *= classMod.CreatureAutoAttackDPSMod;
break;
case ExpectedStatType.CreatureArmor:
- value = mods.Sum(expectedStatMod => expectedStatRecord.CreatureArmor * (expectedStatMod != null ? expectedStatMod.CreatureArmorMod : 1.0f));
+ value = expectedStatRecord.CreatureArmor;
+ if (contentTuningMods != null)
+ value *= contentTuningMods.Sum(expectedStatMod => expectedStatMod != null ? expectedStatMod.CreatureArmorMod : 1.0f);
+ if (classMod != null)
+ value *= classMod.CreatureArmorMod;
break;
case ExpectedStatType.PlayerMana:
- value = mods.Sum(expectedStatMod => expectedStatRecord.PlayerMana * (expectedStatMod != null ? expectedStatMod.PlayerManaMod : 1.0f));
+ value = expectedStatRecord.PlayerMana;
+ if (contentTuningMods != null)
+ value *= contentTuningMods.Sum(expectedStatMod => expectedStatMod != null ? expectedStatMod.PlayerManaMod : 1.0f);
+ if (classMod != null)
+ value *= classMod.PlayerManaMod;
break;
case ExpectedStatType.PlayerPrimaryStat:
- value = mods.Sum(expectedStatMod => expectedStatRecord.PlayerPrimaryStat * (expectedStatMod != null ? expectedStatMod.PlayerPrimaryStatMod : 1.0f));
+ value = expectedStatRecord.PlayerPrimaryStat;
+ if (contentTuningMods != null)
+ value *= contentTuningMods.Sum(expectedStatMod => expectedStatMod != null ? expectedStatMod.PlayerPrimaryStatMod : 1.0f);
+ if (classMod != null)
+ value *= classMod.PlayerPrimaryStatMod;
break;
case ExpectedStatType.PlayerSecondaryStat:
- value = mods.Sum(expectedStatMod => expectedStatRecord.PlayerSecondaryStat * (expectedStatMod != null ? expectedStatMod.PlayerSecondaryStatMod : 1.0f));
+ value = expectedStatRecord.PlayerSecondaryStat;
+ if (contentTuningMods != null)
+ value *= contentTuningMods.Sum(expectedStatMod => expectedStatMod != null ? expectedStatMod.PlayerSecondaryStatMod : 1.0f);
+ if (classMod != null)
+ value *= classMod.PlayerSecondaryStatMod;
break;
case ExpectedStatType.ArmorConstant:
- value = mods.Sum(expectedStatMod => expectedStatRecord.ArmorConstant * (expectedStatMod != null ? expectedStatMod.ArmorConstantMod : 1.0f));
+ value = expectedStatRecord.ArmorConstant;
+ if (contentTuningMods != null)
+ value *= contentTuningMods.Sum(expectedStatMod => expectedStatMod != null ? expectedStatMod.ArmorConstantMod : 1.0f);
+ if (classMod != null)
+ value *= classMod.ArmorConstantMod;
break;
case ExpectedStatType.None:
break;
case ExpectedStatType.CreatureSpellDamage:
- value = mods.Sum(expectedStatMod => expectedStatRecord.CreatureSpellDamage * (expectedStatMod != null ? expectedStatMod.CreatureSpellDamageMod : 1.0f));
+ value = expectedStatRecord.CreatureSpellDamage;
+ if (contentTuningMods != null)
+ value *= contentTuningMods.Sum(expectedStatMod => expectedStatMod != null ? expectedStatMod.CreatureSpellDamageMod : 1.0f);
+ if (classMod != null)
+ value *= classMod.CreatureSpellDamageMod;
break;
default:
break;
@@ -1479,6 +1524,11 @@ namespace Game.DataStorage
return _rulesetItemUpgrade.LookupByKey(itemId);
}
+ public List GetSkillLinesForParentSkill(uint parentSkillId)
+ {
+ return _skillLinesByParentSkillLine.LookupByKey(parentSkillId);
+ }
+
public List GetSkillLineAbilitiesBySkill(uint skillId)
{
return _skillLineAbilitiesBySkillupSkill.LookupByKey(skillId);
@@ -1903,6 +1953,7 @@ namespace Game.DataStorage
MultiMap _curvePoints = new MultiMap();
Dictionary, EmotesTextSoundRecord> _emoteTextSounds = new Dictionary, EmotesTextSoundRecord>();
Dictionary, ExpectedStatRecord> _expectedStatsByLevel = new Dictionary, ExpectedStatRecord>();
+ MultiMap _expectedStatModsByContentTuning = new MultiMap();
MultiMap _factionTeams = new MultiMap();
Dictionary _heirlooms = new Dictionary();
MultiMap _glyphBindableSpells = new MultiMap();
@@ -1933,6 +1984,7 @@ namespace Game.DataStorage
MultiMap _rewardPackCurrencyTypes = new MultiMap();
MultiMap _rewardPackItems = new MultiMap();
Dictionary _rulesetItemUpgrade = new Dictionary();
+ MultiMap _skillLinesByParentSkillLine = new MultiMap();
MultiMap _skillLineAbilitiesBySkillupSkill = new MultiMap();
MultiMap _skillRaceClassInfoBySkill = new MultiMap();
MultiMap _specializationSpellsBySpec = new MultiMap();
diff --git a/Source/Game/DataStorage/Structs/A_Records.cs b/Source/Game/DataStorage/Structs/A_Records.cs
index 5d581a647..48fbf6eb4 100644
--- a/Source/Game/DataStorage/Structs/A_Records.cs
+++ b/Source/Game/DataStorage/Structs/A_Records.cs
@@ -36,6 +36,7 @@ namespace Game.DataStorage
public AchievementFlags Flags;
public ushort UiOrder;
public uint IconFileID;
+ public int RewardItemID;
public uint CriteriaTree;
public ushort SharesCriteria;
}
@@ -43,9 +44,9 @@ namespace Game.DataStorage
public sealed class AnimationDataRecord
{
public uint Id;
- public ushort Fallback;
+ public ushort BehaviorID;
public byte BehaviorTier;
- public int BehaviorID;
+ public int Fallback;
public int[] Flags = new int[2];
}
@@ -161,6 +162,7 @@ namespace Game.DataStorage
public uint UiAltItemAppearanceID;
public byte Flags;
public ushort UiCameraID;
+ public uint UsablePlayerConditionID;
}
public sealed class ArtifactAppearanceSetRecord
diff --git a/Source/Game/DataStorage/Structs/B_Records.cs b/Source/Game/DataStorage/Structs/B_Records.cs
index 3b0ea5db7..7e5095299 100644
--- a/Source/Game/DataStorage/Structs/B_Records.cs
+++ b/Source/Game/DataStorage/Structs/B_Records.cs
@@ -36,7 +36,7 @@ namespace Game.DataStorage
public string DisplayName;
public string Description;
public uint Id;
- public byte Type; // value 0 -> hair, value 2 -> facialhair
+ public byte Type; // value 0 . hair, value 2 . facialhair
public float CostModifier;
public byte Race;
public byte Sex;
@@ -76,7 +76,7 @@ namespace Game.DataStorage
public sealed class BattlePetSpeciesStateRecord
{
public uint Id;
- public byte BattlePetStateID;
+ public ushort BattlePetStateID;
public int Value;
public uint BattlePetSpeciesID;
}
diff --git a/Source/Game/DataStorage/Structs/C_Records.cs b/Source/Game/DataStorage/Structs/C_Records.cs
index 5aea61d2d..4f81a5247 100644
--- a/Source/Game/DataStorage/Structs/C_Records.cs
+++ b/Source/Game/DataStorage/Structs/C_Records.cs
@@ -102,6 +102,7 @@ namespace Game.DataStorage
public uint IconFileDataID;
public uint LowResScreenFileDataID;
public int StartingLevel;
+ public uint SpellTextureBlobFileDataID;
public ushort Flags;
public ushort CinematicSequenceID;
public ushort DefaultSpec;
@@ -214,8 +215,14 @@ namespace Game.DataStorage
public int MinLevel;
public int MaxLevel;
public int Flags;
+ public int ExpansionID;
+ }
+
+ public sealed class ContentTuningXExpectedRecord
+ {
+ public uint Id;
public int ExpectedStatModID;
- public int DifficultyESMID;
+ public uint ContentTuningID;
}
public sealed class ConversationLineRecord
@@ -322,6 +329,9 @@ namespace Game.DataStorage
public float OverrideNameScale;
public float OverrideSelectionRadius;
public float TamedPetBaseScale;
+ public sbyte Unknown820_1; // scale related
+ public float Unknown820_2; // scale related
+ public float[] Unknown820_3 = new float[2]; // scale related
}
public sealed class CreatureTypeRecord
@@ -373,6 +383,7 @@ namespace Game.DataStorage
public uint Flags;
public sbyte Quality;
public int FactionID;
+ public int ItemGroupSoundsID;
}
public sealed class CurveRecord
diff --git a/Source/Game/DataStorage/Structs/D_Records.cs b/Source/Game/DataStorage/Structs/D_Records.cs
index b75732fa1..ca543a138 100644
--- a/Source/Game/DataStorage/Structs/D_Records.cs
+++ b/Source/Game/DataStorage/Structs/D_Records.cs
@@ -71,10 +71,12 @@ namespace Game.DataStorage
public short MapID;
public sbyte DifficultyID;
public int OrderIndex;
+ public int CompleteWorldStateID;
public sbyte Bit;
public int CreatureDisplayID;
public byte Flags;
public int SpellIconFileID;
+ public int Faction;
}
public sealed class DurabilityCostsRecord
diff --git a/Source/Game/DataStorage/Structs/F_Records.cs b/Source/Game/DataStorage/Structs/F_Records.cs
index 8dc2d2146..3d09d8bb2 100644
--- a/Source/Game/DataStorage/Structs/F_Records.cs
+++ b/Source/Game/DataStorage/Structs/F_Records.cs
@@ -29,7 +29,7 @@ namespace Game.DataStorage
public short ReputationIndex;
public ushort ParentFactionID;
public byte Expansion;
- public byte FriendshipRepID;
+ public uint FriendshipRepID;
public byte Flags;
public ushort ParagonFactionID;
public short[] ReputationClassMask = new short[4];
diff --git a/Source/Game/DataStorage/Structs/G_Records.cs b/Source/Game/DataStorage/Structs/G_Records.cs
index cc4dab3b2..6e3bf31e1 100644
--- a/Source/Game/DataStorage/Structs/G_Records.cs
+++ b/Source/Game/DataStorage/Structs/G_Records.cs
@@ -131,8 +131,8 @@ namespace Game.DataStorage
public int AllianceCreatureID;
public byte HordeGarrFollRaceID;
public byte AllianceGarrFollRaceID;
- public byte HordeGarrClassSpecID;
- public byte AllianceGarrClassSpecID;
+ public uint HordeGarrClassSpecID;
+ public uint AllianceGarrClassSpecID;
public byte Quality;
public byte FollowerLevel;
public ushort ItemLevelWeapon;
@@ -232,9 +232,9 @@ namespace Game.DataStorage
{
public uint Id;
public uint SpellID;
- public ushort SpellIconID;
public byte GlyphType;
public byte GlyphExclusiveCategoryID;
+ public uint SpellIconID;
}
public sealed class GlyphRequiredSpecRecord
diff --git a/Source/Game/DataStorage/Structs/GameTablesRecords.cs b/Source/Game/DataStorage/Structs/GameTablesRecords.cs
index 089e5b04f..4aeadb18a 100644
--- a/Source/Game/DataStorage/Structs/GameTablesRecords.cs
+++ b/Source/Game/DataStorage/Structs/GameTablesRecords.cs
@@ -166,6 +166,7 @@ namespace Game.DataStorage
public float Gem3;
public float Health;
public float DamageReplaceStat;
+ public float DamageSecondary;
}
public sealed class GtXpRecord
diff --git a/Source/Game/DataStorage/Structs/H_Records.cs b/Source/Game/DataStorage/Structs/H_Records.cs
index 64e647a0e..1f2f2651f 100644
--- a/Source/Game/DataStorage/Structs/H_Records.cs
+++ b/Source/Game/DataStorage/Structs/H_Records.cs
@@ -29,8 +29,8 @@ namespace Game.DataStorage
public sbyte SourceTypeEnum;
public byte Flags;
public int LegacyItemID;
- public int[] UpgradeItemID = new int[3];
- public ushort[] UpgradeItemBonusListID = new ushort[3];
+ public int[] UpgradeItemID = new int[4];
+ public ushort[] UpgradeItemBonusListID = new ushort[4];
}
public sealed class HolidaysRecord
diff --git a/Source/Game/DataStorage/Structs/I_Records.cs b/Source/Game/DataStorage/Structs/I_Records.cs
index 3d2b16da5..888913156 100644
--- a/Source/Game/DataStorage/Structs/I_Records.cs
+++ b/Source/Game/DataStorage/Structs/I_Records.cs
@@ -102,16 +102,33 @@ namespace Game.DataStorage
public uint Id;
public int[] Value = new int[3];
public ushort ParentItemBonusListID;
- public ItemBonusType Type;
+ public ItemBonusType BonusType;
public byte OrderIndex;
}
+ public sealed class ItemBonusListGroupEntryRecord
+ {
+ public uint Id;
+ public int ItemBonusListID;
+ public int ItemLevelSelectorID;
+ public int OrderIndex;
+ public int ItemExtendedCostID;
+ public int ItemBonusListGroupID;
+ }
+
public sealed class ItemBonusListLevelDeltaRecord
{
public short ItemLevelDelta;
public uint Id;
}
+ public sealed class ItemBonusSequenceSpellRecord
+ {
+ public uint Id;
+ public int SpellID;
+ public int ItemID;
+ }
+
public sealed class ItemBonusTreeNodeRecord
{
public uint Id;
@@ -125,9 +142,9 @@ namespace Game.DataStorage
public sealed class ItemChildEquipmentRecord
{
public uint Id;
+ public uint ParentItemID;
public uint ChildItemID;
public byte ChildItemEquipSlot;
- public uint ParentItemID;
}
public sealed class ItemClassRecord
@@ -206,6 +223,7 @@ namespace Game.DataStorage
public uint Id;
public ushort MinItemLevel;
public ushort ItemLevelSelectorQualitySetID;
+ public ushort AzeriteUnlockMappingSet;
}
public sealed class ItemLevelSelectorQualityRecord
@@ -257,21 +275,6 @@ namespace Game.DataStorage
public float Weapon;
}
- public sealed class ItemRandomPropertiesRecord
- {
- public uint Id;
- public LocalizedString Name;
- public ushort[] Enchantment = new ushort[ItemConst.MaxItemRandomProperties];
- }
-
- public sealed class ItemRandomSuffixRecord
- {
- public uint Id;
- public LocalizedString Name;
- public ushort[] Enchantment = new ushort[ItemConst.MaxItemRandomProperties];
- public ushort[] AllocationPct = new ushort[ItemConst.MaxItemRandomProperties];
- }
-
public sealed class ItemSearchNameRecord
{
public long AllowableRace;
@@ -345,8 +348,6 @@ namespace Game.DataStorage
public ushort InstanceBound;
public ushort ZoneBound;
public ushort ItemSet;
- public ushort ItemRandomSuffixGroupID;
- public ushort RandomSelect;
public ushort LockID;
public ushort StartQuestID;
public ushort PageID;
diff --git a/Source/Game/DataStorage/Structs/M_Records.cs b/Source/Game/DataStorage/Structs/M_Records.cs
index acda4b90d..01fc91f2e 100644
--- a/Source/Game/DataStorage/Structs/M_Records.cs
+++ b/Source/Game/DataStorage/Structs/M_Records.cs
@@ -50,6 +50,7 @@ namespace Game.DataStorage
public byte MaxPlayers;
public short WindSettingsID;
public int ZmpFileDataID;
+ public int WdtFileDataID;
public MapFlags[] Flags = new MapFlags[2];
// Helpers
@@ -95,14 +96,14 @@ namespace Game.DataStorage
{
public uint Id;
public LocalizedString Message; // m_message_lang (text showed when transfer to map failed)
- public uint ItemContextPickerID;
- public int ContentTuningID;
- public byte DifficultyID;
- public byte LockID;
+ public uint DifficultyID;
+ public int LockID;
public byte ResetInterval;
- public byte MaxPlayers;
- public byte ItemContext;
- public byte Flags;
+ public uint MaxPlayers;
+ public int ItemContext;
+ public uint ItemContextPickerID;
+ public int Flags;
+ public int ContentTuningID;
public uint MapID;
public uint GetRaidDuration()
@@ -121,7 +122,7 @@ namespace Game.DataStorage
public uint Parent;
public sbyte Operator;
public sbyte Amount;
- public byte Type;
+ public uint Type;
public uint Asset;
public int SecondaryAsset;
public sbyte TertiaryAsset;
@@ -154,6 +155,7 @@ namespace Game.DataStorage
public uint ReqSpellKnownID;
public uint ModSpellAuraID;
public short ReqMapID;
+ public int PlayerConditionID;
}
public sealed class MountTypeXCapabilityRecord
diff --git a/Source/Game/DataStorage/Structs/R_Records.cs b/Source/Game/DataStorage/Structs/R_Records.cs
index c3dacd4fd..3e6634561 100644
--- a/Source/Game/DataStorage/Structs/R_Records.cs
+++ b/Source/Game/DataStorage/Structs/R_Records.cs
@@ -21,6 +21,7 @@ namespace Game.DataStorage
{
public uint Id;
public int DamageReplaceStat;
+ public int DamageSecondary;
public uint[] Epic = new uint[5];
public uint[] Superior = new uint[5];
public uint[] Good = new uint[5];
diff --git a/Source/Game/DataStorage/Structs/S_Records.cs b/Source/Game/DataStorage/Structs/S_Records.cs
index 64f1d949d..93281ad60 100644
--- a/Source/Game/DataStorage/Structs/S_Records.cs
+++ b/Source/Game/DataStorage/Structs/S_Records.cs
@@ -139,7 +139,7 @@ namespace Game.DataStorage
public sealed class SoundKitRecord
{
public uint Id;
- public byte SoundType;
+ public uint SoundType;
public float VolumeFloat;
public ushort Flags;
public float MinDistance;
@@ -331,9 +331,9 @@ namespace Game.DataStorage
public string HordeName;
public uint[] EffectArg = new uint[ItemConst.MaxItemEnchantmentEffects];
public float[] EffectScalingPoints = new float[ItemConst.MaxItemEnchantmentEffects];
+ public uint TransmogPlayerConditionID;
public uint TransmogCost;
public uint IconFileDataID;
- public uint TransmogPlayerConditionID;
public ushort[] EffectPointsMin = new ushort[ItemConst.MaxItemEnchantmentEffects];
public ushort ItemVisual;
public EnchantmentSlotMask Flags;
@@ -392,6 +392,7 @@ namespace Game.DataStorage
public float MinDuration;
public uint SpellIconFileDataID;
public uint ActiveIconFileDataID;
+ public uint ContentTuningID;
public int[] Attributes = new int[14];
public uint SpellID;
}
diff --git a/Source/Game/DataStorage/Structs/T_Records.cs b/Source/Game/DataStorage/Structs/T_Records.cs
index 93a6f4afa..76cd67dea 100644
--- a/Source/Game/DataStorage/Structs/T_Records.cs
+++ b/Source/Game/DataStorage/Structs/T_Records.cs
@@ -48,10 +48,11 @@ namespace Game.DataStorage
public Vector2 FlightMapOffset;
public uint Id;
public ushort ContinentID;
- public ushort ConditionID;
+ public uint ConditionID;
public ushort CharacterBitNumber;
public TaxiNodeFlags Flags;
public int UiTextureKitID;
+ public int MinimapAtlasMemberID;
public float Facing;
public uint SpecialIconConditionID;
public uint VisibilityConditionID;
@@ -75,8 +76,8 @@ namespace Game.DataStorage
public ushort ContinentID;
public TaxiPathNodeFlags Flags;
public uint Delay;
- public ushort ArrivalEventID;
- public ushort DepartureEventID;
+ public uint ArrivalEventID;
+ public uint DepartureEventID;
}
public sealed class TotemCategoryRecord
@@ -112,7 +113,9 @@ namespace Game.DataStorage
public uint TransmogSetGroupID;
public int ItemNameDescriptionID;
public ushort ParentTransmogSetID;
+ public byte Unknown810;
public byte ExpansionID;
+ public int PatchID;
public short UiOrder;
}
diff --git a/Source/Game/DataStorage/Structs/U_Records.cs b/Source/Game/DataStorage/Structs/U_Records.cs
index 395820875..5bf83d9f0 100644
--- a/Source/Game/DataStorage/Structs/U_Records.cs
+++ b/Source/Game/DataStorage/Structs/U_Records.cs
@@ -58,6 +58,8 @@ namespace Game.DataStorage
public int ParentUiMapID;
public int OrderIndex;
public int ChildUiMapID;
+ public int OverrideHighlightFileDataID;
+ public int OverrideHighlightAtlasID;
}
public sealed class UiMapXMapArtRecord
diff --git a/Source/Game/DataStorage/Structs/W_Records.cs b/Source/Game/DataStorage/Structs/W_Records.cs
index 18b67d270..3967026e7 100644
--- a/Source/Game/DataStorage/Structs/W_Records.cs
+++ b/Source/Game/DataStorage/Structs/W_Records.cs
@@ -44,7 +44,7 @@ namespace Game.DataStorage
public uint Id;
public uint QuestFeedbackEffectID;
public byte WhenToDisplay;
- public byte TargetType;
+ public int TargetType;
public int TargetAsset;
public uint PlayerConditionID;
public ushort CombatConditionID;
diff --git a/Source/Game/Entities/AreaTrigger/AreaTrigger.cs b/Source/Game/Entities/AreaTrigger/AreaTrigger.cs
index 5c3f1d77a..3e67b3764 100644
--- a/Source/Game/Entities/AreaTrigger/AreaTrigger.cs
+++ b/Source/Game/Entities/AreaTrigger/AreaTrigger.cs
@@ -26,6 +26,7 @@ using System;
using System.Collections.Generic;
using Game;
using Framework.Dynamic;
+using Game.Network;
namespace Game.Entities
{
@@ -42,7 +43,7 @@ namespace Game.Entities
m_updateFlag.Stationary = true;
m_updateFlag.AreaTrigger = true;
- valuesCount = (int)AreaTriggerFields.End;
+ m_areaTriggerData = new AreaTriggerFieldData();
_spline = new Spline();
}
@@ -114,19 +115,35 @@ namespace Game.Entities
SetObjectScale(1.0f);
- SetGuidValue(AreaTriggerFields.Caster, caster.GetGUID());
- SetGuidValue(AreaTriggerFields.CreatingEffectGuid, castId);
+ SetUpdateFieldValue(m_values.ModifyValue(m_areaTriggerData).ModifyValue(m_areaTriggerData.Caster), caster.GetGUID());
+ SetUpdateFieldValue(m_values.ModifyValue(m_areaTriggerData).ModifyValue(m_areaTriggerData.CreatingEffectGUID), castId);
- SetUInt32Value(AreaTriggerFields.SpellId, spell.Id);
- SetUInt32Value(AreaTriggerFields.SpellForVisuals, spell.Id);
- SetUInt32Value(AreaTriggerFields.SpellXSpellVisualId, spellXSpellVisualId);
- SetUInt32Value(AreaTriggerFields.TimeToTargetScale, GetMiscTemplate().TimeToTargetScale != 0 ? GetMiscTemplate().TimeToTargetScale : GetUInt32Value(AreaTriggerFields.Duration));
- SetFloatValue(AreaTriggerFields.BoundsRadius2d, GetTemplate().MaxSearchRadius);
- SetUInt32Value(AreaTriggerFields.DecalPropertiesId, GetMiscTemplate().DecalPropertiesId);
+ SetUpdateFieldValue(m_values.ModifyValue(m_areaTriggerData).ModifyValue(m_areaTriggerData.SpellID), spell.Id);
+ SetUpdateFieldValue(m_values.ModifyValue(m_areaTriggerData).ModifyValue(m_areaTriggerData.SpellForVisuals), spell.Id);
+ SetUpdateFieldValue(m_values.ModifyValue(m_areaTriggerData).ModifyValue(m_areaTriggerData.SpellXSpellVisualID), spellXSpellVisualId);
+ SetUpdateFieldValue(m_values.ModifyValue(m_areaTriggerData).ModifyValue(m_areaTriggerData.TimeToTargetScale), GetMiscTemplate().TimeToTargetScale != 0 ? GetMiscTemplate().TimeToTargetScale : m_areaTriggerData.Duration);
+ SetUpdateFieldValue(m_values.ModifyValue(m_areaTriggerData).ModifyValue(m_areaTriggerData.BoundsRadius2D), GetTemplate().MaxSearchRadius);
+ SetUpdateFieldValue(m_values.ModifyValue(m_areaTriggerData).ModifyValue(m_areaTriggerData.DecalPropertiesID), GetMiscTemplate().DecalPropertiesId);
+
+ ScaleCurve extraScaleCurve = m_areaTriggerData.ModifyValue(m_areaTriggerData.ExtraScaleCurve);
+
+ if (GetMiscTemplate().ExtraScale.Structured.StartTimeOffset != 0)
+ SetUpdateFieldValue(ref extraScaleCurve.StartTimeOffset, GetMiscTemplate().ExtraScale.Structured.StartTimeOffset);
+ if (GetMiscTemplate().ExtraScale.Structured.X != 0 || GetMiscTemplate().ExtraScale.Structured.Y != 0)
+ {
+ Vector2 point = new Vector2(GetMiscTemplate().ExtraScale.Structured.X, GetMiscTemplate().ExtraScale.Structured.Y);
+ SetUpdateFieldValue(ref extraScaleCurve.Points[0], point);
+ }
+ if (GetMiscTemplate().ExtraScale.Structured.Z != 0 || GetMiscTemplate().ExtraScale.Structured.W != 0)
+ {
+ Vector2 point = new Vector2(GetMiscTemplate().ExtraScale.Structured.Z, GetMiscTemplate().ExtraScale.Structured.W);
+ SetUpdateFieldValue(ref extraScaleCurve.Points[1], point);
+ }
+ if (GetMiscTemplate().ExtraScale.Raw.Data[5] != 0)
+ SetUpdateFieldValue(ref extraScaleCurve.ParameterCurve, GetMiscTemplate().ExtraScale.Raw.Data[5]);
+ if (GetMiscTemplate().ExtraScale.Structured.OverrideActive != 0)
+ SetUpdateFieldValue(ref extraScaleCurve.OverrideActive, GetMiscTemplate().ExtraScale.Structured.OverrideActive != 0 ? true : false);
- for (byte scaleCurveIndex = 0; scaleCurveIndex < SharedConst.MaxAreatriggerScale; ++scaleCurveIndex)
- if (GetMiscTemplate().ExtraScale.Raw.Data[scaleCurveIndex] != 0)
- SetUInt32Value(AreaTriggerFields.ExtraScaleCurve + scaleCurveIndex, (uint)GetMiscTemplate().ExtraScale.Raw.Data[scaleCurveIndex]);
PhasingHandler.InheritPhaseShift(this, caster);
@@ -137,7 +154,7 @@ namespace Game.Entities
UpdateShape();
- uint timeToTarget = GetMiscTemplate().TimeToTarget != 0 ? GetMiscTemplate().TimeToTarget : GetUInt32Value(AreaTriggerFields.Duration);
+ uint timeToTarget = GetMiscTemplate().TimeToTarget != 0 ? GetMiscTemplate().TimeToTarget : m_areaTriggerData.Duration;
if (GetTemplate().HasFlag(AreaTriggerFlags.HasCircularMovement))
{
@@ -234,7 +251,7 @@ namespace Game.Entities
_totalDuration = newDuration;
// negative duration (permanent areatrigger) sent as 0
- SetUInt32Value(AreaTriggerFields.Duration, (uint)Math.Max(newDuration, 0));
+ SetUpdateFieldValue(m_values.ModifyValue(m_areaTriggerData).ModifyValue(m_areaTriggerData.Duration), (uint)Math.Max(newDuration, 0));
}
void _UpdateDuration(int newDuration)
@@ -242,7 +259,8 @@ namespace Game.Entities
_duration = newDuration;
// should be sent in object create packets only
- updateValues[(int)AreaTriggerFields.Duration].SignedValue = _duration;
+ SetUpdateFieldValue(m_values.ModifyValue(m_areaTriggerData).ModifyValue(m_areaTriggerData.Duration), (uint)_duration);
+ m_areaTriggerData.ClearChanged(m_areaTriggerData.Duration);
}
float GetProgress()
@@ -619,7 +637,8 @@ namespace Game.Entities
_spline.initLengths();
// should be sent in object create packets only
- updateValues[(int)AreaTriggerFields.TimeToTarget].UnsignedValue = timeToTarget;
+ SetUpdateFieldValue(m_values.ModifyValue(m_areaTriggerData).ModifyValue(m_areaTriggerData.TimeToTarget), timeToTarget);
+ m_areaTriggerData.ClearChanged(m_areaTriggerData.TimeToTarget);
if (IsInWorld)
{
@@ -648,7 +667,8 @@ namespace Game.Entities
Cypher.Assert(cmi.Center.HasValue || cmi.PathTarget.HasValue);
// should be sent in object create packets only
- updateValues[(int)AreaTriggerFields.TimeToTarget].UnsignedValue = timeToTarget;
+ SetUpdateFieldValue(m_values.ModifyValue(m_areaTriggerData).ModifyValue(m_areaTriggerData.TimeToTarget), timeToTarget);
+ m_areaTriggerData.ClearChanged(m_areaTriggerData.TimeToTarget);
_circularMovementInfo.Set(cmi);
@@ -822,6 +842,41 @@ namespace Game.Entities
_ai = null;
}
+ public override void BuildValuesCreate(WorldPacket data, Player target)
+ {
+ UpdateFieldFlag flags = GetUpdateFieldFlagsFor(target);
+ WorldPacket buffer = new WorldPacket();
+
+ buffer.WriteUInt8((byte)flags);
+ m_objectData.WriteCreate(buffer, flags, this, target);
+ m_areaTriggerData.WriteCreate(buffer, flags, this, target);
+
+ data.WriteUInt32(buffer.GetSize());
+ data.WriteBytes(buffer);
+ }
+
+ public override void BuildValuesUpdate(WorldPacket data, Player target)
+ {
+ UpdateFieldFlag flags = GetUpdateFieldFlagsFor(target);
+ WorldPacket buffer = new WorldPacket();
+
+ buffer.WriteUInt32(m_values.GetChangedObjectTypeMask());
+ if (m_values.HasChanged(TypeId.Object))
+ m_objectData.WriteUpdate(buffer, flags, this, target);
+
+ if (m_values.HasChanged(TypeId.AreaTrigger))
+ m_areaTriggerData.WriteUpdate(buffer, flags, this, target);
+
+ data.WriteUInt32(buffer.GetSize());
+ data.WriteBytes(buffer);
+ }
+
+ public override void ClearUpdateMask(bool remove)
+ {
+ m_values.ClearChangesMask(m_areaTriggerData);
+ base.ClearUpdateMask(remove);
+ }
+
AreaTriggerAI GetAI() { return _ai; }
[System.Diagnostics.Conditional("DEBUG")]
@@ -838,11 +893,11 @@ namespace Game.Entities
}
public bool IsRemoved() { return _isRemoved; }
- public uint GetSpellId() { return GetUInt32Value(AreaTriggerFields.SpellId); }
+ public uint GetSpellId() { return m_areaTriggerData.SpellID; }
public AuraEffect GetAuraEffect() { return _aurEff; }
public uint GetTimeSinceCreated() { return _timeSinceCreated; }
- public uint GetTimeToTarget() { return GetUInt32Value(AreaTriggerFields.TimeToTarget); }
- public uint GetTimeToTargetScale() { return GetUInt32Value(AreaTriggerFields.TimeToTargetScale); }
+ public uint GetTimeToTarget() { return m_areaTriggerData.TimeToTarget; }
+ public uint GetTimeToTargetScale() { return m_areaTriggerData.TimeToTargetScale; }
public int GetDuration() { return _duration; }
public int GetTotalDuration() { return _totalDuration; }
@@ -852,7 +907,7 @@ namespace Game.Entities
public AreaTriggerMiscTemplate GetMiscTemplate() { return _areaTriggerMiscTemplate; }
- public ObjectGuid GetCasterGuid() { return GetGuidValue(AreaTriggerFields.Caster); }
+ public ObjectGuid GetCasterGuid() { return m_areaTriggerData.Caster; }
public Vector3 GetRollPitchYaw() { return _rollPitchYaw; }
public Vector3 GetTargetRollPitchYaw() { return _targetRollPitchYaw; }
@@ -863,6 +918,8 @@ namespace Game.Entities
public Optional GetCircularMovementInfo() { return _circularMovementInfo; }
+ AreaTriggerFieldData m_areaTriggerData;
+
ObjectGuid _targetGuid;
AuraEffect _aurEff;
diff --git a/Source/Game/Entities/AreaTrigger/AreaTriggerTemplate.cs b/Source/Game/Entities/AreaTrigger/AreaTriggerTemplate.cs
index 5479c1622..a62eacc24 100644
--- a/Source/Game/Entities/AreaTrigger/AreaTriggerTemplate.cs
+++ b/Source/Game/Entities/AreaTrigger/AreaTriggerTemplate.cs
@@ -104,10 +104,19 @@ namespace Game.Entities
public uint StartTimeOffset;
[FieldOffset(4)]
- public float[] Points;
+ public float X;
+
+ [FieldOffset(8)]
+ public float Y;
+
+ [FieldOffset(12)]
+ public float Z;
+
+ [FieldOffset(16)]
+ public float W;
[FieldOffset(20)]
- public curveparameters CurveParameters;
+ public uint CurveParameters;
[FieldOffset(24)]
public uint OverrideActive;
diff --git a/Source/Game/Entities/Conversation.cs b/Source/Game/Entities/Conversation.cs
index 8f5b2e72e..8fd6d516a 100644
--- a/Source/Game/Entities/Conversation.cs
+++ b/Source/Game/Entities/Conversation.cs
@@ -20,6 +20,7 @@ using Game.DataStorage;
using Game.Maps;
using Game.Spells;
using System.Collections.Generic;
+using Game.Network;
namespace Game.Entities
{
@@ -35,8 +36,7 @@ namespace Game.Entities
m_updateFlag.Stationary = true;
m_updateFlag.Conversation = true;
- valuesCount = (int)ConversationFields.End;
- _dynamicValuesCount = (int)ConversationDynamicFields.End;
+ m_conversationData = new ConversationData();
}
public override void AddToWorld()
@@ -117,7 +117,7 @@ namespace Game.Entities
SetEntry(conversationEntry);
SetObjectScale(1.0f);
- SetUInt32Value(ConversationFields.LastLineEndTime, conversationTemplate.LastLineEndTime);
+ SetUpdateFieldValue(m_values.ModifyValue(m_conversationData).ModifyValue(m_conversationData.LastLineEndTime), conversationTemplate.LastLineEndTime);
_duration = conversationTemplate.LastLineEndTime;
_textureKitId = conversationTemplate.TextureKitId;
@@ -126,11 +126,12 @@ namespace Game.Entities
ConversationActorTemplate actor = conversationTemplate.Actors[actorIndex];
if (actor != null)
{
- ConversationDynamicFieldActor actorField = new ConversationDynamicFieldActor();
- actorField.ActorTemplate.CreatureId = actor.CreatureId;
- actorField.ActorTemplate.CreatureModelId = actor.CreatureModelId;
- actorField.Type = ConversationDynamicFieldActor.ActorType.CreatureActor;
- SetDynamicStructuredValue(ConversationDynamicFields.Actors, actorIndex, actorField);
+ ConversationActor actorField = new ConversationActor();
+ actorField.CreatureID = actor.CreatureId;
+ actorField.CreatureDisplayInfoID = actor.CreatureModelId;
+ actorField.Type = ConversationActorType.CreatureActor;
+
+ AddDynamicUpdateFieldValue(m_values.ModifyValue(m_conversationData).ModifyValue(m_conversationData.Actors), actorField);
}
}
@@ -150,17 +151,30 @@ namespace Game.Entities
Global.ScriptMgr.OnConversationCreate(this, creator);
List actorIndices = new List();
+ List lines = new List();
foreach (ConversationLineTemplate line in conversationTemplate.Lines)
{
actorIndices.Add(line.ActorIdx);
- AddDynamicStructuredValue(ConversationDynamicFields.Lines, line);
+
+ ConversationLine lineField = new ConversationLine();
+ lineField.ConversationLineID = line.Id;
+ lineField.StartTime = line.StartTime;
+ lineField.UiCameraID = line.UiCameraID;
+ lineField.ActorIndex = line.ActorIdx;
+ lineField.Flags = line.Flags;
+
+ lines.Add(lineField);
}
+ SetUpdateFieldValue(m_values.ModifyValue(m_conversationData).ModifyValue(m_conversationData.Lines), lines);
+
+ Global.ScriptMgr.OnConversationCreate(this, creator);
+
// All actors need to be set
foreach (ushort actorIndex in actorIndices)
{
- ConversationDynamicFieldActor actor = GetDynamicStructuredValue(ConversationDynamicFields.Actors, actorIndex);
- if (actor == null || actor.IsEmpty())
+ ConversationActor actor = actorIndex < m_conversationData.Actors.Size() ? m_conversationData.Actors[actorIndex] : null;
+ if (actor == null || (actor.CreatureID == 0 && actor.ActorGUID.IsEmpty()))
{
Log.outError(LogFilter.Conversation, $"Failed to create conversation (Id: {conversationEntry}) due to missing actor (Idx: {actorIndex}).");
return false;
@@ -175,10 +189,9 @@ namespace Game.Entities
void AddActor(ObjectGuid actorGuid, ushort actorIdx)
{
- ConversationDynamicFieldActor actorField = new ConversationDynamicFieldActor();
- actorField.ActorGuid = actorGuid;
- actorField.Type = ConversationDynamicFieldActor.ActorType.WorldObjectActor;
- SetDynamicStructuredValue(ConversationDynamicFields.Actors, actorIdx, actorField);
+ ConversationActor actorField = m_values.ModifyValue(m_conversationData).ModifyValue(m_conversationData.Actors, actorIdx);
+ SetUpdateFieldValue(ref actorField.ActorGUID, actorGuid);
+ SetUpdateFieldValue(ref actorField.Type, ConversationActorType.WorldObjectActor);
}
void AddParticipant(ObjectGuid participantGuid)
@@ -191,6 +204,41 @@ namespace Game.Entities
return Global.ConversationDataStorage.GetConversationTemplate(GetEntry()).ScriptId;
}
+ public override void BuildValuesCreate(WorldPacket data, Player target)
+ {
+ UpdateFieldFlag flags = GetUpdateFieldFlagsFor(target);
+ WorldPacket buffer = new WorldPacket();
+
+ m_objectData.WriteCreate(buffer, flags, this, target);
+ m_conversationData.WriteCreate(buffer, flags, this, target);
+
+ data.WriteUInt32(buffer.GetSize());
+ data.WriteUInt8((byte)flags);
+ data.WriteBytes(buffer);
+ }
+
+ public override void BuildValuesUpdate(WorldPacket data, Player target)
+ {
+ UpdateFieldFlag flags = GetUpdateFieldFlagsFor(target);
+ WorldPacket buffer = new WorldPacket();
+
+ buffer.WriteUInt32(m_values.GetChangedObjectTypeMask());
+ if (m_values.HasChanged(TypeId.Object))
+ m_objectData.WriteUpdate(buffer, flags, this, target);
+
+ if (m_values.HasChanged(TypeId.Conversation))
+ m_conversationData.WriteUpdate(buffer, flags, this, target);
+
+ data.WriteUInt32(buffer.GetSize());
+ data.WriteBytes(buffer);
+ }
+
+ public override void ClearUpdateMask(bool remove)
+ {
+ m_values.ClearChangesMask(m_conversationData);
+ base.ClearUpdateMask(remove);
+ }
+
uint GetDuration() { return _duration; }
public uint GetTextureKitId() { return _textureKitId; }
@@ -202,35 +250,12 @@ namespace Game.Entities
public override float GetStationaryO() { return _stationaryPosition.GetOrientation(); }
void RelocateStationaryPosition(Position pos) { _stationaryPosition.Relocate(pos); }
+ ConversationData m_conversationData;
+
Position _stationaryPosition = new Position();
ObjectGuid _creatorGuid;
uint _duration;
uint _textureKitId;
List _participants = new List();
}
-
- class ConversationDynamicFieldActor
- {
- public enum ActorType
- {
- WorldObjectActor = 0,
- CreatureActor = 1
- }
-
- public bool IsEmpty()
- {
- return ActorGuid.IsEmpty(); // this one is good enough
- }
-
- public ObjectGuid ActorGuid;
- public ActorTemplateStruct ActorTemplate;
-
- public struct ActorTemplateStruct
- {
- public uint CreatureId;
- public uint CreatureModelId;
- }
-
- public ActorType Type;
- }
}
diff --git a/Source/Game/Entities/Corpse.cs b/Source/Game/Entities/Corpse.cs
index f8d184882..dda55a057 100644
--- a/Source/Game/Entities/Corpse.cs
+++ b/Source/Game/Entities/Corpse.cs
@@ -21,6 +21,9 @@ using Game.DataStorage;
using Game.Loots;
using Game.Maps;
using System.Collections.Generic;
+using System.Text;
+using Framework.Collections;
+using Game.Network;
namespace Game.Entities
{
@@ -34,7 +37,7 @@ namespace Game.Entities
m_updateFlag.Stationary = true;
- valuesCount = (int)CorpseFields.End;
+ m_corpseData = new CorpseData();
m_time = Time.UnixTime;
}
@@ -79,7 +82,7 @@ namespace Game.Entities
_Create(ObjectGuid.Create(HighGuid.Corpse, owner.GetMapId(), 0, guidlow));
SetObjectScale(1);
- SetGuidValue(CorpseFields.Owner, owner.GetGUID());
+ SetOwnerGUID(owner.GetGUID());
_cellCoord = GridDefines.ComputeCellCoord(GetPositionX(), GetPositionY());
@@ -94,6 +97,14 @@ namespace Game.Entities
SQLTransaction trans = new SQLTransaction();
DeleteFromDB(trans);
+ StringBuilder items = new StringBuilder();
+ for (var i = 0; i < EquipmentSlot.End; ++i)
+ items.Append($"{m_corpseData.Items[i]} ");
+
+ uint bytes1 = ((uint)m_corpseData.RaceID << 8) | ((uint)m_corpseData.Sex << 16) | ((uint)m_corpseData.SkinID << 24);
+ uint bytes2 = ((uint)m_corpseData.FaceID) | ((uint)m_corpseData.HairStyleID << 8) | ((uint)m_corpseData.HairColorID << 16) | ((uint)m_corpseData.FacialHairStyleID << 24);
+
+
byte index = 0;
PreparedStatement stmt = DB.Characters.GetPreparedStatement(CharStatements.INS_CORPSE);
stmt.AddValue(index++, GetOwnerGUID().GetCounter()); // guid
@@ -102,14 +113,14 @@ namespace Game.Entities
stmt.AddValue(index++, GetPositionZ()); // posZ
stmt.AddValue(index++, GetOrientation()); // orientation
stmt.AddValue(index++, GetMapId()); // mapId
- stmt.AddValue(index++, GetUInt32Value(CorpseFields.DisplayId)); // displayId
- stmt.AddValue(index++, _ConcatFields(CorpseFields.Item, EquipmentSlot.End)); // itemCache
- stmt.AddValue(index++, GetUInt32Value(CorpseFields.Bytes1)); // bytes1
- stmt.AddValue(index++, GetUInt32Value(CorpseFields.Bytes2)); // bytes2
- stmt.AddValue(index++, GetUInt32Value(CorpseFields.Flags)); // flags
- stmt.AddValue(index++, GetUInt32Value(CorpseFields.DynamicFlags)); // dynFlags
- stmt.AddValue(index++, (uint)m_time); // time
- stmt.AddValue(index++, (uint)GetCorpseType()); // corpseType
+ stmt.AddValue(index++, (uint)m_corpseData.DisplayID); // displayId
+ stmt.AddValue(index++, items.ToString()); // itemCache
+ stmt.AddValue(index++, bytes1); // bytes1
+ stmt.AddValue(index++, bytes2); // bytes2
+ stmt.AddValue(index++, (uint)m_corpseData.Flags); // flags
+ stmt.AddValue(index++, (uint)m_corpseData.DynamicFlags); // dynFlags
+ stmt.AddValue(index++, (uint)m_time); // time
+ stmt.AddValue(index++, (uint)GetCorpseType()); // corpseType
stmt.AddValue(index++, GetInstanceId()); // instanceId
trans.Append(stmt);
@@ -153,16 +164,24 @@ namespace Game.Entities
_Create(ObjectGuid.Create(HighGuid.Corpse, mapId, 0, guid));
SetObjectScale(1.0f);
- SetUInt32Value(CorpseFields.DisplayId, field.Read(5));
- _LoadIntoDataField(field.Read(6), (int)CorpseFields.Item, EquipmentSlot.End);
- SetUInt32Value(CorpseFields.Bytes1, field.Read(7));
- SetUInt32Value(CorpseFields.Bytes2, field.Read(8));
- SetUInt32Value(CorpseFields.Flags, field.Read(9));
- SetUInt32Value(CorpseFields.DynamicFlags, field.Read(10));
- SetGuidValue(CorpseFields.Owner, ObjectGuid.Create(HighGuid.Player, field.Read(14)));
- CharacterInfo characterInfo = Global.WorldMgr.GetCharacterInfo(GetGuidValue(CorpseFields.Owner));
- if (characterInfo != null)
- SetUInt32Value(CorpseFields.FactionTemplate, CliDB.ChrRacesStorage.LookupByKey(characterInfo.RaceID).FactionID);
+ SetDisplayId(field.Read(5));
+ StringArray items = new StringArray(field.Read(6), ' ');
+ for (uint index = 0; index < EquipmentSlot.End; ++index)
+ SetItem(index, uint.Parse(items[(int)index]));
+
+ uint bytes1 = field.Read(7);
+ uint bytes2 = field.Read(8);
+ SetRace((Race)((bytes1 >> 8) & 0xFF));
+ SetSex((Gender)((bytes1 >> 16) & 0xFF));
+ SetSkin((byte)((bytes1 >> 24) & 0xFF));
+ SetFace((byte)(bytes2 & 0xFF));
+ SetHairStyle((byte)((bytes2 >> 8) & 0xFF));
+ SetHairColor((byte)((bytes2 >> 16) & 0xFF));
+ SetFacialHairStyle((byte)((bytes2 >> 24) & 0xFF));
+ SetFlags((CorpseFlags)field.Read(9));
+ SetCorpseDynamicFlags((CorpseDynFlags)field.Read(10));
+ SetOwnerGUID(ObjectGuid.Create(HighGuid.Player, field.Read(14)));
+ SetFactionTemplate(CliDB.ChrRacesStorage.LookupByKey(m_corpseData.RaceID).FactionID);
m_time = field.Read(11);
@@ -196,7 +215,60 @@ namespace Game.Entities
return m_time < t - 3 * Time.Day;
}
- public ObjectGuid GetOwnerGUID() { return GetGuidValue(CorpseFields.Owner); }
+ public override void BuildValuesCreate(WorldPacket data, Player target)
+ {
+ UpdateFieldFlag flags = GetUpdateFieldFlagsFor(target);
+ WorldPacket buffer = new WorldPacket();
+
+ m_objectData.WriteCreate(buffer, flags, this, target);
+ m_corpseData.WriteCreate(buffer, flags, this, target);
+
+ data.WriteUInt32(buffer.GetSize());
+ data.WriteUInt8((byte)flags);
+ data.WriteBytes(buffer);
+ }
+
+ public override void BuildValuesUpdate(WorldPacket data, Player target)
+ {
+ UpdateFieldFlag flags = GetUpdateFieldFlagsFor(target);
+ WorldPacket buffer = new WorldPacket();
+
+ buffer.WriteUInt32(m_values.GetChangedObjectTypeMask());
+ if (m_values.HasChanged(TypeId.Object))
+ m_objectData.WriteUpdate(buffer, flags, this, target);
+
+ if (m_values.HasChanged(TypeId.Corpse))
+ m_corpseData.WriteUpdate(buffer, flags, this, target);
+
+ data.WriteUInt32(buffer.GetSize());
+ data.WriteBytes(buffer);
+ }
+
+ public override void ClearUpdateMask(bool remove)
+ {
+ m_values.ClearChangesMask(m_corpseData);
+ base.ClearUpdateMask(remove);
+ }
+
+ public void AddCorpseDynamicFlag(CorpseDynFlags dynamicFlags) { SetUpdateFieldFlagValue(m_values.ModifyValue(m_corpseData).ModifyValue(m_corpseData.DynamicFlags), (uint)dynamicFlags); }
+ public void RemoveCorpseDynamicFlag(CorpseDynFlags dynamicFlags) { RemoveUpdateFieldFlagValue(m_values.ModifyValue(m_corpseData).ModifyValue(m_corpseData.DynamicFlags), (uint)dynamicFlags); }
+ public void SetCorpseDynamicFlags(CorpseDynFlags dynamicFlags) { SetUpdateFieldValue(m_values.ModifyValue(m_corpseData).ModifyValue(m_corpseData.DynamicFlags), (uint)dynamicFlags); }
+ public ObjectGuid GetOwnerGUID() { return m_corpseData.Owner; }
+ public void SetOwnerGUID(ObjectGuid owner) { SetUpdateFieldValue(m_values.ModifyValue(m_corpseData).ModifyValue(m_corpseData.Owner), owner); }
+ public void SetPartyGUID(ObjectGuid partyGuid) { SetUpdateFieldValue(m_values.ModifyValue(m_corpseData).ModifyValue(m_corpseData.PartyGUID), partyGuid); }
+ public void SetGuildGUID(ObjectGuid guildGuid) { SetUpdateFieldValue(m_values.ModifyValue(m_corpseData).ModifyValue(m_corpseData.GuildGUID), guildGuid); }
+ public void SetDisplayId(uint displayId) { SetUpdateFieldValue(m_values.ModifyValue(m_corpseData).ModifyValue(m_corpseData.DisplayID), displayId); }
+ public void SetRace(Race race) { SetUpdateFieldValue(m_values.ModifyValue(m_corpseData).ModifyValue(m_corpseData.RaceID), (byte)race); }
+ public void SetSex(Gender sex) { SetUpdateFieldValue(m_values.ModifyValue(m_corpseData).ModifyValue(m_corpseData.Sex), (byte)sex); }
+ public void SetSkin(byte skin) { SetUpdateFieldValue(m_values.ModifyValue(m_corpseData).ModifyValue(m_corpseData.SkinID), skin); }
+ public void SetFace(byte face) { SetUpdateFieldValue(m_values.ModifyValue(m_corpseData).ModifyValue(m_corpseData.FaceID), face); }
+ public void SetHairStyle(byte hairStyle) { SetUpdateFieldValue(m_values.ModifyValue(m_corpseData).ModifyValue(m_corpseData.HairStyleID), hairStyle); }
+ public void SetHairColor(byte hairColor) { SetUpdateFieldValue(m_values.ModifyValue(m_corpseData).ModifyValue(m_corpseData.HairColorID), hairColor); }
+ public void SetFacialHairStyle(byte facialHairStyle) { SetUpdateFieldValue(m_values.ModifyValue(m_corpseData).ModifyValue(m_corpseData.FacialHairStyleID), facialHairStyle); }
+ public void SetFlags(CorpseFlags flags) { SetUpdateFieldValue(m_values.ModifyValue(m_corpseData).ModifyValue(m_corpseData.Flags), (uint)flags); }
+ public void SetFactionTemplate(int factionTemplate) { SetUpdateFieldValue(m_values.ModifyValue(m_corpseData).ModifyValue(m_corpseData.FactionTemplate), factionTemplate); }
+ public void SetItem(uint slot, uint item) { SetUpdateFieldValue(ref m_values.ModifyValue(m_corpseData).ModifyValue(m_corpseData.Items, (int)slot), item); }
+ public void SetCustomDisplayOption(uint slot, byte customDisplayOption) { SetUpdateFieldValue(ref m_values.ModifyValue(m_corpseData).ModifyValue(m_corpseData.CustomDisplayOption, (int)slot), customDisplayOption); }
public long GetGhostTime() { return m_time; }
public void ResetGhostTime() { m_time = Time.UnixTime; }
@@ -205,6 +277,8 @@ namespace Game.Entities
public CellCoord GetCellCoord() { return _cellCoord; }
public void SetCellCoord(CellCoord cellCoord) { _cellCoord = cellCoord; }
+ public CorpseData m_corpseData;
+
public Loot loot = new Loot();
public Player lootRecipient;
public bool lootForBody;
diff --git a/Source/Game/Entities/Creature/Creature.cs b/Source/Game/Entities/Creature/Creature.cs
index 88c387b2a..df0c9e29b 100644
--- a/Source/Game/Entities/Creature/Creature.cs
+++ b/Source/Game/Entities/Creature/Creature.cs
@@ -46,8 +46,6 @@ namespace Game.Entities
m_meleeDamageSchoolMask = SpellSchoolMask.Normal;
m_regenTimer = SharedConst.CreatureRegenInterval;
- valuesCount = (int)UnitFields.End;
- _dynamicValuesCount = (int)UnitDynamicFields.End;
m_SightDistance = SharedConst.SightRangeUnit;
@@ -192,9 +190,8 @@ namespace Game.Entities
m_creatureInfo = cinfo; // map mode related always
// equal to player Race field, but creature does not have race
- SetByteValue(UnitFields.Bytes0, 0, 0);
-
- SetByteValue(UnitFields.Bytes0, 1, (byte)cinfo.UnitClass);
+ SetRace(0);
+ SetClass((Class)cinfo.UnitClass);
// Cancel load if no model defined
if (cinfo.GetFirstValidModel() == null)
@@ -213,7 +210,7 @@ namespace Game.Entities
SetDisplayId(model.CreatureDisplayID, model.DisplayScale);
SetNativeDisplayId(model.CreatureDisplayID, model.DisplayScale);
- SetByteValue(UnitFields.Bytes0, 3, (byte)minfo.gender);
+ SetGender((Gender)minfo.gender);
// Load creature equipment
if (data == null || data.equipmentId == 0)
@@ -226,12 +223,12 @@ namespace Game.Entities
SetName(normalInfo.Name); // at normal entry always
- SetFloatValue(UnitFields.ModCastSpeed, 1.0f);
- SetFloatValue(UnitFields.ModCastHaste, 1.0f);
- SetFloatValue(UnitFields.ModHaste, 1.0f);
- SetFloatValue(UnitFields.ModRangedHaste, 1.0f);
- SetFloatValue(UnitFields.ModHasteRegen, 1.0f);
- SetFloatValue(UnitFields.ModTimeRate, 1.0f);
+ SetModCastingSpeed(1.0f);
+ SetModSpellHaste(1.0f);
+ SetModHaste(1.0f);
+ SetModRangedHaste(1.0f);
+ SetModHasteRegen(1.0f);
+ SetModTimeRate(1.0f);
SetSpeedRate(UnitMoveType.Walk, cinfo.SpeedWalk);
SetSpeedRate(UnitMoveType.Run, cinfo.SpeedRun);
@@ -240,7 +237,7 @@ namespace Game.Entities
SetObjectScale(cinfo.Scale);
- SetFloatValue(UnitFields.HoverHeight, cinfo.HoverHeight);
+ SetHoverHeight(cinfo.HoverHeight);
// checked at loading
m_defaultMovementType = (MovementGeneratorType)cinfo.MovementType;
@@ -273,19 +270,20 @@ namespace Game.Entities
ObjectManager.ChooseCreatureFlags(cInfo, out npcFlags, out unitFlags, out unitFlags2, out unitFlags3, out dynamicFlags, data);
if (cInfo.FlagsExtra.HasAnyFlag(CreatureFlagsExtra.Worldevent))
- SetUInt64Value(UnitFields.NpcFlags, npcFlags | Global.GameEventMgr.GetNPCFlag(this));
- else
- SetUInt64Value(UnitFields.NpcFlags, npcFlags);
+ npcFlags |= Global.GameEventMgr.GetNPCFlag(this);
- SetUInt32Value(UnitFields.Flags, unitFlags);
- SetUInt32Value(UnitFields.Flags2, unitFlags2);
- SetUInt32Value(UnitFields.Flags3, unitFlags3);
+ SetNpcFlags((NPCFlags)(npcFlags & 0xFFFFFFFF));
+ SetNpcFlags2((NPCFlags2)(npcFlags >> 32));
- SetUInt32Value(ObjectFields.DynamicFlags, dynamicFlags);
+ SetUnitFlags((UnitFlags)unitFlags);
+ SetUnitFlags2((UnitFlags2)unitFlags2);
+ SetUnitFlags3((UnitFlags3)unitFlags3);
- SetUInt32Value(UnitFields.StateAnimId, (uint)CliDB.AnimationDataStorage.Count);
+ SetDynamicFlags((UnitDynFlags)dynamicFlags);
- RemoveFlag(UnitFields.Flags, UnitFlags.InCombat);
+ SetUpdateFieldValue(m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.StateAnimID), (uint)CliDB.AnimationDataStorage.Count);
+
+ RemoveUnitFlag(UnitFlags.InCombat);
SetBaseAttackTime(WeaponAttackType.BaseAttack, cInfo.BaseAttackTime);
SetBaseAttackTime(WeaponAttackType.OffAttack, cInfo.BaseAttackTime);
@@ -323,14 +321,14 @@ namespace Game.Entities
Player owner = GetCharmerOrOwnerPlayerOrPlayerItself();
if (owner != null) // this check comes in case we don't have a player
{
- SetFaction(owner.getFaction()); // vehicles should have same as owner faction
+ SetFaction(owner.GetFaction()); // vehicles should have same as owner faction
owner.VehicleSpellInitialize();
}
}
// trigger creature is always not selectable and can not be attacked
if (IsTrigger())
- SetFlag(UnitFields.Flags, UnitFlags.NotSelectable);
+ AddUnitFlag(UnitFlags.NotSelectable);
InitializeReactState();
@@ -411,7 +409,7 @@ namespace Game.Entities
else if (m_corpseRemoveTime <= Time.UnixTime)
{
RemoveCorpse(false);
- Log.outDebug(LogFilter.Unit, "Removing corpse... {0} ", GetUInt32Value(ObjectFields.Entry));
+ Log.outDebug(LogFilter.Unit, "Removing corpse... {0} ", GetEntry());
}
break;
case DeathState.Alive:
@@ -519,7 +517,7 @@ namespace Game.Entities
if (!IsInEvadeMode() && (!bInCombat || IsPolymorphed() || CanNotReachTarget())) // regenerate health if not in combat or if polymorphed
RegenerateHealth();
- if (HasFlag(UnitFields.Flags2, UnitFlags2.RegeneratePower))
+ if (HasUnitFlag2(UnitFlags2.RegeneratePower))
{
if (GetPowerType() == PowerType.Energy)
Regenerate(PowerType.Energy);
@@ -798,7 +796,7 @@ namespace Game.Entities
//! Need to be called after LoadCreaturesAddon - MOVEMENTFLAG_HOVER is set there
if (HasUnitMovementFlag(MovementFlag.Hover))
{
- z += GetFloatValue(UnitFields.HoverHeight);
+ z += m_unitData.HoverHeight;
//! Relocate again with updated Z coord
Relocate(x, y, z, ang);
@@ -810,7 +808,7 @@ namespace Game.Entities
{
SetDisplayId(display.CreatureDisplayID, display.DisplayScale);
SetNativeDisplayId(display.CreatureDisplayID, display.DisplayScale);
- SetByteValue(UnitFields.Bytes0, 3, (byte)minfo.gender);
+ SetGender((Gender)minfo.gender);
}
LastUsedScriptID = GetScriptId();
@@ -956,7 +954,7 @@ namespace Game.Entities
{
m_lootRecipient.Clear();
m_lootRecipientGroup.Clear();
- RemoveFlag(ObjectFields.DynamicFlags, UnitDynFlags.Lootable | UnitDynFlags.Tapped);
+ RemoveDynamicFlag(UnitDynFlags.Lootable | UnitDynFlags.Tapped);
return;
}
@@ -972,7 +970,7 @@ namespace Game.Entities
if (group)
m_lootRecipientGroup = group.GetGUID();
- SetFlag(ObjectFields.DynamicFlags, UnitDynFlags.Tapped);
+ AddDynamicFlag(UnitDynFlags.Tapped);
}
public bool isTappedBy(Player player)
@@ -1011,11 +1009,11 @@ namespace Game.Entities
CreatureData data = Global.ObjectMgr.NewOrExistCreatureData(m_spawnId);
uint displayId = GetNativeDisplayId();
- ulong npcflag = GetUInt64Value(UnitFields.NpcFlags);
- uint unitFlags = GetUInt32Value(UnitFields.Flags);
- uint unitFlags2 = GetUInt32Value(UnitFields.Flags2);
- uint unitFlags3 = GetUInt32Value(UnitFields.Flags3);
- uint dynamicflags = GetUInt32Value(ObjectFields.DynamicFlags);
+ ulong npcflag = ((ulong)m_unitData.NpcFlags[1] << 32) | m_unitData.NpcFlags[0];
+ uint unitFlags = m_unitData.Flags;
+ uint unitFlags2 = m_unitData.Flags2;
+ uint unitFlags3 = m_unitData.Flags3;
+ UnitDynFlags dynamicflags = (UnitDynFlags)(uint)m_objectData.DynamicFlags;
// check if it's a custom model and if not, use 0 for displayId
CreatureTemplate cinfo = GetCreatureTemplate();
@@ -1037,7 +1035,7 @@ namespace Game.Entities
if (unitFlags3 == cinfo.UnitFlags3)
unitFlags3 = 0;
- if (dynamicflags == cinfo.DynamicFlags)
+ if (dynamicflags == (UnitDynFlags)cinfo.DynamicFlags)
dynamicflags = 0;
}
@@ -1064,7 +1062,7 @@ namespace Game.Entities
data.unit_flags = unitFlags;
data.unit_flags2 = unitFlags2;
data.unit_flags3 = unitFlags3;
- data.dynamicflags = dynamicflags;
+ data.dynamicflags = (uint)dynamicflags;
data.phaseId = GetDBPhase() > 0 ? (uint)GetDBPhase() : data.phaseId;
data.phaseGroup = GetDBPhase() < 0 ? (uint)-GetDBPhase() : data.phaseGroup;
@@ -1119,14 +1117,14 @@ namespace Game.Entities
if (HasScalableLevels())
{
- SetUInt32Value(UnitFields.ScalingLevelMin, cInfo.levelScaling.Value.MinLevel);
- SetUInt32Value(UnitFields.ScalingLevelMax, cInfo.levelScaling.Value.MaxLevel);
+ SetUpdateFieldValue(m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.ScalingLevelMin), cInfo.levelScaling.Value.MinLevel);
+ SetUpdateFieldValue(m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.ScalingLevelMax), cInfo.levelScaling.Value.MaxLevel);
int mindelta = Math.Min(cInfo.levelScaling.Value.DeltaLevelMax, cInfo.levelScaling.Value.DeltaLevelMin);
int maxdelta = Math.Max(cInfo.levelScaling.Value.DeltaLevelMax, cInfo.levelScaling.Value.DeltaLevelMin);
int delta = mindelta == maxdelta ? mindelta : RandomHelper.IRand(mindelta, maxdelta);
- SetInt32Value(UnitFields.ScalingLevelDelta, delta);
+ SetUpdateFieldValue(m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.ScalingLevelDelta), delta);
}
UpdateLevelDependantStats();
@@ -1434,9 +1432,9 @@ namespace Game.Entities
return false;
// This set of checks is should be done only for creatures
- if ((HasFlag(UnitFields.Flags, UnitFlags.ImmuneToNpc) && !who.IsTypeId(TypeId.Player)) // flag is valid only for non player characters
- || (HasFlag(UnitFields.Flags, UnitFlags.ImmuneToPc) && who.IsTypeId(TypeId.Player)) // immune to PC and target is a player, return false
- || (who.GetOwner() && who.GetOwner().IsTypeId(TypeId.Player) && HasFlag(UnitFields.Flags, UnitFlags.ImmuneToPc))) // player pets are immune to pc as well
+ if ((HasUnitFlag(UnitFlags.ImmuneToNpc) && !who.IsTypeId(TypeId.Player)) // flag is valid only for non player characters
+ || (HasUnitFlag(UnitFlags.ImmuneToPc) && who.IsTypeId(TypeId.Player)) // immune to PC and target is a player, return false
+ || (who.GetOwner() && who.GetOwner().IsTypeId(TypeId.Player) && HasUnitFlag(UnitFlags.ImmuneToPc))) // player pets are immune to pc as well
return false;
// Do not attack non-combat pets
@@ -1530,9 +1528,10 @@ namespace Game.Entities
DoNotReacquireTarget(); // cancel delayed re-target
SetTarget(ObjectGuid.Empty); // drop target - dead mobs shouldn't ever target things
- SetUInt64Value(UnitFields.NpcFlags, (ulong)NPCFlags.None);
+ SetNpcFlags(NPCFlags.None);
+ SetNpcFlags2(NPCFlags2.None);
- SetUInt32Value(UnitFields.MountDisplayId, 0); // if creature is mounted on a virtual mount, remove it at death
+ SetMountDisplayId(0); // if creature is mounted on a virtual mount, remove it at death
setActive(false);
@@ -1576,16 +1575,17 @@ namespace Game.Entities
ObjectManager.ChooseCreatureFlags(cInfo, out npcFlags, out unitFlags, out unitFlags2, out unitFlags3, out dynamicFlags, creatureData);
if (cInfo.FlagsExtra.HasAnyFlag(CreatureFlagsExtra.Worldevent))
- SetUInt64Value(UnitFields.NpcFlags, npcFlags | Global.GameEventMgr.GetNPCFlag(this));
- else
- SetUInt64Value(UnitFields.NpcFlags, npcFlags);
+ npcFlags |= Global.GameEventMgr.GetNPCFlag(this);
- SetUInt32Value(UnitFields.Flags, unitFlags);
- SetUInt32Value(UnitFields.Flags2, unitFlags2);
- SetUInt32Value(UnitFields.Flags3, unitFlags3);
- SetUInt32Value(ObjectFields.DynamicFlags, dynamicFlags);
+ SetNpcFlags((NPCFlags)(npcFlags & 0xFFFFFFFF));
+ SetNpcFlags2((NPCFlags2)(npcFlags >> 32));
- RemoveFlag(UnitFields.Flags, UnitFlags.InCombat);
+ SetUnitFlags((UnitFlags)unitFlags);
+ SetUnitFlags2((UnitFlags2)unitFlags2);
+ SetUnitFlags3((UnitFlags3)unitFlags3);
+ SetDynamicFlags((UnitDynFlags)dynamicFlags);
+
+ RemoveUnitFlag(UnitFlags.InCombat);
SetMeleeDamageSchool((SpellSchools)cInfo.DmgSchool);
}
@@ -1633,7 +1633,7 @@ namespace Game.Entities
{
SetDisplayId(display.CreatureDisplayID, display.DisplayScale);
SetNativeDisplayId(display.CreatureDisplayID, display.DisplayScale);
- SetByteValue(UnitFields.Bytes0, 3, (byte)minfo.gender);
+ SetGender((Gender)minfo.gender);
}
GetMotionMaster().InitDefault();
@@ -1805,9 +1805,9 @@ namespace Game.Entities
float dist = GetDistance(victim);
if (dist > range || dist < minrange)
continue;
- if (spellInfo.PreventionType.HasAnyFlag(SpellPreventionType.Silence) && HasFlag(UnitFields.Flags, UnitFlags.Silenced))
+ if (spellInfo.PreventionType.HasAnyFlag(SpellPreventionType.Silence) && HasUnitFlag(UnitFlags.Silenced))
continue;
- if (spellInfo.PreventionType.HasAnyFlag(SpellPreventionType.Pacify) && HasFlag(UnitFields.Flags, UnitFlags.Pacified))
+ if (spellInfo.PreventionType.HasAnyFlag(SpellPreventionType.Pacify) && HasUnitFlag(UnitFlags.Pacified))
continue;
return spellInfo;
}
@@ -1854,9 +1854,9 @@ namespace Game.Entities
if (dist > range || dist < minrange)
continue;
- if (spellInfo.PreventionType.HasAnyFlag(SpellPreventionType.Silence) && HasFlag(UnitFields.Flags, UnitFlags.Silenced))
+ if (spellInfo.PreventionType.HasAnyFlag(SpellPreventionType.Silence) && HasUnitFlag(UnitFlags.Silenced))
continue;
- if (spellInfo.PreventionType.HasAnyFlag(SpellPreventionType.Pacify) && HasFlag(UnitFields.Flags, UnitFlags.Pacified))
+ if (spellInfo.PreventionType.HasAnyFlag(SpellPreventionType.Pacify) && HasUnitFlag(UnitFlags.Pacified))
continue;
return spellInfo;
}
@@ -1969,7 +1969,7 @@ namespace Game.Entities
if (IsCivilian())
return false;
- if (HasFlag(UnitFields.Flags, UnitFlags.NonAttackable | UnitFlags.NotSelectable | UnitFlags.ImmuneToPc))
+ if (HasUnitFlag(UnitFlags.NonAttackable | UnitFlags.NotSelectable | UnitFlags.ImmuneToPc))
return false;
// skip fighting creature
@@ -1983,7 +1983,7 @@ namespace Game.Entities
// only from same creature faction
if (checkfaction)
{
- if (getFaction() != u.getFaction())
+ if (GetFaction() != u.GetFaction())
return false;
}
else
@@ -2009,7 +2009,7 @@ namespace Game.Entities
if (target.HasUnitState(UnitState.Died))
{
// guards can detect fake death
- if (IsGuard() && target.HasFlag(UnitFields.Flags2, UnitFlags2.FeignDeath))
+ if (IsGuard() && target.HasUnitFlag2(UnitFlags2.FeignDeath))
return true;
else
return false;
@@ -2099,18 +2099,16 @@ namespace Game.Entities
// 2 StandFlags
// 3 StandMiscFlags
- SetByteValue(UnitFields.Bytes1, UnitBytes1Offsets.StandState, (byte)(cainfo.bytes1 & 0xFF));
- //SetByteValue(UnitFields.Bytes1, UnitBytes1Offsets.PetTalent, (byte)((cainfo.bytes1 >> 8) & 0xFF));
- SetByteValue(UnitFields.Bytes1, UnitBytes1Offsets.PetTalents, 0);
- SetByteValue(UnitFields.Bytes1, UnitBytes1Offsets.VisFlag, (byte)((cainfo.bytes1 >> 16) & 0xFF));
- SetByteValue(UnitFields.Bytes1, UnitBytes1Offsets.AnimTier, (byte)((cainfo.bytes1 >> 24) & 0xFF));
+ SetStandState((UnitStandStateType)(cainfo.bytes1 & 0xFF));
+ SetVisFlags((UnitVisFlags)((cainfo.bytes1 >> 16) & 0xFF));
+ SetAnimTier((UnitBytes1Flags)((cainfo.bytes1 >> 24) & 0xFF), false);
//! Suspected correlation between UNIT_FIELD_BYTES_1, offset 3, value 0x2:
//! If no inhabittype_fly (if no MovementFlag_DisableGravity or MovementFlag_CanFly flag found in sniffs)
//! Check using InhabitType as movement flags are assigned dynamically
//! basing on whether the creature is in air or not
//! Set MovementFlag_Hover. Otherwise do nothing.
- if (Convert.ToBoolean(GetByteValue(UnitFields.Bytes1, UnitBytes1Offsets.AnimTier) & (byte)UnitBytes1Flags.Hover) && !Convert.ToBoolean(GetCreatureTemplate().InhabitType & InhabitType.Air))
+ if (Convert.ToBoolean(m_unitData.AnimTier & (byte)UnitBytes1Flags.Hover) && !Convert.ToBoolean(GetCreatureTemplate().InhabitType & InhabitType.Air))
AddUnitMovementFlag(MovementFlag.Hover);
}
@@ -2121,16 +2119,14 @@ namespace Game.Entities
// 2 PetFlags Pet only, so always 0 for default creature
// 3 ShapeshiftForm Must be determined/set by shapeshift spell/aura
- SetByteValue(UnitFields.Bytes2, UnitBytes2Offsets.SheathState, (byte)(cainfo.bytes2 & 0xFF));
- //SetByteValue(UnitFields.Bytes2, UnitBytes2Offsets.PvpFlag, uint8((cainfo->bytes2 >> 8) & 0xFF));
- //SetByteValue(UnitFields.Bytes2, UnitBytes2Offsets.PetFlags, uint8((cainfo->bytes2 >> 16) & 0xFF));
- SetByteValue(UnitFields.Bytes2, UnitBytes2Offsets.PetFlags, 0);
- //SetByteValue(UnitFields.Bytes2, UNIT_BYTES_2_OFFSET_SHAPESHIFT_FORM, uint8((cainfo->bytes2 >> 24) & 0xFF));
- SetByteValue(UnitFields.Bytes2, UnitBytes2Offsets.ShapeshiftForm, 0);
+ SetSheath((SheathState)(cainfo.bytes2 & 0xFF));
+ SetPvpFlags(UnitPVPStateFlags.None);
+ SetPetFlags(UnitPetFlags.None);
+ SetShapeshiftForm(ShapeShiftForm.None);
}
if (cainfo.emote != 0)
- SetUInt32Value(UnitFields.NpcEmotestate, cainfo.emote);
+ SetEmoteState((Emote)cainfo.emote);
SetAIAnimKitId(cainfo.aiAnimKit);
SetMovementAnimKitId(cainfo.movementAnimKit);
@@ -2289,7 +2285,7 @@ namespace Game.Entities
{
if (loot.loot_type != LootType.Skinning && !IsPet() && GetCreatureTemplate().SkinLootId != 0 && hasLootRecipient())
if (LootStorage.Skinning.HaveLootFor(GetCreatureTemplate().SkinLootId))
- SetFlag(UnitFields.Flags, UnitFlags.Skinnable);
+ AddUnitFlag(UnitFlags.Skinnable);
long now = Time.UnixTime;
// Do not reset corpse remove time if corpse is already removed
@@ -2380,12 +2376,12 @@ namespace Game.Entities
// between UNIT_FIELD_SCALING_LEVEL_MIN and UNIT_FIELD_SCALING_LEVEL_MAX
if (HasScalableLevels())
{
- int targetLevelWithDelta = ((int)unitTarget.getLevel() + GetInt32Value(UnitFields.ScalingLevelDelta));
+ int targetLevelWithDelta = (int)unitTarget.getLevel() + m_unitData.ScalingLevelDelta;
if (target.IsPlayer())
- targetLevelWithDelta += target.GetInt32Value(ActivePlayerFields.ScalingPlayerLevelDelta);
+ targetLevelWithDelta += target.ToPlayer().m_activePlayerData.ScalingPlayerLevelDelta;
- return (uint)MathFunctions.RoundToInterval(ref targetLevelWithDelta, GetInt32Value(UnitFields.ScalingLevelMin), GetInt32Value(UnitFields.ScalingLevelMax));
+ return (uint)MathFunctions.RoundToInterval(ref targetLevelWithDelta, m_unitData.ScalingLevelMin, m_unitData.ScalingLevelMax);
}
}
@@ -2409,7 +2405,7 @@ namespace Game.Entities
if (creatureData != null)
return creatureData.ScriptId;
- return Global.ObjectMgr.GetCreatureTemplate(GetEntry()).ScriptID;
+ return Global.ObjectMgr.GetCreatureTemplate(GetEntry()) != null ? Global.ObjectMgr.GetCreatureTemplate(GetEntry()).ScriptID : 0;
}
public VendorItemData GetVendorItems()
@@ -2668,8 +2664,8 @@ namespace Game.Entities
CreatureModelInfo minfo = Global.ObjectMgr.GetCreatureModelInfo(GetDisplayId());
if (minfo != null)
{
- SetFloatValue(UnitFields.BoundingRadius, (IsPet() ? 1.0f : minfo.BoundingRadius) * scale);
- SetFloatValue(UnitFields.CombatReach, (IsPet() ? SharedConst.DefaultCombatReach : minfo.CombatReach) * scale);
+ SetBoundingRadius((IsPet() ? 1.0f : minfo.BoundingRadius) * scale);
+ SetCombatReach((IsPet() ? SharedConst.DefaultCombatReach : minfo.CombatReach) * scale);
}
}
@@ -2680,8 +2676,8 @@ namespace Game.Entities
CreatureModelInfo minfo = Global.ObjectMgr.GetCreatureModelInfo(modelId);
if (minfo != null)
{
- SetFloatValue(UnitFields.BoundingRadius, (IsPet() ? 1.0f : minfo.BoundingRadius) * GetObjectScale());
- SetFloatValue(UnitFields.CombatReach, (IsPet() ? SharedConst.DefaultCombatReach : minfo.CombatReach) * GetObjectScale());
+ SetBoundingRadius((IsPet() ? 1.0f : minfo.BoundingRadius) * GetObjectScale());
+ SetCombatReach((IsPet() ? SharedConst.DefaultCombatReach : minfo.CombatReach) * GetObjectScale());
}
}
@@ -2697,7 +2693,7 @@ namespace Game.Entities
if (IsFocusing(null, true))
m_suppressedTarget = guid;
else
- SetGuidValue(UnitFields.Target, guid);
+ SetUpdateFieldValue(m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.Target), guid);
}
public void FocusTarget(Spell focusSpell, WorldObject target)
@@ -2716,7 +2712,7 @@ namespace Game.Entities
// store pre-cast values for target and orientation (used to later restore)
if (!IsFocusing(null, true))
{ // only overwrite these fields if we aren't transitioning from one spell focus to another
- m_suppressedTarget = GetGuidValue(UnitFields.Target);
+ m_suppressedTarget = GetTarget();
m_suppressedOrientation = GetOrientation();
}
@@ -2724,9 +2720,9 @@ namespace Game.Entities
// set target, then force send update packet to players if it changed to provide appropriate facing
ObjectGuid newTarget = target ? target.GetGUID() : ObjectGuid.Empty;
- if (GetGuidValue(UnitFields.Target) != newTarget)
+ if (GetTarget() != newTarget)
{
- SetGuidValue(UnitFields.Target, newTarget);
+ SetUpdateFieldValue(m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.Target), newTarget);
// here we determine if the (relatively expensive) forced update is worth it, or whether we can afford to wait until the scheduled update tick
// only require instant update for spells that actually have a visual
@@ -2794,7 +2790,7 @@ namespace Game.Entities
if (IsPet())// player pets do not use delay system
{
- SetGuidValue(UnitFields.Target, m_suppressedTarget);
+ SetUpdateFieldValue(m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.Target), m_suppressedTarget);
if (!m_suppressedTarget.IsEmpty())
{
WorldObject objTarget = Global.ObjAccessor.GetWorldObject(this, m_suppressedTarget);
diff --git a/Source/Game/Entities/Creature/CreatureData.cs b/Source/Game/Entities/Creature/CreatureData.cs
index a21593085..1d9414f7f 100644
--- a/Source/Game/Entities/Creature/CreatureData.cs
+++ b/Source/Game/Entities/Creature/CreatureData.cs
@@ -42,7 +42,7 @@ namespace Game.Entities
public uint RequiredExpansion;
public uint VignetteID; // @todo Read Vignette.db2
public uint Faction;
- public NPCFlags Npcflag;
+ public ulong Npcflag;
public float SpeedWalk;
public float SpeedRun;
public float Scale;
diff --git a/Source/Game/Entities/DynamicObject.cs b/Source/Game/Entities/DynamicObject.cs
index fe9423be5..461cc552a 100644
--- a/Source/Game/Entities/DynamicObject.cs
+++ b/Source/Game/Entities/DynamicObject.cs
@@ -17,6 +17,7 @@
using Framework.Constants;
using Game.Spells;
+using Game.Network;
namespace Game.Entities
{
@@ -29,7 +30,7 @@ namespace Game.Entities
m_updateFlag.Stationary = true;
- valuesCount = (int)DynamicObjectFields.End;
+ m_dynamicObjectData = new DynamicObjectData();
}
public override void Dispose()
@@ -77,7 +78,6 @@ namespace Game.Entities
public bool CreateDynamicObject(ulong guidlow, Unit caster, SpellInfo spell, Position pos, float radius, DynamicObjectType type, uint spellXSpellVisualId)
{
- _spellXSpellVisualId = spellXSpellVisualId;
SetMap(caster.GetMap());
Relocate(pos);
if (!IsPositionValid())
@@ -91,13 +91,13 @@ namespace Game.Entities
SetEntry(spell.Id);
SetObjectScale(1f);
- SetGuidValue(DynamicObjectFields.Caster, caster.GetGUID());
- SetUInt32Value(DynamicObjectFields.Type, (uint)type);
- SetUInt32Value(DynamicObjectFields.SpellXSpellVisualId, spellXSpellVisualId);
- SetUInt32Value(DynamicObjectFields.SpellId, spell.Id);
- SetFloatValue(DynamicObjectFields.Radius, radius);
- SetUInt32Value(DynamicObjectFields.CastTime, Time.GetMSTime());
+ SetUpdateFieldValue(m_values.ModifyValue(m_dynamicObjectData).ModifyValue(m_dynamicObjectData.Caster), caster.GetGUID());
+ SetUpdateFieldValue(m_values.ModifyValue(m_dynamicObjectData).ModifyValue(m_dynamicObjectData.Type), (byte)type);
+ SetUpdateFieldValue(m_values.ModifyValue(m_dynamicObjectData).ModifyValue(m_dynamicObjectData.SpellXSpellVisualID), spellXSpellVisualId);
+ SetUpdateFieldValue(m_values.ModifyValue(m_dynamicObjectData).ModifyValue(m_dynamicObjectData.SpellID), spell.Id);
+ SetUpdateFieldValue(m_values.ModifyValue(m_dynamicObjectData).ModifyValue(m_dynamicObjectData.Radius), radius);
+ SetUpdateFieldValue(m_values.ModifyValue(m_dynamicObjectData).ModifyValue(m_dynamicObjectData.CastTime), Time.GetMSTime());
if (IsWorldObject())
setActive(true); //must before add to map to be put in world container
@@ -207,7 +207,7 @@ namespace Game.Entities
if (caster != null)
{
caster.SetViewpoint(this, true);
- _isViewpoint = true;
+ _isViewpoint = true;
}
}
@@ -242,16 +242,51 @@ namespace Game.Entities
return Global.SpellMgr.GetSpellInfo(GetSpellId());
}
- public Unit GetCaster() { return _caster; }
- public uint GetSpellId() { return GetUInt32Value(DynamicObjectFields.SpellId); }
- public ObjectGuid GetCasterGUID() { return GetGuidValue(DynamicObjectFields.Caster); }
- public float GetRadius() { return GetFloatValue(DynamicObjectFields.Radius); }
+ public override void BuildValuesCreate(WorldPacket data, Player target)
+ {
+ UpdateFieldFlag flags = GetUpdateFieldFlagsFor(target);
+ WorldPacket buffer = new WorldPacket();
+ buffer.WriteUInt8((byte)flags);
+ m_objectData.WriteCreate(buffer, flags, this, target);
+ m_dynamicObjectData.WriteCreate(buffer, flags, this, target);
+
+ data.WriteUInt32(buffer.GetSize());
+ data.WriteBytes(buffer);
+ }
+
+ public override void BuildValuesUpdate(WorldPacket data, Player target)
+ {
+ UpdateFieldFlag flags = GetUpdateFieldFlagsFor(target);
+ WorldPacket buffer = new WorldPacket();
+
+ buffer.WriteUInt32(m_values.GetChangedObjectTypeMask());
+ if (m_values.HasChanged(TypeId.Object))
+ m_objectData.WriteUpdate(buffer, flags, this, target);
+
+ if (m_values.HasChanged(TypeId.DynamicObject))
+ m_dynamicObjectData.WriteUpdate(buffer, flags, this, target);
+
+ data.WriteUInt32(buffer.GetSize());
+ data.WriteBytes(buffer);
+ }
+
+ public override void ClearUpdateMask(bool remove)
+ {
+ m_values.ClearChangesMask(m_dynamicObjectData);
+ base.ClearUpdateMask(remove);
+ }
+
+ public Unit GetCaster() { return _caster; }
+ public uint GetSpellId() { return m_dynamicObjectData.SpellID; }
+ public ObjectGuid GetCasterGUID() { return m_dynamicObjectData.Caster; }
+ public float GetRadius() { return m_dynamicObjectData.Radius; }
+
+ DynamicObjectData m_dynamicObjectData;
Aura _aura;
Aura _removedAura;
Unit _caster;
int _duration; // for non-aura dynobjects
- uint _spellXSpellVisualId;
bool _isViewpoint;
}
diff --git a/Source/Game/Entities/GameObject/GameObject.cs b/Source/Game/Entities/GameObject/GameObject.cs
index d55a1d4e6..1184278ba 100644
--- a/Source/Game/Entities/GameObject/GameObject.cs
+++ b/Source/Game/Entities/GameObject/GameObject.cs
@@ -31,6 +31,7 @@ using Game.Spells;
using System;
using System.Collections.Generic;
using System.Linq;
+using Game.Network;
namespace Game.Entities
{
@@ -44,13 +45,14 @@ namespace Game.Entities
m_updateFlag.Stationary = true;
m_updateFlag.Rotation = true;
- valuesCount = (int)GameObjectFields.End;
m_respawnDelayTime = 300;
m_lootState = LootState.NotReady;
m_spawnedByDefault = true;
ResetLootMode(); // restore default loot mode
m_stationaryPosition = new Position();
+
+ m_gameObjectData = new GameObjectFieldData();
}
public override void Dispose()
@@ -248,8 +250,8 @@ namespace Game.Entities
if (m_goTemplateAddon != null)
{
- SetUInt32Value(GameObjectFields.Faction, m_goTemplateAddon.faction);
- SetUInt32Value(GameObjectFields.Flags, m_goTemplateAddon.flags);
+ SetFaction(m_goTemplateAddon.faction);
+ SetFlags((GameObjectFlags)m_goTemplateAddon.flags);
if (m_goTemplateAddon.WorldEffectID != 0)
{
@@ -267,7 +269,7 @@ namespace Game.Entities
m_model = CreateModel();
if (m_model != null && m_model.isMapObject())
- SetFlag(GameObjectFields.Flags, GameObjectFlags.MapObject);
+ AddFlag(GameObjectFlags.MapObject);
// GAMEOBJECT_BYTES_1, index at 0, 1, 2 and 3
SetGoType(goInfo.type);
@@ -275,7 +277,7 @@ namespace Game.Entities
SetGoState(goState);
SetGoArtKit((byte)artKit);
- SetUInt32Value(GameObjectFields.StateAnimId, (uint)CliDB.AnimationDataStorage.Count);
+ SetUpdateFieldValue(m_values.ModifyValue(m_gameObjectData).ModifyValue(m_gameObjectData.SpawnTrackingStateAnimID), (uint)CliDB.AnimationDataStorage.Count);
switch (goInfo.type)
{
@@ -287,7 +289,8 @@ namespace Game.Entities
m_goValue.Building.Health = 20000;//goinfo.DestructibleBuilding.intactNumHits + goinfo.DestructibleBuilding.damagedNumHits;
m_goValue.Building.MaxHealth = m_goValue.Building.Health;
SetGoAnimProgress(255);
- SetUInt32Value(GameObjectFields.ParentRotation, goInfo.DestructibleBuilding.DestructibleModelRec);
+ // yes, even after the updatefield rewrite this garbage hack is still in client
+ SetUpdateFieldValue(m_values.ModifyValue(m_gameObjectData).ModifyValue(m_gameObjectData.ParentRotation), new Quaternion(goInfo.DestructibleBuilding.DestructibleModelRec, 0f, 0f, 0f));
break;
case GameObjectTypes.Transport:
m_goValue.Transport.AnimationInfo = Global.TransportMgr.GetTransportAnimInfo(goInfo.entry);
@@ -324,7 +327,7 @@ namespace Game.Entities
SetGoAnimProgress(animProgress);
break;
case GameObjectTypes.FishingNode:
- SetUInt32Value(GameObjectFields.Level, 1);
+ SetLevel(1);
SetGoAnimProgress(255);
break;
case GameObjectTypes.Trap:
@@ -341,10 +344,11 @@ namespace Game.Entities
}
break;
case GameObjectTypes.PhaseableMo:
- SetByteValue(GameObjectFields.Flags, 1, (byte)(m_goInfo.PhaseableMO.AreaNameSet & 0xF));
+ RemoveFlag((GameObjectFlags)0xF00);
+ AddFlag((GameObjectFlags)((m_goInfo.PhaseableMO.AreaNameSet & 0xF) << 8));
break;
case GameObjectTypes.CapturePoint:
- SetUInt32Value(GameObjectFields.SpellVisualId, m_goInfo.CapturePoint.SpellVisual1);
+ SetUpdateFieldValue(m_values.ModifyValue(m_gameObjectData).ModifyValue(m_gameObjectData.SpellVisualID), m_goInfo.CapturePoint.SpellVisual1);
break;
default:
SetGoAnimProgress(animProgress);
@@ -438,15 +442,15 @@ namespace Game.Entities
m_goValue.Transport.PathProgress += diff;
/* TODO: Fix movement in unloaded grid - currently GO will just disappear
public uint timer = m_goValue.Transport.PathProgress % GetTransportPeriod();
- TransportAnimationEntry const* node = m_goValue.Transport.AnimationInfo->GetAnimNode(timer);
- if (node && m_goValue.Transport.CurrentSeg != node->TimeSeg)
+ TransportAnimationEntry const* node = m_goValue.Transport.AnimationInfo.GetAnimNode(timer);
+ if (node && m_goValue.Transport.CurrentSeg != node.TimeSeg)
{
- m_goValue.Transport.CurrentSeg = node->TimeSeg;
+ m_goValue.Transport.CurrentSeg = node.TimeSeg;
- G3D.Quat rotation = m_goValue.Transport.AnimationInfo->GetAnimRotation(timer);
+ G3D.Quat rotation = m_goValue.Transport.AnimationInfo.GetAnimRotation(timer);
G3D.Vector3 pos = rotation.toRotationMatrix()
G3D.Matrix3.fromEulerAnglesZYX(GetOrientation(), 0.0f, 0.0f)
- G3D.Vector3(node->X, node->Y, node->Z);
+ G3D.Vector3(node.X, node.Y, node.Z);
pos += G3D.Vector3(GetStationaryX(), GetStationaryY(), GetStationaryZ());
@@ -454,7 +458,7 @@ namespace Game.Entities
TC_LOG_DEBUG("misc", "Src: {0} Dest: {1}", src.toString().c_str(), pos.toString().c_str());
- GetMap()->GameObjectRelocation(this, pos.x, pos.y, pos.z, GetOrientation());
+ GetMap().GameObjectRelocation(this, pos.x, pos.y, pos.z, GetOrientation());
}
*/
if (!m_goValue.Transport.StopFrames.Empty())
@@ -464,8 +468,9 @@ namespace Game.Entities
uint visualStateAfter = (m_goValue.Transport.StateUpdateTimer / 20000) & 1;
if (visualStateBefore != visualStateAfter)
{
- ForceValuesUpdateAtIndex(GameObjectFields.Level);
- ForceValuesUpdateAtIndex(GameObjectFields.Bytes1);
+ m_gameObjectData.ModifyValue(m_gameObjectData.Level);
+ m_gameObjectData.ModifyValue(m_gameObjectData.State);
+ ForceUpdateFieldChange();
}
}
}
@@ -480,7 +485,7 @@ namespace Game.Entities
if (caster != null && caster.IsTypeId(TypeId.Player))
{
SetGoState(GameObjectState.Active);
- SetUInt32Value(GameObjectFields.Flags, (uint)GameObjectFlags.NoDespawn);
+ SetFlags(GameObjectFlags.NoDespawn);
UpdateData udata = new UpdateData(caster.GetMapId());
UpdateObject packet;
@@ -650,7 +655,7 @@ namespace Game.Entities
case GameObjectTypes.Goober:
if (m_cooldownTime < Time.UnixTime)
{
- RemoveFlag(GameObjectFields.Flags, GameObjectFlags.InUse);
+ RemoveFlag(GameObjectFlags.InUse);
SetLootState(LootState.JustDeactivated);
m_cooldownTime = 0;
@@ -770,7 +775,7 @@ namespace Game.Entities
//reset flags
GameObjectTemplateAddon addon = GetTemplateAddon();
if (addon != null)
- SetUInt32Value(GameObjectFields.Flags, addon.flags);
+ SetFlags((GameObjectFlags)addon.flags);
}
if (m_respawnDelayTime == 0)
@@ -823,7 +828,7 @@ namespace Game.Entities
SetGoState(GameObjectState.Ready);
GameObjectTemplateAddon addon = GetTemplateAddon();
if (addon != null)
- SetUInt32Value(GameObjectFields.Flags, addon.flags);
+ SetFlags((GameObjectFlags)addon.flags);
uint poolid = GetSpawnId() != 0 ? Global.PoolMgr.IsPartOfAPool(GetSpawnId()) : 0;
if (poolid != 0)
@@ -918,7 +923,7 @@ namespace Game.Entities
data.animprogress = GetGoAnimProgress();
data.go_state = GetGoState();
data.spawnDifficulties = spawnDifficulties;
- data.artKit = GetGoArtKit();
+ data.artKit = (byte)GetGoArtKit();
Global.ObjectMgr.NewGOData(m_spawnId, data);
data.phaseId = GetDBPhase() > 0 ? (uint)GetDBPhase() : data.phaseId;
@@ -980,7 +985,7 @@ namespace Game.Entities
if (!GetGoInfo().GetDespawnPossibility() && !GetGoInfo().IsDespawnAtAction())
{
- SetFlag(GameObjectFields.Flags, GameObjectFlags.NoDespawn);
+ AddFlag(GameObjectFlags.NoDespawn);
m_respawnDelayTime = 0;
m_respawnTime = 0;
}
@@ -1104,7 +1109,7 @@ namespace Game.Entities
if (GetGoType() == GameObjectTypes.SpellFocus && GetGoInfo().SpellFocus.serverOnly == 1)
return true;
- if (GetUInt32Value(GameObjectFields.DisplayId) == 0)
+ if (GetDisplayId() == 0)
return true;
return false;
@@ -1157,7 +1162,7 @@ namespace Game.Entities
}
}
- bool ActivateToQuest(Player target)
+ public bool ActivateToQuest(Player target)
{
if (target.HasQuestForGO((int)GetEntry()))
return true;
@@ -1231,7 +1236,7 @@ namespace Game.Entities
if (m_lootState == LootState.Ready || m_lootState == LootState.JustDeactivated)
return;
- RemoveFlag(GameObjectFields.Flags, GameObjectFlags.InUse);
+ RemoveFlag(GameObjectFlags.InUse);
SetGoState(m_prevGoState);
SetLootState(LootState.JustDeactivated);
@@ -1254,7 +1259,7 @@ namespace Game.Entities
public void SetGoArtKit(byte kit)
{
- SetByteValue(GameObjectFields.Bytes1, 2, kit);
+ SetUpdateFieldValue(m_values.ModifyValue(m_gameObjectData).ModifyValue(m_gameObjectData.ArtKit), kit);
GameObjectData data = Global.ObjectMgr.GetGOData(m_spawnId);
if (data != null)
data.artKit = kit;
@@ -1278,9 +1283,9 @@ namespace Game.Entities
void SwitchDoorOrButton(bool activate, bool alternative = false)
{
if (activate)
- SetFlag(GameObjectFields.Flags, GameObjectFlags.InUse);
+ AddFlag(GameObjectFlags.InUse);
else
- RemoveFlag(GameObjectFields.Flags, GameObjectFlags.InUse);
+ RemoveFlag(GameObjectFlags.InUse);
if (GetGoState() == GameObjectState.Ready) //if closed . open
SetGoState(alternative ? GameObjectState.ActiveAlternative : GameObjectState.Active);
@@ -1423,7 +1428,7 @@ namespace Game.Entities
{
guid = player.GetGUID(); //this slot in now used by player
player.TeleportTo(GetMapId(), x_lowest, y_lowest, GetPositionZ(), GetOrientation(), (TeleportToOptions.NotLeaveTransport | TeleportToOptions.NotLeaveCombat | TeleportToOptions.NotUnSummonPet));
- player.SetStandState(UnitStandStateType.SitLowChair + (int)info.Chair.chairheight);
+ player.SetStandState(UnitStandStateType.SitLowChair + (byte)info.Chair.chairheight);
return;
}
}
@@ -1487,7 +1492,7 @@ namespace Game.Entities
if (trapEntry != 0)
TriggeringLinkedGameObject(trapEntry, user);
- SetFlag(GameObjectFields.Flags, GameObjectFlags.InUse);
+ AddFlag(GameObjectFlags.InUse);
SetLootState(LootState.Activated, user);
// this appear to be ok, however others exist in addition to this that should have custom (ex: 190510, 188692, 187389)
@@ -1864,7 +1869,7 @@ namespace Game.Entities
// fallback, will always work
player.TeleportTo(GetMapId(), GetPositionX(), GetPositionY(), GetPositionZ(), GetOrientation(), (TeleportToOptions.NotLeaveTransport | TeleportToOptions.NotLeaveCombat | TeleportToOptions.NotUnSummonPet));
- player.SetStandState((UnitStandStateType)(UnitStandStateType.SitLowChair + (int)info.BarberChair.chairheight), info.BarberChair.SitAnimKit);
+ player.SetStandState((UnitStandStateType.SitLowChair + (byte)info.BarberChair.chairheight), info.BarberChair.SitAnimKit);
return;
}
case GameObjectTypes.ArtifactForge:
@@ -1972,16 +1977,16 @@ namespace Game.Entities
return;
// remove immunity flags, to allow spell to target anything
- trigger.RemoveFlag(UnitFields.Flags, UnitFlags.ImmuneToNpc | UnitFlags.ImmuneToPc);
+ trigger.RemoveUnitFlag(UnitFlags.ImmuneToNpc | UnitFlags.ImmuneToPc);
Unit owner = GetOwner();
if (owner)
{
- trigger.SetFaction(owner.getFaction());
- if (owner.HasFlag(UnitFields.Flags, UnitFlags.PvpAttackable))
- trigger.SetFlag(UnitFields.Flags, UnitFlags.PvpAttackable);
+ trigger.SetFaction(owner.GetFaction());
+ if (owner.HasUnitFlag(UnitFlags.PvpAttackable))
+ trigger.AddUnitFlag(UnitFlags.PvpAttackable);
// copy pvp state flags from owner
- trigger.SetByteValue(UnitFields.Bytes2, UnitBytes2Offsets.PvpFlag, owner.GetByteValue(UnitFields.Bytes2, UnitBytes2Offsets.PvpFlag));
+ trigger.SetPvpFlags(owner.GetPvpFlags());
// needed for GO casts for proper target validation checks
trigger.SetOwnerGUID(owner.GetGUID());
trigger.CastSpell(target != null ? target : trigger, spellInfo, triggered, null, null, owner.GetGUID());
@@ -2097,10 +2102,7 @@ namespace Game.Entities
public void SetParentRotation(Quaternion rotation)
{
- SetFloatValue(GameObjectFields.ParentRotation + 0, rotation.X);
- SetFloatValue(GameObjectFields.ParentRotation + 1, rotation.Y);
- SetFloatValue(GameObjectFields.ParentRotation + 2, rotation.Z);
- SetFloatValue(GameObjectFields.ParentRotation + 3, rotation.W);
+ SetUpdateFieldValue(m_values.ModifyValue(m_gameObjectData).ModifyValue(m_gameObjectData.ParentRotation), rotation);
}
public void SetWorldRotationAngles(float z_rot, float y_rot, float x_rot)
@@ -2165,7 +2167,7 @@ namespace Game.Entities
switch (state)
{
case GameObjectDestructibleState.Intact:
- RemoveFlag(GameObjectFields.Flags, GameObjectFlags.Damaged | GameObjectFlags.Destroyed);
+ RemoveFlag(GameObjectFlags.Damaged | GameObjectFlags.Destroyed);
SetDisplayId(m_goInfo.displayId);
if (setHealth)
{
@@ -2179,8 +2181,8 @@ namespace Game.Entities
EventInform(m_goInfo.DestructibleBuilding.DamagedEvent, eventInvoker);
Global.ScriptMgr.OnGameObjectDamaged(this, eventInvoker);
- RemoveFlag(GameObjectFields.Flags, GameObjectFlags.Destroyed);
- SetFlag(GameObjectFields.Flags, GameObjectFlags.Damaged);
+ RemoveFlag(GameObjectFlags.Destroyed);
+ AddFlag(GameObjectFlags.Damaged);
uint modelId = m_goInfo.displayId;
DestructibleModelDataRecord modelData = CliDB.DestructibleModelDataStorage.LookupByKey(m_goInfo.DestructibleBuilding.DestructibleModelRec);
@@ -2211,8 +2213,8 @@ namespace Game.Entities
bg.DestroyGate(eventInvoker, this);
}
- RemoveFlag(GameObjectFields.Flags, GameObjectFlags.Damaged);
- SetFlag(GameObjectFields.Flags, GameObjectFlags.Destroyed);
+ RemoveFlag(GameObjectFlags.Damaged);
+ AddFlag(GameObjectFlags.Destroyed);
uint modelId = m_goInfo.displayId;
DestructibleModelDataRecord modelData = CliDB.DestructibleModelDataStorage.LookupByKey(m_goInfo.DestructibleBuilding.DestructibleModelRec);
@@ -2232,7 +2234,7 @@ namespace Game.Entities
case GameObjectDestructibleState.Rebuilding:
{
EventInform(m_goInfo.DestructibleBuilding.RebuildingEvent, eventInvoker);
- RemoveFlag(GameObjectFields.Flags, GameObjectFlags.Damaged | GameObjectFlags.Destroyed);
+ RemoveFlag(GameObjectFlags.Damaged | GameObjectFlags.Destroyed);
uint modelId = m_goInfo.displayId;
DestructibleModelDataRecord modelData = CliDB.DestructibleModelDataStorage.LookupByKey(m_goInfo.DestructibleBuilding.DestructibleModelRec);
@@ -2277,7 +2279,7 @@ namespace Game.Entities
public void SetGoState(GameObjectState state)
{
- SetByteValue(GameObjectFields.Bytes1, 0, (byte)state);
+ SetUpdateFieldValue(m_values.ModifyValue(m_gameObjectData).ModifyValue(m_gameObjectData.State), (sbyte)state);
Global.ScriptMgr.OnGameObjectStateChanged(this, state);
if (m_model != null && !IsTransport())
{
@@ -2327,7 +2329,7 @@ namespace Game.Entities
public void SetDisplayId(uint displayid)
{
- SetUInt32Value(GameObjectFields.DisplayId, displayid);
+ SetUpdateFieldValue(m_values.ModifyValue(m_gameObjectData).ModifyValue(m_gameObjectData.DisplayID), displayid);
UpdateModel();
}
@@ -2357,7 +2359,8 @@ namespace Game.Entities
case GameObjectTypes.GarrisonBuilding:
case GameObjectTypes.GarrisonPlot:
case GameObjectTypes.PhaseableMo:
- return (byte)(GetByteValue(GameObjectFields.Flags, 1) & 0xF);
+ var flags = (GameObjectFlags)(uint)m_gameObjectData.Flags;
+ return (byte)(((int)flags >> 8) & 0xF);
default:
break;
}
@@ -2386,7 +2389,10 @@ namespace Game.Entities
if (m_model != null)
GetMap().InsertGameObjectModel(m_model);
- ApplyModFlag(GameObjectFields.Flags, GameObjectFlags.MapObject, m_model != null && m_model.isMapObject());
+ if (m_model != null && m_model.isMapObject())
+ AddFlag(GameObjectFlags.MapObject);
+ else
+ RemoveFlag(GameObjectFlags.MapObject);
}
Player GetLootRecipient()
@@ -2434,7 +2440,7 @@ namespace Game.Entities
m_lootRecipientGroup = unitGroup.GetGUID();
}
- bool IsLootAllowedFor(Player player)
+ public bool IsLootAllowedFor(Player player)
{
if (m_lootRecipient.IsEmpty() && m_lootRecipientGroup.IsEmpty())
return true;
@@ -2455,103 +2461,39 @@ namespace Game.Entities
return ObjectAccessor.GetGameObject(this, m_linkedTrap);
}
- public override void BuildValuesUpdate(UpdateType updateType, ByteBuffer data, Player target)
+ public override void BuildValuesCreate(WorldPacket data, Player target)
{
- if (!target)
- return;
+ UpdateFieldFlag flags = GetUpdateFieldFlagsFor(target);
+ WorldPacket buffer = new WorldPacket();
- bool isStoppableTransport = GetGoType() == GameObjectTypes.Transport && !m_goValue.Transport.StopFrames.Empty();
- bool forcedFlags = GetGoType() == GameObjectTypes.Chest && GetGoInfo().Chest.usegrouplootrules != 0 && HasLootRecipient();
- bool targetIsGM = target.IsGameMaster();
+ buffer.WriteUInt8((byte)flags);
+ m_objectData.WriteCreate(buffer, flags, this, target);
+ m_gameObjectData.WriteCreate(buffer, flags, this, target);
- ByteBuffer fieldBuffer = new ByteBuffer();
- UpdateMask updateMask = new UpdateMask(valuesCount);
+ data.WriteUInt32(buffer.GetSize());
+ data.WriteBytes(buffer);
+ }
- uint[] flags = UpdateFieldFlags.GameObjectUpdateFieldFlags;
- uint visibleFlag = UpdateFieldFlags.Public;
- if (GetOwnerGUID() == target.GetGUID())
- visibleFlag |= UpdateFieldFlags.Owner;
+ public override void BuildValuesUpdate(WorldPacket data, Player target)
+ {
+ UpdateFieldFlag flags = GetUpdateFieldFlagsFor(target);
+ WorldPacket buffer = new WorldPacket();
- for (int index = 0; index < valuesCount; ++index)
- {
- if (_fieldNotifyFlags.HasAnyFlag(flags[index]) ||
- ((updateType == UpdateType.Values ? _changesMask.Get(index) : updateValues[index].UnsignedValue != 0) && flags[index].HasAnyFlag(visibleFlag)) ||
- (index == (int)GameObjectFields.Flags && forcedFlags))
- {
- updateMask.SetBit(index);
+ buffer.WriteUInt32(m_values.GetChangedObjectTypeMask());
+ if (m_values.HasChanged(TypeId.Object))
+ m_objectData.WriteUpdate(buffer, flags, this, target);
- if (index == (int)ObjectFields.DynamicFlags)
- {
- GameObjectDynamicLowFlags dynFlags = 0;
- short pathProgress = -1;
- switch (GetGoType())
- {
- case GameObjectTypes.QuestGiver:
- if (ActivateToQuest(target))
- dynFlags |= GameObjectDynamicLowFlags.Activate;
- break;
- case GameObjectTypes.Chest:
- case GameObjectTypes.Goober:
- if (ActivateToQuest(target) || targetIsGM)
- dynFlags |= GameObjectDynamicLowFlags.Activate | GameObjectDynamicLowFlags.Sparkle;
- break;
- case GameObjectTypes.Generic:
- if (ActivateToQuest(target))
- dynFlags |= GameObjectDynamicLowFlags.Sparkle;
- break;
- case GameObjectTypes.Transport:
- case GameObjectTypes.MapObjTransport:
- uint transportPeriod = GetTransportPeriod();
- if (transportPeriod != 0)
- {
- float timer = (float)m_goValue.Transport.PathProgress % transportPeriod;
- pathProgress = (short)(timer / transportPeriod * 65535.0f);
- }
- break;
- default:
- break;
- }
+ if (m_values.HasChanged(TypeId.GameObject))
+ m_gameObjectData.WriteUpdate(buffer, flags, this, target);
- fieldBuffer.WriteUInt16(dynFlags);
- fieldBuffer.WriteInt16(pathProgress);
- }
- else if (index == (int)GameObjectFields.Flags)
- {
- GameObjectFlags _flags = (GameObjectFlags)GetUInt32Value(GameObjectFields.Flags);
- if (GetGoType() == GameObjectTypes.Chest)
- if (GetGoInfo().Chest.usegrouplootrules != 0 && !IsLootAllowedFor(target))
- _flags |= GameObjectFlags.Locked | GameObjectFlags.NotSelectable;
+ data.WriteUInt32(buffer.GetSize());
+ data.WriteBytes(buffer);
+ }
- fieldBuffer.WriteUInt32(_flags);
- }
- else if (index == (int)GameObjectFields.Level)
- {
- if (isStoppableTransport)
- fieldBuffer.WriteUInt32(m_goValue.Transport.PathProgress);
- else
- fieldBuffer.WriteUInt32(updateValues[index].UnsignedValue);
- }
- else if (index == (int)GameObjectFields.Bytes1)
- {
- uint bytes1 = GetUInt32Value(index);
- if (isStoppableTransport && GetGoState() == GameObjectState.TransportActive)
- {
- if (Convert.ToBoolean((m_goValue.Transport.StateUpdateTimer / 20000) & 1))
- {
- bytes1 &= 0xFFFFFF00;
- bytes1 |= (int)GameObjectState.TransportStopped;
- }
- }
-
- fieldBuffer.WriteUInt32(bytes1);
- }
- else
- fieldBuffer.WriteUInt32(updateValues[index].UnsignedValue);
- }
- }
-
- updateMask.AppendToPacket(data);
- data.WriteBytes(fieldBuffer);
+ public override void ClearUpdateMask(bool remove)
+ {
+ m_values.ClearChangesMask(m_gameObjectData);
+ base.ClearUpdateMask(remove);
}
public void GetRespawnPosition(out float x, out float y, out float z, out float ori)
@@ -2632,7 +2574,8 @@ namespace Game.Entities
public GameObjectTemplate GetGoInfo() { return m_goInfo; }
public GameObjectTemplateAddon GetTemplateAddon() { return m_goTemplateAddon; }
- GameObjectData GetGoData() { return m_goData; }
+ public GameObjectData GetGoData() { return m_goData; }
+ public GameObjectValue GetGoValue() { return m_goValue; }
public ulong GetSpawnId() { return m_spawnId; }
@@ -2651,9 +2594,9 @@ namespace Game.Entities
Cypher.Assert(false);
}
m_spawnedByDefault = false; // all object with owner is despawned after delay
- SetGuidValue(GameObjectFields.CreatedBy, owner);
+ SetUpdateFieldValue(m_values.ModifyValue(m_gameObjectData).ModifyValue(m_gameObjectData.CreatedBy), owner);
}
- public ObjectGuid GetOwnerGUID() { return GetGuidValue(GameObjectFields.CreatedBy); }
+ public ObjectGuid GetOwnerGUID() { return m_gameObjectData.CreatedBy; }
public void SetSpellId(uint id)
{
@@ -2688,12 +2631,18 @@ namespace Game.Entities
public void SetSpawnedByDefault(bool b) { m_spawnedByDefault = b; }
public uint GetRespawnDelay() { return m_respawnDelayTime; }
- public GameObjectTypes GetGoType() { return (GameObjectTypes)GetByteValue(GameObjectFields.Bytes1, 1); }
- public void SetGoType(GameObjectTypes type) { SetByteValue(GameObjectFields.Bytes1, 1, (byte)type); }
- public GameObjectState GetGoState() { return (GameObjectState)GetByteValue(GameObjectFields.Bytes1, 0); }
- byte GetGoArtKit() { return GetByteValue(GameObjectFields.Bytes1, 2); }
- byte GetGoAnimProgress() { return GetByteValue(GameObjectFields.Bytes1, 3); }
- public void SetGoAnimProgress(uint animprogress) { SetByteValue(GameObjectFields.Bytes1, 3, (byte)animprogress); }
+ public bool HasFlag(GameObjectFlags flags) { return (m_gameObjectData.Flags & (uint)flags) != 0; }
+ public void AddFlag(GameObjectFlags flags) { SetUpdateFieldFlagValue(m_values.ModifyValue(m_gameObjectData).ModifyValue(m_gameObjectData.Flags), (uint)flags); }
+ public void RemoveFlag(GameObjectFlags flags) { RemoveUpdateFieldFlagValue(m_values.ModifyValue(m_gameObjectData).ModifyValue(m_gameObjectData.Flags), (uint)flags); }
+ public void SetFlags(GameObjectFlags flags) { SetUpdateFieldValue(m_values.ModifyValue(m_gameObjectData).ModifyValue(m_gameObjectData.Flags), (uint)flags); }
+ public void SetLevel(uint level) { SetUpdateFieldValue(m_values.ModifyValue(m_gameObjectData).ModifyValue(m_gameObjectData.Level), level); }
+
+ public GameObjectTypes GetGoType() { return (GameObjectTypes)(sbyte)m_gameObjectData.TypeID; }
+ public void SetGoType(GameObjectTypes type) { SetUpdateFieldValue(m_values.ModifyValue(m_gameObjectData).ModifyValue(m_gameObjectData.TypeID), (sbyte)type); }
+ public GameObjectState GetGoState() { return (GameObjectState)(sbyte)m_gameObjectData.State; }
+ uint GetGoArtKit() { return m_gameObjectData.ArtKit; }
+ byte GetGoAnimProgress() { return m_gameObjectData.PercentHealth; }
+ public void SetGoAnimProgress(uint animprogress) { SetUpdateFieldValue(m_values.ModifyValue(m_gameObjectData).ModifyValue(m_gameObjectData.PercentHealth), (byte)animprogress); }
public LootState getLootState() { return m_lootState; }
public LootModes GetLootMode() { return m_LootMode; }
@@ -2732,19 +2681,19 @@ namespace Game.Entities
GameObjectDestructibleState GetDestructibleState()
{
- if (HasFlag(GameObjectFields.Flags, GameObjectFlags.Destroyed))
+ if ((m_gameObjectData.Flags & (uint)GameObjectFlags.Destroyed) != 0)
return GameObjectDestructibleState.Destroyed;
- if (HasFlag(GameObjectFields.Flags, GameObjectFlags.Damaged))
+ if ((m_gameObjectData.Flags & (uint)GameObjectFlags.Damaged) != 0)
return GameObjectDestructibleState.Damaged;
return GameObjectDestructibleState.Intact;
}
public GameObjectAI GetAI() { return m_AI; }
- public uint GetDisplayId() { return GetUInt32Value(GameObjectFields.DisplayId); }
+ public uint GetDisplayId() { return m_gameObjectData.DisplayID; }
- uint GetFaction() { return GetUInt32Value(GameObjectFields.Faction); }
- public void SetFaction(uint faction) { SetUInt32Value(GameObjectFields.Faction, faction); }
+ public uint GetFaction() { return m_gameObjectData.FactionTemplate; }
+ public void SetFaction(uint faction) { SetUpdateFieldValue(m_values.ModifyValue(m_gameObjectData).ModifyValue(m_gameObjectData.FactionTemplate), faction); }
public override float GetStationaryX() { return m_stationaryPosition.GetPositionX(); }
public override float GetStationaryY() { return m_stationaryPosition.GetPositionY(); }
@@ -2766,7 +2715,8 @@ namespace Game.Entities
}
#region Fields
- public GameObjectValue m_goValue;
+ protected GameObjectFieldData m_gameObjectData;
+ protected GameObjectValue m_goValue;
protected GameObjectTemplate m_goInfo;
protected GameObjectTemplateAddon m_goTemplateAddon;
GameObjectData m_goData;
diff --git a/Source/Game/Entities/Item/Bag.cs b/Source/Game/Entities/Item/Bag.cs
index a9d018046..6984c7698 100644
--- a/Source/Game/Entities/Item/Bag.cs
+++ b/Source/Game/Entities/Item/Bag.cs
@@ -17,6 +17,7 @@
using Framework.Constants;
using Framework.Database;
+using Game.Network;
namespace Game.Entities
{
@@ -27,8 +28,7 @@ namespace Game.Entities
objectTypeMask |= TypeMask.Container;
objectTypeId = TypeId.Container;
- valuesCount = (int)ContainerFields.End;
- _dynamicValuesCount = (int)ItemDynamicFields.End;
+ m_containerData = new ContainerData();
}
public override void Dispose()
@@ -86,20 +86,20 @@ namespace Game.Entities
if (owner)
{
- SetGuidValue(ItemFields.Owner, owner.GetGUID());
- SetGuidValue(ItemFields.Contained, owner.GetGUID());
+ SetOwnerGUID(owner.GetGUID());
+ SetContainedIn(owner.GetGUID());
}
- SetUInt32Value(ItemFields.MaxDurability, itemProto.MaxDurability);
- SetUInt32Value(ItemFields.Durability, itemProto.MaxDurability);
- SetUInt32Value(ItemFields.StackCount, 1);
+ SetUpdateFieldValue(m_values.ModifyValue(m_itemData).ModifyValue(m_itemData.MaxDurability), itemProto.MaxDurability);
+ SetDurability(itemProto.MaxDurability);
+ SetCount(1);
// Setting the number of Slots the Container has
- SetUInt32Value(ContainerFields.NumSlots, itemProto.GetContainerSlots());
+ SetBagSize(itemProto.GetContainerSlots());
// Cleaning 20 slots
for (byte i = 0; i < ItemConst.MaxBagSize; ++i)
- SetGuidValue(ContainerFields.Slot1 + (i * 4), ObjectGuid.Empty);
+ SetSlot(i, ObjectGuid.Empty);
m_bagslot = new Item[ItemConst.MaxBagSize];
return true;
@@ -111,11 +111,11 @@ namespace Game.Entities
return false;
ItemTemplate itemProto = GetTemplate(); // checked in Item.LoadFromDB
- SetUInt32Value(ContainerFields.NumSlots, itemProto.GetContainerSlots());
+ SetBagSize(itemProto.GetContainerSlots());
// cleanup bag content related item value fields (its will be filled correctly from `character_inventory`)
for (byte i = 0; i < ItemConst.MaxBagSize; ++i)
{
- SetGuidValue(ContainerFields.Slot1 + (i * 4), ObjectGuid.Empty);
+ SetSlot(i, ObjectGuid.Empty);
m_bagslot[i] = null;
}
return true;
@@ -144,9 +144,9 @@ namespace Game.Entities
{
if (m_bagslot[slot] != null)
m_bagslot[slot].SetContainer(null);
-
+
m_bagslot[slot] = null;
- SetGuidValue(ContainerFields.Slot1 + (slot * 4), ObjectGuid.Empty);
+ SetSlot(slot, ObjectGuid.Empty);
}
public void StoreItem(byte slot, Item pItem, bool update)
@@ -154,9 +154,9 @@ namespace Game.Entities
if (pItem != null && pItem.GetGUID() != GetGUID())
{
m_bagslot[slot] = pItem;
- SetGuidValue(ContainerFields.Slot1 + (slot * 4), pItem.GetGUID());
- pItem.SetGuidValue(ItemFields.Contained, GetGUID());
- pItem.SetGuidValue(ItemFields.Owner, GetOwnerGUID());
+ SetSlot(slot, pItem.GetGUID());
+ pItem.SetContainedIn(GetGUID());
+ pItem.SetOwnerGUID(GetOwnerGUID());
pItem.SetContainer(this);
pItem.SetSlot(slot);
}
@@ -171,6 +171,45 @@ namespace Game.Entities
m_bagslot[i].BuildCreateUpdateBlockForPlayer(data, target);
}
+ public override void BuildValuesCreate(WorldPacket data, Player target)
+ {
+ UpdateFieldFlag flags = GetUpdateFieldFlagsFor(target);
+ WorldPacket buffer = new WorldPacket();
+
+ buffer.WriteUInt8((byte)flags);
+ m_objectData.WriteCreate(buffer, flags, this, target);
+ m_itemData.WriteCreate(buffer, flags, this, target);
+ m_containerData.WriteCreate(buffer, flags, this, target);
+
+ data.WriteUInt32(buffer.GetSize());
+ data.WriteBytes(buffer);
+ }
+
+ public override void BuildValuesUpdate(WorldPacket data, Player target)
+ {
+ UpdateFieldFlag flags = GetUpdateFieldFlagsFor(target);
+ WorldPacket buffer = new WorldPacket();
+
+ buffer.WriteUInt32(m_values.GetChangedObjectTypeMask());
+ if (m_values.HasChanged(TypeId.Object))
+ m_objectData.WriteUpdate(buffer, flags, this, target);
+
+ if (m_values.HasChanged(TypeId.Item))
+ m_itemData.WriteUpdate(buffer, flags, this, target);
+
+ if (m_values.HasChanged(TypeId.Container))
+ m_containerData.WriteUpdate(buffer, flags, this, target);
+
+ data.WriteUInt32(buffer.GetSize());
+ data.WriteBytes(buffer);
+ }
+
+ public override void ClearUpdateMask(bool remove)
+ {
+ m_values.ClearChangesMask(m_containerData);
+ base.ClearUpdateMask(remove);
+ }
+
public bool IsEmpty()
{
for (var i = 0; i < GetBagSize(); ++i)
@@ -243,13 +282,17 @@ namespace Game.Entities
return null;
}
- public uint GetBagSize() { return GetUInt32Value(ContainerFields.NumSlots); }
+ public uint GetBagSize() { return m_containerData.NumSlots; }
+ void SetBagSize(uint numSlots) { SetUpdateFieldValue(m_values.ModifyValue(m_containerData).ModifyValue(m_containerData.NumSlots), numSlots); }
+
+ void SetSlot(int slot, ObjectGuid guid) { SetUpdateFieldValue(ref m_values.ModifyValue(m_containerData).ModifyValue(m_containerData.Slots, slot), guid); }
public static Item NewItemOrBag(ItemTemplate proto)
{
return (proto.GetInventoryType() == InventoryType.Bag) ? new Bag() : new Item();
}
+ ContainerData m_containerData;
Item[] m_bagslot = new Item[36];
}
}
diff --git a/Source/Game/Entities/Item/Item.cs b/Source/Game/Entities/Item/Item.cs
index 9edbad82c..37ff0c4f4 100644
--- a/Source/Game/Entities/Item/Item.cs
+++ b/Source/Game/Entities/Item/Item.cs
@@ -39,8 +39,8 @@ namespace Game.Entities
objectTypeMask |= TypeMask.Item;
objectTypeId = TypeId.Item;
- valuesCount = (int)ItemFields.End;
- _dynamicValuesCount = (int)ItemDynamicFields.End;
+ m_itemData = new ItemData();
+
uState = ItemUpdateState.New;
uQueuePos = -1;
m_lastPlayedTimeUpdate = Time.UnixTime;
@@ -58,7 +58,7 @@ namespace Game.Entities
if (owner)
{
SetOwnerGUID(owner.GetGUID());
- SetGuidValue(ItemFields.Contained, owner.GetGUID());
+ SetContainedIn(owner.GetGUID());
}
ItemTemplate itemProto = Global.ObjectMgr.GetItemTemplate(itemid);
@@ -66,18 +66,18 @@ namespace Game.Entities
return false;
_bonusData = new BonusData(itemProto);
- SetUInt32Value(ItemFields.StackCount, 1);
- SetUInt32Value(ItemFields.MaxDurability, itemProto.MaxDurability);
- SetUInt32Value(ItemFields.Durability, itemProto.MaxDurability);
+ SetCount(1);
+ SetUpdateFieldValue(m_values.ModifyValue(m_itemData).ModifyValue(m_itemData.MaxDurability), itemProto.MaxDurability);
+ SetDurability(itemProto.MaxDurability);
- for (var i = 0; i < itemProto.Effects.Count; ++i)
+ for (int i = 0; i < itemProto.Effects.Count; ++i)
{
if (i < 5)
SetSpellCharges(i, itemProto.Effects[i].Charges);
}
- SetUInt32Value(ItemFields.Duration, itemProto.GetDuration());
- SetUInt32Value(ItemFields.CreatePlayedTime, 0);
+ SetExpiration(itemProto.GetDuration());
+ SetCreatePlayedTime(0);
if (itemProto.GetArtifactID() != 0)
{
@@ -117,18 +117,20 @@ namespace Game.Entities
public void UpdateDuration(Player owner, uint diff)
{
- uint dur = GetUInt32Value(ItemFields.Duration);
+ uint duration = m_itemData.Expiration;
+ if (duration == 0)
+ return;
- Log.outDebug(LogFilter.Player, "Item.UpdateDuration Item (Entry: {0} Duration {1} Diff {2})", GetEntry(), dur, diff);
+ Log.outDebug(LogFilter.Player, "Item.UpdateDuration Item (Entry: {0} Duration {1} Diff {2})", GetEntry(), duration, diff);
- if (dur <= diff)
+ if (duration <= diff)
{
Global.ScriptMgr.OnItemExpire(owner, GetTemplate());
owner.DestroyItem(GetBagSlot(), GetSlot(), true);
return;
}
- SetUInt32Value(ItemFields.Duration, dur - diff);
+ SetExpiration(duration - diff);
SetState(ItemUpdateState.Changed, owner); // save new time in database
}
@@ -144,37 +146,37 @@ namespace Game.Entities
stmt = DB.Characters.GetPreparedStatement(uState == ItemUpdateState.New ? CharStatements.REP_ITEM_INSTANCE : CharStatements.UPD_ITEM_INSTANCE);
stmt.AddValue(index, GetEntry());
stmt.AddValue(++index, GetOwnerGUID().GetCounter());
- stmt.AddValue(++index, GetGuidValue(ItemFields.Creator).GetCounter());
- stmt.AddValue(++index, GetGuidValue(ItemFields.GiftCreator).GetCounter());
+ stmt.AddValue(++index, GetCreator().GetCounter());
+ stmt.AddValue(++index, GetGiftCreator().GetCounter());
stmt.AddValue(++index, GetCount());
- stmt.AddValue(++index, GetUInt32Value(ItemFields.Duration));
+ stmt.AddValue(++index, (uint)m_itemData.Expiration);
StringBuilder ss = new StringBuilder();
for (byte i = 0; i < ItemConst.MaxSpells; ++i)
ss.AppendFormat("{0} ", GetSpellCharges(i));
stmt.AddValue(++index, ss.ToString());
- stmt.AddValue(++index, GetUInt32Value(ItemFields.Flags));
+ stmt.AddValue(++index, (uint)m_itemData.DynamicFlags);
ss.Clear();
for (EnchantmentSlot slot = 0; slot < EnchantmentSlot.Max; ++slot)
ss.AppendFormat("{0} {1} {2} ", GetEnchantmentId(slot), GetEnchantmentDuration(slot), GetEnchantmentCharges(slot));
stmt.AddValue(++index, ss.ToString());
- stmt.AddValue(++index, (byte)GetItemRandomEnchantmentId().Type);
- stmt.AddValue(++index, GetItemRandomEnchantmentId().Id);
- stmt.AddValue(++index, GetUInt32Value(ItemFields.Durability));
- stmt.AddValue(++index, GetUInt32Value(ItemFields.CreatePlayedTime));
+ stmt.AddValue(++index, m_randomBonusListId);
+ stmt.AddValue(++index, (uint)m_itemData.Durability);
+ stmt.AddValue(++index, (uint)m_itemData.CreatePlayedTime);
stmt.AddValue(++index, m_text);
stmt.AddValue(++index, GetModifier(ItemModifier.UpgradeId));
stmt.AddValue(++index, GetModifier(ItemModifier.BattlePetSpeciesId));
stmt.AddValue(++index, GetModifier(ItemModifier.BattlePetBreedData));
stmt.AddValue(++index, GetModifier(ItemModifier.BattlePetLevel));
stmt.AddValue(++index, GetModifier(ItemModifier.BattlePetDisplayId));
- stmt.AddValue(++index, (byte)GetUInt32Value(ItemFields.Context));
+ stmt.AddValue(++index, (byte)m_itemData.Context);
ss.Clear();
- foreach (uint bonusListID in GetDynamicValues(ItemDynamicFields.BonusListIds))
+
+ foreach (int bonusListID in (List)m_itemData.BonusListIDs)
ss.Append(bonusListID + ' ');
stmt.AddValue(++index, ss.ToString());
@@ -182,7 +184,7 @@ namespace Game.Entities
DB.Characters.Execute(stmt);
- if ((uState == ItemUpdateState.Changed) && HasFlag(ItemFields.Flags, ItemFieldFlags.Wrapped))
+ if ((uState == ItemUpdateState.Changed) && HasItemFlag(ItemFieldFlags.Wrapped))
{
stmt = DB.Characters.GetPreparedStatement(CharStatements.UPD_GIFT_OWNER);
stmt.AddValue(0, GetOwnerGUID().GetCounter());
@@ -194,17 +196,18 @@ namespace Game.Entities
stmt.AddValue(0, GetGUID().GetCounter());
trans.Append(stmt);
- if (!GetGems().Empty())
+ if (m_itemData.Gems.Size() != 0)
{
stmt = DB.Characters.GetPreparedStatement(CharStatements.INS_ITEM_INSTANCE_GEMS);
stmt.AddValue(0, GetGUID().GetCounter());
int i = 0;
int gemFields = 4;
- foreach (ItemDynamicFieldGems gemData in GetGems())
+
+ foreach (SocketedGem gemData in m_itemData.Gems)
{
if (gemData.ItemId != 0)
{
- stmt.AddValue(1 + i * gemFields, gemData.ItemId);
+ stmt.AddValue(1 + i * gemFields, (uint)gemData.ItemId);
StringBuilder gemBonusListIDs = new StringBuilder();
foreach (ushort bonusListID in gemData.BonusListIDs)
{
@@ -213,7 +216,7 @@ namespace Game.Entities
}
stmt.AddValue(2 + i * gemFields, gemBonusListIDs.ToString());
- stmt.AddValue(3 + i * gemFields, gemData.Context);
+ stmt.AddValue(3 + i * gemFields, (byte)gemData.Context);
stmt.AddValue(4 + i * gemFields, m_gemScalingLevels[i]);
}
else
@@ -225,6 +228,7 @@ namespace Game.Entities
}
++i;
}
+
for (; i < ItemConst.MaxGemSockets; ++i)
{
stmt.AddValue(1 + i * gemFields, 0);
@@ -283,12 +287,12 @@ namespace Game.Entities
{
stmt = DB.Characters.GetPreparedStatement(CharStatements.INS_ITEM_INSTANCE_ARTIFACT);
stmt.AddValue(0, GetGUID().GetCounter());
- stmt.AddValue(1, GetUInt64Value(ItemFields.ArtifactXp));
+ stmt.AddValue(1, (ulong)m_itemData.ArtifactXP);
stmt.AddValue(2, GetModifier(ItemModifier.ArtifactAppearanceId));
stmt.AddValue(3, GetModifier(ItemModifier.ArtifactTier));
trans.Append(stmt);
- foreach (ItemDynamicFieldArtifactPowers artifactPower in GetArtifactPowers())
+ foreach (ArtifactPower artifactPower in m_itemData.ArtifactPowers)
{
stmt = DB.Characters.GetPreparedStatement(CharStatements.INS_ITEM_INSTANCE_ARTIFACT_POWERS);
stmt.AddValue(0, GetGUID().GetCounter());
@@ -344,7 +348,7 @@ namespace Game.Entities
stmt.AddValue(0, GetGUID().GetCounter());
trans.Append(stmt);
- if (HasFlag(ItemFields.Flags, ItemFieldFlags.Wrapped))
+ if (HasItemFlag(ItemFieldFlags.Wrapped))
{
stmt = DB.Characters.GetPreparedStatement(CharStatements.DEL_GIFT);
stmt.AddValue(0, GetGUID().GetCounter());
@@ -390,22 +394,23 @@ namespace Game.Entities
if (creator != 0)
{
if (!Convert.ToBoolean(itemFlags & (int)ItemFieldFlags.Child))
- SetGuidValue(ItemFields.Creator, ObjectGuid.Create(HighGuid.Player, creator));
+ SetCreator(ObjectGuid.Create(HighGuid.Player, creator));
else
- SetGuidValue(ItemFields.Creator, ObjectGuid.Create(HighGuid.Item, creator));
+ SetCreator(ObjectGuid.Create(HighGuid.Item, creator));
}
ulong giftCreator = fields.Read(3);
if (giftCreator != 0)
- SetGuidValue(ItemFields.GiftCreator, ObjectGuid.Create(HighGuid.Player, giftCreator));
+ SetGiftCreator(ObjectGuid.Create(HighGuid.Player, giftCreator));
+
SetCount(fields.Read(4));
uint duration = fields.Read(5);
- SetUInt32Value(ItemFields.Duration, duration);
+ SetExpiration(duration);
// update duration if need, and remove if not need
if (proto.GetDuration() != duration)
{
- SetUInt32Value(ItemFields.Duration, proto.GetDuration());
+ SetExpiration(proto.GetDuration());
need_save = true;
}
@@ -419,22 +424,22 @@ namespace Game.Entities
}
}
- SetUInt32Value(ItemFields.Flags, itemFlags);
+ SetItemFlags((ItemFieldFlags)itemFlags);
- uint durability = fields.Read(11);
- SetUInt32Value(ItemFields.Durability, durability);
+ uint durability = fields.Read(10);
+ SetDurability(durability);
// update max durability (and durability) if need
- SetUInt32Value(ItemFields.MaxDurability, proto.MaxDurability);
+ SetUpdateFieldValue(m_values.ModifyValue(m_itemData).ModifyValue(m_itemData.MaxDurability), proto.MaxDurability);
if (durability > proto.MaxDurability)
{
- SetUInt32Value(ItemFields.Durability, proto.MaxDurability);
+ SetDurability(proto.MaxDurability);
need_save = true;
}
- SetUInt32Value(ItemFields.CreatePlayedTime, fields.Read(12));
- SetText(fields.Read(13));
+ SetCreatePlayedTime(fields.Read(11));
+ SetText(fields.Read(12));
- uint upgradeId = fields.Read(14);
+ uint upgradeId = fields.Read(13);
ItemUpgradeRecord rulesetUpgrade = CliDB.ItemUpgradeStorage.LookupByKey(Global.DB2Mgr.GetRulesetItemUpgrade(entry));
ItemUpgradeRecord upgrade = CliDB.ItemUpgradeStorage.LookupByKey(upgradeId);
if (rulesetUpgrade == null || upgrade == null || rulesetUpgrade.ItemUpgradePathID != upgrade.ItemUpgradePathID)
@@ -450,42 +455,41 @@ namespace Game.Entities
}
SetModifier(ItemModifier.UpgradeId, upgradeId);
- SetModifier(ItemModifier.BattlePetSpeciesId, fields.Read(15));
- SetModifier(ItemModifier.BattlePetBreedData, fields.Read(16));
- SetModifier(ItemModifier.BattlePetLevel, fields.Read(17));
- SetModifier(ItemModifier.BattlePetDisplayId, fields.Read(18));
+ SetModifier(ItemModifier.BattlePetSpeciesId, fields.Read(14));
+ SetModifier(ItemModifier.BattlePetBreedData, fields.Read(15));
+ SetModifier(ItemModifier.BattlePetLevel, fields.Read(16));
+ SetModifier(ItemModifier.BattlePetDisplayId, fields.Read(17));
- SetUInt32Value(ItemFields.Context, fields.Read(19));
+ SetContext(fields.Read(18));
- var bonusListIDs = new StringArray(fields.Read(20), ' ');
- if (!tokens.IsEmpty())
+ var bonusListString = new StringArray(fields.Read(19), ' ');
+ List bonusListIDs = new List();
+ for (var i = 0; i < bonusListString.Length; ++i)
{
- for (var i = 0; i < bonusListIDs.Length; ++i)
- {
- if (uint.TryParse(tokens[i], out uint bonusListID))
- AddBonuses(bonusListID);
- }
+ if (uint.TryParse(tokens[i], out uint bonusListID))
+ bonusListIDs.Add(bonusListID);
}
+ SetBonuses(bonusListIDs);
- SetModifier(ItemModifier.TransmogAppearanceAllSpecs, fields.Read(21));
- SetModifier(ItemModifier.TransmogAppearanceSpec1, fields.Read(22));
- SetModifier(ItemModifier.TransmogAppearanceSpec2, fields.Read(23));
- SetModifier(ItemModifier.TransmogAppearanceSpec3, fields.Read(24));
- SetModifier(ItemModifier.TransmogAppearanceSpec4, fields.Read(25));
+ SetModifier(ItemModifier.TransmogAppearanceAllSpecs, fields.Read(20));
+ SetModifier(ItemModifier.TransmogAppearanceSpec1, fields.Read(21));
+ SetModifier(ItemModifier.TransmogAppearanceSpec2, fields.Read(22));
+ SetModifier(ItemModifier.TransmogAppearanceSpec3, fields.Read(23));
+ SetModifier(ItemModifier.TransmogAppearanceSpec4, fields.Read(24));
- SetModifier(ItemModifier.EnchantIllusionAllSpecs, fields.Read(26));
- SetModifier(ItemModifier.EnchantIllusionSpec1, fields.Read(27));
- SetModifier(ItemModifier.EnchantIllusionSpec2, fields.Read(28));
- SetModifier(ItemModifier.EnchantIllusionSpec3, fields.Read(29));
- SetModifier(ItemModifier.EnchantIllusionSpec4, fields.Read(30));
+ SetModifier(ItemModifier.EnchantIllusionAllSpecs, fields.Read(25));
+ SetModifier(ItemModifier.EnchantIllusionSpec1, fields.Read(26));
+ SetModifier(ItemModifier.EnchantIllusionSpec2, fields.Read(27));
+ SetModifier(ItemModifier.EnchantIllusionSpec3, fields.Read(28));
+ SetModifier(ItemModifier.EnchantIllusionSpec4, fields.Read(29));
int gemFields = 4;
ItemDynamicFieldGems[] gemData = new ItemDynamicFieldGems[ItemConst.MaxGemSockets];
for (int i = 0; i < ItemConst.MaxGemSockets; ++i)
{
gemData[i] = new ItemDynamicFieldGems();
- gemData[i].ItemId = fields.Read(31 + i * gemFields);
- var gemBonusListIDs = new StringArray(fields.Read(32 + i * gemFields), ' ');
+ gemData[i].ItemId = fields.Read(30 + i * gemFields);
+ var gemBonusListIDs = new StringArray(fields.Read(31 + i * gemFields), ' ');
if (!gemBonusListIDs.IsEmpty())
{
uint b = 0;
@@ -496,31 +500,33 @@ namespace Game.Entities
}
}
- gemData[i].Context = fields.Read(33 + i * gemFields);
+ gemData[i].Context = fields.Read(32 + i * gemFields);
if (gemData[i].ItemId != 0)
- SetGem((ushort)i, gemData[i], fields.Read(34 + i * gemFields));
+ SetGem((ushort)i, gemData[i], fields.Read(33 + i * gemFields));
}
- SetModifier(ItemModifier.ScalingStatDistributionFixedLevel, fields.Read(43));
- SetModifier(ItemModifier.ArtifactKnowledgeLevel, fields.Read(44));
+ SetModifier(ItemModifier.ScalingStatDistributionFixedLevel, fields.Read(42));
+ SetModifier(ItemModifier.ArtifactKnowledgeLevel, fields.Read(43));
// Enchants must be loaded after all other bonus/scaling data
- _LoadIntoDataField(fields.Read(8), (uint)ItemFields.Enchantment, (uint)EnchantmentSlot.Max * (uint)EnchantmentOffset.Max);
- m_randomEnchantment.Type = (ItemRandomEnchantmentType)fields.Read(9);
- m_randomEnchantment.Id = fields.Read(10);
- if (m_randomEnchantment.Type == ItemRandomEnchantmentType.Property)
- SetUInt32Value(ItemFields.RandomPropertiesId, m_randomEnchantment.Id);
- else if (m_randomEnchantment.Type == ItemRandomEnchantmentType.Suffix)
+ var enchantmentTokens = new StringArray(fields.Read(8), ' ');
+ if (enchantmentTokens.Length == (int)EnchantmentSlot.Max * (int)EnchantmentOffset.Max)
{
- SetInt32Value(ItemFields.RandomPropertiesId, -(int)m_randomEnchantment.Id);
- // recalculate suffix factor
- UpdateItemSuffixFactor();
+ for (int i = 0; i < (int)EnchantmentSlot.Max; ++i)
+ {
+ ItemEnchantment enchantmentField = m_itemData.ModifyValue(m_itemData.Enchantment, i);
+ SetUpdateFieldValue(enchantmentField.ModifyValue(enchantmentField.ID), uint.Parse(enchantmentTokens[i * (int)EnchantmentOffset.Max + 0]));
+ SetUpdateFieldValue(enchantmentField.ModifyValue(enchantmentField.Duration), uint.Parse(enchantmentTokens[i * (int)EnchantmentOffset.Max + 1]));
+ SetUpdateFieldValue(enchantmentField.ModifyValue(enchantmentField.Charges), short.Parse(enchantmentTokens[i * (int)EnchantmentOffset.Max + 2]));
+ }
}
+ m_randomBonusListId = fields.Read(10);
+
// Remove bind flag for items vs NO_BIND set
if (IsSoulBound() && GetBonding() == ItemBondingType.None)
{
- ApplyModFlag(ItemFields.Flags, ItemFieldFlags.Soulbound, false);
+ RemoveItemFlag(ItemFieldFlags.Soulbound);
need_save = true;
}
@@ -528,9 +534,9 @@ namespace Game.Entities
{
byte index = 0;
PreparedStatement stmt = DB.Characters.GetPreparedStatement(CharStatements.UPD_ITEM_INSTANCE_ON_LOAD);
- stmt.AddValue(index++, GetUInt32Value(ItemFields.Duration));
- stmt.AddValue(index++, GetUInt32Value(ItemFields.Flags));
- stmt.AddValue(index++, GetUInt32Value(ItemFields.Durability));
+ stmt.AddValue(index++, (uint)m_itemData.Expiration);
+ stmt.AddValue(index++, (uint)m_itemData.DynamicFlags);
+ stmt.AddValue(index++, (uint)m_itemData.Durability);
stmt.AddValue(index++, GetModifier(ItemModifier.UpgradeId));
stmt.AddValue(index++, guid);
DB.Characters.Execute(stmt);
@@ -538,12 +544,12 @@ namespace Game.Entities
return true;
}
- public void LoadArtifactData(Player owner, ulong xp, uint artifactAppearanceId, uint artifactTier, List powers)
+ public void LoadArtifactData(Player owner, ulong xp, uint artifactAppearanceId, uint artifactTier, List powers)
{
for (byte i = 0; i <= artifactTier; ++i)
InitArtifactPowers(GetTemplate().GetArtifactID(), i);
- SetUInt64Value(ItemFields.ArtifactXp, xp);
+ SetUpdateFieldValue(m_values.ModifyValue(m_itemData).ModifyValue(m_itemData.ArtifactXP), xp);
SetModifier(ItemModifier.ArtifactAppearanceId, artifactAppearanceId);
SetModifier(ItemModifier.ArtifactTier, artifactTier);
@@ -552,7 +558,7 @@ namespace Game.Entities
SetAppearanceModId(artifactAppearance.ItemAppearanceModifierID);
byte totalPurchasedRanks = 0;
- foreach (ItemDynamicFieldArtifactPowers power in powers)
+ foreach (ArtifactPowerLoadInfo power in powers)
{
power.CurrentRankWithBonus += power.PurchasedRank;
totalPurchasedRanks += power.PurchasedRank;
@@ -595,17 +601,16 @@ namespace Game.Entities
}
}
- SetArtifactPower(power);
+ SetArtifactPower((ushort)power.ArtifactPowerId, power.PurchasedRank, power.CurrentRankWithBonus);
}
- foreach (ItemDynamicFieldArtifactPowers power in powers)
+ foreach (ArtifactPowerLoadInfo power in powers)
{
ArtifactPowerRecord scaledArtifactPowerEntry = CliDB.ArtifactPowerStorage.LookupByKey(power.ArtifactPowerId);
if (!scaledArtifactPowerEntry.Flags.HasAnyFlag(ArtifactPowerFlag.ScalesWithNumPowers))
continue;
- power.CurrentRankWithBonus = (byte)(totalPurchasedRanks + 1);
- SetArtifactPower(power);
+ SetArtifactPower((ushort)power.ArtifactPowerId, power.PurchasedRank, (byte)(totalPurchasedRanks + 1));
}
CheckArtifactRelicSlotUnlock(owner != null ? owner : GetOwner());
@@ -670,69 +675,12 @@ namespace Game.Entities
return proto.GetSkill();
}
- public void SetItemRandomProperties(ItemRandomEnchantmentId randomPropId)
+ public void SetItemRandomBonusList(uint bonusListId)
{
- if (randomPropId.Id == 0)
+ if (bonusListId == 0)
return;
- switch (randomPropId.Type)
- {
- case ItemRandomEnchantmentType.Property:
- {
- ItemRandomPropertiesRecord item_rand = CliDB.ItemRandomPropertiesStorage.LookupByKey(randomPropId.Id);
- if (item_rand != null)
- {
- if (GetUInt32Value(ItemFields.RandomPropertiesId) != randomPropId.Id)
- {
- SetUInt32Value(ItemFields.RandomPropertiesId, randomPropId.Id);
- SetState(ItemUpdateState.Changed, GetOwner());
- }
- for (EnchantmentSlot i = EnchantmentSlot.Prop0; i <= EnchantmentSlot.Prop4; ++i)
- SetEnchantment(i, item_rand.Enchantment[i - EnchantmentSlot.Prop0], 0, 0);
- }
- }
- break;
- case ItemRandomEnchantmentType.Suffix:
- {
- ItemRandomSuffixRecord item_rand = CliDB.ItemRandomSuffixStorage.LookupByKey(randomPropId.Id);
- if (item_rand != null)
- {
- if (GetInt32Value(ItemFields.RandomPropertiesId) != -(int)randomPropId.Id || GetItemSuffixFactor() == 0)
- {
- SetInt32Value(ItemFields.RandomPropertiesId, -(int)randomPropId.Id);
- UpdateItemSuffixFactor();
- SetState(ItemUpdateState.Changed, GetOwner());
- }
-
- for (var i = EnchantmentSlot.Prop0; i <= EnchantmentSlot.Prop4; ++i)
- SetEnchantment(i, item_rand.Enchantment[i - EnchantmentSlot.Prop0], 0, 0);
- }
- }
- break;
- case ItemRandomEnchantmentType.BonusList:
- AddBonuses(randomPropId.Id);
- break;
- default:
- break;
- }
- }
-
- void UpdateItemSuffixFactor()
- {
- if (GetTemplate().GetRandomSuffix() == 0)
- return;
-
- uint suffixFactor = 0;
- Player owner = GetOwner();
- if (owner)
- suffixFactor = ItemEnchantment.GetRandomPropertyPoints(GetItemLevel(owner), GetQuality(), GetTemplate().GetInventoryType(), GetTemplate().GetSubClass());
- else
- suffixFactor = ItemEnchantment.GenerateEnchSuffixFactor(GetEntry());
-
- if (GetItemSuffixFactor() == suffixFactor)
- return;
-
- SetUInt32Value(ItemFields.PropertySeed, suffixFactor);
+ AddBonuses(bonusListId);
}
public void SetState(ItemUpdateState state, Player forplayer = null)
@@ -817,7 +765,7 @@ namespace Game.Entities
if (m_lootGenerated)
return false;
- if ((!mail || !IsBoundAccountWide()) && (IsSoulBound() && (!HasFlag(ItemFields.Flags, ItemFieldFlags.BopTradeable) || !trade)))
+ if ((!mail || !IsBoundAccountWide()) && (IsSoulBound() && (!HasItemFlag(ItemFieldFlags.BopTradeable) || !trade)))
return false;
if (IsBag() && (Player.IsBagPos(GetPos()) || !ToBag().IsEmpty()))
@@ -840,7 +788,7 @@ namespace Game.Entities
public void SetCount(uint value)
{
- SetUInt32Value(ItemFields.StackCount, value);
+ SetUpdateFieldValue(m_values.ModifyValue(m_itemData).ModifyValue(m_itemData.StackCount), value);
Player player = GetOwner();
if (player)
@@ -974,7 +922,7 @@ namespace Game.Entities
{
uint oldEnchant = GetEnchantmentId(slot);
if (oldEnchant != 0)
- owner.GetSession().SendEnchantmentLog(GetOwnerGUID(), ObjectGuid.Empty, GetGUID(), GetEntry(), oldEnchant, (uint)slot);
+ owner.GetSession().SendEnchantmentLog(GetOwnerGUID(), ObjectGuid.Empty, GetGUID(), GetEntry(), (uint)oldEnchant, (uint)slot);
if (id != 0)
owner.GetSession().SendEnchantmentLog(GetOwnerGUID(), caster, GetGUID(), GetEntry(), id, (uint)slot);
@@ -983,9 +931,10 @@ namespace Game.Entities
ApplyArtifactPowerEnchantmentBonuses(slot, GetEnchantmentId(slot), false, owner);
ApplyArtifactPowerEnchantmentBonuses(slot, id, true, owner);
- SetUInt32Value(ItemFields.Enchantment + (int)slot * (int)EnchantmentOffset.Max + (int)EnchantmentOffset.Id, id);
- SetUInt32Value(ItemFields.Enchantment + (int)slot * (int)EnchantmentOffset.Max + (int)EnchantmentOffset.Duration, duration);
- SetUInt32Value(ItemFields.Enchantment + (int)slot * (int)EnchantmentOffset.Max + (int)EnchantmentOffset.Charges, charges);
+ ItemEnchantment enchantmentField = m_itemData.ModifyValue(m_itemData.Enchantment, (int)slot);
+ SetUpdateFieldValue(enchantmentField.ModifyValue(enchantmentField.ID), id);
+ SetUpdateFieldValue(enchantmentField.ModifyValue(enchantmentField.Duration), duration);
+ SetUpdateFieldValue(enchantmentField.ModifyValue(enchantmentField.Charges), (short)charges);
SetState(ItemUpdateState.Changed, owner);
}
@@ -994,7 +943,7 @@ namespace Game.Entities
if (GetEnchantmentDuration(slot) == duration)
return;
- SetUInt32Value(ItemFields.Enchantment + (int)slot * (int)EnchantmentOffset.Max + (int)EnchantmentOffset.Duration, duration);
+ SetUpdateFieldValue(m_itemData.ModifyValue(m_itemData.Enchantment, (int)slot).ModifyValue((ItemEnchantment itemEnchantment) => itemEnchantment.Duration), duration);
SetState(ItemUpdateState.Changed, owner);
// Cannot use GetOwner() here, has to be passed as an argument to avoid freeze due to hashtable locking
}
@@ -1004,7 +953,7 @@ namespace Game.Entities
if (GetEnchantmentCharges(slot) == charges)
return;
- SetUInt32Value(ItemFields.Enchantment + (int)slot * (int)EnchantmentOffset.Max + (int)EnchantmentOffset.Charges, charges);
+ SetUpdateFieldValue(m_itemData.ModifyValue(m_itemData.Enchantment, (int)slot).ModifyValue((ItemEnchantment itemEnchantment) => itemEnchantment.Charges), (short)charges);
SetState(ItemUpdateState.Changed, GetOwner());
}
@@ -1013,20 +962,18 @@ namespace Game.Entities
if (GetEnchantmentId(slot) == 0)
return;
- for (byte x = 0; x < ItemConst.MaxItemEnchantmentEffects; ++x)
- SetUInt32Value(ItemFields.Enchantment + (int)slot * (int)EnchantmentOffset.Max + x, 0);
+ ItemEnchantment enchantmentField = m_itemData.ModifyValue(m_itemData.Enchantment, (int)slot);
+ SetUpdateFieldValue(enchantmentField.ModifyValue(enchantmentField.ID), 0u);
+ SetUpdateFieldValue(enchantmentField.ModifyValue(enchantmentField.Duration), 0u);
+ SetUpdateFieldValue(enchantmentField.ModifyValue(enchantmentField.Charges), (short)0);
+ SetUpdateFieldValue(enchantmentField.ModifyValue(enchantmentField.Inactive), (ushort)0);
SetState(ItemUpdateState.Changed, GetOwner());
}
- public List GetGems()
- {
- return GetDynamicStructuredValues(ItemDynamicFields.Gems);
- }
-
- public ItemDynamicFieldGems GetGem(ushort slot)
+ public SocketedGem GetGem(ushort slot)
{
//ASSERT(slot < MAX_GEM_SOCKETS);
- return GetDynamicStructuredValue(ItemDynamicFields.Gems, slot);
+ return slot < m_itemData.Gems.Size() ? m_itemData.Gems[slot] : null;
}
public void SetGem(ushort slot, ItemDynamicFieldGems gem, uint gemScalingLevel)
@@ -1052,7 +999,7 @@ namespace Game.Entities
{
foreach (ItemBonusRecord itemBonus in bonuses)
- gemBonus.AddBonus(itemBonus.Type, itemBonus.Value);
+ gemBonus.AddBonus(itemBonus.BonusType, itemBonus.Value);
}
uint gemBaseItemLevel = gemTemplate.GetBaseItemLevel();
@@ -1076,7 +1023,7 @@ namespace Game.Entities
if (bonusesEffect != null)
{
foreach (ItemBonusRecord itemBonus in bonusesEffect)
- if (itemBonus.Type == ItemBonusType.ItemLevel)
+ if (itemBonus.BonusType == ItemBonusType.ItemLevel)
_bonusData.GemItemLevelBonus[slot] += (uint)itemBonus.Value[0];
}
@@ -1090,7 +1037,7 @@ namespace Game.Entities
var bonusesEffect = Global.DB2Mgr.GetItemBonusList(artifactrBonusListId);
if (bonusesEffect != null)
foreach (ItemBonusRecord itemBonus in bonusesEffect)
- if (itemBonus.Type == ItemBonusType.ItemLevel)
+ if (itemBonus.BonusType == ItemBonusType.ItemLevel)
_bonusData.GemItemLevelBonus[slot] += (uint)itemBonus.Value[0];
}
break;
@@ -1104,13 +1051,17 @@ namespace Game.Entities
}
}
- SetDynamicStructuredValue(ItemDynamicFields.Gems, slot, gem);
+ SocketedGem gemField = m_itemData.ModifyValue(m_itemData.Gems, slot);
+ SetUpdateFieldValue(gemField.ModifyValue(gemField.ItemId), gem.ItemId);
+ SetUpdateFieldValue(gemField.ModifyValue(gemField.Context), gem.Context);
+ for (int i = 0; i < 16; ++i)
+ SetUpdateFieldValue(ref gemField.ModifyValue(gemField.BonusListIDs, i), gem.BonusListIDs[i]);
}
public bool GemsFitSockets()
{
uint gemSlot = 0;
- foreach (ItemDynamicFieldGems gemData in GetGems())
+ foreach (SocketedGem gemData in m_itemData.Gems)
{
SocketColor SocketColor = GetTemplate().GetSocketColor(gemSlot);
if (SocketColor == 0) // no socket slot
@@ -1134,12 +1085,14 @@ namespace Game.Entities
public byte GetGemCountWithID(uint GemID)
{
- return (byte)GetGems().Count(gemData => gemData.ItemId == GemID);
+ var list = (List)m_itemData.Gems.GetEnumerator();
+ return (byte)list.Count(gemData => gemData.ItemId == GemID);
}
public byte GetGemCountWithLimitCategory(uint limitCategory)
{
- return (byte)GetGems().Count(gemData =>
+ var list = (List)m_itemData.Gems.GetEnumerator();
+ return (byte)list.Count(gemData =>
{
ItemTemplate gemProto = Global.ObjectMgr.GetItemTemplate(gemData.ItemId);
if (gemProto == null)
@@ -1165,7 +1118,7 @@ namespace Game.Entities
public void SendTimeUpdate(Player owner)
{
- uint duration = GetUInt32Value(ItemFields.Duration);
+ uint duration = m_itemData.Expiration;
if (duration == 0)
return;
@@ -1203,13 +1156,13 @@ namespace Game.Entities
if (newItem == null)
return null;
- newItem.SetUInt32Value(ItemFields.Creator, GetUInt32Value(ItemFields.Creator));
- newItem.SetUInt32Value(ItemFields.GiftCreator, GetUInt32Value(ItemFields.GiftCreator));
- newItem.SetUInt32Value(ItemFields.Flags, GetUInt32Value(ItemFields.Flags));
- newItem.SetUInt32Value(ItemFields.Duration, GetUInt32Value(ItemFields.Duration));
+ newItem.SetCreator(GetCreator());
+ newItem.SetGiftCreator(GetGiftCreator());
+ newItem.SetItemFlags((ItemFieldFlags)(m_itemData.DynamicFlags & ~(uint)(ItemFieldFlags.Refundable | ItemFieldFlags.BopTradeable)));
+ newItem.SetExpiration(m_itemData.Expiration);
// player CAN be NULL in which case we must not update random properties because that accesses player's item update queue
if (player != null)
- newItem.SetItemRandomProperties(GetItemRandomEnchantmentId());
+ newItem.SetItemRandomBonusList(m_randomBonusListId);
return newItem;
}
@@ -1223,7 +1176,7 @@ namespace Game.Entities
if (GetOwnerGUID() == player.GetGUID())
return false;
- if (HasFlag(ItemFields.Flags, ItemFieldFlags.BopTradeable))
+ if (HasItemFlag(ItemFieldFlags.BopTradeable))
if (allowedGUIDs.Contains(player.GetGUID()))
return false;
@@ -1242,75 +1195,64 @@ namespace Game.Entities
ClearUpdateMask(false);
}
- public override void BuildDynamicValuesUpdate(UpdateType updateType, WorldPacket data, Player target)
+ public override UpdateFieldFlag GetUpdateFieldFlagsFor(Player target)
{
- if (!target)
- return;
+ if (target.GetGUID() == GetOwnerGUID())
+ return UpdateFieldFlag.Owner;
- ByteBuffer fieldBuffer = new ByteBuffer();
- UpdateMask fieldMask = new UpdateMask(_dynamicValuesCount);
+ return UpdateFieldFlag.None;
+ }
- uint[] flags = null;
- uint visibleFlag = GetDynamicUpdateFieldData(target, out flags);
+ public override void BuildValuesCreate(WorldPacket data, Player target)
+ {
+ UpdateFieldFlag flags = GetUpdateFieldFlagsFor(target);
+ WorldPacket buffer = new WorldPacket();
- for (ushort index = 0; index < _dynamicValuesCount; ++index)
- {
- var values = _dynamicValues[index];
- if (_fieldNotifyFlags.HasAnyFlag(flags[index]) ||
- ((updateType == UpdateType.Values ? _dynamicChangesMask[index] != DynamicFieldChangeType.Unchanged : !values.Empty()) && flags[index].HasAnyFlag(visibleFlag)))
- {
- ByteBuffer arrayValuesBuffer = new ByteBuffer();
- fieldMask.SetBit(index);
+ m_objectData.WriteCreate(buffer, flags, this, target);
+ m_itemData.WriteCreate(buffer, flags, this, target);
- DynamicUpdateMask arrayValuesMask = new DynamicUpdateMask((uint)values.Length);
- arrayValuesMask.EncodeDynamicFieldChangeType(_dynamicChangesMask[index], updateType);
+ data.WriteUInt32(buffer.GetSize() + 1);
+ data.WriteUInt8((byte)flags);
+ data.WriteBytes(buffer);
+ }
- if (updateType == UpdateType.Values && _dynamicChangesMask[index] == DynamicFieldChangeType.ValueAndSizeChanged)
- arrayValuesMask.SetCount(values.Length);
+ public override void BuildValuesUpdate(WorldPacket data, Player target)
+ {
+ UpdateFieldFlag flags = GetUpdateFieldFlagsFor(target);
+ WorldPacket buffer = new WorldPacket();
- if (index != (int)ItemDynamicFields.Modifiers)
- {
- for (var v = 0; v < values.Length; ++v)
- {
- if (updateType != UpdateType.Values || _dynamicChangesArrayMask[index].Get(v))
- {
- arrayValuesMask.SetBit(v);
- arrayValuesBuffer.WriteUInt32(values[v]);
- }
- }
- }
- else
- {
- int m = 0;
+ if (m_values.HasChanged(TypeId.Object))
+ m_objectData.WriteUpdate(buffer, flags, this, target);
- if (updateType == UpdateType.Values && _dynamicChangesMask[index] != DynamicFieldChangeType.ValueAndSizeChanged && _changesMask.Get((int)ItemFields.ModifiersMask))
- {
- arrayValuesMask.DynamicFieldChangeType |= (int)DynamicFieldChangeType.ValueAndSizeChanged;
- arrayValuesMask.SetCount(m);
- }
+ if (m_values.HasChanged(TypeId.Item))
+ m_itemData.WriteUpdate(buffer, flags, this, target);
- // in case of ITEM_DYNAMIC_FIELD_MODIFIERS it is ITEM_FIELD_MODIFIERS_MASK that controls index of each value, not updatemask
- // so we just have to write this starting from 0 index
- for (var v = 0; v < values.Length; ++v)
- {
- if (values[v] != 0)
- {
- arrayValuesMask.SetBit(m++);
- arrayValuesBuffer.WriteUInt32(values[v]);
- }
- }
- if (updateType == UpdateType.Values && _changesMask.Get((int)ItemFields.ModifiersMask))
- arrayValuesMask.SetCount(m);
- }
+ data.WriteUInt32(buffer.GetSize());
+ data.WriteUInt32(m_values.GetChangedObjectTypeMask());
+ data.WriteBytes(buffer);
+ }
- arrayValuesMask.AppendToPacket(fieldBuffer);
- fieldBuffer.WriteBytes(arrayValuesBuffer);
- }
- }
+ void BuildValuesUpdateWithFlag(ByteBuffer data, UpdateFieldFlag flags, Player target)
+ {
+ UpdateMask valuesMask = new UpdateMask(14);
+ valuesMask.Set((int)TypeId.Item);
- fieldMask.AppendToPacket(data);
- data.WriteBytes(fieldBuffer);
+ WorldPacket buffer = new WorldPacket();
+ UpdateMask mask = new UpdateMask(40);
+
+ buffer.WriteUInt32(valuesMask.GetBlock(0));
+ m_itemData.AppendAllowedFieldsMaskForFlag(mask, flags);
+ m_itemData.WriteUpdate(buffer, mask, flags, this, target);
+
+ data.WriteUInt32(buffer.GetSize());
+ data.WriteBytes(buffer);
+ }
+
+ public override void ClearUpdateMask(bool remove)
+ {
+ m_values.ClearChangesMask(m_itemData);
+ base.ClearUpdateMask(remove);
}
public override void AddToObjectUpdate()
@@ -1351,14 +1293,14 @@ namespace Game.Entities
public void SetNotRefundable(Player owner, bool changestate = true, SQLTransaction trans = null, bool addToCollection = true)
{
- if (!HasFlag(ItemFields.Flags, ItemFieldFlags.Refundable))
+ if (!HasItemFlag(ItemFieldFlags.Refundable))
return;
ItemExpirePurchaseRefund itemExpirePurchaseRefund = new ItemExpirePurchaseRefund();
itemExpirePurchaseRefund.ItemGUID = GetGUID();
owner.SendPacket(itemExpirePurchaseRefund);
- RemoveFlag(ItemFields.Flags, ItemFieldFlags.Refundable);
+ RemoveItemFlag(ItemFieldFlags.Refundable);
// Following is not applicable in the trading procedure
if (changestate)
SetState(ItemUpdateState.Changed, owner);
@@ -1376,7 +1318,7 @@ namespace Game.Entities
public void UpdatePlayedTime(Player owner)
{
// Get current played time
- uint current_playtime = GetUInt32Value(ItemFields.CreatePlayedTime);
+ uint current_playtime = m_itemData.CreatePlayedTime;
// Calculate time elapsed since last played time update
long curtime = Time.UnixTime;
uint elapsed = (uint)(curtime - m_lastPlayedTimeUpdate);
@@ -1386,7 +1328,7 @@ namespace Game.Entities
{
// No? Proceed.
// Update the data field
- SetUInt32Value(ItemFields.CreatePlayedTime, new_playtime);
+ SetCreatePlayedTime(new_playtime);
// Flag as changed to get saved to DB
SetState(ItemUpdateState.Changed, owner);
// Speaks for itself
@@ -1401,7 +1343,7 @@ namespace Game.Entities
{
long curtime = Time.UnixTime;
uint elapsed = (uint)(curtime - m_lastPlayedTimeUpdate);
- return GetUInt32Value(ItemFields.CreatePlayedTime) + elapsed;
+ return m_itemData.CreatePlayedTime + elapsed;
}
public bool IsRefundExpired()
@@ -1411,13 +1353,13 @@ namespace Game.Entities
public void SetSoulboundTradeable(List allowedLooters)
{
- SetFlag(ItemFields.Flags, ItemFieldFlags.BopTradeable);
+ AddItemFlag(ItemFieldFlags.BopTradeable);
allowedGUIDs = allowedLooters;
}
public void ClearSoulboundTradeable(Player currentOwner)
{
- RemoveFlag(ItemFields.Flags, ItemFieldFlags.BopTradeable);
+ RemoveItemFlag(ItemFieldFlags.BopTradeable);
if (allowedGUIDs.Empty())
return;
@@ -1432,7 +1374,7 @@ namespace Game.Entities
public bool CheckSoulboundTradeExpire()
{
// called from owner's update - GetOwner() MUST be valid
- if (GetUInt32Value(ItemFields.CreatePlayedTime) + 2 * Time.Hour < GetOwner().GetTotalPlayedTime())
+ if (m_itemData.CreatePlayedTime + 2 * Time.Hour < GetOwner().GetTotalPlayedTime())
{
ClearSoulboundTradeable(GetOwner());
return true; // remove from tradeable list
@@ -1465,9 +1407,6 @@ namespace Game.Entities
bool HasStats()
{
- if (GetItemRandomPropertyId() != 0)
- return true;
-
ItemTemplate proto = GetTemplate();
Player owner = GetOwner();
for (byte i = 0; i < ItemConst.MaxStats; ++i)
@@ -1810,7 +1749,7 @@ namespace Game.Entities
stmt_items = DB.Characters.GetPreparedStatement(CharStatements.INS_ITEMCONTAINER_ITEMS);
- // container_id, item_id, item_count, follow_rules, ffa, blocked, counted, under_threshold, needs_quest, rnd_prop, rnd_suffix
+ // container_id, item_id, item_count, follow_rules, ffa, blocked, counted, under_threshold, needs_quest, rnd_prop, context, bonus_list_ids
stmt_items.AddValue(0, loot.containerID.GetCounter());
stmt_items.AddValue(1, _li.itemid);
stmt_items.AddValue(2, _li.count);
@@ -1820,16 +1759,14 @@ namespace Game.Entities
stmt_items.AddValue(6, _li.is_counted);
stmt_items.AddValue(7, _li.is_underthreshold);
stmt_items.AddValue(8, _li.needs_quest);
- stmt_items.AddValue(9, (byte)_li.randomPropertyId.Type);
- stmt_items.AddValue(10, _li.randomPropertyId.Id);
- stmt_items.AddValue(11, _li.randomSuffix);
- stmt_items.AddValue(12, _li.context);
+ stmt_items.AddValue(9, _li.randomBonusListId);
+ stmt_items.AddValue(10, _li.context);
string bonusListIDs = "";
foreach (int bonusListID in _li.BonusListIDs)
bonusListIDs += bonusListID + ' ';
- stmt_items.AddValue(13, bonusListIDs);
+ stmt_items.AddValue(11, bonusListIDs);
trans.Append(stmt_items);
}
}
@@ -1872,7 +1809,7 @@ namespace Game.Entities
// Create an empty LootItem
LootItem loot_item = new LootItem();
- // item_id, itm_count, follow_rules, ffa, blocked, counted, under_threshold, needs_quest, rnd_prop, rnd_suffix
+ // item_id, itm_count, follow_rules, ffa, blocked, counted, under_threshold, needs_quest, rnd_prop, context, bonus_list_ids
loot_item.itemid = item_result.Read(0);
loot_item.count = item_result.Read(1);
loot_item.follow_loot_rules = item_result.Read(2);
@@ -1882,11 +1819,10 @@ namespace Game.Entities
loot_item.canSave = true;
loot_item.is_underthreshold = item_result.Read(6);
loot_item.needs_quest = item_result.Read(7);
- loot_item.randomPropertyId = new ItemRandomEnchantmentId((ItemRandomEnchantmentType)item_result.Read(8), item_result.Read(9));
- loot_item.randomSuffix = item_result.Read(10);
- loot_item.context = item_result.Read(11);
+ loot_item.randomBonusListId = item_result.Read(8);
+ loot_item.context = item_result.Read(9);
- StringArray bonusLists = new StringArray(item_result.Read(12), ' ');
+ StringArray bonusLists = new StringArray(item_result.Read(10), ' ');
if (!bonusLists.IsEmpty())
{
foreach (string line in bonusLists)
@@ -1953,9 +1889,9 @@ namespace Game.Entities
public uint GetItemLevel(Player owner)
{
- uint minItemLevel = owner.GetUInt32Value(UnitFields.MinItemLevel);
- uint minItemLevelCutoff = owner.GetUInt32Value(UnitFields.MinItemLevelCutoff);
- uint maxItemLevel = GetTemplate().GetFlags3().HasAnyFlag(ItemFlags3.IgnoreItemLevelCapInPvp) ? 0 : owner.GetUInt32Value(UnitFields.MaxItemlevel);
+ uint minItemLevel = owner.m_unitData.MinItemLevel;
+ uint minItemLevelCutoff = owner.m_unitData.MinItemLevelCutoff;
+ uint maxItemLevel = GetTemplate().GetFlags3().HasAnyFlag(ItemFlags3.IgnoreItemLevelCapInPvp) ? 0u : owner.m_unitData.MaxItemLevel;
bool pvpBonus = owner.IsUsingPvpItemLevels();
return GetItemLevel(GetTemplate(), _bonusData, owner.getLevel(), GetModifier(ItemModifier.ScalingStatDistributionFixedLevel), GetModifier(ItemModifier.UpgradeId),
minItemLevel, minItemLevelCutoff, maxItemLevel, pvpBonus);
@@ -2015,7 +1951,7 @@ namespace Game.Entities
{
Cypher.Assert(index < ItemConst.MaxStats);
uint itemLevel = GetItemLevel(owner);
- uint randomPropPoints = ItemEnchantment.GetRandomPropertyPoints(itemLevel, GetQuality(), GetTemplate().GetInventoryType(), GetTemplate().GetSubClass());
+ uint randomPropPoints = ItemEnchantmentManager.GetRandomPropertyPoints(itemLevel, GetQuality(), GetTemplate().GetInventoryType(), GetTemplate().GetSubClass());
if (randomPropPoints != 0)
{
float statValue = (_bonusData.ItemStatAllocation[index] * randomPropPoints) * 0.0001f;
@@ -2074,7 +2010,7 @@ namespace Game.Entities
public uint GetDisplayId(Player owner)
{
ItemModifier transmogModifier = ItemModifier.TransmogAppearanceAllSpecs;
- if (HasFlag(ItemFields.ModifiersMask, ItemConst.AppearanceModifierMaskSpecSpecific))
+ if ((m_itemData.ModifiersMask & ItemConst.AppearanceModifierMaskSpecSpecific) != 0)
transmogModifier = ItemConst.AppearanceModifierSlotBySpec[owner.GetActiveTalentGroup()];
ItemModifiedAppearanceRecord transmog = CliDB.ItemModifiedAppearanceStorage.LookupByKey(GetModifier(transmogModifier));
@@ -2095,19 +2031,48 @@ namespace Game.Entities
public uint GetModifier(ItemModifier modifier)
{
- return GetDynamicValue(ItemDynamicFields.Modifiers, (byte)modifier);
+ if ((m_itemData.ModifiersMask & (1 << (int)modifier)) == 0)
+ return 0;
+
+ int valueIndex = 0;
+ uint mask = m_itemData.ModifiersMask;
+ for (int i = 0; i < (int)modifier; ++i)
+ if ((mask & (1 << i)) != 0)
+ ++valueIndex;
+
+ return m_itemData.Modifiers[valueIndex];
}
public void SetModifier(ItemModifier modifier, uint value)
{
- ApplyModFlag(ItemFields.ModifiersMask, 1 << (int)modifier, value != 0);
- SetDynamicValue(ItemDynamicFields.Modifiers, (byte)modifier, value);
+ int valueIndex = 0;
+ uint mask = m_itemData.ModifiersMask;
+ for (int i = 0; i < (int)modifier; ++i)
+ if ((mask & (1 << i)) != 0)
+ ++valueIndex;
+
+ if (value != 0)
+ {
+ if ((mask & (1 << (int)modifier)) != 0)
+ return;
+
+ SetUpdateFieldFlagValue(m_values.ModifyValue(m_itemData).ModifyValue(m_itemData.ModifiersMask), 1u << (int)modifier);
+ InsertDynamicUpdateFieldValue(m_values.ModifyValue(m_itemData).ModifyValue(m_itemData.Modifiers), valueIndex, value);
+ }
+ else
+ {
+ if ((mask & (1 << (int)modifier)) == 0)
+ return;
+
+ RemoveUpdateFieldFlagValue(m_values.ModifyValue(m_itemData).ModifyValue(m_itemData.ModifiersMask), 1u << (int)modifier);
+ RemoveDynamicUpdateFieldValue(m_values.ModifyValue(m_itemData).ModifyValue(m_itemData.Modifiers), valueIndex);
+ }
}
public uint GetVisibleEntry(Player owner)
{
ItemModifier transmogModifier = ItemModifier.TransmogAppearanceAllSpecs;
- if (HasFlag(ItemFields.ModifiersMask, ItemConst.AppearanceModifierMaskSpecSpecific))
+ if ((m_itemData.ModifiersMask & ItemConst.AppearanceModifierMaskSpecSpecific) != 0)
transmogModifier = ItemConst.AppearanceModifierSlotBySpec[owner.GetActiveTalentGroup()];
ItemModifiedAppearanceRecord transmog = CliDB.ItemModifiedAppearanceStorage.LookupByKey(GetModifier(transmogModifier));
@@ -2120,7 +2085,7 @@ namespace Game.Entities
public ushort GetVisibleAppearanceModId(Player owner)
{
ItemModifier transmogModifier = ItemModifier.TransmogAppearanceAllSpecs;
- if (HasFlag(ItemFields.ModifiersMask, ItemConst.AppearanceModifierMaskSpecSpecific))
+ if ((m_itemData.ModifiersMask & ItemConst.AppearanceModifierMaskSpecSpecific) != 0)
transmogModifier = ItemConst.AppearanceModifierSlotBySpec[owner.GetActiveTalentGroup()];
ItemModifiedAppearanceRecord transmog = CliDB.ItemModifiedAppearanceStorage.LookupByKey(GetModifier(transmogModifier));
@@ -2133,14 +2098,14 @@ namespace Game.Entities
public uint GetVisibleEnchantmentId(Player owner)
{
ItemModifier illusionModifier = ItemModifier.EnchantIllusionAllSpecs;
- if (HasFlag(ItemFields.ModifiersMask, ItemConst.IllusionModifierMaskSpecSpecific))
+ if ((m_itemData.ModifiersMask & ItemConst.IllusionModifierMaskSpecSpecific) != 0)
illusionModifier = ItemConst.IllusionModifierSlotBySpec[owner.GetActiveTalentGroup()];
uint enchantIllusion = GetModifier(illusionModifier);
if (enchantIllusion != 0)
return enchantIllusion;
- return GetEnchantmentId(EnchantmentSlot.Perm);
+ return (uint)GetEnchantmentId(EnchantmentSlot.Perm);
}
public ushort GetVisibleItemVisual(Player owner)
@@ -2154,50 +2119,77 @@ namespace Game.Entities
public void AddBonuses(uint bonusListID)
{
- if (HasDynamicValue(ItemDynamicFields.BonusListIds, bonusListID))
+ var bonusListIDs = (List)m_itemData.BonusListIDs;
+ if (bonusListIDs.Contains(bonusListID))
return;
var bonuses = Global.DB2Mgr.GetItemBonusList(bonusListID);
if (bonuses != null)
{
- AddDynamicValue(ItemDynamicFields.BonusListIds, bonusListID);
+ bonusListIDs.Add(bonusListID);
+ SetUpdateFieldValue(m_values.ModifyValue(m_itemData).ModifyValue(m_itemData.BonusListIDs), bonusListIDs);
foreach (ItemBonusRecord bonus in bonuses)
- _bonusData.AddBonus((ItemBonusType)bonus.Type, bonus.Value);
+ _bonusData.AddBonus(bonus.BonusType, bonus.Value);
- SetUInt32Value(ItemFields.AppearanceModId, _bonusData.AppearanceModID);
+ SetUpdateFieldValue(m_values.ModifyValue(m_itemData).ModifyValue(m_itemData.ItemAppearanceModID), (byte)_bonusData.AppearanceModID);
}
}
- public List GetArtifactPowers()
+ public void SetBonuses(List bonusListIDs)
{
- return GetDynamicStructuredValues(ItemDynamicFields.ArtifactPowers);
+ SetUpdateFieldValue(m_values.ModifyValue(m_itemData).ModifyValue(m_itemData.BonusListIDs), bonusListIDs);
+
+ foreach (uint bonusListID in (List)m_itemData.BonusListIDs)
+ {
+ var bonuses = Global.DB2Mgr.GetItemBonusList(bonusListID);
+ if (bonuses != null)
+ {
+ foreach (ItemBonusRecord bonus in bonuses)
+ _bonusData.AddBonus(bonus.BonusType, bonus.Value);
+ }
+ }
+
+ SetUpdateFieldValue(m_values.ModifyValue(m_itemData).ModifyValue(m_itemData.ItemAppearanceModID), (byte)_bonusData.AppearanceModID);
}
- public ItemDynamicFieldArtifactPowers GetArtifactPower(uint artifactPowerId)
+ public void ClearBonuses()
+ {
+ SetUpdateFieldValue(m_values.ModifyValue(m_itemData).ModifyValue(m_itemData.BonusListIDs), new List());
+ _bonusData = new BonusData(GetTemplate());
+ SetUpdateFieldValue(m_values.ModifyValue(m_itemData).ModifyValue(m_itemData.ItemAppearanceModID), (byte)_bonusData.AppearanceModID);
+ }
+
+ public ArtifactPower GetArtifactPower(uint artifactPowerId)
{
var index = m_artifactPowerIdToIndex.LookupByKey(artifactPowerId);
if (index != 0)
- return GetDynamicStructuredValue(ItemDynamicFields.ArtifactPowers, index);
+ return m_itemData.ArtifactPowers[index];
return null;
}
- public void SetArtifactPower(ItemDynamicFieldArtifactPowers artifactPower, bool createIfMissing = false)
+ void AddArtifactPower(ArtifactPowerLoadInfo artifactPower)
{
- var foundIndex = m_artifactPowerIdToIndex.LookupByKey(artifactPower.ArtifactPowerId);
- ushort index;
+ int index = m_artifactPowerIdToIndex.Count;
+ m_artifactPowerIdToIndex[artifactPower.ArtifactPowerId] = (ushort)index;
+
+ ArtifactPower powerField = new ArtifactPower();
+ powerField.ArtifactPowerId = (ushort)artifactPower.ArtifactPowerId;
+ powerField.PurchasedRank = artifactPower.PurchasedRank;
+ powerField.CurrentRankWithBonus = artifactPower.CurrentRankWithBonus;
+
+ AddDynamicUpdateFieldValue(m_values.ModifyValue(m_itemData).ModifyValue(m_itemData.ArtifactPowers), powerField);
+ }
+
+ public void SetArtifactPower(ushort artifactPowerId, byte purchasedRank, byte currentRankWithBonus)
+ {
+ var foundIndex = m_artifactPowerIdToIndex.LookupByKey(artifactPowerId);
if (foundIndex != 0)
- index = foundIndex;
- else
{
- if (!createIfMissing)
- return;
-
- index = (ushort)m_artifactPowerIdToIndex.Count;
- m_artifactPowerIdToIndex[artifactPower.ArtifactPowerId] = index;
+ ArtifactPower artifactPower = m_itemData.ModifyValue(m_itemData.ArtifactPowers, foundIndex);
+ SetUpdateFieldValue(ref artifactPower.PurchasedRank, purchasedRank);
+ SetUpdateFieldValue(ref artifactPower.CurrentRankWithBonus, currentRankWithBonus);
}
-
- SetDynamicStructuredValue(ItemDynamicFields.ArtifactPowers, index, artifactPower);
}
public void InitArtifactPowers(byte artifactId, byte artifactTier)
@@ -2210,18 +2202,18 @@ namespace Game.Entities
if (m_artifactPowerIdToIndex.ContainsKey(artifactPower.Id))
continue;
- ItemDynamicFieldArtifactPowers powerData = new ItemDynamicFieldArtifactPowers();
+ ArtifactPowerLoadInfo powerData = new ArtifactPowerLoadInfo();
powerData.ArtifactPowerId = artifactPower.Id;
powerData.PurchasedRank = 0;
powerData.CurrentRankWithBonus = (byte)((artifactPower.Flags & ArtifactPowerFlag.First) == ArtifactPowerFlag.First ? 1 : 0);
- SetArtifactPower(powerData, true);
+ AddArtifactPower(powerData);
}
}
public uint GetTotalPurchasedArtifactPowers()
{
uint purchasedRanks = 0;
- foreach (ItemDynamicFieldArtifactPowers power in GetArtifactPowers())
+ foreach (ArtifactPower power in m_itemData.ArtifactPowers)
purchasedRanks += power.PurchasedRank;
return purchasedRanks;
@@ -2238,47 +2230,55 @@ namespace Game.Entities
{
case ItemEnchantmentType.ArtifactPowerBonusRankByType:
{
- foreach (ItemDynamicFieldArtifactPowers artifactPower in GetArtifactPowers())
+ for (int artifactPowerIndex = 0; artifactPowerIndex < m_itemData.ArtifactPowers.Size(); ++artifactPowerIndex)
{
+ ArtifactPower artifactPower = m_itemData.ArtifactPowers[artifactPowerIndex];
if (CliDB.ArtifactPowerStorage.LookupByKey(artifactPower.ArtifactPowerId).Label == enchant.EffectArg[i])
{
- ItemDynamicFieldArtifactPowers newPower = artifactPower;
+ byte newRank = artifactPower.CurrentRankWithBonus;
if (apply)
- newPower.CurrentRankWithBonus += (byte)enchant.EffectPointsMin[i];
+ newRank += (byte)enchant.EffectPointsMin[i];
else
- newPower.CurrentRankWithBonus -= (byte)enchant.EffectPointsMin[i];
+ newRank -= (byte)enchant.EffectPointsMin[i];
+
+ artifactPower = m_itemData.ModifyValue(m_itemData.ArtifactPowers, artifactPowerIndex);
+ SetUpdateFieldValue(ref artifactPower.CurrentRankWithBonus, newRank);
if (IsEquipped())
{
- ArtifactPowerRankRecord artifactPowerRank = Global.DB2Mgr.GetArtifactPowerRank(artifactPower.ArtifactPowerId, (byte)(newPower.CurrentRankWithBonus != 0 ? newPower.CurrentRankWithBonus - 1 : 0));
+ ArtifactPowerRankRecord artifactPowerRank = Global.DB2Mgr.GetArtifactPowerRank(artifactPower.ArtifactPowerId, (byte)(newRank != 0 ? newRank - 1 : 0));
if (artifactPowerRank != null)
- owner.ApplyArtifactPowerRank(this, artifactPowerRank, newPower.CurrentRankWithBonus != 0);
+ owner.ApplyArtifactPowerRank(this, artifactPowerRank, newRank != 0);
}
-
- SetArtifactPower(newPower);
}
}
}
break;
case ItemEnchantmentType.ArtifactPowerBonusRankByID:
{
- ItemDynamicFieldArtifactPowers artifactPower = GetArtifactPower(enchant.EffectArg[i]);
- if (artifactPower != null)
+ var indexItr = m_artifactPowerIdToIndex.LookupByKey(enchant.EffectArg[i]);
+ ushort index;
+ if (indexItr != 0)
+ index = indexItr;
+
+ ushort artifactPowerIndex = m_artifactPowerIdToIndex.LookupByKey(enchant.EffectArg[i]);
+ if (artifactPowerIndex != 0)
{
- ItemDynamicFieldArtifactPowers newPower = artifactPower;
+ byte newRank = m_itemData.ArtifactPowers[artifactPowerIndex].CurrentRankWithBonus;
if (apply)
- newPower.CurrentRankWithBonus += (byte)enchant.EffectPointsMin[i];
+ newRank += (byte)enchant.EffectPointsMin[i];
else
- newPower.CurrentRankWithBonus -= (byte)enchant.EffectPointsMin[i];
+ newRank -= (byte)enchant.EffectPointsMin[i];
+
+ ArtifactPower artifactPower = m_itemData.ModifyValue(m_itemData.ArtifactPowers, artifactPowerIndex);
+ SetUpdateFieldValue(ref artifactPower.CurrentRankWithBonus, newRank);
if (IsEquipped())
{
- ArtifactPowerRankRecord artifactPowerRank = Global.DB2Mgr.GetArtifactPowerRank(artifactPower.ArtifactPowerId, (byte)(newPower.CurrentRankWithBonus != 0 ? newPower.CurrentRankWithBonus - 1 : 0));
+ ArtifactPowerRankRecord artifactPowerRank = Global.DB2Mgr.GetArtifactPowerRank(m_itemData.ArtifactPowers[artifactPowerIndex].ArtifactPowerId, (byte)(newRank != 0 ? newRank - 1 : 0));
if (artifactPowerRank != null)
- owner.ApplyArtifactPowerRank(this, artifactPowerRank, newPower.CurrentRankWithBonus != 0);
+ owner.ApplyArtifactPowerRank(this, artifactPowerRank, newRank != 0);
}
-
- SetArtifactPower(newPower);
}
}
break;
@@ -2291,24 +2291,26 @@ namespace Game.Entities
PlayerConditionRecord playerCondition = CliDB.PlayerConditionStorage.LookupByKey(artifactPowerPicker.PlayerConditionID);
if (playerCondition == null || ConditionManager.IsPlayerMeetingCondition(owner, playerCondition))
{
- foreach (ItemDynamicFieldArtifactPowers artifactPower in GetArtifactPowers())
+ for (int artifactPowerIndex = 0; artifactPowerIndex < m_itemData.ArtifactPowers.Size(); ++artifactPowerIndex)
{
+ ArtifactPower artifactPower = m_itemData.ArtifactPowers[artifactPowerIndex];
if (CliDB.ArtifactPowerStorage.LookupByKey(artifactPower.ArtifactPowerId).Label == _bonusData.GemRelicType[slot - EnchantmentSlot.Sock1])
{
- ItemDynamicFieldArtifactPowers newPower = artifactPower;
+ byte newRank = artifactPower.CurrentRankWithBonus;
if (apply)
- newPower.CurrentRankWithBonus += (byte)enchant.EffectPointsMin[i];
+ newRank += (byte)enchant.EffectPointsMin[i];
else
- newPower.CurrentRankWithBonus -= (byte)enchant.EffectPointsMin[i];
+ newRank -= (byte)enchant.EffectPointsMin[i];
+
+ artifactPower = m_itemData.ModifyValue(m_itemData.ArtifactPowers, artifactPowerIndex);
+ SetUpdateFieldValue(ref artifactPower.CurrentRankWithBonus, newRank);
if (IsEquipped())
{
- ArtifactPowerRankRecord artifactPowerRank = Global.DB2Mgr.GetArtifactPowerRank(artifactPower.ArtifactPowerId, (byte)(newPower.CurrentRankWithBonus != 0 ? newPower.CurrentRankWithBonus - 1 : 0));
+ ArtifactPowerRankRecord artifactPowerRank = Global.DB2Mgr.GetArtifactPowerRank(artifactPower.ArtifactPowerId, (byte)(newRank != 0 ? newRank - 1 : 0));
if (artifactPowerRank != null)
- owner.ApplyArtifactPowerRank(this, artifactPowerRank, newPower.CurrentRankWithBonus != 0);
+ owner.ApplyArtifactPowerRank(this, artifactPowerRank, newRank != 0);
}
-
- SetArtifactPower(newPower);
}
}
}
@@ -2329,6 +2331,7 @@ namespace Game.Entities
SetAppearanceModId(parent.GetAppearanceModId());
}
+ public void SetArtifactXP(ulong xp) { SetUpdateFieldValue(m_values.ModifyValue(m_itemData).ModifyValue(m_itemData.ArtifactXP), xp); }
public void GiveArtifactXp(ulong amount, Item sourceItem, ArtifactCategory artifactCategoryId)
{
Player owner = GetOwner();
@@ -2353,7 +2356,7 @@ namespace Game.Entities
amount = 5 * (amount / 5);
}
- SetUInt64Value(ItemFields.ArtifactXp, GetUInt64Value(ItemFields.ArtifactXp) + amount);
+ SetArtifactXP(m_itemData.ArtifactXP + amount);
ArtifactXpGain artifactXpGain = new ArtifactXpGain();
artifactXpGain.ArtifactGUID = GetGUID();
@@ -2363,6 +2366,16 @@ namespace Game.Entities
SetState(ItemUpdateState.Changed, owner);
}
+ public void SetContext(int context) { SetUpdateFieldValue(m_values.ModifyValue(m_itemData).ModifyValue(m_itemData.Context), context); }
+ public void SetPetitionId(uint petitionId)
+ {
+ SetUpdateFieldValue(m_itemData.ModifyValue(m_itemData.Enchantment, 0).ModifyValue((ItemEnchantment itemEnchantment) => itemEnchantment.ID), petitionId);
+ }
+ public void SetPetitionNumSignatures(uint signatures)
+ {
+ SetUpdateFieldValue(m_itemData.ModifyValue(m_itemData.Enchantment, 0).ModifyValue((ItemEnchantment itemEnchantment) => itemEnchantment.Duration), signatures);
+ }
+
public void SetFixedLevel(uint level)
{
if (!_bonusData.HasFixedLevel || GetModifier(ItemModifier.ScalingStatDistributionFixedLevel) != 0)
@@ -2457,7 +2470,7 @@ namespace Game.Entities
eff.SetBonuses.Add(itemSetSpell);
// spell cast only if fit form requirement, in other case will cast at form change
- if (itemSetSpell.ChrSpecID == 0 || itemSetSpell.ChrSpecID == player.GetUInt32Value(PlayerFields.CurrentSpecId))
+ if (itemSetSpell.ChrSpecID == 0 || itemSetSpell.ChrSpecID == player.GetPrimarySpecialization())
player.ApplyEquipSpell(spellInfo, null, true);
}
}
@@ -2513,14 +2526,34 @@ namespace Game.Entities
public BonusData GetBonus() { return _bonusData; }
- public ObjectGuid GetOwnerGUID() { return GetGuidValue(ItemFields.Owner); }
- public void SetOwnerGUID(ObjectGuid guid) { SetGuidValue(ItemFields.Owner, guid); }
+ public ObjectGuid GetOwnerGUID() { return m_itemData.Owner; }
+ public void SetOwnerGUID(ObjectGuid guid) { SetUpdateFieldValue(m_values.ModifyValue(m_itemData).ModifyValue(m_itemData.Owner), guid); }
+ public ObjectGuid GetContainedIn() { return m_itemData.ContainedIn; }
+ public void SetContainedIn(ObjectGuid guid) { SetUpdateFieldValue(m_values.ModifyValue(m_itemData).ModifyValue(m_itemData.ContainedIn), guid); }
+ public ObjectGuid GetCreator() { return m_itemData.Creator; }
+ public void SetCreator(ObjectGuid guid) { SetUpdateFieldValue(m_values.ModifyValue(m_itemData).ModifyValue(m_itemData.Creator), guid); }
+ public ObjectGuid GetGiftCreator() { return m_itemData.GiftCreator; }
+ public void SetGiftCreator(ObjectGuid guid) { SetUpdateFieldValue(m_values.ModifyValue(m_itemData).ModifyValue(m_itemData.GiftCreator), guid); }
+
+ void SetExpiration(uint expiration) { SetUpdateFieldValue(m_values.ModifyValue(m_itemData).ModifyValue(m_itemData.Expiration), expiration); }
public ItemBondingType GetBonding() { return _bonusData.Bonding; }
- public void SetBinding(bool val) { ApplyModFlag(ItemFields.Flags, (uint)ItemFieldFlags.Soulbound, val); }
- public bool IsSoulBound() { return HasFlag(ItemFields.Flags, ItemFieldFlags.Soulbound); }
+ public void SetBinding(bool val)
+ {
+ if (val)
+ AddItemFlag(ItemFieldFlags.Soulbound);
+ else
+ RemoveItemFlag(ItemFieldFlags.Soulbound);
+ }
+
+ public bool IsSoulBound() { return HasItemFlag(ItemFieldFlags.Soulbound); }
public bool IsBoundAccountWide() { return GetTemplate().GetFlags().HasAnyFlag(ItemFlags.IsBoundToAccount); }
- bool IsBattlenetAccountBound() { return GetTemplate().GetFlags2().HasAnyFlag(ItemFlags2.BnetAccountTradeOk); }
+ public bool IsBattlenetAccountBound() { return GetTemplate().GetFlags2().HasAnyFlag(ItemFlags2.BnetAccountTradeOk); }
+
+ public bool HasItemFlag(ItemFieldFlags flag) { return (m_itemData.DynamicFlags & (uint)flag) != 0; }
+ public void AddItemFlag(ItemFieldFlags flags) { SetUpdateFieldFlagValue(m_values.ModifyValue(m_itemData).ModifyValue(m_itemData.DynamicFlags), (uint)flags); }
+ public void RemoveItemFlag(ItemFieldFlags flags) { RemoveUpdateFieldFlagValue(m_values.ModifyValue(m_itemData).ModifyValue(m_itemData.DynamicFlags), (uint)flags); }
+ public void SetItemFlags(ItemFieldFlags flags) { SetUpdateFieldValue(m_values.ModifyValue(m_itemData).ModifyValue(m_itemData.DynamicFlags), (uint)flags); }
public Bag ToBag()
{
@@ -2530,14 +2563,15 @@ namespace Game.Entities
return null;
}
- public bool IsLocked() { return !HasFlag(ItemFields.Flags, ItemFieldFlags.Unlocked); }
+ public bool IsLocked() { return !HasItemFlag(ItemFieldFlags.Unlocked); }
public bool IsBag() { return GetTemplate().GetInventoryType() == InventoryType.Bag; }
public bool IsCurrencyToken() { return GetTemplate().IsCurrencyToken(); }
- public bool IsBroken() { return GetUInt32Value(ItemFields.MaxDurability) > 0 && GetUInt32Value(ItemFields.Durability) == 0; }
+ public bool IsBroken() { return m_itemData.MaxDurability > 0 && m_itemData.Durability == 0; }
+ public void SetDurability(uint durability) { SetUpdateFieldValue(m_values.ModifyValue(m_itemData).ModifyValue(m_itemData.Durability), durability); }
public void SetInTrade(bool b = true) { mb_in_trade = b; }
public bool IsInTrade() { return mb_in_trade; }
- public uint GetCount() { return GetUInt32Value(ItemFields.StackCount); }
+ public uint GetCount() { return m_itemData.StackCount; }
public uint GetMaxStackCount() { return GetTemplate().GetMaxStackSize(); }
public byte GetSlot() { return m_slot; }
@@ -2548,27 +2582,18 @@ namespace Game.Entities
bool IsInBag() { return m_container != null; }
- public int GetItemRandomPropertyId() { return GetInt32Value(ItemFields.RandomPropertiesId); }
- public uint GetItemSuffixFactor() { return GetUInt32Value(ItemFields.PropertySeed); }
- public ItemRandomEnchantmentId GetItemRandomEnchantmentId() { return m_randomEnchantment; }
- public uint GetEnchantmentId(EnchantmentSlot slot)
- {
- return GetUInt32Value(ItemFields.Enchantment + (int)slot * (int)EnchantmentOffset.Max + (int)EnchantmentOffset.Id);
- }
- public uint GetEnchantmentDuration(EnchantmentSlot slot)
- {
- return GetUInt32Value(ItemFields.Enchantment + (int)slot * (int)EnchantmentOffset.Max + (int)EnchantmentOffset.Duration);
- }
- public uint GetEnchantmentCharges(EnchantmentSlot slot)
- {
- return GetUInt32Value(ItemFields.Enchantment + (int)slot * (int)EnchantmentOffset.Max + (int)EnchantmentOffset.Charges);
- }
+ public uint GetItemRandomBonusListId() { return m_randomBonusListId; }
+ public uint GetEnchantmentId(EnchantmentSlot slot) { return m_itemData.Enchantment[(int)slot].ID; }
+ public uint GetEnchantmentDuration(EnchantmentSlot slot) { return m_itemData.Enchantment[(int)slot].Duration; }
+ public int GetEnchantmentCharges(EnchantmentSlot slot) { return m_itemData.Enchantment[(int)slot].Charges; }
+
+ public void SetCreatePlayedTime(uint createPlayedTime) { SetUpdateFieldValue(m_values.ModifyValue(m_itemData).ModifyValue(m_itemData.CreatePlayedTime), createPlayedTime); }
public string GetText() { return m_text; }
public void SetText(string text) { m_text = text; }
- public int GetSpellCharges(int index = 0) { return GetInt32Value(ItemFields.SpellCharges + index); }
- public void SetSpellCharges(int index, int value) { SetInt32Value(ItemFields.SpellCharges + index, value); }
+ public int GetSpellCharges(int index = 0) { return m_itemData.SpellCharges[index]; }
+ public void SetSpellCharges(int index, int value) { SetUpdateFieldValue(ref m_values.ModifyValue(m_itemData).ModifyValue(m_itemData.SpellCharges, index), value); }
public ItemUpdateState GetState() { return uState; }
@@ -2596,8 +2621,8 @@ namespace Game.Entities
Cypher.Assert(index < ItemConst.MaxGemSockets);
return _bonusData.socketColor[index];
}
- public uint GetAppearanceModId() { return GetUInt32Value(ItemFields.AppearanceModId); }
- public void SetAppearanceModId(uint appearanceModId) { SetUInt32Value(ItemFields.AppearanceModId, appearanceModId); }
+ public uint GetAppearanceModId() { return m_itemData.ItemAppearanceModID; }
+ public void SetAppearanceModId(uint appearanceModId) { SetUpdateFieldValue(m_values.ModifyValue(m_itemData).ModifyValue(m_itemData.ItemAppearanceModID), (byte)appearanceModId); }
public uint GetArmor(Player owner) { return GetTemplate().GetArmor(GetItemLevel(owner)); }
public void GetDamage(Player owner, out float minDamage, out float maxDamage) { GetTemplate().GetDamage(GetItemLevel(owner), out minDamage, out maxDamage); }
public float GetRepairCostMultiplier() { return _bonusData.RepairCostMultiplier; }
@@ -2702,6 +2727,8 @@ namespace Game.Entities
}
#region Fields
+ public ItemData m_itemData;
+
public bool m_lootGenerated;
public Loot loot;
internal BonusData _bonusData;
@@ -2717,7 +2744,7 @@ namespace Game.Entities
bool mb_in_trade;
long m_lastPlayedTimeUpdate;
List allowedGUIDs = new List();
- ItemRandomEnchantmentId m_randomEnchantment; // store separately to easily find which bonus list is the one randomly given for stat rerolling
+ uint m_randomBonusListId; // store separately to easily find which bonus list is the one randomly given for stat rerolling
ObjectGuid m_childItem;
Dictionary m_artifactPowerIdToIndex = new Dictionary();
Array m_gemScalingLevels = new Array(ItemConst.MaxGemSockets);
@@ -2811,7 +2838,7 @@ namespace Game.Entities
if (bonuses != null)
{
foreach (ItemBonusRecord bonus in bonuses)
- AddBonus(bonus.Type, bonus.Value);
+ AddBonus(bonus.BonusType, bonus.Value);
}
}
}
@@ -2926,13 +2953,11 @@ namespace Game.Entities
}
}
- [StructLayout(LayoutKind.Sequential)]
- public class ItemDynamicFieldArtifactPowers
+ public class ArtifactPowerLoadInfo
{
public uint ArtifactPowerId;
public byte PurchasedRank;
public byte CurrentRankWithBonus;
- public ushort Padding;
}
[StructLayout(LayoutKind.Sequential)]
diff --git a/Source/Game/Entities/Item/ItemEnchantment.cs b/Source/Game/Entities/Item/ItemEnchantment.cs
index 567379cb6..710274a7c 100644
--- a/Source/Game/Entities/Item/ItemEnchantment.cs
+++ b/Source/Game/Entities/Item/ItemEnchantment.cs
@@ -22,148 +22,79 @@ using System.Collections.Generic;
namespace Game.Entities
{
- public class ItemEnchantment
+ public class ItemEnchantmentManager
{
- static ItemEnchantment()
+ public static void LoadItemRandomBonusListTemplates()
{
- RandomItemEnch = new EnchantmentStore();
- }
+ uint oldMSTime = Time.GetMSTime();
- public static void LoadRandomEnchantmentsTable()
- {
- // for reload case
- RandomItemEnch[ItemRandomEnchantmentType.Property].Clear();
- RandomItemEnch[ItemRandomEnchantmentType.Suffix].Clear();
+ _storage.Clear();
- // 0 1 2 3
- SQLResult result = DB.World.Query("SELECT entry, type, ench, chance FROM item_enchantment_template");
+ // 0 1 2
+ SQLResult result = DB.World.Query("SELECT Id, BonusListID, Chance FROM item_random_bonus_list_template");
if (result.IsEmpty())
{
Log.outError(LogFilter.Player, "Loaded 0 Item Enchantment definitions. DB table `item_enchantment_template` is empty.");
+ return;
}
uint count = 0;
do
{
- uint entry = result.Read(0);
- ItemRandomEnchantmentType type = (ItemRandomEnchantmentType)result.Read(1);
- uint ench = result.Read(2);
- float chance = result.Read(3);
+ uint id = result.Read(0);
+ uint bonusListId = result.Read(1);
+ float chance = result.Read(2);
- switch (type)
+ if (Global.DB2Mgr.GetItemBonusList(bonusListId) == null)
{
- case ItemRandomEnchantmentType.Property:
- if (!CliDB.ItemRandomPropertiesStorage.ContainsKey(ench))
- {
- Log.outError(LogFilter.Sql, "Property {0} used in `item_enchantment_template` by entry {1} doesn't have exist in ItemRandomProperties.db2", ench, entry);
- continue;
- }
- break;
- case ItemRandomEnchantmentType.Suffix:
- if (!CliDB.ItemRandomSuffixStorage.ContainsKey(ench))
- {
- Log.outError(LogFilter.Sql, "Suffix {0} used in `item_enchantment_template` by entry {1} doesn't have exist in ItemRandomSuffix.db2", ench, entry);
- continue;
- }
- break;
- case ItemRandomEnchantmentType.BonusList:
- if (Global.DB2Mgr.GetItemBonusList(ench) == null)
- {
- Log.outError(LogFilter.Sql, "Bonus list {0} used in `item_enchantment_template` by entry {1} doesn't have exist in ItemBonus.db2", ench, entry);
- continue;
- }
- break;
- default:
- Log.outError(LogFilter.Sql, "Invalid random enchantment type specified in `item_enchantment_template` table for `entry` {0} `ench` {1}", entry, ench);
- break;
+ Log.outError(LogFilter.Sql, $"Bonus list {bonusListId} used in `item_random_bonus_list_template` by id {id} doesn't have exist in ItemBonus.db2");
+ continue;
}
if (chance < 0.000001f || chance > 100.0f)
{
- Log.outError(LogFilter.Sql, "Random item enchantment for entry {0} type {1} ench {2} has invalid chance {3}", entry, type, ench, chance);
+ Log.outError(LogFilter.Sql, $"Bonus list {bonusListId} used in `item_random_bonus_list_template` by id {id} has invalid chance {chance}");
continue;
}
- switch (type)
- {
- case ItemRandomEnchantmentType.Property:
- RandomItemEnch[ItemRandomEnchantmentType.Property].Add(entry, new EnchStoreItem(type, ench, chance));
- break;
- case ItemRandomEnchantmentType.Suffix:
- case ItemRandomEnchantmentType.BonusList: // random bonus lists use RandomSuffix field in Item-sparse.db2
- RandomItemEnch[ItemRandomEnchantmentType.Suffix].Add(entry, new EnchStoreItem(type, ench, chance));
- break;
- default:
- break;
- }
+ if (!_storage.ContainsKey(id))
+ _storage[id] = new RandomBonusListIds();
+
+ RandomBonusListIds ids = _storage[id];
+ ids.BonusListIDs.Add(bonusListId);
+ ids.Chances.Add(chance);
++count;
} while (result.NextRow());
- Log.outInfo(LogFilter.Player, "Loaded {0} Item Enchantment definitions", count);
+ Log.outInfo(LogFilter.Player, $"Loaded {count} Random item bonus list definitions in {Time.GetMSTimeDiffToNow(oldMSTime)} ms");
}
- public static ItemRandomEnchantmentId GetItemEnchantMod(int entry, ItemRandomEnchantmentType type)
- {
- if (entry == 0)
- return ItemRandomEnchantmentId.Empty;
-
- if (entry == -1)
- return ItemRandomEnchantmentId.Empty;
-
- var tab = RandomItemEnch[type].LookupByKey(entry);
- if (tab == null)
- {
- Log.outError(LogFilter.Player, "Item RandomProperty / RandomSuffix id #{0} used in `item_template` but it does not have records in `item_enchantment_template` table.", entry);
- return ItemRandomEnchantmentId.Empty;
- }
-
- var selectedItem = tab.SelectRandomElementByWeight(enchant => enchant.chance);
-
- return new ItemRandomEnchantmentId(selectedItem.type, selectedItem.ench);
- }
-
- public static ItemRandomEnchantmentId GenerateItemRandomPropertyId(uint item_id)
+ public static uint GenerateItemRandomBonusListId(uint item_id)
{
ItemTemplate itemProto = Global.ObjectMgr.GetItemTemplate(item_id);
if (itemProto == null)
- return ItemRandomEnchantmentId.Empty;
+ return 0;
// item must have one from this field values not null if it can have random enchantments
- if (itemProto.GetRandomProperty() == 0 && itemProto.GetRandomSuffix() == 0)
- return ItemRandomEnchantmentId.Empty;
+ if (itemProto.RandomBonusListTemplateId == 0)
+ return 0;
- // item can have not null only one from field values
- if (itemProto.GetRandomProperty() != 0 && itemProto.GetRandomSuffix() != 0)
+ var tab = _storage.LookupByKey(itemProto.RandomBonusListTemplateId);
+ if (tab == null)
{
- Log.outError(LogFilter.Sql, "Item template {0} have RandomProperty == {1} and RandomSuffix == {2}, but must have one from field =0", itemProto.GetId(), itemProto.GetRandomProperty(), itemProto.GetRandomSuffix());
- return ItemRandomEnchantmentId.Empty;
+ Log.outError(LogFilter.Sql, $"Item RandomBonusListTemplateId id {itemProto.RandomBonusListTemplateId} used in `item_template_addon` but it does not have records in `item_random_bonus_list_template` table.");
+ return 0;
}
-
- // RandomProperty case
- if (itemProto.GetRandomProperty() != 0)
- return GetItemEnchantMod((int)itemProto.GetRandomProperty(), ItemRandomEnchantmentType.Property);
- // RandomSuffix case
- else
- return GetItemEnchantMod((int)itemProto.GetRandomSuffix(), ItemRandomEnchantmentType.Suffix);
- }
-
- public static uint GenerateEnchSuffixFactor(uint item_id)
- {
- ItemTemplate itemProto = Global.ObjectMgr.GetItemTemplate(item_id);
-
- if (itemProto == null)
- return 0;
- if (itemProto.GetRandomSuffix() == 0)
- return 0;
-
- return GetRandomPropertyPoints(itemProto.GetBaseItemLevel(), itemProto.GetQuality(), itemProto.GetInventoryType(), itemProto.GetSubClass());
+ //todo fix me this is ulgy
+ return tab.BonusListIDs.SelectRandomElementByWeight(x => (float)tab.Chances[tab.BonusListIDs.IndexOf(x)]);
}
public static uint GetRandomPropertyPoints(uint itemLevel, ItemQuality quality, InventoryType inventoryType, uint subClass)
- {
+ {
uint propIndex;
+
switch (inventoryType)
{
case InventoryType.Head:
@@ -208,11 +139,11 @@ namespace Game.Entities
default:
return 0;
}
+
RandPropPointsRecord randPropPointsEntry = CliDB.RandPropPointsStorage.LookupByKey(itemLevel);
if (randPropPointsEntry == null)
return 0;
- // Select rare/epic modifier
switch (quality)
{
case ItemQuality.Uncommon:
@@ -225,69 +156,16 @@ namespace Game.Entities
case ItemQuality.Artifact:
return randPropPointsEntry.Epic[propIndex];
}
+
return 0;
}
- static EnchantmentStore RandomItemEnch;
-
- public class EnchStoreItem
- {
- public EnchStoreItem()
- {
- ench = 0;
- chance = 0;
- }
- public EnchStoreItem(ItemRandomEnchantmentType _type, uint _ench, float _chance)
- {
- type = _type;
- ench = _ench;
- chance = _chance;
- }
-
- public ItemRandomEnchantmentType type;
- public uint ench;
- public float chance;
- }
-
- class EnchantmentStore
- {
- public EnchantmentStore()
- {
- _data[(byte)ItemRandomEnchantmentType.Property] = new MultiMap();
- _data[(byte)ItemRandomEnchantmentType.Suffix] = new MultiMap();
- }
-
- public MultiMap this[ItemRandomEnchantmentType type]
- {
- get
- {
- //(type != ItemRandomEnchantmentType.BonusList, "Random bonus lists do not have their own storage, use Suffix for them");
- return _data[(byte)type];
- }
- }
-
- MultiMap[] _data = new MultiMap[2];
- }
+ static Dictionary _storage = new Dictionary();
}
- public struct ItemRandomEnchantmentId
+ public class RandomBonusListIds
{
- public static ItemRandomEnchantmentId Empty = default(ItemRandomEnchantmentId);
-
- public ItemRandomEnchantmentId(ItemRandomEnchantmentType type, uint id)
- {
- Type = type;
- Id = id;
- }
-
- public ItemRandomEnchantmentType Type;
- public uint Id;
- }
-
- public enum ItemRandomEnchantmentType
- {
- Property = 0,
- Suffix = 1,
- BonusList = 2
+ public List BonusListIDs = new List();
+ public List Chances = new List();
}
}
diff --git a/Source/Game/Entities/Item/ItemTemplate.cs b/Source/Game/Entities/Item/ItemTemplate.cs
index 0ef302d71..dbbc2b285 100644
--- a/Source/Game/Entities/Item/ItemTemplate.cs
+++ b/Source/Game/Entities/Item/ItemTemplate.cs
@@ -223,9 +223,9 @@ namespace Game.Entities
if (GetFlags().HasAnyFlag(ItemFlags.IsBoundToAccount) && alwaysAllowBoundToAccount)
return true;
- uint spec = player.GetUInt32Value(ActivePlayerFields.LootSpecId);
+ uint spec = player.GetLootSpecId();
if (spec == 0)
- spec = player.GetUInt32Value(PlayerFields.CurrentSpecId);
+ spec = player.GetPrimarySpecialization();
if (spec == 0)
spec = player.GetDefaultSpecId();
@@ -295,8 +295,6 @@ namespace Game.Entities
public uint GetPageText() { return ExtendedData.PageID; }
public uint GetStartQuest() { return ExtendedData.StartQuestID; }
public uint GetLockID() { return ExtendedData.LockID; }
- public uint GetRandomProperty() { return ExtendedData.RandomSelect; }
- public uint GetRandomSuffix() { return ExtendedData.ItemRandomSuffixGroupID; }
public uint GetItemSet() { return ExtendedData.ItemSet; }
public uint GetArea() { return ExtendedData.ZoneBound; }
public uint GetMap() { return ExtendedData.InstanceBound; }
@@ -345,6 +343,7 @@ namespace Game.Entities
public uint MaxMoneyLoot;
public ItemFlagsCustom FlagsCu;
public float SpellPPMRate;
+ public uint RandomBonusListTemplateId;
public BitArray[] Specializations = new BitArray[3];
public uint ItemSpecClassMask;
diff --git a/Source/Game/Entities/Object/Update/UpdateData.cs b/Source/Game/Entities/Object/Update/UpdateData.cs
index 01586befb..c1642d498 100644
--- a/Source/Game/Entities/Object/Update/UpdateData.cs
+++ b/Source/Game/Entities/Object/Update/UpdateData.cs
@@ -56,13 +56,13 @@ namespace Game.Entities
if (buffer.WriteBit(!outOfRangeGUIDs.Empty()))
{
buffer.WriteUInt16(0); // object limit to instantly destroy - objects before this index on m_outOfRangeGUIDs list get "smoothly phased out"
- buffer.WriteUInt32(outOfRangeGUIDs.Count);
+ buffer.WriteInt32(outOfRangeGUIDs.Count);
foreach (var guid in outOfRangeGUIDs)
buffer.WritePackedGuid(guid);
}
var bytes = data.GetData();
- buffer.WriteUInt32(bytes.Length);
+ buffer.WriteInt32(bytes.Length);
buffer.WriteBytes(bytes);
packet.Data = buffer.GetData();
diff --git a/Source/Game/Entities/Object/Update/UpdateField.cs b/Source/Game/Entities/Object/Update/UpdateField.cs
new file mode 100644
index 000000000..8b8d1d987
--- /dev/null
+++ b/Source/Game/Entities/Object/Update/UpdateField.cs
@@ -0,0 +1,453 @@
+/*
+ * Copyright (C) 2012-2019 CypherCore
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+using Framework.Constants;
+using Game.Network;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Linq.Expressions;
+using System.Reflection;
+
+namespace Game.Entities
+{
+ public class UpdateFieldHolder
+ {
+ public UpdateFieldHolder(WorldObject owner) { _owner = owner; }
+
+ public BaseUpdateData ModifyValue(BaseUpdateData updateData)
+ {
+ _changesMask.Set(updateData.Bit);
+ return updateData;
+ }
+
+ public void ClearChangesMask(BaseUpdateData updateData)
+ {
+ _changesMask.Reset(updateData.Bit);
+ }
+
+ public void ClearChangesMask(BaseUpdateData updateData, ref UpdateField updateField) where T : new() where U : new()
+ {
+ _changesMask.Reset(updateData.Bit);
+
+ IHasChangesMask hasChangesMask = (IHasChangesMask)updateField._value;
+ if (hasChangesMask != null)
+ hasChangesMask.ClearChangesMask();
+ }
+
+ public uint GetChangedObjectTypeMask()
+ {
+ return _changesMask.GetBlock(0);
+ }
+
+ public bool HasChanged(TypeId index)
+ {
+ return _changesMask[(int)index];
+ }
+
+ UpdateMask _changesMask = new UpdateMask((int)TypeId.Max);
+ WorldObject _owner;
+ }
+
+ public interface IUpdateField
+ {
+ void SetValue(T value);
+ T GetValue();
+ }
+
+ public class UpdateField : IUpdateField where T : new()
+ {
+ public T _value;
+ public int BlockBit;
+ public int Bit;
+
+ public UpdateField(int blockBit, int bit)
+ {
+ BlockBit = blockBit;
+ Bit = bit;
+ _value = new T();
+ }
+
+ public static implicit operator T(UpdateField updateField)
+ {
+ return updateField._value;
+ }
+
+ public void SetValue(T value) { _value = value; }
+
+ public T GetValue() { return _value; }
+ }
+
+ public class UpdateFieldArray where T : new()
+ {
+ public T[] _values;
+ public int FirstElementBit;
+ public int Bit;
+
+ public UpdateFieldArray(uint size, int bit, int firstElementBit)
+ {
+ _values = new T[size];
+ for (var i = 0; i < size; ++i)
+ _values[i] = new T();
+
+ Bit = bit;
+ FirstElementBit = firstElementBit;
+ }
+
+ public T this[int index]
+ {
+ get
+ {
+ return _values[index];
+ }
+ set
+ {
+ _values[index] = value;
+ }
+ }
+
+ public int GetSize() { return _values.Length; }
+
+ public IEnumerator