 |
Cheat Engine The Official Site of Cheat Engine
|
View previous topic :: View next topic |
Author |
Message |
Feduyketo Newbie cheater
Reputation: 0
Joined: 05 Jul 2009 Posts: 19
|
Posted: Sun Jul 10, 2011 10:09 am Post subject: Address value logging/recording |
|
|
This is a request.
1. You select a bunch of different addresses
2. Record the value of all selected addresses to its own txt file
3. It's like a table file
4. It records in realtime, 60 values per second
5. It has play, record and stop
6. The play button will open a txt file containing events over time
7. The play button plays only the events in a txt file, one time or loop
8. The record button records one event per millesecond
9. The stop button will save the address value recording as txt.
The txt file will look something like this:
0001 - 94638
0002 - 94638
0003 - 94638
0004 - 94638
0005 - 87601
0006 - 87601
0007 - 84315
0008 - 84315
0009 - 94638
0010 - 87601
0011 - 87601
0012 - 84315
0013 - 94638
0014 - 87601
0015 - 87601
0016 - 84315
The name of the txt file will have the same as description name.
The value of a address, changes over time.
It's recorded here. 60 events per second.
How many events recorded per second can be changed afterwards.
Last edited by Feduyketo on Sun Jul 10, 2011 10:21 am; edited 2 times in total |
|
Back to top |
|
 |
Dark Byte Site Admin
Reputation: 470
Joined: 09 May 2003 Posts: 25779 Location: The netherlands
|
Posted: Sun Jul 10, 2011 10:14 am Post subject: |
|
|
for what purpose do you need this? As I currently don't see much use of this in Cheat Engine, but I'm sure someone can write a lua script that does this. (readInteger and use the IO routines in lua)
Remember that a value can change a thousand times within a second
_________________
Do not ask me about online cheats. I don't know any and wont help finding them.
Like my help? Join me on Patreon so i can keep helping |
|
Back to top |
|
 |
Feduyketo Newbie cheater
Reputation: 0
Joined: 05 Jul 2009 Posts: 19
|
Posted: Mon Jul 11, 2011 10:20 am Post subject: |
|
|
Is this new cheat engine?
There is not a application that is similar in terms opening a windows xp ram process with features allowing you to insert a address with correct byte type. Then name its description and,
(let's start recording what happens in the value view. You decide yourself when the recording is finnished. It will a txt file that has a big chunk of numbers. Thousand numbers, hex or text. Depending on what type you selected. Each step has its own numbers.
Counted in correct direction.)
I don't know what this application name is called when you are in search of it in google. Hope it can record multiple addresses that has different description name. And not lose its name when saving after record.
|
|
Back to top |
|
 |
