taultunleashed logoEQ2MegaBot v2.6 - Buff Bot AND HUNTER BOT! Discussion Thread : EverQuest 2 Premium Discussions
newtopic  postreply
 [ 84 posts ]  1, 2, 3, 4, 5, 6  Next
blue large dot

EQ2MegaBot v2.6 - Buff Bot AND HUNTER BOT! Discussion Thread : EverQuest 2 Premium Discussions

Posted: July 23rd, 2005, 2:15 pm
 
richyrich
richyrich's Reps:
User avatar
v2.6 07/23/05 is Finally RELEASED

Find the ZIP to download here: http://www.taultunleashed.com/phpbb2/vi ... hp?t=22317

2.6 is a pretty big release and tooks MANY hours of playing/watching/coding/watching, etc. I would also like to thank my brother in law who helped me debug a lot of things! (not sure of his name on this board)

Please read the details below.

Please give me as much feedback as possible if this works better for those who have been really pushing this stuff to the limits. I know there is still some tweaking to do with respect to targetting, but this code should handle overall targetting and the many scenarios you can get into much better. If you do find a bug or issue, please try to recreate it as consistently as possible and document it, then submit the details to me and the log/ini files associated with it so I can look to resolve it.

V2.6 – 07/23/05

1) New INI Variables Added

a) FightGrayLevel, FightGreenLevel, FightBlueLevel, FightWhiteLevel, FightYellowLevel, FightOrangeLevel, FightRedLevel (Numeric)
i) What level of Heroics do we fight
(1) 0 mean only fight normals or below
(2) 1 means fight single ups (^) or below
(3) 2 means fight double ups (^^) or below
(4) 3 means fight it all!
(5) Of course it is ignored if the FightCOLOR is set to FALSE

b) TurnLeftSTR, TurnRightSTR (Char/Special Char)
i) You keys mapped to Left/Right turning.

c) PullToSafeSpot (BOOLEAN)
i) Used to pull mobs back to a safe spot. Right now, the safe spot is defined as your starting loc when you start the script. The way it works is the bot will find a mob to fight, go after it, do your InitialCombatSequence first item only, turn and run back to safe spot and fight. If you turn this option on and the InitialCombatSequence isn’t set, it will ignore the option as you have no set pulling mechanism. Good in tough areas where you don't want to dig youself in too deep fighting.
ii) If RandomRunMode is set to SAMESPOT, this is ignored

2) REMOVED INI Variables
a) All the AskForHelpCOLOR have been removed. Was old code from DAOC not needed anymore

b) AskForHelpType has been removed – not needed in EQ2

3) Fixed help and SampleChar.ini to spell OFFENSIVE correctly – oops

4) Fixed Modified Loot UI when there is no loot window open. It use to do an ENTER which would bring you into chat mode, then the next few commands would go to the chat. Now it does an ENTER and the ESCAPE which will exit you out of the command prompt just in case

5) Totally rewrote the RunToLoc() functionality. Is much more sophisticated to where it knows where a mob is, even if it’s moving and will adjust as it’s running to make sure it properly tracks the mob.
a) There is some new STUCK logic that works pretty good. Because of the many ways a bot can get stuck, it takes a random approach to getting unstuck. It randomly turns left or right until it is moving again – waits 3 seconds, then tries to track you again. This works pretty well because it will run in some odd angle, usually getting away from the obstacle and then return towards you. While I have found if I try real hard I can get the bot stuck, it takes effort.

6) If running in BUFFBOT mode, if the bot is > 15 ticks from the master he is currently following, it will break the follow and use the new RunToLoc() to “find” the master and when < 15 ticks, re-follow them
a) This is VERY helpful when you move the bot to do something and forget to reattach them to the master and they are left behind.
b) Another things this fixes is the FOLLOW when in water it borked in EQ2. Any char in follow mode when it hits water will go in odd directions. This new code will see it is messing up and do a manual follow which actually works better. I have found it’s hard to lose the BUFFBOT with the new code.
c) It’s kinda fun to try to lose the bot or get them stuck and see how the logic hunts you down!

