diff options
36 files changed, 2042 insertions, 198 deletions
diff --git a/sql/updates/world/2012_07_22_00_world_spelldifficulty_dbc.sql b/sql/updates/world/2012_07_22_00_world_spelldifficulty_dbc.sql new file mode 100644 index 00000000000..c90c42692b9 --- /dev/null +++ b/sql/updates/world/2012_07_22_00_world_spelldifficulty_dbc.sql @@ -0,0 +1 @@ +UPDATE `spelldifficulty_dbc` SET `spellid0`= 61890 WHERE `id`= 3251 AND `spellid1`= 63498; diff --git a/sql/updates/world/2012_07_22_01_world_conditions.sql b/sql/updates/world/2012_07_22_01_world_conditions.sql new file mode 100644 index 00000000000..333ae7f997f --- /dev/null +++ b/sql/updates/world/2012_07_22_01_world_conditions.sql @@ -0,0 +1,10 @@ +-- Saronite Mine Slave conditions +SET @QUEST_A := 13300; +SET @QUEST_H := 13302; +SET @GOSSIP := 10137; + +-- Only show gossip if player is on quest Slaves to Saronite +DELETE FROM `conditions` WHERE `SourceGroup`=@GOSSIP AND `ConditionValue1` IN (@QUEST_A,@QUEST_H); +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(15,@GOSSIP,0,0,0,9,0,@QUEST_A,0,0,0,0,'',"Only show first gossip if player is on quest Slaves to Saronite Alliance"), +(15,@GOSSIP,0,0,1,9,0,@QUEST_H,0,0,0,0,'',"Only show first gossip if player is on quest Slaves to Saronite Horde"); diff --git a/sql/updates/world/2012_07_22_02_world_creature_loot_template.sql b/sql/updates/world/2012_07_22_02_world_creature_loot_template.sql new file mode 100644 index 00000000000..e4bc61b6fa4 --- /dev/null +++ b/sql/updates/world/2012_07_22_02_world_creature_loot_template.sql @@ -0,0 +1,5 @@ +-- Item was added to the wrong NPC +-- Source: http://old.wowhead.com/item=19364 +DELETE FROM `creature_loot_template` WHERE `entry` IN (1853, 11583) AND `item`=19364; +INSERT INTO `creature_loot_template` (`entry`, `item`, `ChanceOrQuestChance`, `lootmode`, `groupid`, `mincountOrRef`, `maxcount`) VALUES +(11583, 19364, 10, 1, 0, 1, 1); diff --git a/sql/updates/world/2012_07_22_03_world_gossip.sql b/sql/updates/world/2012_07_22_03_world_gossip.sql new file mode 100644 index 00000000000..d1aa7e50747 --- /dev/null +++ b/sql/updates/world/2012_07_22_03_world_gossip.sql @@ -0,0 +1,18 @@ +-- Keristrasza (26206) +UPDATE `creature_template` SET `gossip_menu_id` = 9262 WHERE `entry` = 26206; + +DELETE FROM `gossip_menu` WHERE `entry`=9262 AND `text_id`=12576; +INSERT INTO `gossip_menu` (`entry`, `text_id`) VALUES (9262, 12576); + +-- from sniff +DELETE FROM `gossip_menu_option` WHERE `menu_id`=9262 AND `id`=0; +DELETE FROM `gossip_menu_option` WHERE `menu_id`=9262 AND `id`=1; +INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`, `option_text`, `option_id`, `npc_option_npcflag`, `action_menu_id`, `action_poi_id`, `box_coded`, `box_money`, `box_text`) VALUES +(9262, 0, 0, 'I am prepared to face Saragosa!', 1, 3, 0, 0, 0, 0, NULL), +(9262, 1, 0, 'Keristrasa, I am finished here. Please return me to the Transitus Shield.', 1, 3, 0, 0, 0, 0, NULL); + +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup`=9262 AND `SourceEntry`=0; +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup`=9262 AND `SourceEntry`=1; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(15, 9262, 0, 0, 0, 9, 0, 11957, 0, 0, 0, 0, '', "Only show gossip if player has quest Saragosa's End"), +(15, 9262, 1, 0, 0, 9, 0, 11967, 0, 0, 0, 0, '', "Only show gossip if player has quest Mustering the Reds"); diff --git a/sql/updates/world/2012_07_22_04_world_gossip.sql b/sql/updates/world/2012_07_22_04_world_gossip.sql new file mode 100644 index 00000000000..0fbf2e7508f --- /dev/null +++ b/sql/updates/world/2012_07_22_04_world_gossip.sql @@ -0,0 +1,20 @@ +-- NPC Cowlen - Missing Gossip Options +SET @NPC := 17311; +DELETE FROM `creature_addon` WHERE `guid`=84415; +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES +(84415,0,0,1,0,0,NULL); +UPDATE `creature_template` SET `gossip_menu_id`=7403, `AIName`='SmartAI' WHERE `entry`=@NPC; +DELETE FROM `gossip_menu` WHERE `entry` IN (7403,7402,7401); +INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES +(7403,8870), +(7402,8871), +(7401,8872); +DELETE FROM `gossip_menu_option` WHERE `menu_id` IN (7403,7402,7401) AND `id`=0; +INSERT INTO `gossip_menu_option` (`menu_id`,`id`,`option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`,`action_poi_id`,`box_coded`,`box_money`,`box_text`) VALUES +(7403,0,0, 'I have not come to kill you, night elf. And the gods did not do this...',1,1,7402,0,0,0, ''), +(7402,0,0, 'I fear that my people are somewhat responsible for this destruction. We are refugees, displaced from our homes by the Burning Legion. This tragedy is a result of our latest evacuation. Our vessel crashed - this debris is a part of that vessel.',1,1,7401,0,0,0, ''), +(7401,0,0, 'We have much in common, night elf. I can''t help but feel that perhaps it was fate that brought us together. Let me help you, Cowlen. Let my people help. We will right the wrongs. This I vow.',1,1,0,0,0,0, ''); +DELETE FROM `smart_scripts` WHERE `entryorguid`=@NPC AND `source_type`=0 AND `id` IN (0,1); +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@NPC,0,0,1,62,0,100,0,7401,0,0,0,5,18,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Cowlen - On gossip option play emote'), +(@NPC,0,1,0,61,0,100,0,7401,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Cowlen - On gossip option Close Gossip'); diff --git a/sql/updates/world/2012_07_22_05_world_script_texts.sql b/sql/updates/world/2012_07_22_05_world_script_texts.sql new file mode 100644 index 00000000000..2ecb1b8f130 --- /dev/null +++ b/sql/updates/world/2012_07_22_05_world_script_texts.sql @@ -0,0 +1,2 @@ +-- Fixing wrong text in Trial of the Crusader, Twin Valkyrs +UPDATE `script_texts` SET `content_default`='%s begins to read the spell Twin''s Pact!' WHERE `entry`=-1649043; diff --git a/sql/updates/world/2012_07_22_06_world_gossip.sql b/sql/updates/world/2012_07_22_06_world_gossip.sql new file mode 100644 index 00000000000..0cb41937d3c --- /dev/null +++ b/sql/updates/world/2012_07_22_06_world_gossip.sql @@ -0,0 +1,85 @@ +-- gossip assignation from sniff +UPDATE `creature_template` SET `gossip_menu_id`=4182 WHERE `entry`=1466; -- Gretta Finespindle <Apprentice Leatherworker> +UPDATE `creature_template` SET `gossip_menu_id`=201 WHERE `entry`=3678; -- Muyoh <Disciple of Naralex> +UPDATE `creature_template` SET `gossip_menu_id`=7406 WHERE `entry`=3848; -- Kayneth Stillwind +UPDATE `creature_template` SET `gossip_menu_id`=8851 WHERE `entry`=4979; -- Theramore Guard +UPDATE `creature_template` SET `gossip_menu_id`=4862 WHERE `entry`=6771; -- Ravenholdt Assassin <Assassin's League> +UPDATE `creature_template` SET `gossip_menu_id`=3130 WHERE `entry`=10618; -- Rivern Frostwind <Wintersaber Trainer> +UPDATE `creature_template` SET `gossip_menu_id`=3441 WHERE `entry`=10857; -- Argent Quartermaster Lightspark <The Argent Crusade> +UPDATE `creature_template` SET `gossip_menu_id`=3074 WHERE `entry`=10922; -- Greta Mosshoof <Emerald Circle> +UPDATE `creature_template` SET `gossip_menu_id`=3128 WHERE `entry`=11019; -- Jessir Moonbow +UPDATE `creature_template` SET `gossip_menu_id`=3622 WHERE `entry`=11554; -- Grazle +UPDATE `creature_template` SET `gossip_menu_id`=3602 WHERE `entry`=11609; -- Alexia Ironknife +UPDATE `creature_template` SET `gossip_menu_id`=3963 WHERE `entry`=11626; -- Rigger Gizelton +UPDATE `creature_template` SET `gossip_menu_id`=4003 WHERE `entry`=12245; -- Vendor-Tron 1000 +UPDATE `creature_template` SET `gossip_menu_id`=4002 WHERE `entry`=12246; -- Super-Seller 680 +UPDATE `creature_template` SET `gossip_menu_id`=4922 WHERE `entry`=13085; -- Myrokos Silentform +UPDATE `creature_template` SET `gossip_menu_id`=6531 WHERE `entry`=15182; -- Vish Kozus <Captain of the Guard> +UPDATE `creature_template` SET `gossip_menu_id`=7326 WHERE `entry`=16817; -- Festival Loremaster +UPDATE `creature_template` SET `gossip_menu_id`=7405 WHERE `entry`=17287; -- Sentinel Luciel Starwhisper <Silverwing Sentinels> +UPDATE `creature_template` SET `gossip_menu_id`=7404 WHERE `entry`=17291; -- Architect Nemos +UPDATE `creature_template` SET `gossip_menu_id`=7407 WHERE `entry`=17303; -- Vindicator Vedaar <Hand of Argus> +UPDATE `creature_template` SET `gossip_menu_id`=8080 WHERE `entry`=17310; -- Gnarl <Ancient of War> +UPDATE `creature_template` SET `gossip_menu_id`=7382 WHERE `entry`=17406; -- Artificer +UPDATE `creature_template` SET `gossip_menu_id`=7735 WHERE `entry`=18538; -- Ishanah <High Priestess of the Aldor> +UPDATE `creature_template` SET `gossip_menu_id`=7734 WHERE `entry`=18596; -- Arcanist Adyria <The Scryers> +UPDATE `creature_template` SET `gossip_menu_id`=7747 WHERE `entry`=18653; -- Seth +UPDATE `creature_template` SET `gossip_menu_id`=10459 WHERE `entry`=33746; -- Silvermoon Champion +UPDATE `creature_template` SET `gossip_menu_id`=10461 WHERE `entry`=33748; -- Thunder Bluff Champion +UPDATE `creature_template` SET `gossip_menu_id`=10462 WHERE `entry`=33749; -- Undercity Champion + +-- gossip from sniff +DELETE FROM `gossip_menu` WHERE (`entry`=201 AND `text_id`=698) OR (`entry`=3074 AND `text_id`=3807) OR (`entry`=3128 AND `text_id`=3864) OR (`entry`=3130 AND `text_id`=3854) OR (`entry`=3441 AND `text_id`=4193) OR (`entry`=3602 AND `text_id`=4354) OR (`entry`=3621 AND `text_id`=4394) OR (`entry`=3622 AND `text_id`=4393) OR (`entry`=3961 AND `text_id`=4813) OR (`entry`=3963 AND `text_id`=4815) OR (`entry`=4002 AND `text_id`=4856) OR (`entry`=4003 AND `text_id`=4857) OR (`entry`=4182 AND `text_id`=5276) OR (`entry`=4862 AND `text_id`=5938) OR (`entry`=4922 AND `text_id`=5981) OR (`entry`=6531 AND `text_id`=7733) OR (`entry`=6588 AND `text_id`=7801) OR (`entry`=6587 AND `text_id`=7802) OR (`entry`=6586 AND `text_id`=7803) OR (`entry`=6585 AND `text_id`=7804) OR (`entry`=7326 AND `text_id`=8703) OR (`entry`=7382 AND `text_id`=8838) OR (`entry`=7404 AND `text_id`=8873) OR (`entry`=7405 AND `text_id`=8874) OR (`entry`=7406 AND `text_id`=8875) OR (`entry`=7407 AND `text_id`=8876) OR (`entry`=7735 AND `text_id`=9457) OR (`entry`=7734 AND `text_id`=9452) OR (`entry`=7747 AND `text_id`=9486) OR (`entry`=8080 AND `text_id`=9986) OR (`entry`=8464 AND `text_id`=10573) OR (`entry`=8851 AND `text_id`=11492) OR (`entry`=10933 AND `text_id`=15194); +INSERT INTO `gossip_menu` (`entry`, `text_id`) VALUES +(201, 698), -- 3678 +(3074, 3807), -- 10922 +(3128, 3864), -- 11019 +(3130, 3854), -- 10618 +(3441, 4193), -- 10857 +(3602, 4354), -- 11609 +(3621, 4394), -- 11554 +(3622, 4393), -- 11554 +(3961, 4813), -- 11625 +(3963, 4815), -- 11626 +(4002, 4856), -- 12246 +(4003, 4857), -- 12245 +(4182, 5276), -- 1466 +(4862, 5938), -- 6771 +(4922, 5981), -- 13085 +(6531, 7733), -- 15182 +(6588, 7801), -- 15169 +(6587, 7802), -- 15169 +(6586, 7803), -- 15169 +(6585, 7804), -- 15169 +(7326, 8703), -- 16817 +(7382, 8838), -- 17406 +(7404, 8873), -- 17291 +(7405, 8874), -- 17287 +(7406, 8875), -- 3848 +(7407, 8876), -- 17303 +(7735, 9457), -- 18538 +(7734, 9452), -- 18596 +(7747, 9486), -- 18653 +(8080, 9986), -- 17310 +(8464, 10573), -- 185126 +(8851, 11492), -- 4979 +(10933, 15194); -- 37200 + +-- correct npc_flags for npc from sniff +UPDATE `creature_template` SET `npcflag`=0 WHERE `entry`=8151; -- Nijel's Point Guard +UPDATE `creature_template` SET `npcflag`=2 WHERE `entry`=24393; -- The Rokk <Master of Cooking> +UPDATE `creature_template` SET `npcflag`=1 WHERE `entry`=37119; -- Highlord Tirion Fordring + +-- missing gossip from sniff +DELETE FROM `gossip_menu_option` WHERE (`menu_id`=3622 AND `id`=0) OR (`menu_id`=4002 AND `id`=0) OR (`menu_id`=4003 AND `id`=0) OR (`menu_id`=6586 AND `id`=0) OR (`menu_id`=6587 AND `id`=0) OR (`menu_id`=6588 AND `id`=0) OR (`menu_id`=10456 AND `id`=0) OR (`menu_id`=10457 AND `id`=0) OR (`menu_id`=10461 AND `id`=0) OR (`menu_id`=10462 AND `id`=0); +INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`, `option_text`, `option_id`, `npc_option_npcflag`, `action_menu_id`, `action_poi_id`, `box_coded`, `box_money`, `box_text`) VALUES +(3622, 0, 0, 'How can I prove myself to the Timbermaw furbolg?', 1, 3, 3621, 0, 0, 0, ''), -- 11554 +(4002, 0, 1, 'Let me take a look at what you have to offer.', 3, 387, 0, 0, 0, 0, ''), -- 12246 +(4003, 0, 1, 'I am curious to see what a bucket of bolts has to offer.', 3, 131, 0, 0, 0, 0, ''), -- 12245 +(6586, 0, 0, 'And what do you say?', 1, 1, 6585, 0, 0, 0, ''), -- 15169 +(6587, 0, 0, 'What do they say?', 1, 1, 6586, 0, 0, 0, ''), -- 15169 +(6588, 0, 0, 'How do you know?', 1, 1, 6587, 0, 0, 0, ''), -- 15169 +(10456, 0, 0, 'I am ready to fight!', 1, 1, 0, 0, 0, 0, ''), -- 33743 +(10457, 0, 0, 'I am ready to fight!', 1, 1, 0, 0, 0, 0, ''), -- 33744 +(10461, 0, 0, 'I am ready to fight!', 1, 1, 0, 0, 0, 0, ''), -- 33748 +(10462, 0, 0, 'I am ready to fight!', 1, 1, 0, 0, 0, 0, ''); -- 33749 diff --git a/sql/updates/world/2012_07_22_07_world_sai.sql b/sql/updates/world/2012_07_22_07_world_sai.sql new file mode 100644 index 00000000000..f8f42ef07da --- /dev/null +++ b/sql/updates/world/2012_07_22_07_world_sai.sql @@ -0,0 +1,7 @@ +-- Add SAI for Liquid Pyrite ID: 33189 - remove auras to prevent exploit after used, also despawn +SET @Pyrite := 33189; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@Pyrite; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@Pyrite; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@Pyrite,0,0,1,8,0,100,0,67390,0,0,0,28,62494,0,0,0,0,0,1,0,0,0,0,0,0,0,'Pyrite - On hit by spell Ride Vehicle - Remove auras from Liquid Pyrite'), +(@Pyrite,0,1,0,61,0,100,0,0,0,0,0,41,15000,0,0,0,0,0,1,0,0,0,0,0,0,0,'Pyrite - Linked with previous event - Despawn in 15 sec'); diff --git a/sql/updates/world/2012_07_22_08_world_sai.sql b/sql/updates/world/2012_07_22_08_world_sai.sql new file mode 100644 index 00000000000..62b5a95f532 --- /dev/null +++ b/sql/updates/world/2012_07_22_08_world_sai.sql @@ -0,0 +1,16 @@ +-- Remove disables (instances scripts) for 10 and 25 version of achievement Dwarfageddon +DELETE FROM `achievement_criteria_data` WHERE `criteria_id`=10858 AND `type`=18; +DELETE FROM `achievement_criteria_data` WHERE `criteria_id`=10860 AND `type`=18; +-- Insert the required spell credit markers for Dwarfageddon (10/25 player) achievements +DELETE FROM `spell_dbc` WHERE `Id`=65387; +INSERT INTO `spell_dbc` (`Id`, `Dispel`, `Mechanic`, `Attributes`, `AttributesEx`, `AttributesEx2`, `AttributesEx3`, `AttributesEx4`, `AttributesEx5`, `AttributesEx6`, `AttributesEx7`, `Stances`, `StancesNot`, `Targets`, `CastingTimeIndex`, `AuraInterruptFlags`, `ProcFlags`, `ProcChance`, `ProcCharges`, `MaxLevel`, `BaseLevel`, `SpellLevel`, `DurationIndex`, `RangeIndex`, `StackAmount`, `EquippedItemClass`, `EquippedItemSubClassMask`, `EquippedItemInventoryTypeMask`, `Effect1`, `Effect2`, `Effect3`, `EffectDieSides1`, `EffectDieSides2`, `EffectDieSides3`, `EffectRealPointsPerLevel1`, `EffectRealPointsPerLevel2`, `EffectRealPointsPerLevel3`, `EffectBasePoints1`, `EffectBasePoints2`, `EffectBasePoints3`, `EffectMechanic1`, `EffectMechanic2`, `EffectMechanic3`, `EffectImplicitTargetA1`, `EffectImplicitTargetA2`, `EffectImplicitTargetA3`, `EffectImplicitTargetB1`, `EffectImplicitTargetB2`, `EffectImplicitTargetB3`, `EffectRadiusIndex1`, `EffectRadiusIndex2`, `EffectRadiusIndex3`, `EffectApplyAuraName1`, `EffectApplyAuraName2`, `EffectApplyAuraName3`, `EffectAmplitude1`, `EffectAmplitude2`, `EffectAmplitude3`, `EffectMultipleValue1`, `EffectMultipleValue2`, `EffectMultipleValue3`, `EffectMiscValue1`, `EffectMiscValue2`, `EffectMiscValue3`, `EffectMiscValueB1`, `EffectMiscValueB2`, `EffectMiscValueB3`, `EffectTriggerSpell1`, `EffectTriggerSpell2`, `EffectTriggerSpell3`, `EffectSpellClassMaskA1`, `EffectSpellClassMaskA2`, `EffectSpellClassMaskA3`, `EffectSpellClassMaskB1`, `EffectSpellClassMaskB2`, `EffectSpellClassMaskB3`, `EffectSpellClassMaskC1`, `EffectSpellClassMaskC2`, `EffectSpellClassMaskC3`, `MaxTargetLevel`, `SpellFamilyName`, `SpellFamilyFlags1`, `SpellFamilyFlags2`, `SpellFamilyFlags3`, `MaxAffectedTargets`, `DmgClass`, `PreventionType`, `DmgMultiplier1`, `DmgMultiplier2`, `DmgMultiplier3`, `AreaGroupId`, `SchoolMask`, `Comment`) VALUES +(65387, 0, 0, 545259776, 0, 5, 268697600, 128, 0, 16777216, 0, 0, 0, 0, 1, 0, 0, 101, 0, 0, 0, 0, 0, 13, 0, -1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 7, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 'Steelforged Defender - Credit marker'); +-- Add SAI support for Dwarfageddon (10 and 25 player) achievement/also SAI for the NPC connected +SET @Defender := 33236; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@Defender; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@Defender; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@Defender,0,0,0,6,0,100,0,0,0,0,0,11,65387,0,0,0,0,0,16,0,0,0,0,0,0,0,'Steelforged Defender - On death - Cast achievement credit'), +(@Defender,0,1,0,0,0,100,0,0,2500,9000,12000,11,62845,0,0,0,0,0,2,0,0,0,0,0,0,0,'Steelforged Defender - IC - Hamstring'), +(@Defender,0,2,0,0,0,100,0,0,2600,13000,14000,11,50370,0,0,0,0,0,2,0,0,0,0,0,0,0,'Steelforged Defender - IC - Cast Sunder armor'), +(@Defender,0,3,0,0,0,100,0,500,4000,4500,9000,11,57780,0,0,0,0,0,2,0,0,0,0,0,0,0,'Steelforged Defender - IC - Cast Lightening Bolt'); diff --git a/sql/updates/world/2012_07_22_09_world_creature_template.sql b/sql/updates/world/2012_07_22_09_world_creature_template.sql new file mode 100644 index 00000000000..909b4cc238b --- /dev/null +++ b/sql/updates/world/2012_07_22_09_world_creature_template.sql @@ -0,0 +1,2 @@ +-- Add spells to Salvaged Chopper - 25 version +UPDATE `creature_template` SET `spell1`=62974,`spell2`=62286,`spell3`=62299,`spell4`=64660, `mechanic_immune_mask`=344276858 WHERE `entry`=34045; diff --git a/sql/updates/world/2012_07_22_10_world_creature_onkill_rep.sql b/sql/updates/world/2012_07_22_10_world_creature_onkill_rep.sql new file mode 100644 index 00000000000..22d81bca548 --- /dev/null +++ b/sql/updates/world/2012_07_22_10_world_creature_onkill_rep.sql @@ -0,0 +1,2 @@ +-- Critter Fire Beetle should not give reputation with Honor Hold when killed +DELETE FROM `creature_onkill_reputation` WHERE `creature_id` = 9699; diff --git a/sql/updates/world/2012_07_22_11_world_conditions.sql b/sql/updates/world/2012_07_22_11_world_conditions.sql new file mode 100644 index 00000000000..9ecb28307ba --- /dev/null +++ b/sql/updates/world/2012_07_22_11_world_conditions.sql @@ -0,0 +1,4 @@ +-- Exarch Menelaous - Missing condition for gossip 7370 +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup`=7370 AND `SourceEntry`=0; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES +(15,7370,0,0,0,9,9456,0,0,0,0,'','Exarch Menelaous - Show gossip option if player has quest 9456'); diff --git a/sql/updates/world/2012_07_22_12_world_creature_template.sql b/sql/updates/world/2012_07_22_12_world_creature_template.sql new file mode 100644 index 00000000000..51e2b36d15d --- /dev/null +++ b/sql/updates/world/2012_07_22_12_world_creature_template.sql @@ -0,0 +1,2 @@ +-- Fix Night Elf Corpse (16804) so it can't be attacked +UPDATE `creature_template` SET `unit_flags`=768, `dynamicflags`=40 WHERE `entry` = 16804; diff --git a/sql/updates/world/2012_07_22_13_world_conditions.sql b/sql/updates/world/2012_07_22_13_world_conditions.sql new file mode 100644 index 00000000000..896257d3f92 --- /dev/null +++ b/sql/updates/world/2012_07_22_13_world_conditions.sql @@ -0,0 +1,3 @@ +DELETE FROM conditions WHERE SourceTypeOrReferenceId=22 AND SourceEntry=160445; +INSERT INTO conditions (SourceTypeOrReferenceId, SourceGroup, SourceEntry, SourceId, ElseGroup, ConditionTypeOrReference, ConditionTarget, ConditionValue1, ConditionValue2, ConditionValue3, NegativeCondition, ErrorTextId, ScriptName, Comment) VALUES +(22, 1, 160445, 1, 0, 28, 0, 3821, 0, 0, 0, 0, '', 'Execute SmartAI for gameobject 160445 only if player has complete quest 3821'); diff --git a/sql/updates/world/2012_07_22_14_world_gameobject.sql b/sql/updates/world/2012_07_22_14_world_gameobject.sql new file mode 100644 index 00000000000..bf77d1a625f --- /dev/null +++ b/sql/updates/world/2012_07_22_14_world_gameobject.sql @@ -0,0 +1,21 @@ +-- GO missing spawn +-- Zone: Tanaris, Area: Land's End Beach or Finisterrae Beach +SET @GO_ENTRY := 142189; -- GO Inconspicuous Landmark entry +SET @GO_GUID := 329; -- Need one guid +SET @POOL := 355; -- Need one entry + +DELETE FROM `gameobject` WHERE `id`=@GO_ENTRY; +INSERT INTO `gameobject` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`position_x`,`position_y`,`position_z`,`orientation`,`rotation0`,`rotation1`,`rotation2`,`rotation3`,`spawntimesecs`,`animprogress`,`state`) VALUES +(17499,@GO_ENTRY,1,1,1,-10249.2,-3981.8,1.66783,-0.750491,0,0,0.366501,-0.930418,900,100,1), -- Already in TDB +(17498,@GO_ENTRY,1,1,1,-10119.7,-4052.46,5.33005,-0.366519,0,0,0.182236,-0.983255,900,100,1), -- Already in TDB +(@GO_GUID,@GO_ENTRY,1,1,1,-10154.2,-3948.635,7.744733,2.652894,0,0,0.970295,0.241925,900,100,1); + +DELETE FROM `pool_template` WHERE `entry`=@POOL; +INSERT INTO `pool_template` (`entry`,`max_limit`,`description`) VALUES +(@POOL,1 , 'GO Inconspicuous Landmark (142189)'); + +DELETE FROM `pool_gameobject` WHERE `guid` IN (17498,17499,@GO_GUID); +INSERT INTO `pool_gameobject` (`guid`,`pool_entry`,`chance`,`description`) VALUES +(17498,@POOL,0, 'Inconspicuous Landmark'), +(17499,@POOL,0, 'Inconspicuous Landmark'), +(@GO_GUID,@POOL,0, 'Inconspicuous Landmark'); diff --git a/sql/updates/world/2012_07_22_15_world_sai.sql b/sql/updates/world/2012_07_22_15_world_sai.sql new file mode 100644 index 00000000000..218eb9a3399 --- /dev/null +++ b/sql/updates/world/2012_07_22_15_world_sai.sql @@ -0,0 +1,27 @@ +-- SAI for quest 12150 "Reclusive Runemaster" +SET @Dregmar := 27003; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@Dregmar; +UPDATE `creature_template` SET `AIName`= 'SmartAI' WHERE `entry`=@Dregmar; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@Dregmar AND `source_type`=0 AND `id` BETWEEN 0 AND 2; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@Dregmar*100 AND `source_type`=9 AND `id` BETWEEN 0 AND 8; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@Dregmar,0,0,0,4,0,100,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Dregmar Runebrand - on aggro - yell text 0'), +(@Dregmar,0,1,0,2,0,100,1,0,50,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Dregmar Runebrand - at 50% HP - yell text 1'), +(@Dregmar,0,2,0,2,0,100,0,0,20,0,0,80,@Dregmar*100,2,0,0,0,0,1,0,0,0,0,0,0,0, 'Dregmar Runebrand - at 20% HP - run script'), +(@Dregmar*100,9,0,0,0,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Dregmar Runebrand - set phase 1'), +(@Dregmar*100,9,1,0,0,0,100,0,0,0,0,0,24,1,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Dregmar Runebrand - evade'), +(@Dregmar*100,9,2,0,0,0,100,0,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Dregmar Runebrand - Stop combat'), +(@Dregmar*100,9,3,0,0,0,100,0,0,0,0,0,18,33346,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Dregmar Runebrand - unitflags OutOfCombat'), +(@Dregmar*100,9,4,0,0,0,100,0,0,0,0,0,75,48325,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Dregmar Runebrand - apply aura RUNE SHIELD'), +(@Dregmar*100,9,5,0,0,0,100,0,0,0,0,0,1,2,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Dregmar Runebrand - yell text 2'), +(@Dregmar*100,9,6,0,0,0,100,0,0,14000,0,0,11,48028,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Dregmar Runebrand - Complete quest on player range'), +(@Dregmar*100,9,7,0,0,0,100,0,0,14000,0,0,19,514,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Dregmar Runebrand - unitflags reseted'), +(@Dregmar*100,9,8,0,0,0,100,0,0,0,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Dregmar Runebrand - force despawn'); + +-- creature_text +DELETE FROM `creature_ai_texts` WHERE `entry` BETWEEN -894 AND -892; +DELETE FROM `creature_text` WHERE `entry`=@Dregmar AND `groupid` BETWEEN 0 AND 2; +INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES +(@Dregmar,0,0, 'I know why you''ve come - one of those foolish Magnataur on the plains meddled and managed to get the dragons involved. Do you enjoy serving them like a dog?',14,0,100,0,0,0, 'Dregmar Runebrand - yell'), +(@Dregmar,1,0, 'You seek their leader... little thing, you wage war against the clans of Grom''thar the Thunderbringer himself. Don''t be so eager to rush to your death.',14,0,100,0,0,0, 'Dregmar Runebrand yell'), +(@Dregmar,2,0, 'Hah! So be it. Blow the horn of a magnataur leader at the ring of torches south of the Azure Dragonshrine. Make peace with your gods... Grom''thar will come.',14,0,100,0,0,0, 'Dregmar Runebrand yell'); diff --git a/src/server/game/AI/SmartScripts/SmartScript.cpp b/src/server/game/AI/SmartScripts/SmartScript.cpp index 103cde80f43..82d0945874c 100644 --- a/src/server/game/AI/SmartScripts/SmartScript.cpp +++ b/src/server/game/AI/SmartScripts/SmartScript.cpp @@ -1782,7 +1782,7 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u break; for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr) if (IsUnit(*itr)) - (*itr)->ToUnit()->SetByteFlag(UNIT_FIELD_BYTES_1, 0, e.action.setunitByte.byte1); + (*itr)->ToUnit()->SetByteFlag(UNIT_FIELD_BYTES_1, e.action.setunitByte.type, e.action.setunitByte.byte1); delete targets; break; @@ -1795,7 +1795,7 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr) if (IsUnit(*itr)) - (*itr)->ToUnit()->RemoveByteFlag(UNIT_FIELD_BYTES_1, 0, e.action.delunitByte.byte1); + (*itr)->ToUnit()->RemoveByteFlag(UNIT_FIELD_BYTES_1, e.action.delunitByte.type, e.action.delunitByte.byte1); delete targets; break; diff --git a/src/server/game/AI/SmartScripts/SmartScriptMgr.h b/src/server/game/AI/SmartScripts/SmartScriptMgr.h index cdb662edbaf..bc390441e04 100644 --- a/src/server/game/AI/SmartScripts/SmartScriptMgr.h +++ b/src/server/game/AI/SmartScripts/SmartScriptMgr.h @@ -827,11 +827,13 @@ struct SmartAction struct { uint32 byte1; + uint32 type; } setunitByte; struct { uint32 byte1; + uint32 type; } delunitByte; struct diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp index fc1b56c4b8c..7a4c42027dc 100755 --- a/src/server/game/Entities/Object/Object.cpp +++ b/src/server/game/Entities/Object/Object.cpp @@ -41,12 +41,13 @@ #include "GridNotifiers.h" #include "GridNotifiersImpl.h" #include "SpellAuraEffects.h" - +#include "UpdateFieldFlags.h" #include "TemporarySummon.h" #include "Totem.h" #include "OutdoorPvPMgr.h" #include "MovementPacketBuilder.h" #include "DynamicTree.h" +#include "Group.h" uint32 GuidHigh2TypeId(uint32 guid_hi) { @@ -74,6 +75,7 @@ Object::Object() : m_PackGUID(sizeof(uint64)+1) m_uint32Values = NULL; _changedFields = NULL; m_valuesCount = 0; + _fieldNotifyFlags = UF_FLAG_DYNAMIC; m_inWorld = false; m_objectUpdated = false; @@ -463,17 +465,13 @@ void Object::_BuildValuesUpdate(uint8 updatetype, ByteBuffer * data, UpdateMask* if (((GameObject*)this)->ActivateToQuest(target) || target->isGameMaster()) IsActivateToQuest = true; - updateMask->SetBit(GAMEOBJECT_DYNAMIC); - if (((GameObject*)this)->GetGoArtKit()) updateMask->SetBit(GAMEOBJECT_BYTES_1); } else if (isType(TYPEMASK_UNIT)) { if (((Unit*)this)->HasFlag(UNIT_FIELD_AURASTATE, PER_CASTER_AURA_STATE_MASK)) - { updateMask->SetBit(UNIT_FIELD_AURASTATE); - } } } else // case UPDATETYPE_VALUES @@ -481,10 +479,8 @@ void Object::_BuildValuesUpdate(uint8 updatetype, ByteBuffer * data, UpdateMask* if (isType(TYPEMASK_GAMEOBJECT) && !((GameObject*)this)->IsTransport()) { if (((GameObject*)this)->ActivateToQuest(target) || target->isGameMaster()) - { IsActivateToQuest = true; - } - updateMask->SetBit(GAMEOBJECT_DYNAMIC); + updateMask->SetBit(GAMEOBJECT_BYTES_1); if (ToGameObject()->GetGoType() == GAMEOBJECT_TYPE_CHEST && ToGameObject()->GetGOInfo()->chest.groupLootRules && @@ -494,9 +490,7 @@ void Object::_BuildValuesUpdate(uint8 updatetype, ByteBuffer * data, UpdateMask* else if (isType(TYPEMASK_UNIT)) { if (((Unit*)this)->HasFlag(UNIT_FIELD_AURASTATE, PER_CASTER_AURA_STATE_MASK)) - { updateMask->SetBit(UNIT_FIELD_AURASTATE); - } } } @@ -788,26 +782,96 @@ void Object::_LoadIntoDataField(char const* data, uint32 startOffset, uint32 cou } } -void Object::_SetUpdateBits(UpdateMask* updateMask, Player* /*target*/) const +void Object::GetUpdateFieldData(Player const* target, uint32*& flags, bool& isOwner, bool& isItemOwner, bool& hasSpecialInfo, bool& isPartyMember) const +{ + // This function assumes updatefield index is always valid + switch (GetTypeId()) + { + case TYPEID_ITEM: + case TYPEID_CONTAINER: + flags = ItemUpdateFieldFlags; + isOwner = isItemOwner = ((Item*)this)->GetOwnerGUID() == target->GetGUID(); + break; + case TYPEID_UNIT: + case TYPEID_PLAYER: + { + Player* plr = ToUnit()->GetCharmerOrOwnerPlayerOrPlayerItself(); + flags = UnitUpdateFieldFlags; + isOwner = ToUnit()->GetOwnerGUID() == target->GetGUID(); + hasSpecialInfo = ToUnit()->HasAuraTypeWithCaster(SPELL_AURA_EMPATHY, target->GetGUID()); + isPartyMember = plr && plr->IsInSameGroupWith(target); + break; + } + case TYPEID_GAMEOBJECT: + flags = GameObjectUpdateFieldFlags; + isOwner = ToGameObject()->GetOwnerGUID() == target->GetGUID(); + break; + case TYPEID_DYNAMICOBJECT: + flags = DynamicObjectUpdateFieldFlags; + isOwner = ((DynamicObject*)this)->GetCasterGUID() == target->GetGUID(); + break; + case TYPEID_CORPSE: + flags = CorpseUpdateFieldFlags; + isOwner = ToCorpse()->GetOwnerGUID() == target->GetGUID(); + break; + } +} + +bool Object::IsUpdateFieldVisible(uint32 flags, bool isSelf, bool isOwner, bool isItemOwner, bool isPartyMember) const +{ + if (flags == UF_FLAG_NONE) + return false; + + if (flags & UF_FLAG_PUBLIC) + return true; + + if (flags & UF_FLAG_PRIVATE && isSelf) + return true; + + if (flags & UF_FLAG_OWNER && isOwner) + return true; + + if (flags & UF_FLAG_ITEM_OWNER && isItemOwner) + return true; + + if (flags & UF_FLAG_PARTY_MEMBER && isPartyMember) + return true; + + return false; +} + +void Object::_SetUpdateBits(UpdateMask* updateMask, Player* target) const { bool* indexes = _changedFields; + uint32* flags = NULL; + bool isSelf = target == this; + bool isOwner = false; + bool isItemOwner = false; + bool hasSpecialInfo = false; + bool isPartyMember = false; + + GetUpdateFieldData(target, flags, isOwner, isItemOwner, hasSpecialInfo, isPartyMember); for (uint16 index = 0; index < m_valuesCount; ++index, ++indexes) - { - if (*indexes) + if (_fieldNotifyFlags & flags[index] || (flags[index] & UF_FLAG_SPECIAL_INFO && hasSpecialInfo) || (*indexes && IsUpdateFieldVisible(flags[index], isSelf, isOwner, isItemOwner, isPartyMember))) updateMask->SetBit(index); - } } -void Object::_SetCreateBits(UpdateMask* updateMask, Player* /*target*/) const +void Object::_SetCreateBits(UpdateMask* updateMask, Player* target) const { uint32* value = m_uint32Values; + uint32* flags = NULL; + bool isSelf = target == this; + bool isOwner = false; + bool isItemOwner = false; + bool hasSpecialInfo = false; + bool isPartyMember = false; + + GetUpdateFieldData(target, flags, isOwner, isItemOwner, hasSpecialInfo, isPartyMember); for (uint16 index = 0; index < m_valuesCount; ++index, ++value) - { - if (*value) + if (_fieldNotifyFlags & flags[index] || (flags[index] & UF_FLAG_SPECIAL_INFO && hasSpecialInfo) || (*value && IsUpdateFieldVisible(flags[index], isSelf, isOwner, isItemOwner, isPartyMember))) updateMask->SetBit(index); - } } void Object::SetInt32Value(uint16 index, int32 value) diff --git a/src/server/game/Entities/Object/Object.h b/src/server/game/Entities/Object/Object.h index 7a91289a95d..ab9ea2daea9 100755 --- a/src/server/game/Entities/Object/Object.h +++ b/src/server/game/Entities/Object/Object.h @@ -300,6 +300,9 @@ class Object virtual void BuildUpdate(UpdateDataMapType&) {} void BuildFieldsUpdate(Player*, UpdateDataMapType &) const; + void SetFieldNotifyFlag(uint16 flag) { _fieldNotifyFlags |= flag; } + void RemoveFieldNotifyFlag(uint16 flag) { _fieldNotifyFlags &= ~flag; } + // FG: some hacky helpers void ForceValuesUpdateAtIndex(uint32); @@ -320,13 +323,16 @@ class Object Object(); void _InitValues(); - void _Create (uint32 guidlow, uint32 entry, HighGuid guidhigh); + void _Create(uint32 guidlow, uint32 entry, HighGuid guidhigh); std::string _ConcatFields(uint16 startIndex, uint16 size) const; void _LoadIntoDataField(const char* data, uint32 startOffset, uint32 count); - virtual void _SetUpdateBits(UpdateMask* updateMask, Player* target) const; + void GetUpdateFieldData(Player const* target, uint32*& flags, bool& isOwner, bool& isItemOwner, bool& hasSpecialInfo, bool& isPartyMember) const; + + bool IsUpdateFieldVisible(uint32 flags, bool isSelf, bool isOwner, bool isItemOwner, bool isPartyMember) const; - virtual void _SetCreateBits(UpdateMask* updateMask, Player* target) const; + void _SetUpdateBits(UpdateMask* updateMask, Player* target) const; + void _SetCreateBits(UpdateMask* updateMask, Player* target) const; void _BuildMovementUpdate(ByteBuffer * data, uint16 flags) const; void _BuildValuesUpdate(uint8 updatetype, ByteBuffer *data, UpdateMask* updateMask, Player* target) const; @@ -346,6 +352,8 @@ class Object uint16 m_valuesCount; + uint16 _fieldNotifyFlags; + bool m_objectUpdated; private: diff --git a/src/server/game/Entities/Object/Updates/UpdateFieldFlags.cpp b/src/server/game/Entities/Object/Updates/UpdateFieldFlags.cpp new file mode 100644 index 00000000000..95bdaef221b --- /dev/null +++ b/src/server/game/Entities/Object/Updates/UpdateFieldFlags.cpp @@ -0,0 +1,1568 @@ +/* + * Copyright (C) 2008-2012 TrinityCore <http://www.trinitycore.org/> + * + * 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 2 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 <http://www.gnu.org/licenses/>. + */ + +#include "UpdateFieldFlags.h" + +uint32 ItemUpdateFieldFlags[CONTAINER_END] = +{ + UF_FLAG_PUBLIC, // OBJECT_FIELD_GUID + UF_FLAG_PUBLIC, // OBJECT_FIELD_GUID+1 + UF_FLAG_PUBLIC, // OBJECT_FIELD_TYPE + UF_FLAG_PUBLIC, // OBJECT_FIELD_ENTRY + UF_FLAG_PUBLIC, // OBJECT_FIELD_SCALE_X + UF_FLAG_NONE, // OBJECT_FIELD_PADDING + UF_FLAG_PUBLIC, // ITEM_FIELD_OWNER + UF_FLAG_PUBLIC, // ITEM_FIELD_OWNER+1 + UF_FLAG_PUBLIC, // ITEM_FIELD_CONTAINED + UF_FLAG_PUBLIC, // ITEM_FIELD_CONTAINED+1 + UF_FLAG_PUBLIC, // ITEM_FIELD_CREATOR + UF_FLAG_PUBLIC, // ITEM_FIELD_CREATOR+1 + UF_FLAG_PUBLIC, // ITEM_FIELD_GIFTCREATOR + UF_FLAG_PUBLIC, // ITEM_FIELD_GIFTCREATOR+1 + UF_FLAG_OWNER | UF_FLAG_ITEM_OWNER, // ITEM_FIELD_STACK_COUNT + UF_FLAG_OWNER | UF_FLAG_ITEM_OWNER, // ITEM_FIELD_DURATION + UF_FLAG_OWNER | UF_FLAG_ITEM_OWNER, // ITEM_FIELD_SPELL_CHARGES + UF_FLAG_OWNER | UF_FLAG_ITEM_OWNER, // ITEM_FIELD_SPELL_CHARGES+1 + UF_FLAG_OWNER | UF_FLAG_ITEM_OWNER, // ITEM_FIELD_SPELL_CHARGES+2 + UF_FLAG_OWNER | UF_FLAG_ITEM_OWNER, // ITEM_FIELD_SPELL_CHARGES+3 + UF_FLAG_OWNER | UF_FLAG_ITEM_OWNER, // ITEM_FIELD_SPELL_CHARGES+4 + UF_FLAG_PUBLIC, // ITEM_FIELD_FLAGS + UF_FLAG_PUBLIC, // ITEM_FIELD_ENCHANTMENT_1_1 + UF_FLAG_PUBLIC, // ITEM_FIELD_ENCHANTMENT_1_1+1 + UF_FLAG_PUBLIC, // ITEM_FIELD_ENCHANTMENT_1_3 + UF_FLAG_PUBLIC, // ITEM_FIELD_ENCHANTMENT_2_1 + UF_FLAG_PUBLIC, // ITEM_FIELD_ENCHANTMENT_2_1+1 + UF_FLAG_PUBLIC, // ITEM_FIELD_ENCHANTMENT_2_3 + UF_FLAG_PUBLIC, // ITEM_FIELD_ENCHANTMENT_3_1 + UF_FLAG_PUBLIC, // ITEM_FIELD_ENCHANTMENT_3_1+1 + UF_FLAG_PUBLIC, // ITEM_FIELD_ENCHANTMENT_3_3 + UF_FLAG_PUBLIC, // ITEM_FIELD_ENCHANTMENT_4_1 + UF_FLAG_PUBLIC, // ITEM_FIELD_ENCHANTMENT_4_1+1 + UF_FLAG_PUBLIC, // ITEM_FIELD_ENCHANTMENT_4_3 + UF_FLAG_PUBLIC, // ITEM_FIELD_ENCHANTMENT_5_1 + UF_FLAG_PUBLIC, // ITEM_FIELD_ENCHANTMENT_5_1+1 + UF_FLAG_PUBLIC, // ITEM_FIELD_ENCHANTMENT_5_3 + UF_FLAG_PUBLIC, // ITEM_FIELD_ENCHANTMENT_6_1 + UF_FLAG_PUBLIC, // ITEM_FIELD_ENCHANTMENT_6_1+1 + UF_FLAG_PUBLIC, // ITEM_FIELD_ENCHANTMENT_6_3 + UF_FLAG_PUBLIC, // ITEM_FIELD_ENCHANTMENT_7_1 + UF_FLAG_PUBLIC, // ITEM_FIELD_ENCHANTMENT_7_1+1 + UF_FLAG_PUBLIC, // ITEM_FIELD_ENCHANTMENT_7_3 + UF_FLAG_PUBLIC, // ITEM_FIELD_ENCHANTMENT_8_1 + UF_FLAG_PUBLIC, // ITEM_FIELD_ENCHANTMENT_8_1+1 + UF_FLAG_PUBLIC, // ITEM_FIELD_ENCHANTMENT_8_3 + UF_FLAG_PUBLIC, // ITEM_FIELD_ENCHANTMENT_9_1 + UF_FLAG_PUBLIC, // ITEM_FIELD_ENCHANTMENT_9_1+1 + UF_FLAG_PUBLIC, // ITEM_FIELD_ENCHANTMENT_9_3 + UF_FLAG_PUBLIC, // ITEM_FIELD_ENCHANTMENT_10_1 + UF_FLAG_PUBLIC, // ITEM_FIELD_ENCHANTMENT_10_1+1 + UF_FLAG_PUBLIC, // ITEM_FIELD_ENCHANTMENT_10_3 + UF_FLAG_PUBLIC, // ITEM_FIELD_ENCHANTMENT_11_1 + UF_FLAG_PUBLIC, // ITEM_FIELD_ENCHANTMENT_11_1+1 + UF_FLAG_PUBLIC, // ITEM_FIELD_ENCHANTMENT_11_3 + UF_FLAG_PUBLIC, // ITEM_FIELD_ENCHANTMENT_12_1 + UF_FLAG_PUBLIC, // ITEM_FIELD_ENCHANTMENT_12_1+1 + UF_FLAG_PUBLIC, // ITEM_FIELD_ENCHANTMENT_12_3 + UF_FLAG_PUBLIC, // ITEM_FIELD_PROPERTY_SEED + UF_FLAG_PUBLIC, // ITEM_FIELD_RANDOM_PROPERTIES_ID + UF_FLAG_OWNER | UF_FLAG_ITEM_OWNER, // ITEM_FIELD_DURABILITY + UF_FLAG_OWNER | UF_FLAG_ITEM_OWNER, // ITEM_FIELD_MAXDURABILITY + UF_FLAG_PUBLIC, // ITEM_FIELD_CREATE_PLAYED_TIME + UF_FLAG_NONE, // ITEM_FIELD_PAD + UF_FLAG_PUBLIC, // CONTAINER_FIELD_NUM_SLOTS + UF_FLAG_NONE, // CONTAINER_ALIGN_PAD + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+1 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+2 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+3 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+4 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+5 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+6 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+7 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+8 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+9 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+10 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+11 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+12 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+13 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+14 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+15 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+16 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+17 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+18 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+19 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+20 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+21 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+22 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+23 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+24 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+25 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+26 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+27 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+28 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+29 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+30 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+31 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+32 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+33 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+34 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+35 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+36 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+37 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+38 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+39 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+40 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+41 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+42 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+43 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+44 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+45 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+46 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+47 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+48 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+49 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+50 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+51 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+52 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+53 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+54 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+55 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+56 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+57 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+58 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+59 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+60 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+61 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+62 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+63 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+64 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+65 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+66 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+67 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+68 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+69 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+70 + UF_FLAG_PUBLIC, // CONTAINER_FIELD_SLOT_1+71 +}; + +uint32 UnitUpdateFieldFlags[PLAYER_END] = +{ + UF_FLAG_PUBLIC, // OBJECT_FIELD_GUID + UF_FLAG_PUBLIC, // OBJECT_FIELD_GUID+1 + UF_FLAG_PUBLIC, // OBJECT_FIELD_TYPE + UF_FLAG_PUBLIC, // OBJECT_FIELD_ENTRY + UF_FLAG_PUBLIC, // OBJECT_FIELD_SCALE_X + UF_FLAG_NONE, // OBJECT_FIELD_PADDING + UF_FLAG_PUBLIC, // UNIT_FIELD_CHARM + UF_FLAG_PUBLIC, // UNIT_FIELD_CHARM+1 + UF_FLAG_PUBLIC, // UNIT_FIELD_SUMMON + UF_FLAG_PUBLIC, // UNIT_FIELD_SUMMON+1 + UF_FLAG_PRIVATE, // UNIT_FIELD_CRITTER + UF_FLAG_PRIVATE, // UNIT_FIELD_CRITTER+1 + UF_FLAG_PUBLIC, // UNIT_FIELD_CHARMEDBY + UF_FLAG_PUBLIC, // UNIT_FIELD_CHARMEDBY+1 + UF_FLAG_PUBLIC, // UNIT_FIELD_SUMMONEDBY + UF_FLAG_PUBLIC, // UNIT_FIELD_SUMMONEDBY+1 + UF_FLAG_PUBLIC, // UNIT_FIELD_CREATEDBY + UF_FLAG_PUBLIC, // UNIT_FIELD_CREATEDBY+1 + UF_FLAG_PUBLIC, // UNIT_FIELD_TARGET + UF_FLAG_PUBLIC, // UNIT_FIELD_TARGET+1 + UF_FLAG_PUBLIC, // UNIT_FIELD_CHANNEL_OBJECT + UF_FLAG_PUBLIC, // UNIT_FIELD_CHANNEL_OBJECT+1 + UF_FLAG_PUBLIC, // UNIT_CHANNEL_SPELL + UF_FLAG_PUBLIC, // UNIT_FIELD_BYTES_0 + UF_FLAG_PUBLIC, // UNIT_FIELD_HEALTH + UF_FLAG_PUBLIC, // UNIT_FIELD_POWER1 + UF_FLAG_PUBLIC, // UNIT_FIELD_POWER2 + UF_FLAG_PUBLIC, // UNIT_FIELD_POWER3 + UF_FLAG_PUBLIC, // UNIT_FIELD_POWER4 + UF_FLAG_PUBLIC, // UNIT_FIELD_POWER5 + UF_FLAG_PUBLIC, // UNIT_FIELD_POWER6 + UF_FLAG_PUBLIC, // UNIT_FIELD_POWER7 + UF_FLAG_PUBLIC, // UNIT_FIELD_MAXHEALTH + UF_FLAG_PUBLIC, // UNIT_FIELD_MAXPOWER1 + UF_FLAG_PUBLIC, // UNIT_FIELD_MAXPOWER2 + UF_FLAG_PUBLIC, // UNIT_FIELD_MAXPOWER3 + UF_FLAG_PUBLIC, // UNIT_FIELD_MAXPOWER4 + UF_FLAG_PUBLIC, // UNIT_FIELD_MAXPOWER5 + UF_FLAG_PUBLIC, // UNIT_FIELD_MAXPOWER6 + UF_FLAG_PUBLIC, // UNIT_FIELD_MAXPOWER7 + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_POWER_REGEN_FLAT_MODIFIER + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_POWER_REGEN_FLAT_MODIFIER+1 + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_POWER_REGEN_FLAT_MODIFIER+2 + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_POWER_REGEN_FLAT_MODIFIER+3 + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_POWER_REGEN_FLAT_MODIFIER+4 + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_POWER_REGEN_FLAT_MODIFIER+5 + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_POWER_REGEN_FLAT_MODIFIER+6 + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_POWER_REGEN_INTERRUPTED_FLAT_MODIFIER + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_POWER_REGEN_INTERRUPTED_FLAT_MODIFIER+1 + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_POWER_REGEN_INTERRUPTED_FLAT_MODIFIER+2 + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_POWER_REGEN_INTERRUPTED_FLAT_MODIFIER+3 + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_POWER_REGEN_INTERRUPTED_FLAT_MODIFIER+4 + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_POWER_REGEN_INTERRUPTED_FLAT_MODIFIER+5 + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_POWER_REGEN_INTERRUPTED_FLAT_MODIFIER+6 + UF_FLAG_PUBLIC, // UNIT_FIELD_LEVEL + UF_FLAG_PUBLIC, // UNIT_FIELD_FACTIONTEMPLATE + UF_FLAG_PUBLIC, // UNIT_VIRTUAL_ITEM_SLOT_ID + UF_FLAG_PUBLIC, // UNIT_VIRTUAL_ITEM_SLOT_ID+1 + UF_FLAG_PUBLIC, // UNIT_VIRTUAL_ITEM_SLOT_ID+2 + UF_FLAG_PUBLIC, // UNIT_FIELD_FLAGS + UF_FLAG_PUBLIC, // UNIT_FIELD_FLAGS_2 + UF_FLAG_PUBLIC, // UNIT_FIELD_AURASTATE + UF_FLAG_PUBLIC, // UNIT_FIELD_BASEATTACKTIME + UF_FLAG_PUBLIC, // UNIT_FIELD_BASEATTACKTIME+1 + UF_FLAG_PRIVATE, // UNIT_FIELD_RANGEDATTACKTIME + UF_FLAG_PUBLIC, // UNIT_FIELD_BOUNDINGRADIUS + UF_FLAG_PUBLIC, // UNIT_FIELD_COMBATREACH + UF_FLAG_PUBLIC, // UNIT_FIELD_DISPLAYID + UF_FLAG_PUBLIC, // UNIT_FIELD_NATIVEDISPLAYID + UF_FLAG_PUBLIC, // UNIT_FIELD_MOUNTDISPLAYID + UF_FLAG_PRIVATE | UF_FLAG_OWNER | UF_FLAG_SPECIAL_INFO, // UNIT_FIELD_MINDAMAGE + UF_FLAG_PRIVATE | UF_FLAG_OWNER | UF_FLAG_SPECIAL_INFO, // UNIT_FIELD_MAXDAMAGE + UF_FLAG_PRIVATE | UF_FLAG_OWNER | UF_FLAG_SPECIAL_INFO, // UNIT_FIELD_MINOFFHANDDAMAGE + UF_FLAG_PRIVATE | UF_FLAG_OWNER | UF_FLAG_SPECIAL_INFO, // UNIT_FIELD_MAXOFFHANDDAMAGE + UF_FLAG_PUBLIC, // UNIT_FIELD_BYTES_1 + UF_FLAG_PUBLIC, // UNIT_FIELD_PETNUMBER + UF_FLAG_PUBLIC, // UNIT_FIELD_PET_NAME_TIMESTAMP + UF_FLAG_OWNER, // UNIT_FIELD_PETEXPERIENCE + UF_FLAG_OWNER, // UNIT_FIELD_PETNEXTLEVELEXP + UF_FLAG_DYNAMIC, // UNIT_DYNAMIC_FLAGS + UF_FLAG_PUBLIC, // UNIT_MOD_CAST_SPEED + UF_FLAG_PUBLIC, // UNIT_CREATED_BY_SPELL + UF_FLAG_DYNAMIC, // UNIT_NPC_FLAGS + UF_FLAG_PUBLIC, // UNIT_NPC_EMOTESTATE + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_STAT0 + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_STAT1 + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_STAT2 + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_STAT3 + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_STAT4 + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_POSSTAT0 + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_POSSTAT1 + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_POSSTAT2 + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_POSSTAT3 + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_POSSTAT4 + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_NEGSTAT0 + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_NEGSTAT1 + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_NEGSTAT2 + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_NEGSTAT3 + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_NEGSTAT4 + UF_FLAG_PRIVATE | UF_FLAG_OWNER | UF_FLAG_SPECIAL_INFO, // UNIT_FIELD_RESISTANCES + UF_FLAG_PRIVATE | UF_FLAG_OWNER | UF_FLAG_SPECIAL_INFO, // UNIT_FIELD_RESISTANCES+1 + UF_FLAG_PRIVATE | UF_FLAG_OWNER | UF_FLAG_SPECIAL_INFO, // UNIT_FIELD_RESISTANCES+2 + UF_FLAG_PRIVATE | UF_FLAG_OWNER | UF_FLAG_SPECIAL_INFO, // UNIT_FIELD_RESISTANCES+3 + UF_FLAG_PRIVATE | UF_FLAG_OWNER | UF_FLAG_SPECIAL_INFO, // UNIT_FIELD_RESISTANCES+4 + UF_FLAG_PRIVATE | UF_FLAG_OWNER | UF_FLAG_SPECIAL_INFO, // UNIT_FIELD_RESISTANCES+5 + UF_FLAG_PRIVATE | UF_FLAG_OWNER | UF_FLAG_SPECIAL_INFO, // UNIT_FIELD_RESISTANCES+6 + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_RESISTANCEBUFFMODSPOSITIVE + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_RESISTANCEBUFFMODSPOSITIVE+1 + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_RESISTANCEBUFFMODSPOSITIVE+2 + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_RESISTANCEBUFFMODSPOSITIVE+3 + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_RESISTANCEBUFFMODSPOSITIVE+4 + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_RESISTANCEBUFFMODSPOSITIVE+5 + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_RESISTANCEBUFFMODSPOSITIVE+6 + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_RESISTANCEBUFFMODSNEGATIVE + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_RESISTANCEBUFFMODSNEGATIVE+1 + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_RESISTANCEBUFFMODSNEGATIVE+2 + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_RESISTANCEBUFFMODSNEGATIVE+3 + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_RESISTANCEBUFFMODSNEGATIVE+4 + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_RESISTANCEBUFFMODSNEGATIVE+5 + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_RESISTANCEBUFFMODSNEGATIVE+6 + UF_FLAG_PUBLIC, // UNIT_FIELD_BASE_MANA + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_BASE_HEALTH + UF_FLAG_PUBLIC, // UNIT_FIELD_BYTES_2 + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_ATTACK_POWER + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_ATTACK_POWER_MODS + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_ATTACK_POWER_MULTIPLIER + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_RANGED_ATTACK_POWER + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_RANGED_ATTACK_POWER_MODS + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_RANGED_ATTACK_POWER_MULTIPLIER + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_MINRANGEDDAMAGE + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_MAXRANGEDDAMAGE + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_POWER_COST_MODIFIER + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_POWER_COST_MODIFIER+1 + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_POWER_COST_MODIFIER+2 + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_POWER_COST_MODIFIER+3 + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_POWER_COST_MODIFIER+4 + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_POWER_COST_MODIFIER+5 + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_POWER_COST_MODIFIER+6 + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_POWER_COST_MULTIPLIER + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_POWER_COST_MULTIPLIER+1 + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_POWER_COST_MULTIPLIER+2 + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_POWER_COST_MULTIPLIER+3 + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_POWER_COST_MULTIPLIER+4 + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_POWER_COST_MULTIPLIER+5 + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_POWER_COST_MULTIPLIER+6 + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_MAXHEALTHMODIFIER + UF_FLAG_PUBLIC, // UNIT_FIELD_HOVERHEIGHT + UF_FLAG_NONE, // UNIT_FIELD_PADDING + UF_FLAG_PUBLIC, // PLAYER_DUEL_ARBITER + UF_FLAG_PUBLIC, // PLAYER_DUEL_ARBITER+1 + UF_FLAG_PUBLIC, // PLAYER_FLAGS + UF_FLAG_PUBLIC, // PLAYER_GUILDID + UF_FLAG_PUBLIC, // PLAYER_GUILDRANK + UF_FLAG_PUBLIC, // PLAYER_BYTES + UF_FLAG_PUBLIC, // PLAYER_BYTES_2 + UF_FLAG_PUBLIC, // PLAYER_BYTES_3 + UF_FLAG_PUBLIC, // PLAYER_DUEL_TEAM + UF_FLAG_PUBLIC, // PLAYER_GUILD_TIMESTAMP + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG_1_1 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_1_2 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_1_3 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_1_3+1 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_1_4 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG_2_1 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_2_2 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_2_3 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_2_3+1 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_2_5 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG_3_1 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_3_2 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_3_3 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_3_3+1 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_3_5 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG_4_1 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_4_2 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_4_3 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_4_3+1 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_4_5 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG_5_1 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_5_2 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_5_3 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_5_3+1 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_5_5 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG_6_1 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_6_2 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_6_3 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_6_3+1 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_6_5 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG_7_1 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_7_2 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_7_3 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_7_3+1 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_7_5 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG_8_1 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_8_2 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_8_3 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_8_3+1 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_8_5 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG_9_1 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_9_2 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_9_3 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_9_3+1 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_9_5 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG_10_1 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_10_2 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_10_3 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_10_3+1 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_10_5 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG_11_1 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_11_2 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_11_3 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_11_3+1 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_11_5 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG_12_1 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_12_2 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_12_3 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_12_3+1 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_12_5 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG_13_1 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_13_2 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_13_3 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_13_3+1 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_13_5 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG_14_1 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_14_2 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_14_3 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_14_3+1 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_14_5 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG_15_1 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_15_2 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_15_3 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_15_3+1 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_15_5 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG_16_1 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_16_2 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_16_3 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_16_3+1 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_16_5 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG_17_1 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_17_2 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_17_3 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_17_3+1 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_17_5 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG_18_1 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_18_2 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_18_3 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_18_3+1 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_18_5 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG_19_1 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_19_2 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_19_3 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_19_3+1 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_19_5 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG_20_1 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_20_2 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_20_3 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_20_3+1 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_20_5 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG_21_1 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_21_2 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_21_3 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_21_3+1 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_21_5 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG_22_1 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_22_2 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_22_3 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_22_3+1 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_22_5 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG_23_1 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_23_2 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_23_3 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_23_3+1 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_23_5 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG_24_1 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_24_2 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_24_3 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_24_3+1 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_24_5 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG_25_1 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_25_2 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_25_3 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_25_3+1 + UF_FLAG_PRIVATE, // PLAYER_QUEST_LOG_25_5 + UF_FLAG_PUBLIC, // PLAYER_VISIBLE_ITEM_1_ENTRYID + UF_FLAG_PUBLIC, // PLAYER_VISIBLE_ITEM_1_ENCHANTMENT + UF_FLAG_PUBLIC, // PLAYER_VISIBLE_ITEM_2_ENTRYID + UF_FLAG_PUBLIC, // PLAYER_VISIBLE_ITEM_2_ENCHANTMENT + UF_FLAG_PUBLIC, // PLAYER_VISIBLE_ITEM_3_ENTRYID + UF_FLAG_PUBLIC, // PLAYER_VISIBLE_ITEM_3_ENCHANTMENT + UF_FLAG_PUBLIC, // PLAYER_VISIBLE_ITEM_4_ENTRYID + UF_FLAG_PUBLIC, // PLAYER_VISIBLE_ITEM_4_ENCHANTMENT + UF_FLAG_PUBLIC, // PLAYER_VISIBLE_ITEM_5_ENTRYID + UF_FLAG_PUBLIC, // PLAYER_VISIBLE_ITEM_5_ENCHANTMENT + UF_FLAG_PUBLIC, // PLAYER_VISIBLE_ITEM_6_ENTRYID + UF_FLAG_PUBLIC, // PLAYER_VISIBLE_ITEM_6_ENCHANTMENT + UF_FLAG_PUBLIC, // PLAYER_VISIBLE_ITEM_7_ENTRYID + UF_FLAG_PUBLIC, // PLAYER_VISIBLE_ITEM_7_ENCHANTMENT + UF_FLAG_PUBLIC, // PLAYER_VISIBLE_ITEM_8_ENTRYID + UF_FLAG_PUBLIC, // PLAYER_VISIBLE_ITEM_8_ENCHANTMENT + UF_FLAG_PUBLIC, // PLAYER_VISIBLE_ITEM_9_ENTRYID + UF_FLAG_PUBLIC, // PLAYER_VISIBLE_ITEM_9_ENCHANTMENT + UF_FLAG_PUBLIC, // PLAYER_VISIBLE_ITEM_10_ENTRYID + UF_FLAG_PUBLIC, // PLAYER_VISIBLE_ITEM_10_ENCHANTMENT + UF_FLAG_PUBLIC, // PLAYER_VISIBLE_ITEM_11_ENTRYID + UF_FLAG_PUBLIC, // PLAYER_VISIBLE_ITEM_11_ENCHANTMENT + UF_FLAG_PUBLIC, // PLAYER_VISIBLE_ITEM_12_ENTRYID + UF_FLAG_PUBLIC, // PLAYER_VISIBLE_ITEM_12_ENCHANTMENT + UF_FLAG_PUBLIC, // PLAYER_VISIBLE_ITEM_13_ENTRYID + UF_FLAG_PUBLIC, // PLAYER_VISIBLE_ITEM_13_ENCHANTMENT + UF_FLAG_PUBLIC, // PLAYER_VISIBLE_ITEM_14_ENTRYID + UF_FLAG_PUBLIC, // PLAYER_VISIBLE_ITEM_14_ENCHANTMENT + UF_FLAG_PUBLIC, // PLAYER_VISIBLE_ITEM_15_ENTRYID + UF_FLAG_PUBLIC, // PLAYER_VISIBLE_ITEM_15_ENCHANTMENT + UF_FLAG_PUBLIC, // PLAYER_VISIBLE_ITEM_16_ENTRYID + UF_FLAG_PUBLIC, // PLAYER_VISIBLE_ITEM_16_ENCHANTMENT + UF_FLAG_PUBLIC, // PLAYER_VISIBLE_ITEM_17_ENTRYID + UF_FLAG_PUBLIC, // PLAYER_VISIBLE_ITEM_17_ENCHANTMENT + UF_FLAG_PUBLIC, // PLAYER_VISIBLE_ITEM_18_ENTRYID + UF_FLAG_PUBLIC, // PLAYER_VISIBLE_ITEM_18_ENCHANTMENT + UF_FLAG_PUBLIC, // PLAYER_VISIBLE_ITEM_19_ENTRYID + UF_FLAG_PUBLIC, // PLAYER_VISIBLE_ITEM_19_ENCHANTMENT + UF_FLAG_PUBLIC, // PLAYER_CHOSEN_TITLE + UF_FLAG_PUBLIC, // PLAYER_FAKE_INEBRIATION + UF_FLAG_NONE, // PLAYER_FIELD_PAD_0 + UF_FLAG_PRIVATE, // PLAYER_FIELD_INV_SLOT_HEAD + UF_FLAG_PRIVATE, // PLAYER_FIELD_INV_SLOT_HEAD+1 + UF_FLAG_PRIVATE, // PLAYER_FIELD_INV_SLOT_HEAD+2 + UF_FLAG_PRIVATE, // PLAYER_FIELD_INV_SLOT_HEAD+3 + UF_FLAG_PRIVATE, // PLAYER_FIELD_INV_SLOT_HEAD+4 + UF_FLAG_PRIVATE, // PLAYER_FIELD_INV_SLOT_HEAD+5 + UF_FLAG_PRIVATE, // PLAYER_FIELD_INV_SLOT_HEAD+6 + UF_FLAG_PRIVATE, // PLAYER_FIELD_INV_SLOT_HEAD+7 + UF_FLAG_PRIVATE, // PLAYER_FIELD_INV_SLOT_HEAD+8 + UF_FLAG_PRIVATE, // PLAYER_FIELD_INV_SLOT_HEAD+9 + UF_FLAG_PRIVATE, // PLAYER_FIELD_INV_SLOT_HEAD+10 + UF_FLAG_PRIVATE, // PLAYER_FIELD_INV_SLOT_HEAD+11 + UF_FLAG_PRIVATE, // PLAYER_FIELD_INV_SLOT_HEAD+12 + UF_FLAG_PRIVATE, // PLAYER_FIELD_INV_SLOT_HEAD+13 + UF_FLAG_PRIVATE, // PLAYER_FIELD_INV_SLOT_HEAD+14 + UF_FLAG_PRIVATE, // PLAYER_FIELD_INV_SLOT_HEAD+15 + UF_FLAG_PRIVATE, // PLAYER_FIELD_INV_SLOT_HEAD+16 + UF_FLAG_PRIVATE, // PLAYER_FIELD_INV_SLOT_HEAD+17 + UF_FLAG_PRIVATE, // PLAYER_FIELD_INV_SLOT_HEAD+18 + UF_FLAG_PRIVATE, // PLAYER_FIELD_INV_SLOT_HEAD+19 + UF_FLAG_PRIVATE, // PLAYER_FIELD_INV_SLOT_HEAD+20 + UF_FLAG_PRIVATE, // PLAYER_FIELD_INV_SLOT_HEAD+21 + UF_FLAG_PRIVATE, // PLAYER_FIELD_INV_SLOT_HEAD+22 + UF_FLAG_PRIVATE, // PLAYER_FIELD_INV_SLOT_HEAD+23 + UF_FLAG_PRIVATE, // PLAYER_FIELD_INV_SLOT_HEAD+24 + UF_FLAG_PRIVATE, // PLAYER_FIELD_INV_SLOT_HEAD+25 + UF_FLAG_PRIVATE, // PLAYER_FIELD_INV_SLOT_HEAD+26 + UF_FLAG_PRIVATE, // PLAYER_FIELD_INV_SLOT_HEAD+27 + UF_FLAG_PRIVATE, // PLAYER_FIELD_INV_SLOT_HEAD+28 + UF_FLAG_PRIVATE, // PLAYER_FIELD_INV_SLOT_HEAD+29 + UF_FLAG_PRIVATE, // PLAYER_FIELD_INV_SLOT_HEAD+30 + UF_FLAG_PRIVATE, // PLAYER_FIELD_INV_SLOT_HEAD+31 + UF_FLAG_PRIVATE, // PLAYER_FIELD_INV_SLOT_HEAD+32 + UF_FLAG_PRIVATE, // PLAYER_FIELD_INV_SLOT_HEAD+33 + UF_FLAG_PRIVATE, // PLAYER_FIELD_INV_SLOT_HEAD+34 + UF_FLAG_PRIVATE, // PLAYER_FIELD_INV_SLOT_HEAD+35 + UF_FLAG_PRIVATE, // PLAYER_FIELD_INV_SLOT_HEAD+36 + UF_FLAG_PRIVATE, // PLAYER_FIELD_INV_SLOT_HEAD+37 + UF_FLAG_PRIVATE, // PLAYER_FIELD_INV_SLOT_HEAD+38 + UF_FLAG_PRIVATE, // PLAYER_FIELD_INV_SLOT_HEAD+39 + UF_FLAG_PRIVATE, // PLAYER_FIELD_INV_SLOT_HEAD+40 + UF_FLAG_PRIVATE, // PLAYER_FIELD_INV_SLOT_HEAD+41 + UF_FLAG_PRIVATE, // PLAYER_FIELD_INV_SLOT_HEAD+42 + UF_FLAG_PRIVATE, // PLAYER_FIELD_INV_SLOT_HEAD+43 + UF_FLAG_PRIVATE, // PLAYER_FIELD_INV_SLOT_HEAD+44 + UF_FLAG_PRIVATE, // PLAYER_FIELD_INV_SLOT_HEAD+45 + UF_FLAG_PRIVATE, // PLAYER_FIELD_PACK_SLOT_1 + UF_FLAG_PRIVATE, // PLAYER_FIELD_PACK_SLOT_1+1 + UF_FLAG_PRIVATE, // PLAYER_FIELD_PACK_SLOT_1+2 + UF_FLAG_PRIVATE, // PLAYER_FIELD_PACK_SLOT_1+3 + UF_FLAG_PRIVATE, // PLAYER_FIELD_PACK_SLOT_1+4 + UF_FLAG_PRIVATE, // PLAYER_FIELD_PACK_SLOT_1+5 + UF_FLAG_PRIVATE, // PLAYER_FIELD_PACK_SLOT_1+6 + UF_FLAG_PRIVATE, // PLAYER_FIELD_PACK_SLOT_1+7 + UF_FLAG_PRIVATE, // PLAYER_FIELD_PACK_SLOT_1+8 + UF_FLAG_PRIVATE, // PLAYER_FIELD_PACK_SLOT_1+9 + UF_FLAG_PRIVATE, // PLAYER_FIELD_PACK_SLOT_1+10 + UF_FLAG_PRIVATE, // PLAYER_FIELD_PACK_SLOT_1+11 + UF_FLAG_PRIVATE, // PLAYER_FIELD_PACK_SLOT_1+12 + UF_FLAG_PRIVATE, // PLAYER_FIELD_PACK_SLOT_1+13 + UF_FLAG_PRIVATE, // PLAYER_FIELD_PACK_SLOT_1+14 + UF_FLAG_PRIVATE, // PLAYER_FIELD_PACK_SLOT_1+15 + UF_FLAG_PRIVATE, // PLAYER_FIELD_PACK_SLOT_1+16 + UF_FLAG_PRIVATE, // PLAYER_FIELD_PACK_SLOT_1+17 + UF_FLAG_PRIVATE, // PLAYER_FIELD_PACK_SLOT_1+18 + UF_FLAG_PRIVATE, // PLAYER_FIELD_PACK_SLOT_1+19 + UF_FLAG_PRIVATE, // PLAYER_FIELD_PACK_SLOT_1+20 + UF_FLAG_PRIVATE, // PLAYER_FIELD_PACK_SLOT_1+21 + UF_FLAG_PRIVATE, // PLAYER_FIELD_PACK_SLOT_1+22 + UF_FLAG_PRIVATE, // PLAYER_FIELD_PACK_SLOT_1+23 + UF_FLAG_PRIVATE, // PLAYER_FIELD_PACK_SLOT_1+24 + UF_FLAG_PRIVATE, // PLAYER_FIELD_PACK_SLOT_1+25 + UF_FLAG_PRIVATE, // PLAYER_FIELD_PACK_SLOT_1+26 + UF_FLAG_PRIVATE, // PLAYER_FIELD_PACK_SLOT_1+27 + UF_FLAG_PRIVATE, // PLAYER_FIELD_PACK_SLOT_1+28 + UF_FLAG_PRIVATE, // PLAYER_FIELD_PACK_SLOT_1+29 + UF_FLAG_PRIVATE, // PLAYER_FIELD_PACK_SLOT_1+30 + UF_FLAG_PRIVATE, // PLAYER_FIELD_PACK_SLOT_1+31 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANK_SLOT_1 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANK_SLOT_1+1 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANK_SLOT_1+2 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANK_SLOT_1+3 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANK_SLOT_1+4 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANK_SLOT_1+5 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANK_SLOT_1+6 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANK_SLOT_1+7 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANK_SLOT_1+8 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANK_SLOT_1+9 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANK_SLOT_1+10 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANK_SLOT_1+11 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANK_SLOT_1+12 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANK_SLOT_1+13 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANK_SLOT_1+14 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANK_SLOT_1+15 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANK_SLOT_1+16 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANK_SLOT_1+17 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANK_SLOT_1+18 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANK_SLOT_1+19 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANK_SLOT_1+20 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANK_SLOT_1+21 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANK_SLOT_1+22 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANK_SLOT_1+23 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANK_SLOT_1+24 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANK_SLOT_1+25 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANK_SLOT_1+26 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANK_SLOT_1+27 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANK_SLOT_1+28 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANK_SLOT_1+29 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANK_SLOT_1+30 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANK_SLOT_1+31 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANK_SLOT_1+32 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANK_SLOT_1+33 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANK_SLOT_1+34 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANK_SLOT_1+35 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANK_SLOT_1+36 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANK_SLOT_1+37 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANK_SLOT_1+38 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANK_SLOT_1+39 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANK_SLOT_1+40 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANK_SLOT_1+41 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANK_SLOT_1+42 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANK_SLOT_1+43 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANK_SLOT_1+44 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANK_SLOT_1+45 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANK_SLOT_1+46 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANK_SLOT_1+47 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANK_SLOT_1+48 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANK_SLOT_1+49 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANK_SLOT_1+50 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANK_SLOT_1+51 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANK_SLOT_1+52 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANK_SLOT_1+53 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANK_SLOT_1+54 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANK_SLOT_1+55 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANKBAG_SLOT_1 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANKBAG_SLOT_1+1 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANKBAG_SLOT_1+2 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANKBAG_SLOT_1+3 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANKBAG_SLOT_1+4 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANKBAG_SLOT_1+5 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANKBAG_SLOT_1+6 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANKBAG_SLOT_1+7 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANKBAG_SLOT_1+8 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANKBAG_SLOT_1+9 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANKBAG_SLOT_1+10 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANKBAG_SLOT_1+11 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANKBAG_SLOT_1+12 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BANKBAG_SLOT_1+13 + UF_FLAG_PRIVATE, // PLAYER_FIELD_VENDORBUYBACK_SLOT_1 + UF_FLAG_PRIVATE, // PLAYER_FIELD_VENDORBUYBACK_SLOT_1+1 + UF_FLAG_PRIVATE, // PLAYER_FIELD_VENDORBUYBACK_SLOT_1+2 + UF_FLAG_PRIVATE, // PLAYER_FIELD_VENDORBUYBACK_SLOT_1+3 + UF_FLAG_PRIVATE, // PLAYER_FIELD_VENDORBUYBACK_SLOT_1+4 + UF_FLAG_PRIVATE, // PLAYER_FIELD_VENDORBUYBACK_SLOT_1+5 + UF_FLAG_PRIVATE, // PLAYER_FIELD_VENDORBUYBACK_SLOT_1+6 + UF_FLAG_PRIVATE, // PLAYER_FIELD_VENDORBUYBACK_SLOT_1+7 + UF_FLAG_PRIVATE, // PLAYER_FIELD_VENDORBUYBACK_SLOT_1+8 + UF_FLAG_PRIVATE, // PLAYER_FIELD_VENDORBUYBACK_SLOT_1+9 + UF_FLAG_PRIVATE, // PLAYER_FIELD_VENDORBUYBACK_SLOT_1+10 + UF_FLAG_PRIVATE, // PLAYER_FIELD_VENDORBUYBACK_SLOT_1+11 + UF_FLAG_PRIVATE, // PLAYER_FIELD_VENDORBUYBACK_SLOT_1+12 + UF_FLAG_PRIVATE, // PLAYER_FIELD_VENDORBUYBACK_SLOT_1+13 + UF_FLAG_PRIVATE, // PLAYER_FIELD_VENDORBUYBACK_SLOT_1+14 + UF_FLAG_PRIVATE, // PLAYER_FIELD_VENDORBUYBACK_SLOT_1+15 + UF_FLAG_PRIVATE, // PLAYER_FIELD_VENDORBUYBACK_SLOT_1+16 + UF_FLAG_PRIVATE, // PLAYER_FIELD_VENDORBUYBACK_SLOT_1+17 + UF_FLAG_PRIVATE, // PLAYER_FIELD_VENDORBUYBACK_SLOT_1+18 + UF_FLAG_PRIVATE, // PLAYER_FIELD_VENDORBUYBACK_SLOT_1+19 + UF_FLAG_PRIVATE, // PLAYER_FIELD_VENDORBUYBACK_SLOT_1+20 + UF_FLAG_PRIVATE, // PLAYER_FIELD_VENDORBUYBACK_SLOT_1+21 + UF_FLAG_PRIVATE, // PLAYER_FIELD_VENDORBUYBACK_SLOT_1+22 + UF_FLAG_PRIVATE, // PLAYER_FIELD_VENDORBUYBACK_SLOT_1+23 + UF_FLAG_PRIVATE, // PLAYER_FIELD_KEYRING_SLOT_1 + UF_FLAG_PRIVATE, // PLAYER_FIELD_KEYRING_SLOT_1+1 + UF_FLAG_PRIVATE, // PLAYER_FIELD_KEYRING_SLOT_1+2 + UF_FLAG_PRIVATE, // PLAYER_FIELD_KEYRING_SLOT_1+3 + UF_FLAG_PRIVATE, // PLAYER_FIELD_KEYRING_SLOT_1+4 + UF_FLAG_PRIVATE, // PLAYER_FIELD_KEYRING_SLOT_1+5 + UF_FLAG_PRIVATE, // PLAYER_FIELD_KEYRING_SLOT_1+6 + UF_FLAG_PRIVATE, // PLAYER_FIELD_KEYRING_SLOT_1+7 + UF_FLAG_PRIVATE, // PLAYER_FIELD_KEYRING_SLOT_1+8 + UF_FLAG_PRIVATE, // PLAYER_FIELD_KEYRING_SLOT_1+9 + UF_FLAG_PRIVATE, // PLAYER_FIELD_KEYRING_SLOT_1+10 + UF_FLAG_PRIVATE, // PLAYER_FIELD_KEYRING_SLOT_1+11 + UF_FLAG_PRIVATE, // PLAYER_FIELD_KEYRING_SLOT_1+12 + UF_FLAG_PRIVATE, // PLAYER_FIELD_KEYRING_SLOT_1+13 + UF_FLAG_PRIVATE, // PLAYER_FIELD_KEYRING_SLOT_1+14 + UF_FLAG_PRIVATE, // PLAYER_FIELD_KEYRING_SLOT_1+15 + UF_FLAG_PRIVATE, // PLAYER_FIELD_KEYRING_SLOT_1+16 + UF_FLAG_PRIVATE, // PLAYER_FIELD_KEYRING_SLOT_1+17 + UF_FLAG_PRIVATE, // PLAYER_FIELD_KEYRING_SLOT_1+18 + UF_FLAG_PRIVATE, // PLAYER_FIELD_KEYRING_SLOT_1+19 + UF_FLAG_PRIVATE, // PLAYER_FIELD_KEYRING_SLOT_1+20 + UF_FLAG_PRIVATE, // PLAYER_FIELD_KEYRING_SLOT_1+21 + UF_FLAG_PRIVATE, // PLAYER_FIELD_KEYRING_SLOT_1+22 + UF_FLAG_PRIVATE, // PLAYER_FIELD_KEYRING_SLOT_1+23 + UF_FLAG_PRIVATE, // PLAYER_FIELD_KEYRING_SLOT_1+24 + UF_FLAG_PRIVATE, // PLAYER_FIELD_KEYRING_SLOT_1+25 + UF_FLAG_PRIVATE, // PLAYER_FIELD_KEYRING_SLOT_1+26 + UF_FLAG_PRIVATE, // PLAYER_FIELD_KEYRING_SLOT_1+27 + UF_FLAG_PRIVATE, // PLAYER_FIELD_KEYRING_SLOT_1+28 + UF_FLAG_PRIVATE, // PLAYER_FIELD_KEYRING_SLOT_1+29 + UF_FLAG_PRIVATE, // PLAYER_FIELD_KEYRING_SLOT_1+30 + UF_FLAG_PRIVATE, // PLAYER_FIELD_KEYRING_SLOT_1+31 + UF_FLAG_PRIVATE, // PLAYER_FIELD_KEYRING_SLOT_1+32 + UF_FLAG_PRIVATE, // PLAYER_FIELD_KEYRING_SLOT_1+33 + UF_FLAG_PRIVATE, // PLAYER_FIELD_KEYRING_SLOT_1+34 + UF_FLAG_PRIVATE, // PLAYER_FIELD_KEYRING_SLOT_1+35 + UF_FLAG_PRIVATE, // PLAYER_FIELD_KEYRING_SLOT_1+36 + UF_FLAG_PRIVATE, // PLAYER_FIELD_KEYRING_SLOT_1+37 + UF_FLAG_PRIVATE, // PLAYER_FIELD_KEYRING_SLOT_1+38 + UF_FLAG_PRIVATE, // PLAYER_FIELD_KEYRING_SLOT_1+39 + UF_FLAG_PRIVATE, // PLAYER_FIELD_KEYRING_SLOT_1+40 + UF_FLAG_PRIVATE, // PLAYER_FIELD_KEYRING_SLOT_1+41 + UF_FLAG_PRIVATE, // PLAYER_FIELD_KEYRING_SLOT_1+42 + UF_FLAG_PRIVATE, // PLAYER_FIELD_KEYRING_SLOT_1+43 + UF_FLAG_PRIVATE, // PLAYER_FIELD_KEYRING_SLOT_1+44 + UF_FLAG_PRIVATE, // PLAYER_FIELD_KEYRING_SLOT_1+45 + UF_FLAG_PRIVATE, // PLAYER_FIELD_KEYRING_SLOT_1+46 + UF_FLAG_PRIVATE, // PLAYER_FIELD_KEYRING_SLOT_1+47 + UF_FLAG_PRIVATE, // PLAYER_FIELD_KEYRING_SLOT_1+48 + UF_FLAG_PRIVATE, // PLAYER_FIELD_KEYRING_SLOT_1+49 + UF_FLAG_PRIVATE, // PLAYER_FIELD_KEYRING_SLOT_1+50 + UF_FLAG_PRIVATE, // PLAYER_FIELD_KEYRING_SLOT_1+51 + UF_FLAG_PRIVATE, // PLAYER_FIELD_KEYRING_SLOT_1+52 + UF_FLAG_PRIVATE, // PLAYER_FIELD_KEYRING_SLOT_1+53 + UF_FLAG_PRIVATE, // PLAYER_FIELD_KEYRING_SLOT_1+54 + UF_FLAG_PRIVATE, // PLAYER_FIELD_KEYRING_SLOT_1+55 + UF_FLAG_PRIVATE, // PLAYER_FIELD_KEYRING_SLOT_1+56 + UF_FLAG_PRIVATE, // PLAYER_FIELD_KEYRING_SLOT_1+57 + UF_FLAG_PRIVATE, // PLAYER_FIELD_KEYRING_SLOT_1+58 + UF_FLAG_PRIVATE, // PLAYER_FIELD_KEYRING_SLOT_1+59 + UF_FLAG_PRIVATE, // PLAYER_FIELD_KEYRING_SLOT_1+60 + UF_FLAG_PRIVATE, // PLAYER_FIELD_KEYRING_SLOT_1+61 + UF_FLAG_PRIVATE, // PLAYER_FIELD_KEYRING_SLOT_1+62 + UF_FLAG_PRIVATE, // PLAYER_FIELD_KEYRING_SLOT_1+63 + UF_FLAG_PRIVATE, // PLAYER_FIELD_CURRENCYTOKEN_SLOT_1 + UF_FLAG_PRIVATE, // PLAYER_FIELD_CURRENCYTOKEN_SLOT_1+1 + UF_FLAG_PRIVATE, // PLAYER_FIELD_CURRENCYTOKEN_SLOT_1+2 + UF_FLAG_PRIVATE, // PLAYER_FIELD_CURRENCYTOKEN_SLOT_1+3 + UF_FLAG_PRIVATE, // PLAYER_FIELD_CURRENCYTOKEN_SLOT_1+4 + UF_FLAG_PRIVATE, // PLAYER_FIELD_CURRENCYTOKEN_SLOT_1+5 + UF_FLAG_PRIVATE, // PLAYER_FIELD_CURRENCYTOKEN_SLOT_1+6 + UF_FLAG_PRIVATE, // PLAYER_FIELD_CURRENCYTOKEN_SLOT_1+7 + UF_FLAG_PRIVATE, // PLAYER_FIELD_CURRENCYTOKEN_SLOT_1+8 + UF_FLAG_PRIVATE, // PLAYER_FIELD_CURRENCYTOKEN_SLOT_1+9 + UF_FLAG_PRIVATE, // PLAYER_FIELD_CURRENCYTOKEN_SLOT_1+10 + UF_FLAG_PRIVATE, // PLAYER_FIELD_CURRENCYTOKEN_SLOT_1+11 + UF_FLAG_PRIVATE, // PLAYER_FIELD_CURRENCYTOKEN_SLOT_1+12 + UF_FLAG_PRIVATE, // PLAYER_FIELD_CURRENCYTOKEN_SLOT_1+13 + UF_FLAG_PRIVATE, // PLAYER_FIELD_CURRENCYTOKEN_SLOT_1+14 + UF_FLAG_PRIVATE, // PLAYER_FIELD_CURRENCYTOKEN_SLOT_1+15 + UF_FLAG_PRIVATE, // PLAYER_FIELD_CURRENCYTOKEN_SLOT_1+16 + UF_FLAG_PRIVATE, // PLAYER_FIELD_CURRENCYTOKEN_SLOT_1+17 + UF_FLAG_PRIVATE, // PLAYER_FIELD_CURRENCYTOKEN_SLOT_1+18 + UF_FLAG_PRIVATE, // PLAYER_FIELD_CURRENCYTOKEN_SLOT_1+19 + UF_FLAG_PRIVATE, // PLAYER_FIELD_CURRENCYTOKEN_SLOT_1+20 + UF_FLAG_PRIVATE, // PLAYER_FIELD_CURRENCYTOKEN_SLOT_1+21 + UF_FLAG_PRIVATE, // PLAYER_FIELD_CURRENCYTOKEN_SLOT_1+22 + UF_FLAG_PRIVATE, // PLAYER_FIELD_CURRENCYTOKEN_SLOT_1+23 + UF_FLAG_PRIVATE, // PLAYER_FIELD_CURRENCYTOKEN_SLOT_1+24 + UF_FLAG_PRIVATE, // PLAYER_FIELD_CURRENCYTOKEN_SLOT_1+25 + UF_FLAG_PRIVATE, // PLAYER_FIELD_CURRENCYTOKEN_SLOT_1+26 + UF_FLAG_PRIVATE, // PLAYER_FIELD_CURRENCYTOKEN_SLOT_1+27 + UF_FLAG_PRIVATE, // PLAYER_FIELD_CURRENCYTOKEN_SLOT_1+28 + UF_FLAG_PRIVATE, // PLAYER_FIELD_CURRENCYTOKEN_SLOT_1+29 + UF_FLAG_PRIVATE, // PLAYER_FIELD_CURRENCYTOKEN_SLOT_1+30 + UF_FLAG_PRIVATE, // PLAYER_FIELD_CURRENCYTOKEN_SLOT_1+31 + UF_FLAG_PRIVATE, // PLAYER_FIELD_CURRENCYTOKEN_SLOT_1+32 + UF_FLAG_PRIVATE, // PLAYER_FIELD_CURRENCYTOKEN_SLOT_1+33 + UF_FLAG_PRIVATE, // PLAYER_FIELD_CURRENCYTOKEN_SLOT_1+34 + UF_FLAG_PRIVATE, // PLAYER_FIELD_CURRENCYTOKEN_SLOT_1+35 + UF_FLAG_PRIVATE, // PLAYER_FIELD_CURRENCYTOKEN_SLOT_1+36 + UF_FLAG_PRIVATE, // PLAYER_FIELD_CURRENCYTOKEN_SLOT_1+37 + UF_FLAG_PRIVATE, // PLAYER_FIELD_CURRENCYTOKEN_SLOT_1+38 + UF_FLAG_PRIVATE, // PLAYER_FIELD_CURRENCYTOKEN_SLOT_1+39 + UF_FLAG_PRIVATE, // PLAYER_FIELD_CURRENCYTOKEN_SLOT_1+40 + UF_FLAG_PRIVATE, // PLAYER_FIELD_CURRENCYTOKEN_SLOT_1+41 + UF_FLAG_PRIVATE, // PLAYER_FIELD_CURRENCYTOKEN_SLOT_1+42 + UF_FLAG_PRIVATE, // PLAYER_FIELD_CURRENCYTOKEN_SLOT_1+43 + UF_FLAG_PRIVATE, // PLAYER_FIELD_CURRENCYTOKEN_SLOT_1+44 + UF_FLAG_PRIVATE, // PLAYER_FIELD_CURRENCYTOKEN_SLOT_1+45 + UF_FLAG_PRIVATE, // PLAYER_FIELD_CURRENCYTOKEN_SLOT_1+46 + UF_FLAG_PRIVATE, // PLAYER_FIELD_CURRENCYTOKEN_SLOT_1+47 + UF_FLAG_PRIVATE, // PLAYER_FIELD_CURRENCYTOKEN_SLOT_1+48 + UF_FLAG_PRIVATE, // PLAYER_FIELD_CURRENCYTOKEN_SLOT_1+49 + UF_FLAG_PRIVATE, // PLAYER_FIELD_CURRENCYTOKEN_SLOT_1+50 + UF_FLAG_PRIVATE, // PLAYER_FIELD_CURRENCYTOKEN_SLOT_1+51 + UF_FLAG_PRIVATE, // PLAYER_FIELD_CURRENCYTOKEN_SLOT_1+52 + UF_FLAG_PRIVATE, // PLAYER_FIELD_CURRENCYTOKEN_SLOT_1+53 + UF_FLAG_PRIVATE, // PLAYER_FIELD_CURRENCYTOKEN_SLOT_1+54 + UF_FLAG_PRIVATE, // PLAYER_FIELD_CURRENCYTOKEN_SLOT_1+55 + UF_FLAG_PRIVATE, // PLAYER_FIELD_CURRENCYTOKEN_SLOT_1+56 + UF_FLAG_PRIVATE, // PLAYER_FIELD_CURRENCYTOKEN_SLOT_1+57 + UF_FLAG_PRIVATE, // PLAYER_FIELD_CURRENCYTOKEN_SLOT_1+58 + UF_FLAG_PRIVATE, // PLAYER_FIELD_CURRENCYTOKEN_SLOT_1+59 + UF_FLAG_PRIVATE, // PLAYER_FIELD_CURRENCYTOKEN_SLOT_1+60 + UF_FLAG_PRIVATE, // PLAYER_FIELD_CURRENCYTOKEN_SLOT_1+61 + UF_FLAG_PRIVATE, // PLAYER_FIELD_CURRENCYTOKEN_SLOT_1+62 + UF_FLAG_PRIVATE, // PLAYER_FIELD_CURRENCYTOKEN_SLOT_1+63 + UF_FLAG_PRIVATE, // PLAYER_FARSIGHT + UF_FLAG_PRIVATE, // PLAYER_FARSIGHT+1 + UF_FLAG_PRIVATE, // PLAYER__FIELD_KNOWN_TITLES + UF_FLAG_PRIVATE, // PLAYER__FIELD_KNOWN_TITLES+1 + UF_FLAG_PRIVATE, // PLAYER__FIELD_KNOWN_TITLES1 + UF_FLAG_PRIVATE, // PLAYER__FIELD_KNOWN_TITLES1+1 + UF_FLAG_PRIVATE, // PLAYER__FIELD_KNOWN_TITLES2 + UF_FLAG_PRIVATE, // PLAYER__FIELD_KNOWN_TITLES2+1 + UF_FLAG_PRIVATE, // PLAYER_FIELD_KNOWN_CURRENCIES + UF_FLAG_PRIVATE, // PLAYER_FIELD_KNOWN_CURRENCIES+1 + UF_FLAG_PRIVATE, // PLAYER_XP + UF_FLAG_PRIVATE, // PLAYER_NEXT_LEVEL_XP + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+1 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+2 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+3 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+4 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+5 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+6 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+7 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+8 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+9 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+10 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+11 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+12 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+13 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+14 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+15 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+16 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+17 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+18 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+19 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+20 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+21 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+22 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+23 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+24 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+25 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+26 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+27 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+28 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+29 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+30 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+31 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+32 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+33 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+34 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+35 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+36 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+37 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+38 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+39 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+40 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+41 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+42 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+43 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+44 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+45 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+46 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+47 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+48 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+49 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+50 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+51 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+52 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+53 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+54 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+55 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+56 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+57 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+58 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+59 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+60 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+61 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+62 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+63 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+64 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+65 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+66 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+67 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+68 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+69 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+70 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+71 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+72 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+73 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+74 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+75 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+76 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+77 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+78 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+79 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+80 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+81 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+82 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+83 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+84 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+85 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+86 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+87 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+88 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+89 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+90 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+91 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+92 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+93 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+94 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+95 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+96 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+97 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+98 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+99 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+100 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+101 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+102 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+103 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+104 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+105 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+106 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+107 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+108 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+109 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+110 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+111 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+112 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+113 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+114 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+115 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+116 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+117 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+118 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+119 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+120 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+121 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+122 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+123 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+124 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+125 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+126 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+127 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+128 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+129 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+130 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+131 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+132 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+133 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+134 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+135 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+136 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+137 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+138 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+139 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+140 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+141 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+142 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+143 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+144 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+145 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+146 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+147 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+148 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+149 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+150 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+151 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+152 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+153 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+154 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+155 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+156 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+157 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+158 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+159 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+160 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+161 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+162 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+163 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+164 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+165 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+166 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+167 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+168 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+169 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+170 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+171 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+172 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+173 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+174 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+175 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+176 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+177 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+178 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+179 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+180 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+181 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+182 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+183 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+184 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+185 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+186 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+187 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+188 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+189 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+190 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+191 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+192 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+193 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+194 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+195 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+196 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+197 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+198 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+199 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+200 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+201 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+202 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+203 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+204 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+205 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+206 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+207 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+208 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+209 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+210 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+211 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+212 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+213 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+214 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+215 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+216 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+217 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+218 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+219 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+220 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+221 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+222 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+223 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+224 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+225 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+226 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+227 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+228 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+229 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+230 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+231 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+232 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+233 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+234 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+235 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+236 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+237 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+238 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+239 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+240 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+241 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+242 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+243 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+244 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+245 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+246 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+247 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+248 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+249 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+250 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+251 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+252 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+253 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+254 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+255 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+256 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+257 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+258 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+259 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+260 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+261 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+262 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+263 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+264 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+265 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+266 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+267 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+268 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+269 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+270 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+271 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+272 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+273 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+274 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+275 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+276 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+277 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+278 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+279 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+280 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+281 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+282 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+283 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+284 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+285 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+286 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+287 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+288 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+289 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+290 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+291 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+292 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+293 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+294 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+295 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+296 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+297 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+298 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+299 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+300 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+301 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+302 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+303 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+304 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+305 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+306 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+307 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+308 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+309 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+310 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+311 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+312 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+313 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+314 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+315 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+316 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+317 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+318 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+319 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+320 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+321 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+322 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+323 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+324 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+325 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+326 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+327 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+328 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+329 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+330 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+331 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+332 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+333 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+334 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+335 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+336 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+337 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+338 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+339 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+340 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+341 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+342 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+343 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+344 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+345 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+346 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+347 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+348 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+349 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+350 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+351 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+352 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+353 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+354 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+355 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+356 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+357 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+358 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+359 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+360 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+361 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+362 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+363 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+364 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+365 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+366 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+367 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+368 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+369 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+370 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+371 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+372 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+373 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+374 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+375 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+376 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+377 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+378 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+379 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+380 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+381 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+382 + UF_FLAG_PRIVATE, // PLAYER_SKILL_INFO_1_1+383 + UF_FLAG_PRIVATE, // PLAYER_CHARACTER_POINTS1 + UF_FLAG_PRIVATE, // PLAYER_CHARACTER_POINTS2 + UF_FLAG_PRIVATE, // PLAYER_TRACK_CREATURES + UF_FLAG_PRIVATE, // PLAYER_TRACK_RESOURCES + UF_FLAG_PRIVATE, // PLAYER_BLOCK_PERCENTAGE + UF_FLAG_PRIVATE, // PLAYER_DODGE_PERCENTAGE + UF_FLAG_PRIVATE, // PLAYER_PARRY_PERCENTAGE + UF_FLAG_PRIVATE, // PLAYER_EXPERTISE + UF_FLAG_PRIVATE, // PLAYER_OFFHAND_EXPERTISE + UF_FLAG_PRIVATE, // PLAYER_CRIT_PERCENTAGE + UF_FLAG_PRIVATE, // PLAYER_RANGED_CRIT_PERCENTAGE + UF_FLAG_PRIVATE, // PLAYER_OFFHAND_CRIT_PERCENTAGE + UF_FLAG_PRIVATE, // PLAYER_SPELL_CRIT_PERCENTAGE1 + UF_FLAG_PRIVATE, // PLAYER_SPELL_CRIT_PERCENTAGE1+1 + UF_FLAG_PRIVATE, // PLAYER_SPELL_CRIT_PERCENTAGE1+2 + UF_FLAG_PRIVATE, // PLAYER_SPELL_CRIT_PERCENTAGE1+3 + UF_FLAG_PRIVATE, // PLAYER_SPELL_CRIT_PERCENTAGE1+4 + UF_FLAG_PRIVATE, // PLAYER_SPELL_CRIT_PERCENTAGE1+5 + UF_FLAG_PRIVATE, // PLAYER_SPELL_CRIT_PERCENTAGE1+6 + UF_FLAG_PRIVATE, // PLAYER_SHIELD_BLOCK + UF_FLAG_PRIVATE, // PLAYER_SHIELD_BLOCK_CRIT_PERCENTAGE + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+1 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+2 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+3 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+4 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+5 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+6 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+7 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+8 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+9 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+10 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+11 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+12 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+13 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+14 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+15 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+16 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+17 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+18 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+19 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+20 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+21 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+22 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+23 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+24 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+25 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+26 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+27 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+28 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+29 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+30 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+31 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+32 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+33 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+34 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+35 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+36 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+37 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+38 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+39 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+40 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+41 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+42 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+43 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+44 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+45 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+46 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+47 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+48 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+49 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+50 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+51 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+52 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+53 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+54 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+55 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+56 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+57 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+58 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+59 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+60 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+61 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+62 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+63 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+64 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+65 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+66 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+67 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+68 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+69 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+70 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+71 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+72 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+73 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+74 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+75 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+76 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+77 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+78 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+79 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+80 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+81 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+82 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+83 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+84 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+85 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+86 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+87 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+88 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+89 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+90 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+91 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+92 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+93 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+94 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+95 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+96 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+97 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+98 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+99 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+100 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+101 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+102 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+103 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+104 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+105 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+106 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+107 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+108 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+109 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+110 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+111 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+112 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+113 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+114 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+115 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+116 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+117 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+118 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+119 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+120 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+121 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+122 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+123 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+124 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+125 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+126 + UF_FLAG_PRIVATE, // PLAYER_EXPLORED_ZONES_1+127 + UF_FLAG_PRIVATE, // PLAYER_REST_STATE_EXPERIENCE + UF_FLAG_PRIVATE, // PLAYER_FIELD_COINAGE + UF_FLAG_PRIVATE, // PLAYER_FIELD_MOD_DAMAGE_DONE_POS + UF_FLAG_PRIVATE, // PLAYER_FIELD_MOD_DAMAGE_DONE_POS+1 + UF_FLAG_PRIVATE, // PLAYER_FIELD_MOD_DAMAGE_DONE_POS+2 + UF_FLAG_PRIVATE, // PLAYER_FIELD_MOD_DAMAGE_DONE_POS+3 + UF_FLAG_PRIVATE, // PLAYER_FIELD_MOD_DAMAGE_DONE_POS+4 + UF_FLAG_PRIVATE, // PLAYER_FIELD_MOD_DAMAGE_DONE_POS+5 + UF_FLAG_PRIVATE, // PLAYER_FIELD_MOD_DAMAGE_DONE_POS+6 + UF_FLAG_PRIVATE, // PLAYER_FIELD_MOD_DAMAGE_DONE_NEG + UF_FLAG_PRIVATE, // PLAYER_FIELD_MOD_DAMAGE_DONE_NEG+1 + UF_FLAG_PRIVATE, // PLAYER_FIELD_MOD_DAMAGE_DONE_NEG+2 + UF_FLAG_PRIVATE, // PLAYER_FIELD_MOD_DAMAGE_DONE_NEG+3 + UF_FLAG_PRIVATE, // PLAYER_FIELD_MOD_DAMAGE_DONE_NEG+4 + UF_FLAG_PRIVATE, // PLAYER_FIELD_MOD_DAMAGE_DONE_NEG+5 + UF_FLAG_PRIVATE, // PLAYER_FIELD_MOD_DAMAGE_DONE_NEG+6 + UF_FLAG_PRIVATE, // PLAYER_FIELD_MOD_DAMAGE_DONE_PCT + UF_FLAG_PRIVATE, // PLAYER_FIELD_MOD_DAMAGE_DONE_PCT+1 + UF_FLAG_PRIVATE, // PLAYER_FIELD_MOD_DAMAGE_DONE_PCT+2 + UF_FLAG_PRIVATE, // PLAYER_FIELD_MOD_DAMAGE_DONE_PCT+3 + UF_FLAG_PRIVATE, // PLAYER_FIELD_MOD_DAMAGE_DONE_PCT+4 + UF_FLAG_PRIVATE, // PLAYER_FIELD_MOD_DAMAGE_DONE_PCT+5 + UF_FLAG_PRIVATE, // PLAYER_FIELD_MOD_DAMAGE_DONE_PCT+6 + UF_FLAG_PRIVATE, // PLAYER_FIELD_MOD_HEALING_DONE_POS + UF_FLAG_PRIVATE, // PLAYER_FIELD_MOD_HEALING_PCT + UF_FLAG_PRIVATE, // PLAYER_FIELD_MOD_HEALING_DONE_PCT + UF_FLAG_PRIVATE, // PLAYER_FIELD_MOD_TARGET_RESISTANCE + UF_FLAG_PRIVATE, // PLAYER_FIELD_MOD_TARGET_PHYSICAL_RESISTANCE + UF_FLAG_PRIVATE, // PLAYER_FIELD_BYTES + UF_FLAG_PRIVATE, // PLAYER_AMMO_ID + UF_FLAG_PRIVATE, // PLAYER_SELF_RES_SPELL + UF_FLAG_PRIVATE, // PLAYER_FIELD_PVP_MEDALS + UF_FLAG_PRIVATE, // PLAYER_FIELD_BUYBACK_PRICE_1 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BUYBACK_PRICE_1+1 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BUYBACK_PRICE_1+2 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BUYBACK_PRICE_1+3 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BUYBACK_PRICE_1+4 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BUYBACK_PRICE_1+5 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BUYBACK_PRICE_1+6 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BUYBACK_PRICE_1+7 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BUYBACK_PRICE_1+8 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BUYBACK_PRICE_1+9 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BUYBACK_PRICE_1+10 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BUYBACK_PRICE_1+11 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BUYBACK_TIMESTAMP_1 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BUYBACK_TIMESTAMP_1+1 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BUYBACK_TIMESTAMP_1+2 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BUYBACK_TIMESTAMP_1+3 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BUYBACK_TIMESTAMP_1+4 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BUYBACK_TIMESTAMP_1+5 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BUYBACK_TIMESTAMP_1+6 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BUYBACK_TIMESTAMP_1+7 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BUYBACK_TIMESTAMP_1+8 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BUYBACK_TIMESTAMP_1+9 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BUYBACK_TIMESTAMP_1+10 + UF_FLAG_PRIVATE, // PLAYER_FIELD_BUYBACK_TIMESTAMP_1+11 + UF_FLAG_PRIVATE, // PLAYER_FIELD_KILLS + UF_FLAG_PRIVATE, // PLAYER_FIELD_TODAY_CONTRIBUTION + UF_FLAG_PRIVATE, // PLAYER_FIELD_YESTERDAY_CONTRIBUTION + UF_FLAG_PRIVATE, // PLAYER_FIELD_LIFETIME_HONORBALE_KILLS + UF_FLAG_PRIVATE, // PLAYER_FIELD_BYTES2 + UF_FLAG_PRIVATE, // PLAYER_FIELD_WATCHED_FACTION_INDEX + UF_FLAG_PRIVATE, // PLAYER_FIELD_COMBAT_RATING_1 + UF_FLAG_PRIVATE, // PLAYER_FIELD_COMBAT_RATING_1+1 + UF_FLAG_PRIVATE, // PLAYER_FIELD_COMBAT_RATING_1+2 + UF_FLAG_PRIVATE, // PLAYER_FIELD_COMBAT_RATING_1+3 + UF_FLAG_PRIVATE, // PLAYER_FIELD_COMBAT_RATING_1+4 + UF_FLAG_PRIVATE, // PLAYER_FIELD_COMBAT_RATING_1+5 + UF_FLAG_PRIVATE, // PLAYER_FIELD_COMBAT_RATING_1+6 + UF_FLAG_PRIVATE, // PLAYER_FIELD_COMBAT_RATING_1+7 + UF_FLAG_PRIVATE, // PLAYER_FIELD_COMBAT_RATING_1+8 + UF_FLAG_PRIVATE, // PLAYER_FIELD_COMBAT_RATING_1+9 + UF_FLAG_PRIVATE, // PLAYER_FIELD_COMBAT_RATING_1+10 + UF_FLAG_PRIVATE, // PLAYER_FIELD_COMBAT_RATING_1+11 + UF_FLAG_PRIVATE, // PLAYER_FIELD_COMBAT_RATING_1+12 + UF_FLAG_PRIVATE, // PLAYER_FIELD_COMBAT_RATING_1+13 + UF_FLAG_PRIVATE, // PLAYER_FIELD_COMBAT_RATING_1+14 + UF_FLAG_PRIVATE, // PLAYER_FIELD_COMBAT_RATING_1+15 + UF_FLAG_PRIVATE, // PLAYER_FIELD_COMBAT_RATING_1+16 + UF_FLAG_PRIVATE, // PLAYER_FIELD_COMBAT_RATING_1+17 + UF_FLAG_PRIVATE, // PLAYER_FIELD_COMBAT_RATING_1+18 + UF_FLAG_PRIVATE, // PLAYER_FIELD_COMBAT_RATING_1+19 + UF_FLAG_PRIVATE, // PLAYER_FIELD_COMBAT_RATING_1+20 + UF_FLAG_PRIVATE, // PLAYER_FIELD_COMBAT_RATING_1+21 + UF_FLAG_PRIVATE, // PLAYER_FIELD_COMBAT_RATING_1+22 + UF_FLAG_PRIVATE, // PLAYER_FIELD_COMBAT_RATING_1+23 + UF_FLAG_PRIVATE, // PLAYER_FIELD_COMBAT_RATING_1+24 + UF_FLAG_PRIVATE, // PLAYER_FIELD_ARENA_TEAM_INFO_1_1 + UF_FLAG_PRIVATE, // PLAYER_FIELD_ARENA_TEAM_INFO_1_1+1 + UF_FLAG_PRIVATE, // PLAYER_FIELD_ARENA_TEAM_INFO_1_1+2 + UF_FLAG_PRIVATE, // PLAYER_FIELD_ARENA_TEAM_INFO_1_1+3 + UF_FLAG_PRIVATE, // PLAYER_FIELD_ARENA_TEAM_INFO_1_1+4 + UF_FLAG_PRIVATE, // PLAYER_FIELD_ARENA_TEAM_INFO_1_1+5 + UF_FLAG_PRIVATE, // PLAYER_FIELD_ARENA_TEAM_INFO_1_1+6 + UF_FLAG_PRIVATE, // PLAYER_FIELD_ARENA_TEAM_INFO_1_1+7 + UF_FLAG_PRIVATE, // PLAYER_FIELD_ARENA_TEAM_INFO_1_1+8 + UF_FLAG_PRIVATE, // PLAYER_FIELD_ARENA_TEAM_INFO_1_1+9 + UF_FLAG_PRIVATE, // PLAYER_FIELD_ARENA_TEAM_INFO_1_1+10 + UF_FLAG_PRIVATE, // PLAYER_FIELD_ARENA_TEAM_INFO_1_1+11 + UF_FLAG_PRIVATE, // PLAYER_FIELD_ARENA_TEAM_INFO_1_1+12 + UF_FLAG_PRIVATE, // PLAYER_FIELD_ARENA_TEAM_INFO_1_1+13 + UF_FLAG_PRIVATE, // PLAYER_FIELD_ARENA_TEAM_INFO_1_1+14 + UF_FLAG_PRIVATE, // PLAYER_FIELD_ARENA_TEAM_INFO_1_1+15 + UF_FLAG_PRIVATE, // PLAYER_FIELD_ARENA_TEAM_INFO_1_1+16 + UF_FLAG_PRIVATE, // PLAYER_FIELD_ARENA_TEAM_INFO_1_1+17 + UF_FLAG_PRIVATE, // PLAYER_FIELD_ARENA_TEAM_INFO_1_1+18 + UF_FLAG_PRIVATE, // PLAYER_FIELD_ARENA_TEAM_INFO_1_1+19 + UF_FLAG_PRIVATE, // PLAYER_FIELD_ARENA_TEAM_INFO_1_1+20 + UF_FLAG_PRIVATE, // PLAYER_FIELD_HONOR_CURRENCY + UF_FLAG_PRIVATE, // PLAYER_FIELD_ARENA_CURRENCY + UF_FLAG_PRIVATE, // PLAYER_FIELD_MAX_LEVEL + UF_FLAG_PRIVATE, // PLAYER_FIELD_DAILY_QUESTS_1 + UF_FLAG_PRIVATE, // PLAYER_FIELD_DAILY_QUESTS_1+1 + UF_FLAG_PRIVATE, // PLAYER_FIELD_DAILY_QUESTS_1+2 + UF_FLAG_PRIVATE, // PLAYER_FIELD_DAILY_QUESTS_1+3 + UF_FLAG_PRIVATE, // PLAYER_FIELD_DAILY_QUESTS_1+4 + UF_FLAG_PRIVATE, // PLAYER_FIELD_DAILY_QUESTS_1+5 + UF_FLAG_PRIVATE, // PLAYER_FIELD_DAILY_QUESTS_1+6 + UF_FLAG_PRIVATE, // PLAYER_FIELD_DAILY_QUESTS_1+7 + UF_FLAG_PRIVATE, // PLAYER_FIELD_DAILY_QUESTS_1+8 + UF_FLAG_PRIVATE, // PLAYER_FIELD_DAILY_QUESTS_1+9 + UF_FLAG_PRIVATE, // PLAYER_FIELD_DAILY_QUESTS_1+10 + UF_FLAG_PRIVATE, // PLAYER_FIELD_DAILY_QUESTS_1+11 + UF_FLAG_PRIVATE, // PLAYER_FIELD_DAILY_QUESTS_1+12 + UF_FLAG_PRIVATE, // PLAYER_FIELD_DAILY_QUESTS_1+13 + UF_FLAG_PRIVATE, // PLAYER_FIELD_DAILY_QUESTS_1+14 + UF_FLAG_PRIVATE, // PLAYER_FIELD_DAILY_QUESTS_1+15 + UF_FLAG_PRIVATE, // PLAYER_FIELD_DAILY_QUESTS_1+16 + UF_FLAG_PRIVATE, // PLAYER_FIELD_DAILY_QUESTS_1+17 + UF_FLAG_PRIVATE, // PLAYER_FIELD_DAILY_QUESTS_1+18 + UF_FLAG_PRIVATE, // PLAYER_FIELD_DAILY_QUESTS_1+19 + UF_FLAG_PRIVATE, // PLAYER_FIELD_DAILY_QUESTS_1+20 + UF_FLAG_PRIVATE, // PLAYER_FIELD_DAILY_QUESTS_1+21 + UF_FLAG_PRIVATE, // PLAYER_FIELD_DAILY_QUESTS_1+22 + UF_FLAG_PRIVATE, // PLAYER_FIELD_DAILY_QUESTS_1+23 + UF_FLAG_PRIVATE, // PLAYER_FIELD_DAILY_QUESTS_1+24 + UF_FLAG_PRIVATE, // PLAYER_RUNE_REGEN_1 + UF_FLAG_PRIVATE, // PLAYER_RUNE_REGEN_1+1 + UF_FLAG_PRIVATE, // PLAYER_RUNE_REGEN_1+2 + UF_FLAG_PRIVATE, // PLAYER_RUNE_REGEN_1+3 + UF_FLAG_PRIVATE, // PLAYER_NO_REAGENT_COST_1 + UF_FLAG_PRIVATE, // PLAYER_NO_REAGENT_COST_1+1 + UF_FLAG_PRIVATE, // PLAYER_NO_REAGENT_COST_1+2 + UF_FLAG_PRIVATE, // PLAYER_FIELD_GLYPH_SLOTS_1 + UF_FLAG_PRIVATE, // PLAYER_FIELD_GLYPH_SLOTS_1+1 + UF_FLAG_PRIVATE, // PLAYER_FIELD_GLYPH_SLOTS_1+2 + UF_FLAG_PRIVATE, // PLAYER_FIELD_GLYPH_SLOTS_1+3 + UF_FLAG_PRIVATE, // PLAYER_FIELD_GLYPH_SLOTS_1+4 + UF_FLAG_PRIVATE, // PLAYER_FIELD_GLYPH_SLOTS_1+5 + UF_FLAG_PRIVATE, // PLAYER_FIELD_GLYPHS_1 + UF_FLAG_PRIVATE, // PLAYER_FIELD_GLYPHS_1+1 + UF_FLAG_PRIVATE, // PLAYER_FIELD_GLYPHS_1+2 + UF_FLAG_PRIVATE, // PLAYER_FIELD_GLYPHS_1+3 + UF_FLAG_PRIVATE, // PLAYER_FIELD_GLYPHS_1+4 + UF_FLAG_PRIVATE, // PLAYER_FIELD_GLYPHS_1+5 + UF_FLAG_PRIVATE, // PLAYER_GLYPHS_ENABLED + UF_FLAG_PRIVATE, // PLAYER_PET_SPELL_POWER +}; + +uint32 GameObjectUpdateFieldFlags[GAMEOBJECT_END] = +{ + UF_FLAG_PUBLIC, // OBJECT_FIELD_GUID + UF_FLAG_PUBLIC, // OBJECT_FIELD_GUID+1 + UF_FLAG_PUBLIC, // OBJECT_FIELD_TYPE + UF_FLAG_PUBLIC, // OBJECT_FIELD_ENTRY + UF_FLAG_PUBLIC, // OBJECT_FIELD_SCALE_X + UF_FLAG_NONE, // OBJECT_FIELD_PADDING + UF_FLAG_PUBLIC, // OBJECT_FIELD_CREATED_BY + UF_FLAG_PUBLIC, // OBJECT_FIELD_CREATED_BY+1 + UF_FLAG_PUBLIC, // GAMEOBJECT_DISPLAYID + UF_FLAG_PUBLIC, // GAMEOBJECT_FLAGS + UF_FLAG_PUBLIC, // GAMEOBJECT_PARENTROTATION + UF_FLAG_PUBLIC, // GAMEOBJECT_PARENTROTATION+1 + UF_FLAG_PUBLIC, // GAMEOBJECT_PARENTROTATION+2 + UF_FLAG_PUBLIC, // GAMEOBJECT_PARENTROTATION+3 + UF_FLAG_DYNAMIC, // GAMEOBJECT_DYNAMIC + UF_FLAG_PUBLIC, // GAMEOBJECT_FACTION + UF_FLAG_PUBLIC, // GAMEOBJECT_LEVEL + UF_FLAG_PUBLIC, // GAMEOBJECT_BYTES_1 +}; + +uint32 DynamicObjectUpdateFieldFlags[DYNAMICOBJECT_END] = +{ + UF_FLAG_PUBLIC, // OBJECT_FIELD_GUID + UF_FLAG_PUBLIC, // OBJECT_FIELD_GUID+1 + UF_FLAG_PUBLIC, // OBJECT_FIELD_TYPE + UF_FLAG_PUBLIC, // OBJECT_FIELD_ENTRY + UF_FLAG_PUBLIC, // OBJECT_FIELD_SCALE_X + UF_FLAG_NONE, // OBJECT_FIELD_PADDING + UF_FLAG_PUBLIC, // DYNAMICOBJECT_CASTER + UF_FLAG_PUBLIC, // DYNAMICOBJECT_CASTER+1 + UF_FLAG_PUBLIC, // DYNAMICOBJECT_BYTES + UF_FLAG_PUBLIC, // DYNAMICOBJECT_SPELLID + UF_FLAG_PUBLIC, // DYNAMICOBJECT_RADIUS + UF_FLAG_PUBLIC, // DYNAMICOBJECT_CASTTIME +}; + +uint32 CorpseUpdateFieldFlags[CORPSE_END] = +{ + UF_FLAG_PUBLIC, // OBJECT_FIELD_GUID + UF_FLAG_PUBLIC, // OBJECT_FIELD_GUID+1 + UF_FLAG_PUBLIC, // OBJECT_FIELD_TYPE + UF_FLAG_PUBLIC, // OBJECT_FIELD_ENTRY + UF_FLAG_PUBLIC, // OBJECT_FIELD_SCALE_X + UF_FLAG_NONE, // OBJECT_FIELD_PADDING + UF_FLAG_PUBLIC, // CORPSE_FIELD_OWNER + UF_FLAG_PUBLIC, // CORPSE_FIELD_OWNER+1 + UF_FLAG_PUBLIC, // CORPSE_FIELD_PARTY + UF_FLAG_PUBLIC, // CORPSE_FIELD_PARTY+1 + UF_FLAG_PUBLIC, // CORPSE_FIELD_DISPLAY_ID + UF_FLAG_PUBLIC, // CORPSE_FIELD_ITEM + UF_FLAG_PUBLIC, // CORPSE_FIELD_ITEM+1 + UF_FLAG_PUBLIC, // CORPSE_FIELD_ITEM+2 + UF_FLAG_PUBLIC, // CORPSE_FIELD_ITEM+3 + UF_FLAG_PUBLIC, // CORPSE_FIELD_ITEM+4 + UF_FLAG_PUBLIC, // CORPSE_FIELD_ITEM+5 + UF_FLAG_PUBLIC, // CORPSE_FIELD_ITEM+6 + UF_FLAG_PUBLIC, // CORPSE_FIELD_ITEM+7 + UF_FLAG_PUBLIC, // CORPSE_FIELD_ITEM+8 + UF_FLAG_PUBLIC, // CORPSE_FIELD_ITEM+9 + UF_FLAG_PUBLIC, // CORPSE_FIELD_ITEM+10 + UF_FLAG_PUBLIC, // CORPSE_FIELD_ITEM+11 + UF_FLAG_PUBLIC, // CORPSE_FIELD_ITEM+12 + UF_FLAG_PUBLIC, // CORPSE_FIELD_ITEM+13 + UF_FLAG_PUBLIC, // CORPSE_FIELD_ITEM+14 + UF_FLAG_PUBLIC, // CORPSE_FIELD_ITEM+15 + UF_FLAG_PUBLIC, // CORPSE_FIELD_ITEM+16 + UF_FLAG_PUBLIC, // CORPSE_FIELD_ITEM+17 + UF_FLAG_PUBLIC, // CORPSE_FIELD_ITEM+18 + UF_FLAG_PUBLIC, // CORPSE_FIELD_BYTES_1 + UF_FLAG_PUBLIC, // CORPSE_FIELD_BYTES_2 + UF_FLAG_PUBLIC, // CORPSE_FIELD_GUILD + UF_FLAG_PUBLIC, // CORPSE_FIELD_FLAGS + UF_FLAG_DYNAMIC, // CORPSE_FIELD_DYNAMIC_FLAGS + UF_FLAG_NONE, // CORPSE_FIELD_PAD +}; diff --git a/src/server/game/Entities/Object/Updates/UpdateFieldFlags.h b/src/server/game/Entities/Object/Updates/UpdateFieldFlags.h new file mode 100644 index 00000000000..71b3f0cd4aa --- /dev/null +++ b/src/server/game/Entities/Object/Updates/UpdateFieldFlags.h @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2008-2012 TrinityCore <http://www.trinitycore.org/> + * + * 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 2 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 <http://www.gnu.org/licenses/>. + */ + +#ifndef _UPDATEFIELDFLAGS_H +#define _UPDATEFIELDFLAGS_H + +#include "UpdateFields.h" +#include "Define.h" + +enum UpdatefieldFlags +{ + UF_FLAG_NONE = 0x000, + UF_FLAG_PUBLIC = 0x001, + UF_FLAG_PRIVATE = 0x002, + UF_FLAG_OWNER = 0x004, + UF_FLAG_UNUSED1 = 0x008, + UF_FLAG_ITEM_OWNER = 0x010, + UF_FLAG_SPECIAL_INFO = 0x020, + UF_FLAG_PARTY_MEMBER = 0x040, + UF_FLAG_UNUSED2 = 0x080, + UF_FLAG_DYNAMIC = 0x100, +}; + +extern uint32 ItemUpdateFieldFlags[CONTAINER_END]; +extern uint32 UnitUpdateFieldFlags[PLAYER_END]; +extern uint32 GameObjectUpdateFieldFlags[GAMEOBJECT_END]; +extern uint32 DynamicObjectUpdateFieldFlags[DYNAMICOBJECT_END]; +extern uint32 CorpseUpdateFieldFlags[CORPSE_END]; + +#endif // _UPDATEFIELDFLAGS_H diff --git a/src/server/game/Entities/Object/Updates/UpdateMask.h b/src/server/game/Entities/Object/Updates/UpdateMask.h index d4ecd42819c..ad70936b81d 100755 --- a/src/server/game/Entities/Object/Updates/UpdateMask.h +++ b/src/server/game/Entities/Object/Updates/UpdateMask.h @@ -26,26 +26,26 @@ class UpdateMask { public: UpdateMask() : mCount(0), mBlocks(0), mUpdateMask(0) { } - UpdateMask(const UpdateMask& mask) : mUpdateMask(0) { *this = mask; } + UpdateMask(UpdateMask const& mask) : mUpdateMask(0) { *this = mask; } ~UpdateMask() { - delete [] mUpdateMask; + delete[] mUpdateMask; } - void SetBit (uint32 index) + void SetBit(uint32 index) { - ((uint8 *)mUpdateMask)[ index >> 3 ] |= 1 << (index & 0x7); + ((uint8*)mUpdateMask)[index >> 3] |= 1 << (index & 0x7); } - void UnsetBit (uint32 index) + void UnsetBit(uint32 index) { - ((uint8 *)mUpdateMask)[ index >> 3 ] &= (0xff ^ (1 << (index & 0x7))); + ((uint8*)mUpdateMask)[index >> 3] &= (0xff ^ (1 << (index & 0x7))); } - bool GetBit (uint32 index) const + bool GetBit(uint32 index) const { - return (((uint8 *)mUpdateMask)[ index >> 3 ] & (1 << (index & 0x7))) != 0; + return (((uint8*)mUpdateMask)[index >> 3] & (1 << (index & 0x7))) != 0; } uint32 GetBlockCount() const { return mBlocks; } @@ -70,7 +70,7 @@ class UpdateMask memset(mUpdateMask, 0, mBlocks << 2); } - UpdateMask& operator = (const UpdateMask& mask) + UpdateMask& operator=(UpdateMask const& mask) { if (this == &mask) return *this; @@ -81,21 +81,21 @@ class UpdateMask return *this; } - void operator &= (const UpdateMask& mask) + void operator&=(UpdateMask const& mask) { ASSERT(mask.mCount <= mCount); for (uint32 i = 0; i < mBlocks; ++i) mUpdateMask[i] &= mask.mUpdateMask[i]; } - void operator |= (const UpdateMask& mask) + void operator|=(UpdateMask const& mask) { ASSERT(mask.mCount <= mCount); for (uint32 i = 0; i < mBlocks; ++i) mUpdateMask[i] |= mask.mUpdateMask[i]; } - UpdateMask operator & (const UpdateMask& mask) const + UpdateMask operator&(UpdateMask const& mask) const { ASSERT(mask.mCount <= mCount); @@ -106,7 +106,7 @@ class UpdateMask return newmask; } - UpdateMask operator | (const UpdateMask& mask) const + UpdateMask operator|(UpdateMask const& mask) const { ASSERT(mask.mCount <= mCount); diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 5e227e43a42..46f8f215456 100755 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -630,8 +630,6 @@ void KillRewarder::Reward() // == Player ==================================================== -UpdateMask Player::updateVisualBits; - // we can disable this warning for this since it only // causes undefined behavior when passed to the base class constructor #ifdef _MSC_VER @@ -4492,119 +4490,6 @@ Mail* Player::GetMail(uint32 id) return NULL; } -void Player::_SetCreateBits(UpdateMask* updateMask, Player* target) const -{ - if (target == this) - Object::_SetCreateBits(updateMask, target); - else - { - for (uint16 index = 0; index < m_valuesCount; index++) - if (GetUInt32Value(index) != 0 && updateVisualBits.GetBit(index)) - updateMask->SetBit(index); - } -} - -void Player::_SetUpdateBits(UpdateMask* updateMask, Player* target) const -{ - if (target == this) - Object::_SetUpdateBits(updateMask, target); - else - { - Object::_SetUpdateBits(updateMask, target); - *updateMask &= updateVisualBits; - } -} - -void Player::InitVisibleBits() -{ - updateVisualBits.SetCount(PLAYER_END); - - updateVisualBits.SetBit(OBJECT_FIELD_GUID); - updateVisualBits.SetBit(OBJECT_FIELD_TYPE); - updateVisualBits.SetBit(OBJECT_FIELD_ENTRY); - updateVisualBits.SetBit(OBJECT_FIELD_SCALE_X); - updateVisualBits.SetBit(UNIT_FIELD_CHARM + 0); - updateVisualBits.SetBit(UNIT_FIELD_CHARM + 1); - updateVisualBits.SetBit(UNIT_FIELD_SUMMON + 0); - updateVisualBits.SetBit(UNIT_FIELD_SUMMON + 1); - updateVisualBits.SetBit(UNIT_FIELD_CHARMEDBY + 0); - updateVisualBits.SetBit(UNIT_FIELD_CHARMEDBY + 1); - updateVisualBits.SetBit(UNIT_FIELD_TARGET + 0); - updateVisualBits.SetBit(UNIT_FIELD_TARGET + 1); - updateVisualBits.SetBit(UNIT_FIELD_CHANNEL_OBJECT + 0); - updateVisualBits.SetBit(UNIT_FIELD_CHANNEL_OBJECT + 1); - updateVisualBits.SetBit(UNIT_FIELD_BYTES_0); - updateVisualBits.SetBit(UNIT_FIELD_HEALTH); - updateVisualBits.SetBit(UNIT_FIELD_POWER1); - updateVisualBits.SetBit(UNIT_FIELD_POWER2); - updateVisualBits.SetBit(UNIT_FIELD_POWER3); - updateVisualBits.SetBit(UNIT_FIELD_POWER4); - updateVisualBits.SetBit(UNIT_FIELD_POWER5); - updateVisualBits.SetBit(UNIT_FIELD_POWER6); - updateVisualBits.SetBit(UNIT_FIELD_POWER7); - updateVisualBits.SetBit(UNIT_FIELD_MAXHEALTH); - updateVisualBits.SetBit(UNIT_FIELD_MAXPOWER1); - updateVisualBits.SetBit(UNIT_FIELD_MAXPOWER2); - updateVisualBits.SetBit(UNIT_FIELD_MAXPOWER3); - updateVisualBits.SetBit(UNIT_FIELD_MAXPOWER4); - updateVisualBits.SetBit(UNIT_FIELD_MAXPOWER5); - updateVisualBits.SetBit(UNIT_FIELD_MAXPOWER6); - updateVisualBits.SetBit(UNIT_FIELD_MAXPOWER7); - updateVisualBits.SetBit(UNIT_FIELD_LEVEL); - updateVisualBits.SetBit(UNIT_FIELD_FACTIONTEMPLATE); - updateVisualBits.SetBit(UNIT_VIRTUAL_ITEM_SLOT_ID + 0); - updateVisualBits.SetBit(UNIT_VIRTUAL_ITEM_SLOT_ID + 1); - updateVisualBits.SetBit(UNIT_VIRTUAL_ITEM_SLOT_ID + 2); - updateVisualBits.SetBit(UNIT_FIELD_FLAGS); - updateVisualBits.SetBit(UNIT_FIELD_FLAGS_2); - updateVisualBits.SetBit(UNIT_FIELD_AURASTATE); - updateVisualBits.SetBit(UNIT_FIELD_BASEATTACKTIME + 0); - updateVisualBits.SetBit(UNIT_FIELD_BASEATTACKTIME + 1); - updateVisualBits.SetBit(UNIT_FIELD_BOUNDINGRADIUS); - updateVisualBits.SetBit(UNIT_FIELD_COMBATREACH); - updateVisualBits.SetBit(UNIT_FIELD_DISPLAYID); - updateVisualBits.SetBit(UNIT_FIELD_NATIVEDISPLAYID); - updateVisualBits.SetBit(UNIT_FIELD_MOUNTDISPLAYID); - updateVisualBits.SetBit(UNIT_FIELD_BYTES_1); - updateVisualBits.SetBit(UNIT_FIELD_PETNUMBER); - updateVisualBits.SetBit(UNIT_FIELD_PET_NAME_TIMESTAMP); - updateVisualBits.SetBit(UNIT_DYNAMIC_FLAGS); - updateVisualBits.SetBit(UNIT_CHANNEL_SPELL); - updateVisualBits.SetBit(UNIT_MOD_CAST_SPEED); - updateVisualBits.SetBit(UNIT_FIELD_BASE_MANA); - updateVisualBits.SetBit(UNIT_FIELD_BYTES_2); - updateVisualBits.SetBit(UNIT_FIELD_HOVERHEIGHT); - - updateVisualBits.SetBit(PLAYER_DUEL_ARBITER + 0); - updateVisualBits.SetBit(PLAYER_DUEL_ARBITER + 1); - updateVisualBits.SetBit(PLAYER_FLAGS); - updateVisualBits.SetBit(PLAYER_GUILDID); - updateVisualBits.SetBit(PLAYER_GUILDRANK); - updateVisualBits.SetBit(PLAYER_BYTES); - updateVisualBits.SetBit(PLAYER_BYTES_2); - updateVisualBits.SetBit(PLAYER_BYTES_3); - updateVisualBits.SetBit(PLAYER_DUEL_TEAM); - updateVisualBits.SetBit(PLAYER_GUILD_TIMESTAMP); - updateVisualBits.SetBit(UNIT_NPC_FLAGS); - - // PLAYER_QUEST_LOG_x also visible bit on official (but only on party/raid)... - for (uint16 i = PLAYER_QUEST_LOG_1_1; i < PLAYER_QUEST_LOG_25_2; i += MAX_QUEST_OFFSET) - updateVisualBits.SetBit(i); - - // Players visible items are not inventory stuff - for (uint8 i = 0; i < EQUIPMENT_SLOT_END; ++i) - { - uint16 offset = i * 2; - - // item entry - updateVisualBits.SetBit(PLAYER_VISIBLE_ITEM_1_ENTRYID + offset); - // enchant - updateVisualBits.SetBit(PLAYER_VISIBLE_ITEM_1_ENCHANTMENT + offset); - } - - updateVisualBits.SetBit(PLAYER_CHOSEN_TITLE); -} - void Player::BuildCreateUpdateBlockForPlayer(UpdateData* data, Player* target) const { for (uint8 i = 0; i < EQUIPMENT_SLOT_END; ++i) @@ -17217,7 +17102,7 @@ bool Player::LoadFromDB(uint32 guid, SQLQueryHolder *holder) SetUInt32Value(UNIT_CHANNEL_SPELL, 0); // clear charm/summon related fields - SetUInt64Value(UNIT_FIELD_SUMMONEDBY, 0); + SetOwnerGUID(0); SetUInt64Value(UNIT_FIELD_CHARMEDBY, 0); SetUInt64Value(UNIT_FIELD_CHARM, 0); SetUInt64Value(UNIT_FIELD_SUMMON, 0); diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h index b1e4e81900d..774e75104b1 100755 --- a/src/server/game/Entities/Player/Player.h +++ b/src/server/game/Entities/Player/Player.h @@ -1069,9 +1069,6 @@ class Player : public Unit, public GridObject<Player> void CleanupsBeforeDelete(bool finalCleanup = true); - static UpdateMask updateVisualBits; - static void InitVisibleBits(); - void AddToWorld(); void RemoveFromWorld(); @@ -2620,9 +2617,6 @@ class Player : public Unit, public GridObject<Player> void _SaveStats(SQLTransaction& trans); void _SaveInstanceTimeRestrictions(SQLTransaction& trans); - void _SetCreateBits(UpdateMask* updateMask, Player* target) const; - void _SetUpdateBits(UpdateMask* updateMask, Player* target) const; - /*********************************************************/ /*** ENVIRONMENTAL SYSTEM ***/ /*********************************************************/ diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 83ed3917235..65857030e80 100755 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -56,6 +56,7 @@ #include "MoveSplineInit.h" #include "MoveSpline.h" #include "ConditionMgr.h" +#include "UpdateFieldFlags.h" #include <math.h> @@ -9658,6 +9659,31 @@ bool Unit::HasAuraState(AuraStateType flag, SpellInfo const* spellProto, Unit co return HasFlag(UNIT_FIELD_AURASTATE, 1<<(flag-1)); } +void Unit::SetOwnerGUID(uint64 owner) +{ + if (GetOwnerGUID() == owner) + return; + + SetUInt64Value(UNIT_FIELD_SUMMONEDBY, owner); + if (!owner) + return; + + // Update owner dependent fields + Player* player = ObjectAccessor::GetPlayer(*this, owner); + if (!player || !player->HaveAtClient(this)) // if player cannot see this unit yet, he will receive needed data with create object + return; + + SetFieldNotifyFlag(UF_FLAG_OWNER); + + UpdateData udata; + WorldPacket packet; + BuildValuesUpdateBlockForPlayer(&udata, player); + udata.BuildPacket(&packet); + player->SendDirectMessage(&packet); + + RemoveFieldNotifyFlag(UF_FLAG_OWNER); +} + Unit* Unit::GetOwner() const { if (uint64 ownerid = GetOwnerGUID()) @@ -9743,12 +9769,14 @@ void Unit::SetMinion(Minion *minion, bool apply) if (apply) { - if (!minion->AddUInt64Value(UNIT_FIELD_SUMMONEDBY, GetGUID())) + if (minion->GetOwnerGUID()) { sLog->outCrash("SetMinion: Minion %u is not the minion of owner %u", minion->GetEntry(), GetEntry()); return; } + minion->SetOwnerGUID(GetGUID()); + m_Controlled.insert(minion); if (GetTypeId() == TYPEID_PLAYER) diff --git a/src/server/game/Entities/Unit/Unit.h b/src/server/game/Entities/Unit/Unit.h index 2855b93b0d7..46dbf4829a6 100755 --- a/src/server/game/Entities/Unit/Unit.h +++ b/src/server/game/Entities/Unit/Unit.h @@ -963,24 +963,6 @@ struct SpellPeriodicAuraLogInfo uint32 createProcExtendMask(SpellNonMeleeDamage* damageInfo, SpellMissInfo missCondition); -enum UnitAnimationState -{ - ANIMATION_ON_GROUND = 0, - ANIMATION_SWIMMING = 1, - ANIMATION_HOVER = 2, - ANIMATION_FLYING = 3, -}; - -struct MonsterMoveData -{ - MonsterMoveData() : SplineFlag(0), AnimationState(ANIMATION_ON_GROUND), Time(0), SpeedZ(0.0f) {} - Position DestLocation; - uint32 SplineFlag; - UnitAnimationState AnimationState; // Only used with SPLINEFLAG_ANIMATIONTIER - uint32 Time; - float SpeedZ; // Only used with SPLINEFLAG_TRAJECTORY -}; - #define MAX_DECLINED_NAME_CASES 5 struct DeclinedName @@ -1656,6 +1638,7 @@ class Unit : public WorldObject virtual void setDeathState(DeathState s); // overwrited in Creature/Player/Pet uint64 GetOwnerGUID() const { return GetUInt64Value(UNIT_FIELD_SUMMONEDBY); } + void SetOwnerGUID(uint64 owner); uint64 GetCreatorGUID() const { return GetUInt64Value(UNIT_FIELD_CREATEDBY); } void SetCreatorGUID(uint64 creator) { SetUInt64Value(UNIT_FIELD_CREATEDBY, creator); } uint64 GetMinionGUID() const { return GetUInt64Value(UNIT_FIELD_SUMMON); } diff --git a/src/server/game/Groups/Group.cpp b/src/server/game/Groups/Group.cpp index f9d609150ef..428f0d25a8b 100755 --- a/src/server/game/Groups/Group.cpp +++ b/src/server/game/Groups/Group.cpp @@ -34,6 +34,7 @@ #include "MapInstanced.h" #include "Util.h" #include "LFGMgr.h" +#include "UpdateFieldFlags.h" Roll::Roll(uint64 _guid, LootItem const& li) : itemGUID(_guid), itemid(li.itemid), itemRandomPropId(li.randomPropertyId), itemRandomSuffix(li.randomSuffix), itemCount(li.count), @@ -437,6 +438,47 @@ bool Group::AddMember(Player* player) if (isRaidGroup()) player->UpdateForQuestWorldObjects(); + { + // Broadcast new player group member fields to rest of the group + player->SetFieldNotifyFlag(UF_FLAG_PARTY_MEMBER); + + UpdateData groupData; + WorldPacket groupDataPacket; + + // Broadcast group members' fields to player + for (GroupReference* itr = GetFirstMember(); itr != NULL; itr = itr->next()) + { + if (itr->getSource() == player) + continue; + + if (Player* member = itr->getSource()) + { + if (player->HaveAtClient(member)) + { + member->SetFieldNotifyFlag(UF_FLAG_PARTY_MEMBER); + member->BuildValuesUpdateBlockForPlayer(&groupData, player); + member->RemoveFieldNotifyFlag(UF_FLAG_PARTY_MEMBER); + } + + if (member->HaveAtClient(player)) + { + UpdateData newData; + WorldPacket newDataPacket; + player->BuildValuesUpdateBlockForPlayer(&newData, member); + member->SendDirectMessage(&newDataPacket); + } + } + } + + if (groupData.HasData()) + { + groupData.BuildPacket(&groupDataPacket); + player->SendDirectMessage(&groupDataPacket); + } + + player->RemoveFieldNotifyFlag(UF_FLAG_PARTY_MEMBER); + } + if (m_maxEnchantingLevel < player->GetSkillValue(SKILL_ENCHANTING)) m_maxEnchantingLevel = player->GetSkillValue(SKILL_ENCHANTING); } diff --git a/src/server/game/Handlers/GroupHandler.cpp b/src/server/game/Handlers/GroupHandler.cpp index 18435263b2e..e6473d0e7d9 100755 --- a/src/server/game/Handlers/GroupHandler.cpp +++ b/src/server/game/Handlers/GroupHandler.cpp @@ -84,7 +84,10 @@ void WorldSession::HandleGroupInviteOpcode(WorldPacket & recv_data) // restrict invite to GMs if (!sWorld->getBoolConfig(CONFIG_ALLOW_GM_GROUP) && !GetPlayer()->isGameMaster() && player->isGameMaster()) + { + SendPartyResult(PARTY_OP_INVITE, membername, ERR_BAD_PLAYER_NAME_S); return; + } // can't group with if (!GetPlayer()->isGameMaster() && !sWorld->getBoolConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_GROUP) && GetPlayer()->GetTeam() != player->GetTeam()) diff --git a/src/server/game/Movement/MotionMaster.cpp b/src/server/game/Movement/MotionMaster.cpp index bc0570bb73b..cde176443f0 100755 --- a/src/server/game/Movement/MotionMaster.cpp +++ b/src/server/game/Movement/MotionMaster.cpp @@ -335,9 +335,17 @@ void MotionMaster::MoveKnockbackFrom(float srcX, float srcY, float speedXY, floa float x, y, z; float moveTimeHalf = speedZ / Movement::gravity; float dist = 2 * moveTimeHalf * speedXY; + float max_height = -Movement::computeFallElevation(moveTimeHalf,false,-speedZ); _owner->GetNearPoint(_owner, x, y, z, _owner->GetObjectSize(), dist, _owner->GetAngle(srcX, srcY) + M_PI); - MoveJump(x, y, z, speedXY, speedZ); + + Movement::MoveSplineInit init(*_owner); + init.MoveTo(x,y,z); + init.SetParabolic(max_height,0); + init.SetOrientationFixed(true); + init.SetVelocity(speedXY); + init.Launch(); + Mutate(new EffectMovementGenerator(0), MOTION_SLOT_CONTROLLED); } void MotionMaster::MoveJumpTo(float angle, float speedXY, float speedZ) diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp index 025ebb7275f..ed8c0324aac 100755 --- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp +++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp @@ -3374,7 +3374,6 @@ void AuraEffect::HandleModStateImmunityMask(AuraApplication const* aurApp, uint8 target->ApplySpellImmune(GetId(), IMMUNITY_MECHANIC, MECHANIC_FREEZE, apply); target->ApplySpellImmune(GetId(), IMMUNITY_MECHANIC, MECHANIC_TURN, apply); aura_immunity_list.push_back(SPELL_AURA_MOD_STUN); - aura_immunity_list.push_back(SPELL_AURA_TRANSFORM); aura_immunity_list.push_back(SPELL_AURA_MOD_DECREASE_SPEED); aura_immunity_list.push_back(SPELL_AURA_MOD_ROOT); aura_immunity_list.push_back(SPELL_AURA_MOD_CONFUSE); @@ -3406,7 +3405,6 @@ void AuraEffect::HandleModStateImmunityMask(AuraApplication const* aurApp, uint8 target->ApplySpellImmune(GetId(), IMMUNITY_MECHANIC, MECHANIC_FREEZE, apply); target->ApplySpellImmune(GetId(), IMMUNITY_MECHANIC, MECHANIC_TURN, apply); aura_immunity_list.push_back(SPELL_AURA_MOD_STUN); - aura_immunity_list.push_back(SPELL_AURA_TRANSFORM); aura_immunity_list.push_back(SPELL_AURA_MOD_DECREASE_SPEED); aura_immunity_list.push_back(SPELL_AURA_MOD_ROOT); aura_immunity_list.push_back(SPELL_AURA_MOD_CONFUSE); @@ -3444,7 +3442,6 @@ void AuraEffect::HandleModStateImmunityMask(AuraApplication const* aurApp, uint8 target->ApplySpellImmune(GetId(), IMMUNITY_MECHANIC, MECHANIC_FREEZE, apply); target->ApplySpellImmune(GetId(), IMMUNITY_MECHANIC, MECHANIC_TURN, apply); aura_immunity_list.push_back(SPELL_AURA_MOD_STUN); - aura_immunity_list.push_back(SPELL_AURA_TRANSFORM); aura_immunity_list.push_back(SPELL_AURA_MOD_DECREASE_SPEED); aura_immunity_list.push_back(SPELL_AURA_MOD_ROOT); aura_immunity_list.push_back(SPELL_AURA_MOD_CONFUSE); @@ -3488,7 +3485,6 @@ void AuraEffect::HandleModStateImmunityMask(AuraApplication const* aurApp, uint8 target->ApplySpellImmune(GetId(), IMMUNITY_MECHANIC, MECHANIC_FREEZE, apply); target->ApplySpellImmune(GetId(), IMMUNITY_MECHANIC, MECHANIC_TURN, apply); aura_immunity_list.push_back(SPELL_AURA_MOD_STUN); - aura_immunity_list.push_back(SPELL_AURA_TRANSFORM); aura_immunity_list.push_back(SPELL_AURA_MOD_DECREASE_SPEED); aura_immunity_list.push_back(SPELL_AURA_MOD_ROOT); aura_immunity_list.push_back(SPELL_AURA_MOD_CONFUSE); @@ -3523,7 +3519,6 @@ void AuraEffect::HandleModStateImmunityMask(AuraApplication const* aurApp, uint8 target->ApplySpellImmune(GetId(), IMMUNITY_EFFECT, SPELL_EFFECT_KNOCK_BACK, apply); target->ApplySpellImmune(GetId(), IMMUNITY_EFFECT, SPELL_EFFECT_KNOCK_BACK_DEST, apply); aura_immunity_list.push_back(SPELL_AURA_MOD_STUN); - aura_immunity_list.push_back(SPELL_AURA_TRANSFORM); aura_immunity_list.push_back(SPELL_AURA_MOD_DECREASE_SPEED); aura_immunity_list.push_back(SPELL_AURA_MOD_ROOT); aura_immunity_list.push_back(SPELL_AURA_MOD_CONFUSE); diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index dd674672935..c2d031a3a01 100755 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -2405,7 +2405,7 @@ void Spell::EffectSummonType(SpellEffIndex effIndex) if (properties->Category == SUMMON_CATEGORY_ALLY) { - summon->SetUInt64Value(UNIT_FIELD_SUMMONEDBY, m_originalCaster->GetGUID()); + summon->SetOwnerGUID(m_originalCaster->GetGUID()); summon->setFaction(m_originalCaster->getFaction()); summon->SetUInt32Value(UNIT_CREATED_BY_SPELL, m_spellInfo->Id); } diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp index 3aee1dc429e..94e42f26dbd 100755 --- a/src/server/game/World/World.cpp +++ b/src/server/game/World/World.cpp @@ -1693,7 +1693,6 @@ void World::SetInitialWorldSettings() ///- Initilize static helper structures AIRegistry::Initialize(); - Player::InitVisibleBits(); ///- Initialize MapManager sLog->outString("Starting Map System"); diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp index a3b8c5df4e7..114bc69741c 100644 --- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp @@ -157,15 +157,19 @@ class boss_garfrost : public CreatureScript void MovementInform(uint32 type, uint32 id) { - if (type != POINT_MOTION_TYPE || id != POINT_FORGE) + if (type != EFFECT_MOTION_TYPE || id != POINT_FORGE) return; if (events.GetPhaseMask() & PHASE_TWO_MASK) + { DoCast(me, SPELL_FORGE_BLADE); + SetEquipmentSlots(false, EQUIP_ID_SWORD); + } if (events.GetPhaseMask() & PHASE_THREE_MASK) { me->RemoveAurasDueToSpell(SPELL_FORGE_BLADE_HELPER); DoCast(me, SPELL_FORGE_MACE); + SetEquipmentSlots(false, EQUIP_ID_MACE); } events.ScheduleEvent(EVENT_RESUME_ATTACK, 5000); } @@ -177,10 +181,6 @@ class boss_garfrost : public CreatureScript if (Aura* aura = target->GetAura(SPELL_PERMAFROST_HELPER)) _permafrostStack = std::max<uint32>(_permafrostStack, aura->GetStackAmount()); } - else if (spell->Id == SPELL_FORGE_BLADE) - SetEquipmentSlots(false, EQUIP_ID_SWORD); - else if (spell->Id == SPELL_FORGE_MACE) - SetEquipmentSlots(false, EQUIP_ID_MACE); } uint32 GetData(uint32 /*type*/) @@ -205,7 +205,7 @@ class boss_garfrost : public CreatureScript case EVENT_THROW_SARONITE: if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0)) { - Talk(SAY_THROW_SARONITE); + Talk(SAY_THROW_SARONITE, target->GetGUID()); DoCast(target, SPELL_THROW_SARONITE); } events.ScheduleEvent(EVENT_THROW_SARONITE, urand(12500, 20000)); @@ -217,7 +217,7 @@ class boss_garfrost : public CreatureScript case EVENT_DEEP_FREEZE: if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0)) { - Talk(SAY_CAST_DEEP_FREEZE); + Talk(SAY_CAST_DEEP_FREEZE, target->GetGUID()); DoCast(target, SPELL_DEEP_FREEZE); } events.ScheduleEvent(EVENT_DEEP_FREEZE, 35000, 0, PHASE_THREE); diff --git a/src/server/scripts/Northrend/icecrown.cpp b/src/server/scripts/Northrend/icecrown.cpp index fb2e0f6c389..85b34523893 100644 --- a/src/server/scripts/Northrend/icecrown.cpp +++ b/src/server/scripts/Northrend/icecrown.cpp @@ -169,8 +169,7 @@ enum eArgentValiant { SPELL_CHARGE = 63010, SPELL_SHIELD_BREAKER = 65147, - - NPC_ARGENT_VALIANT_CREDIT = 24108 + SPELL_KILL_CREDIT = 63049 }; class npc_argent_valiant : public CreatureScript @@ -208,7 +207,7 @@ public: if (uiDamage > me->GetHealth() && pDoneBy->GetTypeId() == TYPEID_PLAYER) { uiDamage = 0; - CAST_PLR(pDoneBy)->KilledMonsterCredit(NPC_ARGENT_VALIANT_CREDIT, 0); + pDoneBy->CastSpell(pDoneBy, SPELL_KILL_CREDIT, true); me->setFaction(35); me->DespawnOrUnsummon(5000); me->SetHomePosition(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), me->GetOrientation()); diff --git a/src/server/scripts/Spells/spell_warlock.cpp b/src/server/scripts/Spells/spell_warlock.cpp index 74118599b9f..9701418e02e 100644 --- a/src/server/scripts/Spells/spell_warlock.cpp +++ b/src/server/scripts/Spells/spell_warlock.cpp @@ -561,9 +561,6 @@ class spell_warl_haunt : public SpellScriptLoader void HandleRemove(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/) { - if (GetTargetApplication()->GetRemoveMode() != AURA_REMOVE_BY_ENEMY_SPELL && GetTargetApplication()->GetRemoveMode() != AURA_REMOVE_BY_EXPIRE) - return; - if (Unit* caster = GetCaster()) { int32 amount = aurEff->GetAmount(); |