Difference between revisions of "Lua Language"

From Cheat Engine
Jump to navigation Jump to search
Line 74: Line 74:
 
repeat                        -- repeat statements
 
repeat                        -- repeat statements
 
   --statements
 
   --statements
until BooleanExpression      -- until BooleanExpression is true
+
until BooleanExpression      -- until BooleanExpression becomes true
  
for i = start, stop, step do  -- any numerical value for start, stop and step
+
for i = Start, Stop, Step do  -- any numerical value for Start, Stop and Step
 
   --statements
 
   --statements
end                          -- loop while i <= stop (for positive step) or i >= stop (for negative step)
+
end                          -- loop while i <= Stop (for positive Step) or i >= Stop (for negative Step)
 +
 
 +
for Key, Val in pairs(Tab) do -- it loops over all the table Tab using standard iterator function pairs
 +
  --statements                -- key and val available inside the for loop
 +
end
 
</pre>
 
</pre>
  
Line 84: Line 88:
 
<pre>
 
<pre>
 
i=5
 
i=5
while i<80 do   -- do statements while BooleanExpression is true
+
while i<80 do                 -- it loops for i equal to 5, 10, 20, and 40
 
   i=i*2
 
   i=i*2
 
end
 
end
  
repeat                        -- repeat statements
+
i=5
  --statements
+
repeat                        -- it loops for i equal to 10, 20, 40, 80
until BooleanExpression      -- until BooleanExpression is true
+
  i=i*2
 +
until i==80
 +
 
 +
i=5
 +
repeat
 +
i=i*2
 +
until i==82                  -- warning: this loop will never ending and will block the Lua Engine & Cheat Engine
  
 
for i = 10, 14 do            -- it loops for i equal to 10, 11, 12, 13, and 14
 
for i = 10, 14 do            -- it loops for i equal to 10, 11, 12, 13, and 14
Line 107: Line 117:
 
end
 
end
 
</pre>
 
</pre>
 
  
  

Revision as of 11:38, 25 April 2022

Introduction

Lua is a lightweight, scripting programming language based on an interpreter generating compiled bytecodes.

It was designed in Brasil by Roberto Ierusalimschy, Waldemar Celes and Luiz Henrique de Figueiredo in 1993.

CE Lua is a specific version of Lua interpreter adapted by Dark Byte for Cheat Engine.

Syntax

CE Lua interpreter respects traditional LUA syntax and provides some extra features. The Lua Script Editor provide a real-time colored syntax and a Syntax Check feature (Ctrl+Alt+C).

Comments

In Lua simple comments begin with -- and end at the end of line. Multi-line comments begin with --[[ and end with ]] .

-- This is a simple comment just to the end of this line
This is not a comment but a future syntax error -- This is a new simple comment
--[[ First line of a multi-line comment
Second line of a multi-line comment
Last line of a multi-line comment]]

Variables

In Lua variables are polymorphic (can change the type during theirs lifes). By default a variable is global at Lua Engine level unless the declaration begins with local modifier.

Any variable can host:

  • nothing (not defined, equal to nil)
  • a numerical value (no difference between integer or float values, nor between different precisions)
  • a boolean value (true/false)
  • a string
  • a table
  • a function

Warning: the basic arithmetic operators like + or - are defined only for numericals.

Examples:

MyVar1 = nil           -- global variable MyVar1 having nothing inside (no type neither)
MyVar2 = UnknownVar    -- another global variable equal to nil (because UnknowVar is not yet defined)
local MyVar3 = 2       -- local numerical variable MyVar3 equal to 2
MyVar4 = 'Hello'       -- global string variable MyVar4
local MyVar5 = "Hello" -- local string variable MyVar5 having the same string as MyVar3
MyVar6 = [[First Line
Second Line.]]         -- global multi-line string variable MyVar6 beginning with 'First' and ending with 'Line.'
MyVar2 = (10 > 7.55)   -- now MyVar2 becomes a boolean equal to true

Flow control

Lua provides a conditional test with mutiple, optional branches:

if BooleanExpression then
  -- if statement(s) body
elseif BooleanExpression then  -- optional
  -- elseif statement(s) body
else                           -- optional
  -- else/default statement(s) body
end

and several conditional loops:

while BooleanExpression do    -- do statements while BooleanExpression is true
  --statements
end

repeat                        -- repeat statements
  --statements
until BooleanExpression       -- until BooleanExpression becomes true

for i = Start, Stop, Step do  -- any numerical value for Start, Stop and Step
  --statements
end                           -- loop while i <= Stop (for positive Step) or i >= Stop (for negative Step)

for Key, Val in pairs(Tab) do -- it loops over all the table Tab using standard iterator function pairs
  --statements                -- key and val available inside the for loop
end

Examples:

i=5
while i<80 do                 -- it loops for i equal to 5, 10, 20, and 40
  i=i*2
end

i=5
repeat                        -- it loops for i equal to 10, 20, 40, 80
  i=i*2
until i==80

i=5
repeat
 i=i*2
until i==82                   -- warning: this loop will never ending and will block the Lua Engine & Cheat Engine

for i = 10, 14 do             -- it loops for i equal to 10, 11, 12, 13, and 14
end

for i = 10, 14, 2 do          -- it loops for i equal to 10, 12, and 14
end

for i = 10, 14, 2.1 do        -- it loops for i equal to 10 and 12.1
end

for i = 10, 14, -2.1 do       -- it never loops because the start value 10<14 and step is negative
end

for i = 14, 10, -2.1 do       -- it loops for i equal to 14 and 11.8
end


Functions

Tables

External links