Difference between revisions of "Lua:autoAssemble"

From Cheat Engine
Jump to navigation Jump to search
(no special chars in syntaxhightlighting needed)
 
(11 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
[[Category:Lua]]
 
[[Category:Lua]]
 
[[Category:Assembler]]
 
[[Category:Assembler]]
'''function''' autoAssemble(''AutoAssemblerScript'', ''TargetSelf'' OPTIONAL) ''':''' nil '''-''' boolean
+
'''function''' autoAssemble(''AutoAssemblerScript'', ''TargetSelf'' OPTIONAL, ''DisableInfo'' OPTIONAL) ''':''' nil,errorstring '''-''' boolean, table
  
Runs the given string with Cheat Engine's auto assembler. Returns 'true' on success.
+
'''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.
 
Tip: Use '[[ ]]' or '[==[ ]==]' quotes for multiline script.
Line 21: Line 23:
 
|boolean
 
|boolean
 
|If set it will assemble into Cheat Engine itself
 
|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 ==
 
== Examples ==
  
 
+
<syntaxhighlight lang="lua">
 
   autoAssemble("{$lua}\n print('Printed Form Auto Assembler Script!')")
 
   autoAssemble("{$lua}\n print('Printed Form Auto Assembler Script!')")
  
  
   local scriptStr = &#91;==&#91;
+
   local scriptStr = [[
 
     alloc(memExample)
 
     alloc(memExample)
 
     label(returnHere)
 
     label(returnHere)
    &nbsp;
+
 
 
     memExample:
 
     memExample:
 
       mov eax,123
 
       mov eax,123
Line 41: Line 62:
 
       jmp memExample
 
       jmp memExample
 
       returnHere:
 
       returnHere:
  &#93;==&#93;
+
]]
  &nbsp;
+
 
 
   if autoAssemble(scriptStr) then
 
   if autoAssemble(scriptStr) then
 
     print('The auto assembler script was successful.')
 
     print('The auto assembler script was successful.')
Line 50: Line 71:
  
  
   local scriptStr = &#91;==&#91;
+
   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)
 
     alloc(memExample2)
 
     memExample2:
 
     memExample2:
Line 61: Line 111:
 
       // map base
 
       // map base
 
       dq 0
 
       dq 0
   &#93;==&#93;
+
   ]]
  &nbsp;
+
 
   if not autoAssemble(scriptStr, true) then
 
   if not autoAssemble(scriptStr, true) then
 
     return 1, 'There was an error with the auto assembler script.'
 
     return 1, 'There was an error with the auto assembler script.'
 
   end
 
   end
 +
</syntaxhighlight>
  
 
+
{{LuaSeeAlso}}
== See also ==
 
* [[Lua]]
 
* [[Help_File:Script engine|Script engine]]
 
  
 
=== Related Functions ===
 
=== Related Functions ===
* [[AOBScan]]
+
* [[Lua:autoAssembleCheck|autoAssembleCheck]]
* [[disassemble]]
+
* [[Lua:AOBScan|AOBScan]]
* [[getInstructionSize]]
+
* [[Lua:disassemble|disassemble]]
* [[getPreviousOpcode]]
+
* [[Lua:getInstructionSize|getInstructionSize]]
* [[allocateSharedMemory]]
+
* [[Lua:getPreviousOpcode|getPreviousOpcode]]
* [[mapMemory]]
+
* [[Lua:allocateSharedMemory|allocateSharedMemory]]
* [[unmapMemory]]
+
* [[Lua:mapMemory|mapMemory]]
* [[readBytes]]
+
* [[Lua:unmapMemory|unmapMemory]]
* [[readPointer]]
+
* [[Lua:readBytes|readBytes]]
* [[writeBytes]]
+
* [[Lua:readPointer|readPointer]]
* [[readBytesLocal]]
+
* [[Lua:writeBytes|writeBytes]]
* [[readPointerLocal]]
+
* [[Lua:readBytesLocal|readBytesLocal]]
* [[writeBytesLocal]]
+
* [[Lua:readPointerLocal|readPointerLocal]]
* [[wordToByteTable]]
+
* [[Lua:writeBytesLocal|writeBytesLocal]]
* [[dwordToByteTable]]
+
* [[Lua:wordToByteTable|wordToByteTable]]
* [[qwordToByteTable]]
+
* [[Lua:dwordToByteTable|dwordToByteTable]]
* [[floatToByteTable]]
+
* [[Lua:qwordToByteTable|qwordToByteTable]]
* [[doubleToByteTable]]
+
* [[Lua:floatToByteTable|floatToByteTable]]
* [[stringToByteTable]]
+
* [[Lua:doubleToByteTable|doubleToByteTable]]
* [[wideStringToByteTable]]
+
* [[Lua:stringToByteTable|stringToByteTable]]
* [[byteTableToWord]]
+
* [[Lua:wideStringToByteTable|wideStringToByteTable]]
* [[byteTableToDword]]
+
* [[Lua:byteTableToWord|byteTableToWord]]
* [[byteTableToQword]]
+
* [[Lua:byteTableToDword|byteTableToDword]]
* [[byteTableToFloat]]
+
* [[Lua:byteTableToQword|byteTableToQword]]
* [[byteTableToDouble]]
+
* [[Lua:byteTableToFloat|byteTableToFloat]]
* [[byteTableToString]]
+
* [[Lua:byteTableToDouble|byteTableToDouble]]
* [[byteTableToWideString]]
+
* [[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]