7) Fixed where it sometimes did InitialCombatSequence more than once per battle…

8) Added Pull back to starting point logic. (Use new Variable PullToSafeSpot)
a) This new option works well for areas that you don’t want to fight deeper and deeper in where things pop and you just have too much to fight that jumps you.
b) The logic works like this:
i) It will find the next mob to fight, go to them and do your InitialCombatSequence first item only, wait for the cast to finish, then turn and run back to safe point (which is the START point only right now).
ii) Keep in mind, if you turn this option on and the InitialCombatSequence isn’t set, it will ignore the option as you have no set pulling mechanism
iii) If you get stuck while trying to run back to starting point, at 2x the max time it should have taken, you will just stop and fight so you don’t get killed trying to run back

9) Changed the SearchForMobNames() function so that once it find a mob, it will create a loc path to the mob, then stop checking for 30 seconds. Once the 30 seconds is up, it will go back to the 3 second check.
a) It uses the /waypoint command to do this
b) Any suggestions on how to make this search function more useful?

10) Fixed finding of masters when you have a pretty full group and one person is not in the zone, the bot will now know to skip that person and move to the next so they can still monitor everyone in the group in the zone

11) New INI Variables to tell which Heroics to fight. This only works when you are targeting things. If they attack you, you will always fight back. Also, since it can’t tell which other things are in a group, you could say only to fight Normals, target a normal, attack, but the group of mobs contains a double up… so far, there is no way for me to know this.
a) Currently not working because the GetMobDifficulty function fro EQ2Service is returning POWER, not level… Wvy?

12) Added a check AFTER you loot to ensure you didn’t get hit by an exploding box. If you need healing after a Loot, you will heal up before beginning to fight again

13) Rewrote SAMESPOT logic so it now works well. You will not try to Consider things that are too far from you (looking goofy in the log) and you won’t go after things. You will move to loot, then move back to the starting spot. Also ignored the PullToSafeSpot new INI variable as it doesn’t matter in SAMESPOT mode. If you can’t find anything, you will start to randomly turn and try again.

14) ** Big change to RandomRunRange ** If you use OFFENSIVE BOT, PLEASE READ THIS ***
a) This use to be in SECONDS, but since everything else in the setup was in LOCS, and this was just confusing people, I changed it to LOCS. If you had this setup, you want to reset it to LOCS. A normal run is 6 Locs per Second. So if you had this set to 5 Seconds before, do 5*6=30 and now set it to 30 Locs to get about the same result.

15) Found that if you were in a group with various levels, and the lower level was pulling, it was pulling grays… found that it was calculating the con color from the BOT’s level, but needed to calculate it from the max group level as that determines the con colors. The code now properly handles this and adjusts each time the group changes.

16) Wrote a new Class for Ignoring Mobs that you can’t see or get to. I found that if a valid mob was behind something and you couldn’t “see” it or get to it, the bot might get locked on it and each round try to attack it, find it can’t, reload and repeat… This new class will add these mobs, via spawned, to an ignore Class for 30 seconds, so when finding new targets to turn to, they are ignored. After 30 seconds, the mob will come off the list and be a valid target to attack again. It will not stop the bot from fighting back if that ignored mob attacks them, so you are still safe there.

17) New TESTMODE that users can use to see how many ticks/locs your main pull spells are good for. In the INI, set TestMode=20 and run the script. The status window will show you the distance of the currently targeted mob. Keep backing off and casting your spell until you are too far… that is your max distance. To be safe, you should set MaxTargettingDistance to a few ticks/locs less than this or mobs might move a bit and be out of range.

18) Fixed how the new Pet logic works so it can properly know if there is a pet on a group member or not, and how SelectMaster() as the FKey now toggles between PET and Master, which needed some tweaking

19) Added a new field in the Status Window “DS: “ this is the Distance from Start. It is to help you realize how far you are from the starting point in case you don’t attack things as you told it how big your range was to fight and sometimes people don’t realize how far they are from the starting point that defined this.

