KatzSmile, post: 55956, member: 6773 wrote:Stamina pointer
Offset for pStamina is incorrect: should be -78
Here's the script for items durability. Works on v1.23. Not made by me. Don't remember where I found it.
Code: Select all
[ENABLE]
aobscan(maxDurability, 39 00 d9 45 fc d9 58 1c c9)
registersymbol(maxDurability)
maxDurability:
db 39 00 d9 e8 90 d9 58 1c c9
[DISABLE]
maxDurability:
db 39 00 d9 45 fc d9 58 1c c9
unregistersymbol(maxDurability)
-----------------
Hi, I have some information that might help someone make a scripted table. I am just not proficient with writing these scripts/tables to do so myself. A lot of this was discovered by comparing the old alpha saves, which were more readable.
Here is my information.
I used the trick to get the energy by when waking from sleep then search for 100 float and swing sword and then search for 98 float.
This always got me 1 address which was the active energy pool. As someone suggested doing above.
Now for what I discovered. It appears that these memory addresses (floats) follow the same sequence from the old alpha save files.
["inventory_size","sanity","energy","_sloth","_wrath","_envy","_glut","_lust","_pride","speed"
"_res_v":[20.0,100.0,100.0,250.0,250.0,250.0,250.0,250.0,250.0,3.2994
So this means if you move back 8 bytes you get the float address for inventory size!! very useful. Once you change this, it writes to your next save and is permanent.
As you can see you can change the movement speed too by adding 1C to the address location. If you do not know hex math try using window calculator in programmer mode.
so this lead me to search for the old max_hp, max_energy, max_sanity. I made the assumption that this likely side by side stored in memory, since JSON normally write variables in order.
so I search for a byte array of 640000006400000064000000 and found a few hits... one of them was this max.
I think I have narrowed it down a bit more, but I am unsure. I think just prior to this is the year count (number of in games cycles of the different days). So if 19 years passed, it would be 13000000640000006400000064000000 that you search for to find the correct locations.
You simple add each to your memory location list as 4 byte number (not a float) and change to a bigger number. This saves in your save file and now you have a huge pool of energy? hp? sanity?
I suggest keeping that first energy pool memory address for if you change the max, then you need a lot of sleeping to fill it, whereas using the address that you find in the start will make that quick and easy.
Well this is my contribution as this thread got me pointed in the right direction.
GL to whoever builds something more automatic from this information.
--------------------