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 


Save value

 
Post new topic   Reply to topic    Cheat Engine Forum Index -> Cheat Engine Lua Scripting
View previous topic :: View next topic  
Author Message
kinako
How do I cheat?
Reputation: 0

Joined: 09 Jan 2022
Posts: 9
Location: Japan

PostPosted: Thu Jan 13, 2022 8:41 am    Post subject: Save value Reply with quote

I want to save the current value when I press the save button and reflect that value when I press the load button (I want to keep the data even if I close the game and exit the cheat engine) This cannot be saved Game progress Situation I wanted to save the status.
Back to top
View user's profile Send private message
LeFiXER
Grandmaster Cheater Supreme
Reputation: 20

Joined: 02 Sep 2011
Posts: 1055
Location: 0x90

PostPosted: Thu Jan 13, 2022 10:04 am    Post subject: Reply with quote

Read the value, save the value to a text file. Reload the game then read the value from the text file and write the value.
Back to top
View user's profile Send private message
kinako
How do I cheat?
Reputation: 0

Joined: 09 Jan 2022
Posts: 9
Location: Japan

PostPosted: Thu Jan 13, 2022 10:21 am    Post subject: Reply with quote

thank you for your reply. that is
How can I write and read?
Back to top
View user's profile Send private message
ByTransient
Expert Cheater
Reputation: 5

Joined: 05 Sep 2020
Posts: 240

PostPosted: Thu Jan 13, 2022 11:58 am    Post subject: Reply with quote

https://forum.cheatengine.org/viewtopic.php?p=5257849#5257849

or

https://forum.cheatengine.org/viewtopic.php?p=5701879#5701879
Back to top
View user's profile Send private message
kinako
How do I cheat?
Reputation: 0

Joined: 09 Jan 2022
Posts: 9
Location: Japan

PostPosted: Fri Jan 14, 2022 7:58 am    Post subject: Reply with quote

I saw it but it didn't work
Back to top
View user's profile Send private message
LeFiXER
Grandmaster Cheater Supreme
Reputation: 20

Joined: 02 Sep 2011
Posts: 1055
Location: 0x90

PostPosted: Fri Jan 14, 2022 11:23 am    Post subject: Reply with quote

kinako wrote:
I saw it but it didn't work


It is a very broad statement. What is it? What didn't work? What error messages did you see?
Back to top
View user's profile Send private message
ByTransient
Expert Cheater
Reputation: 5

Joined: 05 Sep 2020
Posts: 240

PostPosted: Sat Jan 15, 2022 8:24 am    Post subject: Reply with quote

1) Save: Saves the address list to a txt file, also copies it to the first list box. Note: Make sure you type the listing name in the box next to the button.
2) DescSave: Saves the change made in the first list box to the file named in the first edit box.
3) Load: Loads the data in the txt file with the name written in the edit box next to it, into the second list box.
4) Auto Save: When clicked and "true", it automatically saves the address list to the named file in the first edit box. (The default recording interval is 1.5 seconds)
5) Open Save Folder: Opens the folder containing the records (.txt files).
6) Add Address List: Adds the entire list in the second list box to the Address list.
7) Optional: If any row is double-clicked in the second list box, the clicked row is added to the Address list.

Edit or use the code you need from inside.

Code:
function StartLogger()
if f then f.destroy() f = nil end

f = createForm()
f.Position=poDesktopCenter f.Width=525 f.Height=275
f.caption="Address List Recorder"

local m1=createMemo(f)
m1.Height=180 m1.Left=10 m1.Top=50 m1.Width=240
m1.WordWrap=false m1.ScrollBars="ssAutoBoth"

local m2=createMemo(f)
m2.Height=180 m2.Left=275 m2.Top=50 m2.Width=240
m2.WordWrap=false m2.ScrollBars="ssAutoBoth"

local b1=createButton(f)
b1.Left=10 b1.Top=12 b1.caption="Save"

local b2=createButton(f)
b2.Left=439 b2.Top=12 b2.caption="Load"

local b3=createButton(f)
b3.Left=395 b3.Top=240 b3.caption="Add Address List" b3.Width=120

local b4=createButton(f)
b4.Left=10 b4.Top=240 b4.caption="Auto Save - false" b4.Width=120

local b5=createButton(f)
b5.Left=202 b5.Top=240 b5.caption="Open Save Folder" b5.Width=121

local b6=createButton(f)
b6.Left=220 b6.Top=12 b6.caption="DescSave" b6.Width=85

local e1=createEdit(f)
e1.Left=95 e1.Top=13 e1.Width=115 e1.ShowHint=true e1.TextHint="Save File Name?"

local e2=createEdit(f)
e2.Left=315 e2.Top=13 e2.Width=115 e2.ShowHint=true e2.TextHint="Load File Name?"
--############################################################################--


local sf = getCheatEngineDir().."\\autorun\\"
if sf then
os.execute([[mkdir "]]..sf..[[\MyHackList"]])
end

pth = (sf.."MyHackList\\") --or pth=[[C:\Users\username\Desktop\MyHackList\]]

b5.OnClick=function()
shellExecute(pth)
end

function ListSave()
--local index = 1
local text=pth..e1.Text..".txt"
if text then
local settingsFile = io.open(text, "w")
    if (settingsFile ~= nil) then
      settingsFile:write(control_getCaption(m1))
      settingsFile:close()
    end
  end
end

function ListLoad() --Memo2
local text2=pth..e2.Text..".txt"
  if text2 then
    local settingsFile = io.open(text2, "r")
    if (settingsFile ~= nil) then
      m2.Lines.Text = settingsFile:read("*a"):gsub("\n\r", "")
      settingsFile:close()
    end
  end