Dark Byte Site Admin
Reputation: 470
Joined: 09 May 2003 Posts: 25779 Location: The netherlands
|
Posted: Mon Jul 11, 2011 11:37 am Post subject: |
|
|
Here is an initial example of such a recorder and playback feature.
It's probably not as fast as you wish, but you might be able to tinker with the interval speed (currently set to 16 ms, but timers are unreliable)
Just extract recorder.zip to your ce folder and adjust main.lua and add require("recorder") under require("defines") (Or just load the .lua file manually and execute it)
This will add a new menu item to the top of ce so you can start the recorder
recorder.lua:
Code: |
function CEButton1Click(sender)
--[[
play
Open a file containing a log, then start a timer to replay that log
The file is build up as follow:
addresscount-addresslist-values
--]]
local filename=openDialog_execute(Recorder_OD)
if (filename ~= "" ) then
logfile=assert(io.open(filename, "r"))
control_setEnabled(Recorder_btnPlay, false) --we're playing
control_setEnabled(Recorder_btnRecord, false)
control_setEnabled(Recorder_btnStop, true)
addresslistCount=logfile:read("*line")
addresslist=createStringlist()
local i=0;
for i=0, addresslistCount-1 do
strings_add(addresslist, logfile:read("*line"))
end
--show the addresslist to the user
local al=memo_getLines(Recorder_Addresslist)
strings_clear(al) --delete the old list
for i=0, addresslistCount-1 do
strings_add(al, strings_getString(addresslist, i))
end
logger_currentAddress=0
timer_setEnabled(Recorder_Player, true) --start playback
end
end
function CEButton2Click(sender)
--[[
Create a file for the logging and create a timer that does the logging.
The timer's interval will be set to 16 (timers are not really accurate though)
--]]
--[[
first get the addresslist to check. Make a copy so the user does not mess
it up when editing during a log sessions
]]--
local al=memo_getLines(Recorder_Addresslist)
addresslistCount=strings_getCount(al)
if (addresslistCount == 0) then
messageDialog("Please insert at least one address to log", mtError, mbOK)
return 0;
end
addresslist=createStringlist()
local i=0
for i=0, addresslistCount-1 do
strings_add(addresslist, strings_getString(al, i))
end
local filename=openDialog_execute(Recorder_SD)
if (filename ~= "" ) then
logfile=assert(io.open(filename, "w"))
--still here so no error
control_setEnabled(Recorder_btnPlay, false) --we're recording
control_setEnabled(Recorder_btnRecord, false)
control_setEnabled(Recorder_btnStop, true)
--write the header (number of addresses, addresses)
--example for a 2 addresslist the log will be:
--2
--address1
--address2
--value1
--value2
--value1
--value2
--....
logfile:write(strings_getCount(addresslist), '\n')
for i=0, addresslistCount-1 do
logfile:write(strings_getString(addresslist, i), '\n')
end
timer_setEnabled(Recorder_Poller, true) --start logging
end
end
function CEButton3Click(sender)
-- showMessage('Stop')
if (logfile ~= nil) then
logfile:close()
logfile=nil
control_setEnabled(Recorder_btnPlay, true)
control_setEnabled(Recorder_btnRecord, true)
control_setEnabled(Recorder_btnStop, false)
timer_setEnabled(Recorder_Poller, false) --stop logging
timer_setEnabled(Recorder_Player, false) --stop playing
object_destroy(addresslist)
addresslist=nil
end
end
function PollerTimer(sender)
--pre: logfile is not nil
local i=0;
for i=0, addresslistCount-1 do
logfile:write(readInteger(strings_getString(addresslist, i)), '\n')
end
end
function PlayerTimer(sender)
--write the log values into the addresslist
local value=logfile:read("*line")
if (not value) then
CEButton3Click(btnStop) --stop playing
else
--get the current address
local address=strings_getString(addresslist, logger_currentAddress)
--print(address," - ", value)
writeInteger(address, value)
logger_currentAddress=(logger_currentAddress + 1) % addresslistCount;
end
end
function StartLogger(sender)
form_show(Recorder)
form_centerScreen(Recorder)
end
--load the form and create a menuitem in the mainform
Recorder=createFormFromFile(getCheatEngineDir().."recorder.frm")
form_setDoNotSaveInTable(Recorder,true) --designed with it on off course,
mainmenu=form_getMenu(getMainForm())
mainmenuitem=menu_getItems(mainmenu)
topmenuitem=createMenuItem(mainmenu)
menuItem_setCaption(topmenuitem,"Log/Playback")
menuItem_add(mainmenuitem, topmenuitem)
loggermenuitem=createMenuItem(mainmenu)
menuItem_setCaption(loggermenuitem,"Start address recorder")
menuItem_setShortcut(loggermenuitem,"Ctrl+R")
menuItem_onClick(loggermenuitem, StartLogger)
menuItem_add(topmenuitem, loggermenuitem)
|
(recorder.frm is in the .zip)
Description: |
The CT used to design with (just in case people are wondering) |
|
 Download |
Filename: |
recorder.CT |
Filesize: |
5.29 KB |
Downloaded: |
1563 Time(s) |
_________________
Do not ask me about online cheats. I don't know any and wont help finding them.
Like my help? Join me on Patreon so i can keep helping |
|
Back to top |
|
 |
paupav Master Cheater
Reputation: 13
Joined: 15 Apr 2011 Posts: 314 Location: P. Sherman 42, Wallaby Way, Sydney
|
Posted: Mon Jul 18, 2011 3:07 pm Post subject: |
|
|
U mean like in wpe pro
|
|
Back to top |
|
 |
Feduyketo Newbie cheater
Reputation: 0
Joined: 05 Jul 2009 Posts: 19
|
Posted: Mon Jul 18, 2011 5:54 pm Post subject: |
|
|
paupav wrote: | U mean like in wpe pro | How does that work?
|
|
Back to top |
|
 |
mattwbradbury How do I cheat?
Reputation: 0
Joined: 14 Aug 2015 Posts: 2
|
Posted: Fri Dec 18, 2015 6:31 pm Post subject: |
|
|
For me, I'd like to be able to record values at a specific interval (say once a second). For a game like FO4, for example, I could find the X, Y, and Z position of my player, and run around the map collecting my "GPS" coordinates via cheat engine. I can then put this information into a mapping system and create all kinds of interesting content with it.
I did try downloading the provided lua script, but it looks like it had been removed, and I'm not sure where to inject the provided example code into Cheat Engine.
|
|
Back to top |
|
 |
Zanzer I post too much
Reputation: 126
Joined: 09 Jun 2013 Posts: 3278
|
|
Back to top |
|
 |
|
|
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
|
|