Difference between revisions of "Lua:Class:MemoryRecord"

From Cheat Engine
Jump to navigation Jump to search
(Properties)
m (Properties: Fixed typo in Color's description.)
 
(17 intermediate revisions by 6 users not shown)
Line 1: Line 1:
--Under Construction
+
[[Category:Lua]]
 
+
MemoryRecord '''class''': ('''Inheritance''': ''[[Lua:Class:Object|Object]]'')
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.
 
 
 
 
 
----
 
  
 +
The memory record objects are the entries you see in the address list.
  
 
== Properties ==
 
== Properties ==
  ID: Integer - Unique ID
+
; ID : integer
  Index: Integer - The index ID for this record. 0 is top. (ReadOnly)
+
: Unique ID.
  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
+
; Index : integer
  Type: ValueType - The variable type of this record. See vtByte to vtCustom
+
: The index ID for this record. 0 is top. (ReadOnly)
    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
+
; Description : string- The description of the memory record.
      Binary.Startbit: First bit to start reading from
 
      Binary.Size : Number of bits
 
  
    If the type is vtByteArray then the following properties are available
+
; Address : string
      Aob.Size : Number of bytes
+
: Get/set the interpretable address string. Useful for simple address settings.
  
  CustomTypeName: String - If the type is vtCustomType this will contain the name of the CustomType
+
; OffsetCount : integer
  Script: String - If the type is vtAutoAssembler this will contain the auto assembler script
+
: The number of offsets. Set to 0 for a normal address.
  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
+
; Offset[''index''] : integer
  Child[index] : Array to access the child records
+
: Array to access each offset.
  [index] = Child[index]
 
  
  HotkeyCount: integer - Number of hotkeys attached to this memory record
+
; CurrentAddress : integer
  Hotkey[] : Array to index the hotkeys
+
: The address the memoryrecord points to.
  
  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.
+
; Type : integer
  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.
+
: The variable type of this record. See vtByte to vtCustom
  OnDestroy: function() - Called when the memoryrecord is destroyed.
+
:* If the type is vtString then the following properties are available:
  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
+
:** String.Size: Number of characters in the string
  DontSave: boolean - Don't save this memoryrecord and it's children
+
:** 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
 +
:'''From ''defines.lua''''':
 +
vtByte=0
 +
vtWord=1
 +
vtDword=2
 +
vtQword=3
 +
vtSingle=4
 +
vtDouble=5
 +
vtString=6
 +
vtUnicodeString=7 --Only used by autoguess
 +
vtByteArray=8
 +
vtBinary=9
 +
vtAutoAssembler=11
 +
vtPointer=12 --Only used by autoguess and structures
 +
vtCustom=13
 +
vtGrouped=14
  
== Methods ==
+
; 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
  
'''getID'''()
+
; Value : string
  Returns the unique id of this memory record. Every memory record has an unique id
+
: The value in stringform.
  
 +
; IsGroupHeader : boolean
 +
: Set to true to change the memory record into a group header.
 +
: All properties and functions related to address, type, and value are ignored when true.
  
'''getHotkeyCount'''()
+
; Selected : boolean
  Returns the number of hotkeys assigned to this Cheat Entry
+
: Set to true if selected (ReadOnly)
  
 +
; Active : boolean
 +
: Set to true to activate/freeze, false to deactivate/unfreeze
  
'''getHotkey'''(index)
+
; Color : integer
  Returns a memoryrecordhotkey class
+
: The memory record's RGB color integer.
  
 +
; ShowAsHex : boolean
 +
: Self explanatory
  
'''getHotkeyByID'''(ID)
+
; ShowAsSigned : boolean
  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)
+
: Self explanatory
  
 +
; AllowIncrease : boolean
 +
: Allow value increasing, unfreeze will reset it to false
  
'''setDescription'''(description)
+
; AllowDecrease : boolean
  Sets the specified description for this entry
+
: Allow value decreasing, unfreeze will reset it to false
  
 +
; Count : integer
 +
: Number of children
  
'''getDescription'''()
+
; Child[''index''] : MemoryRecord
  Gets the current description of this entry
+
: Array to access the child records
  
 +
; HotkeyCount : integer
 +
: Number of hotkeys attached to this memory record.
  
'''getAddress'''()
+
; Hotkey[''index''] : [[Lua:Class:GenericHotkey|GenericHotkey]]
  Returns the address and optional offsets for a pointer (note that in 64-bit kernelmode addresses will be rounded down...)
+
: Array to index the hotkeys.
  
 +
; Options : string
 +
: A string of the set "Group Config" options in the format ''''[optionName,...]''''
 +
: Valid options are:
 +
moHideChildren
 +
