Pointer/Adress for something like "nearest mob"? menu

User Tag List

Results 1 to 13 of 13
  1. #1
    Dragonef22's Avatar Contributor
    Reputation
    178
    Join Date
    Jan 2011
    Posts
    252
    Thanks G/R
    0/3
    Trade Feedback
    4 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Pointer/Adress for something like "nearest mob"?

    hey guys

    I would like to try writing a little farmscript for the ledge or something like that, we will see

    However I can´t find a satisfying way of detecting enemys

    Do you know of any pointers/adress which can help here?

    Is there something like "nearest mob x y position" or anything like that which would help? - do you have other ideas?

    Though about pixeldetection but I think this will have to many flaws

    Thanks for any help here

    Pointer/Adress for something like "nearest mob"?
  2. #2
    SKU's Avatar Contributor
    Reputation
    306
    Join Date
    May 2007
    Posts
    565
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Don't know if there's such a built-in function, but you could always just iterate over the list of known objects, do a check if they're monsters, get their positioned component and grab their coordinates (or just grab them from the packets directly). Then select the closest one.

    Search for "Unknown object type serialized by server", then you'll find the handler which handles object packets (0xf0, 0xf1, 0xf2). There you'll also find a call to operator new (size 138h), that's the NetworkEntity (or whatever). I haven't reversed the structure where the game keeps the objects, but you can just maintain your own object list. The positioned component is at NetworkEntity+0x24 (at least for WorldItems, pretty sure the same is true for Monsters, but you could always just iterate over the doubly linked components list and grab the actual component index from there). Inside the positioned component, the coordinates are at +0x30 and +0x34 (or scaled at +0x28 and +0x2c). The object scale (default 1.0) is at positioned+0x10.

    When you trace through the code, you'll find the string "Positioned" referenced pretty soon after the object has been created. This should tell you how to find the doubly linked list of component entries, although you don't need it for this task.

  3. #3
    Dragonef22's Avatar Contributor
    Reputation
    178
    Join Date
    Jan 2011
    Posts
    252
    Thanks G/R
    0/3
    Trade Feedback
    4 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by SKU View Post
    Don't know if there's such a built-in function, but you could always just iterate over the list of known objects, do a check if they're monsters, get their positioned component and grab their coordinates (or just grab them from the packets directly). Then select the closest one.

    Search for "Unknown object type serialized by server", then you'll find the handler which handles object packets (0xf0, 0xf1, 0xf2). There you'll also find a call to operator new (size 138h), that's the NetworkEntity (or whatever). I haven't reversed the structure where the game keeps the objects, but you can just maintain your own object list. The positioned component is at NetworkEntity+0x24 (at least for WorldItems, pretty sure the same is true for Monsters, but you could always just iterate over the doubly linked components list and grab the actual component index from there). Inside the positioned component, the coordinates are at +0x30 and +0x34 (or scaled at +0x28 and +0x2c). The object scale (default 1.0) is at positioned+0x10.

    When you trace through the code, you'll find the string "Positioned" referenced pretty soon after the object has been created. This should tell you how to find the doubly linked list of component entries, although you don't need it for this task.
    hey, thanks for that answer, but its way over my level of knowledge

    I´ll have to find an easier way of doing that

  4. #4
    Apoc's Avatar Angry Penguin
    Reputation
    1387
    Join Date
    Jan 2008
    Posts
    2,750
    Thanks G/R
    0/12
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by SKU View Post
    Don't know if there's such a built-in function, but you could always just iterate over the list of known objects, do a check if they're monsters, get their positioned component and grab their coordinates (or just grab them from the packets directly). Then select the closest one.

    Search for "Unknown object type serialized by server", then you'll find the handler which handles object packets (0xf0, 0xf1, 0xf2). There you'll also find a call to operator new (size 138h), that's the NetworkEntity (or whatever). I haven't reversed the structure where the game keeps the objects, but you can just maintain your own object list. The positioned component is at NetworkEntity+0x24 (at least for WorldItems, pretty sure the same is true for Monsters, but you could always just iterate over the doubly linked components list and grab the actual component index from there). Inside the positioned component, the coordinates are at +0x30 and +0x34 (or scaled at +0x28 and +0x2c). The object scale (default 1.0) is at positioned+0x10.

    When you trace through the code, you'll find the string "Positioned" referenced pretty soon after the object has been created. This should tell you how to find the doubly linked list of component entries, although you don't need it for this task.
    *cough*

    Code:
    [45:970 N] Metadata/MiscellaneousObjects/TownPortal, ID: 1303[45:975 N] 	Positioned
    [45:975 N] 	Portal
    [45:975 N] 	BaseEvents
    [45:975 N] 	Render
    [45:975 N] 	Animated
    [45:975 N] 	Targetable
    [45:976 N] Metadata/MiscellaneousObjects/TownPortal, ID: 2811
    [45:976 N] 	Positioned
    [45:976 N] 	Portal
    [45:976 N] 	BaseEvents
    [45:976 N] 	Render
    [45:976 N] 	Animated
    [45:976 N] 	Targetable
    [45:976 N] Metadata/NPC/Act1NPCBestel, ID: 6237
    [45:976 N] 	ClientNPC
    [45:976 N] 	Positioned
    [45:976 N] 	Render
    [45:976 N] 	NPC
    [45:976 N] 	Animated
    [45:976 N] 	BaseEvents
    [45:976 N] 	Targetable
    [45:976 N] Metadata/NPC/Act1NPCTarkleigh, ID: 7182
    [45:976 N] 	ClientNPC
    [45:976 N] 	Positioned
    [45:976 N] 	Render
    [45:976 N] 	NPC
    [45:976 N] 	Animated
    [45:976 N] 	BaseEvents
    [45:976 N] 	Targetable
    [45:976 N] Metadata/MiscellaneousObjects/TownPortal, ID: 9388
    [45:976 N] 	Positioned
    [45:976 N] 	Portal
    [45:976 N] 	BaseEvents
    [45:976 N] 	Render
    [45:976 N] 	Animated
    [45:976 N] 	Targetable
    [45:976 N] Metadata/MiscellaneousObjects/TownPortal, ID: 11541
    [45:976 N] 	Positioned
    [45:976 N] 	Portal
    [45:976 N] 	BaseEvents
    [45:976 N] 	Render
    [45:976 N] 	Animated
    [45:976 N] 	Targetable
    [45:976 N] Metadata/Characters/Int/Int, ID: 15852
    [45:976 N] 	Positioned
    [45:977 N] 	Animated
    [45:977 N] 	Render
    [45:977 N] 	Stats
    [45:977 N] 	Life
    [45:977 N] 	Pathfinding
    [45:977 N] 	Actor
    [45:977 N] 	Inventories
    [45:977 N] 	Player
    [45:977 N] 	Targetable
    [45:977 N] Metadata/NPC/Act1NPCNessa, ID: 21481
    [45:977 N] 	ClientNPC
    [45:977 N] 	Positioned
    [45:977 N] 	Render
    [45:977 N] 	NPC
    [45:977 N] 	Animated
    [45:977 N] 	BaseEvents
    [45:977 N] 	Targetable
    [45:977 N] Metadata/Characters/StrInt/StrInt, ID: 23401
    [45:977 N] 	Positioned
    [45:977 N] 	Animated
    [45:977 N] 	Render
    [45:977 N] 	Stats
    [45:977 N] 	Life
    [45:977 N] 	Pathfinding
    [45:977 N] 	Actor
    [45:977 N] 	Inventories
    [45:977 N] 	Player
    [45:977 N] 	Targetable
    [45:977 N] Metadata/MiscellaneousObjects/Stash, ID: 27468
    [45:977 N] 	Positioned
    [45:977 N] 	BaseEvents
    [45:977 N] 	Render
    [45:977 N] 	Animated
    [45:977 N] 	Targetable
    [45:977 N] Metadata/MiscellaneousObjects/NoticeBoard, ID: 29785
    [45:977 N] 	Positioned
    [45:977 N] 	BaseEvents
    [45:977 N] 	Render
    [45:977 N] 	Animated
    [45:977 N] 	Targetable
    [45:977 N] Metadata/MiscellaneousObjects/Waypoint, ID: 30007
    [45:977 N] 	Positioned
    [45:977 N] 	BaseEvents
    [45:977 N] 	Render
    [45:977 N] 	Animated
    [45:977 N] 	Targetable
    [45:977 N] Metadata/MiscellaneousObjects/TownPortal, ID: 30550
    [45:977 N] 	Positioned
    [45:977 N] 	Portal
    [45:977 N] 	BaseEvents
    [45:977 N] 	Render
    [45:977 N] 	Animated
    [45:977 N] 	Targetable
    [45:977 N] Metadata/MiscellaneousObjects/AreaTransition, ID: 30833
    [45:977 N] 	Positioned
    [45:977 N] 	BaseEvents
    [45:977 N] 	Render
    [45:977 N] 	Animated
    [45:977 N] 	AreaTransition
    [45:977 N] 	Targetable
    [45:977 N] Metadata/MiscellaneousObjects/TownPortal, ID: 31425
    [45:977 N] 	Positioned
    [45:977 N] 	Portal
    [45:977 N] 	BaseEvents
    [45:977 N] 	Render
    [45:977 N] 	Animated
    [45:977 N] 	Targetable
    [45:977 N] Metadata/MiscellaneousObjects/Doodad, ID: 2147483649
    [45:977 N] 	Positioned
    [45:977 N] 	BaseEvents
    [45:977 N] 	Render
    [45:977 N] 	Animated
    [45:977 N] Metadata/MiscellaneousObjects/Doodad, ID: 2147483650
    [45:977 N] 	Positioned
    [45:977 N] 	BaseEvents
    [45:977 N] 	Render
    [45:977 N] 	Animated
    [45:977 N] Metadata/MiscellaneousObjects/Doodad, ID: 2147483651
    [45:977 N] 	Positioned
    [45:977 N] 	BaseEvents
    [45:977 N] 	Render
    [45:977 N] 	Animated
    [45:977 N] Metadata/MiscellaneousObjects/Doodad, ID: 2147483652
    [45:977 N] 	Positioned
    [45:977 N] 	BaseEvents
    [45:977 N] 	Render
    [45:977 N] 	Animated
    [45:977 N] Metadata/MiscellaneousObjects/Doodad, ID: 2147483653
    [45:977 N] 	Positioned
    [45:977 N] 	BaseEvents
    [45:977 N] 	Render
    [45:977 N] 	Animated
    [45:977 N] Metadata/MiscellaneousObjects/Doodad, ID: 2147483654
    [45:977 N] 	Positioned
    [45:977 N] 	BaseEvents
    [45:977 N] 	Render
    [45:977 N] 	Animated
    [45:977 N] Metadata/MiscellaneousObjects/Doodad, ID: 2147483655
    [45:977 N] 	Positioned
    [45:977 N] 	BaseEvents
    [45:977 N] 	Render
    [45:977 N] 	Animated
    [45:978 N] Metadata/MiscellaneousObjects/Doodad, ID: 2147483656
    [45:978 N] 	Positioned
    [45:978 N] 	BaseEvents
    [45:978 N] 	Render
    [45:978 N] 	Animated
    [45:978 N] Metadata/MiscellaneousObjects/Doodad, ID: 2147483657
    [45:978 N] 	Positioned
    [45:978 N] 	BaseEvents
    [45:978 N] 	Render
    [45:978 N] 	Animated
    [45:978 N] Metadata/MiscellaneousObjects/Doodad, ID: 2147483658
    [45:978 N] 	Positioned
    [45:978 N] 	BaseEvents
    [45:978 N] 	Render
    [45:978 N] 	Animated
    [45:978 N] Metadata/MiscellaneousObjects/Doodad, ID: 2147483659
    [45:978 N] 	Positioned
    [45:978 N] 	BaseEvents
    [45:978 N] 	Render
    [45:978 N] 	Animated
    [45:978 N] Metadata/MiscellaneousObjects/Doodad, ID: 2147483660
    [45:978 N] 	Positioned
    [45:978 N] 	BaseEvents
    [45:978 N] 	Render
    [45:978 N] 	Animated
    [45:978 N] Metadata/MiscellaneousObjects/Doodad, ID: 2147483661
    [45:978 N] 	Positioned
    [45:978 N] 	BaseEvents
    [45:978 N] 	Render
    [45:978 N] 	Animated
    [45:978 N] Metadata/MiscellaneousObjects/Doodad, ID: 2147483662
    [45:978 N] 	Positioned
    [45:978 N] 	BaseEvents
    [45:978 N] 	Render
    [45:978 N] 	Animated
    [45:978 N] Metadata/MiscellaneousObjects/Doodad, ID: 2147483664
    [45:978 N] 	Positioned
    [45:978 N] 	BaseEvents
    [45:978 N] 	Render
    [45:978 N] 	Animated
    [45:978 N] Metadata/MiscellaneousObjects/Doodad, ID: 2147483665
    [45:978 N] 	Positioned
    [45:978 N] 	BaseEvents
    [45:978 N] 	Render
    [45:978 N] 	Animated
    [45:978 N] Metadata/MiscellaneousObjects/Doodad, ID: 2147483666
    [45:978 N] 	Positioned
    [45:978 N] 	BaseEvents
    [45:978 N] 	Render
    [45:978 N] 	Animated
    [45:978 N] Metadata/MiscellaneousObjects/Doodad, ID: 2147483667
    [45:978 N] 	Positioned
    [45:978 N] 	BaseEvents
    [45:978 N] 	Render
    [45:978 N] 	Animated
    [45:978 N] Metadata/MiscellaneousObjects/Doodad, ID: 2147483668
    [45:978 N] 	Positioned
    [45:978 N] 	BaseEvents
    [45:978 N] 	Render
    [45:978 N] 	Animated
    [45:978 N] Metadata/MiscellaneousObjects/Doodad, ID: 2147483669
    [45:978 N] 	Positioned
    [45:978 N] 	BaseEvents
    [45:978 N] 	Render
    [45:978 N] 	Animated
    [45:978 N] Metadata/MiscellaneousObjects/Doodad, ID: 2147483670
    [45:978 N] 	Positioned
    [45:983 N] 	BaseEvents
    [45:983 N] 	Render
    [45:983 N] 	Animated
    [45:984 N] Metadata/MiscellaneousObjects/Doodad, ID: 2147483671
    [45:984 N] 	Positioned
    [45:984 N] 	BaseEvents
    [45:984 N] 	Render
    [45:984 N] 	Animated
    [45:984 N] Metadata/MiscellaneousObjects/Doodad, ID: 2147483673
    [45:984 N] 	Positioned
    [45:984 N] 	BaseEvents
    [45:984 N] 	Render
    [45:984 N] 	Animated
    [45:984 N] Metadata/MiscellaneousObjects/Doodad, ID: 2147483674
    [45:984 N] 	Positioned
    [45:984 N] 	BaseEvents
    [45:984 N] 	Render
    [45:984 N] 	Animated
    [45:984 N] Metadata/MiscellaneousObjects/Doodad, ID: 2147483675
    [45:984 N] 	Positioned
    [45:984 N] 	BaseEvents
    [45:984 N] 	Render
    [45:984 N] 	Animated
    [45:984 N] Metadata/MiscellaneousObjects/Doodad, ID: 2147483676
    [45:984 N] 	Positioned
    [45:984 N] 	BaseEvents
    [45:984 N] 	Render
    [45:984 N] 	Animated
    [45:984 N] Metadata/MiscellaneousObjects/Doodad, ID: 2147483677
    [45:984 N] 	Positioned
    [45:984 N] 	BaseEvents
    [45:984 N] 	Render
    [45:984 N] 	Animated
    [45:984 N] Metadata/MiscellaneousObjects/Doodad, ID: 2147483678
    [45:984 N] 	Positioned
    [45:984 N] 	BaseEvents
    [45:984 N] 	Render
    [45:984 N] 	Animated
    [45:984 N] Metadata/MiscellaneousObjects/Doodad, ID: 2147483679
    [45:984 N] 	Positioned
    [45:984 N] 	BaseEvents
    [45:984 N] 	Render
    [45:984 N] 	Animated
    [45:984 N] Metadata/MiscellaneousObjects/AnimatedTileDoodad, ID: 2147483680
    [45:984 N] 	Positioned
    [45:984 N] 	BaseEvents
    [45:984 N] 	Render
    [45:984 N] 	Animated
    [45:984 N] Metadata/MiscellaneousObjects/AnimatedTileDoodad, ID: 2147483681
    [45:984 N] 	Positioned
    [45:984 N] 	BaseEvents
    [45:984 N] 	Render
    [45:984 N] 	Animated

  5. #5
    SKU's Avatar Contributor
    Reputation
    306
    Join Date
    May 2007
    Posts
    565
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Guess we'll see an actual ExileBuddy soon?

    Don't really understand your answer though, so I'll just answer in a similar manner:

    Code:
    ...
    
    ======================================================
    Object dump:
    Type: Metadata/MiscellaneousObjects/WorldItem
    Object has component: Targetable at index: 4
    Object has component: Animated at index: 1
    Object has component: WorldItem at index: 2
    Object has component: Render at index: 3
    Object has component: ClientWorldItem at index: 5
    Object has component: Positioned at index: 0
    Coordinates: 322 (3505.43) 315 (3429.35)
    Scale: 1
    WorldItem-SubObject:
    Item type: Metadata/Items/Weapons/OneHandWeapons/Wands/Wand1
    Item has component: Mods at index: 2
    Item has component: Weapon at index: 4
    Item has component: Quality at index: 5
    Item has component: RenderItem at index: 7
    Item has component: Base at index: 0
    Item has component: LocalStats at index: 1
    Item has component: AttributeRequirements at index: 6
    Item has component: Sockets at index: 6
    Sockets: 3, 1, 5, 5, 5, 5
    Links: 2
    [Blue]--[Red]
    ======================================================
    
    ...

  6. #6
    Wrongusername's Avatar Sergeant
    Reputation
    100
    Join Date
    Feb 2011
    Posts
    65
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Lol can't really compete with you big reversing gurus but one thing that could be complement above info is World2ClientRect function for those who want an easy starting way to interact with objects obtained or do movement or to do do things out-of-process generally.

    0.10.1b
    Code:
    .text:00780B10 World2ClientRect proc near             ; CODE XREF: sub_50A9F0+D7p
    .text:00780B10                                         ; sub_50AF10+C8p ...
    .text:00780B10
    .text:00780B10 var_14          = dword ptr -14h
    .text:00780B10 var_10          = dword ptr -10h
    .text:00780B10 var_8           = dword ptr -8
    .text:00780B10
    .text:00780B10                 sub     esp, 1Ch
    .text:00780B13                 lea     eax, [edi+0BCh]
    .text:00780B19                 push    eax             ; const D3DXMATRIX* - camera matrix
    .text:00780B1A                 push    ecx             ; passed in ecx const D3DXVECTOR3 *pV - point3D coords of point
    .text:00780B1B                 lea     edx, [esp+24h+var_14] ; D3DXVECTOR4 *pOut
    .text:00780B1F                 push    edx
    .text:00780B20                 call    ds:D3DXVec3Transform
    .text:00780B26                 fild    dword ptr [edi+4] ; SCREEN_W
    .text:00780B29                 movss   xmm0, ds:AnimScale
    .text:00780B31                 divss   xmm0, [esp+1Ch+var_8]
    .text:00780B37                 mov     eax, [edi+4]    ; SCREEN_W
    .text:00780B3A                 movaps  xmm1, xmm0
    .text:00780B3D                 mulss   xmm1, [esp+1Ch+var_14]
    .text:00780B43                 mulss   xmm0, [esp+1Ch+var_10]
    .text:00780B49                 movss   [esp+1Ch+var_14], xmm1
    .text:00780B4F                 movss   [esp+1Ch+var_10], xmm0
    .text:00780B55                 test    eax, eax
    .text:00780B57                 jns     short loc_780B5F
    .text:00780B59                 fadd    ds:flt_A23654
    .text:00780B5F
    .text:00780B5F loc_780B5F:                             ; CODE XREF: World2ClientRect+47j
    .text:00780B5F                 fld     ds:dword_9CD540 ; float 0.5
    .text:00780B65                 mov     ecx, [edi+8]    ; SCREEN_H
    .text:00780B68                 fmul    st(1), st
    .text:00780B6A                 fld     [esp+1Ch+var_14]
    .text:00780B6E                 fld1
    .text:00780B70                 fadd    st(1), st
    .text:00780B72                 fxch    st(3)
    .text:00780B74                 fmulp   st(1), st
    .text:00780B76                 fild    dword ptr [edi+8] ; SCREEN_H
    .text:00780B79                 test    ecx, ecx
    .text:00780B7B                 jns     short loc_780B83
    .text:00780B7D                 fadd    ds:flt_A23654 ; float 1
    .text:00780B83
    .text:00780B83 loc_780B83:                             ; CODE XREF: World2ClientRect+6Bj
    .text:00780B83                 fmulp   st(2), st
    .text:00780B85                 mov     eax, esi
    .text:00780B87                 fxch    st(2)
    .text:00780B89                 fsub    [esp+1Ch+var_10]
    .text:00780B8D                 fmulp   st(1), st
    .text:00780B8F                 fxch    st(1)
    .text:00780B91                 fstp    dword ptr [esi] ; OutputResultsTo
    .text:00780B93                 fstp    dword ptr [esi+4]
    .text:00780B96                 add     esp, 1Ch
    .text:00780B99                 retn
    .text:00780B99 World2ClientRect  endp
    You can probably re-implement it outside fairly easily.
    It expects ptr to structure with camera/screen related stuff, like screen resolution, camera x,y,z, camera matrix in edi

    So
    in edi is [[[[["Client.exe"+0x6BF530]+0x4] +0x7C] +0x94]+ 0x135C]
    in ecx - pointer to point3D with world coords of desired object or movement destination
    in esi - pointer to outPoint2D which gets filled with corresponding clientrect coordinates(don't confuse this with window coordinates that account for borders)

  7. #7
    RazArTr's Avatar Private
    Reputation
    1
    Join Date
    Feb 2013
    Posts
    1
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I really want to know more about this, because using only pixel reference sometimes is really painful. But I have no experience with debuggers or working with packets, in truth I don't even know what these packets is for / do. I just have a little experience on accessing memory, using autoit and using some basic functions of Cheat Engine.

    If some of you guys know any good tutorials for "Detecting monsters and ingame events" and "Pathfinding". Anything will useful.

    Thank you all.
    Last edited by RazArTr; 02-20-2013 at 03:10 PM.

  8. #8
    cl0wned's Avatar Corporal
    Reputation
    2
    Join Date
    Feb 2013
    Posts
    30
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    this bot would be awesome
    Last edited by cl0wned; 02-27-2013 at 07:52 PM.

  9. #9
    alucqrd's Avatar Contributor
    Reputation
    86
    Join Date
    Apr 2013
    Posts
    111
    Thanks G/R
    0/53
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by SKU View Post
    Guess we'll see an actual ExileBuddy soon?

    Don't really understand your answer though, so I'll just answer in a similar manner:

    Code:
    ...
    
    ======================================================
    Object dump:
    Type: Metadata/MiscellaneousObjects/WorldItem
    Object has component: Targetable at index: 4
    Object has component: Animated at index: 1
    Object has component: WorldItem at index: 2
    Object has component: Render at index: 3
    Object has component: ClientWorldItem at index: 5
    Object has component: Positioned at index: 0
    Coordinates: 322 (3505.43) 315 (3429.35)
    Scale: 1
    WorldItem-SubObject:
    Item type: Metadata/Items/Weapons/OneHandWeapons/Wands/Wand1
    Item has component: Mods at index: 2
    Item has component: Weapon at index: 4
    Item has component: Quality at index: 5
    Item has component: RenderItem at index: 7
    Item has component: Base at index: 0
    Item has component: LocalStats at index: 1
    Item has component: AttributeRequirements at index: 6
    Item has component: Sockets at index: 6
    Sockets: 3, 1, 5, 5, 5, 5
    Links: 2
    [Blue]--[Red]
    ======================================================
    
    ...
    Dudes, which soft/method are you using to decompose and dump classes used by the game ?

    Edit: NVM I already found the answer =)
    Last edited by alucqrd; 11-03-2013 at 09:18 PM.

  10. #10
    sullx's Avatar Member
    Reputation
    2
    Join Date
    Dec 2010
    Posts
    17
    Thanks G/R
    0/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by alucqrd View Post
    Dudes, which soft/method are you using to decompose and dump classes used by the game ?

    Edit: NVM I already found the answer =)
    alucqrd can you indicate what "the answer" was or where you found it?

    Trying to achieve essentially what was originally asked. I have extensive C++ experience, and have created an awesome multihack for poe I intend to release when everything is production ready. But right now, I can't seem to find the object list.

    I have found the static address for an EntityID when mousing over it (base+810880) + offset(0x1724). This returns the entity id in hex for any world item (including mobs). What I would like is to be able to retrieve the entityid as well as the position of the entity for all objects in the world. This requires two steps:

    1. Find the offsets from the entity id to the entity world coordinates.
    2. Find the object list (array) with all of the objects/enemies in the world.

    What methods were you using to find the object dump? Doesn't look like ollydbg. Was it a packet editor? Any direction you can give me would be great.
    Last edited by sullx; 07-26-2014 at 05:07 PM.

  11. #11
    sullx's Avatar Member
    Reputation
    2
    Join Date
    Dec 2010
    Posts
    17
    Thanks G/R
    0/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by sullx View Post
    alucqrd can you indicate what "the answer" was or where you found it?

    Trying to achieve essentially what was originally asked. I have extensive C++ experience, and have created an awesome multihack for poe I intend to release when everything is production ready. But right now, I can't seem to find the object list.

    I have found the static address for an EntityID when mousing over it (base+810880) + offset(0x1724). This returns the entity id in hex for any world item (including mobs). What I would like is to be able to retrieve the entityid as well as the position of the entity for all objects in the world. This requires two steps:

    1. Find the offsets from the entity id to the entity world coordinates.
    2. Find the object list (array) with all of the objects/enemies in the world.

    What methods were you using to find the object dump? Doesn't look like ollydbg. Was it a packet editor? Any direction you can give me would be great.

    OK. After reading more across this forum and Blizzhackers I have a better picture of what is required. I now have access to the GetObjectById function which is called here (in the current release):

    PathOfExile.exe+424975 - E8 76DCF0FF - call PathOfExile.exe+3325F0

    The returned object pointer from the call is put into eax. Now I need to parse objects that are returned from this function to find coordinates. Above it's mentioned that the coordinates are at 0x30 and 0x34, but I am not seeing that, though it could be that the object I am investigating isn't a npc or enemy. I am assuming GetObjectById returns an inherited object from some base object for the sake of polymorphism, but this makes parsing each of the child objects nontrivial.

    Any pointers are welcome... (I enjoyed that pun )
    Last edited by sullx; 07-27-2014 at 02:57 PM.

  12. #12
    sullx's Avatar Member
    Reputation
    2
    Join Date
    Dec 2010
    Posts
    17
    Thanks G/R
    0/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Hello all

    For testing purposes I wrote a small auto-asm script in CE as a harbinger for my actual code, as I don't quite understand the inner workings of how GGG wrote this game (yet). I am able to make function calls on GetObjectFromID:

    Code:
    .text:00714288                 mov     ecx, [ebx+8]
    .text:0071428B                 push    eax //object ID
    .text:0071428C                 mov     eax, [ecx]
    .text:0071428E                 mov     edx, [eax+8]
    .text:00714291                 call    edx //Vfunc call to retrieve some pointer needed for GetObjectByID
    .text:00714293                 mov     esi, eax // pass said pointer as param in esi register
    .text:00714295                 call    GetObjectByID
    which I am referencing from here: Blizzhackers ? View topic - Mobs no longer block you(Visual GGPK)

    I don't understand the comment at the bottom of that post, with the multiple nested pointers and offsets allowing you to call the function. For instance, how are the arguments set (pushed to the stack) using that?

    ANYWAY, what I really need some help on is finding coordinates from the returned object pointers. I have scraped through these data structures high and low and can't find a thing (why are they so massive?). That said, I was able to find a static pointer to something (I thought) was responsible for giving me an object ID when I mouse over an item/npc/mob but when I use the ID as an argument to the GetObjectFromID function, it returns 0. Then I investigated further and found that I actually found something better. Looks like I found something like GetObjectPtrFromMouseOver, as the returned pointers from GetObjectFromID and the pointers from the GetObjectPtrFromMouseOver both point to objects with the same internals structure. The static pointer for the mouse over is

    Code:
    [[PathOfExile.exe+810880]+0x1724]
    Unfortunately, I still cannot find the coordinates withing these structures... Can anyone help? Thanks so much.

  13. #13
    bcz's Avatar Contributor
    Reputation
    171
    Join Date
    Apr 2008
    Posts
    172
    Thanks G/R
    8/139
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by sullx View Post
    What methods were you using to find the object dump? Doesn't look like ollydbg. Was it a packet editor? Any direction you can give me would be great.
    would also very much like to know this

Similar Threads

  1. Replies: 0
    Last Post: 05-21-2015, 12:26 AM
  2. +rep for something as Burning Valentine(link there)
    By Loteeh in forum WoW ME Questions and Requests
    Replies: 4
    Last Post: 01-28-2007, 02:31 PM
  3. Looking for something specific
    By TheHanyou in forum World of Warcraft General
    Replies: 18
    Last Post: 08-04-2006, 09:07 PM
All times are GMT -5. The time now is 03:37 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