Listing all Actors and their Attributes (I can see all actors, but I'm only listing the server-sent ones on this screenshot). There are a lot of attributes, I were only listing non-zero attributes on the second screenshot. I'm logged on an emulator, meaning a lot of those values are probably invalid compared to retail . So far all I've been working on his Out-Of-Process based, meaning I had to re-write a lot of ****ed up functions seeing how they coded the game (I'm pretty sure those who tried to work without injecting understand what I mean, unless I'm doing it wrong ). There are still things to code, but I reversed most of what I needed
I will probably upload screenshots of some tools I'll work on soon.
Just wondering, are you doing this by injecting? I can see the GetDouble and GetInteger buttons there, so I'm guessing you're calling the functions. That would be a lot easier than my method of doing it haha.
Last edited by DrakeFish; 10-13-2011 at 08:57 PM.
I really like this thread Nice to see on what projects other people are working.
Just my small ingame packet tool which is slowly taking shape:
Last edited by swooshy; 11-01-2011 at 04:49 PM.
Wow DrakeFish! I'm working on actor listing too, but I haven't been able to get as far as you. Where was your starting pointer when you searched for the object manager?
The only thing I can contribute so far is the player name offset: diabloIII.exe + 0xC285320
I'll post pics as soon as I can.
Press shift+F12 to get a list of all strings, search for "UI_ToolTip_HeroExperience".
Follow the xref to find a list of (string, function) pairs.
Lookup the function referenced below the "UI_ToolTip_HeroExperience".
The first function call is to query the GUID of your hero. If that succeeds, see it traverse through a bunch of hierarchies starting from the TLS to find, presumably, an object manager of sorts. The function it calls in the next basic block then is used to translate the GUID to an actual pointer to an Actor object.
At +0x0, you have the 4-byte GUID, at +0x4 the model (?) name of the actor, didn't bother to count how many bytes they use for this. Also, +0xD0 X, +0xD4 Y, +0xD8 Z.
Poof, we got ourselves a radar:
Last edited by caytchen; 11-24-2011 at 03:45 PM.
Got dumping navcells (from memory, not the files) out of the scenes working finally
http://privatepaste.com/2d929db52f
Last edited by Nesox; 12-11-2011 at 06:36 PM.
Found this when i was looking at the actor movement functions
Nice, i see you are playing on the official server, dont you fear getting banned?
also, how did you start when searching for the navcells.
I made my own pathfinding algorithm, but it'd still be intersting how you guys find your stuff.
No not rly.
They are part of the scenes got enumerating scenes working then worked from there,
i'm still going to have to implement something like A* for generating paths.
The func for moving around the actor is pretty neat, it doesn't go straight to the point like wow's click to move. It even goes around corers
And it doesn't end there.
The game also gives you a variable that tells you if your current target is reachable in a direct way, trough a path with more than 2 edges, or not reachable at all.
That's really useful if you want to know if something is blocking your way. Made my path-finding 100% more efficient
But I dislike that you have to be careful. The game crashes sometimes if you "click" on a point outside the current view.
Or try to issue a movement command on a position with an "incorrect" z value. Either the character glitches really bad or you get kicked :/
edit: by incorrect i mean something like your current position with z + 100.
Last edited by felheartx; 12-14-2011 at 10:38 PM.