GameObject Type menu

User Tag List

Results 1 to 13 of 13
  1. #1
    g3gg0's Avatar Active Member
    Reputation
    32
    Join Date
    Mar 2008
    Posts
    86
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    GameObject Type

    Hi,

    i'm currently crawling through the object list and trying to figure out the the game object type. (chair, bobber etc)
    dumping objects works fine - even with object names etc.

    i searched through all threads here and someone wrote the GOT offset for game objects is curObj+0x45 (one byte)

    also the object type enum was given as:
    enum eGameObjType
    {
    GOT_Door=0,
    GOT_Button=1,
    GOT_QuestGiver=2,
    GOT_Chest=3,
    GOT_Binder=4,
    GOT_Generic=5,
    GOT_Trap=6,
    GOT_Chair=7,
    GOT_SpellFocus=8,
    GOT_Text=9,
    GOT_Goober=0xa,
    GOT_Transport=0xb,
    GOT_AreaDamage=0xc,
    GOT_Camera=0xd,
    GOT_WorldObj=0xe,
    GOT_MapObjTransport=0xf,
    GOT_DuelArbiter=0x10,
    GOT_FishingNode=0x11,
    GOT_Ritual=0x12,
    GOT_Mailbox=0x13,
    GOT_AuctionHouse=0x14,
    GOT_SpellCaster=0x16,
    GOT_MeetingStone=0x17,
    GOT_Unkown18=0x18,
    GOT_FishingPool=0x19,
    GOT_FORCEDWORD=0xFFFFFFFF,
    };

    now the dword at offset curObj+0x44 is zeroed on every game object.
    so the GOT offset seems not correct or has changed.
    i tried to dump 0xB0 bytes of every object and looked for the values in the enum cypher posted.
    but even objects named "chair" dont have the enum value GOT_Chair=7 set anywhere.

    am i missing something? is the GOT now in the eGameObjectFields structure?

    GameObject Type
  2. #2
    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)
    GOT always has been in the descriptor array, it just got merged into BYTES_1 or w/e when 3.0.x was released.

    Code:
    	inline unsigned int GetSubType()
    	{
    		unsigned int Field = GetKnownField(GAMEOBJECT_BYTES_1);
    		return ((Field >> 8) &0xFF);
    	}

  3. #3
    g3gg0's Avatar Active Member
    Reputation
    32
    Join Date
    Mar 2008
    Posts
    86
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    argh i already inspected this field
    but it was not always 0x07 on chairs, so i thought thats also wrong..
    Code:
    OBJECT: 0x07 0xf11002edba00090a [Stuhl]
    OBJECT: 0x07 0xf11002edbb00090b [Stuhl]
    OBJECT: 0x05 0xf11002f59e000917 [Stuhl]
    OBJECT: 0x05 0xf11002f59f00093c [Stuhl]
    OBJECT: 0x07 0xf11002f5890009cd [Stuhl]
    OBJECT: 0x05 0xf11002f59d0009e2 [Stuhl]
    OBJECT: 0x05 0xf11002ecc800095f [Zum Gefeierten Helden]
    OBJECT: 0x07 0xf11002f42a0009b1 [Stuhl]
    OBJECT: 0x03 0xf51002f44a078225 [Schattenseitenelixier]
    thanks for giving that hint!

  4. #4
    g3gg0's Avatar Active Member
    Reputation
    32
    Join Date
    Mar 2008
    Posts
    86
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    another question that raised while testing:

    when i change an object in that objmgr linked list - lets say the object scale or the model - will
    changes immediately affect the rendered world? or would it require to to something like gxrestart or such?

    cant find any old thread in which smth like this was discussed (just some map change things)


    edit, some GOTs missing in your list:

    OBJECT: GOT 0x20 [Barbiersessel] (barber chair)
    OBJECT: GOT 0x1e [Teleportauraobjekt des Brunnens von Dalaran] (the portal to the underbelly in the dalaran well)
    OBJECT: GOT 0x23 [Doodad_Dalaran_Well_01] (GUID 0xf12002f570000005)
    OBJECT: GOT 0x22 [Gildenbank] (guild bank)
    Last edited by g3gg0; 01-05-2009 at 01:13 PM.

  5. #5
    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)
    I assume you're trying to replicate my morph hack?

    You'll need to call a function to redraw that specific object in that case. You can find it by reversing the appropriate packet handler. Have fun! (No really, it is fun and not hard)

  6. #6
    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)
    Better list of stuff you're missing btw:
    Code:
    	GOT_FlagDrop=0x1A,
    	GOT_MiniGame=0x1B,
    	GOT_LotteryKiosk          = 28,
    	GOT_CapturePoint          = 29,
    	GOT_AuraGenerator         = 30,
    	GOT_DungeonDifficulty     = 31,
    	GOT_BarberChair           = 32,
    	GOT_DestructibleBuilding  = 33,
    	GOT_GuildBank             = 34,

  7. #7
    g3gg0's Avatar Active Member
    Reputation
    32
    Join Date
    Mar 2008
    Posts
    86
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    okay thank you very much

  8. #8
    g3gg0's Avatar Active Member
    Reputation
    32
    Join Date
    Mar 2008
    Posts
    86
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Cypher View Post
    I assume you're trying to replicate my morph hack?
    forgot to answer that...
    no, im just playing around for fun
    maybe its for use somewhen

  9. #9
    lanman92's Avatar Active Member
    Reputation
    50
    Join Date
    Mar 2007
    Posts
    1,033
    Thanks G/R
    0/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Cypher View Post
    I assume you're trying to replicate my morph hack?

    You'll need to call a function to redraw that specific object in that case. You can find it by reversing the appropriate packet handler. Have fun! (No really, it is fun and not hard)
    Didn't you post something about this on GD or it might be on here, don't remember. You posted some info about it, though. I lol'd at the picture of the dino fishing.

  10. #10
    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 lanman92 View Post
    Didn't you post something about this on GD or it might be on here, don't remember. You posted some info about it, though. I lol'd at the picture of the dino fishing.
    Actually yes I did, the address is probably there. And yea, win pic is win.

  11. #11
    deadbeef's Avatar Member
    Reputation
    1
    Join Date
    Aug 2008
    Posts
    14
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Can somebody confirm this to be correct?

    posted by wraithZX:
    Been a while since I'd contributed anything here, so here's something that's up to date, a modified output of kynox's offset dumper...
    EDIT: I should point out that some of the items are likely to be incorrect. Was a bit of a hack job, and some of the types/sizes are likely to be wrong. YMMV!
    struct sGameObjectFields
    {
    WGUID OBJECT_FIELD_CREATED_BY; /* offset:0, length:8, type:4 */
    unsigned long GAMEOBJECT_DISPLAYID; /* offset:8, length:4, type:1 */
    unsigned char GAMEOBJECT_FLAGS[4]; /* offset:12, length:4, type:2 */
    WGUID GAMEOBJECT_ROTATION; /* offset:16, length:8, type:4 */
    float GAMEOBJECT_PARENTROTATION[4]; /* offset:24, length:16, type:3 */
    float GAMEOBJECT_POS_X; /* offset:40, length:4, type:3 */
    float GAMEOBJECT_POS_Y; /* offset:44, length:4, type:3 */
    float GAMEOBJECT_POS_Z; /* offset:48, length:4, type:3 */
    float GAMEOBJECT_FACING; /* offset:52, length:4, type:3 */
    unsigned char GAMEOBJECT_DYNAMIC[4]; /* offset:56, length:4, type:2 */
    unsigned long GAMEOBJECT_FACTION; /* offset:60, length:4, type:1 */
    unsigned long GAMEOBJECT_LEVEL; /* offset:64, length:4, type:1 */
    unsigned char GAMEOBJECT_BYTES_1[4]; /* offset:68, length:4, type:5 */
    };
    I read the displayid and position for type 5 this way, it works fine, but compared to the struct posted by wraithZX this makes no sense at all *confused*, ofc I know his offsets are decimal:
    [cur_obj +0x08] -> tmp // Pointer to sGameObjectFields, correct?
    [tmp +0x20] -> DisplayID // my offset 0x20(hex)->dec: 32 != 8
    [tmp +0x40] -> x position // my offset 0x40(hex)->dec: 64 != 40
    [tmp +0x44] -> y position
    [tmp +0x48] -> z position
    [tmp +0x??] -> GAMEOBJECT_BYTES_1 *confused*


    I simply want to read the GAMEOBJECT_BYTES_1 to know what object is a chair, mailbox or whatever.

  12. #12
    g3gg0's Avatar Active Member
    Reputation
    32
    Join Date
    Mar 2008
    Posts
    86
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    short:
    gameObjectType = ([[(unsigned int*)curObj + 0x08] + 0x17*4] >> & 0xFF

    edit: clarified storage type
    Last edited by g3gg0; 01-06-2009 at 07:21 PM.

  13. #13
    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)
    (curObj+0x0 = pointer to sObjectFields.
    (curObj+0x0+sizeof(sObjectFields) = next structure.
    (curObj+0x0+sizeof(sObjectFields)+sizeof(next structure) = another structure.

    etc. etc. etc.

    it's likely to be (sObjectFields + sUnitFields + sGameObjectFields) packed. Don't blame me if it's not, I don't play with game objects.
    Last edited by wraithZX; 01-07-2009 at 01:24 AM.

Similar Threads

  1. [NeedHelp] GameObject Position Offset + Type Detection
    By MadCoder in forum WoW Memory Editing
    Replies: 1
    Last Post: 02-29-2012, 02:17 AM
  2. [Database] Type 3 gameobject's arnt working!
    By tyeeeee1 in forum WoW EMU Questions & Requests
    Replies: 7
    Last Post: 11-19-2010, 11:38 AM
  3. Preferred Type of Movie Maker
    By The Mars Volta in forum World of Warcraft General
    Replies: 11
    Last Post: 01-15-2007, 12:33 AM
  4. Replies: 8
    Last Post: 01-10-2007, 08:40 PM
  5. Some type of new ZG Exploit
    By Filipp in forum World of Warcraft Exploits
    Replies: 6
    Last Post: 07-08-2006, 02:53 AM
All times are GMT -5. The time now is 04:42 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