Halo Custom Edition [1.08] Interesting Addresses
Well I was looking around in Cheat engine lately and I found some crap. I figured I haven't done anything with them yet, and probably won't, for a while, thus, you might make use of some of these addys.
Code:
Dev Boolean-
006BD096
01/00 00 60 C8 14 00 02 00 00 00 40 B8 16 00 00 00
Console boolean-
00651E89
01/00 00 00 01 00 00 60 10 00 00 0D FF FF 00 00 00
I was toying with the idea of making those booleans accessible via scripts in Open Sauce :iamafag:
The following I was planning on releasing in Open Sauce (and still am) however I need to find the addy in dedi still.
This was an Idea I had for modifying the jump height/velocity of the player. It turns out that Cheat_Super_Jump multiplies the default velocity (in stock maps, 1.7 mps) by 4.
I forget how jump velocity works in tandem with jump height in the game but hey.
Code:
SJ Bool-
00815CA4
SJ Modifier
00612388
-set to 4 by default. Fun to use on Hugeass or Coldsnap.
Timberland as well. :P
Another note, that Super jump MUST be enabled in order for this method of modifying jump height to work.
I'm going to use this as a log to the interesting values that I find in Halo.
Currently on my list to be found are: Maximum Health, Max shields, and Grenades.
With those I expect to find the actual health, shields, and 'nades the player is holding. If you have ideas feel free to let meh know.
Re: Halo Custom Edition [1.08] Interesting Addresses
The only thing that needs to be enabled with OS is the console. OS can override the devmode check for runtime script commands (read: console commands). Also, all you need to have is a lookup function or the actual global index of cheat_super_jump and then just access the value definition using the HSExternalGlobals() function or w/e I had named it in the Script related code files (I think I defined it in the ScriptLibrary component source)
an object's heath/shields and a unit's grenades are already defined in the OS codebase
Re: Halo Custom Edition [1.08] Interesting Addresses
Quote:
Originally Posted by
Kornman00
an object's heath/shields and a unit's grenades are already defined in the OS codebase
If that's so I think I'll want to be exposing those values so scripters may manipulate them, even though i'm not sure about how to do it 100%.
Yeah, FireScythe showed me the parts of Open Sauce I need to add my custom globals so expect my own build or something like that some time this month maybe.
Re: Halo Custom Edition [1.08] Interesting Addresses
unit_get_heath/unit_get_shield (just make 'set' versions)
however, player_add_equipment can set all three things (including weapons). also, these would need to be functions, not globals.
Re: Halo Custom Edition [1.08] Interesting Addresses
Re: Halo Custom Edition [1.08] Interesting Addresses
Code:
004D3BDD - mov edi,esi (not exactly sure why this is here)
004D3BEC - mov [esi],eax (esi is a pointer to the player, eax is player ID...)
if you're looking at our Player structure, should be
unsigned short m_ID
^
(when a player joins)
this code is called at...
004D3971 - CALL 004D3BD0
^called by
004DD3FF - call 004E1E60
all values are in hex (0x20, 0x40, etc)
when RUSSIA WINS hosts game | Dwood joins hosted game | USA JOIN
EAX = 007F0001
ECX = 0 (player index??) | 20 | 40
EDX = 0 (player index??mb team??) | 1 (player index) | 2
EBX = 1 (??, successful join mb [like banning?])
EBP = 007FC467 |7FC487 |7FC4A7
ESI = pointer to player name
EDI = 0080DD40 (??)
EBP points to a value
when i host,
00 00 00 00
when you join
00 01 01 00... could be (??) (player #) (team #) (??)
second test (this time, im on team 1)
00 00 00 00 (me)
00 00 01 00 (you)
third test (in order, no team switching, me, RUSSIA, USA)
00 00 00 00
00 01 01 00
00 00 02 00
registers up top remain the same
analysis for pointed structure by EBP:
00 (team) (player #) 00
EAX and EDI point to a bunch of 0s, maybe they are for bitwise operations?
more info on ESI register above
ESI points to this structure
seems to be 32 bytes
24 bytes = player name
last 8 bytes go for me as follows:
01 00 FF FF 00 00 00 00
for you, same structure, except last 8 bytes
02 00 FF FF 01 00 01 01
for me, with Dwood on blue
02 00 FF FF 01 00 00 01.... meaning that the second to last byte = team
for USA WINS joins as third player (joins to red)
02 00 FF FF 02 00 00 02
assuming first byte means 01 for host, 02 for client
(above) 00 FF FF (player index+1) 00 (destination team) (player index+1)
Thanks to IGM.Bitidork for help in finding these addresses.
Re: Halo Custom Edition [1.08] Interesting Addresses
pretty sure you're looking at a s_network_player structure
Re: Halo Custom Edition [1.08] Interesting Addresses
Quote:
Originally Posted by
Kornman00
unit_get_heath/unit_get_shield (just make 'set' versions)
however, player_add_equipment can set all three things (including weapons). also, these would need to be functions, not globals.
I don't suppose there's a unit_set_equipment that can be used on AI. One would be able to have an elite draw an energy sword when it's shield is low then.
Re: Halo Custom Edition [1.08] Interesting Addresses
Quote:
Originally Posted by
Rhydgaled
I don't suppose there's a unit_set_equipment that can be used on AI. One would be able to have an elite draw an energy sword when it's shield is low then.
ai_actors, then iterate over each unit checking their shield.
also, there are already methods for setting the health/shield properties: unit(s)_set_maximum_vitality & unit(s)_set_current_vitality
Re: Halo Custom Edition [1.08] Interesting Addresses
Quote:
Originally Posted by
Kornman00
ai_actors, then iterate over each unit checking their shield.
also, there are already methods for setting the health/shield properties: unit(s)_set_maximum_vitality & unit(s)_set_current_vitality
Oh hey I didn't know about that, thanks. :neckbeard: