PDA

View Full Version : Bot Stances


bad_captain
03-19-2012, 01:05 AM
Rev 2107 implemented bot stances. They are used to control the type and frequency of spells and eventually skills by your bots. They mirror what merc have on live, except that bots have access to all stances (as opposed to a subset per class). This allows more flexibility, and was just easier to code.

Stances can be set using the following command: #bot stance [name] [stance (id)|list]. If you use list, it will tell you which stance the bot is currently using. The stance ids are: Passive = 0, Balanced = 1, Efficient = 2, Reactive = 3, Aggressive = 4, Burn = 5, BurnAE = 6.

Passive should cast no spells; efficient should try to conserve mana while performing essential class duties (slow, heal); balanced should be similar to how bots currently are; reactive is between balanced and aggressive, but will differentiate a little more when spell selection is effected; aggressive tends to be a little more offensive, not trying to conserve mana; burn is all out offense; burnAE will be the same but include AE spells.

All bots should default to balanced, but will retain any changes after zoning, reloading, etc. Bots will recalculate their spell casting chances if a group member is added or removed (in case their role changes ,etc), or if their stance changes.

I will continue to tweak this with feedback, and hope to work on some other things that will be incorporated into this system including AE spells and skills/disciplines.

ToDo:
AE spells
Different spells based on stance (complete heal versus regular heal)
Skills/disciplines

bad_captain
03-19-2012, 11:46 AM
I forgot. This update also allows bot casters to med during combat. Enjoy.

louis1016
03-19-2012, 01:56 PM
Hey this is awesome but I think theres something wrong. When i first tried #bot stance like that by itself, the zone crashes. This happens most of the time (but didnt crash the zone every time).

Also with any stance, if I type #bot stance (name) (stance number) a message gets displayed saying the bot is going into the incorrect stance, but when i type #bot stance (name) list it displays the correct stance that i really assigned it.

I cant really tell if its actually changing to the stance that I assign it or not, however, as i just set my cleric bot to the passive stance, it said it was changed to the burn stance, but when engaged in battle the cleric was healing me like normal

louis1016
03-19-2012, 02:08 PM
it looks like the stance that it incorrectly displays through the stance change message is the stance that the bot is actually going into, but not the stance that is listed in #bot stance (name) list

bad_captain
03-19-2012, 02:16 PM
1- Seems I'm missing a check to make sure there's actually a name there. That should be easy to fix.

2- I will have to check out the list again. It was working for me, but I was mostly testing efficient vs. balanced.

3- may be related to 2. passive should have chance to cast of 0 for all spell types. While burn reduces healing chances, if the bot is the main healer (cleric! or shaman/ druid with no cleric) there's still a good chance to heal. They are just much more likely to nuke/dot.

Also, the stances currently only affect in combat casting. I may add in some idle casting checks, but for the most part it's most useful while engaged.

bad_captain
03-19-2012, 02:41 PM
After looking at the code again, I can tell I didn't go over the #bot command part of the code very well after adding the list command and feedback when setting the stance. They were the last things I added. I'll fix this tonight. My apologies.

bad_captain
03-20-2012, 08:53 AM
The command should be a little more robust. It shouldn't crash when just typing #bot stance.

As an aside. This led me to an interesting discovery that I will have to test. I was going with the assumption that the other bot commands would work as advertised, so I copied parts of the code from other commands. Unfortunately it doesn't appear that how they check for invalid data is incorrect. It was passing through my check for a bot name and then tried to match a bot with no name. Instead of returning null for the bot, it was returning a blank bot which is what was causing the crash. Looks like some more error checking within the bot code is in order.

Anyway, please leave feedback on the bot stances here so I can continue to improve the system.

burdsjm3
04-02-2012, 09:55 AM
I was working on try to make my bots usable in events that require add control.

Rogues seem to disregard any stance and will immediately attack whatever you have targeted.

For events that spawn adds based upon hp%. It would be great if the passive and summon would allow a rogue to stop attacking the first target it acquired.

Passive on mercs on live makes the rogues not dps. Sorry if I misunderstood this.

bad_captain
04-02-2012, 10:56 PM
I will be adding this in. I hadn't found the best place to change melee stances, so it's mostly spellcasting currently. I'll post here when I get it in. Thanks for the feedback.