Difference between revisions of "Lua:autoAssemble"

From Cheat Engine
Jump to navigation Jump to search
(no special chars in syntaxhightlighting needed)
 
(18 intermediate revisions by 3 users not shown)
Line 1: Line 1:
'''function''' autoAssemble(''AutoAssemblerScript'')
+
[[Category:Lua]]
 +
[[Category:Assembler]]
 +
'''function''' autoAssemble(''AutoAssemblerScript'', ''TargetSelf'' OPTIONAL, ''DisableInfo'' OPTIONAL) ''':''' nil,errorstring '''-''' boolean, table
  
Executes the given string by ce's auto assembler.
+
'''function''' autoAssemble(''AutoAssemblerScript'', ''DisableInfo'' OPTIONAL) ''':''' nil,errorstring '''-''' boolean, table
  
tip: Use [[  ]] quotes for multiline script.
+
runs the auto assembler with the given text. Returns true on success, with as secondary a table you can use when disabling (if ''TargetSelf'' is set it will assemble into Cheat Engine itself). If ''DisableInfo'' is provided the [Disable] section will be handled.
  
Example:
+
Tip: Use '[[ ]]' or '[==[ ]==]' quotes for multiline script.
  autoAssemble([[
 
    alloc(myscript)
 
    label(returnhere)
 
   
 
    myscript:
 
    mov eax,123
 
    jmp returnhere
 
   
 
    00400500:
 
    jmp myscript
 
    returnhere:   
 
  ]])
 
  
 +
=== Function Parameters ===
  
===Function Parameters===
 
 
{|width="85%" cellpadding="10%" cellpadding="5%" cellspacing="0" border="0"
 
{|width="85%" cellpadding="10%" cellpadding="5%" cellspacing="0" border="0"
 
!align="left"|Parameter
 
!align="left"|Parameter
Line 27: Line 17:
 
|-
 
|-
 
|AutoAssemblerScript
 
|AutoAssemblerScript
|String
+
|string
|The script to execute by the auto assembler
+
|The script to run with Cheat Engine's auto assembler
 +
|-
 +
|TargetSelf
 +
|boolean
 +
|If set it will assemble into Cheat Engine itself
 +
|-
 +
|DisableInfo
 +
|boolean
 +
|If provided the [Disable] section will be handled
 
|}
 
|}
  
 +
{|width="85%" cellpadding="10%" cellpadding="5%" cellspacing="0" border="0"
 +
!align="left"|Parameter
 +
!align="left"|Type
 +
!style="width: 80%;background-color:white;" align="left"|Description
 +
|-
 +
|AutoAssemblerScript
 +
|string
 +
|The script to run with Cheat Engine's auto assembler
 +
|-
 +
|DisableInfo
 +
|boolean
 +
|If provided the [Disable] section will be handled
 +
|}
 +
 +
 +
 +
== Examples ==
 +
 +
<syntaxhighlight lang="lua">
 +
  autoAssemble("{$lua}\n print('Printed Form Auto Assembler Script!')")
 +
 +
 +
  local scriptStr = [[
 +
    alloc(memExample)
 +
    label(returnHere)
 +
 +
    memExample:
 +
      mov eax,123
 +
      jmp returnHere
 +
    &nbsp;
 +
    00400500:
 +
      jmp memExample
 +
      returnHere:
 +
]]
 +
 +
  if autoAssemble(scriptStr) then
 +
    print('The auto assembler script was successful.')
 +
  else
 +
    print('There was an error with the auto assembler script.')
 +
  end
 +
 +
 +
  local scriptStr = [==[
 +
    alloc(memExample)
 +
    label(returnHere)
 +
   
 +
    memExample:
 +
      mov eax,123
 +
      jmp returnHere
 +
   
 +
    00400500:
 +
      jmp memExample
 +
      returnHere:
 +
  ]==]
 +
  ---- Enable script
 +
  local enabledOk, disableInfo = autoAssemble(scriptStr)
 +
  if enabledOk then
 +
    print('The auto assembler script was enabled successfully.')
 +
  else
 +
    print('There was an error enabling the auto assembler script.')
 +
  end
 +
  ---- Disable script
 +
  local disabledOk = autoAssemble(scriptStr, disableInfo)
 +
  if disabledOk then
 +
    disableInfo = nil
 +
    print('The auto assembler script was disabled successfully.')
 +
  else
 +
    print('There was an error disabling the auto assembler script.')
 +
  end
 +
 +
 +
  local scriptStr = [[
 +
    alloc(memExample2)
 +
    memExample2:
 +
      dd (float)364.12458729
 +
      dd (float)12.65594753
 +
      dd (float)50.75331054
 +
      dd 0
 +
      // player base
 +
      dq 0
 +
      // map base
 +
      dq 0
 +
  ]]
 +
 +
  if not autoAssemble(scriptStr, true) then
 +
    return 1, 'There was an error with the auto assembler script.'
 +
  end
 +
