IceTeaMan Newbie cheater Reputation: 1
Joined: 23 Jul 2011 Posts: 19
|
Posted: Sun Aug 28, 2011 11:44 pm Post subject: |
|
|
was playing around with this script to locate the 2 addresses that seem to hold
the Heavy Mech Armor value when taking damage:
Code: |
function DEC_HEX(IN)
local B,K,OUT,I,D=16,"0123456789ABCDEF","",0
while IN>0 do
I=I+1
IN,D=math.floor(IN/B),math.mod(IN,B)+1
OUT=string.sub(K,D,D)..OUT
end
return OUT
end
local autoattach = getAutoAttachList();
strings_add(autoattach, 'F.E.A.R. 3.exe');
local scan = AOBScan("C5009B102B000000??????1E");
if scan ~= nil and strings_getCount(scan) > 0 then
local scan_num = strings_getCount(scan);
for n = 0, scan_num - 1 do
local addr6 = strings_getString(scan, n);
addr6p=tonumber("0x"..addr6)-16
IN = addr6p
if (readBytes(addr6.."-9")) == 0x00
and (readBytes(addr6.."-5A")) == 0x3F
then print (DEC_HEX(IN).." Heavy Mech Armor "
..DEC_HEX(IN).." = "..readDouble(addr6.."-10")
.." double floating point");
print (" "
.."value until first entered");
elseif (readString(addr6.."-9", 2)) == "?"
and (readBytes(addr6.."-5A")) == 0x3F
then print (DEC_HEX(IN).." Heavy Mech Armor "
..DEC_HEX(IN).." = "..readDouble(addr6.."-10")
.." double floating point");
end
end
object_destroy( scan );
end
local scan = AOBScan("20????05B0??A9042100000002");
if scan ~= nil and strings_getCount(scan) > 0 then
local scan_num = strings_getCount(scan);
for n = 0, scan_num - 1 do
local addr7 = strings_getString(scan, n);
addr7p=tonumber("0x"..addr7)+32
IN = addr7p
if (readString(addr7.."+27", 2)) == "@"
then print (DEC_HEX(IN).." Mech Armor multi-fuction address "
..DEC_HEX(IN).." = "..readDouble(addr7.."+20")
.." double floating point");
print (" "
.."set when you exit armor");
elseif (readString(addr7.."+27", 2)) == "?"
then print (DEC_HEX(IN).." Mech Armor multi-fuction address "
..DEC_HEX(IN).." = "..readDouble(addr7.."+20")
.." double floating point");
print (" "
.."set when you enter the area");
elseif (readBytes(addr7.."+27")) == 0x00
then print (DEC_HEX(IN).." Mech Armor multi-fuction address "
..DEC_HEX(IN).." = "..readDouble(addr7.."+20")
.." double floating point");
print (" "
.."set to this value when first entered");
print (" "
.."changes to double float 1 when damage starts");
end
end
object_destroy( scan );
end
local scan = AOBScan("C5009B102B000000????????0A????????????1E");
if scan ~= nil and strings_getCount(scan) > 0 then
local scan_num = strings_getCount(scan);
for n = 0, scan_num - 1 do
local addr8 = strings_getString(scan, n);
addr8p=tonumber("0x"..addr8)+24
IN = addr8p
if (readBytes(addr8.."+1F")) == 0x00
and (readBytes(addr8.."-32")) == 0x3F
then print (DEC_HEX(IN).." Heavy Mech Armor "
..DEC_HEX(IN).." = "..readDouble(addr8.."+18")
.." double floating point");
print (" "
.."set to this value before first use");
elseif (readString(addr8.."+1F", 2)) == "?"
and (readBytes(addr8.."-32")) == 0x3F
then print (DEC_HEX(IN).." Heavy Mech Armor "
..DEC_HEX(IN).." = "..readDouble(addr8.."+18")
.." double floating point");
end
end
object_destroy( scan );
end
local scan = AOBScan("0B0080??E0674D0100??0505");
if scan ~= nil and strings_getCount(scan) > 0 then
local scan_num = strings_getCount(scan);
for n = 0, scan_num - 1 do
local addr9 = strings_getString(scan, n);
addr9p=tonumber("0x"..addr9)-32
IN = addr9p
if (readBytes(addr9.."-4E")) == 0x80
and (readBytes(addr9.."-3D")) == 0x3F
then print (DEC_HEX(IN).." Light Mech Armor "
..DEC_HEX(IN).." = "..readFloat(addr9.."-20")
.." floating point");
print (" "
.."Float = 3F800D80 before entering Mech");
end
end
object_destroy( scan );
end
local scan = AOBScan("B08E1E20230000000000000040316300");
if scan ~= nil and strings_getCount(scan) > 0 then
local scan_num = strings_getCount(scan);
for n = 0, scan_num - 1 do
local addr9 = strings_getString(scan, n);
addr9p=tonumber("0x"..addr9)+16
IN = addr9p
if (readBytes(addr9.."-10")) == 0x5C
and (readBytes(addr9.."+80")) == 0xC5
then print (DEC_HEX(IN).." Light Mech Armor "
..DEC_HEX(IN).." = "..readFloat(addr9.."+10")
.." floating point");
print (" "
.."Float = 3F800000 before entering Mech");
end
end
object_destroy( scan );
end |
had a bit of fun getting the AOB script to works as the value changes a lot
address 0x0506?C44 is used for a lot of different values all double floating
points, -1, 1, 2, 3, 100 are a few I've noticed
the first & third address found point to the same address
|
|