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 


FreeER and Corroder! Try this. Transparent Trainer!
Goto page Previous  1, 2
 
Post new topic   Reply to topic    Cheat Engine Forum Index -> Cheat Engine Lua Scripting
View previous topic :: View next topic  
Author Message
FreeER
Grandmaster Cheater Supreme
Reputation: 53

Joined: 09 Aug 2013
Posts: 1091

PostPosted: Tue Jan 30, 2018 9:37 am    Post subject: Reply with quote

@Corroder The error on start comes from having the timers created on the form and the OnTimer set, but those functions don't exist until the lua code is ran. Essentially the same problem that existed before except that now it's a timer (3 actually) and that makes it worse since it keeps trying to call it instead of just when the form gains focus.

@Aylin
use timers for things that should happen repeatedly (until it's disabled/destroyed) use events like OnClick, OnMouseMove, OnClose etc. to handle reacting to things that have happened. (note: you can also use timers for things that should happen after a specific time delay from the time it's setup, like 5 seconds, since CE doesn't offer anything else for that, you'd just immediately destroy the timer so that it doesn't run again)

If you want to have one animation show up and play, then the trainer appear, you'll need to know when the animation is over (eg. currentPicture loops to 1 again) and do something when that happens, like calling a function which stops and hides the opening animation and shows the UDF1 form. Such a setup is much like creating your own custom "OnLoop" event, and with a little code it could even look exactly the same.
Back to top
View user's profile Send private message
AylinCE
Grandmaster Cheater Supreme
Reputation: 31

Joined: 16 Feb 2017
Posts: 1234

PostPosted: Tue Jan 30, 2018 3:14 pm    Post subject: Reply with quote

Master, do not be angry with me.
Be sure, I have intention to make CE more fun.
My plan and draft are ready.
Also, the lastER regulation of freeER was very successful.
Replicable Gif windows and UDF2, UDF3 portable.
Trainer Gif Project:
1) Opening INTRO (will automatically shut down after boot)
2) Decorate the trainer while running gif (Torch)
3) INFO Button for cheat description gif (Use instruction for now, Cheat construction window in the future)
4) Perhaps cheating: Enabled, Disabled animations.
5) Closing gif (Follow us, visuals etc)



