[TUTORIAL]S4L How to make a Trainer - Music/Picture Functions !

01/15/2014 14:02 Siktor#1
Hello, in this tutorial ill teach you how to create your own s4-league trainer, it will be fully explained, and also ill show you how to add picture in it and how to make other people see it, finally also an audio [Song]

Notice that this tutorial is for the very beginners it contains a lot of stuff with very easy explanation, every step by step, so it may take time from you but I am sure you will learn from this post how to create your first Hack, and if you got any question do not be shy to post it!

After reading the post and making your hack, so you prevent decompiling read [Only registered and activated users can see links. Click Here To Register...]


So we need Koda, Autoit, and NomadMemory download them from here :

Koda : [Only registered and activated users can see links. Click Here To Register...]
Autoit : [Only registered and activated users can see links. Click Here To Register...]
Nomad Memory : you can find it in the attachments!!!

How to download them :

Autoit :

Koda :

Open koda


Before anything you should put the Nomad Memory in the include folder!

Q :Where I can find it?

A : It should be here C:\Program Files (x86)\AutoIt3\Include
If not, you should know where you have installed Autoit, open the folder of AUtoit you will find the Include folder, just put the Nomad Memory in it!

Lesson 1 :

#1 Simple Trainer :

Section 1 "Koda" :

1-Now first we need to change its name from Form to what ever you like,
if you want to change it, change it from here :



2-Second we will add check boxes/buttons/labels.
To add Btns/lbls/chk bxs, you gotta press on the icons in the picture [The Icon underlined with black is the Check box, the one underlined with red is the Label, and finally the one underlined with blue is the button!]


After you click on one of the icon, you should go into the form and click anywhere, and it will appear.

Now click once on every icon and click in the form after clickin' every icon, you should have this [It shouldn't be in the same place but you should have the same stuff] :



3-Third Now arrange the Label/Button/Check box in the right place as you wish,
to do that you just click on one of them and after clicking once press and hold it with the left mouse button and move it where you would like, do that for the three things.



4-We are going to rename them.
To do this, click on the box beside caption in the object inspector and delete[/B] [Backspace][B]The word CheckBox1 and then type what ever you like after clicking one time on the thing you wanna rename for example the checkbox.


Do that for the button too.

But for the label there is something different, the place of the caption is not like in the button and the checkbox, instead of finding it the first one, it will be the third one.

5-Re size the Form by clicking here :


Now do same thing from down


6-We are going to copy the codes, how?
Simple click the icon in the picture below :


After clickin' it, another box will pop-up, you gonna highlight EVERYTHING and then right click -> Copy Selected.

Now we are done with Koda!


Section 2 "Autoit" [Adding Pictures and more help soon!] :

1)How to make an Autoit script :
1-Go to the Desktop or anywhere you would like to make one.
2-Right click anywhere.
3-Go to the "NEW" section.
4-Fifth one from up is called "AutoitV3 Script".
5-Just click on it.


2)Coding :
1-You gonna press right click on the script on the DESKTOP and click on fifth down from down "Edit Script".
2-Delete everything written if there is anything, and paste the codes that you've copied.

Should look like this


Now these codes are just the design of the hack, we need to add function for the checkbox and button.

#0 Nomad Memory : in the includes in the script which are these :
Code:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
You do not have nomad memory you should add it and it will be like this ->

Code:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <NomadMemory.au3>
#1 Button function : If you press on the button, it will not do anything, what I mean it may sends you an error, and if not it will not do anything, so here what are we going to do :

Code:
Case $Button1
   _Hack()
After addin' it, it should look like this :

Code:
While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $Button1
			_Hack()

	EndSwitch
WEnd