end
--openProcess("chrome.exe")
local values=""

if addrrt then addrrt.destroy() end
addrrt = createTimer()  --or auto "true"
addrrt.Interval=1500 addrrt.Enabled=false

function loadList()
sleep(100)
  local al=GetAddressList()
  for i=0, al.Count-1 do

    values=(i.."___"..al[i].Description.."___"..al[i].Address.."___"..al[i].Value.."___\n"):gsub(' ','_');
m1.Lines.Add(values)

  end
sleep(300)
ListSave()
end

b3.OnClick=function()
if m2.Lines.Text=="" then
showMessage("The list does not exist, please create a list from the 'Load' button.")
else
  local al = getAddressList()
sleep(100)
  for i=0, m2.Lines.count-1 do
  local almr = al.createMemoryRecord()
  des, addrr, vle=string.match(m2.Lines[i],"___(.-)___(.-)___(.-)___")
  almr.Description=des
  almr.Address=addrr
  almr.Value=vle

  end
end
end

m2.OnDblClick=function(sender, button, x, y)
  local al = getAddressList()
    local caption=(m2.SelText):gsub(' ','_');

    counts=string.match(caption,"(.-)___")
    counts=tonumber(counts)
    caption=m2.Lines[counts]
sleep(100)
    if caption==nil then
showMessage("Please select the line number at the beginning of the line.")
  else
  local almr = al.createMemoryRecord()
  des, addrr=string.match(caption,"___(.-)___(.-)___(.-)___")
  almr.Description=des
  almr.Address=addrr
  almr.Value=vle
   end
  end

b1.OnClick=function() if e1.Text=="" then
showMessage("Please enter a valid list name!")
else loadList() end end

b2.OnClick=function() if e2.Text=="" then
showMessage("Please enter a valid list name!")
else ListLoad() end end

b4.OnClick=function() if e1.Text=="" then
showMessage("Please enter a valid list name!")
else if addrrt.Enabled==false then
addrrt.Enabled=true
b4.caption="Auto Save - true"
else
addrrt.Enabled=false
b4.caption="Auto Save - false"
end
end
end

b6.OnClick=function() if e1.Text=="" then
showMessage("Please enter a valid list name!")
else ListSave() end end

addrrt.OnTimer=ListSave
end

StartLogger()


If you want to use this code in CE menu add below code and pack all code as ".lua" and drop it in CE>>autorun folder.

Code:
--StartLogger()

mf=getMainForm()
mainmenu=mf.Menu.Items

topmenuitem=createMenuItem(mf.mainmenu)
topmenuitem.Caption="SaveAddr"
mainmenu.insert(mainmenu.Count-1, topmenuitem)

loggermenuitem=createMenuItem(topmenuitem)
menuItem_setCaption(loggermenuitem,"AddressRecorder")
menuItem_setShortcut(loggermenuitem,"Ctrl+R")
menuItem_onClick(loggermenuitem, StartLogger)
menuItem_add(topmenuitem, loggermenuitem)


For more see here:
https://forum.cheatengine.org/search.php
Back to top
View user's profile Send private message
kinako
How do I cheat?
Reputation: 0

Joined: 09 Jan 2022
Posts: 9
Location: Japan

PostPosted: Sat Jan 15, 2022 12:03 pm    Post subject: Reply with quote

My explanation was inadequate.
What I want to do is to add a save function in LUA to a form that I have already created on my end.
All I want to do is get the value from the given address (no input box needed, it will be pre-filled by LUA), write it to the text, save it when I click the save button, load it when I click the load button, and replace the value.
Sorry, but I don't know much about this kind of complexity.
I could do it if I knew how to output to TXT (specify a directory if possible), how to load and replace, and how to get the current value from the address.
I'm sorry if I'm being selfish.
But that was not what I was looking for.
Back to top
View user's profile Send private message
ByTransient
Expert Cheater
Reputation: 5

Joined: 05 Sep 2020
Posts: 240

PostPosted: Sat Jan 15, 2022 1:06 pm    Post subject: Reply with quote

Code:
local sf = os.getenv("USERPROFILE") .. "\\Documents\\";
if sf then
os.execute([[mkdir "]]..sf..[[\MyHackList1"]]) -- create folder
end


local pth=sf..[[MyHackList1\]] -- or sf.."My Cheat Tables\\"
--print(pth)


function ListLoad(fileName)
local name = pth..fileName..".txt"
local text2=""
  if name then
    local settingsFile = io.open(name, "r")
    if (settingsFile ~= nil) then
      text2 = settingsFile:read("*a")
      settingsFile:close()
    end
  end
  --print("load: "..text2)
  return text2
end

function ListSave(val,fileName)
local name = pth..fileName..".txt" --"yourSaveFileName.txt"
--print("name: "..name)
--print(text.." - "..val)
if name then
local settingsFile = io.open(name, "w")
    if (settingsFile ~= nil) then
      settingsFile:write(val)
      settingsFile:close()
    end
  end
end

--rst=(readInteger("06D01524")) -- your address?
--print(rst)
--UDF1.CEButton1.OnClick=function() --save button function
ListSave(readInteger("06D01524"),"yourSaveFileName")
--end

--UDF1.CEButton2.OnClick=function() --load button function
--rst1=ListLoad("yourSaveFileName")
--print("rst1: "..rst1)
--end
Back to top
View user's profile Send private message
kinako
How do I cheat?
Reputation: 0

Joined: 09 Jan 2022
Posts: 9
Location: Japan

PostPosted: Tue Jan 18, 2022 7:29 am    Post subject: Reply with quote

If you enter the base address, it will not be saved properly. How do you handle the base address?
Or how do you handle this with a pointer?
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
Page 1 of 1

 
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