 |
Cheat Engine The Official Site of Cheat Engine
|
| View previous topic :: View next topic |
| Author |
Message |
Hutzon Cheater
Reputation: 0
Joined: 24 Oct 2006 Posts: 32 Location: Wouldn't you like to know
|
Posted: Sat Mar 24, 2007 5:06 pm Post subject: ACTool - How to use it, control it, pwn with it |
|
|
AC Tool Guide - By Hutzon
Learn how to use it, control it, and pwn with it
This guide is just going to be on how to use AC Tools and is suppose to be for people that want to learn it, but don't really know where to start. Ok so here we go
AC Tools is a program written by Cameron Scott Cole and David Smith (OnceBitten)
You can download it at their homepage http://www.actool.net
It was originally made for a game called Asheron's Call so you could basically bot with it, just like we use it. It inputs keystokes and mouse clicks to a specific program that you chose, like a robot, you tell it to do something and it does it.
Ok lets learn some of the basic commands and how to make a basic macro
SetActiveWindow - A needed command that must be a the top of every macro u make, because it makes it so when u press start, you should automatically switch programs to the one u set your macro too. Also needed for memory functions.
Keys - Sends a keystoke to the program you have selected and it will tell the program thru almost like virtual keyboard that the button was pressed
Delay - Make the macro wait a specific amount of time before doing the next task .1 sec = 1000 Delay
End - Stops the current loop, function or macro. Used for most things, such as Loops, Procedures, Constants, and many more. But you'll learn later on.
Loop - Loops your macro a set number of time, need an end statement for every loop statement
Ok now we know wat the basic statements are of AC Tools so lets try making a simple bot, that will say hello
Code:
SetActiveWindow Notepad
Loop 1
Keys hello
Delay 1000
End
So lets break this down to see wat AC Tool is telling Notepad
Code:
SetActiveWindow Notepad //Makes AC Tool switch to and read NotePad.exe if it is open
Loop 1 //Make the macro repeat 1 times
Keys Hello //Imputs the keystrokes 'h' 'e' 'l' 'l' 'o' into notepad
Delay 1000 //Wait for 1 second before continuing
End //Stops the Loop statement that we defind earlier
If you were to run that, with NotePad open, it would just type hello, wait 1 second and the stop running.
There are more variations on this simple script like this
Code:
SetActiveWindow Notepad
While 1=1
Keydown H 5 sec
Delay 1000
End
Lets break this one down
Code:
SetActiveWindow Notepad //You know what this means so i won't say anything about it from now on
While 1=1 //A 'While' statement that if 1 is equal to 1 the script will repeat itself
Keydown H 5 sec //A variation of the 'Keys' function, this just press the key down for a certian ammount of time
Delay 1000 //Wait for 1 second before continuing
End //End's the current function, but since the While statement is there and 1 = 1 it's like the end doesn't exist anymore, (just this one tho)
Now go write some basic scripts and play around with AC Tools until you figure out something. But my advice is to find other's scripts and learn off of there's, break them down and figure out how they tick. This is the best way to learn here.
Lets try some harder stuff now, with 2 new functions. The Procdure and Constants statements
Procedure - It's a routine basically that you can access anywere in the macro, so cutting down on the size of your script and is alot ezier to change that going thru a massive script and changing this on thing at a time. You define wat you want a Procedure to do and End it, then someone later on in the script you can 'Call' it and it will preform the procedure
Call - Calls a procedure and preforms it
Constants - Indentifies that you set at the start of the macro, same thing as a function, basically makes scripts more easily change able and user friendly. You can define keys, values, and other things as Constants
Lets make a script using these new statements now:
Procedure statement
Code:
Procedure 1
Keys h
End
Procedure 2
Delay 1000
End
SetActiveWindow Notepad
Loop 1
Call 1
Call 2
Call 1
End
Lets break this down
Code:
Procedure 1 //Defines the following tasks as procedure as 1
Keys h // Press the 'h' key
End //Stops defining for the procedure '1'
Procedure 2 //Defines the following tasks as procedure as 2
Delay 1000 //Delay for 1 second
End //Stops defining for the procedure '2'
SetActiveWindow Notepad
Loop 1 //Repeat once
Call 1 //"Calls" the procedure defined as 1 and preforms it
Call 2 //"Calls" the procedure defined as 2 and preforms it
Call 1 //"Calls" the procedure defined as 1 and preforms it
End //Ends the macro
So it would look like this, if you ran it
hh
with a second pause inbetween the h's
Now lets look at the Constants statement
Code:
Constants
k1 = h
d1 = 1000
End
SetActiveWindow Notepad
Loop 1
Keys $k1
Delay $d1
End
Now lets break it down
Code:
Constants //Defines constants
k1 = h //defines that all $k1 statements in the script are now to be h
d1 = 1000 //defines that all $d1 statements in the script are now recognized as 1000
End
SetActiveWindow Notepad
Loop 1
Keys $k1 //instead of telling it u want to press k1 it presses wat u have desinated as k1
Delay $d1 //instead of telling it to do delay for d1 it delays for how much u set the value of d1 for
End
Notice how i put a "$" sign in front of the constants when i wanted them in the script? YOU MUST HAVE this infront of a constant if u want to call it otherwise actool would just see it as k1 instead of h.
I would advise now that you figure out a little more of AC Tool before going on because it will bet much more complex if you don't know wat u r doing.
The 'If' and 'Else' statement
This is for bots that read something, and have more than one option of things to do depending on wat it reads. Basically a True/False statement. The 'Else' statement conensids with the 'If'. Else is like the False statement.
Lets see an example
Code:
Constants
k1 = h
k2 = g
d1 = 1000
d2 = 500
End
SetActiveWindow Notepad
Loop 1
Keys $k1
If d1 < d2
Keys $k1
Else
Keys $k2
End
End
Lets break it down again
Code:
Constants
k1 = h
k2 = g
d1 = 1000
d2 = 500
End
SetActiveWindow Notepad
Loop 1
Keys $k1 //Presses wat is defined as k1
If $d1 < $d2 //Compares d1 value with the d2 value
Keys $k1 //If d1 is smaller than d2 then press the key defined as k1
Else //If that statement is wrong then:
Keys $k2 //Press the key defined as k2
End //End the 'If' statement
End
So it would look like this with the current Constants:
hg
But if you were to switch the values of d1 and d2 it would look like this:
hh
So again, play around with 'If' and 'Else' statements until you get used to using them
Lets learn how to use the mouse now.
These all all the commands that you can use the mouse with
DrayTo X, Y - After you click on a place, you drag the mouse to another point on your screen. Used for selection, applying something, etc
LeftClick - Press the Left Mouse Button
LeftMouseDown - Press down the Left Mouse Button and hold
LeftMouseUp - Release the Left Mouse Button
DoubleClick - Double clicks the left mouse button
MousePos X, Y - Moves the mouse to the co-ords u specified
MouseIDItem X, Y - Identifies the item that the mouse is on (I'm not going to cover this since it's just for Asheron's Call)
RightClick - Press the Right Mouse Button
RightMouseDown - Press down the Right Mouse Button and hold
RightMouseUp - Release the Right Mouse Button
*IMPORTANT*
How to find you current Mouse Position, just press Ctrl-M when you mouse is on the place you want it to be and a MousePos X, Y will show up on the script with the co-ords in the place of the X and Y
Lets make a script to move the mouse using all these functions
Code:
Constants
k1 = h
k2 = g
d1 = 1000
d2 = 500
End
SetActiveWindow NotePad //Move window to top left corner
Loop 1
MousePos 16, 58
Keydown $k1 5 sec
Delay $d2
MousePos 596, 58
Delay $d2
LeftMouseDown
Delay $d2
DragTo 16, 58
Delay $d2
MousePos 30, 58
Delay $d2
RightClick
Delay $d2
MousePos 88, 102
Delay $d2
RightClick
Delay $d2
Loop 5
Keys {RETURN}
End
MousePos 16, 143
Delay $d2
RightClick
Delay $d2
MousePos 68, 223
Delay $d2
LeftClick
End
I'm not going to break this one down since it's self explainitory, but wat it should do is type 5 seconds of the letter h, cut it, and then hit enter 5 times and paste it there.
The Compute Function
This function basically is a little calculator that u can use to figure out stuff in AC Tools, the main place i use it is when i'm reading or writing memory in a game. But it has alot of functions.
When using the compute statement i would advise that you make a Temp = 0 because this creates a scratchpad for AC Tool's, like below:
//Temp means Temperary
Code:
Constants
k1 = h
k2 = g
d1 = 1000
d2 = 500
Temp = 0
Temp2 = 0
End
SetActiveWindow NotePad
Loop 1
If $d1 < 501
Compute $d1 = $Temp
Keys $k1
Else Compute $d2 = $Temp2
Keys $k2
End
End
Breaking it down......
Code:
Constants
k1 = h
k2 = g
d1 = 1000
d2 = 500
Temp = 0 //Defines 1st Scratch pad
Temp2 = 0 //Defines 2nd Scratch pad
End
SetActiveWindow NotePad
Loop 1
If $d1 > 501 //If the value of d1 is larger than 501 then.....
Compute $d1 = $Temp //Make the value of the Temp be the same as the value of d1
Keys $k1 //Then press h key
Else Compute $d2 = $Temp2 //If the value of d1 is less than 501 set the value of the Temp2 be the same as the value of d2
Keys $k2 //Then press the g key
End
End
Another exampe of the Computer Function is in my SmartBot, Procedure Selecting a Character
Code:
Constants
Character = 2
CharacterX = 258
CharacterXOffset = 124
CharacterY = 371
Temp = 0
Temp2 = 0
End
Procedure SelectCharacter
If $Character = 1
Compute Temp = $Character //Makes Temp = 1 if $Character is = to 1
Else
Compute Temp = $Character * $CharXOffset //If $Character is anything other than 1, multiply the value of $Character by the $CharXOffset (distance between characters) and make that the Temp value
End
Compute Temp = $Temp + $CharacterX //Add the $Temp value that we computed be4 and at the $CharacterX value and make that the new Temp value
MousePos $Temp, $CharacterY //Move your mouse to the position that is X = Temp value and Y = CharacterY value
End
SetActiveWindow MapleStory
Call SelectCharacter //Do the SelectCharacter procedure
End
This might be jumping forward to fast for some of you but it's pretty ez to understand if you can just think about it for a second
I'm not done typing this guide up yet but am slowely getting around to doing it, so be patient
Reading the Memory
Ok this will get really complicated so just look it over for a while and try to understand it, I will
try to get as detailed as I can
I use the people scanner from my smart bot as my example
Code:
Constants
MaxPeople = 0
NumberPeople = 0
PeoplePointer = 0
Temp = 0
End
Procedure PeopleTest
ReadMemory PeoplePointer = 0077F60C //needs to be updated for newest version
Compute PeoplePointer = $PeoplePointer + 24
DecToHex PeoplePointer = $PeoplePointer
ReadMemory NumberPeople = $PeoplePointer
If $NumberPeople > $MaxPeople
Call ChangeChannel
End
End
Procedure ChangeChannel
Keys {ESC}
Delay 100
Keys {RETURN}
Delay 100
Keys {RIGHT}
Delay 100
Keys {RETURN}
Delay 5000
End
SetActiveWindow MapleStory
While 1=1
Call PeopleTest
End
Lets break it down
Code:
Constants
MaxPeople = 0 //Max number of people you want on map
NumberPeople = 0 //Minumum ammount of people you want on map
PeoplePointer = 0 //Just leave at 0 or you can set it to the base address
Temp = 0 //ACTool scratch paper
End
Procedure PeopleTest
ReadMemory PeoplePointer = 0077F60C //Set address here so it reads the games memory at the proper location//needs to be updated for newest version
Compute PeoplePointer = $PeoplePointer + 24 //24 is the hex pointer in decimal form
DecToHex PeoplePointer = $PeoplePointer //Changes the decimal value to hex
ReadMemory NumberPeople = $PeoplePointer //Changes PeoplePointer to the Number People
If $NumberPeople > $MaxPeople //If the NumberPeople is larger than the MaxPeople then...
Call ChangeChannel //Change Channel
End
End
Procedure ChangeChannel //Changes channels, pretty straight forwar
Keys {ESC}
Delay 100
Keys {RETURN}
Delay 100
Keys {RIGHT}
Delay 100
Keys {RETURN}
Delay 5000
End
SetActiveWindow MapleStory
While 1=1
Call PeopleTest //Run PeopleTest forever until told to stop
End
Reading Colors
This part is making ACTool's read color's at a certian spot on the screen and doing an action if it is or not a color
I'll be using my AutoPot for an example
Code:
Constants
HpPercent = 30
MpPercent = 5
HpKey = {DEL}
MpKey = {PGDN}
PotionDelay = 100
HpX = 264
MpX = 349
HPMPY = 619
Temp = 0
End
Procedure AutoPot
Compute Temp = $HpX + $HpPercent
IsGrey $Temp, $HPMPY
Keys $HpKey
Delay $PotionDelay
End
Compute Temp = $MpX + $MpPercent
IsGrey $Temp, $HPMPY
Keys $MpKey
Delay $PotionDelay
End
End
SetActiveWindow MapleStory
While 1=1
Call AutoPot //Run AutoPot forever until told to stop
End
Lets break this one down
Code:
Constants
HpPercent = 30 //How low you want you HP to go down before it pots again
MpPercent = 5 //How low you want you MP to go down before it pots again
HpKey = {DEL} //HP pot key
MpKey = {PGDN} //MP pot key
PotionDelay = 100 //Delay between when another pot can be used
HpX = 264 //X co-ord of the start of your HP bar
MpX = 349 //X co-ord of the start of your MP bar
HPMPY = 619 //Y co-ord of your HP and MP bars
Temp = 0 //ACTool scratch paper
End
//*IMPORTANT NOTE* the HP and MP bars in MS are only 102 pixels long so they made it quite helpful to us
Procedure AutoPot
Compute Temp = $HpX + $HpPercent //Find out exact X axis spot of when you want to get a pot
IsGrey $Temp, $HPMPY //Looks at the X, Y location and if it is Grey...
Keys $HpKey //press the Delete key, what ever you have you HP pot set too
Delay $PotionDelay //Pauses for 0.1 sec so you won't run into the error of pot spamming
End
Compute Temp = $MpX + $MpPercent //Find out exact X axis spot of when you want to get a pot
IsGrey $Temp, $HPMPY //Looks at the X, Y location and if it is Grey...
Keys $MpKey //press the PageDown key, what ever you have you MP pot set too
Delay $PotionDelay //Pauses for 0.1 sec so you won't run into the error of pot spamming
End
End
SetActiveWindow MapleStory
While 1=1
Call AutoPot //Run AutoPot forever until told to stop
End _________________
|
|
| Back to top |
|
 |
Labyrnth Moderator
Reputation: 10
Joined: 28 Nov 2006 Posts: 6301
|
Posted: Sun Mar 25, 2007 5:48 am Post subject: |
|
|
It is nice you are trying to help people by posting this, But Ac-Tools is really kinda crappy.
Autoit is allot better. |
|
| Back to top |
|
 |
Progression Grandmaster Cheater Supreme
Reputation: 1
Joined: 22 Mar 2007 Posts: 1541
|
Posted: Sun Mar 25, 2007 3:00 pm Post subject: |
|
|
| Labyrnth wrote: | It is nice you are trying to help people by posting this, But Ac-Tools is really kinda crappy.
Autoit is allot better. |
What he said, ^ _________________
|
|
| Back to top |
|
 |
XxScaRxX Master Cheater
Reputation: 0
Joined: 22 Jan 2007 Posts: 456
|
Posted: Wed Mar 28, 2007 12:08 am Post subject: |
|
|
SetActiveWindow MapleStory
While 1=1
Keydown {Ctrl} 27 sec
Keys {RIGHT}
Keys {LEFT}
Delay 5
End
would that be right for
hold control down for 27 seconds
press right once
then left once
then
delay very little
and repeat forever _________________
You wake to suffer through the day
Trade a dream for the pay
Well here's the fact, I hope it sticks
You're just alive out of habit
| x0r wrote: | | [OFFTOPIC] tags/posts = 16 day ban |
 |
|
| Back to top |
|
 |
Labyrnth Moderator
Reputation: 10
Joined: 28 Nov 2006 Posts: 6301
|
Posted: Wed Mar 28, 2007 1:13 am Post subject: |
|
|
| Quote: | SetActiveWindow MapleStory
While 1=1
Keydown {Ctrl} 27 sec
Keys {RIGHT}
Keys {LEFT}
Delay 5
End
|
^ 27 milliseconds, not seconds. then you have another delay of 5 milliseconds
===========================================
Autoit
You can do this several ways. I posted this one because it is the easiest to understand.
This will loop just like you wanted. Only delay is the 27 second hold down time.
===========================================
| Code: | #Include <Misc.au3>
WinActivate("Maple")
WinWaitActive("Maple")
$DOIT = 0
Call("DOIT")
Func DOIT()
While $DOIT = 0
Send("{CTRLDOWN}") ; Holding control
Send("{RIGHT}") ; Pressing right
Send("{LEFT}") ; Pressing left
Sleep(27000) ; waiting 27 seconds
Send("{CTRLUP}") ; Letting up on control
WEnd
EndFunc
|
|
|
| Back to top |
|
 |
Broken Master Cheater
Reputation: 0
Joined: 12 Sep 2006 Posts: 322
|
Posted: Thu Mar 29, 2007 5:36 pm Post subject: |
|
|
| Labyrnth wrote: | It is nice you are trying to help people by posting this, But Ac-Tools is really kinda crappy.
Autoit is allot better. |
Is autoit detected by gMS GG? _________________
|
|
| Back to top |
|
 |
Labyrnth Moderator
Reputation: 10
Joined: 28 Nov 2006 Posts: 6301
|
Posted: Thu Mar 29, 2007 6:09 pm Post subject: |
|
|
I would not think so, unless you are trying to open process with it maybe.
If ac tools is not detected then autoit will not be as well.
Only way to know for sure is try it.
Now keep in mind some games will disconnect you for doing to many key strokes at one time or to fast. So be sure not to spam the server with them. |
|
| Back to top |
|
 |
oFayto Cheater
Reputation: 0
Joined: 08 Apr 2007 Posts: 43 Location: Somewhere in malaysia
|
Posted: Mon Apr 09, 2007 4:37 am Post subject: |
|
|
| Erm, can AC Tool or Autoit be used to make or create bot for silkroad online or maplestory??? |
|
| Back to top |
|
 |
Labyrnth Moderator
Reputation: 10
Joined: 28 Nov 2006 Posts: 6301
|
Posted: Mon Apr 09, 2007 7:11 pm Post subject: |
|
|
I have seen some snipits of autoit code that is for Silk Road,
Have not seen anything for maple, But i think it can be done too. |
|
| Back to top |
|
 |
kimkim How do I cheat?
Reputation: 0
Joined: 11 Sep 2007 Posts: 6
|
Posted: Thu Mar 26, 2009 6:43 pm Post subject: |
|
|
Yo guys sry for posting on old topic, but i'm on situation here.
I'm trying to keep the left shift hold for like 1min and keep pushing leftclick of mouse at same time, i've put it like this.
keydown ~LEFT 65000
LeftClick //ROTINA
delay 3000 //Intervalo
but the macro just start use the leftclick after 65seconds o.0.
Anyone know how to make it ?
Thanks
Obs: If are there any kind of new macro better than ac tool plz i'm looking forward it =D _________________
KIM |
|
| Back to top |
|
 |
Overload Master Cheater
Reputation: 0
Joined: 08 Feb 2008 Posts: 293
|
Posted: Thu Mar 26, 2009 7:02 pm Post subject: |
|
|
Wow this is two years old. I'll shoot myself if you don't get a warning. Or at least bitched at. _________________
Blog
| Quote: | Rhys says:
you can be my maid
Rhys says:
ill buy you a french maid outfit
Tyler says:
Sounds good
Rhys says:
ill hold you to that |
|
|
| Back to top |
|
 |
kimkim How do I cheat?
Reputation: 0
Joined: 11 Sep 2007 Posts: 6
|
Posted: Thu Mar 26, 2009 7:17 pm Post subject: |
|
|
lol are there rules for not being able to post on old topics ?
if there's i'm realy sry, i'll acept it. _________________
KIM |
|
| Back to top |
|
 |
Flyte Peanuts!!!!
Reputation: 6
Joined: 19 Apr 2006 Posts: 1887 Location: Canada
|
Posted: Thu Mar 26, 2009 8:37 pm Post subject: |
|
|
| Overload wrote: | | Wow this is two years old. I'll shoot myself if you don't get a warning. Or at least bitched at. |
I'd personally rather have someone necro-post in a relevant thread than have someone make a new thread for every single question. Or do you like having most of the front page filled with: "Hao duz I do dis?". |
|
| Back to top |
|
 |
Overload Master Cheater
Reputation: 0
Joined: 08 Feb 2008 Posts: 293
|
Posted: Thu Mar 26, 2009 10:50 pm Post subject: |
|
|
| Flyte wrote: | | Overload wrote: | | Wow this is two years old. I'll shoot myself if you don't get a warning. Or at least bitched at. |
I'd personally rather have someone necro-post in a relevant thread than have someone make a new thread for every single question. Or do you like having most of the front page filled with: "Hao duz I do dis?". |
Good point. But then again, what are forums for? Either way I guess you're right Flyte.
Sorry kimkim. _________________
Blog
| Quote: | Rhys says:
you can be my maid
Rhys says:
ill buy you a french maid outfit
Tyler says:
Sounds good
Rhys says:
ill hold you to that |
|
|
| Back to top |
|
 |
blackmorpheus Expert Cheater
Reputation: 0
Joined: 05 Apr 2008 Posts: 159
|
Posted: Fri Mar 27, 2009 10:34 am Post subject: |
|
|
| Labyrnth wrote: | It is nice you are trying to help people by posting this, But Ac-Tools is really kinda crappy.
C++ is allot better. |
FYP |
|
| 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
|
|