#2 Function of the _Hack() : We are done with the _Hack(), but what does that mean, I mean does the program knows what is the meaning of HACK, no you need to add function for this word, if you did not it will send you an error, so here what we will do :
1-Under WEnd put these codes :
Code:
Func _Hack()
GUISetState(@SW_HIDE)
MsgBox ( 0, "title", "text" ) ; [B]This is a message box which will appear after pressing hack button you can change the title to what you like also the text[/B]
$WAIT = ProcessWait("S4Client.exe"); [B]This will make the hack search for s4League[/B]
$PID = ProcessExists("S4Client.exe"); [B]This means he Found S4League[/B]
Sleep(500);[B]This means that after short time he will start[/B]
$OPEN = _MemoryOpen ($PID); [B]This makes the function work[/B]
#3 Check Box Function : We added fully function for the button, but how to make the hack you like, I mean if you chose Inf sp, in the previous functions we didn't mention anything about that, now you will do it follow these steps :
1-Under the last code which is this $OPEN = _MemoryOpen ($PID)
Type this code :
Code:
If GUICtrlRead($Checkbox1) = 1 Then
		_MemoryWrite(Address,$OPEN,"Value","Type") 
	EndIf
Exit
EndFunc
If you just want to make all of them in one short code you can use this one [Thanks to lolkop] :

Code:
Func _Hack()
	If GUICtrlRead($Checkbox1) = 1 Then _MemoryWrite(Address,_MemoryOpen(ProcessWait("S4Client.exe")),"Value","Type")
	Exit
EndFunc
# Address/Value/Type :

#What should I write in the Address/Value/Type :
You should Get Address and Values by Cheat Engine, but most of you wouldn't understand that so just use address searcher you will find it [Only registered and activated users can see links. Click Here To Register...], every thing is explained there [How to use it] and after you open the table of it you will find the address/value/type.

Now our final code should look like :
Code:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <NomadMemory.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("[S4LT]V.1", 117, 100, 218, 128)
$Label1 = GUICtrlCreateLabel("Siktor", 64, 72, 31, 17)
$Button1 = GUICtrlCreateButton("Hack", 8, 40, 75, 25)
$Checkbox1 = GUICtrlCreateCheckbox("Inf Sp", 8, 8, 57, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $Button1
			_Hack()

	EndSwitch
 WEnd
 Func _Hack()
GUISetState(@SW_HIDE)
MsgBox ( 0, "title", "text" ) ; This is a message box which will appear after pressing hack button you can change the title to what you like also the text
$WAIT = ProcessWait("S4Client.exe"); This will make the hack search for s4League
$PID = ProcessExists("S4Client.exe"); This means he Found S4League
Sleep(500);This means that after short time he will start
$OPEN = _MemoryOpen ($PID); This makes the function work
If GUICtrlRead($Checkbox1) = 1 Then
		_MemoryWrite(Address,$OPEN,"Value","Type") 
	EndIf
Exit
EndFunc
Or in lolkop's way :


#4 Compilation [Final Part] : After you are done with your script you going to compile it.

How : close the script.
2-Right click on the .au3 [The script on the desktop]
3-You will find Compile script under Start script.
4-Click on it.

If you have compile (x86) I recommend to use this kind of compilation.
Cause it will make it work for every kind of bits!


#5 How to change the Icon [New] :
1-Right click on your .au3.
2-Stand on open with.
3-Choose a Default program.
4-Browse.
5-In the autoit folder, you will find Aut2Exe folder.
6-Click on the .exe Aut2Exe.
7-A msg box will pop-up press ok.
8-In first browse, choose your location of ur source.
9-In options section, Browse your .ico (Icon).
10-x64 (Check it).
11-Click on convert.
12-Delete the new .exe.
13-Right click on the .au3.
14-Compile x86.
15-Enjoy!


Didn't understand my explanation and pics?
Then here is another tut in another way ;) : [Only registered and activated users can see links. Click Here To Register...]

#6 How to make it undetected [Not memory Detection bypassed!] - [New] :

1.Download "PE Explorer"
2. Install it, Then run it.


Now click on "Open File" and select our compiled script.

Then Click on this button:


Version -> Right Click on "1" -> Edit Resource
Now Change Compiled Script and FileVersion to anything you want.
Done