20) Added logic that checks during DoMelee() that if you have a group member or pet targeted, something is wrong, so “/assist” them to get the target they are fighting…

21) Fixed Pause KEY so it works better and Pauses faster instead of waiting so long

22) Fixed a bug in the timers if you were scripting over midnight – they went nuts!

23) Handles Can Not See Target better by moving – keeps from dying when fighting things stuck in walls/tress


Reply with quote
Posted: July 23rd, 2005, 2:17 pm
 
richyrich
richyrich's Reps:
User avatar
Could Admin or someone please STICKY this discussion thread on EQ2MegaBot 2.6 - thanks!

RichyRich - author of the mega cool MegaBot series! ;-)


Reply with quote
Posted: July 25th, 2005, 8:03 pm
 
richyrich
richyrich's Reps:
User avatar
Anyone using 2.6 yet? I can't believe I don't have any feedback yet! :-)

I put a lot into 2.6, and more coming in 2.7... hope people are using it... let's hear it!

Also - any cool ways you are setting up your INI, please share with everyone.


Reply with quote
Posted: July 25th, 2005, 8:09 pm
 
richyrich
richyrich's Reps:
User avatar
A cool way to use the new PullToSafeSpot function for 2 bots it to setup a hunter bot and a buff bot.

In BeforeCombatSequence, hit a button that tells the buffbot to "Stop Following". The buffbot will now wait for you at the pull spot.

The bot will then run out, and pull back.

In your InitialCombatSequence make sure the first item is the pull spell... then the second one is a button to tell the buffbot to "Follow you". This will make sure the bot is near you, even if you get stuck on the way back and it times out and get's stuck fighting further away from the pull spot, the buffbot, using the new follow logic, will find you and fight with you.

Right now, it won't set the buffbot back to the original pull spot until another successful kill, but I'm working on it so the hunterbot will go back to the pull spot eventually...

Works pretty nicely and keeps the buffbot from pulling extra mobs while the hunterbot is pulling.

I used this combo for 14 hrs straight and got from 28->30 in Nektulos only dying once.

Still some kinks to work out, but pretty cool to watch the new logic.

Please Share you ideas!!!!

Rich


Reply with quote
Posted: July 25th, 2005, 9:36 pm
 
tault_sirusdv
tault_sirusdv's Reps:
User avatar
I've been using it sinse you released it and I haven't found a single issue with the hunter bot.. Quite truelly impressed and VERY pleased with the way you have implimented everything. The only issues that I've spotted right now involve the safespot mode: after your toon runs back to the spot it will try to turn to face the target but sinse auto face is enabled and you are engaged it just ends up strafing to one side or the other quite a bit. For some reason sometimes the bot does not always stop at the safe spot but keeps going and end up doing a big U turn until it reaches the safe spot.

An interesting feature would be to record adds and flag them as agro during play or be able to create a list of agro mobs and specify their agro radius.

Also, being a scout it looks awkward when your pull spells reads as too far away and yet you run back and try to go ahead with the attacks, this is logged I bellieve. the same can be said for an already engaged mob.

just my $0.02


Reply with quote
Posted: July 26th, 2005, 2:54 am
 
lancelot99
lancelot99's Reps:
User avatar
I've been using the bot, and I must say two thumbs up. I've been using it since I discovered the release yesterday. It doesn't seem to be using safe spot correctly for me, but it is probably my error, and I haven't taken time to pour over all of the settings involved since I'm not in a high agro area, (and the ones that have added are green to me).

As for the INI, nothing special, I don't set it up in game (meaning examining the spells then skipping back), I head over to Ogaming, bring up the skills list and type out the spells and CAs I need (I'm a Pally). I categorize them in notepad, and list what goes where (heals, pull, buffs, etc.) and type out there what order they go in using the INI format. Then I can paste them in on the appropriate line. I also define the hotbar layout in notepad, then configure eq2 accordingly.


Reply with quote
Posted: July 26th, 2005, 5:54 am
 