moActivateChildrenAsWell
 +
moDeactivateChildrenAsWell
 +
moRecursiveSetValue
 +
moAllowManualCollapseAndExpand
 +
moManualExpandCollapse
 +
: example: '[moHideChildren,moAllowManualCollapseAndExpand,moManualExpandCollapse]'
  
'''setAddress'''(address,offsets OPTIONAL)
+
; Collapsed : boolean
  Sets the address of a entry. You can give as many offsets as you need
+
: only works when manual expand/collapse is set in group config options ('''moManualExpandCollapse''')
  
 +
; 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.
  
'''getType'''()
+
; OnDeactivate : function(memoryrecord,before,currentstate) : boolean
  Returns the Variable type. (vtByte to vtCustom)
+
: 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.
  
'''setType'''(vartype) 
+
; DontSave : boolean
  Sets the type of the entry
+
: Don't save this memoryrecord and it's children
  
 +
; DropDownLinked: boolean
 +
: if dropdown list refers to list of another memory record eg. (memrec name)
  
'''getValue'''()
+
; DropDownLinkedMemrec: string
  Returns the current value of the cheat table entry as a string
+
: Description of linked memrec or emptystring if not linked
  
 +
; DropDownList: StringList
 +
: list of "value:description" lines, lists are still separate objects when linked, read-write
  
'''setValue'''(value)
+
; DropDownReadOnly: boolean
  Sets the value of a cheat table entry
+
: true if 'Disallow manual user input' is set
  
 +
; DropDownDescriptionOnly: boolean
 +
: self explanatory
  
'''getScript'''() 
+
; DisplayAsDropDownListItem: boolean
  If the entry is of type vtAutoAssembler then you can get the script with this routine
+
: self explanatory
  
 +
; DropDownCount: integer
 +
: equivalent to .DropDownList.Count
  
'''setScript'''(script)
+
; DropDownValue: Array
 +
: Array to access values in DropDownList (ReadOnly)
  
 +
; DropDownDescription: Array
 +
: Array to access Descriptions in DropDownList (ReadOnly)
  
'''isActive'''()
+
== Methods ==
 
+
; getDescription() : string
 
