Cheat Engine Forum Index Cheat Engine
The Official Site of Cheat Engine
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 


Cheat Engine Forum Index
PostGo back to topic
atom0s
Moderator
Reputation: 198
Joined: 25 Jan 2006
Posts: 8517
Location: 127.0.0.1

PostPosted: Thu Jan 13, 2011 11:20 pm    Post subject: Minesweeper Lua Trainer Example

This is a simple +2 options trainer example showing off how to create a small gui using Cheat Engine 6's new Lua engine integration. The trainer is not meant to be advanced, this is mearly a demonstration showing off the new features of Cheat Engine 6 with Lua scripting.

Code:
--[[

    Winmine.exe (Windows XP Minesweeper) Lua Trainer Example
    by atom0s [Wiccaan]
   
    This is a demonstrational Lua script showing off
    what Cheat Engine 6.0 can do with Lua.
   
]]--

--
-- DO NOT EDIT BELOW THIS LINE!!
--

local Trainer_Example = { }

----------------------------------------------------------------------------------
-- func: InitButton( .. )
-- desc: Wraps button creation and setup functions for smaller code.
----------------------------------------------------------------------------------
function InitButton( form, caption, x, y, w, h, func )
    local button = createButton( form );
    if( button == nil ) then
        return nil;
    end

    control_setCaption( button, caption );
    control_setPosition( button, x, y );
    control_setSize( button, w, h );
    control_onClick( button, func );
    return button;
end

----------------------------------------------------------------------------------
-- func: InitLabel( .. )
-- desc: Wraps label creation and setup functions for smaller code.
----------------------------------------------------------------------------------
function InitLabel( form, x, y, text )
    local label = createLabel( form );
    if( label == nil ) then
        return nil;
    end
   
    control_setCaption( label, text );
    control_setPosition( label, x, y );
    return label;
end

----------------------------------------------------------------------------------
-- func: Trainer_Example.Main( .. )
-- desc: Prepares script for overall actions.
----------------------------------------------------------------------------------
function Trainer_Example.Main( )
    -- Main trainer form pointer.
    Trainer_Example.Form = createForm( true );

    -- Create buttons.
    Trainer_Example.btnFlags = InitButton( Trainer_Example.Form, "Toggle Inf. Flags", 1, 1, 150, 30, Trainer_Example.OnFlagsClicked );
    Trainer_Example.btnTimer = InitButton( Trainer_Example.Form, "Toggle Unlimited Time", 155, 1, 150, 30, Trainer_Example.OnTimeClicked );

    -- Create info label.
    Trainer_Example.lblInfo = InitLabel( Trainer_Example.Form, 5, 175,
        "This is an example Lua trainer written using Cheat Engine 6.\n" ..
        "Coded by: atom0s [Wiccaan]"
        );
   
    -- Create option booleans.
    Trainer_Example.bFlagsEnabled = false;
    Trainer_Example.bTimerEnabled = false;
   
    -- Set form caption.
    control_setCaption( Trainer_Example.Form, "Minesweeper Lua Trainer Example" );
    return true;
end

----------------------------------------------------------------------------------
-- func: Trainer_Example.OnFlagsClicked( .. )
-- desc: Toggles infinite flags when flag button is clicked.
----------------------------------------------------------------------------------
function Trainer_Example.OnFlagsClicked()
    Trainer_Example.bFlagsEnabled = not Trainer_Example.bFlagsEnabled;
   
    if( Trainer_Example.bFlagsEnabled == true ) then
        autoAssemble( "winmine.exe+346E:\n" ..
            "db 90 90 90 90 90 90"
            );
    else
        autoAssemble( "winmine.exe+346E:\n" ..
            "db 01 05 94 51 00 01"
            );
    end
end

----------------------------------------------------------------------------------
-- func: Trainer_Example.OnTimeClicked( .. )
-- desc: Toggles unlimited time when time button is clicked.
----------------------------------------------------------------------------------
function Trainer_Example.OnTimeClicked()
    Trainer_Example.bTimerEnabled = not Trainer_Example.bTimerEnabled;
   
    if( Trainer_Example.bTimerEnabled == true ) then
        autoAssemble( "winmine.exe+2FF5:\n" ..
            "db 90 90 90 90 90 90"
            );
    else
        autoAssemble( "winmine.exe+2FF5:\n" ..
            "db FF 05 9C 57 00 01"
            );
    end
end

-- Execute our script.
Trainer_Example.Main();

_________________
- Retired.
Back to top
View user's profile Send private message Visit poster's website
Post reviews:   Approve 3
Author Review
Dacnomania
Review: Approve
Post reference:
ReviewPosted: Fri Jan 14, 2011 2:46 am


Back to top
View user's profile Send private message Send e-mail AIM Address
ByTransient
Review: Approve
Post reference:
ReviewPosted: Thu Feb 25, 2021 3:25 pm

Thanks (Y)
Back to top
View user's profile Send private message
AylinCE
Review: Approve
Post reference:
ReviewPosted: Sun Feb 28, 2021 9:01 pm

Thanks (Y)
Back to top
View user's profile Send private message Visit poster's website MSN Messenger
Display:  
Cheat Engine Forum Index


Powered by phpBB © 2001, 2005 phpBB Group

CE Wiki   IRC (#CEF)   Twitter
Third party websites