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 


Address value logging/recording

 
Post new topic   Reply to topic    Cheat Engine Forum Index -> Cheat Engine Lua Scripting
View previous topic :: View next topic  
Author Message
Feduyketo
Newbie cheater
Reputation: 0

Joined: 05 Jul 2009
Posts: 19

PostPosted: Sun Jul 10, 2011 10:09 am    Post subject: Address value logging/recording Reply with quote

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
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 470

Joined: 09 May 2003
Posts: 25779
Location: The netherlands

PostPosted: Sun Jul 10, 2011 10:14 am    Post subject: Reply with quote

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
View user's profile Send private message MSN Messenger
Feduyketo
Newbie cheater
Reputation: 0

Joined: 05 Jul 2009
Posts: 19

PostPosted: Mon Jul 11, 2011 10:20 am    Post subject: Reply with quote

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
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 470

Joined: 09 May 2003
Posts: 25779
Location: The netherlands

PostPosted: Mon Jul 11, 2011 11:37 am    Post subject: Reply with quote

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)



The Extension 'zip' was deactivated by an board admin, therefore this Attachment is not displayed.


recorder.CT
 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
View user's profile Send private message MSN Messenger
paupav
Master Cheater
Reputation: 13

Joined: 15 Apr 2011
Posts: 314
Location: P. Sherman 42, Wallaby Way, Sydney

PostPosted: Mon Jul 18, 2011 3:07 pm    Post subject: Reply with quote

U mean like in wpe pro
Back to top
View user's profile Send private message
Feduyketo
Newbie cheater
Reputation: 0

Joined: 05 Jul 2009
Posts: 19

PostPosted: Mon Jul 18, 2011 5:54 pm    Post subject: Reply with quote

paupav wrote:
U mean like in wpe pro
How does that work?
Back to top
View user's profile Send private message
mattwbradbury
How do I cheat?
Reputation: 0

Joined: 14 Aug 2015
Posts: 2

PostPosted: Fri Dec 18, 2015 6:31 pm    Post subject: Reply with quote

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
View user's profile Send private message
Zanzer
I post too much
Reputation: 126

Joined: 09 Jun 2013
Posts: 3278

PostPosted: Fri Dec 18, 2015 6:39 pm    Post subject: Reply with quote

Did you check out http://forum.cheatengine.org/viewtopic.php?p=5636642#5636642
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