Code:
function createGIF(form, width, top, frames, doCenter)
    ---- ImageGIF Code Creator: freeER .. Thanks .. and Thanks Corroder ..
    -------------------------------------------------------
    local pics={}
    for _,frame in pairs(frames) do
      local pic
      if frame.ClassName == 'TMemoryStream' then
        pic = createPicture()
        pic.loadFromStream(frame)
      else -- first try to load as a tableFile then as a filepath
        local file = findTableFile(frame)
        if file then
          pic = createPicture()
          pic.loadFromStream(file.Stream)
        else
          -- loadFromFile doesn't report success, nor does the Picture object
          -- have a way to check, so do it ourselves first.
          local function file_exists(name)
             local f=io.open(name,"r")
             if f~=nil then io.close(f) return true else return false end
          end
          if file_exists(frame) then
            pic = createPicture()
            pic.loadFromFile(frame)
          end
        end
      end
      -- if successfully loaded then add it
      if pic then pics[#pics+1] = pic end
    end

    -- if we failed to load any frames
    if #frames ~= 0 and #pics == 0 then return nil end

    pics.currentPicture = 1

    local mImage = createImage(form)
    mImage.width = width
    mImage.top = top
    mImage.height = form.height
    if doCenter then
      mImage.left = (form.width-mImage.width) / 2
    end
    --mImage.stretch = true

    local gif = {}
    gif.image = mImage
    gif.pics = pics
    gif.next = function()
      pics.currentPicture = (pics.currentPicture % #pics) + 1
      mImage.Picture = pics[pics.currentPicture]
    end

    gif.timer = createTimer(mImage)
    gif.timer.Interval = 3500 / #gif.pics -- frames per second
    gif.timer.OnTimer = function(sender) gif.next() end
    return gif
end

local frameNameFormat = 'frame_%03d.png'
-- create a gif with frames 1-14, dual flames
local t = {}
for i=1,14 do
  t[i] = findTableFile(frameNameFormat:format(i)).Stream
end
gif1 = createGIF(UDF1, UDF1.width, 200, t, true)

-- create a gif with frames 21-38, rainbowy explosion
local t = {}
for i=15,29 do
  t[#t+1] = findTableFile(frameNameFormat:format(i)).Stream
end
gif2 = createGIF(UDF2, 30, 30, t, true)

--------------------------------------------------

function CEImage2Click(sender)
  gif2.image.stretch = false
  gif1.image.Visible = false
  gif2.image.Visible = false
end
function CEImage3Click(sender)
  --gif1.image.stretch = true
  gif1.image.Visible = true
end



The Classic Trainer scenario is not progressing.
More fun projects, increase enthusiasm.

And when doing all this: You masters, good reason to honor.
To honor CE.
To make all the cheat platform fun.

You are the creators of this entertaining project.
Your name will always be remembered with thanks in these codes.

When I complete the project, I will publish it by opening a new forum.
Please allow me for this?

For your contributions, patience and understanding
again, thank you again.
Back to top
View user's profile Send private message Visit poster's website MSN Messenger
Corroder
Grandmaster Cheater Supreme
Reputation: 75

Joined: 10 Apr 2015
Posts: 1667

PostPosted: Tue Jan 30, 2018 6:53 pm    Post subject: Reply with quote

FreeER wrote:
@Corroder The error on start comes from having the timers created on the form and the OnTimer set, but those functions don't exist until the lua code is ran. Essentially the same problem that existed before except that now it's a timer (3 actually) and that makes it worse since it keeps trying to call it instead of just when the form gains focus.



@FreeER, yes I already guess the problem is on having the timer. But I face a problem, can't stop timer loop or stop script running, since no CE installed on my PC (I'm use CE 6.7 missing setup). So, I can't inspect the form and properties inside it. Beside, aylin made it using form creator where if I open it using notepad, you know form will encoding. But, you fixed it already...bravo.

_________________
Stealing Code From Stolen Code...
And Admit It.. Hmmm....Typically LOL
Back to top
View user's profile Send private message
AylinCE
Grandmaster Cheater Supreme
Reputation: 31

Joined: 16 Feb 2017
Posts: 1234

PostPosted: Thu Feb 01, 2018 3:03 am    Post subject: Reply with quote

Corroder wrote:
Quote:
I named Timer. The work is successful.



Anyhow, just for your reference, I was made a 'Game Launcher Pad and Tools' using CE 6.6, ago.
You can find it here : https://www.youtube.com/watch?v=dAVy_65nNlw
As Corroder a.k.a VCLBr*...
Thanks Corroder ..
Just for your motivation...


I am a VCL subscriber and I have just seen this video.
It will surely inspire, nice work.
And I will build a similar Trainer.
(MP3 will not be and can be more MB
different file accesses may be a risk for different PCs. Sad )

>>  FreeER You have a responsibility for the edits you make Master:
You gave the following code to activate Hacker
(You thought because it is more convenient, I know)
But the only button seems to function. What should be done on different buttons? Maybe you can show an example for 2-3 Buttons?

Code:
function onHack(sender)
  local id = sender.name:match('CEButton(%d+)')
  local name = 'Hack'..id
  local globalName = 'gButtonOn' .. id
  addresslist=getAddressList()
  if (_G[globalName]) then
    control_setCaption(sender, "OFF")
    _G[globalName]=false
    CheatEntry=addresslist_getMemoryRecordByDescription(addresslist,name)
    memoryrecord_unfreeze(CheatEntry)
  else
    control_setCaption(sender, "Wait")
    _G[globalName]=true
    CheatEntry=addresslist_getMemoryRecordByDescription(addresslist,name)
    memoryrecord_freeze(CheatEntry)
    control_setCaption(sender, "ON")
  end
end



In addition to this: Could not activate the button! (Ooppss)?
Like this:

Code:
--- Code Creator: DB ..
--- memrec (CheatEntry)
memoryrecord_freeze(CheatEntry)
    control_setCaption(sender, "ON")
end
cheatEntry.Active=true
if (cheatEntry.Active==false) then
control_setCaption(sender, "Oops!")
  end
end


Meanwhile, the construction of the trainer is ongoing.
I still have not given up Smile Rolling Eyes
Back to top
View user's profile Send private message Visit poster's website MSN Messenger
FreeER
Grandmaster Cheater Supreme
Reputation: 53

Joined: 09 Aug 2013
Posts: 1091

PostPosted: Thu Feb 01, 2018 6:10 am    Post subject: Reply with quote

Aylin wrote:
FreeER You have a responsibility for the edits you make Master
I really don't have a responsibility for anything here. I'm not employed in anyway, there are no contracts or other written agreements. I am not a moderator/admin or anything else. I volunteer my time. Check the CT I provided and it works.

Quote:
I still have not given up Smile Rolling Eyes
learn lua and how debugging works. It'll help you infinitely more than literally anything we could tell you.
Back to top
View user's profile Send private message
AylinCE
Grandmaster Cheater Supreme
Reputation: 31

Joined: 16 Feb 2017
Posts: 1234

PostPosted: Thu Feb 01, 2018 6:56 am    Post subject: Reply with quote

FreeER wrote:
Aylin wrote:
FreeER You have a responsibility for the edits you make Master
I really don't have a responsibility for anything here. I'm not employed in anyway, there are no contracts or other written agreements. I am not a moderator/admin or anything else. I volunteer my time. Check the CT I provided and it works.

Quote:
I still have not given up Smile Rolling Eyes
learn lua and how debugging works. It'll help you infinitely more than literally anything we could tell you.


Now, my Brain Error! I was amazed! Shocked
My words are not to blame. It was misunderstood. Sad
Some of your edits are advanced and complicated to me.
In making this arrangement, a reasonable explanation, teaching,
  I mentioned my idea that it would be good.
My words are misunderstood, I apologize. Sad
I will try to adapt as much as possible.
But my intention to hurt anybody and not blame. Sad

_________________
Hi Hitler Different Trainer forms for you!
https://forum.cheatengine.org/viewtopic.php?t=619279
Enthusiastic people: Always one step ahead
Do not underestimate me Master: You were a beginner in the past
Back to top
View user's profile Send private message Visit poster's website MSN Messenger
FreeER
Grandmaster Cheater Supreme
Reputation: 53

Joined: 09 Aug 2013
Posts: 1091

PostPosted: Thu Feb 01, 2018 7:35 am    Post subject: This post has 2 review(s) Reply with quote

Quote:
I mentioned my idea that it would be good.
Who's going to work on an idea they think is terrible? Of course you think your idea will be good Razz And based on what I saw of the trainer it actually will be when it's working so congratulations there Smile

I didn't take any offense, not really. However, like a lot of other people who are new to programming and hit a stumbling block with something, ask and get it solved (with multiple working demonstrations), and then try to move on and hit another error (often related to the new code they don't fully understand), you don't seem to be spending too much time debugging the code yourself and trying to figure out what you've done to break the code that was working or why what you did broke it.

You're coming back and asking us to do it for you. Which ends up with us essentially writing the trainer for you because tons of errors from things you forgot or typos etc. come up all the time even for people that know what they are doing really well. It's just that because we know what we are doing really well we can usually figure out what the error was pretty quickly, but that's helped enormously by getting extra information like "did this variable have the value I expected it to have, and if not where did I try to set it so I can figure out why not".

Since I'm not interested in writing the trainer for you at some point I have to say "hey, you need to figure some of this out on your own. Go learn some more and do some debugging and if you're still having trouble after a significant time investment on your part then come back and ask about what you're having problems with" Smile


If there's something in the code you don't understand feel free to ask for an explanation, but try to say what parts of it you do understand. That helps prove you're not just staring at it like "oh my god it's code I didn't write there's no way I can understand any of it" lol, but that's not a very uncommon feeling for people new to programming and seeing something more complex than what they've done before Smile

for example instead of just saying you don't know how createGIF works say something like "I understand that it's returning a table with the image object (for the form) and the table of loaded frames and some functions but I don't understand how the pictures are actually created" or for onHack say you understand that it's getting the number from the name of the button and adding that number to the end of the string "Hack" to build the name of the script to enable but you don't understand how _G[globalName] works, etc.
Back to top
View user's profile Send private message
TheyCallMeTim13
Wiki Contributor
Reputation: 50

Joined: 24 Feb 2017
Posts: 976
Location: Pluto

PostPosted: Thu Feb 01, 2018 9:00 am    Post subject: Reply with quote

If a man is willing to learn to fish, and I have the means to teach him but I let him starve then I will be judged for his death. But if a man is unwilling to learn then he will allow him self to starve latter and it's a waste of time and takes from the willing pupils.
_________________
Back to top
View user's profile Send private message Visit poster's website
AylinCE
Grandmaster Cheater Supreme
Reputation: 31

Joined: 16 Feb 2017
Posts: 1234

PostPosted: Thu Feb 01, 2018 9:02 am    Post subject: Reply with quote

Thanks for the lighting.
I do not have the experience to write a new code. I agree that all the time.
But I blend existing codes and create new ideas with them.
  (Use and Visual Use Only)
When the code I know changed, I paused. Rolling Eyes
I consulted the creator of the code before using it.
Your tutorials and sincere attitudes are inspiring.
Surely I will end with a nice project.
Meanwhile, I did not understand anything from the description, Sad
I will continue with the code I know.
Suppose that this is a draft.
New ideas to develop and time will surely be. Wink
Thanks again for your support and patience.
I will share when done. Smile

_________________
Hi Hitler Different Trainer forms for you!
https://forum.cheatengine.org/viewtopic.php?t=619279
Enthusiastic people: Always one step ahead
Do not underestimate me Master: You were a beginner in the past
Back to top
View user's profile Send private message Visit poster's website MSN Messenger
AylinCE
Grandmaster Cheater Supreme
Reputation: 31

Joined: 16 Feb 2017
Posts: 1234

PostPosted: Thu Feb 01, 2018 8:23 pm    Post subject: Reply with quote

Thanks Masters ..

Code:
https://www.youtube.com/watch?v=NXN52D56RYI&index=66&list=PL1yPHiegVpRoWx7jy6ecTqmbejos75O37


The start has occurred.
but LUA is very complex already .. Smile
I'm in trouble with gif2.
You need your permission to share this CT ! Rolling Eyes
Your contributions have been inspirational. Thanks again

_________________
Hi Hitler Different Trainer forms for you!
https://forum.cheatengine.org/viewtopic.php?t=619279
Enthusiastic people: Always one step ahead
Do not underestimate me Master: You were a beginner in the past
Back to top
View user's profile Send private message Visit poster's website MSN Messenger
AylinCE
Grandmaster Cheater Supreme
Reputation: 31

Joined: 16 Feb 2017
Posts: 1234

PostPosted: Sat Feb 03, 2018 1:14 pm    Post subject: Reply with quote

FreeER, Please, a little more detail. ? Sad Sad
Trainer construction nearing its end.
But how do I share this code with other buttons?
there will be at least 12 games and an average of 40 buttons.
I'll connect all of them with Scripts with onClick.
But, onHack, and Cheat Button onClick, how will it be?
Your recommendations always carry one step forward.
But we, the novices, can not comprehend.
Button 'onClick' function: When we select 'onHack'
How do I move 40 script commands? Rolling Eyes

Code:
function onHack(sender)
  local id = sender.name:match('CEButton(%d+)')
  local name = 'Hack'..id
  local globalName = 'gButtonOn' .. id
  addresslist=getAddressList()
  if (_G[globalName]) then
    control_setCaption(sender, "OFF")
    _G[globalName]=false
    CheatEntry=addresslist_getMemoryRecordByDescription(addresslist,name)
    memoryrecord_unfreeze(CheatEntry)
  else
    control_setCaption(sender, "Wait")
    _G[globalName]=true
    CheatEntry=addresslist_getMemoryRecordByDescription(addresslist,name)
    memoryrecord_freeze(CheatEntry)
    control_setCaption(sender, "ON")
  end
end

--------------------------------------------

Or did you mean that? :

Code:
function onHack(sender)
  local id = sender.name:match('CEButton(%d+)')
  local name = 'Hack'..id
  local globalName = 'gButtonOn' .. id
  addresslist=getAddressList()
  if (_G[globalName]) then
    control_setCaption(sender, "OFF")
    _G[globalName]=false
    CheatEntry=addresslist_getMemoryRecordByDescription(addresslist,hack1)
    memoryrecord_unfreeze(CheatEntry)
  else
    control_setCaption(sender, "Wait")
    _G[globalName]=true
    CheatEntry=addresslist_getMemoryRecordByDescription(addresslist,hack1)
    memoryrecord_freeze(CheatEntry)
    control_setCaption(sender, "ON")
  end
end
function onHack(sender)
  local id = sender.name:match('CEButton(%d+)')
  local name = 'Hack'..id
  local globalName = 'gButtonOn' .. id
  addresslist=getAddressList()
  if (_G[globalName]) then
    control_setCaption(sender, "OFF")
    _G[globalName]=false
    CheatEntry=addresslist_getMemoryRecordByDescription(addresslist,hack2)
    memoryrecord_unfreeze(CheatEntry)
  else
    control_setCaption(sender, "Wait")
    _G[globalName]=true
    CheatEntry=addresslist_getMemoryRecordByDescription(addresslist,hack2)
    memoryrecord_freeze(CheatEntry)
    control_setCaption(sender, "ON")
  end
end

Rolling Eyes Sad

_________________
Hi Hitler Different Trainer forms for you!
https://forum.cheatengine.org/viewtopic.php?t=619279
Enthusiastic people: Always one step ahead
Do not underestimate me Master: You were a beginner in the past
Back to top
View user's profile Send private message Visit poster's website MSN Messenger
FreeER
Grandmaster Cheater Supreme
Reputation: 53

Joined: 09 Aug 2013
Posts: 1091

PostPosted: Sat Feb 03, 2018 2:41 pm    Post subject: Reply with quote

FreeER wrote:
If there's something in the code you don't understand feel free to ask for an explanation, but try to say what parts of it you do understand ... for example instead of just saying you don't know how createGIF works ... or for onHack say you understand that it's getting the number from the name of the button and adding that number to the end of the string "Hack" to build the name of the script to enable but you don't understand how _G[globalName] works, etc.


if you have to, comment each line of the code with what you believe it's doing... if you're wrong about something I can correct it. Each individual line should be fairly simple to figure out if you look up what the different functions are (and maybe play around with them yourself), eg.

local id = sender.name:match('CEButton(%d+)')

"match" matches a pattern and returns it, in this case it's matching something in the name and setting the matched portion to a variable called "id", to be more specific it's matching CEButton <1 or more numbers> and returns the numbers (still as a string). So id is set to whatever the number is in the name following the letters "CEButton"


It looks like your second example literally just copy and pasted the function twice which does literally nothing. The first function definition would be overwritten by the second. That is just absolute basic programming in the same way that
x = 1
x = 2

does nothing more than set x to 2. If you don't understand that much then you need to stop what you're doing and learn how to program in lua. Follow some tutorials outside CE, make some simple practice scripts outside CE, etc. until you actually know what you're doing with basic code. If you don't understand the fundamentals of coding then of course you're not going to be able to work with anything we give you and will need to constantly come back and have us tell you what to do, effectively writing the trainer for you.

edit: ah, no you changed it back to the simple but crappy code where you have to have a different function for every single button even when they are doing exactly the same thing (click button, toggle script). If you want to do that then go back to your original code that does
Code:
  if (gButtonOn1) then
    control_setCaption(CEButton1, "OFF")
    gButtonOn1=false
    CheatEntry=addresslist_getMemoryRecordByDescription(addresslist,hack1)
    memoryrecord_unfreeze(CheatEntry)
  else
    control_setCaption(CEButton1, "ON")
    gButtonOn1=true
    CheatEntry=addresslist_getMemoryRecordByDescription(addresslist,hack1)
    memoryrecord_freeze(CheatEntry)
  end


The entire point of the more complicated code is that you have a single function that works for every button, that does the same thing, by getting the id from the button name and then changing the variables based on the id. That way you don't copy and paste 1 function 40 times that are exactly the same except for a couple numbers. Essentially it turns those names into variables so instead of using gButtonOn1, gButtonOn2, gButtonOn3,gButtonOn4,...gButtonOn40 you just use 'gButtonOn' + id... if you don't understand variables then... again, basic programming concept that you should already understand before trying to make a big trainer with some else's code that you don't understand.

That's why in the working code there is a single function not 3. Obviously if it works with a single function in the code I gave you aren't supposed to copy and paste it 40 f*ing times and change it.... basic programming concept "Don't Repeat Yourself" - DRY.
Back to top
View user's profile Send private message
AylinCE
Grandmaster Cheater Supreme
Reputation: 31

Joined: 16 Feb 2017
Posts: 1234

PostPosted: Sat Feb 03, 2018 3:50 pm    Post subject: Reply with quote

FreeER wrote:
FreeER wrote:
If there's something in the code you don't understand feel free to ask for an explanation, but try to say what parts of it you do understand ... for example instead of just saying you don't know how createGIF works ... or for onHack say you understand that it's getting the number from the name of the button and adding that number to the end of the string "Hack" to build the name of the script to enable but you don't understand how _G[globalName] works, etc.


if you have to, comment each line of the code with what you believe it's doing... if you're wrong about something I can correct it. Each individual line should be fairly simple to figure out if you look up what the different functions are (and maybe play around with them yourself), eg.

local id = sender.name:match('CEButton(%d+)')

"match" matches a pattern and returns it, in this case it's matching something in the name and setting the matched portion to a variable called "id", to be more specific it's matching CEButton <1 or more numbers> and returns the numbers (still as a string). So id is set to whatever the number is in the name following the letters "CEButton"


It looks like your second example literally just copy and pasted the function twice which does literally nothing. The first function definition would be overwritten by the second. That is just absolute basic programming in the same way that
x = 1
x = 2

does nothing more than set x to 2. If you don't understand that much then you need to stop what you're doing and learn how to program in lua. Follow some tutorials outside CE, make some simple practice scripts outside CE, etc. until you actually know what you're doing with basic code. If you don't understand the fundamentals of coding then of course you're not going to be able to work with anything we give you and will need to constantly come back and have us tell you what to do, effectively writing the trainer for you.

edit: ah, no you changed it back to the simple but crappy code where you have to have a different function for every single button even when they are doing exactly the same thing (click button, toggle script). If you want to do that then go back to your original code that does
Code:
  if (gButtonOn1) then
    control_setCaption(CEButton1, "OFF")
    gButtonOn1=false
    CheatEntry=addresslist_getMemoryRecordByDescription(addresslist,hack1)
    memoryrecord_unfreeze(CheatEntry)
  else
    control_setCaption(CEButton1, "ON")
    gButtonOn1=true
    CheatEntry=addresslist_getMemoryRecordByDescription(addresslist,hack1)
    memoryrecord_freeze(CheatEntry)
  end


The entire point of the more complicated code is that you have a single function that works for every button, that does the same thing, by getting the id from the button name and then changing the variables based on the id. That way you don't copy and paste 1 function 40 times that are exactly the same except for a couple numbers. Essentially it turns those names into variables so instead of using gButtonOn1, gButtonOn2, gButtonOn3,gButtonOn4,...gButtonOn40 you just use 'gButtonOn' + id... if you don't understand variables then... again, basic programming concept that you should already understand before trying to make a big trainer with some else's code that you don't understand.


-------------------------------- Sad Sad Sad

On your side, I'm stupid. My mind stopped!
With insistence you are describing the general task of the code.
Example CT had 4 Buttons and 4 onClick 'OnHack' Functions.
But I will not put the codes in Lua!
The code will wait on the Cheat Engine as a Script.
All buttons and 'directed by onhack, How do I get the script?
My Code is this:

Code:
function CEButton17Click(sender)
addresslist=getAddressList()
if sender.state == 1 then
end
if (gButtonOn17) then
control_setCaption(UDF1_CEButton17, "OFF")
gButtonOn17=false
CheatEntry=addresslist_getMemoryRecordByDescription(addresslist,[[Hack35]])
memoryrecord_unfreeze(CheatEntry)
else
control_setCaption(UDF1_CEButton17, "Wait")
gButtonOn17=true
CheatEntry=addresslist_getMemoryRecordByDescription(addresslist,[[Hack35]])
memoryrecord_freeze(CheatEntry)
control_setCaption(UDF1_CEButton17, "ON")
end
end


With this code, each button can access its own Script.
Each button has its own 'onClick'
function connects to CEButton1 (2-3-4 vs) (sender)
Script was activating the address.
You tell me all of the 40 Buttons to 'onHack' with 'onClick'!
How are they going to enable Scripts in Cheat Engine?
I will somehow get the CT file to you.


Or:
UDF1 >>> Edit >>> Name: CEButton10 name = Hack10 = onClick: onHack
Should I Change?
In this Cheat Engine: Script: You say Hack10 activates?
If this scenario is correct; Lua will earn in many places .. Smile
Also if the scenario is correct: why did not you say so? Long, long did you scold me.
Sad

As project CT, I want to share the Forum. Still you did not give permission????
In-Game Hack will not be. Pure CT.

_________________
Hi Hitler Different Trainer forms for you!
https://forum.cheatengine.org/viewtopic.php?t=619279
Enthusiastic people: Always one step ahead
Do not underestimate me Master: You were a beginner in the past
Back to top
View user's profile Send private message Visit poster's website MSN Messenger
FreeER
Grandmaster Cheater Supreme
Reputation: 53

Joined: 09 Aug 2013
Posts: 1091

PostPosted: Sat Feb 03, 2018 4:21 pm    Post subject: Reply with quote

here's a basic example with comments and print statements
https://www.dropbox.com/s/httikamivvwkko1/variable%20name%20example.CT?dl=0

if you don't understand it then just go back to what you were doing because you're not going to get it without actually learning the fundamentals of programming.

And yes, any code snippets I've shared (including in example/demonstration cheat tables) you can use. If I wasn't going to let you use it I wouldn't have wasted time telling you about it.
Back to top
View user's profile Send private message
AylinCE
Grandmaster Cheater Supreme
Reputation: 31

Joined: 16 Feb 2017
Posts: 1234

PostPosted: Sat Feb 03, 2018 5:05 pm    Post subject: Reply with quote

Thank you. I hope there will be no more questions.
Interest, thank you for your patience and help.

Pure CT is ready with this code.
After a video I will open a Forum and share CT.
I hope this amusing innovation is a recurring trainer.
Your efforts on CT are valuable.
Thanks again.

_________________
Hi Hitler Different Trainer forms for you!
https://forum.cheatengine.org/viewtopic.php?t=619279
Enthusiastic people: Always one step ahead
Do not underestimate me Master: You were a beginner in the past
Back to top
View user's profile Send private message Visit poster's website MSN Messenger
Display posts from previous:   
Post new topic   Reply to topic    Cheat Engine Forum Index -> Cheat Engine Lua Scripting All times are GMT - 6 Hours
Goto page Previous  1, 2
Page 2 of 2

 
Jump to:  
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


Powered by phpBB © 2001, 2005 phpBB Group

CE Wiki   IRC (#CEF)   Twitter
Third party websites