|
Cheat Engine The Official Site of Cheat Engine
|
View previous topic :: View next topic |
Author |
Message |
lolAnonymous Expert Cheater Reputation: 1
Joined: 19 Jul 2015 Posts: 154
|
Posted: Sun Jan 31, 2016 12:57 am Post subject: Whole LUA script in one line |
|
|
Hey Friends I was thinking if we can make our whole lua code in one line
i mean i saw people use 3000+ lines in Lua script : Cheat table and it takes times to load if we use only one line instead of 3000+ ,it will be loaded fast and without hanging...
like i have a script :
Code: | ----------------------------------------- VARIABLES -----------------------------------------
title="test"
credits=" created by test 01/30/2016"
blue="0x00F21200"
red1="0x000000FF"
red2="0x00000099"
white="0x00FFFFFF"
function setHack_Information()
t =
{
{'test ',
[[LuaCall(Aobswap("25 15 15 15 ","45 65 15 12"))]],
[[test]]}
}
end
----------------------------------------- MAIN GUI -----------------------------------------
MainGUI = {}
MainGUI[1] = createForm(false)
MainGUI[2] = createPanel(MainGUI[1])
MainGUI[4] = createLabel(MainGUI[2])
MainGUI[5] = createGroupBox(MainGUI[2])
MainGUI[6] = createLabel(MainGUI[5])
MainGUI[7] = createLabel(MainGUI[5])
MainGUI[8] = createLabel(MainGUI[2])
MainGUI[9] = createLabel(MainGUI[5])
MainGUI[10] = createComboBox(MainGUI[5])
MainGUI[11] = createGroupBox(MainGUI[2])
MainGUI[12] = createButton(MainGUI[5])
MainGUI[13] = createLabel(MainGUI[2])
MainGUI[14] = createLabel(MainGUI[11])
MainGUI[15] = createListBox(MainGUI[11])
MainGUI[16] = createButton(MainGUI[11])
MainGUI[17] = createButton(MainGUI[11])
MainGUI[18] = createLabel(MainGUI[11])
MainGUI[19] = createLabel(MainGUI[11])
MainGUI[23] = createButton(MainGUI[11])
----------------------------------------- PROPERTIES -----------------------------------------
setProperty(MainGUI[1] , "color", red2)
setProperty(MainGUI[1] , "ShowInTaskBar", 'stAlways')
setProperty(MainGUI[1] , "Position", "poScreenCenter")
setProperty(MainGUI[1] , "BiDiMode", "bdLeftToRight")
setProperty(MainGUI[2] , "BiDiMode", "bdLeftToRight")
setProperty(MainGUI[2] , "BiDiMode", "bdLeftToRight")
setProperty(MainGUI[10] , "ReadOnly", "True")
FontHeight = getProperty(MainGUI[4] , "Font")
setProperty(FontHeight , "Style", "[fsBold, fsitalic]")
setProperty(FontHeight , "Height", "26")
setProperty(FontHeight , "Color", white)
FontHeight = getProperty(MainGUI[5] , "Font")
setProperty(FontHeight , "Height", "18")
setProperty(FontHeight , "Color", white)
FontHeight = getProperty(MainGUI[8] , "Font")
setProperty(FontHeight , "Style", "[fsBold, fsitalic]")
setProperty(FontHeight , "Height", "26")
setProperty(FontHeight , "Color", white)
FontHeight = getProperty(MainGUI[9] , "Font")
setProperty(FontHeight , "Style", "[fsBold]")
setProperty(FontHeight , "Height", "16")
setProperty(FontHeight , "Color", white)
FontHeight = getProperty(MainGUI[10] , "Font")
setProperty(FontHeight , "Height", "18")
FontHeight = getProperty(MainGUI[12] , "Font")
setProperty(FontHeight , "Height", "13")
FontHeight = getProperty(MainGUI[13] , "Font")
setProperty(FontHeight , "Style", "[fsBold, fsitalic]")
setProperty(FontHeight , "Height", "16")
setProperty(FontHeight , "Color", white)
setProperty(MainGUI[13], "Cursor", "-21")
FontHeight = getProperty(MainGUI[14] , "Font")
setProperty(FontHeight , "Height", "18")
setProperty(FontHeight , "Color", white)
FontHeight = getProperty(MainGUI[15] , "Font")
setProperty(FontHeight , "Height", "18")
FontHeight = getProperty(MainGUI[18] , "Font")
setProperty(FontHeight , "Style", "[fsBold]")
setProperty(FontHeight , "Height", "18")
setProperty(FontHeight , "Color", white)
FontHeight = getProperty(MainGUI[19] , "Font")
setProperty(FontHeight , "Height", "18")
setProperty(FontHeight , "Color", white)
-----------------------------------------SIZE + POS -----------------------------------------
control_setSize(MainGUI[1], 425, 512)
x,y = control_getSize(MainGUI[1])
control_setSize(MainGUI[2], x,y)
control_setSize(MainGUI[5], 404, 129)
control_setSize(MainGUI[10], 255, 21)
control_setSize(MainGUI[11], 404, 279)
control_setSize(MainGUI[12], 107, 28)
control_setSize(MainGUI[15], 255, 106)
control_setSize(MainGUI[16], 107, 26)
control_setSize(MainGUI[17], 107, 26)
control_setSize(MainGUI[23], 107, 26)
control_setPosition(MainGUI[4], 15, 10)
control_setPosition(MainGUI[5], 10, 35)
control_setPosition(MainGUI[6], 10, 5)
control_setPosition(MainGUI[8], 15, 175)
control_setPosition(MainGUI[9], 10, 75)
control_setPosition(MainGUI[10], 10, 35)
control_setPosition(MainGUI[11], 10, 205)
control_setPosition(MainGUI[12], 280, 35)
control_setPosition(MainGUI[13], 12, 490)
control_setPosition(MainGUI[14], 10, 5)
control_setPosition(MainGUI[15], 10, 35)
control_setPosition(MainGUI[16], 280, 35)
control_setPosition(MainGUI[17], 280, 76)
control_setPosition(MainGUI[18], 10, 155)
control_setPosition(MainGUI[19], 11, 180)
control_setPosition(MainGUI[23], 280, 116)
----------------------------------------- CAPTION -----------------------------------------
control_setCaption(MainGUI[1], title.." Trainer")
control_setCaption(MainGUI[4], title.." Trainer")
control_setCaption(MainGUI[6], "Select your browser. Make sure the game is loaded.")
control_setCaption(MainGUI[8], "Available hacks for this game")
control_setCaption(MainGUI[9], "Attached to PID: waiting...")
control_setCaption(MainGUI[12], "Select")
control_setCaption(MainGUI[13], " KongHack.com " ..credits)
control_setCaption(MainGUI[14], "Enable hacks before starting a new game.")
control_setCaption(MainGUI[16], 'Enable selected')
control_setCaption(MainGUI[17], 'Enable all')
control_setCaption(MainGUI[18],"Description:")
control_setCaption(MainGUI[19],"no hack selected")
control_setCaption(MainGUI[23], 'Reset all')
control_setEnabled(MainGUI[16], false)
control_setEnabled(MainGUI[17], false)
control_setEnabled(MainGUI[23], false)
----------------------------------------- PROGRESSBAR -----------------------------------------
MainGUI[20] = createProgressBar(MainGUI[11])
control_setPosition(MainGUI[20], 11, 180)
control_setSize(MainGUI[20], 255, 14)
control_setVisible(MainGUI[20], false)
MainGUI[21] = createLabel(MainGUI[11])
FontHeight = getProperty(MainGUI[21] , "Font")
setProperty(FontHeight , "Style", "[fsBold]")
setProperty(FontHeight , "Height", "18")
setProperty(FontHeight , "Color", white)
control_setPosition(MainGUI[21], 10, 155)
control_setVisible(MainGUI[21], false)
MainGUI[22] = createLabel(MainGUI[11])
FontHeight = getProperty(MainGUI[22] , "Font")
setProperty(FontHeight , "Style", "[fsBold]")
setProperty(FontHeight , "Height", "18")
control_setPosition(MainGUI[22], 10, 205)
control_setVisible(MainGUI[22], false)
----------------------------------------- COMBOBOX CONTENT -----------------------------------------
setHack_Information()
al = combobox_getItems(MainGUI[10])
strings_clear(al)
strings_add(al, 'Browser list...')
strings_add(al, 'Firefox')
strings_add(al, 'Google Chrome')
strings_add(al, 'Internex Explorer')
setProperty(MainGUI[10] , "ItemIndex", "0")
all_enabled = 0
success = 1
TeL = listbox_getItems(MainGUI[15])
TempSave = {}
strings_clear(TeL)
check = 0
i = 0
repeat
if t[i+1]==nil then
check = 1
else
i = i+1
strings_add(TeL, t[i][1])
TempSave[i] = {}
TempSave[i][1] = t[i][1]
TempSave[i][2] = t[i][2]
TempSave[i][3] = t[i][3]
TempSave[i][4] = 2
TempSave[i][5] = 0
check = 0
end
until check == 1
errorOnLookupFailure(false)
alreadycheckedPIDS={}
openNextProcTimer = createTimer(nil,false)
timer_setInterval(openNextProcTimer, 1000)
timer_onTimer(openNextProcTimer,
function(sender)
local tempPIDtable = getPids()
if #tempPIDtable == 0 then return end
timer_setEnabled(sender,false)
openProcess(tempPIDtable[1])
end)
----------------------------------------- CHECKPROCESS / PIDS -----------------------------------------
function checkProcessMajor()
reinitializeSymbolhandler()
if getAddress("pepflashplayer.dll")~=0 or getAddress("AdobeCPGetAPI") ~=0 then
return true
end
return false
end
function getPids()
local SL=createStringlist()
getProcesslist(SL)
local tempPIDtable={}
for i=0,strings_getCount(SL)-1 do
local entry = strings_getString(SL,i)
local processname = entry:sub(10,255)
local PID = tonumber('0x'..entry:sub(1,8))
if processname == "chrome.exe" then
if alreadycheckedPIDS[PID]~=true then
table.insert(tempPIDtable,PID)
end
end
end
object_destroy(SL)
return tempPIDtable
end
function checkProcess(sender)
timer_setEnabled(sender,false)
alreadycheckedPIDS[getOpenedProcessID()]=true
if checkProcessMajor() then
timer_setEnabled(openNextProcTimer,false)
alreadycheckedPIDS={}
enableHacks()
else
timer_setEnabled(openNextProcTimer,true)
end
end
checkProcessTimer = createTimer(nil,false)
timer_setInterval(checkProcessTimer, 100)
timer_onTimer(checkProcessTimer, checkProcess)
function onOpenProcess()
if success == 1 then return end
timer_setEnabled(checkProcessTimer,true)
end
----------------------------------------- BROWSER SELECT -----------------------------------------
function scanBrowser()
AttachItems = combobox_getItems(MainGUI[10])
AttachIndex = combobox_getItemIndex(MainGUI[10])
control_setEnabled(MainGUI[16], false)
control_setEnabled(MainGUI[17], false)
control_setEnabled(MainGUI[23], false)
local font = getProperty(MainGUI[9] , "Font")
setProperty(font, "Color", white)
control_setCaption(MainGUI[9], "Attached to PID: " .. "Scanning Process...")
processMessages()
if AttachIndex == -1 then return end
if AttachIndex == 0 then
control_setCaption(MainGUI[9], "Attached to PID: " .. "no Browser selected.")
return
end
local check = strings_getString(AttachItems,AttachIndex)
if check == 'Google Chrome' then
success = 0
local test = openProcess("chrome.exe")
if test == nil then
setProperty(font , "Color", red1)
control_setCaption(MainGUI[9], "Attached to PID: " .. "Chrome not found.")
timer_setEnabled(openNextProcTimer,false)
return
end
strings_add(getAutoAttachList(),"chrome.exe")
timer_setEnabled(openNextProcTimer,true)
return
end
if check == 'Firefox' or check == 'Internet Explorer' then openProcess("FlashPlayerPlugin") end
errorOnLookupFailure(false)
reinitializeSymbolhandler()
err=getAddress("kernel32.dll")==0
if err==true then
setProperty(font , "Color", red1)
control_setCaption(MainGUI[9], "Attached to PID: " .. "Flash player plugin not found")
else
local PID=getOpenedProcessID()
setProperty(font, "Color", white)
control_setCaption(MainGUI[9], "Attached to PID: " .. PID .. " - flash player plugin")
control_setEnabled(MainGUI[16], true)
control_setEnabled(MainGUI[17], true)
control_setEnabled(MainGUI[23], true)
end
end
----------------------------------------- ENABLE HACKS -----------------------------------------
function enableHacks()
setProperty(getProperty(MainGUI[9] , "Font"), "Color", white)
local PID=getOpenedProcessID()
local check = strings_getString(AttachItems,AttachIndex)
if check == 'Firefox' or check == 'Internet Explorer' then
control_setCaption(MainGUI[9], "Attached to PID: " .. PID .. " - flash player plugin")
elseif check == 'Google Chrome' then
control_setCaption(MainGUI[9], "Attached to PID: " .. PID .. " - chrome.exe")
end
success = 1
control_setEnabled(MainGUI[16], true)
control_setEnabled(MainGUI[17], true)
control_setEnabled(MainGUI[23], true)
end
----------------------------------------- PROGRESS BAR -----------------------------------------
function show_progressbar()
control_setPosition(MainGUI[22], 10, 205)
control_setCaption(MainGUI[22], '')
control_setVisible(MainGUI[18], false)
control_setVisible(MainGUI[19], false)
control_setVisible(MainGUI[20], true)
control_setVisible(MainGUI[21], true)
control_setVisible(MainGUI[22], true)
progressbar_setPosition(MainGUI[20], 0)
end
function hide_progressbar()
control_setVisible(MainGUI[20], false)
control_setVisible(MainGUI[21], false)
control_setVisible(MainGUI[22], false)
control_setVisible(MainGUI[18], true)
control_setVisible(MainGUI[19], true)
end
----------------------------------------- EXECUTE HACKS -----------------------------------------
function ExecuteHacks()
HLS = listbox_getItemIndex(MainGUI[15])
LIST = listbox_getItems(MainGUI[15])
if HLS == -1 then return end
i = HLS+1
font=getProperty(MainGUI[21], 'Font')
control_setVisible(MainGUI[18], false)
control_setVisible(MainGUI[19], false)
control_setVisible(MainGUI[20], false)
control_setVisible(MainGUI[21], true)
control_setVisible(MainGUI[22], false)
if t[i][2]==nil then
setProperty(font, 'Color', white)
control_setCaption(MainGUI[21], "You allready enabled this hack !")
return
end
control_setEnabled(MainGUI[16], false)
control_setEnabled(MainGUI[17], false)
control_setEnabled(MainGUI[23], false)
control_setCaption(MainGUI[21], "Executing hack...")
control_setVisible(MainGUI[22], true)
control_setCaption(MainGUI[22], '')
control_setPosition(MainGUI[22], 10, 185)
strings_setString(LIST, HLS, t[i][1])
processMessages()
if TempSave[i][4] == 2 then
Asm = autoAssemble(t[i][2])
font=getProperty(MainGUI[22], 'Font')
control_setCaption(MainGUI[21], "Executing hack. Finished.")
if AobSwapCheck~=true then
TempText = t[i][1]..' - Failed'
TempSave[i][5] = t[i][1]..' - Failed'
strings_setString(LIST, HLS, TempText)
setProperty(font, 'Color', red1)
control_setCaption(MainGUI[22], 'Failed to enable !\nHack allready enabled or game was updated.')
else
TempText = t[i][1]..' - Enabled'
TempSave[i][5] = t[i][1]..' - Enabled'
strings_setString(LIST, HLS, TempText)
setProperty(font, 'Color', white)
control_setCaption(MainGUI[22], 'Hack enabled. Enjoy it !')
t[i][2] = nil
TempSave[i][4] = 1
end
end
if TempSave[i][4] == 0 then TempSave[i][4] = 2 end
control_setEnabled(MainGUI[16], true)
control_setEnabled(MainGUI[17], true)
control_setEnabled(MainGUI[23], true)
end
----------------------------------------- EXECUTE ALL HACKS -----------------------------------------
function ExecuteAllHacks()
font=getProperty(MainGUI[21], 'Font')
if all_enabled == 1 then
control_setVisible(MainGUI[18], false)
control_setVisible(MainGUI[19], false)
control_setVisible(MainGUI[20], false)
control_setVisible(MainGUI[21], true)
control_setVisible(MainGUI[22], false)
setProperty(font, 'Color', white)
control_setCaption(MainGUI[21], "You allready enabled all hacks !")
return
end
lb = listbox_getItems(MainGUI[15])
LIST = listbox_getItems(MainGUI[15])
control_setEnabled(MainGUI[16], false)
control_setEnabled(MainGUI[17], false)
control_setEnabled(MainGUI[23], false)
show_progressbar()
progressbar_setMax(MainGUI[20], strings_getCount(lb))
for i = 1, strings_getCount(lb) do
strings_setString(LIST, i-1, t[i][1])
end
count = 0
for i = 1, strings_getCount(lb) do
control_setCaption(MainGUI[21], "Executing hack: "..t[i][1])
progressbar_setPosition(MainGUI[20], i)
processMessages()
if TempSave[i][4] == 2 then
Asm = autoAssemble(t[i][2])
if AobSwapCheck~=true then
TempSave[i][5] = t[i][1]..' - Failed'
strings_setString(LIST, i-1, TempSave[i][5])
else
TempSave[i][5] = t[i][1]..' - Enabled'
strings_setString(LIST, i-1, TempSave[i][5])
t[i][2] = nil
TempSave[i][4] = 1
count = count + 1
end
else
count = count + 1
TempSave[i][5] = t[i][1]..' - Enabled'
strings_setString(LIST, i-1, TempSave[i][5])
end
if TempSave[i][4] == 0 then TempSave[i][4] = 2 end
end
control_setEnabled(MainGUI[16], true)
control_setEnabled(MainGUI[17], true)
control_setEnabled(MainGUI[23], true)
control_setCaption(MainGUI[21], "Executing hack. Finished ! ")
font=getProperty(MainGUI[22], 'Font')
if count == strings_getCount(lb) then
setProperty(font, 'Color', white)
control_setCaption(MainGUI[22], 'All hacks enabled. Enjoy it !')
all_enabled = 1
else
diff = strings_getCount(lb) - count
if diff == 1 then
text = "hack"
else
text = "hacks"
end
setProperty(font, 'Color', red1)
control_setCaption(MainGUI[22], 'Failed to enable ' .. diff .. ' ' .. text .. ' !')
end
end
----------------------------------------- RESET HACKS -----------------------------------------
function ResetAllHacks()
lb = listbox_getItems(MainGUI[15])
ct = strings_getCount(lb)
for i = 1, ct do
strings_setString(lb, i-1, t[i][1])
TempSave[i][4] = 2
t[i][2]= TempSave[i][2]
end
all_enabled = 0
hide_progressbar()
control_setVisible(MainGUI[19], false)
control_setCaption(MainGUI[18], 'All hacks reseted.')
end
----------------------------------------- AOB SWAP -----------------------------------------
function DEC_HEX(IN)
local B,K,OUT,I,D=16,"0123456789ABCDEF","",0
if IN<1 then
OUT=0
return OUT
end
while IN>0 do
I=I+1
IN,D=math.floor(IN/B),math.mod(IN,B)+1
OUT=string.sub(K,D,D)..OUT
end
return OUT
end
function Aobswap(search, change)
aobs = AOBScan(search, "+W")
if(aobs == nil) then
AobSwapCheck=false
else
j = stringlist_getCount(aobs)
for i = 1, j do
address=stringlist_getString(aobs,i-1)
for i = 1, string.len(change), 3 do
z = string.sub(change, i, i+2)
x, y = string.find(z, "%?+")
if (x == nil) then
script=[[
]]..address.."+"..(DEC_HEX((i-1)/3))..[[:
db ]]..z..[[
]]
autoAssemble(script)
end
end
end
object_destroy(aobs);
aobs=nil
AobSwapCheck=true
end
end
----------------------------------------- HACK DESCRIPTION -----------------------------------------
function HackDescriptionsChange()
hide_progressbar()
control_setCaption(MainGUI[18], 'Description:')
HLS = listbox_getItemIndex(MainGUI[15])
if HLS == -1 then return end
i = HLS+1
if t[i][3]~='' and t[i][3]~=nil then
control_setCaption(MainGUI[19] ,t[i][3])
else
control_setCaption(MainGUI[19], "no description available.")
end
end
---------------------------------------- KONGHACK / EXIT -----------------------------------------
function OpenKonghack()
shellExecute("http://konghack.com/")
end
function CloseTrainer()
form_hide(MainGUI[1])
closeCE()
end
----------------------------------------- ONCLICK EVENTS -----------------------------------------
control_onClick(MainGUI[12], scanBrowser)
control_onClick(MainGUI[13], OpenKonghack)
control_onClick(MainGUI[16], ExecuteHacks)
control_onClick(MainGUI[17], ExecuteAllHacks)
control_onClick(MainGUI[23], ResetAllHacks)
setMethodProperty(MainGUI[15], 'OnSelectionChange', HackDescriptionsChange)
form_onClose(MainGUI[1], CloseTrainer)
form_show(MainGUI[1]) |
and it takes total 536 lines but i want it to display in one line...
if some one can teach me do that... i will appreciate his/her help
Thanks In Advance
|
|
Back to top |
|
|
panraven Grandmaster Cheater Reputation: 55
Joined: 01 Oct 2008 Posts: 942
|
Posted: Sun Jan 31, 2016 1:49 am Post subject: |
|
|
This minifier can squish lesser lines.
https://mothereff.in/lua-minifier
But it has some bugs , and not compatible with Lua 5.3.
One bug known is like ("some text"):len() will be convert to "some text":len(), which is syntax error.
For the loading, there should be negligible difference loading 3000 lines or 1 lines if the character count are similar.
May google 'Lua performance tip' for info.
bye~
_________________
- Retarded. |
|
Back to top |
|
|
lolAnonymous Expert Cheater Reputation: 1
Joined: 19 Jul 2015 Posts: 154
|
Posted: Sun Jan 31, 2016 1:56 am Post subject: |
|
|
Thanks a lot Panraven
|
|
Back to top |
|
|
mgr.inz.Player I post too much Reputation: 218
Joined: 07 Nov 2008 Posts: 4438 Location: W kraju nad Wisla. UTC+01:00
|
Posted: Sun Jan 31, 2016 4:34 am Post subject: |
|
|
function DEC_HEX(IN)
Really. People still use this function
Back to topic. There's no need to squeeze Lua code if you have it in your CT file. Before CE6.4, we had to do this for "LuaCall"s inside AA script.
_________________
|
|
Back to top |
|
|
lolAnonymous Expert Cheater Reputation: 1
Joined: 19 Jul 2015 Posts: 154
|
Posted: Sun Jan 31, 2016 8:07 am Post subject: |
|
|
Hmmm Sir I am still using CE 6.4 Because i saw some bugs in CE 6.5
|
|
Back to top |
|
|
mgr.inz.Player I post too much Reputation: 218
Joined: 07 Nov 2008 Posts: 4438 Location: W kraju nad Wisla. UTC+01:00
|
Posted: Sun Jan 31, 2016 8:16 am Post subject: |
|
|
Sir, CE6.4 allows multi-line Lua in AA scripts (in {lua} block).
Sir, there's no need to squeeze Lua scripts which are inside CT file:
- "Lua script: Cheat Table"
- or inside AA scripts
_________________
|
|
Back to top |
|
|
atom0s Moderator Reputation: 198
Joined: 25 Jan 2006 Posts: 8517 Location: 127.0.0.1
|
Posted: Sun Jan 31, 2016 2:11 pm Post subject: |
|
|
Compressing Lua into 1 line is not going to speed it up. It still has to interpret the entire script no matter what.
Minification on things are not for performance, they are for transfer size across multiple sites when loading web pages and such. It helps speed up the time it takes to load a website because it cuts down on the size of the file you have to download. But the speed of the script itself is hardly affected, if at all, since it still has to be processed in the same manner of how you coded it regardless.
_________________
- Retired. |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum
|
|