And again spell Cooldowns question menu

User Tag List

Page 2 of 2 FirstFirst 12
Results 16 to 21 of 21
  1. #16
    Sacred's Avatar Contributor
    Reputation
    207
    Join Date
    Dec 2007
    Posts
    152
    Thanks G/R
    3/9
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Just because i have a good mood today.

    For current patch 4.3.3.15354
    Code:
    public enum Offsets
    {
         Timestamp = 0x9BEE94,
         SpellCooldownOffset = 0xACB92C,
    }
    For upcoming patch 4.3.4.15595
    Code:
    public enum Offsets
    {
         Timestamp = 0x9C0C7C,
         SpellCooldownOffset = 0xACD71C,
    }

    This code will return cooldown in ms for given spellid.
    Code:
            public static int GetSpellCooldownLeftById(int spellId)
            {
                var dictionary = new Dictionary<int, int>();
                for (var i = Memory.BlackMagic.ReadUInt(Memory.WowBaseAddress + (uint)Offsets.SpellCooldownOffset); (i != 0) && ((i & 1) == 0); i = Memory.BlackMagic.ReadUInt(i + 4))
                {
                    if (Memory.BlackMagic.ReadInt(i + 0x8) != spellId) continue;
                    var key = Memory.BlackMagic.ReadInt(i + 0x10);
                    var num4 = Memory.BlackMagic.ReadInt(i + 0x14);
                    var num5 = Memory.BlackMagic.ReadInt(i + 0x20);
                    var value = Math.Max(num4, num5);
                    if ((value > 0) && !dictionary.ContainsKey(key))
                    {
                        dictionary.Add(key, value);
                    }
                    else if (dictionary.ContainsKey(key) && (dictionary[key] < value))
                    {
                        dictionary[key] = value;
                    }
                }
                if (dictionary.Count == 0)
                {
                    return 0;
                }
                var num7 = 0;
                var num8 = 0;
                var timestamp = Memory.BlackMagic.ReadInt(Memory.WowBaseAddress + (uint)Offsets.Timestamp);
                foreach (var pair in dictionary.Where(pair => pair.Key > num7))
                {
                    num7 = pair.Key;
                    num8 = Math.Max(pair.Value - (timestamp - num7), 0);
                }
                return num8;
            }

    And again spell Cooldowns question
  2. #17
    HexNeo's Avatar Member
    Reputation
    1
    Join Date
    Oct 2008
    Posts
    14
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    thnx will try (by offsets) to understand how you got them, because that is most interesting part of getting offsets.

  3. #18
    hb123220's Avatar Member
    Reputation
    8
    Join Date
    Mar 2012
    Posts
    41
    Thanks G/R
    3/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    For upcoming patch 4.3.4.15595
    Code:
    public enum Offsets
    {
         Timestamp = 0x9C0C7C,
         SpellCooldownOffset = 0xACD71C,
    }
    i find that in IDA
    Code:
    push    0
    push    ecx
    lea     ecx, [eax+eax*2]
    lea     ecx, dword_ECD714[ecx*8]
    call    SpellHistory__GetCooldown
    pop     ebp
    retn
    Spell_C_GetSpellCooldown endp
    0xECD714+8=0xECD71C.............Rebased:0xACD71C
    is that how "SpellCooldownOffset = 0xACD71C" from????and how to find "Timestamp = 0x9C0C7C" in IDA???
    can someone help??

  4. #19
    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)
    Just do some XREF to see where it's used

    btw : Timestamp = 0x009C0C7C, // 4.3.4 15595

  5. #20
    hb123220's Avatar Member
    Reputation
    8
    Join Date
    Mar 2012
    Posts
    41
    Thanks G/R
    3/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by JuJuBoSc View Post
    Just do some XREF to see where it's used

    btw : Timestamp = 0x009C0C7C, // 4.3.4 15595
    thx,,another question....I find "0xEC7498"in IDA,, seems it do the same thing as the LuaFunction:GetTime();
    so what's the difference between FrameTime__GetCurTimeMs and Timestamp???
    Code:
    FrameTime__GetCurTimeMs proc near
    mov     eax, dword_EC7498
    retn
    FrameTime__GetCurTimeMs endp

  6. #21
    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)
    You can use this one too, they both contain result of GetTickCount/QueryPerformanceCounter

Page 2 of 2 FirstFirst 12

Similar Threads

  1. Need Help - Spell Cooldown and Out of Process Targeting
    By Evansbee in forum WoW Memory Editing
    Replies: 6
    Last Post: 07-11-2015, 04:37 PM
  2. Spell cooldowns and Spell.dbc edititng
    By RYUchan in forum WoW EMU Questions & Requests
    Replies: 1
    Last Post: 06-11-2009, 11:53 AM
  3. [Question]Swapping Sounds and finding spell sounds
    By Akgis in forum WoW ME Questions and Requests
    Replies: 1
    Last Post: 05-23-2009, 09:15 PM
  4. Mobs and their spells , got a question!
    By Arugos in forum World of Warcraft Emulator Servers
    Replies: 7
    Last Post: 12-27-2007, 01:06 AM
  5. Rogue Spell Pack 2.0 Mutilate fixed and more spells added!!!
    By l0ksley in forum World of Warcraft Model Editing
    Replies: 9
    Last Post: 06-12-2007, 01:36 PM
All times are GMT -5. The time now is 03:12 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