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