So we finished our first simple Trainer, but in koda we didn't add cool design or anything but 1 checkbox and 1 button 1 label no pictures nothing cool in it, so now lets see how to add Pictures and not only that also how to add sound!

Lesson 2 :

How to add a Picture?

#1 Picture Function : So many users know how to add a picture, but doesn't know that you need to add "Function" for it, if you just put a picture in koda it will just appear for you, so now we will see how to make it appear for you and other users.

Section 1 "Koda" :

1-In koda go to additional tab.
2-Click on the second icon [It looks like a photo]
3-Go in the form, press and hold the left mouse button, and drag the picture where you would like.
4-Double click on the highlighted box.
5-Click on the button "Load" beside button "Clear".
6-Get the destination of your pic and click open.
7-Copy the codes [You should have learnt that if you've read the first koda section in simple trainer]


Section 2 "Autoit" :

#1 Pasting the Codes :
1-Make a new Autoit script.
2-Right click -> Edit.
3-Delete everything if written anything.
4-Paste your codes.
(You should have learnt that if you've read the first Autoit section in Simple Trainer)

This code :
Code:
$Pic1 = GUICtrlCreatePic("C:\Users\user\Desktop\Hack Not finished\pic.jpg", 8, 8, 449, 129)
Replace it with this ->

Code:
$Pic1 = GUICtrlCreatePic(@ScriptDir & "\yourpicture.jpg", 8, 8, 345, 137)
GUISetState(@SW_SHOW)
Now in this part
Code:
"\yourpicture.jpg",
Instead of yourpicture.jpg, write the name of your picture, for E.x : Mine is called pic.jpg

so make it like this ->

Code:
"\pic.jpg",
Make sure it is .jpg, GUICtrlCreatePic won't even work with *.png files... so what if it is .png, go to this website : [Only registered and activated users can see links. Click Here To Register...] or use google.com and search how to change it to .jpg

Final script should be like this :
Code:
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 467, 319, 192, 124)
$Pic1 = GUICtrlCreatePic(@ScriptDir & "\pic.jpg", 8, 8, 345, 137)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit

	EndSwitch
WEnd
#2 Final thing to make it appear : After you've done with #1, now save your script and make sure that you've put your compiled your trainer with the picture in the same folder!



Lesson 3 :

How to add Audio (Sound)?

In this Lesson, we won't need KODA, just Autoit, so just follow these steps :

1-Get the project that you want to add audio for it. E.x [The one you've added in it picture]
2-Edit script.
3-You should add a new Include and it is
Code:
#include <Sound.au3>
4-Now, this part of your code :

Code:
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 467, 319, 192, 124)
$Pic1 = GUICtrlCreatePic(@ScriptDir & "\pic.jpg", 8, 8, 345, 137)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
add this code :

Code:
$handle = _SoundOpen(@ScriptDir & "\yoursound.mp3")
_SoundPlay($handle)
It will be :

Code:
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Sound.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 467, 319, 192, 124)
$Pic1 = GUICtrlCreatePic(@ScriptDir & "\pic.jpg", 8, 8, 345, 137)
GUISetState(@SW_SHOW)
$handle = _SoundOpen(@ScriptDir & "\yoursong.mp3")
_SoundPlay($handle)
#EndRegion ### END Koda GUI section ###

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit

	EndSwitch
WEnd

and instead of yoursong.mp3 instead of yoursong into the name of the song you want, mine is called Dreaming so make it :

Code:
$handle = _SoundOpen(@ScriptDir & "\Dreaming.mp3")
_SoundPlay($handle)
Now make sure that you add the Include, make sure that you've typed the name of the song right and make sure you put the song with the Trainer in the same folder.

So final code will be :
Code:
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Sound.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 467, 319, 192, 124)
$Pic1 = GUICtrlCreatePic(@ScriptDir & "\pic.jpg", 8, 8, 345, 137)
GUISetState(@SW_SHOW)
$handle = _SoundOpen(@ScriptDir & "\Dreaming.mp3")
_SoundPlay($handle)
#EndRegion ### END Koda GUI section ###

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit

	EndSwitch
