Silly Power! menu

Shout-Out

User Tag List

Thread: Silly Power!

Results 1 to 8 of 8
  1. #1
    Sillyboy72's Avatar Member
    Reputation
    13
    Join Date
    Jan 2009
    Posts
    66
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Silly Power!

    Just wanted to drop a shout out to everyone who helped me taking my first steps into wow hackery!

    So far I dumping all the objects around me (guid, type, position) and for type == 4 (players), I also dump name and current/max hitpoints.

    Clearly not exciting, but good to get the first stuff working and nice to be past goofy stuff like, setting SE_DEBUG_NAME permissions and working with the freaky lookup tables of linked lists for the names (no, I am not in process Cypher.. shut it ).

    My actual goal is the accurately know when the bobber is bobbin' for my fishbot. It's a screen scraper that works great for me, but I am detecting the splash by "did the average color around the bobber move towards white", which is super ghetto and non-accurate.

    Anyway, shout out to:
    • Cypher: for being all... Cyphery. (though, I will be damned if I could find the name cache pointer in your sticky thread )
    • Shynd: for the player name stuff
    • clown_wizard... oops, I mean cloud_wizard: for posting his busted up code for pulling names... so I could steal the tiny bits that work

    Question:
    I see that players are type 4... I am sure I missed it, but I didn't see a list of what the other types are?

    I assume my bobber is gonna show in the list, but I haven't gotten that far yet The something about animation status going for 0 to 1...

    Silly Power!
  2. #2
    arigity's Avatar Banned
    Reputation
    49
    Join Date
    Dec 2007
    Posts
    548
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Item = 1
    container = 2
    unit = 3
    player = 4
    game_object = 5
    dynamic_object = 6
    corpse = 7

  3. #3
    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)
    Originally Posted by Sillyboy72 View Post
    Just wanted to drop a
    I assume my bobber is gonna show in the list, but I haven't gotten that far yet The something about animation status going for 0 to 1...
    Code:
    ReadByte(_fishing.BobberBase + 216);
    you read a byte from the base of the bobber + 216 (decimal) to get the animation state.
    if you want to find it you could iterate the object list and look for a type 5 object that is created by you, and/or has displayid 668 but u dont need to do that. 'i think its 668'

  4. #4
    Sillyboy72's Avatar Member
    Reputation
    13
    Join Date
    Jan 2009
    Posts
    66
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Rockin, thanks guys.

    So... I have a loop cruisin' through my objects. And added this:
    Code:
    		if (type == 5)
    		{
    			DWORD ITEM_FIELD_OWNER = 0x6;
    			DWORD ITEM_FIELD_CREATOR = 0xA;
    			
    			ULONG UnitInfo = ReadDword(Current + 0x08);
    			ULONGLONG Owner = ReadDword(UnitInfo + ITEM_FIELD_OWNER * 4);
    			ULONGLONG Creator = ReadDword(UnitInfo + ITEM_FIELD_CREATOR * 4);
    			printf("\tOwner: %I64x  Creator: %I64x\n", Owner, Creator);
    		}
    which is really similar to my code to grab current/max hitpoints. It seems to work, in as much as my player guid is showing up as the owner for my bobber. (w00t!). However... I fear I got lucky, and don't actually know what I am doing

    What I am calling UnitInfo... should that be named something else?

    I am having a hard time understanding the relationship between the "type"... and the layout of memory. Like, It would appear that all objects in the list have a their guid at 0x30... but I assume other offsets vary by type? Or is ObjectBase+0x08 always a pointer to data that is specific to each type?

    I realize that
    [07:14:50]: UNIT_FIELD_HEALTH = 0x17
    is an offset (times 4 bytes) from UnitInfo (which I got at via [ObjectsBase+0x08]), but if I look at other offsets from Cypher's sticky... say...

    [07:14:51]: ITEM_FIELD_CREATOR = 0xA
    that offset is from.. what?

    Thanks. And sorry for my n00bness
    -Silly

  5. #5
    Sillyboy72's Avatar Member
    Reputation
    13
    Join Date
    Jan 2009
    Posts
    66
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Nesox View Post
    Code:
    ReadByte(_fishing.BobberBase + 216);
    you read a byte from the base of the bobber + 216 (decimal) to get the animation state.
    if you want to find it you could iterate the object list and look for a type 5 object that is created by you, and/or has displayid 668 but u dont need to do that. 'i think its 668'
    Ddduuuuudddde! That totally worked

    Watching the value changes from 0 to 1 while the bobber was splashing gave untold joy to my heart. Rock on brother.

  6. #6
    Shynd's Avatar Contributor
    Reputation
    97
    Join Date
    May 2008
    Posts
    393
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Sillyboy72 View Post
    Rockin, thanks guys.

    So... I have a loop cruisin' through my objects. And added this:
    Code:
    		if (type == 5)
    		{
    			DWORD ITEM_FIELD_OWNER = 0x6;
    			DWORD ITEM_FIELD_CREATOR = 0xA;
    			
    			ULONG UnitInfo = ReadDword(Current + 0x08);
    			ULONGLONG Owner = ReadDword(UnitInfo + ITEM_FIELD_OWNER * 4);
    			ULONGLONG Creator = ReadDword(UnitInfo + ITEM_FIELD_CREATOR * 4);
    			printf("\tOwner: %I64x  Creator: %I64x\n", Owner, Creator);
    		}
    which is really similar to my code to grab current/max hitpoints. It seems to work, in as much as my player guid is showing up as the owner for my bobber. (w00t!). However... I fear I got lucky, and don't actually know what I am doing

    What I am calling UnitInfo... should that be named something else?

    I am having a hard time understanding the relationship between the "type"... and the layout of memory. Like, It would appear that all objects in the list have a their guid at 0x30... but I assume other offsets vary by type? Or is ObjectBase+0x08 always a pointer to data that is specific to each type?

    I realize that
    [07:14:50]: UNIT_FIELD_HEALTH = 0x17
    is an offset (times 4 bytes) from UnitInfo (which I got at via [ObjectsBase+0x08]), but if I look at other offsets from Cypher's sticky... say...

    [07:14:51]: ITEM_FIELD_CREATOR = 0xA
    that offset is from.. what?

    Thanks. And sorry for my n00bness
    -Silly
    Read about object-oriented programming and, specifically, inheritance. UnitInfo should probably be called something more generic, seeing as it applies to all classes that inherit from GameObject (or whatever).

  7. #7
    Sillyboy72's Avatar Member
    Reputation
    13
    Join Date
    Jan 2009
    Posts
    66
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Shynd View Post
    Read about object-oriented programming and, specifically, inheritance. UnitInfo should probably be called something more generic, seeing as it applies to all classes that inherit from GameObject (or whatever).

    Thanks for the reply Shynd. From what I have seen around here... you made the safe assumption that I am programmatically retarded ;-) Turns out I am fine there

    It's just hard to get my head wrapped around what the hierarchy might look like.
    Looking at the "Descriptors" in Cypher's sticky...

    (Grabbing first offset from each descriptor type)...

    [07:14:50]: OBJECT Fields:
    [07:14:50]: OBJECT_FIELD_GUID = 0x0

    [07:14:50]: UNIT Fields:
    [07:14:50]: UNIT_FIELD_CHARM = 0x6

    [07:14:50]: PLAYER Fields:
    [07:14:50]: PLAYER_DUEL_ARBITER = 0x94

    [07:14:51]: ITEM Fields:
    [07:14:51]: ITEM_FIELD_OWNER = 0x6

    [07:14:51]: CONTAINER Fields:
    [07:14:51]: CONTAINER_FIELD_NUM_SLOTS = 0x6

    [07:14:51]: GAMEOBJECT Fields:
    [07:14:51]: OBJECT_FIELD_CREATED_BY = 0x6

    [07:14:51]: DYNAMICOBJECT Fields:
    [07:14:51]: DYNAMICOBJECT_CASTER = 0x6

    [07:14:51]: CORPSE Fields:
    [07:14:51]: CORPSE_FIELD_OWNER = 0x6

    Apparently there is a base GameObject from which the other types derive (as everyone starts at 0x6 other than the OBJECT fields)? And Player seems to derive from Unit?

    Errrr... it might be very slowly coming together in my brain

    Reading the sticky for the 100th times is helping. So, Cypher defines a CGObject_C... and it seems that at 0x8 he defines a pointer to "extra goo". (though, its the first member variable.. wouldn't that actually be at zero? I am prolly forgetting the vtable, anyway...)

    All the Descriptors are indexes into an array... and that array lives at *pExtraGoo (m_pStorage1 if you are Cypher)... so my UnitInfo indeed made no sense. Extra goo indexes/descriptors are based on the actual type (at offset 0x14). Are the first 5 shared by all types? (can't see why else all the indexes start at 6).

    Enough rambling I think I am slightly less confused now...


  8. #8
    Cypher's Avatar Kynox's Sister's Pimp
    Reputation
    1358
    Join Date
    Apr 2006
    Posts
    5,368
    Thanks G/R
    0/6
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Sillyboy72 View Post

    Thanks for the reply Shynd. From what I have seen around here... you made the safe assumption that I am programmatically retarded ;-) Turns out I am fine there

    It's just hard to get my head wrapped around what the hierarchy might look like.
    Looking at the "Descriptors" in Cypher's sticky...

    (Grabbing first offset from each descriptor type)...

    [07:14:50]: OBJECT Fields:
    [07:14:50]: OBJECT_FIELD_GUID = 0x0

    [07:14:50]: UNIT Fields:
    [07:14:50]: UNIT_FIELD_CHARM = 0x6

    [07:14:50]: PLAYER Fields:
    [07:14:50]: PLAYER_DUEL_ARBITER = 0x94

    [07:14:51]: ITEM Fields:
    [07:14:51]: ITEM_FIELD_OWNER = 0x6

    [07:14:51]: CONTAINER Fields:
    [07:14:51]: CONTAINER_FIELD_NUM_SLOTS = 0x6

    [07:14:51]: GAMEOBJECT Fields:
    [07:14:51]: OBJECT_FIELD_CREATED_BY = 0x6

    [07:14:51]: DYNAMICOBJECT Fields:
    [07:14:51]: DYNAMICOBJECT_CASTER = 0x6

    [07:14:51]: CORPSE Fields:
    [07:14:51]: CORPSE_FIELD_OWNER = 0x6

    Apparently there is a base GameObject from which the other types derive (as everyone starts at 0x6 other than the OBJECT fields)? And Player seems to derive from Unit?

    Errrr... it might be very slowly coming together in my brain

    Reading the sticky for the 100th times is helping. So, Cypher defines a CGObject_C... and it seems that at 0x8 he defines a pointer to "extra goo". (though, its the first member variable.. wouldn't that actually be at zero? I am prolly forgetting the vtable, anyway...)

    All the Descriptors are indexes into an array... and that array lives at *pExtraGoo (m_pStorage1 if you are Cypher)... so my UnitInfo indeed made no sense. Extra goo indexes/descriptors are based on the actual type (at offset 0x14). Are the first 5 shared by all types? (can't see why else all the indexes start at 6).

    Enough rambling I think I am slightly less confused now...


    The descriptor array follows the same inheritence structure as the class you are operating on.

Similar Threads

  1. 1-60 in 3 Weeks (The guide and method the WoW Power Levelers use)
    By Matt in forum World of Warcraft Guides
    Replies: 3
    Last Post: 08-15-2006, 04:20 PM
  2. Joana / Mancow 1-60 4 days power leveling videos
    By Matt in forum World of Warcraft Guides
    Replies: 21
    Last Post: 05-09-2006, 10:11 AM
  3. World of Warcraft Joana / Mancow's power leveling method (video)
    By Matt in forum World of Warcraft Guides
    Replies: 5
    Last Post: 04-11-2006, 06:45 PM
  4. Warriors get a huge attack power boost
    By Matt in forum World of Warcraft Exploits
    Replies: 0
    Last Post: 04-02-2006, 10:02 PM
All times are GMT -5. The time now is 09:13 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