zigrivers
zigrivers's Reps:
User avatar
Hi! Fantastic program! I love it.

I've been playing with my Necromancer as a hunterbot and I keep running into an issue where I try to attack my pet over and over. I've gone over everything and can't seem to identify the problem. One thought I had (haven't had a chance to try it yet though) is that I use two spells that take health from my pet and give it back to me as power. I have this set up as something I do at the end of combat to get myself back to full power as quickly as possible. I know the log text identifies it as me doing damage to my pet and I was wondering if the program sees this and then classifies my pet as an attackable mob? Anyway, haven't figured this one out yet.

Any help would be appreciated. Thanks!


Reply with quote
Posted: July 26th, 2005, 7:13 am
 
loraik
loraik's Reps:
User avatar
Question, would it be better to put a DoT duration time in place of the recast time to keep from overlapping and waisting power?

Also I play a mage and have never used the hunterbot option (only buffbot for my preist tag along) but am going to give it a shot. Something I was wondering about is how to go about healing the pet when he needs it. The pet can't ask for a heal so maybe have a portion of the script use the /target "Pet's name" (maybe auto updates the .ini with this info. so we don't have to go in everytime we pull up a pet). Then it can cast the heal as needed. At the moment I have tried to setup the heals in the heal area hoping it will read the pet and heal as needed but since it is a heal over time I am not sure how well it will work.

The other question I have is geared twords other pet class people using this hunterbot. I have had very little luck finding anywhere free of agro ^^ mobs that would clean my plow. I am lvl 46, can anyone PM me with some suggested areas in which to hunt? ANy help would be greatly appreciated.


Loraik


Reply with quote
Posted: July 26th, 2005, 2:39 pm
 
richyrich
richyrich's Reps:
User avatar
tault_sirusdv (!empty($user->lang['WROTE'])) ? $user->lang['WROTE'] : ucwords(strtolower(str_replace('_', ' ', 'WROTE'))):
I've been using it sinse you released it and I haven't found a single issue with the hunter bot.. Quite truelly impressed and VERY pleased with the way you have implimented everything. The only issues that I've spotted right now involve the safespot mode: after your toon runs back to the spot it will try to turn to face the target but sinse auto face is enabled and you are engaged it just ends up strafing to one side or the other quite a bit. For some reason sometimes the bot does not always stop at the safe spot but keeps going and end up doing a big U turn until it reaches the safe spot.

An interesting feature would be to record adds and flag them as agro during play or be able to create a list of agro mobs and specify their agro radius.

Also, being a scout it looks awkward when your pull spells reads as too far away and yet you run back and try to go ahead with the attacks, this is logged I bellieve. the same can be said for an already engaged mob.

just my $0.02


Thanks for the feedback!

Yeah, I actually found that problem right after I released it. It's not actually turning to face the mob, it is using attack to auto face... but because you are facing away from the mob, there is code in there that reacts to Can Not See Mob messages... it thinks it is inside a wall or tree, so goes left or right, which is a strafe when attacking, on purpose... it just does it wrong the first time because the Can Not See message is because you are turned around...

Here is a quick fix for it until 2.7 is released.

In EQ2MEGABot_MainFunctions_v26.vbs file, find the DoMelee() function. Find the code:
(!empty($user->lang['CODE'])) ? $user->lang['CODE'] : ucwords(strtolower(str_replace('_', ' ', 'CODE'))):
if (HasToken(LogText1, CannotSeeSTR)) then


Replace the whole section down to the ELSE with the following code.

You are adding is the "if CannotSeeCnt > 1 then" section to ignore the first message as it is bogus and ONLY doing this as an OFFENSIVEBOT as it only makes sense then. Fixes it no problem!

or if you are not brave with code, ignore the strafing until 2.7 :-)

