Cheat Engine Forum Index Cheat Engine
The Official Site of Cheat Engine
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 


New to Cheat Engine
Goto page Previous  1, 2
 
Post new topic   Reply to topic    Cheat Engine Forum Index -> Cheat Engine Lua Scripting
View previous topic :: View next topic  
Author Message
IceTeaMan
Newbie cheater
Reputation: 1

Joined: 23 Jul 2011
Posts: 19

PostPosted: Sun Aug 28, 2011 11:44 pm    Post subject: Reply with quote

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
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Cheat Engine Forum Index -> Cheat Engine Lua Scripting All times are GMT - 6 Hours
Goto page Previous  1, 2
Page 2 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group

CE Wiki   IRC (#CEF)   Twitter
Third party websites