Please or Register to create posts and topics.

[WIP] Sticky Gel Test

PreviousPage 5 of 8Next

Okay, I'll make it today's Hammer Notepad.

Falsi sumus crusto!

http://www.youtube.com/watch?v=ZEHZRpkBshc

Falsi sumus crusto!

Cross post from this thread:
post101214.html#p101214

but here's some real sticky gel in action without level rotation,

scripts, surface normal traces or paint triggers. (Modded client)

9Zj6IR_9fL4

Yeah, but that's an override. Unless I'm wrong.

Wow, you disassembled the client and enabled the old code? I'm definitely impressed!

Falsi sumus crusto!
yishbarr wrote:
Yeah, but that's an override. Unless I'm wrong.

Well, basically there are vectors for the player's "up" direction (player's rotation), and the camera's "up" (camera's rotation). I worked out that those were still functional if you change them

In the same chunk of memory (like 60 bytes away) I noticed it was writing the angle of the sticky gel you're stood on somewhere, but not doing anything with it.

So I just patched that to write it over the player's rotation, then borrowed a few bytes from speed paint immediately below to write those values over the cam's rotation too.

I guess you could call it an override yeah, I think of it as a bridge or something? The original code that does that is probably still in the game somewhere, but it'll be tough as hell to trace if it even is, because since it's not being used, I can just add a breakpoint and trace back to what's making the changes.

Quick before and after in case anyone likes a bit of assembly.
Modifications in Red

Spoiler
Image
Image

So does this truly work on any surface without in-Hammer modification?

Falsi sumus crusto!

Well, it doesn't work on glass or gratings... behaves prettymuch like any other paint. But yeah, didn't have to do anything special in hammer. You can spawn a sprayer in any old map and have a little fun with it ^^

That's even more impressive. What did you use to patch the memory?

Falsi sumus crusto!

Just OllyDbg:
http://www.ollydbg.de/version2.html

I used the Cheat Engine to search for sequences of numbers (like the player's hitbox) that are listed in "cl_dumpplayer 1". Those are more or less stored in sequence in memory, so it was easy to find the rotation vectors just above those, add a breakpoint and find out what writes to those (In OllyDbg). I noticed that there was something writing the connected paint angles nearby to that memory area, and when I traced to find what was writing that, by chance it was another function I'd already documented a while back to do with detecting paint.

PreviousPage 5 of 8Next