[WoW] 1.12.1.5875 Info Dump Thread menu

User Tag List

Page 14 of 41 FirstFirst ... 101112131415161718 ... LastLast
Results 196 to 210 of 614
  1. #196
    miceiken's Avatar Contributor Authenticator enabled
    Reputation
    208
    Join Date
    Dec 2007
    Posts
    401
    Thanks G/R
    7/8
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by lumpy.123 View Post
    Or does someone know a function to get the cache entry by the item entry?
    I believe it's already been posted here.

    Code:
    0055BA30     DbItemCache_GetInfoBlockByID
    00C0E2A0     CACHE_ITEM
    I haven't verified the entire item cache struct, but I believe it's something like this:
    Code:
        [StructLayout(LayoutKind.Sequential)]
        public unsafe struct ItemCacheRecord
        {
            //public uint ItemId;
            public ItemClass Class; // id from ItemClass.dbc
            public uint SubClass; // id from ItemSubClass.dbc
            [MarshalAs(UnmanagedType.ByValArray, ArraySubType = UnmanagedType.LPStr, SizeConst = 4)]
            public string[] Name;
            public uint DisplayInfoID; // id from ItemDisplayInfo.dbc
            public ItemQuality Quality;
            public ItemFlags Flags;
            //public uint BuyCount;
            public uint BuyPrice;
            public uint SellPrice;
            public InventoryType InventoryType;
            public uint AllowableClass;
            public uint AllowableRace;
            public uint ItemLevel;
            public uint RequiredLevel;
            public uint RequiredSkill; // id from SkillLine.dbc
            public uint RequiredSkillRank;
            public uint RequiredSpell; // id from Spell.dbc
            public uint RequiredHonorRank;
            public uint RequiredCityRank;
            public uint RequiredReputationFaction; // id from Faction.dbc
            public uint RequiredReputationRank;
            public uint MaxCount;
            public uint Stackable;
            public uint ContainerSlots;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 10)]
            public _ItemStat[] ItemStat;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 5)]
            public _Damage[] Damage;
            public uint Armor;
            public uint HolyRes;
            public uint FireRes;
            public uint NatureRes;
            public uint FrostRes;
            public uint ShadowRes;
            public uint ArcaneRes;
            public uint Delay;
            public uint AmmoType;
            public float RangedModRange;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 5)]
            public _Spell[] Spells;
            public ItemBondType Bonding;
            [MarshalAs(UnmanagedType.LPStr)]
            public string Description;
            public uint PageText;
            public uint LanguageID;
            public uint PageMaterial;
            public uint StartQuest; // id from QuestCache.wdb
            public uint LockID;
            public uint Material; // id from Material.dbc
            public uint Sheath;
            public uint RandomProperty; // id from ItemRandomProperties.dbc
            public uint Block;
            public uint ItemSet; // id from ItemSet.dbc
            public uint MaxDurability;
            public uint Area; // id from AreaTable.dbc
            public uint Map; // id from Map.dbc
            public BagFamily BagFamily;
            public uint ScriptId;
            public uint DisenchantId;
            public uint FoodType;
            public uint MinMoneyLoot;
            public uint MaxMoneyLoot;
            public uint Duration;
            public uint ExtraFlags;
    
            #region Sub-structs
    
            [StructLayout(LayoutKind.Sequential)]
            public struct _Damage
            {
                public float DamageMin;
                public float DamageMax;
                public uint DamageType; // id from Resistances.dbc
            };
    
            [StructLayout(LayoutKind.Sequential)]
            public struct _ItemStat
            {
                public uint ItemStatType;
                public int ItemStatValue;
            };
    
            [StructLayout(LayoutKind.Sequential)]
            public struct _Spell
            {
                public uint SpellId; // id from Spell.dbc
                public uint SpellTrigger;
                public int SpellCharges;
                //public float SpellPPMRate;
                public int SpellCooldown;
                public uint SpellCategory; // id from SpellCategory.dbc
                public int SpellCategoryCooldown;
            };
    
            [StructLayout(LayoutKind.Sequential)]
            public struct _Socket
            {
                public uint Color;
                public uint Content;
            };
       };

    [WoW] 1.12.1.5875 Info Dump Thread
  2. #197
    Corthezz's Avatar Elite User Authenticator enabled
    Reputation
    386
    Join Date
    Nov 2011
    Posts
    325
    Thanks G/R
    183/98
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Hey, I managed to read spell names and other properties by its ID from the dbc (IDs from 0xB700F0). Right now I get the DBC row manually by itterating through the memory until I find my ID however I am wondering if there is also a function which I can pass my ID to obtain the row.
    I made a simple xref for the DBC pointer and could find about 20 calls taking it as parameter. I will report back here once I know more.

    Did anyone succeed obtaining cooldowns using iSpellCooldownPtr = 0xCECAEC and SpellCooldownOffset = 0xCECAF4 provided by Sacred?
    Just a little guess here:
    0xB700F0 holding the ID of the first spell in players spellbook. Adding up 0x4 will hold the next spell ID and so on.
    0xCECAEC => Somehow related to first spell in spellbook
    0xCECAEC + (0x8*X) => X representing the index in the spellbook.

    However I fail to see how those numbers have anything in common with spell cooldowns. Does anyone else know any reliable way to get the remaining cooldown of a spell before I can cast it again? Right now I am using a mix of DoString and GetText paired with some Lua function however this solution is pretty ugly.
    Check my blog: https://zzuks.blogspot.com

  3. #198
    miceiken's Avatar Contributor Authenticator enabled
    Reputation
    208
    Join Date
    Dec 2007
    Posts
    401
    Thanks G/R
    7/8
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    You should read the thread There's a dump of all dbcs somewhere as well.
    Originally Posted by Sacred View Post
    ...
    Get pointer to DBC row:
    Code:
    public static uint ClientDB__GetRow(uint dbcPointer, uint row)
    {
        uint maxIndex = Memory.Read<uint>(dbcPointer + 0xC);
        uint minIndex = Memory.Read<uint>(dbcPointer + 0x10);
        uint result;
        if (row > maxIndex || row < minIndex)
        {
            result = 0;
        }
        else
        {
            result = Memory.Read<uint>((Memory.Read<uint>(DbcPointer + 0x8) + (4* row)));
        }
        return result;
    }
    I'll update the post with more info once I get home
    Last edited by miceiken; 04-23-2015 at 12:08 PM.

  4. #199
    Corthezz's Avatar Elite User Authenticator enabled
    Reputation
    386
    Join Date
    Nov 2011
    Posts
    325
    Thanks G/R
    183/98
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by miceiken View Post
    You should read the thread There's a dump of all dbcs somewhere as well.
    Thanks for pointing out the obvious. Missed it somehow
    However for items I got a function returning the pointer to the struct by item id. Was wondering if there was something equal for the spells.

    What I do right now is just reading the DBC pointer and adding up 0x2B4 (size of one entry) to get to the next entry.

    Some random offset:
    0xB4B3E4 - IsPlayerInCc (or whatever you want to call it)
    Last edited by Corthezz; 04-23-2015 at 12:13 PM.
    Check my blog: https://zzuks.blogspot.com

  5. #200
    miceiken's Avatar Contributor Authenticator enabled
    Reputation
    208
    Join Date
    Dec 2007
    Posts
    401
    Thanks G/R
    7/8
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Corthezz View Post
    Thanks for pointing out the obvious. Missed it somehow
    However for items I got a function returning the pointer to the struct by item id. Was wondering if there was something equal for the spells.

    What I do right now is just reading the DBC pointer and adding up 0x2B4 (size of one entry) to get to the next entry.

    Some random offset:
    0xB4B3E4 - IsPlayerInCc (or whatever you want to call it)
    I'm gonna guess the function you use for items returns the item cache record pointer, not DBC. There is no cache for spell, just DBC. you can use the dbc function from above to get the Spell DBC pointer (spell id is the index).

  6. #201
    namreeb's Avatar Legendary

    Reputation
    658
    Join Date
    Sep 2008
    Posts
    1,023
    Thanks G/R
    7/215
    Trade Feedback
    0 (0%)
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)
    If you're going to depend on the data from the item WDB cache file, it is worth mentioning that you will have to be able to deal with the scenario of the item you're interested in not being present there. In this case, you would have to query the item information from the server.

  7. #202
    Corthezz's Avatar Elite User Authenticator enabled
    Reputation
    386
    Join Date
    Nov 2011
    Posts
    325
    Thanks G/R
    183/98
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    GetSpellCooldown at 0x006E13E0
    Check my blog: https://zzuks.blogspot.com

  8. #203
    Corthezz's Avatar Elite User Authenticator enabled
    Reputation
    386
    Join Date
    Nov 2011
    Posts
    325
    Thanks G/R
    183/98
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Currently on the task of finding a way to check if Autoattack & Shoot (Wand) is active.
    Right now my method requires Autoattack & Shoot to be on the action bars Since I am calling an underlying function of API IsAutoRepeatAction - Vanilla WoW Wiki.
    GetSpellCooldown sadly returns no information which is useable in this case.

    Any other idea how to accomplish that? I have a few more ideas which I will try when I am at home later.
    Last edited by Corthezz; 04-25-2015 at 07:47 AM.
    Check my blog: https://zzuks.blogspot.com

  9. #204
    Jadd's Avatar 🐸 Premium Seller
    Reputation
    1511
    Join Date
    May 2008
    Posts
    2,432
    Thanks G/R
    81/333
    Trade Feedback
    1 (100%)
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Corthezz View Post
    Currently on the task of finding a way to check if Autoattack & Shoot (Wand) is active.
    Right now my method requires Autoattack & Shoot to be on the action bars Since I am calling an underlying function of API IsAutoRepeatAction - Vanilla WoW Wiki.
    GetSpellCooldown sadly returns no information which is useable in this case.

    Any other idea how to accomplish that? I have a few more ideas which I will try when I am at home later.
    006E9FD0 Spell_C_GetAutoRepeatingSpell

    Code:
    int Spell_C_GetAutoRepeatingSpell()
    {
      return s_autoRepeatingSpell;                  // dword_CEAC30
    }

  10. #205
    stoneharry's Avatar Moderator Harry

    Authenticator enabled
    Reputation
    1613
    Join Date
    Sep 2007
    Posts
    4,554
    Thanks G/R
    150/146
    Trade Feedback
    0 (0%)
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Jadd View Post
    Never been on this server, but I'm curious to know if they load Warden or a custom module. Props to them if they do. I bet teleporting and such is still totally possible though.


    At least one server does, I think.

  11. #206
    DarkLinux's Avatar Former Staff
    CoreCoins Purchaser Authenticator enabled
    Reputation
    1584
    Join Date
    May 2010
    Posts
    1,824
    Thanks G/R
    188/531
    Trade Feedback
    16 (100%)
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)
    Code:
    DWORD getRace(){
    	return (this->unitFields->UNIT_FIELD_BYTES_0  & 0xFF);
    }
    
    __int32 UNIT_FIELD_BYTES_0; //0x0090

  12. #207
    prospectingemu's Avatar Member
    Reputation
    15
    Join Date
    Mar 2014
    Posts
    49
    Thanks G/R
    0/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Anyone know if it's possible to get the buff duration without lua? In the object manager buffs/debuffs seem to just have their ID and no other information.

    Trying to re-create this (sorry for the formatting, was a single string)
    Code:
    function getBuffDurationFromTexture(name) 
    GetSpellForBot = name 
    timeleft = -1 
    for i=0,31 do 
               local id,cancel = GetPlayerBuff(i,'HELPFUL|HARMFUL|PASSIVE')
                        if(name == GetPlayerBuffTexture(id)) then
                                     timeleft = GetPlayerBuffTimeLeft(id) DEFAULT_CHAT_FRAME:AddMessage(timeleft) 
                       return timeleft 
                 end 
     end return 
    timeleft 
    end
    I want to refresh SnD when there is 2 or less seconds left on the duration, and also see the buff durations on party members without having to target them or use Lua/GetText (which is what I have to do currently).

  13. #208
    mikeymike's Avatar Active Member
    Reputation
    66
    Join Date
    Jan 2008
    Posts
    99
    Thanks G/R
    2/14
    Trade Feedback
    1 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    deleted fixed
    Last edited by mikeymike; 05-12-2015 at 09:33 PM.

  14. #209
    namreeb's Avatar Legendary

    Reputation
    658
    Join Date
    Sep 2008
    Posts
    1,023
    Thanks G/R
    7/215
    Trade Feedback
    0 (0%)
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by prospectingemu View Post
    Anyone know if it's possible to get the buff duration without lua? In the object manager buffs/debuffs seem to just have their ID and no other information.

    Trying to re-create this (sorry for the formatting, was a single string)
    Code:
    function getBuffDurationFromTexture(name) 
    GetSpellForBot = name 
    timeleft = -1 
    for i=0,31 do 
               local id,cancel = GetPlayerBuff(i,'HELPFUL|HARMFUL|PASSIVE')
                        if(name == GetPlayerBuffTexture(id)) then
                                     timeleft = GetPlayerBuffTimeLeft(id) DEFAULT_CHAT_FRAME:AddMessage(timeleft) 
                       return timeleft 
                 end 
     end return 
    timeleft 
    end
    I want to refresh SnD when there is 2 or less seconds left on the duration, and also see the buff durations on party members without having to target them or use Lua/GetText (which is what I have to do currently).
    For this kind of thing, you should just look at how the lua function does it. Script::GetPlayerBuffTimeLeft is at 0x4E48B0 in the Windows 1.12.1 client according to this same thread. Here is the output of that function from my IDB file:

    Code:
    int __thiscall Script::GetPlayerBuffTimeLeft(void *this)
    {
      void *luaState; // esi@1
      double v2; // st7@3
      char *v3; // eax@3
      signed int result; // eax@4
    
      luaState = this;
      if ( !lua_isnumber(this, 1) )
        luaL_error(luaState, "Usage: GetPlayerBuffTimeLeft(buffIndex)");
      v2 = lua_tonumber();
      v3 = CGBuffBar::GetBuffByIndex((signed __int64)v2);
      if ( v3 )
      {
        lua_pushnumber((int)luaState, COERCE_UNSIGNED_INT64((double)(unsigned __int8)v3[9]));
        result = 1;
      }
      else
      {
        lua_pushnumber((int)luaState, 0x3FF0000000000000ui64);
        result = 1;
      }
      return result;
    }
    Edit: CGBuffBar::GetBuffByIndex is located at 0x4E4430, by the way.

    Originally Posted by mikeymike View Post
    I have a question about hooking the Endscene, is the code for hooking it the same for every version? After its hooked is it always hooked until bot any other program using it closes? Or do I have to call the hook on every LuaDoString? My issue is I have luadostring working but my client likes to crash a lot and not 100% sure how to hook the Endscene, also is hooking different for windows 7 than windows 8 and 8.1 and so on? Thanks for any help someone might be able to give
    This is not the right thread to ask such a question, in my opinion.

  15. #210
    mikeymike's Avatar Active Member
    Reputation
    66
    Join Date
    Jan 2008
    Posts
    99
    Thanks G/R
    2/14
    Trade Feedback
    1 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    i was wondering if anyone could help me, for some reason when i first login to the game and attach my bot when CTM is called character just keeps running (passes up his loc) unless after the bot is started i right click somewhere on the terrain, how might i fix this issue?

Page 14 of 41 FirstFirst ... 101112131415161718 ... LastLast

Similar Threads

  1. [WoW][3.3.5.12340] Info Dump Thread
    By Nesox in forum WoW Memory Editing
    Replies: 83
    Last Post: 04-28-2018, 03:32 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 05:34 AM. Powered by vBulletin® Version 4.2.3
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2024 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search