[WoW][4.1.0.13914] Info Dump Thread menu

User Tag List

Page 4 of 5 FirstFirst 12345 LastLast
Results 46 to 60 of 68
  1. #46
    kajko's Avatar Member
    Reputation
    4
    Join Date
    Oct 2009
    Posts
    48
    Thanks G/R
    3/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Just got it, thanks

    [WoW][4.1.0.13914] Info Dump Thread
  2. #47
    Tanaris4's Avatar Contributor Authenticator enabled
    Reputation
    148
    Join Date
    Oct 2008
    Posts
    646
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Anyone find eclipse, # of soul shards, or holy power?

    Looks like eclipse may be at +0x116C I haven't fully reversed UnitPower, looks like they overcomplicated the crap out of it:

    [C] int __cdecl CGUnit_C::GetPredictedPower(int baseAddress, int powerType) { in - Pastebin.com
    https://tanaris4.com

  3. #48
    darkhelmet433's Avatar Member
    Reputation
    1
    Join Date
    Jun 2009
    Posts
    3
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Beware of predicted health / power. They are controllable by CVars.. predictHealth and predictPower. Some addons turn those off because they're associated with exposing UI code bugs in the blizzard lua code. Make sure you're not looking at the predicted power work areas.

  4. #49
    EmilyStrange's Avatar Active Member
    Reputation
    34
    Join Date
    Jul 2009
    Posts
    125
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Tanaris4 View Post
    Anyone find eclipse, # of soul shards, or holy power?

    Looks like eclipse may be at +0x116C I haven't fully reversed UnitPower, looks like they overcomplicated the crap out of it:

    [C] int __cdecl CGUnit_C::GetPredictedPower(int baseAddress, int powerType) { in - Pastebin.com
    Holy Power has been moved to POWER2.

    I spent some time last night reversing UnitPower. It checks your character class based off of a table look-up.
    Last edited by EmilyStrange; 04-28-2011 at 09:09 PM. Reason: fixed power descriptor

  5. #50
    JuJuBoSc's Avatar Banned for scamming CoreCoins Purchaser
    Reputation
    1019
    Join Date
    May 2007
    Posts
    922
    Thanks G/R
    1/3
    Trade Feedback
    1 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by EmilyStrange View Post
    Holy Power has been moved to POWER_1.

    I spent some time last night reversing UnitPower. It checks your character class based off of a table look-up.
    Mana is POWER1 too if I remember correctly, how holy power can be used same time ?

  6. #51
    mavrock's Avatar Member
    Reputation
    1
    Join Date
    Sep 2010
    Posts
    11
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Code:
    $CursorType=0x885B28

  7. #52
    EmilyStrange's Avatar Active Member
    Reputation
    34
    Join Date
    Jul 2009
    Posts
    125
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by JuJuBoSc View Post
    Mana is POWER1 too if I remember correctly, how holy power can be used same time ?
    Hmm, I am probably wrong on the POWER1, I wrote that from memory. I'll look in my code and notes tonight when I get home. I figured out what I needed last night.

  8. #53
    Nesox's Avatar ★ Elder ★
    Reputation
    1280
    Join Date
    Mar 2007
    Posts
    1,238
    Thanks G/R
    0/3
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    They changed around the power shizzle some.

    0x1C2330 __ZNK8CGUnit_C11GetMaxPowerE10POWER_TYPE
    Code:
    unsigned int __thiscall CGUnit_C::GetMaxPower(WoWUnit *this, int powerType)
    {
      WoWUnit *v2; // esi@1
      unsigned int result; // eax@2
      int v4; // eax@3
    
      v2 = this;
      if ( powerType == -2 )
      {
        result = this->Contents.UnitInfo->UNIT_FIELD_MAXHEALTH;
      }
      else
      {
        v4 = CGUnit_C::GetPowerIndex(this, powerType);
        if ( v4 == -1 )
          result = 0;
        else
          result = *(&v2->Contents.UnitInfo->UNIT_FIELD_MAXPOWER1 + v4);
      }
      return result;
    }
    0x1C2230 - CGUnit_C::GetPowerIndex
    Code:
    int __thiscall CGUnit_C::GetPowerIndex(WoWUnit *this, int powerType)
    {
      int result; // eax@2
    
      if ( ((unsigned int)LOWORD(this->Contents.Object.ObjectInfo->OBJECT_FIELD_TYPE) >> 4) & 1 )
      {
        result = dword_91CC0C[powerType + 11 * this->Contents.UnitInfo->UNIT_FIELD_BYTES_0[1]];
      }
      else
      {
        if ( powerType == this->Contents.UnitInfo->UNIT_FIELD_BYTES_0[3] )
          result = 0;
        else
          result = 2 * (powerType == 10) - 1;
      }
      return result;
    }

  9. #54
    EmilyStrange's Avatar Active Member
    Reputation
    34
    Join Date
    Jul 2009
    Posts
    125
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by JuJuBoSc View Post
    Mana is POWER1 too if I remember correctly, how holy power can be used same time ?
    Just checked in my code and Holy is POWER2. Not sure why I wrote POWER1 when I posted earlier as I knew that Mana was POWER1. I corrected my previous post so that it does not cause anybody else confusion.

  10. #55
    Arutha532's Avatar Contributor
    Reputation
    227
    Join Date
    Jun 2010
    Posts
    193
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Code:
    	/// <summary>
            ///   The unit's focus.
            /// </summary>
            public int Focus
            {
                get { return GetStorageField<int>((uint)Descriptors.eUnitFields.UNIT_FIELD_POWER1); }
            }
    
            /// <summary>
            ///   The unit's Eclipse power.
            /// </summary>
            public int Eclipse
            {
                get { return GetStorageField<int>((uint)Descriptors.eUnitFields.UNIT_FIELD_POWER4); }
            }
    
            /// <summary>
            ///   The unit's Max Eclipse power.
            /// </summary>
            public int MaximumEclipse
            {
                get { return GetStorageField<int>((uint)Descriptors.eUnitFields.UNIT_FIELD_MAXPOWER4); }
            }
    
            /// <summary>
            ///   The unit's Soul Shards.
            /// </summary>
            public int SoulShard
            {
                get { return GetStorageField<int>((uint)Descriptors.eUnitFields.UNIT_FIELD_POWER2); }
            }
    
            /// <summary>
            ///   The unit's Max Soul Shards.
            /// </summary>
            public int MaximumSoulShard
            {
                get { return GetStorageField<int>((uint)Descriptors.eUnitFields.UNIT_FIELD_MAXPOWER2); }
            }
    
            /// <summary>
            ///   The unit's Holy Power.
            /// </summary>
            public int HolyPower
            {
                get { return GetStorageField<int>((uint)Descriptors.eUnitFields.UNIT_FIELD_POWER2); }
            }
    
            /// <summary>
            ///   The unit's Max Holy Power.
            /// </summary>
            public int MaximumHolyPower
            {
                get { return GetStorageField<int>((uint)Descriptors.eUnitFields.UNIT_FIELD_MAXPOWER2); }
            }

  11. #56
    wraithZX's Avatar Active Member
    Reputation
    43
    Join Date
    May 2007
    Posts
    122
    Thanks G/R
    0/1
    Trade Feedback
    1 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Got bored, so I changed my descriptor dumper program thingy to put out an IDC file for IDA to define all the descriptor structs...

    It LOOKS okay. YMMV.

    Code:
    /*********************************************************
    /**  Information dump for World of Warcraft 4.1.0.13914 **
    /**              Dumper by WraithZX, 2011               **
    /*********************************************************
    #define UNLOADED_FILE   1
    #include <idc.idc>
    
    static main(void) {
    	auto mid;
    	auto id;
    	id = GetStrucIdByName("WGUID");
    	if(id == -1) {
    		id = AddStrucEx(-1,"WGUID",0);
    		mid = AddStrucMember(id,"low",0X0,0x20000400,-1,4);
    		mid = AddStrucMember(id,"high",0X4,0x20000400,-1,4);
    	}
    	ClearCompoundStructures();
    	DefineObjectDescriptorStructure();
    	DefineUnitDescriptorStructure();
    	DefineContainerDescriptorStructure();
    	DefineItemDescriptorStructure();
    	DefinePlayerDescriptorStructure();
    	DefineGameObjectDescriptorStructure();
    	DefineDynamicObjectDescriptorStructure();
    	DefineCorpseDescriptorStructure();
    	DefineCompoundStructures();
    }
    static DefineObjectDescriptorStructure(void) {
    	auto id;
    	auto mid;
    	auto WGUID;
    	WGUID = GetStrucIdByName("WGUID");
    	id = GetStrucIdByName("sObjectFields");
    	if(id != -1) { DelStruc(id); }
    	id = AddStrucEx(-1, "sObjectFields",0);
    	mid = AddStrucMember(id,"OBJECT_FIELD_GUID",-1,0x60000400,WGUID,8);
    	mid = AddStrucMember(id,"OBJECT_FIELD_TYPE",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"OBJECT_FIELD_ENTRY",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"OBJECT_FIELD_SCALE_X",-1,0x80000400,-1,4);
    	mid = AddStrucMember(id,"OBJECT_FIELD_DATA",-1,0x60000400,WGUID,8);
    	mid = AddStrucMember(id,"OBJECT_FIELD_PADDING",-1,0x20000400,-1,4);
    }
    static DefineUnitDescriptorStructure(void) {
    	auto id;
    	auto mid;
    	auto WGUID;
    	WGUID = GetStrucIdByName("WGUID");
    	id = GetStrucIdByName("sUnitFields");
    	if(id != -1) { DelStruc(id); }
    	id = AddStrucEx(-1, "sUnitFields",0);
    	mid = AddStrucMember(id,"UNIT_FIELD_CHARM",-1,0x60000400,WGUID,8);
    	mid = AddStrucMember(id,"UNIT_FIELD_SUMMON",-1,0x60000400,WGUID,8);
    	mid = AddStrucMember(id,"UNIT_FIELD_CRITTER",-1,0x60000400,WGUID,8);
    	mid = AddStrucMember(id,"UNIT_FIELD_CHARMEDBY",-1,0x60000400,WGUID,8);
    	mid = AddStrucMember(id,"UNIT_FIELD_SUMMONEDBY",-1,0x60000400,WGUID,8);
    	mid = AddStrucMember(id,"UNIT_FIELD_CREATEDBY",-1,0x60000400,WGUID,8);
    	mid = AddStrucMember(id,"UNIT_FIELD_TARGET",-1,0x60000400,WGUID,8);
    	mid = AddStrucMember(id,"UNIT_FIELD_CHANNEL_OBJECT",-1,0x60000400,WGUID,8);
    	mid = AddStrucMember(id,"UNIT_CHANNEL_SPELL",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_FIELD_BYTES_0",-1,0x00000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_FIELD_HEALTH",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_FIELD_POWER1",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_FIELD_POWER2",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_FIELD_POWER3",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_FIELD_POWER4",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_FIELD_POWER5",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_FIELD_MAXHEALTH",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_FIELD_MAXPOWER1",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_FIELD_MAXPOWER2",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_FIELD_MAXPOWER3",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_FIELD_MAXPOWER4",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_FIELD_MAXPOWER5",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_FIELD_POWER_REGEN_FLAT_MODIFIER",-1,0x80000400,-1,20);
    	mid = AddStrucMember(id,"UNIT_FIELD_POWER_REGEN_INTERRUPTED_FLAT_MODIFIER",-1,0x80000400,-1,20);
    	mid = AddStrucMember(id,"UNIT_FIELD_LEVEL",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_FIELD_FACTIONTEMPLATE",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_VIRTUAL_ITEM_SLOT_ID",-1,0x20000400,-1,12);
    	mid = AddStrucMember(id,"UNIT_FIELD_FLAGS",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_FIELD_FLAGS_2",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_FIELD_AURASTATE",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_FIELD_BASEATTACKTIME",-1,0x20000400,-1,8);
    	mid = AddStrucMember(id,"UNIT_FIELD_RANGEDATTACKTIME",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_FIELD_BOUNDINGRADIUS",-1,0x80000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_FIELD_COMBATREACH",-1,0x80000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_FIELD_DISPLAYID",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_FIELD_NATIVEDISPLAYID",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_FIELD_MOUNTDISPLAYID",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_FIELD_MINDAMAGE",-1,0x80000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_FIELD_MAXDAMAGE",-1,0x80000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_FIELD_MINOFFHANDDAMAGE",-1,0x80000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_FIELD_MAXOFFHANDDAMAGE",-1,0x80000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_FIELD_BYTES_1",-1,0x00000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_FIELD_PETNUMBER",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_FIELD_PET_NAME_TIMESTAMP",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_FIELD_PETEXPERIENCE",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_FIELD_PETNEXTLEVELEXP",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_DYNAMIC_FLAGS",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_MOD_CAST_SPEED",-1,0x80000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_MOD_CAST_HASTE",-1,0x80000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_CREATED_BY_SPELL",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_NPC_FLAGS",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_NPC_EMOTESTATE",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_FIELD_STAT0",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_FIELD_STAT1",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_FIELD_STAT2",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_FIELD_STAT3",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_FIELD_STAT4",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_FIELD_POSSTAT0",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_FIELD_POSSTAT1",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_FIELD_POSSTAT2",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_FIELD_POSSTAT3",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_FIELD_POSSTAT4",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_FIELD_NEGSTAT0",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_FIELD_NEGSTAT1",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_FIELD_NEGSTAT2",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_FIELD_NEGSTAT3",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_FIELD_NEGSTAT4",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_FIELD_RESISTANCES",-1,0x20000400,-1,28);
    	mid = AddStrucMember(id,"UNIT_FIELD_RESISTANCEBUFFMODSPOSITIVE",-1,0x20000400,-1,28);
    	mid = AddStrucMember(id,"UNIT_FIELD_RESISTANCEBUFFMODSNEGATIVE",-1,0x20000400,-1,28);
    	mid = AddStrucMember(id,"UNIT_FIELD_BASE_MANA",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_FIELD_BASE_HEALTH",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_FIELD_BYTES_2",-1,0x00000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_FIELD_ATTACK_POWER",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_FIELD_ATTACK_POWER_MOD_POS",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_FIELD_ATTACK_POWER_MOD_NEG",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_FIELD_ATTACK_POWER_MULTIPLIER",-1,0x80000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_FIELD_RANGED_ATTACK_POWER",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_FIELD_RANGED_ATTACK_POWER_MOD_POS",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_FIELD_RANGED_ATTACK_POWER_MOD_NEG",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_FIELD_RANGED_ATTACK_POWER_MULTIPLIER",-1,0x80000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_FIELD_MINRANGEDDAMAGE",-1,0x80000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_FIELD_MAXRANGEDDAMAGE",-1,0x80000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_FIELD_POWER_COST_MODIFIER",-1,0x20000400,-1,28);
    	mid = AddStrucMember(id,"UNIT_FIELD_POWER_COST_MULTIPLIER",-1,0x80000400,-1,28);
    	mid = AddStrucMember(id,"UNIT_FIELD_MAXHEALTHMODIFIER",-1,0x80000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_FIELD_HOVERHEIGHT",-1,0x80000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_FIELD_MAXITEMLEVEL",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"UNIT_FIELD_PADDING",-1,0x20000400,-1,4);
    }
    static DefineContainerDescriptorStructure(void) {
    	auto id;
    	auto mid;
    	auto WGUID;
    	WGUID = GetStrucIdByName("WGUID");
    	id = GetStrucIdByName("sContainerFields");
    	if(id != -1) { DelStruc(id); }
    	id = AddStrucEx(-1, "sContainerFields",0);
    	mid = AddStrucMember(id,"CONTAINER_FIELD_NUM_SLOTS",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"CONTAINER_ALIGN_PAD",-1,0x00000400,-1,4);
    	mid = AddStrucMember(id,"CONTAINER_FIELD_SLOT_1",-1,0x60000400,WGUID,288);
    }
    static DefineItemDescriptorStructure(void) {
    	auto id;
    	auto mid;
    	auto WGUID;
    	WGUID = GetStrucIdByName("WGUID");
    	id = GetStrucIdByName("sItemFields");
    	if(id != -1) { DelStruc(id); }
    	id = AddStrucEx(-1, "sItemFields",0);
    	mid = AddStrucMember(id,"ITEM_FIELD_OWNER",-1,0x60000400,WGUID,8);
    	mid = AddStrucMember(id,"ITEM_FIELD_CONTAINED",-1,0x60000400,WGUID,8);
    	mid = AddStrucMember(id,"ITEM_FIELD_CREATOR",-1,0x60000400,WGUID,8);
    	mid = AddStrucMember(id,"ITEM_FIELD_GIFTCREATOR",-1,0x60000400,WGUID,8);
    	mid = AddStrucMember(id,"ITEM_FIELD_STACK_COUNT",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"ITEM_FIELD_DURATION",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"ITEM_FIELD_SPELL_CHARGES",-1,0x20000400,-1,20);
    	mid = AddStrucMember(id,"ITEM_FIELD_FLAGS",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"ITEM_FIELD_ENCHANTMENT_1_1",-1,0x20000400,-1,8);
    	mid = AddStrucMember(id,"ITEM_FIELD_ENCHANTMENT_1_3",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"ITEM_FIELD_ENCHANTMENT_2_1",-1,0x20000400,-1,8);
    	mid = AddStrucMember(id,"ITEM_FIELD_ENCHANTMENT_2_3",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"ITEM_FIELD_ENCHANTMENT_3_1",-1,0x20000400,-1,8);
    	mid = AddStrucMember(id,"ITEM_FIELD_ENCHANTMENT_3_3",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"ITEM_FIELD_ENCHANTMENT_4_1",-1,0x20000400,-1,8);
    	mid = AddStrucMember(id,"ITEM_FIELD_ENCHANTMENT_4_3",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"ITEM_FIELD_ENCHANTMENT_5_1",-1,0x20000400,-1,8);
    	mid = AddStrucMember(id,"ITEM_FIELD_ENCHANTMENT_5_3",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"ITEM_FIELD_ENCHANTMENT_6_1",-1,0x20000400,-1,8);
    	mid = AddStrucMember(id,"ITEM_FIELD_ENCHANTMENT_6_3",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"ITEM_FIELD_ENCHANTMENT_7_1",-1,0x20000400,-1,8);
    	mid = AddStrucMember(id,"ITEM_FIELD_ENCHANTMENT_7_3",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"ITEM_FIELD_ENCHANTMENT_8_1",-1,0x20000400,-1,8);
    	mid = AddStrucMember(id,"ITEM_FIELD_ENCHANTMENT_8_3",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"ITEM_FIELD_ENCHANTMENT_9_1",-1,0x20000400,-1,8);
    	mid = AddStrucMember(id,"ITEM_FIELD_ENCHANTMENT_9_3",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"ITEM_FIELD_ENCHANTMENT_10_1",-1,0x20000400,-1,8);
    	mid = AddStrucMember(id,"ITEM_FIELD_ENCHANTMENT_10_3",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"ITEM_FIELD_ENCHANTMENT_11_1",-1,0x20000400,-1,8);
    	mid = AddStrucMember(id,"ITEM_FIELD_ENCHANTMENT_11_3",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"ITEM_FIELD_ENCHANTMENT_12_1",-1,0x20000400,-1,8);
    	mid = AddStrucMember(id,"ITEM_FIELD_ENCHANTMENT_12_3",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"ITEM_FIELD_ENCHANTMENT_13_1",-1,0x20000400,-1,8);
    	mid = AddStrucMember(id,"ITEM_FIELD_ENCHANTMENT_13_3",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"ITEM_FIELD_ENCHANTMENT_14_1",-1,0x20000400,-1,8);
    	mid = AddStrucMember(id,"ITEM_FIELD_ENCHANTMENT_14_3",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"ITEM_FIELD_PROPERTY_SEED",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"ITEM_FIELD_RANDOM_PROPERTIES_ID",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"ITEM_FIELD_DURABILITY",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"ITEM_FIELD_MAXDURABILITY",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"ITEM_FIELD_CREATE_PLAYED_TIME",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"ITEM_FIELD_PAD",-1,0x20000400,-1,4);
    }
    static DefinePlayerDescriptorStructure(void) {
    	auto id;
    	auto mid;
    	auto WGUID;
    	WGUID = GetStrucIdByName("WGUID");
    	id = GetStrucIdByName("sPlayerFields");
    	if(id != -1) { DelStruc(id); }
    	id = AddStrucEx(-1, "sPlayerFields",0);
    	mid = AddStrucMember(id,"PLAYER_DUEL_ARBITER",-1,0x60000400,WGUID,8);
    	mid = AddStrucMember(id,"PLAYER_FLAGS",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_GUILDRANK",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_GUILDDELETE_DATE",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_GUILDLEVEL",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_BYTES",-1,0x00000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_BYTES_2",-1,0x00000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_BYTES_3",-1,0x00000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_DUEL_TEAM",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_GUILD_TIMESTAMP",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_1_1",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_1_2",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_1_3",-1,0x20000400,-1,8);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_1_4",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_2_1",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_2_2",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_2_3",-1,0x20000400,-1,8);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_2_5",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_3_1",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_3_2",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_3_3",-1,0x20000400,-1,8);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_3_5",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_4_1",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_4_2",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_4_3",-1,0x20000400,-1,8);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_4_5",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_5_1",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_5_2",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_5_3",-1,0x20000400,-1,8);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_5_5",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_6_1",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_6_2",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_6_3",-1,0x20000400,-1,8);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_6_5",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_7_1",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_7_2",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_7_3",-1,0x20000400,-1,8);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_7_5",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_8_1",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_8_2",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_8_3",-1,0x20000400,-1,8);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_8_5",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_9_1",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_9_2",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_9_3",-1,0x20000400,-1,8);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_9_5",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_10_1",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_10_2",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_10_3",-1,0x20000400,-1,8);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_10_5",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_11_1",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_11_2",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_11_3",-1,0x20000400,-1,8);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_11_5",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_12_1",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_12_2",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_12_3",-1,0x20000400,-1,8);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_12_5",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_13_1",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_13_2",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_13_3",-1,0x20000400,-1,8);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_13_5",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_14_1",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_14_2",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_14_3",-1,0x20000400,-1,8);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_14_5",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_15_1",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_15_2",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_15_3",-1,0x20000400,-1,8);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_15_5",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_16_1",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_16_2",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_16_3",-1,0x20000400,-1,8);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_16_5",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_17_1",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_17_2",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_17_3",-1,0x20000400,-1,8);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_17_5",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_18_1",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_18_2",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_18_3",-1,0x20000400,-1,8);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_18_5",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_19_1",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_19_2",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_19_3",-1,0x20000400,-1,8);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_19_5",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_20_1",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_20_2",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_20_3",-1,0x20000400,-1,8);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_20_5",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_21_1",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_21_2",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_21_3",-1,0x20000400,-1,8);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_21_5",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_22_1",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_22_2",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_22_3",-1,0x20000400,-1,8);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_22_5",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_23_1",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_23_2",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_23_3",-1,0x20000400,-1,8);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_23_5",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_24_1",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_24_2",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_24_3",-1,0x20000400,-1,8);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_24_5",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_25_1",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_25_2",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_25_3",-1,0x20000400,-1,8);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_25_5",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_26_1",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_26_2",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_26_3",-1,0x20000400,-1,8);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_26_5",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_27_1",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_27_2",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_27_3",-1,0x20000400,-1,8);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_27_5",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_28_1",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_28_2",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_28_3",-1,0x20000400,-1,8);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_28_5",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_29_1",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_29_2",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_29_3",-1,0x20000400,-1,8);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_29_5",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_30_1",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_30_2",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_30_3",-1,0x20000400,-1,8);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_30_5",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_31_1",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_31_2",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_31_3",-1,0x20000400,-1,8);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_31_5",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_32_1",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_32_2",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_32_3",-1,0x20000400,-1,8);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_32_5",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_33_1",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_33_2",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_33_3",-1,0x20000400,-1,8);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_33_5",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_34_1",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_34_2",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_34_3",-1,0x20000400,-1,8);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_34_5",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_35_1",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_35_2",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_35_3",-1,0x20000400,-1,8);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_35_5",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_36_1",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_36_2",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_36_3",-1,0x20000400,-1,8);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_36_5",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_37_1",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_37_2",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_37_3",-1,0x20000400,-1,8);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_37_5",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_38_1",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_38_2",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_38_3",-1,0x20000400,-1,8);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_38_5",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_39_1",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_39_2",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_39_3",-1,0x20000400,-1,8);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_39_5",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_40_1",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_40_2",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_40_3",-1,0x20000400,-1,8);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_40_5",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_41_1",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_41_2",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_41_3",-1,0x20000400,-1,8);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_41_5",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_42_1",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_42_2",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_42_3",-1,0x20000400,-1,8);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_42_5",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_43_1",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_43_2",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_43_3",-1,0x20000400,-1,8);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_43_5",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_44_1",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_44_2",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_44_3",-1,0x20000400,-1,8);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_44_5",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_45_1",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_45_2",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_45_3",-1,0x20000400,-1,8);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_45_5",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_46_1",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_46_2",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_46_3",-1,0x20000400,-1,8);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_46_5",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_47_1",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_47_2",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_47_3",-1,0x20000400,-1,8);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_47_5",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_48_1",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_48_2",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_48_3",-1,0x20000400,-1,8);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_48_5",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_49_1",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_49_2",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_49_3",-1,0x20000400,-1,8);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_49_5",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_50_1",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_50_2",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_50_3",-1,0x20000400,-1,8);
    	mid = AddStrucMember(id,"PLAYER_QUEST_LOG_50_5",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_VISIBLE_ITEM_1_ENTRYID",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_VISIBLE_ITEM_1_ENCHANTMENT",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_VISIBLE_ITEM_2_ENTRYID",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_VISIBLE_ITEM_2_ENCHANTMENT",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_VISIBLE_ITEM_3_ENTRYID",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_VISIBLE_ITEM_3_ENCHANTMENT",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_VISIBLE_ITEM_4_ENTRYID",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_VISIBLE_ITEM_4_ENCHANTMENT",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_VISIBLE_ITEM_5_ENTRYID",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_VISIBLE_ITEM_5_ENCHANTMENT",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_VISIBLE_ITEM_6_ENTRYID",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_VISIBLE_ITEM_6_ENCHANTMENT",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_VISIBLE_ITEM_7_ENTRYID",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_VISIBLE_ITEM_7_ENCHANTMENT",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_VISIBLE_ITEM_8_ENTRYID",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_VISIBLE_ITEM_8_ENCHANTMENT",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_VISIBLE_ITEM_9_ENTRYID",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_VISIBLE_ITEM_9_ENCHANTMENT",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_VISIBLE_ITEM_10_ENTRYID",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_VISIBLE_ITEM_10_ENCHANTMENT",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_VISIBLE_ITEM_11_ENTRYID",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_VISIBLE_ITEM_11_ENCHANTMENT",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_VISIBLE_ITEM_12_ENTRYID",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_VISIBLE_ITEM_12_ENCHANTMENT",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_VISIBLE_ITEM_13_ENTRYID",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_VISIBLE_ITEM_13_ENCHANTMENT",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_VISIBLE_ITEM_14_ENTRYID",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_VISIBLE_ITEM_14_ENCHANTMENT",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_VISIBLE_ITEM_15_ENTRYID",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_VISIBLE_ITEM_15_ENCHANTMENT",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_VISIBLE_ITEM_16_ENTRYID",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_VISIBLE_ITEM_16_ENCHANTMENT",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_VISIBLE_ITEM_17_ENTRYID",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_VISIBLE_ITEM_17_ENCHANTMENT",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_VISIBLE_ITEM_18_ENTRYID",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_VISIBLE_ITEM_18_ENCHANTMENT",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_VISIBLE_ITEM_19_ENTRYID",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_VISIBLE_ITEM_19_ENCHANTMENT",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_CHOSEN_TITLE",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_FAKE_INEBRIATION",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_FIELD_PAD_0",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_FIELD_INV_SLOT_HEAD",-1,0x60000400,WGUID,184);
    	mid = AddStrucMember(id,"PLAYER_FIELD_PACK_SLOT_1",-1,0x60000400,WGUID,128);
    	mid = AddStrucMember(id,"PLAYER_FIELD_BANK_SLOT_1",-1,0x60000400,WGUID,224);
    	mid = AddStrucMember(id,"PLAYER_FIELD_BANKBAG_SLOT_1",-1,0x60000400,WGUID,56);
    	mid = AddStrucMember(id,"PLAYER_FIELD_VENDORBUYBACK_SLOT_1",-1,0x60000400,WGUID,96);
    	mid = AddStrucMember(id,"PLAYER_FIELD_KEYRING_SLOT_1",-1,0x60000400,WGUID,256);
    	mid = AddStrucMember(id,"PLAYER_FARSIGHT",-1,0x60000400,WGUID,8);
    	mid = AddStrucMember(id,"PLAYER__FIELD_KNOWN_TITLES",-1,0x60000400,WGUID,8);
    	mid = AddStrucMember(id,"PLAYER__FIELD_KNOWN_TITLES1",-1,0x60000400,WGUID,8);
    	mid = AddStrucMember(id,"PLAYER__FIELD_KNOWN_TITLES2",-1,0x60000400,WGUID,8);
    	mid = AddStrucMember(id,"PLAYER_XP",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_NEXT_LEVEL_XP",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_SKILL_INFO_1_1",-1,0x20000400,-1,1536);
    	mid = AddStrucMember(id,"PLAYER_CHARACTER_POINTS",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_TRACK_CREATURES",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_TRACK_RESOURCES",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_BLOCK_PERCENTAGE",-1,0x80000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_DODGE_PERCENTAGE",-1,0x80000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_PARRY_PERCENTAGE",-1,0x80000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_EXPERTISE",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_OFFHAND_EXPERTISE",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_CRIT_PERCENTAGE",-1,0x80000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_RANGED_CRIT_PERCENTAGE",-1,0x80000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_OFFHAND_CRIT_PERCENTAGE",-1,0x80000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_SPELL_CRIT_PERCENTAGE1",-1,0x80000400,-1,28);
    	mid = AddStrucMember(id,"PLAYER_SHIELD_BLOCK",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_SHIELD_BLOCK_CRIT_PERCENTAGE",-1,0x80000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_MASTERY",-1,0x80000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_EXPLORED_ZONES_1",-1,0x00000400,-1,576);
    	mid = AddStrucMember(id,"PLAYER_REST_STATE_EXPERIENCE",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_FIELD_COINAGE",-1,0x60000400,WGUID,8);
    	mid = AddStrucMember(id,"PLAYER_FIELD_MOD_DAMAGE_DONE_POS",-1,0x20000400,-1,28);
    	mid = AddStrucMember(id,"PLAYER_FIELD_MOD_DAMAGE_DONE_NEG",-1,0x20000400,-1,28);
    	mid = AddStrucMember(id,"PLAYER_FIELD_MOD_DAMAGE_DONE_PCT",-1,0x20000400,-1,28);
    	mid = AddStrucMember(id,"PLAYER_FIELD_MOD_HEALING_DONE_POS",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_FIELD_MOD_HEALING_PCT",-1,0x80000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_FIELD_MOD_HEALING_DONE_PCT",-1,0x80000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_FIELD_MOD_SPELL_POWER_PCT",-1,0x80000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_FIELD_MOD_TARGET_RESISTANCE",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_FIELD_MOD_TARGET_PHYSICAL_RESISTANCE",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_FIELD_BYTES",-1,0x00000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_SELF_RES_SPELL",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_FIELD_PVP_MEDALS",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_FIELD_BUYBACK_PRICE_1",-1,0x20000400,-1,48);
    	mid = AddStrucMember(id,"PLAYER_FIELD_BUYBACK_TIMESTAMP_1",-1,0x20000400,-1,48);
    	mid = AddStrucMember(id,"PLAYER_FIELD_KILLS",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_FIELD_LIFETIME_HONORBALE_KILLS",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_FIELD_BYTES2",-1,0x00000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_FIELD_WATCHED_FACTION_INDEX",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_FIELD_COMBAT_RATING_1",-1,0x20000400,-1,104);
    	mid = AddStrucMember(id,"PLAYER_FIELD_ARENA_TEAM_INFO_1_1",-1,0x20000400,-1,84);
    	mid = AddStrucMember(id,"PLAYER_FIELD_BATTLEGROUND_RATING",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_FIELD_MAX_LEVEL",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_FIELD_DAILY_QUESTS_1",-1,0x20000400,-1,100);
    	mid = AddStrucMember(id,"PLAYER_RUNE_REGEN_1",-1,0x80000400,-1,16);
    	mid = AddStrucMember(id,"PLAYER_NO_REAGENT_COST_1",-1,0x20000400,-1,12);
    	mid = AddStrucMember(id,"PLAYER_FIELD_GLYPH_SLOTS_1",-1,0x20000400,-1,36);
    	mid = AddStrucMember(id,"PLAYER_FIELD_GLYPHS_1",-1,0x20000400,-1,36);
    	mid = AddStrucMember(id,"PLAYER_GLYPHS_ENABLED",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_PET_SPELL_POWER",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_FIELD_RESEARCHING_1",-1,0x20000400,-1,32);
    	mid = AddStrucMember(id,"PLAYER_FIELD_RESERACH_SITE_1",-1,0x20000400,-1,32);
    	mid = AddStrucMember(id,"PLAYER_PROFESSION_SKILL_LINE_1",-1,0x20000400,-1,8);
    	mid = AddStrucMember(id,"PLAYER_FIELD_UI_HIT_MODIFIER",-1,0x80000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_FIELD_UI_SPELL_HIT_MODIFIER",-1,0x80000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_FIELD_HOME_REALM_TIME_OFFSET",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_FIELD_MOD_HASTE",-1,0x80000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_FIELD_MOD_RANGED_HASTE",-1,0x80000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_FIELD_MOD_PET_HASTE",-1,0x80000400,-1,4);
    	mid = AddStrucMember(id,"PLAYER_FIELD_MOD_HASTE_REGEN",-1,0x80000400,-1,4);
    }
    static DefineGameObjectDescriptorStructure(void) {
    	auto id;
    	auto mid;
    	auto WGUID;
    	WGUID = GetStrucIdByName("WGUID");
    	id = GetStrucIdByName("sGameObjectFields");
    	if(id != -1) { DelStruc(id); }
    	id = AddStrucEx(-1, "sGameObjectFields",0);
    	mid = AddStrucMember(id,"GAMEOBJECT_DISPLAYID",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"GAMEOBJECT_FLAGS",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"GAMEOBJECT_PARENTROTATION",-1,0x80000400,-1,16);
    	mid = AddStrucMember(id,"GAMEOBJECT_DYNAMIC",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"GAMEOBJECT_FACTION",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"GAMEOBJECT_LEVEL",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"GAMEOBJECT_BYTES_1",-1,0x00000400,-1,4);
    }
    static DefineDynamicObjectDescriptorStructure(void) {
    	auto id;
    	auto mid;
    	auto WGUID;
    	WGUID = GetStrucIdByName("WGUID");
    	id = GetStrucIdByName("sDynamicObjectFields");
    	if(id != -1) { DelStruc(id); }
    	id = AddStrucEx(-1, "sDynamicObjectFields",0);
    	mid = AddStrucMember(id,"DYNAMICOBJECT_CASTER",-1,0x60000400,WGUID,8);
    	mid = AddStrucMember(id,"DYNAMICOBJECT_BYTES",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"DYNAMICOBJECT_SPELLID",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"DYNAMICOBJECT_RADIUS",-1,0x80000400,-1,4);
    	mid = AddStrucMember(id,"DYNAMICOBJECT_CASTTIME",-1,0x20000400,-1,4);
    }
    static DefineCorpseDescriptorStructure(void) {
    	auto id;
    	auto mid;
    	auto WGUID;
    	WGUID = GetStrucIdByName("WGUID");
    	id = GetStrucIdByName("sCorpseFields");
    	if(id != -1) { DelStruc(id); }
    	id = AddStrucEx(-1, "sCorpseFields",0);
    	mid = AddStrucMember(id,"CORPSE_FIELD_OWNER",-1,0x60000400,WGUID,8);
    	mid = AddStrucMember(id,"CORPSE_FIELD_PARTY",-1,0x60000400,WGUID,8);
    	mid = AddStrucMember(id,"CORPSE_FIELD_DISPLAY_ID",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"CORPSE_FIELD_ITEM",-1,0x20000400,-1,76);
    	mid = AddStrucMember(id,"CORPSE_FIELD_BYTES_1",-1,0x00000400,-1,4);
    	mid = AddStrucMember(id,"CORPSE_FIELD_BYTES_2",-1,0x00000400,-1,4);
    	mid = AddStrucMember(id,"CORPSE_FIELD_FLAGS",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"CORPSE_FIELD_DYNAMIC_FLAGS",-1,0x20000400,-1,4);
    }
    static ClearCompoundStructures(void) {
    	auto id;
    	id = GetStrucIdByName("CGObject_C");
    	if(id != -1) { DelStruc(id); }
    	id = GetStrucIdByName("sDescriptorUnionStruct");
    	if(id != -1) { DelStruc(id); }
    	id = GetStrucIdByName("sObjectFieldStruct");
    	if(id != -1) { DelStruc(id); }
    	id = GetStrucIdByName("sUnitFieldStruct");
    	if(id != -1) { DelStruc(id); }
    	id = GetStrucIdByName("sPlayerFieldStruct");
    	if(id != -1) { DelStruc(id); }
    	id = GetStrucIdByName("sGameObjectFieldStruct");
    	if(id != -1) { DelStruc(id); }
    	id = GetStrucIdByName("sDynamicObjectFieldStruct");
    	if(id != -1) { DelStruc(id); }
    	id = GetStrucIdByName("sItemFieldStruct");
    	if(id != -1) { DelStruc(id); }
    	id = GetStrucIdByName("sContainerFieldStruct");
    	if(id != -1) { DelStruc(id); }
    	id = GetStrucIdByName("sCorpseFieldStruct");
    	if(id != -1) { DelStruc(id); }
    }
    static DefineCompoundStructures(void) {
    	auto mid;
    	auto id;
    	auto id2;
    	auto sObjectFields;
    	auto sUnitFields;
    	auto sContainerFields;
    	auto sItemFields;
    	auto sPlayerFields;
    	auto sGameObjectFields;
    	auto sDynamicObjectFields;
    	auto sCorpseFields;
    	sObjectFields = GetStrucIdByName("sObjectFields");
    	sUnitFields = GetStrucIdByName("sUnitFields");
    	sContainerFields = GetStrucIdByName("sContainerFields");
    	sItemFields = GetStrucIdByName("sItemFields");
    	sPlayerFields = GetStrucIdByName("sPlayerFields");
    	sGameObjectFields = GetStrucIdByName("sGameObjectFields");
    	sDynamicObjectFields = GetStrucIdByName("sDynamicObjectFields");
    	sCorpseFields = GetStrucIdByName("sCorpseFields");
    	id = AddStrucEx(-1, "sObjectFieldStruct",0);
    	mid = AddStrucMember(id,"ObjectFields",-1,0x60000400,sObjectFields,GetStrucSize(sObjectFields));
    	id = AddStrucEx(-1, "sUnitFieldStruct",0);
    	mid = AddStrucMember(id,"ObjectFields",-1,0x60000400,sObjectFields,GetStrucSize(sObjectFields));
    	mid = AddStrucMember(id,"UnitFields",-1,0x60000400,sUnitFields,GetStrucSize(sUnitFields));
    	id = AddStrucEx(-1, "sPlayerFieldStruct",0);
    	mid = AddStrucMember(id,"ObjectFields",-1,0x60000400,sObjectFields,GetStrucSize(sObjectFields));
    	mid = AddStrucMember(id,"UnitFields",-1,0x60000400,sUnitFields,GetStrucSize(sUnitFields));
    	mid = AddStrucMember(id,"PlayerFields",-1,0x60000400,sPlayerFields,GetStrucSize(sPlayerFields));
    	id = AddStrucEx(-1, "sGameObjectFieldStruct",0);
    	mid = AddStrucMember(id,"ObjectFields",-1,0x60000400,sObjectFields,GetStrucSize(sObjectFields));
    	mid = AddStrucMember(id,"GameObjectFields",-1,0x60000400,sGameObjectFields,GetStrucSize(sGameObjectFields));
    	id = AddStrucEx(-1, "sDynamicObjectFieldStruct",0);
    	mid = AddStrucMember(id,"ObjectFields",-1,0x60000400,sObjectFields,GetStrucSize(sObjectFields));
    	mid = AddStrucMember(id,"DynamicObjectFields",-1,0x60000400,sDynamicObjectFields,GetStrucSize(sDynamicObjectFields));
    	id = AddStrucEx(-1, "sItemFieldStruct",0);
    	mid = AddStrucMember(id,"ObjectFields",-1,0x60000400,sObjectFields,GetStrucSize(sObjectFields));
    	mid = AddStrucMember(id,"ItemFields",-1,0x60000400,sItemFields,GetStrucSize(sItemFields));
    	id = AddStrucEx(-1, "sContainerFieldStruct",0);
    	mid = AddStrucMember(id,"ObjectFields",-1,0x60000400,sObjectFields,GetStrucSize(sObjectFields));
    	mid = AddStrucMember(id,"ContainerFields",-1,0x60000400,sContainerFields,GetStrucSize(sContainerFields));
    	id = AddStrucEx(-1, "sCorpseFieldStruct",0);
    	mid = AddStrucMember(id,"ObjectFields",-1,0x60000400,sObjectFields,GetStrucSize(sObjectFields));
    	mid = AddStrucMember(id,"CorpseFields",-1,0x60000400,sCorpseFields,GetStrucSize(sCorpseFields));
    	id = AddStrucEx(-1,"CGObject_C",0);
    	mid = AddStrucMember(id,"vtable",-1,0x20000400,-1,4);
    	mid = AddStrucMember(id,"unk0",4,0x00000400,-1,4);
    	mid = AddStrucMember(id,"ObjectFields",8,0x25500400,-1,4,-1,0,2);
    	mid = AddStrucMember(id,"unk1",12,0x00000400,-1,236);
    	mid = AddStrucMember(id,"UnitFields",248,0x25500400,-1,4,-1,0,2);
    	mid = AddStrucMember(id,"unk2",252,0x00000400,-1,4452);
    	mid = AddStrucMember(id,"PlayerFields",4704,0x25500400,-1,4,-1,0,2);
    }

  12. #57
    kajko's Avatar Member
    Reputation
    4
    Join Date
    Oct 2009
    Posts
    48
    Thanks G/R
    3/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    hello,

    I have problem finding


    enum UnitRelation
    {
    FACTION_START_INDEX = ...,
    FACTION_POINTER = ...,
    FACTION_TOTAL = ...,
    HOSTILE_OFFSET_1 = ...,
    HOSTILE_OFFSET_2 = ...,
    FRIENDLY_OFFSET_1 = ...,
    FRIENDLY_OFFSET_2 = ...,
    };

    values. Any1 had any luck with those ?

    ...and on the side note...
    did you noticed that names for npcs are not always retrieved, i am getting empty string for some and correct name for others...
    Last edited by kajko; 04-30-2011 at 06:32 PM.

  13. #58
    Arutha532's Avatar Contributor
    Reputation
    227
    Join Date
    Jun 2010
    Posts
    193
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Code:
    internal enum Reaction : uint
            {
                FactionStartIndex = 0x8DEA1C,
                FactionPointer = 0x8DEA28,
                FactionTotal = 0x8DEA18,
                HostileOffset1 = 0x14,
                HostileOffset2 = 0x0C,
                FriendlyOffset1 = 0x10,
                FriendlyOffset2 = 0x0C,
            }

  14. #59
    TOM_RUS's Avatar Legendary
    Reputation
    914
    Join Date
    May 2008
    Posts
    699
    Thanks G/R
    0/52
    Trade Feedback
    0 (0%)
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Arutha532 View Post
    Code:
    internal enum Reaction : uint
            {
                FactionStartIndex = 0x8DEA1C,
                FactionPointer = 0x8DEA28,
                FactionTotal = 0x8DEA18,
                HostileOffset1 = 0x14,
                HostileOffset2 = 0x0C,
                FriendlyOffset1 = 0x10,
                FriendlyOffset2 = 0x0C,
            }
    Just FYI: you can replace those offsets with single one if you will use structs:

    Example on how to handle DBC in C#

    Code:
    g_FactionTemplateDB = 0x00CDEA10; // not rebased
    
    DBC struct (same for all DBC files):
    struct WoWClientDB
    {
      void *funcTable;
      int numRows;
      int maxIndex; // your FactionTotal (shoudn't you use numRows instead?)
      int minIndex; // your FactionStartIndex
      void *stringTable;
      void *FirstRow;
      void *Rows; // your FactionPointer
    };
    
    Row struct:
    struct FactionTemplateRec // sizeof(0x38)
    {
        DWORD m_ID; // +0x0, size 0x4, type 0
        DWORD m_faction; // +0x4, size 0x4, type 0
        DWORD m_flags; // +0x8, size 0x4, type 0
        DWORD m_factionGroup; // +0xC, size 0x4, type 0 // your HostileOffset2 and FriendlyOffset2
        DWORD m_friendGroup; // +0x10, size 0x4, type 0 // your FriendlyOffset1
        DWORD m_enemyGroup; // +0x14, size 0x4, type 0 // your HostileOffset1
        DWORD m_enemies[4]; // +0x18, size 0x10, type 0
        DWORD m_friend[4]; // +0x28, size 0x10, type 0
    };
    Last edited by TOM_RUS; 05-02-2011 at 01:41 AM.

  15. #60
    jojojoey12's Avatar Member
    Reputation
    1
    Join Date
    Apr 2008
    Posts
    19
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Anyone already found new Descriptors for the UNITS, i know that the powers changed, but havn't found any other change in this Descriptor yet!.

Page 4 of 5 FirstFirst 12345 LastLast

Similar Threads

  1. [WoW][3.3.5.12340] Info Dump Thread
    By Nesox in forum WoW Memory Editing
    Replies: 102
    Last Post: 1 Week Ago, 12:44 PM
  2. [WoW][4.0.3.13329] Info Dump Thread
    By TOM_RUS in forum WoW Memory Editing
    Replies: 73
    Last Post: 02-06-2011, 06:37 AM
  3. [WoW][4.0.1.13164] Info Dump Thread
    By Seifer in forum WoW Memory Editing
    Replies: 29
    Last Post: 01-18-2011, 09:14 AM
  4. [WoW][4.0.1.13205] Info Dump Thread
    By DrGonzo in forum WoW Memory Editing
    Replies: 12
    Last Post: 11-11-2010, 02:34 PM
  5. [WoW][3.3.3.11723] Info Dump Thread
    By miceiken in forum WoW Memory Editing
    Replies: 2
    Last Post: 03-27-2010, 04:42 PM
All times are GMT -5. The time now is 03:29 PM. Powered by vBulletin® Version 4.2.3
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Google Authenticator verification provided by Two-Factor Authentication (Free) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search