Good luck scripting different bots and useful programs, be sure to upload them to help our community!Quote:
Originally Posted by toontown of sn oxd.netOkay, let me start this off by explaining why exactly I'm making this when this kind of knowledge is fairly common and can be easily garnered by reading some forums and experimentation. The main reason why I'm making is because... people don't like to look, they like to read it all in one spot. So in an effort to try and help this forum and frognik I'm going to try and cover the basics of botting so that there isn't going to be 9999 questions about in Frognik's thread.
First off, this is what you are going to need:
Auto-it:(choose first one)
Frognik's (amazing) hack:
(all credits to Frognik, the download link is just below the picture)
A good pair of eyes and moderately functioning brain wink.gif
Okay, once you have auto-it installed you can take a look at some of the functions in the folder named "Examples" and then "Helpfile" if you want to see that auto-it has quite some functionality to it.
Now I'm going to list some basic macros that I made:
CODE
HotKeySet("{ESC}", "Terminate");Sets a hotkey that closes the script
Func Terminate() ;when you press the ESC key
Exit 0
EndFunc
$i = 0 ;Creates an endless loop
While $i = 0
Do
ControlSend('Dragonica (Client Ver : 0.1.19)','','','{x}')
Sleep(10); Sends the x key to the window
ControlSend('Dragonica (Client Ver : 0.1.19)','','','{SPACE}')
Sleep(10); Sends the SPACE key to the window
Until $i = 1
WEnd
As you may guess, this is just a basic infinite attack script with pick up capability, great for attacking when you are floating.
CODE
$i = 1
While $i = 1
Do
$col = PixelGetColor( 717 , 634 ); Checks to see if you are on the login screen
if $col=16185078 then
ControlSend('Dragonica (Client Ver : 0.1.19)','','','{BACKSPACE}')
ControlSend('Dragonica (Client Ver : 0.1.19)','','','{BACKSPACE}')
ControlSend("Dragonica (Client Ver : 0.1.19)", "",'', "{p}" ); Insert first letter of password here
ControlSend("Dragonica (Client Ver : 0.1.19)", "",'', "{a}" ); Insert second letter of password here
ControlSend("Dragonica (Client Ver : 0.1.19)", "",'', "{s}" ); I think you see how this is going
ControlSend("Dragonica (Client Ver : 0.1.19)", "",'', "{s}" )
ControlSend("Dragonica (Client Ver : 0.1.19)", "",'', "{w}" )
ControlSend("Dragonica (Client Ver : 0.1.19)", "",'', "{o}" )
ControlSend("Dragonica (Client Ver : 0.1.19)", "",'', "{r}" )
ControlSend("Dragonica (Client Ver : 0.1.19)", "",'', "{d}" )
ControlSend("Dragonica (Client Ver : 0.1.19)", "",'', "{1}" )
ControlSend("Dragonica (Client Ver : 0.1.19)", "",'', "{2}" )
sleep(100)
ControlSend('Dragonica (Client Ver : 0.1.19)','','','{ENTER}');Enters password
sleep(10)
ControlSend('Dragonica (Client Ver : 0.1.19)','','','{ENTER}')
sleep(3000)
ControlClick('Dragonica (Client Ver : 0.1.19)','','','left', 3, 812, 561)
;This code is buggy as it won't move the mouse but it will click it
ControlSend('Dragonica (Client Ver : 0.1.19)','','','{ENTER}');Enters channel
sleep(3000)
; (all three statements apply to the previous three lines of code)
ControlSend('Dragonica (Client Ver : 0.1.19)','','','{DOWN down}'); Selects second character
sleep(10) ;Remove for selecting first character,
ControlSend('Dragonica (Client Ver : 0.1.19)','','','{DOWN up}'); Double for selecting third character
; (all three statements apply to the previous three lines of code)
ControlSend('Dragonica (Client Ver : 0.1.19)','','','{ENTER}'); Enters game
sleep(7000)
Endif
ControlSend('Dragonica (Client Ver : 0.1.19)','','','{x}')
Sleep(60)
ControlSend('Dragonica (Client Ver : 0.1.19)','','','{SPACE}')
Sleep(60)
Until $i = 0
WEnd
This script is more advanced and is my personal favourite because it auto logins in upon disconnect.
Also, this script has the possibility of being very finiky (specific) as you need to be running your game in windowed mode and the interface has to be set to white. (You can change the interface colour to white from the options menu.) If you want to have your interface as a different colour you can update the script by using the "PixelGetColour" function in the Example\Helpfile folder. (I may add the colours myself later) Also, on a side-note, if you want a channel other then one you have to keep you mouse hovered over whatever channel you want to enter.
CODE
$i = 1
While $i = 1
$col = PixelGetColor( 819 , 785 )
if $col = 3947580 then
ControlSend('Dragonica (Client Ver : 0.1.19)','','','{1}');Uses hp pots
sleep(5000);Remove this for using no-cooldown pots (i.e. apples)
EndIf
$col2 = PixelGetColor( 819 , 807 )
if $col2 = 5197903 Then
ControlSend('Dragonica (Client Ver : 0.1.19)','','','{2}');Uses mp pots
sleep(5000);Remove this for using no-cooldown pots (i.e. grapes)
EndIf
WEnd
It occurred to me that an auto-pot might be useful for botting if you wanted to use skills, and this also further illustrates some of the uses of the finding colours of pixels and making if states based on them. This script works if you have your game in windowed mode, and will use pots when the respective total goes down below 50%. Place the wanted hp pots in the number 1 hotkey and the wanted mp pots in the number 2 hotkey.
In order to run these scripts just copy and paste them into an autoit file. Just open auto-it and then File -> New then paste. Then save the file as whatever you want and double click it. Do not, I repeat DO NOT compile the file and then run it as an exe, I have no sympathy for you if you have errors when you try and run them as exes... Also, it is probably worth mentioning that the scripts will not work without Frognik's hack.
These two scripts should give the leechers something to go with and give people who are actually interested in this something to build off of. There are many things that you can do from here like closing the game after xxxxx seconds and then reopening it and relogging to prevent the anti-bot from sending you back to town. I may add this later but for now those who want it will have to develop it themselves wink.gif
As with real-estate one of the main things that you need to consider while botting is "LOCATION, LOCATION, LOCATION," so just where is the best location? Well, it is mostly a matter of opinion, but some of the best places are behind a field map, where you can stand/use skills while remaining safe from mob's attacks, above the map (only usuable in some maps), under the map (same as before). You can get to all these places by infinite jumping up and pressing the up key until you see yourself pass into the edges of the map. (I may add a picture/video tutorial later) Another popular place to bot is in the boss map of Mission Maps where the enemies keep respawning, in order to do this you may need to lure the boss to one side so that you don't vac and kill him/her as well.
On a final note: This is a work in progress, if anybody has anything to add or wants to add C++ versions of these feel free to leave a comment, if you do use my stuff I would appreciate a comment/PM of some sort so that I know its being used so I can decide if I want to add to it. Consider this open-source and feel free to paste it wherever you want but I would appreciate credits biggrin.gif Also, a big thank you to everyone who helped me out, you know who you are and specifically to the crazy chinese character guy on elitepvpers. (哈哈哈) Finally, if you think that the information in this post is too simple or basic to be of use to anyone please don't use this thread to flame me, remember, as basic as this seems to an experienced person, its just as mind-blowing to a new person, everyone's gotta start somewhere. This is my attempt to give back to the ***** community for Frognik's stuff.
P.S. This post will be updated from time to time and to the mods, if this is in the wrong section I apologize, and I won't take it personally if you move it. wink.gif
-NOTE- Both my botting accounts have recently been banned and due to the ever-annoying abnormal client dc issue I likely won't be restarting till they fix it. I will still help anyone with problems they are having or questions they need answered, but development of new macros will probably need to fall to someone else. (I was thinking of experimenting with the no cd and the thief's burrow skill, to see if popping in and out of it would do something neat)Okay, let me start this off by explaining why exactly I'm making this when this kind of knowledge is fairly common and can be easily garnered by reading some forums and experimentation. The main reason why I'm making is because... people don't like to look, they like to read it all in one spot. So in an effort to try and help this forum and frognik I'm going to try and cover the basics of botting so that there isn't going to be 9999 questions about in Frognik's thread.
First off, this is what you are going to need:
Auto-it:(choose first one)
Frognik's (amazing) hack:
(all credits to Frognik, the download link is just below the picture)
A good pair of eyes and moderately functioning brain wink.gif
Okay, once you have auto-it installed you can take a look at some of the functions in the folder named "Examples" and then "Helpfile" if you want to see that auto-it has quite some functionality to it.
Now I'm going to list some basic macros that I made:
CODE
HotKeySet("{ESC}", "Terminate");Sets a hotkey that closes the script
Func Terminate() ;when you press the ESC key
Exit 0
EndFunc
$i = 0 ;Creates an endless loop
While $i = 0
Do
ControlSend('Dragonica (Client Ver : 0.1.19)','','','{x}')
Sleep(10); Sends the x key to the window
ControlSend('Dragonica (Client Ver : 0.1.19)','','','{SPACE}')
Sleep(10); Sends the SPACE key to the window
Until $i = 1
WEnd
As you may guess, this is just a basic infinite attack script with pick up capability, great for attacking when you are floating.
CODE
$i = 1
While $i = 1
Do
$col = PixelGetColor( 717 , 634 ); Checks to see if you are on the login screen
if $col=16185078 then
ControlSend('Dragonica (Client Ver : 0.1.19)','','','{BACKSPACE}')
ControlSend('Dragonica (Client Ver : 0.1.19)','','','{BACKSPACE}')
ControlSend("Dragonica (Client Ver : 0.1.19)", "",'', "{p}" ); Insert first letter of password here
ControlSend("Dragonica (Client Ver : 0.1.19)", "",'', "{a}" ); Insert second letter of password here
ControlSend("Dragonica (Client Ver : 0.1.19)", "",'', "{s}" ); I think you see how this is going
ControlSend("Dragonica (Client Ver : 0.1.19)", "",'', "{s}" )
ControlSend("Dragonica (Client Ver : 0.1.19)", "",'', "{w}" )
ControlSend("Dragonica (Client Ver : 0.1.19)", "",'', "{o}" )
ControlSend("Dragonica (Client Ver : 0.1.19)", "",'', "{r}" )
ControlSend("Dragonica (Client Ver : 0.1.19)", "",'', "{d}" )
ControlSend("Dragonica (Client Ver : 0.1.19)", "",'', "{1}" )
ControlSend("Dragonica (Client Ver : 0.1.19)", "",'', "{2}" )
sleep(100)
ControlSend('Dragonica (Client Ver : 0.1.19)','','','{ENTER}');Enters password
sleep(10)
ControlSend('Dragonica (Client Ver : 0.1.19)','','','{ENTER}')
sleep(3000)
ControlClick('Dragonica (Client Ver : 0.1.19)','','','left', 3, 812, 561)
;This code is buggy as it won't move the mouse but it will click it
ControlSend('Dragonica (Client Ver : 0.1.19)','','','{ENTER}');Enters channel
sleep(3000)
; (all three statements apply to the previous three lines of code)
ControlSend('Dragonica (Client Ver : 0.1.19)','','','{DOWN down}'); Selects second character
sleep(10) ;Remove for selecting first character,
ControlSend('Dragonica (Client Ver : 0.1.19)','','','{DOWN up}'); Double for selecting third character
; (all three statements apply to the previous three lines of code)
ControlSend('Dragonica (Client Ver : 0.1.19)','','','{ENTER}'); Enters game
sleep(7000)
Endif
ControlSend('Dragonica (Client Ver : 0.1.19)','','','{x}')
Sleep(60)
ControlSend('Dragonica (Client Ver : 0.1.19)','','','{SPACE}')
Sleep(60)
Until $i = 0
WEnd
This script is more advanced and is my personal favourite because it auto logins in upon disconnect.
Also, this script has the possibility of being very finiky (specific) as you need to be running your game in windowed mode and the interface has to be set to white. (You can change the interface colour to white from the options menu.) If you want to have your interface as a different colour you can update the script by using the "PixelGetColour" function in the Example\Helpfile folder. (I may add the colours myself later) Also, on a side-note, if you want a channel other then one you have to keep you mouse hovered over whatever channel you want to enter.
CODE
$i = 1
While $i = 1
$col = PixelGetColor( 819 , 785 )
if $col = 3947580 then
ControlSend('Dragonica (Client Ver : 0.1.19)','','','{1}');Uses hp pots
sleep(5000);Remove this for using no-cooldown pots (i.e. apples)
EndIf
$col2 = PixelGetColor( 819 , 807 )
if $col2 = 5197903 Then
ControlSend('Dragonica (Client Ver : 0.1.19)','','','{2}');Uses mp pots
sleep(5000);Remove this for using no-cooldown pots (i.e. grapes)
EndIf
WEnd
It occurred to me that an auto-pot might be useful for botting if you wanted to use skills, and this also further illustrates some of the uses of the finding colours of pixels and making if states based on them. This script works if you have your game in windowed mode, and will use pots when the respective total goes down below 50%. Place the wanted hp pots in the number 1 hotkey and the wanted mp pots in the number 2 hotkey.
In order to run these scripts just copy and paste them into an autoit file. Just open auto-it and then File -> New then paste. Then save the file as whatever you want and double click it. Do not, I repeat DO NOT compile the file and then run it as an exe, I have no sympathy for you if you have errors when you try and run them as exes... Also, it is probably worth mentioning that the scripts will not work without Frognik's hack.
These two scripts should give the leechers something to go with and give people who are actually interested in this something to build off of. There are many things that you can do from here like closing the game after xxxxx seconds and then reopening it and relogging to prevent the anti-bot from sending you back to town. I may add this later but for now those who want it will have to develop it themselves wink.gif
As with real-estate one of the main things that you need to consider while botting is "LOCATION, LOCATION, LOCATION," so just where is the best location? Well, it is mostly a matter of opinion, but some of the best places are behind a field map, where you can stand/use skills while remaining safe from mob's attacks, above the map (only usuable in some maps), under the map (same as before). You can get to all these places by infinite jumping up and pressing the up key until you see yourself pass into the edges of the map. (I may add a picture/video tutorial later) Another popular place to bot is in the boss map of Mission Maps where the enemies keep respawning, in order to do this you may need to lure the boss to one side so that you don't vac and kill him/her as well.
On a final note: This is a work in progress, if anybody has anything to add or wants to add C++ versions of these feel free to leave a comment, if you do use my stuff I would appreciate a comment/PM of some sort so that I know its being used so I can decide if I want to add to it. Consider this open-source and feel free to paste it wherever you want but I would appreciate credits biggrin.gif Also, a big thank you to everyone who helped me out, you know who you are and specifically to the crazy chinese character guy on elitepvpers. (哈哈哈) Finally, if you think that the information in this post is too simple or basic to be of use to anyone please don't use this thread to flame me, remember, as basic as this seems to an experienced person, its just as mind-blowing to a new person, everyone's gotta start somewhere. This is my attempt to give back to the ***** community for Frognik's stuff.
P.S. This post will be updated from time to time and to the mods, if this is in the wrong section I apologize, and I won't take it personally if you move it. wink.gif
-NOTE- Both my botting accounts have recently been banned and due to the ever-annoying abnormal client dc issue I likely won't be restarting till they fix it. I will still help anyone with problems they are having or questions they need answered, but development of new macros will probably need to fall to someone else. (I was thinking of experimenting with the no cd and the thief's burrow skill, to see if popping in and out of it would do something neat)
*Waits for people to say "Too long, didn't read".*





(choose first one)
