Spell Missile info. menu

User Tag List

Results 1 to 12 of 12
  1. #1
    highvoltz's Avatar Active Member
    Reputation
    47
    Join Date
    Dec 2009
    Posts
    29
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Spell Missile info.

    Hi
    This c# source shows how to get details for all missile/projectiles currently in flight such as a fireballs or arrows. The source contains info such as caster, target, location, start location and impact location. It is written for Honorbuddy but can be ported easily.
    Code:
     /// <summary>
            /// Returns the spell missiles.
            /// </summary>
            /// <returns></returns>
            public static IEnumerable<MissileInfo> GetMissiles()
            {
               // pointer taken from Wow 5.0.5.16048
                var missilePtr = StyxWoW.Memory.Read<IntPtr>((IntPtr)0xC2A448, true);
                while (missilePtr != IntPtr.Zero)
                {
                    yield return new MissileInfo(missilePtr);
                    missilePtr = StyxWoW.Memory.Read<IntPtr>(missilePtr + 392);
                }
            }
    
           #region Nested type: MissileInfo
    
            public class MissileInfo
            {
                public MissileInfo(IntPtr baseAddress)
                {
                    _internalMissileInfo = StyxWoW.Memory.Read<InternalMissileInfo>(baseAddress);
                }
                
                public uint Index {  get { return _internalMissileInfo.Index; } }
                public WoWUnit Caster { get { return ObjectManager.GetObjectByGuid<WoWUnit>(_internalMissileInfo.CasterGuid); } }
                public ulong CasterGuid { get { return _internalMissileInfo.CasterGuid; } }
    
                public WoWUnit Target { get { return ObjectManager.GetObjectByGuid<WoWUnit>(_internalMissileInfo.TargetGuid); } }
                public ulong TargetGuid { get { return _internalMissileInfo.TargetGuid; } }
    
                public WoWSpell Spell { get { return WoWSpell.FromId(_internalMissileInfo.SpellId); } }
                public int SpellId { get { return _internalMissileInfo.SpellId; } }
    
                public WoWPoint Pos { get { return _internalMissileInfo.Pos; } }
    
                public WoWPoint FirePos { get { return _internalMissileInfo.FirePos; } }
    
                public WoWPoint ImpactPos { get { return _internalMissileInfo.ImpactPos; } }
    
                private InternalMissileInfo _internalMissileInfo;
    
                [StructLayout(LayoutKind.Sequential)]
                private struct InternalMissileInfo // allot of fields left out.
                {
                    public readonly uint Index;
                    private readonly uint _dword4;
                    public readonly ulong CasterGuid; // +0x8
                    public readonly ulong CasterGuid2; // +0x10
                    public readonly ulong TargetGuid; // +0x18
                    private readonly uint dword20;
                    private readonly uint dword24;
                    private readonly uint dword28;
                    public readonly int SpellId; // +0x2C
                    private readonly uint _dword30;
                    private readonly uint _dword34;
                    private readonly uint dword38;
                    private readonly uint _dword3C;
                    private readonly uint _dword40;
                    public readonly WoWPoint Pos; // + 0x44
                    public readonly WoWPoint FirePos; // + 0x50
                    public readonly WoWPoint ImpactPos; // + 0x5C
                }
            }
    Last edited by highvoltz; 10-30-2012 at 02:58 PM.

    Spell Missile info.
  2. #2
    Frosttall's Avatar Active Member
    Reputation
    64
    Join Date
    Feb 2011
    Posts
    261
    Thanks G/R
    16/3
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Thank you, +rep

    Could you explain what you've reversed for that?

  3. #3
    highvoltz's Avatar Active Member
    Reputation
    47
    Join Date
    Dec 2009
    Posts
    29
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Frosttall View Post
    Thank you, +rep

    Could you explain what you've reversed for that?
    I work on a dungeon bot (Dungeonbuddy for Honorbuddy) and I needed a way to avoid getting hit by some boss abilities
    Last edited by highvoltz; 10-29-2012 at 06:33 PM.

  4. #4
    demonguy's Avatar Member
    Reputation
    2
    Join Date
    Feb 2012
    Posts
    111
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    + rep
    Quite good resource...
    i have another question... Is "targetingArea" also a misiile? for example, one of the daily quest of Golden Lotus, you're requied to slaid 3 Black Drogon, which will cast spell "Lightning Pool", before it hits you , there is a black circle on where you stand.. i mean is this circle a part of the misiile? how to get its model file name and position?

    And if convenience, would mind explain how to find this stuff? A brief summary is lovely enough
    Last edited by demonguy; 10-30-2012 at 02:46 AM.

  5. #5
    Frosttall's Avatar Active Member
    Reputation
    64
    Join Date
    Feb 2011
    Posts
    261
    Thanks G/R
    16/3
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by highvoltz View Post
    I work on a dungeon bot (Dungeonbuddy for Honorbuddy) and I needed a way to avoid getting hit by some boss abilities
    Thank you, but I actually meant which functions you have reversed.

    Its my goal to understand it and not just copy&paste the things.

    Sent from my GT-I9100 using Tapatalk 2

  6. #6
    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 Frosttall View Post
    Thank you, but I actually meant which functions you have reversed.

    Its my goal to understand it and not just copy&paste the things.

    Sent from my GT-I9100 using Tapatalk 2
    I think that's from CMissile::FireMissiles @ 0x00857820
    Last edited by TOM_RUS; 10-30-2012 at 11:31 AM.

  7. #7
    highvoltz's Avatar Active Member
    Reputation
    47
    Join Date
    Dec 2009
    Posts
    29
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by demonguy View Post
    + rep
    Quite good resource...
    i have another question... Is "targetingArea" also a misiile? for example, one of the daily quest of Golden Lotus, you're requied to slaid 3 Black Drogon, which will cast spell "Lightning Pool", before it hits you , there is a black circle on where you stand.. i mean is this circle a part of the misiile? how to get its model file name and position?

    And if convenience, would mind explain how to find this stuff? A brief summary is lovely enough
    This ability is very likely a missile that is targeting the ground. All missiles targeting the ground have TargetGuid set to 0, you can get the target location from ImpactPos.

    The model info is likely stored in same struct, I just never bother looking for it. The struct size is 392 bytes, I only looked at a small portion of it and briefly. I found the pointer by reversing one of the Missile: functions, don't recall exactly which one it was.

    Also big props to Tom_Rus, your ida pro db has helped me tremendously

  8. #8
    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 highvoltz View Post
    The struct size is 392 bytes
    The size seems to be bigger than that. Something around 484 bytes: CMissile::CMissile constructor @ 0x00855A50, struct
    Last edited by TOM_RUS; 10-30-2012 at 11:37 AM.

  9. #9
    highvoltz's Avatar Active Member
    Reputation
    47
    Join Date
    Dec 2009
    Posts
    29
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by TOM_RUS View Post
    The size seems to be bigger than that. Something around 484 bytes: CMissile::CMissile constructor @ 0x00855A50, struct
    Yeah that's right, not sure what I was thinking when I posted that. Pointer to next struct is at +392 ( 0x188 ). I see you had been busy, thanks for sharing .
    Last edited by highvoltz; 10-30-2012 at 02:41 PM.

  10. #10
    demonguy's Avatar Member
    Reputation
    2
    Join Date
    Feb 2012
    Posts
    111
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Ring of Frost, one of mage's spells, there is a targetArea while casting (it's not a object , i'm sure, i mean the one which appears while casting, not when casting finished), but there is no missiles at all...

  11. #11
    demonguy's Avatar Member
    Reputation
    2
    Join Date
    Feb 2012
    Posts
    111
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    0x34 is SpellVisualID which links to spellVisual.dbc

  12. #12
    Brandows's Avatar Banned
    Reputation
    1
    Join Date
    Dec 2012
    Posts
    5
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    So what exactly does this code benefits if i may ask ? :O

Similar Threads

  1. Spell info reading from DBC
    By guizmows in forum WoW Memory Editing
    Replies: 4
    Last Post: 06-01-2011, 04:17 PM
  2. [3.1.3] [Info] Getting Spell Cooldowns
    By Oowafas in forum WoW Memory Editing
    Replies: 37
    Last Post: 02-20-2011, 05:56 AM
  3. [REQUEST]Warlock spells(read for more info.)
    By In00b in forum WoW ME Questions and Requests
    Replies: 0
    Last Post: 03-09-2008, 02:51 PM
  4. How to chain 2+ spells into a macro
    By Matt in forum World of Warcraft Exploits
    Replies: 22
    Last Post: 07-03-2007, 12:33 AM
  5. Spell damage add reduction?
    By hannible in forum World of Warcraft General
    Replies: 5
    Last Post: 03-21-2006, 11:49 PM
All times are GMT -5. The time now is 05:07 AM. 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