WEnd

Special thanks to : FullMetal
»FlutterShy™
lolkop
timiostimio


For the help!
Anything that you do not understand, please post the question you like and if I made any mistake please say to me and do not flame :)


Press thanks button if this helped you in anything, it really took a lot of time writing it all by my self, maybe I've copied small stuff but not much.
If you need any help add me on skype siktor199
That is it!
Regards,
01/15/2014 15:50 alpines#2
Hmm, although this is in AutoIt I'd post it in Coding Tutorials.
I sent a moverequest, let's see if it will be moved.
01/15/2014 17:12 lolkop#3
actually you've only explained some basic koda features...
(to me it looks like you're not even understanding the code, koda produces for you)

your memory part is overloaded by totally useless stuff:
Code:
Func _Hack()
	GUISetState(@SW_HIDE) <--- hiding the gui, is useless since the script exists in the end of the function
	MsgBox ( 0, "title", "text" ) <--- what does this do to improve the "hack"?!
	$WAIT = ProcessWait("S4Client.exe") <--- waits untill the process exists and returns the pid
	$PID = ProcessExists("S4Client.exe") <--- totally useless, since you've got the pid of the existing process allready
	Sleep(500) <-- wasting time?!
	$OPEN = _MemoryOpen ($PID); This makes the function work <-- best explanation ever...
	If GUICtrlRead($Checkbox1) = 1 Then
			_MemoryWrite(Address,$OPEN,"Value","Type") 
		EndIf
	< if the checkbox is unchecked, you're still wasting time with the rest of the function. and even worse, if the hack doesn't get applied, the msgbox of the hack still shows of and the script just ends here... the user won't even get to know why the "hack" didn't work.>
	Exit
EndFunc
this is, how the function should look:
Code:
Func _Hack()
	If GUICtrlRead($Checkbox1) = 1 Then _MemoryWrite(Address,_MemoryOpen(ProcessWait("S4Client.exe")),"Value","Type")
	Exit
EndFunc
as it's just one line of action, normally this should even be included in the mainloop directly


Section 2 is totally useless... actually you're pasting some code and changes, not explaining why u're doing it.
Quote:
Make sure it is .jpg, maybe it is .png so write it .png not .jpg!
GUICtrlCreatePic won't even work with *.png files...

in "Lesson 3" you're using yet another useless include... for a single played sound file, a simple use of the SoundPlay function would be way more effective and clean up the code by a lot.
01/15/2014 21:25 MrSm!th#4
#moved
01/15/2014 21:35 BlackAce89#5
das mit dem sound geht auch so
Code:
FileInstall("002.mp3", @TempDir & "\002.mp3", 1)
SoundPlay(@TempDir & "\002.mp3")
01/15/2014 21:44 Destroyer-*#6
Line 1058 : unknown function error. And xTrap detecteed
01/15/2014 21:54 I2espect#7
@Siktor
What About Searching for addresses and values.. i am coding for another game [But In C++] !! but i want to know about S4 !?
01/15/2014 21:54 Kevinatorxx123#8
kannst du mal dein Bypass updaten? bitte
01/15/2014 21:56 flory312#9
This is a good tutorial ^^. But how I can make my Autoit trainer undetectable ? I searched but NONE of that treads work.
01/15/2014 22:27 Siktor#10
Quote:
Originally Posted by lolkop View Post
actually you've only explained some basic koda features...
(to me it looks like you're not even understanding the code, koda produces for you)

your memory part is overloaded by totally useless stuff:
Code:
Func _Hack()
	GUISetState(@SW_HIDE) <--- hiding the gui, is useless since the script exists in the end of the function
	MsgBox ( 0, "title", "text" ) <--- what does this do to improve the "hack"?!
	$WAIT = ProcessWait("S4Client.exe") <--- waits untill the process exists and returns the pid
	$PID = ProcessExists("S4Client.exe") <--- totally useless, since you've got the pid of the existing process allready
	Sleep(500) <-- wasting time?!
	$OPEN = _MemoryOpen ($PID); This makes the function work <-- best explanation ever...
	If GUICtrlRead($Checkbox1) = 1 Then
			_MemoryWrite(Address,$OPEN,"Value","Type") 
		EndIf
	< if the checkbox is unchecked, you're still wasting time with the rest of the function. and even worse, if the hack doesn't get applied, the msgbox of the hack still shows of and the script just ends here... the user won't even get to know why the "hack" didn't work.>
	Exit
EndFunc
this is, how the function should look:
Code:
Func _Hack()
	If GUICtrlRead($Checkbox1) = 1 Then _MemoryWrite(Address,_MemoryOpen(ProcessWait("S4Client.exe")),"Value","Type")
	Exit
EndFunc
as it's just one line of action, normally this should even be included in the mainloop directly


Section 2 is totally useless... actually you're pasting some code and changes, not explaining why u're doing it.

GUICtrlCreatePic won't even work with *.png files...

in "Lesson 3" you're using yet another useless include... for a single played sound file, a simple use of the SoundPlay function would be way more effective and clean up the code by a lot.
Thanks, fixed most of em and ill add in section 2 more help like pics and maybe video but soon :)

Quote:
Originally Posted by BlackAce89 View Post
das mit dem sound geht auch so
Code:
FileInstall("002.mp3", @TempDir & "\002.mp3", 1)
SoundPlay(@TempDir & "\002.mp3")
Thanks, will add it but not now cause I am tired :)