+
: Returns the memory record's description.
'''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)
+
; setDescription()
  Registers a function to be called when a cheat entry is Deactivated
+
: Sets the memory record's description.
    function (memoryrecord, before, currentstate) boolean
 
    If before is true returning false will cause the deactivation to stop
 
  
 +
; getAddress() : integer - (integer, table)
 +
: Returns the interpretable addressstring of this record.
 +
: If it is a pointer, it returns a second result as a table filled with the offsets
  
'''onDestroy'''(function)  
+
; setAddress(''string'')
  Registers a function to be called when a cheat entry is delete
+
: Sets the interpretable address string, and if offsets are provided make it a pointer
    function (memoryrecord)
 
  
 +
; getOffsetCount() : integer
 +
: Returns the number of offsets for this memoryrecord
  
 +
; setOffsetCount(''integer'')
 +
: Lets you set the number of offsets
  
Example:
+
; getOffset(''index'') : integer
<pre>
+
: Gets the offset at the given index
al = getAddressList()
 
description1= [[Health]]
 
description2= [[Health Pointer]]
 
memoryrec1 = al.getMemoryRecordByDescription(description1)
 
memoryrec2 = al.getMemoryRecordByDescription(description2)
 
  
desc = memoryrec1.Description    --Gets the current memoryrecord's description
+
; setOffset(''index'', ''value'')
print(desc)
+
: Sets the offset at the given index
  
memoryrec1.Description=[[My new health description]]  --sets the memorydescription
+
; getCurrentAddress() &#58; integer
 +
: Returns the current address as an integer (the final result of the interpretable address and pointer offsets)
  
 +
; appendToEntry(''memrec'')
 +
: Appends the current memory record to the given memory record
  
value = memoryrec2.Value  --Gets the current value of the memory record.
+
; getHotkey(''index'') &#58; [[Lua:Class:GenericHotkey|GenericHotkey]]
print(value)
+
: Returns the hotkey from the hotkey array
  
newvalue = 66
+
; getHotkeyByID(''integer'') &#58; [[Lua:Class:GenericHotkey|GenericHotkey]]
memoryrec2.Value=newvalue  --sets value for the memoryrecord
+
: Returns the hotkey with the given id
  
if memoryrecord.Active then  --Checks if memoryrecord is in frozen state or not
+
; [''index''] : MemoryRecord
else
+
: Same as 'Child[''index'']'
memoryrec2.Active=false  -- freezes the memoryrecord, to unfreeze use memoryrecord_freeze
+
: Default accessor.
end
 
  
memoryrec2.Color=0x0000ff --Sets the color of the memoryrecord. Here Red. Color range {0x000000 to 0xFFFFFF)
+
== Examples ==
 +
<syntaxhighlight lang="lua">
 +
local addressList = getAddressList()
 +
local mrHealth = addressList.getMemoryRecordByDescription('Health')
 +
print(mrHealth.Description)
 +
print(mrHealth.Active and 'True' or 'False')
 +
</syntaxhighlight>
  
count = memoryrec2.HotkeyCount --Gets number of hotkeys associated with memoryrecord
+
{{LuaSeeAlso}}
print(count)                                    --From the image, We can see it is 2.   
 
  
----
+
=== Related Functions ===
 +
* [[Lua:getMainForm|getMainForm]]
 +
* [[Lua:getAddressList|getAddressList]]
  
* [[Lua|Lua Functions and Classes]]
+
=== Related Classes ===
 +
* [[Lua:Class:Addresslist|Addresslist]]

Latest revision as of 20:02, 6 September 2021

MemoryRecord class: (Inheritance: Object)

The memory record objects are the entries you see in the address list.

Properties[edit]

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[index] : integer
Array to access each offset.
CurrentAddress : integer
The address the memoryrecord points to.
Type : integer
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
From defines.lua:
vtByte=0
vtWord=1
vtDword=2
vtQword=3
vtSingle=4
vtDouble=5
vtString=6
vtUnicodeString=7 --Only used by autoguess
vtByteArray=8
vtBinary=9
vtAutoAssembler=11
vtPointer=12 --Only used by autoguess and structures
vtCustom=13
vtGrouped=14
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.
IsGroupHeader : boolean
Set to true to change the memory record into a group header.
All properties and functions related to address, type, and value are ignored when true.
Selected : boolean
Set to true if selected (ReadOnly)
Active : boolean
Set to true to activate/freeze, false to deactivate/unfreeze
Color : integer
The memory record's RGB 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
Count : integer
Number of children
Child[index] : MemoryRecord
Array to access the child records
HotkeyCount : integer
Number of hotkeys attached to this memory record.
Hotkey[index] : GenericHotkey
Array to index the hotkeys.
Options : string
A string of the set "Group Config" options in the format '[optionName,...]'
Valid options are:
moHideChildren
moActivateChildrenAsWell
moDeactivateChildrenAsWell
moRecursiveSetValue
moAllowManualCollapseAndExpand
moManualExpandCollapse
example: '[moHideChildren,moAllowManualCollapseAndExpand,moManualExpandCollapse]'
Collapsed : boolean
only works when manual expand/collapse is set in group config options (moManualExpandCollapse)
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.
DontSave : boolean
Don't save this memoryrecord and it's children
DropDownLinked: boolean
if dropdown list refers to list of another memory record eg. (memrec name)
DropDownLinkedMemrec: string
Description of linked memrec or emptystring if not linked
DropDownList: StringList
list of "value:description" lines, lists are still separate objects when linked, read-write
DropDownReadOnly: boolean
true if 'Disallow manual user input' is set
DropDownDescriptionOnly: boolean
self explanatory
DisplayAsDropDownListItem: boolean
self explanatory
DropDownCount: integer
equivalent to .DropDownList.Count
DropDownValue: Array
Array to access values in DropDownList (ReadOnly)
DropDownDescription: Array
Array to access Descriptions in DropDownList (ReadOnly)

Methods[edit]

getDescription() : string
Returns the memory record's description.
setDescription()
Sets the memory record's description.
getAddress() : integer - (integer, table)
Returns the interpretable addressstring of this record.
If it is a pointer, it returns a second result as a table filled with the offsets
setAddress(string)
Sets the interpretable address string, and if offsets are provided make it a pointer
getOffsetCount() : integer
Returns the number of offsets for this memoryrecord
setOffsetCount(integer)
Lets you set the number of offsets
getOffset(index) : integer
Gets the offset at the given index
setOffset(index, value)
Sets the offset at the given index
getCurrentAddress() : integer
Returns the current address as an integer (the final result of the interpretable address and pointer offsets)
appendToEntry(memrec)
Appends the current memory record to the given memory record
getHotkey(index) : GenericHotkey
Returns the hotkey from the hotkey array
getHotkeyByID(integer) : GenericHotkey
Returns the hotkey with the given id
[index
MemoryRecord
Same as 'Child[index]'
Default accessor.

Examples[edit]

 local addressList = getAddressList()
 local mrHealth = addressList.getMemoryRecordByDescription('Health')
 print(mrHealth.Description)
 print(mrHealth.Active and 'True' or 'False')

See also[edit]

Related Functions[edit]

Related Classes[edit]