Lua:Class:MemoryRecord

From Cheat Engine
Revision as of 23:58, 17 January 2017 by Dark Byte (talk | contribs) (Properties)
Jump to navigation Jump to search

--Under Construction

The class MemoryRecord are the entries in Cheat tables. This class is commonly used with Addresslist.


MemoryRecord Class

 The Memoryrecord class object describes a Cheat Table's Cheat Entry.




Properties

 ID: Integer - Unique ID
 Index: Integer - The index ID for this record. 0 is top. (ReadOnly)
 Description: string- The description of the memory record
 Address: string - Get/set the interpretable address string. Useful for simple address settings.
 OffsetCount: integer - The number of offsets. Set to 0 for a normal address
 Offset[] : integer - Array to access each offset
 OffsetText[] : string - Array to access each offset using the interpretable text style
 CurrentAddress: integer - The address the memoryrecord points to
 Type: ValueType - The variable type of this record. See vtByte to vtCustom
   If the type is vtString then the following properties are available:
    String.Size: Number of characters in the string
    String.Unicode: boolean
   If the type is vtBinary then the following properties are available
     Binary.Startbit: First bit to start reading from
     Binary.Size : Number of bits
   If the type is vtByteArray then the following properties are available
     Aob.Size : Number of bytes
 CustomTypeName: String - If the type is vtCustomType this will contain the name of the CustomType
 Script: String - If the type is vtAutoAssembler this will contain the auto assembler script
 Value: string - The value in stringform.
 Selected: boolean - Set to true if selected (ReadOnly)
 Active: boolean - Set to true to activate/freeze, false to deactivate/unfreeze
 Color: integer
 ShowAsHex: boolean - Self explanatory
 ShowAsSigned: boolean - Self explanatory
 AllowIncrease: boolean - Allow value increasing, unfreeze will reset it to false
 AllowDecrease: boolean - Allow value decreasing, unfreeze will reset it to false
 Collapsed: boolean - Set to true to collapse this record or false to expand it. Use expand/collapse methods for recursive operations. 
 IsGroupHeader: boolean - Set to true if the record was created as a Group Header with no address or value info. (ReadOnly)
 IsReadable: boolean - Set to false if record contains an unreadable address. NOTE: This property will not be set until the value property is accessed at least once. (ReadOnly)
 Count: Number of children
 Child[index] : Array to access the child records
 [index] = Child[index]
 HotkeyCount: integer - Number of hotkeys attached to this memory record
 Hotkey[] : Array to index the hotkeys
 OnActivate: function(memoryrecord,before,currentstate):boolean - The function to call when the memoryrecord will change (or changed) Active to true. If before is true, not returning true will cause the activation to stop.
 OnDeactivate: function(memoryrecord,before,currentstate):boolean - The function to call when the memoryrecord will change (or changed) Active to false. If before is true, not returning true will cause the deactivation to stop.
 OnDestroy: function() - Called when the memoryrecord is destroyed.
 OnGetDisplayValue: function(memoryrecord,valuestring):boolean,string - This function gets called when rendering the value of a memory record. Return true and a new string to override the value shown
 DontSave: boolean - Don't save this memoryrecord and it's children

Methods

getID()

 Returns the unique id of this memory record. Every memory record has an unique id


getHotkeyCount()

 Returns the number of hotkeys assigned to this Cheat Entry


getHotkey(index)

 Returns a memoryrecordhotkey class


getHotkeyByID(ID)

 Every hotkey in a memoryrecord gets an unique ID. This way you can always find the hotkey even if the order of hotkeys has changed (or deleted)


setDescription(description)

 Sets the specified description for this entry


getDescription()

 Gets the current description of this entry


getAddress()

 Returns the address and optional offsets for a pointer (note that in 64-bit kernelmode addresses will be rounded down...)


setAddress(address,offsets OPTIONAL)

 Sets the address of a entry. You can give as many offsets as you need


getType()

 Returns the Variable type. (vtByte to vtCustom)


setType(vartype)

 Sets the type of the entry


getValue()

 Returns the current value of the cheat table entry as a string


setValue(value)

 Sets the value of a cheat table entry


getScript()

 If the entry is of type vtAutoAssembler then you can get the script with this routine


setScript(script)


isActive()


freeze(updownfreeze OPTIONAL)

 Sets the entry to frozen state. updownfreeze is optional. 0=freeze, 1=allow increase, 2=allow decrease


unfreeze()

 Unfreezes an entry


setColor(colorrgb)

 Sets the color of the entry


appendToEntry(memoryrecord)

 Adds the entry to another entry


delete()

 It's unknown what this function does, all that is known is that after using this command other memrec routines with this table entry value don't work anymore...


onActivate(, function)

 Registers a function to be called when a cheat entry is Activated
   function (memoryrecord, before, currentstate) boolean
   If before is true returning false will cause the activation to stop


onDeactivate(function)

 Registers a function to be called when a cheat entry is Deactivated
   function (memoryrecord, before, currentstate) boolean
   If before is true returning false will cause the deactivation to stop


onDestroy(function)

 Registers a function to be called when a cheat entry is delete
   function (memoryrecord)


Example:

al = getAddressList()
description1= Health
description2= Health Pointer
memoryrec1 = al.getMemoryRecordByDescription(description1)
memoryrec2 = al.getMemoryRecordByDescription(description2)

desc = memoryrec1.Description    --Gets the current memoryrecord's description
print(desc)

memoryrec1.Description=My new health description  --sets the memorydescription


value = memoryrec2.Value  --Gets the current value of the memory record.
print(value)

newvalue = 66
memoryrec2.Value=newvalue   --sets value for the memoryrecord

if memoryrecord.Active then   --Checks if memoryrecord is in frozen state or not
else
memoryrec2.Active=false  -- freezes the memoryrecord, to unfreeze use memoryrecord_freeze
end

memoryrec2.Color=0x0000ff --Sets the color of the memoryrecord. Here Red. Color range {0x000000 to 0xFFFFFF)

count = memoryrec2.HotkeyCount --Gets number of hotkeys associated with memoryrecord
print(count)                                     --From the image, We can see it is 2.     


* Lua Functions and Classes