</syntaxhighlight>
 +
 +
{{LuaSeeAlso}}
  
== See also ==
+
=== Related Functions ===
* [[Lua]]
+
* [[Lua:autoAssembleCheck|autoAssembleCheck]]
 +
* [[Lua:AOBScan|AOBScan]]
 +
* [[Lua:disassemble|disassemble]]
 +
* [[Lua:getInstructionSize|getInstructionSize]]
 +
* [[Lua:getPreviousOpcode|getPreviousOpcode]]
 +
* [[Lua:allocateSharedMemory|allocateSharedMemory]]
 +
* [[Lua:mapMemory|mapMemory]]
 +
* [[Lua:unmapMemory|unmapMemory]]
 +
* [[Lua:readBytes|readBytes]]
 +
* [[Lua:readPointer|readPointer]]
 +
* [[Lua:writeBytes|writeBytes]]
 +
* [[Lua:readBytesLocal|readBytesLocal]]
 +
* [[Lua:readPointerLocal|readPointerLocal]]
 +
* [[Lua:writeBytesLocal|writeBytesLocal]]
 +
* [[Lua:wordToByteTable|wordToByteTable]]
 +
* [[Lua:dwordToByteTable|dwordToByteTable]]
 +
* [[Lua:qwordToByteTable|qwordToByteTable]]
 +
* [[Lua:floatToByteTable|floatToByteTable]]
 +
* [[Lua:doubleToByteTable|doubleToByteTable]]
 +
* [[Lua:stringToByteTable|stringToByteTable]]
 +
* [[Lua:wideStringToByteTable|wideStringToByteTable]]
 +
* [[Lua:byteTableToWord|byteTableToWord]]
 +
* [[Lua:byteTableToDword|byteTableToDword]]
 +
* [[Lua:byteTableToQword|byteTableToQword]]
 +
* [[Lua:byteTableToFloat|byteTableToFloat]]
 +
* [[Lua:byteTableToDouble|byteTableToDouble]]
 +
* [[Lua:byteTableToString|byteTableToString]]
 +
* [[Lua:byteTableToWideString|byteTableToWideString]]

Latest revision as of 08:35, 18 May 2019

function autoAssemble(AutoAssemblerScript, TargetSelf OPTIONAL, DisableInfo OPTIONAL) : nil,errorstring - boolean, table

function autoAssemble(AutoAssemblerScript, DisableInfo OPTIONAL) : nil,errorstring - boolean, table

runs the auto assembler with the given text. Returns true on success, with as secondary a table you can use when disabling (if TargetSelf is set it will assemble into Cheat Engine itself). If DisableInfo is provided the [Disable] section will be handled.

Tip: Use '[[ ]]' or '[==[ ]==]' quotes for multiline script.

Function Parameters[edit]

Parameter Type Description
AutoAssemblerScript string The script to run with Cheat Engine's auto assembler
TargetSelf boolean If set it will assemble into Cheat Engine itself
DisableInfo boolean If provided the [Disable] section will be handled
Parameter Type Description
AutoAssemblerScript string The script to run with Cheat Engine's auto assembler
DisableInfo boolean If provided the [Disable] section will be handled


Examples[edit]

  autoAssemble("{$lua}\n print('Printed Form Auto Assembler Script!')")


  local scriptStr = [[
    alloc(memExample)
    label(returnHere)

    memExample:
      mov eax,123
      jmp returnHere
    &nbsp;
    00400500:
      jmp memExample
      returnHere:
 ]]

  if autoAssemble(scriptStr) then
    print('The auto assembler script was successful.')
  else
    print('There was an error with the auto assembler script.')
  end


  local scriptStr = [==[
    alloc(memExample)
    label(returnHere)
     
    memExample:
      mov eax,123
      jmp returnHere
     
    00400500:
      jmp memExample
      returnHere:
  ]==]
  ---- Enable script
  local enabledOk, disableInfo = autoAssemble(scriptStr)
  if enabledOk then
    print('The auto assembler script was enabled successfully.')
  else
    print('There was an error enabling the auto assembler script.')
  end
  ---- Disable script
  local disabledOk = autoAssemble(scriptStr, disableInfo)
  if disabledOk then
    disableInfo = nil
    print('The auto assembler script was disabled successfully.')
  else
    print('There was an error disabling the auto assembler script.')
  end


  local scriptStr = [[
    alloc(memExample2)
    memExample2:
      dd (float)364.12458729
      dd (float)12.65594753
      dd (float)50.75331054
      dd 0
      // player base
      dq 0
      // map base
      dq 0
  ]]
 
  if not autoAssemble(scriptStr, true) then
    return 1, 'There was an error with the auto assembler script.'
  end

See also[edit]

Related Functions[edit]