add autoAssembleCheck and fix the combobox in the exe generator
This commit is contained in:
parent
9ccbdef528
commit
3b8fd28951
@ -2158,6 +2158,49 @@ begin
|
|||||||
result:=deAllocEx(getcurrentprocess, L);
|
result:=deAllocEx(getcurrentprocess, L);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function AutoAssembleCheck_lua(L: PLua_State): integer; cdecl;
|
||||||
|
var
|
||||||
|
script: tstringlist;
|
||||||
|
enable: boolean;
|
||||||
|
targetself: boolean;
|
||||||
|
begin
|
||||||
|
script:=tstringlist.create;
|
||||||
|
if lua_gettop(L)=0 then
|
||||||
|
begin
|
||||||
|
lua_pushboolean(L,false);
|
||||||
|
lua_pushstring(L,'No parameters given');
|
||||||
|
exit(2);
|
||||||
|
end;
|
||||||
|
|
||||||
|
try
|
||||||
|
script.text:=Lua_ToString(L,1);
|
||||||
|
if lua_gettop(L)=2 then
|
||||||
|
enable:=lua_toboolean(L,2)
|
||||||
|
else
|
||||||
|
enable:=true;
|
||||||
|
|
||||||
|
if lua_gettop(L)=3 then
|
||||||
|
targetself:=lua_toboolean(L,3)
|
||||||
|
else
|
||||||
|
targetself:=false;
|
||||||
|
|
||||||
|
try
|
||||||
|
lua_pushboolean(L,autoassemble(script,false,enable,true,targetself));
|
||||||
|
exit(1);
|
||||||
|
except
|
||||||
|
on e:exception do
|
||||||
|
begin
|
||||||
|
lua_pushboolean(L,false);
|
||||||
|
lua_pushstring(L,e.message);
|
||||||
|
exit(2);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
finally
|
||||||
|
script.free;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
function autoAssemble_lua(L: PLua_State): integer; cdecl;
|
function autoAssemble_lua(L: PLua_State): integer; cdecl;
|
||||||
var
|
var
|
||||||
parameters: integer;
|
parameters: integer;
|
||||||
@ -8250,6 +8293,7 @@ begin
|
|||||||
lua_register(L, 'readBytesLocal', readbyteslocal);
|
lua_register(L, 'readBytesLocal', readbyteslocal);
|
||||||
lua_register(L, 'writeBytesLocal', writebyteslocal);
|
lua_register(L, 'writeBytesLocal', writebyteslocal);
|
||||||
lua_register(L, 'autoAssemble', autoAssemble_lua);
|
lua_register(L, 'autoAssemble', autoAssemble_lua);
|
||||||
|
lua_register(L, 'autoAssembleCheck', AutoAssembleCheck_lua);
|
||||||
lua_register(L, 'deAlloc', deAlloc_lua);
|
lua_register(L, 'deAlloc', deAlloc_lua);
|
||||||
lua_register(L, 'deAllocLocal', deAllocLocal_lua);
|
lua_register(L, 'deAllocLocal', deAllocLocal_lua);
|
||||||
lua_register(L, 'showMessage', showMessage_lua);
|
lua_register(L, 'showMessage', showMessage_lua);
|
||||||
|
@ -2285,6 +2285,8 @@ begin
|
|||||||
|
|
||||||
if findwindow=nil then findwindow:=TFindwindow.create(self);
|
if findwindow=nil then findwindow:=TFindwindow.create(self);
|
||||||
findwindow.firstscan:=true;
|
findwindow.firstscan:=true;
|
||||||
|
findwindow.editStart.text:=inttohex(hexview.SelectionStart,8);
|
||||||
|
|
||||||
findwindow.ShowModal;
|
findwindow.ShowModal;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
@ -159,6 +159,8 @@ generateAPIHookScript(address, addresstojumpto, addresstogetnewcalladdress OPT)
|
|||||||
autoAssemble(text, targetself OPTIONAL, disableInfo OPTIONAL) : 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
|
autoAssemble(text, targetself OPTIONAL, disableInfo OPTIONAL) : 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
|
||||||
autoAssemble(text, disableInfo OPTIONAL)
|
autoAssemble(text, disableInfo OPTIONAL)
|
||||||
|
|
||||||
|
autoAssembleCheck(text, enable, targetself) : Checks the script for syntax errors. Returns true on succes, false with an error message on failure
|
||||||
|
|
||||||
registerExeTrainerFeature(FeatureName:String, function():table): adds a new feature to the exe trainer generator window, and calls your function when the user builds an .exe trainer. The function should return a table with table entries: PathToFile and RelativePath.
|
registerExeTrainerFeature(FeatureName:String, function():table): adds a new feature to the exe trainer generator window, and calls your function when the user builds an .exe trainer. The function should return a table with table entries: PathToFile and RelativePath.
|
||||||
example output:
|
example output:
|
||||||
[1]:
|
[1]:
|
||||||
|
@ -1,13 +1,6 @@
|
|||||||
|
|
||||||
find higher resolution icons
|
find higher resolution icons
|
||||||
|
|
||||||
memview hexview: Add a header showing details about the selection (bytecount, hex->dec)
|
|
||||||
|
|
||||||
memview: ctrl+f ->adjust from region
|
|
||||||
|
|
||||||
exe trainer generator compression isn't properly sized
|
|
||||||
don't forget the test buttons in advanced options
|
|
||||||
|
|
||||||
add a filter in the processlist to filter out system processes
|
add a filter in the processlist to filter out system processes
|
||||||
make an "Appication list" process window
|
make an "Appication list" process window
|
||||||
|
|
||||||
|
@ -21,22 +21,22 @@ object frmExeTrainerGenerator: TfrmExeTrainerGenerator
|
|||||||
Left = 0
|
Left = 0
|
||||||
Height = 206
|
Height = 206
|
||||||
Top = 0
|
Top = 0
|
||||||
Width = 321
|
Width = 312
|
||||||
AutoSize = True
|
AutoSize = True
|
||||||
BevelOuter = bvNone
|
BevelOuter = bvNone
|
||||||
ClientHeight = 206
|
ClientHeight = 206
|
||||||
ClientWidth = 321
|
ClientWidth = 312
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
object GroupBox1: TGroupBox
|
object GroupBox1: TGroupBox
|
||||||
Left = 0
|
Left = 0
|
||||||
Height = 58
|
Height = 58
|
||||||
Top = 39
|
Top = 39
|
||||||
Width = 321
|
Width = 312
|
||||||
Align = alTop
|
Align = alTop
|
||||||
AutoSize = True
|
AutoSize = True
|
||||||
Caption = 'Process'
|
Caption = 'Process'
|
||||||
ClientHeight = 38
|
ClientHeight = 38
|
||||||
ClientWidth = 317
|
ClientWidth = 308
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
object rb32: TRadioButton
|
object rb32: TRadioButton
|
||||||
AnchorSideLeft.Control = GroupBox1
|
AnchorSideLeft.Control = GroupBox1
|
||||||
@ -67,7 +67,7 @@ object frmExeTrainerGenerator: TfrmExeTrainerGenerator
|
|||||||
Left = 0
|
Left = 0
|
||||||
Height = 61
|
Height = 61
|
||||||
Top = 97
|
Top = 97
|
||||||
Width = 321
|
Width = 312
|
||||||
Align = alTop
|
Align = alTop
|
||||||
AutoSize = True
|
AutoSize = True
|
||||||
Caption = 'Features used'
|
Caption = 'Features used'
|
||||||
@ -76,7 +76,7 @@ object frmExeTrainerGenerator: TfrmExeTrainerGenerator
|
|||||||
ChildSizing.Layout = cclLeftToRightThenTopToBottom
|
ChildSizing.Layout = cclLeftToRightThenTopToBottom
|
||||||
ChildSizing.ControlsPerLine = 3
|
ChildSizing.ControlsPerLine = 3
|
||||||
ClientHeight = 41
|
ClientHeight = 41
|
||||||
ClientWidth = 317
|
ClientWidth = 308
|
||||||
TabOrder = 1
|
TabOrder = 1
|
||||||
object cbSpeedhack: TCheckBox
|
object cbSpeedhack: TCheckBox
|
||||||
Left = 0
|
Left = 0
|
||||||
@ -151,7 +151,7 @@ object frmExeTrainerGenerator: TfrmExeTrainerGenerator
|
|||||||
Left = 241
|
Left = 241
|
||||||
Height = 23
|
Height = 23
|
||||||
Top = 171
|
Top = 171
|
||||||
Width = 80
|
Width = 71
|
||||||
BorderSpacing.Left = 3
|
BorderSpacing.Left = 3
|
||||||
ItemHeight = 15
|
ItemHeight = 15
|
||||||
ItemIndex = 3
|
ItemIndex = 3
|
||||||
@ -207,12 +207,12 @@ object frmExeTrainerGenerator: TfrmExeTrainerGenerator
|
|||||||
Left = 0
|
Left = 0
|
||||||
Height = 39
|
Height = 39
|
||||||
Top = 0
|
Top = 0
|
||||||
Width = 321
|
Width = 312
|
||||||
Align = alTop
|
Align = alTop
|
||||||
AutoSize = True
|
AutoSize = True
|
||||||
Caption = 'Trainer size'
|
Caption = 'Trainer size'
|
||||||
ClientHeight = 19
|
ClientHeight = 19
|
||||||
ClientWidth = 317
|
ClientWidth = 308
|
||||||
TabOrder = 5
|
TabOrder = 5
|
||||||
object cbTiny: TRadioButton
|
object cbTiny: TRadioButton
|
||||||
AnchorSideLeft.Control = cbGigantic
|
AnchorSideLeft.Control = cbGigantic
|
||||||
@ -286,22 +286,22 @@ object frmExeTrainerGenerator: TfrmExeTrainerGenerator
|
|||||||
AnchorSideRight.Control = Owner
|
AnchorSideRight.Control = Owner
|
||||||
AnchorSideRight.Side = asrBottom
|
AnchorSideRight.Side = asrBottom
|
||||||
AnchorSideBottom.Control = Panel2
|
AnchorSideBottom.Control = Panel2
|
||||||
Left = 324
|
Left = 315
|
||||||
Height = 211
|
Height = 211
|
||||||
Top = 0
|
Top = 0
|
||||||
Width = 273
|
Width = 282
|
||||||
Anchors = [akTop, akLeft, akRight, akBottom]
|
Anchors = [akTop, akLeft, akRight, akBottom]
|
||||||
AutoSize = True
|
AutoSize = True
|
||||||
BorderSpacing.Left = 3
|
BorderSpacing.Left = 3
|
||||||
Caption = 'Extra files'
|
Caption = 'Extra files'
|
||||||
ClientHeight = 191
|
ClientHeight = 191
|
||||||
ClientWidth = 269
|
ClientWidth = 278
|
||||||
TabOrder = 2
|
TabOrder = 2
|
||||||
object ListView1: TListView
|
object ListView1: TListView
|
||||||
Left = 0
|
Left = 0
|
||||||
Height = 158
|
Height = 158
|
||||||
Top = 0
|
Top = 0
|
||||||
Width = 269
|
Width = 278
|
||||||
Align = alClient
|
Align = alClient
|
||||||
Columns = <
|
Columns = <
|
||||||
item
|
item
|
||||||
@ -325,12 +325,12 @@ object frmExeTrainerGenerator: TfrmExeTrainerGenerator
|
|||||||
Left = 0
|
Left = 0
|
||||||
Height = 33
|
Height = 33
|
||||||
Top = 158
|
Top = 158
|
||||||
Width = 269
|
Width = 278
|
||||||
Align = alBottom
|
Align = alBottom
|
||||||
AutoSize = True
|
AutoSize = True
|
||||||
BevelOuter = bvNone
|
BevelOuter = bvNone
|
||||||
ClientHeight = 33
|
ClientHeight = 33
|
||||||
ClientWidth = 269
|
ClientWidth = 278
|
||||||
TabOrder = 1
|
TabOrder = 1
|
||||||
object btnRemoveFile: TButton
|
object btnRemoveFile: TButton
|
||||||
AnchorSideLeft.Control = btnAddFile
|
AnchorSideLeft.Control = btnAddFile
|
||||||
|
@ -674,7 +674,10 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TfrmExeTrainerGenerator.FormShow(Sender: TObject);
|
procedure TfrmExeTrainerGenerator.FormShow(Sender: TObject);
|
||||||
var i:integer;
|
var
|
||||||
|
i,s:integer;
|
||||||
|
cbi: TComboboxInfo;
|
||||||
|
extrasize: integer;
|
||||||
begin
|
begin
|
||||||
i:=max(max(button3.Width, btnAddFile.Width), btnRemoveFile.Width);
|
i:=max(max(button3.Width, btnAddFile.Width), btnRemoveFile.Width);
|
||||||
|
|
||||||
@ -682,6 +685,18 @@ begin
|
|||||||
btnAddFile.Width:=i;
|
btnAddFile.Width:=i;
|
||||||
btnRemoveFile.Width:=i;
|
btnRemoveFile.Width:=i;
|
||||||
groupbox3.Constraints.MinHeight:=panel1.height;
|
groupbox3.Constraints.MinHeight:=panel1.height;
|
||||||
|
|
||||||
|
cbi.cbSize:=sizeof(cbi);
|
||||||
|
if GetComboBoxInfo(comboCompression.handle, @cbi) then
|
||||||
|
extrasize:=cbi.rcButton.Right-cbi.rcButton.Left+cbi.rcItem.Left
|
||||||
|
else
|
||||||
|
extrasize:=16;
|
||||||
|
|
||||||
|
s:=0;
|
||||||
|
for i:=0 to comboCompression.Items.Count-1 do
|
||||||
|
s:=max(s, canvas.GetTextWidth(comboCompression.items[i]));
|
||||||
|
|
||||||
|
comboCompression.Constraints.MinWidth:=s+extrasize;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TfrmExeTrainerGenerator.ListView1ContextPopup(Sender: TObject; MousePos: TPoint; var Handled: Boolean);
|
procedure TfrmExeTrainerGenerator.ListView1ContextPopup(Sender: TObject; MousePos: TPoint; var Handled: Boolean);
|
||||||
|
Loading…
Reference in New Issue
Block a user