?DAOC MegaBot? - By RichyRich (
Last Update: 11/6/04 v2.6
So - what is DAOC MegaBot? Glad you asked!
It is a flexible DAOC hunter & bot engine written in stupidpaysite with the DOOC Unleashed plug in.
It was originally written in another scripting engine in early 2003 and used by myself (and later a few friends) to level characters. You see, I am the type of player who doesn't have hours on end to level my characters, and thus I was always many levels behind my friends when I finally got to play on the weekends. (having 3 kids, a wife and a busy job will do that to you!
So, since I had been a programmer in lives past, I decided to put my skills to good use, program the game to play itself through the boring levels and keep up with my friends.
Well - I did just that... and found I actually enjoyed scripting the game MORE than playing it most of the time. I think the challenge of building a flexible environment that can be used in different ways is actually fun! (ok, so I'm sick in the head!
So ? ?DAOC MegaBot? was born.
Because the other inferior scripting engine was very lacking, everything had to be done by reading the screen colors, screen scraping for things that don?t go to the normal log (yes, it actually could take a snapshot of the screen, convert the bitmap to text and read it for location) and a lot of checking the screen for various colors. But, this made the script pretty powerful, so when I converted it to XU earlier this year, I found a lot of XU and DAOCXU functions that made my life easier. But, you will find a lot of places I did not covert to built in functions (such as turning) because my other method already worked pretty good, so with the man hours it took to covert all this code, those changes were not on the priority list.
It was modified and enhanced as I played other characters and became pretty flexible.
I will not claim it can play every character type with each unique ability, but it will do a pretty good job for most types.
Because the script engine and all the base functions are reusable, you can do a lot more with them than I have. I am not a tradesperson, so other than tinkering here and there, have never tuned the scripts to make items, but it would be easy to do so.
You will notice a lot of comments in the scripts, these help ME understand what I was doing. For anyone who has ever programmed a lot of code, sometimes you do something that is very obvious when you do it, but 1-2 years later you have no freaking clue why? so I try to remind myself why. You will also see comments about functions that aren?t done yet and other comments to myself, all to keep a script this large in control.
I will warn you that, while I will try my best to be responsive, I do not have time read the boards often and sometimes I travel for 1-2 weeks at a time, so may seem to disappear. Never fear, I will come back and respond to questions and help out as I can.
I will also take suggestions to enhancements and try to eventually put them in the scripts?
USE THIS AT YOUR OWN RISK ? if you get banned for getting caught, you made the choice to use it!
New in v2.6:
1) New INI Variables Added
i. CLOSESTCON is the new option for RandomRunMode. It says to find the closets target using the back end DU API. Match it against what you want to fight via the INI setup and head roughly towards those targets when you are out of things to fight locally.
i. ONCENTER is the new option for MouseTargetRange. You have to make sure that UseMouseScreenTarget=TRUE for this setting to be enabled. ONCENTER is best used with RandomRunMode=SAMESPOT when you are fighting at camps. This mode will use the new target logic, but instead of running towards the next target, it will turn to face the new target direction, the start in the middle of the screen and do a mouse target up the screen to try to target something in the camp. Make sure you play with the angle to get best coverage for the camp you are at. Run it once and you will see how it works.
2) ** This is a HUGE enhancement to the scripts!! Added a new mode CLOSESTCON. The reason this is such a big change is in this mode you will no longer just run randomly around looking for targets to fight, but you will now FIND them! The logic works well, it speeds up leveling and doesn?t look so goofy running around.
a. There is a 1 in 20 chance each time of randomly returning to your starting point. This is in there as I was testing, that bot would slowly work his way through a pack of targets, then might keep going on to the next pack? and with bad luck, would get far far away from where you wanted to fight. By Randomly heading back to start point, you kinda keep in the same area over time.
b. Any target with a capital letter is ignored, as most are other players or NPC?s. Didn?t want to follow those as it would not look right. There are some named targets that you could fight that are ignored, but no easy way to tell the difference without having a variable to list which named cons you want to fight? which if anyone wants, please request it with a reason why it would be good.
3) Changed how Stealth works if you have it. When you enter Recover(), after 6 seconds (to take into account last combat) you will stealth. As you have Recover() to target, you unstealth. Was running around in stealth mode and it was very slow to find a target. If anyone wants both ways, please let me know and I?ll create an option. If you need to loot, it will unstealth, loot and restealth. If you BuffUp() in the middle of recovering, you will restealth when done.
4) Added more info to the INFO Window. Second Status bar at bottom for more detailed info like when you evade/parry/block/style. Added a KILLS count to the status bar
5) Removed BARD as an option, no need to have it that specific anymore. Just use MELEECLASS and if you want to play a song while in Recover(), put in the Instrument and Song in the Utility Bar and let her rip.
6) Removed LootSTR, DrumSTR, FluteSTR from INI file as they are not needed. Just put the Instrument key in the Instrument1STR ini and it will change to it before doing song
7) Fixed a bug with a variable that wasn?t defined that messed up some people from running the script. Thanks to ambershag and skizurin who helped track it down!
Cool Added New Function FaceLoc(TargetX, TargetY) ? new function for those who are scripting
9) Fixed logging out ? the routines for doing a Left Mouse button seem to be bugged, and will not click on the x/y you give them. The fix was to use MouseMove first, then do the button click which works, so LogOut() works properly now and will log to desktop
10) Fixed an issue when KillStealCheck was set to TRUE ? wasn?t working right. Should work as designed now. If set to TRUE, and you target a monster that is < 100% health, skip it. If you are attacked, this is ignored and you fight back on ANYTHING that attacks you.