Quote:
Originally Posted by I2espect View Post
@Siktor
What About Searching for addresses and values.. i am coding for another game [But In C++] !! but i want to know about S4 !?
Maybe ill add tutorial for that soon but for now if you want to make a trainer for s4 league use [Only registered and activated users can see links. Click Here To Register...] as for the other game use google.com and search for an address searcher for it till I or someone add a tutorial for CE ;)

Quote:
Originally Posted by flory312 View Post
This is a good tutorial ^^. But how I can make my Autoit trainer undetectable ? I searched but NONE of that treads work.
At the moment I am trying to learn that, but I know that it won't work with Autoit, use C++ for this function, but I promise ill try to learn that and make a tutorial about it.

Try reading these threads : [Only registered and activated users can see links. Click Here To Register...]

[Only registered and activated users can see links. Click Here To Register...]


For a bypass you can use this : [Only registered and activated users can see links. Click Here To Register...]

But notice that this will work with Float functions ;)

Like : wallshoot, Hit Range, Cam hack.
01/15/2014 22:50 mohamedezzat#11
thank you very much i will try to make one (: thank you agine you are the best (:
01/15/2014 22:54 lolkop#12
Quote:
Originally Posted by Siktor View Post
Ill fix em, and they are not so big mistakes, only the .png is a big mistake other codes work, they are not wrong, ill add your codes 2 and give you credits :)
well... working code shouldn't be the thing you're actually trying to produce.
scripting is all about effectivity and efficiency.

let's just take your "_Hack" function for example... beside the fact that u're using a lot of useless stuff in there, u're also producing a lot of potential problems by not defining scopes of variables, usage of scriptblocking functions (like MsgBox or Sleep), exiting the whole script in a simple function, opening handles without closing them, ...

those 10 lines of code could produce hundreds of errors(problems) in even simple scripts...

imao tutorials like this one will only confuse potential newbies in autoit scripting.
whenever you're working with multiple tasks, scriptblocking functions are a total NoGo!
whenever you're using self declared functions, you will have to mess around with scopes of variables and exitpoints...
whenever you're working with variables, you'll have to mess around with potential memory leaks (like opening handles without closing them)...

allways keep in mind: autoit has got no garbage collection, so you will have to take care of it!
01/15/2014 22:54 zProCan#13
Thans

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

AutoIt Hackers Password Codes?
01/15/2014 22:57 Siktor#14
Quote:
Originally Posted by Kevinatorxx123 View Post
kannst du mal dein Bypass updaten? bitte
Quote:
Originally Posted by lolkop View Post
well... working code shouldn't be the thing you're actually trying to produce.
scripting is all about effectivity and efficiency.

let's just take your "_Hack" function for example... beside the fact that u're using a lot of useless stuff in there, u're also producing a lot of potential problems by not defining scopes of variables, usage of scriptblocking functions (like MsgBox or Sleep), exiting the whole script in a simple function, opening handles without closing them, ...

those 10 lines of code could produce hundreds of errors(problems) in even simple scripts...

imao tutorials like this one will only confuse potential newbies in autoit scripting.
whenever you're working with multiple tasks, scriptblocking functions are a total NoGo!
whenever you're using self declared functions, you will have to mess around with scopes of variables and exitpoints...
whenever you're working with variables, you'll have to mess around with potential memory leaks (like opening handles without closing them)...

allways keep in mind: autoit has got no garbage collection, so you will have to take care of it!
That is why I've edited my reply xD
But I do understand the codes, and this tutorial is so simple, maybe when I learn more I can make a better tutorial.


Quote:
Originally Posted by lolkop View Post
well... working code shouldn't be the thing you're actually trying to produce.
scripting is all about effectivity and efficiency.

let's just take your "_Hack" function for example... beside the fact that u're using a lot of useless stuff in there, u're also producing a lot of potential problems by not defining scopes of variables, usage of scriptblocking functions (like MsgBox or Sleep), exiting the whole script in a simple function, opening handles without closing them, ...

those 10 lines of code could produce hundreds of errors(problems) in even simple scripts...

imao tutorials like this one will only confuse potential newbies in autoit scripting.
whenever you're working with multiple tasks, scriptblocking functions are a total NoGo!
whenever you're using self declared functions, you will have to mess around with scopes of variables and exitpoints...
whenever you're working with variables, you'll have to mess around with potential memory leaks (like opening handles without closing them)...

allways keep in mind: autoit has got no garbage collection, so you will have to take care of it!
And btw, if you want it so simple code, we can just use this :
Code:
#include<NomadMemory.au3>
#requireadmin
Processwait("S4Client.exe")
$P = ProcessExists("S4Client.exe")
$o = _MemoryOpen($P)
_MemoryWrite(Address,$o,'Value','Type') ; Main function

_MemoryWrite(Address,$o,'Value','Type') ; More function
_MemoryClose($P)
exit
But adding more codes, like msgboxes, Tooltips, a Form and such stuff [Picture 2] makes it more interesting, that is why I add such codes ;)
01/16/2014 00:13 SoulCr4ck#15
Quote:
Originally Posted by Siktor View Post
That is why I've edited my reply xD
But I do understand the codes, and this tutorial is so simple, maybe when I learn more I can make a better tutorial.




And btw, if you want it so simple code, we can just use this :
Code:
#include<NomadMemory.au3>
#requireadmin
Processwait("S4Client.exe")
$P = ProcessExists("S4Client.exe")
$o = _MemoryOpen($P)
_MemoryWrite(Address,$o,'Value','Type') ; Main function

_MemoryWrite(Address,$o,'Value','Type') ; More function
_MemoryClose($P)
exit
But adding more codes, like msgboxes, Tooltips, a Form and such stuff [Picture 2] makes it more interesting, that is why I add such codes ;)
First finish WriteProcessMemory <- without Nomadmemory.au3 ..Try WinApi_WriteProcessMemory ()
Or DllCall.
You can also make a Tutorial for a Gui with koda .

Code:
Opt ("GuiOnEventMode",1)
$UselessThread = GuiCreate ("",15,15,250,250)
GuisetState ()
GuiSetOnEvent ($GUI_EVENT_CLOSE, "Asdf")
While true 
Sleep (100)
Wend

Func Asdf ()
exit


EndFunc
Try to explain the src :x