(!empty($user->lang['CODE'])) ? $user->lang['CODE'] : ucwords(strtolower(str_replace('_', ' ', 'CODE'))):
      ' We only check for Can not see if OFFENSIVE as the buffbot is targetting through the FightPartner, so
      ' when a BUFFBOT gets this message, it is because the FightPartner can't see the target and there is nothing
      ' you can do to move to help this
      if CharRole=g_OFFENSIVEBOT and (HasToken(LogText1, CannotSeeSTR)) then
         objDebug.Print "Matched CannotSeeSTR - " & CannotSeeSTR, 0
         CannotSeeCnt=CannotSeeCnt+1
         if CannotSeeCnt >= 5 then
            objDebug.Print "We saw [" & CannotSeeSTR & "] at least 5 times, so let's just get out of DoMelee()", 0
            ' Add this mob to the 30 second ignore list so we don't get hung on them in the next round
            ignoreList.Add(getTargetID(oEQ2Service))
            ExitLoop=TRUE
         end if
         ' Since we should be "stuck" to it, a turn will cause a strafe...
         ' We skip the first message as you always get that when you go into fight mode not looking at the
         ' mob and it takes a second to turn around
         if CannotSeeCnt > 1 then
            if RandomNum("Can not see Turn", 1, 2) = 1 then
               TurnLeft(1000)
            else
               TurnRight(1000)
            end if
         end if
         PerMobCombatSequence1.Restart()
      else


As far as the big U turn, I've only seen that a few time, usually with a slow machine or a Hyperthreaded machine that the HT isn't turned off, which slows the scripts down to a crawl. (yes, seems counterintuitive, what can I say). I'm working on the logic still, so 2.7 you will see a lot less of this.

As for the scout having pull spell too far away, more logic coming to help with this... suggestion for now, reduce your MaxTargettingDistance variable a bit so you run a bit closer to them before stopping to pull reducing your chance they walk away.

As for a scout not running back after they are attacked, but not done their spell, thought about that one too, it is an easy fix, but my original though was you may as well let your spell fire off and finish before running back so you get a hit on them, but maybe not... if you think it would be better if you get jumped 1/2 way into a pull spell to abort and run back, easy enough to do - anyone else chime in here on what you think will work best.

Thanks again for all feedback,
Rich


Last edited by Guest on July 26th, 2005, 3:01 pm, edited 1 time in total.

Reply with quote
Posted: July 26th, 2005, 2:40 pm
 
malar1
malar1's Reps:
User avatar
I've been using 2.6 since you released it...great job :)

I do however have 1 small issue and since I'm a noob at this still I have to ask....is there a way to fix your buffbot to where it doesn't strafe around you constantly while your fighting ? This is hard to do when your fighting along side of an edge :wink: In the last release 2.5 my buffbot would stay behind me when I was fighting,is there an option that you can turn off to disable that ?

Other than that, 2.6 is working great !


One last question...I run the SampleChar and just add where I need to,question is,can I have more than one SampleChar in my MegaBot folder ? Thanks in advance :)


Reply with quote
Posted: July 26th, 2005, 2:43 pm
 
richyrich
richyrich's Reps:
User avatar
zigrivers (!empty($user->lang['WROTE'])) ? $user->lang['WROTE'] : ucwords(strtolower(str_replace('_', ' ', 'WROTE'))):
Hi! Fantastic program! I love it.

I've been playing with my Necromancer as a hunterbot and I keep running into an issue where I try to attack my pet over and over. I've gone over everything and can't seem to identify the problem. One thought I had (haven't had a chance to try it yet though) is that I use two spells that take health from my pet and give it back to me as power. I have this set up as something I do at the end of combat to get myself back to full power as quickly as possible. I know the log text identifies it as me doing damage to my pet and I was wondering if the program sees this and then classifies my pet as an attackable mob? Anyway, haven't figured this one out yet.

Any help would be appreciated. Thanks!


Based on what you described, you sucking life from your pet is PROBABLY what is happening, but can't be 100% sure... easy check is remove those from the INI file and see if you are fixed....

I would need to have a copy of the message you get from this spell so I can ignore it... I already have the code in place to handle this for poison, which was doing the same thing, the bot kept thinking it was being attacked when it was getting poisoned after a battle.

Rich


