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 


Pompt user and handle results
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
Drivium
Advanced Cheater
Reputation: 0

Joined: 16 Apr 2013
Posts: 97

PostPosted: Tue May 24, 2022 11:39 pm    Post subject: Reply with quote

So, there's one small issue I realized - the address it stops on is not actually the address that allows me to change the game item (which is the whole point). I'm very careful to not click Yes until I see the object change in game, but it's still the wrong address. Not sure what's going on. It's like it changes the right address, then blow's past the address. It's like the prompt is behind by one and doesn't match the address shown. I'll add a video shortly.

Edit: https://streamable.com/eg639q

I know for a fact that the target address always ends in 0, but it never seems to display before or after changing it's value. Is there a way to ensure the last character of an address is 0? That would weed out a lot of bad results.
Back to top
View user's profile Send private message
ParkourPenguin
I post too much
Reputation: 137

Joined: 06 Jul 2014
Posts: 4250

PostPosted: Wed May 25, 2022 11:30 am    Post subject: Reply with quote

Have you considered using a pointer and/or code injection? aobscans for mutable data has always been bad IMO.

Anyway, if you read the documentation, aobscan has fastscan options:
Quote:
AOBScan("aobstring", protectionflags OPTIONAL, alignmenttype OPTIONAL, alignmentparam HALFOPTIONAL)
If the last digit is always 0, it should be something like:
Code:
AOBScan('12 34 AB CD', '+W-X-C', fsmLastDigits, '0')
fsmLastDigits, '0' means the last digit should be 0. fsmAligned means it should be aligned to a certain amount (e.g. '4' would be last digits 0, 4, 8, or C).
The address that's checked is the start of the pattern, so you might need to add some padding wildcards to align it properly.

_________________
I don't know where I'm going, but I'll figure it out when I get there.
Back to top
View user's profile Send private message
AylinCE
Grandmaster Cheater Supreme
Reputation: 30

Joined: 16 Feb 2017
Posts: 1227

PostPosted: Wed May 25, 2022 11:45 am    Post subject: Reply with quote

Drivium wrote:
So, there's one small issue I realized - the address it stops on is not actually the address that allows me to change the game item (which is the whole point).


That's what I was wondering.
Manually find the correct address and expand your scan aob code until it is unique.
In this way, you will have pinpointed the correct address without a query.

Extend your aob code to include before and after with wildcards (??).

_________________
Hi Hitler Different Trainer forms for you!
https://forum.cheatengine.org/viewtopic.php?t=619279
Enthusiastic people: Always one step ahead
Do not underestimate me Master: You were a beginner in the past
Back to top
View user's profile Send private message Visit poster's website MSN Messenger
Drivium
Advanced Cheater
Reputation: 0

Joined: 16 Apr 2013
Posts: 97

PostPosted: Wed May 25, 2022 3:19 pm    Post subject: Reply with quote

I did try the aob thing first. I searched on either side of my target value 25000 bytes. Only thing unique is my target value. Also, I can't get the pointer scan to return anything in Bluestacks (android emu) and hooking instructions also does not work. So, I'm trying to get creative.
Back to top
View user's profile Send private message
AylinCE
Grandmaster Cheater Supreme
Reputation: 30

Joined: 16 Feb 2017
Posts: 1227

PostPosted: Thu May 26, 2022 4:29 am    Post subject: Reply with quote

Aob not unique if there are 90 results.

Ok, if we order the symbols you assigned from 1-10, will making 10 deactivated symbols solve the problem?


Code:
unregistersymbol(block1)
unregistersymbol(block2)


EDIT:
We added the symbols to a table and completed the deactivation code with the symbols added to the table.

You should test it.

Code:
[ENABLE]
{$lua}
if syntaxcheck then return end

local aobTbl = {}
local SymTbl = {} --symbol table
local check = 0
local findChnge = 0
if checkTimer then checkTimer.Destroy() checkTimer=nil end
checkTimer=createTimer(MainForm) checkTimer.Interval=1000
checkTimer.Enabled=false

function aob_register(sym)
checkTimer.Enabled=false
aa = tonumber(findChnge) + 10
 if aa < #aobTbl then
  for i = 1, 10 do
   addy1 = tostring(aobTbl[tonumber(findChnge)])
  --instr.destroy()
   addy = tonumber(addy1, 16)
   local findsym = sym..i
   SymTbl[i] = findsym --> add symbol
   unregisterSymbol(findsym)
   registerSymbol(findsym, addy)
   writeInteger(sym,"3868")
   findChnge=tonumber(findChnge) + 1
   if i==10 then
    local answer= messageDialog('did it change?',mtWarning, mbYes,mbNo)
    if answer == mrYes then
     checkTimer.Enabled=false
     else --If "mrNo" the loop will repeat to change 10 more addresses.
     checkTimer.Enabled=true
    end
   end
  end
  else --The addresses listed in the table are sold out!
  showMessage("Ops! Something went wrong!\nCode not found!")
 end
end

function resTbl(aob)
checkTimer.Enabled=false
  instr = AOBScan(aob, "+r+w")
 if instr ~= nil then
  for i=0,stringlist_getCount(instr) -1 do
   aobTbl[i+1] = instr[i]
  end
  check = 1
  aob_register("block")
 end
end
--aob_register("block","e0 0e 00 00 ?? 00 ?? 00 ?? ?? ?? ?? ?? 00")

checkTimer.OnTimer=function()
 if check==0 then
  resTbl("e0 0e 00 00 ?? 00 ?? 00 ?? ?? ?? ?? ?? 00")
  else
  aob_register("block")
 end
end
checkTimer.Enabled=true

{$asm}
[DISABLE]

{$lua}
for i,k in pairs(SymTbl) do
 unregistersymbol(SymTbl[i])
end


----------------------------->>>
I also recommend Nox Player over Bluestacks (BS).
To compare;

1) Requires additional settings in BS CE (DBK). Nox does not require additional settings, it is user-friendly.
2) BS memory scan is very slow. Nox gives faster results.
3) BS is based on system operation like "Psicial Memory". Nox is always easily connected to CE in the "NoxVMHandle.exe" process.

Just a recommendation. Wink

_________________
Hi Hitler Different Trainer forms for you!
https://forum.cheatengine.org/viewtopic.php?t=619279
Enthusiastic people: Always one step ahead
Do not underestimate me Master: You were a beginner in the past
Back to top
View user's profile Send private message Visit poster's website MSN Messenger
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