Reply with quote
Posted: July 26th, 2005, 2:44 pm
 
malar1
malar1's Reps:
User avatar
Posted to soon...just read your post Rich...I'm not that brave so I am going to wait for 2.7 :) It's tolerable so I can wait :lol:


Reply with quote
Posted: July 26th, 2005, 2:47 pm
 
richyrich
richyrich's Reps:
User avatar
loraik (!empty($user->lang['WROTE'])) ? $user->lang['WROTE'] : ucwords(strtolower(str_replace('_', ' ', 'WROTE'))):
Question, would it be better to put a DoT duration time in place of the recast time to keep from overlapping and waisting power?

Also I play a mage and have never used the hunterbot option (only buffbot for my preist tag along) but am going to give it a shot. Something I was wondering about is how to go about healing the pet when he needs it. The pet can't ask for a heal so maybe have a portion of the script use the /target "Pet's name" (maybe auto updates the .ini with this info. so we don't have to go in everytime we pull up a pet). Then it can cast the heal as needed. At the moment I have tried to setup the heals in the heal area hoping it will read the pet and heal as needed but since it is a heal over time I am not sure how well it will work.

The other question I have is geared twords other pet class people using this hunterbot. I have had very little luck finding anywhere free of agro ^^ mobs that would clean my plow. I am lvl 46, can anyone PM me with some suggested areas in which to hunt? ANy help would be greatly appreciated.


Loraik


Not really needed as you can simply set your recast timer to the duration, and the bot won't case it again until the timer is up, accomplishing the same thing. I use the recast timer for many things, such as casting a spell I might not want to use very often, even though it has a fast recast time, I might only want to cast it every 2 mins, so just set the recast timer to 120s and as far as the script is concerned, it won't cast it again for 2 mins.

As far as healing, pets are 100% included in the check for needing a heal, and the HealSequenceSTR variable is cast on them just like a normal character. I use this setup and it works like a champ. Now, if you have a specific pet heal that is just for YOUR pet, but not other pets, not handled right now. I didn't see this as a huge need from how I was playing, but if I get enough requests/need for it, I'll add, not a huge deal.

Can't help you with 46 level stuff, not there :-(

Rich


Reply with quote
Posted: July 26th, 2005, 3:06 pm
 
richyrich
richyrich's Reps:
User avatar
malar1 (!empty($user->lang['WROTE'])) ? $user->lang['WROTE'] : ucwords(strtolower(str_replace('_', ' ', 'WROTE'))):
Posted to soon...just read your post Rich...I'm not that brave so I am going to wait for 2.7 :) It's tolerable so I can wait :lol:


Ok, ok, twist my arm, attached is the modified file, just replace the file already in the EQ2MegaBot directory with the attached file and the post above with the Can Not See 2 fixes are fixed.

Rich


You do not have the required permissions to view the files attached to this post.


Reply with quote
Posted: July 26th, 2005, 3:12 pm
 
malar1
malar1's Reps:
User avatar
Thanks :)


Reply with quote
Want Advertisements After The Last Post Removed? Create A Free Account!

blue large dot Who is online
Users browsing this forum: No registered users and 115 guests

Popular Sections
SWTOR Cheats
Guild Wars 2 Cheats
Guild Wars 2 Hacks
Guild Wars 2 Bots
Diablo 3 Cheats
Guild Wars 2 Mods

Popular Sections
WoW Cataclysm Cheats & Exploits
WoW Cataclysm Hacks & Bots
Star Wars The Old Republic Cheats
SWTOR Mods
Torchlight 2 Cheats
SWTOR Space Mission Bots
Site Nav and RSS
RSS Feed of EverQuest 2 Premium Discussions RSS Feed 
Sitemap of EverQuest 2 Premium Discussions Sitemap 
SitemapIndex SitemapIndex
RSS Feed RSS Feed
Channel list Channel list
left bottom corner Site and Contents Copyright 2001-2012 All Rights Reserved TaultUnleashed.com bottom corner
top left
top right
createaccount
Username:   Password:   Remember Me?