Go Back   EQEmulator Home > EQEmulator Forums > Development > Development::Bots

Development::Bots Forum for bots.

Reply
 
Thread Tools Display Modes
  #1  
Old 04-10-2016, 02:41 PM
Uleat's Avatar
Uleat
Developer
 
Join Date: Apr 2012
Location: North Carolina
Posts: 2,815
Default

I don't 'think' that I changed any of the command/database code for bot-groups in the HR save/HOT code.

If it's truly a bug, then it's probably pre-existing.


Double-check the actual name of the bot-group to see if its all lower, per chance. I did some work with the bot loading code in regard to capitalization..but, I know
that bot-groups will not load 'Rogues' if the case doesn't match 'rogues.'

Also, you can double-check by camping them all out and trying again. (If all else fails, run a query to verify the name of the bot-group.)
Code:
SELECT `group_name` FROM `bot_groups`

The database code is basically set up to 'fail' an action if the criteria is absent (or out of range,) or if there is an actual query error.

Since the logging system will (generally) pass on a failed query to the client, a lack of one accompanying the fail message usually indicates a criteria problem.


I'll wait until I hear back from you before I start looking into the code..but, I will if it definitely turns out to be a bug.

-----

I'm not 100% sure of the differences between fast heal and non-fast heal code..that is built into the bot class itself and is one of the things that I haven't really touched yet.

I do believe there are two distinct paths for choosing spells, however.


Heal rotation code is not tied to any of the actual spell casting code..it is not used to determine when a healer should cast.


Since the hot bypasses all 'standard' heal rotation criteria, there's really only two things that should keep a healer from casting:

- Not enough mana ..or..
- Target's 'DontHealMeBefore' time

Assuming enough mana, it's possible to have another cleric's spell land and the next caster(s) be processed during this 'cool off' period.

That could 'skip' all casters for the remainder of the cycle..and depending on the length of your interval...


I'll set up a 5-cleric group and see if I can pinpoint exactly what's going on..and make adjustments, if necessary.


EDIT:

Ran a 5-cleric bg with a bard and setup the hr for the 5 clerics as members and me as the target - as a level 65...

There is something going on with non-fast heals healing..but, there is something even bigger for 'fast heals'


I ran the HOT cycle for 4 minutes with fh off..then started to run an fh on cycle for the same to compare.

There were no reports of any healing with fast heals on..which, most likely, means that there are no bot healing spells available in that range.


Others have reported issues with bot (merc) healers at these higher levels..so, the above observation may not be conclusive.


I will do a spell casting log dump and see why the non-fast heal spells are not finishing..but..it will most likely involve the bot spell casting code and not
the actual heal rotation code.


EDIT2:

Unfortunately, some spell casting failures are not reported in the logs.


What I did see was the all of the fast heal casts were failures and all of the non-fast heal were successes.

Since the heal rotation code only invokes the spell casting and does not process it, the apparent 'failure' should actually be in the 'finish spell' code and not the invocation of
the spell itself.


I may add some debugging code to help trace the issue. Would be nice to know if this is the same problem that others have reported with 'normal' casting.
__________________
Uleat of Bertoxxulous

Compilin' Dirty

Last edited by Uleat; 04-10-2016 at 04:33 PM..
Reply With Quote
  #2  
Old 04-11-2016, 07:33 PM
AsmoTiC
Sarnak
 
Join Date: Aug 2004
Posts: 50
Default

Quote:
Originally Posted by Uleat View Post
I don't 'think' that I changed any of the command/database code for bot-groups in the HR save/HOT code.

If it's truly a bug, then it's probably pre-existing.


Double-check the actual name of the bot-group to see if its all lower, per chance. I did some work with the bot loading code in regard to capitalization..but, I know
that bot-groups will not load 'Rogues' if the case doesn't match 'rogues.'

Also, you can double-check by camping them all out and trying again. (If all else fails, run a query to verify the name of the bot-group.)
Code:
SELECT `group_name` FROM `bot_groups`

The database code is basically set up to 'fail' an action if the criteria is absent (or out of range,) or if there is an actual query error.

Since the logging system will (generally) pass on a failed query to the client, a lack of one accompanying the fail message usually indicates a criteria problem.


I'll wait until I hear back from you before I start looking into the code..but, I will if it definitely turns out to be a bug.
Sorry it's taken this long to get back to you. Pulled the Git from a couple hours ago, and made new binaries, these include the changes you did to Spell AI code.

So, same problems with the Rogues (my second group). Database looks good, bot_groups has two entries:
groups_index 1, group_leader_id 15, group_name Clerics. Leader ID checks for the Bard
groups_index 2, group_leader_id 1, group_name Rogues. Leader ID checks for the Shaman.
In addition, I checked bot_data and bot_group_members and they check against each other (i.e. groups_index checks for bot_id)

I won't repost all the messages, but they report the same as my earlier post. I did try ^bgdelete Rogues, which I don't think I tried last time. This returns "Could not locate group id for 'Rogues'.

I'm pretty sure I can restore my back up, delete the rogues, and recreate them without a problem. Haven't does it yet, as I wanted to keep a state where they were broken incase you wanted to try anything else. Also, if it is a bug somewhere, it could affect others without the means of restoring to an earlier backup.

----
In regards to HR. I went ahead and ran several cycles through the log so I could get timestamps. Here is a start of the rotation showing the 5x casts 2sec apart, then the gap between last CH landing and next cycle starting. Also, I saw at 17:08:03 Bonnet (Cleric4) cast a spell I couldn't identify, right after her CH landed.

Note: Meat is the Warrior, Bubbles, Blossom, Buttercup, Bonnet & Bunny are the Clerics
Code:
[17:07:06] Logging to 'eqlog.txt' is now *ON*.
[17:07:16] You say, '^hrlist Bubbles'
[17:07:16] Heal Rotation Settings:
[17:07:16] Current state: active
[17:07:16] Casting interval: 2 seconds
[17:07:16] Fast heals: 'off'
[17:07:16] Adaptive targeting: 'off'
[17:07:16] Casting override: 'off'
[17:07:16] HOT state: inactive
[17:07:16] HOT target: null
[17:07:16] Base hp limits - critical: 65.0%, safe: 95.0%
[17:07:16] Cloth hp limits - critical: 45.0%, safe: 95.0%
[17:07:16] Leather hp limits - critical: 40.0%, safe: 90.0%
[17:07:16] Chain hp limits - critical: 35.0%, safe: 80.0%
[17:07:16] Plate hp limits - critical: 30.0%, safe: 75.0%
[17:07:16] Heal Rotation Members:
[17:07:16] (1) Bubbles
[17:07:16] (2) Blossom
[17:07:16] (3) Buttercup
[17:07:16] (4) Bonnet
[17:07:16] (5) Bunny
[17:07:16] Heal Rotation Targets:
[17:07:16] (1) Meat
[17:07:28] You say, '^hrsethot Meat'
[17:07:29] Succeeded in setting Meat as the HOT in Bubbles's Heal Rotation
[17:07:29] Bubbles begins to cast a spell.
[17:07:29] Bubbles says 'Casting Complete Heal on Meat, please stay in range!'
[17:07:31] Blossom begins to cast a spell.
[17:07:31] Blossom says 'Casting Complete Heal on Meat, please stay in range!'
[17:07:33] Buttercup begins to cast a spell.
[17:07:33] Buttercup says 'Casting Complete Heal on Meat, please stay in range!'
[17:07:35] Bonnet begins to cast a spell.
[17:07:35] Bonnet says 'Casting Complete Heal on Meat, please stay in range!'
[17:07:37] Bunny begins to cast a spell.
[17:07:37] Bunny says 'Casting Complete Heal on Meat, please stay in range!'
[17:07:39] You are completely healed.
[17:07:41] Blossom performs an exceptional heal! (15000)
[17:07:41] You are completely healed.
[17:07:43] Buttercup performs an exceptional heal! (15000)
[17:07:43] You are completely healed.
[17:07:45] Bonnet performs an exceptional heal! (15000)
[17:07:45] You are completely healed.
[17:07:47] You are completely healed.
[17:07:47] Bubbles begins to cast a spell.
[17:07:47] Bubbles says 'Casting Complete Heal on Meat, please stay in range!'
[17:07:49] Blossom begins to cast a spell.
[17:07:49] Blossom says 'Casting Complete Heal on Meat, please stay in range!'
[17:07:51] Buttercup begins to cast a spell.
[17:07:51] Buttercup says 'Casting Complete Heal on Meat, please stay in range!'
[17:07:53] Bonnet begins to cast a spell.
[17:07:53] Bonnet says 'Casting Complete Heal on Meat, please stay in range!'
[17:07:55] Bunny begins to cast a spell.
[17:07:55] Bunny says 'Casting Complete Heal on Meat, please stay in range!'
[17:07:57] Bubbles performs an exceptional heal! (15000)
[17:07:57] You are completely healed.
[17:07:59] You are completely healed.
[17:08:01] Buttercup performs an exceptional heal! (15000)
[17:08:01] You are completely healed.
[17:08:03] Bonnet performs an exceptional heal! (15000)
[17:08:03] You are completely healed.
[17:08:03] Bonnet begins to cast a spell.
[17:08:05] You are completely healed.
[17:08:05] Bubbles begins to cast a spell.
[17:08:05] Bubbles says 'Casting Complete Heal on Meat, please stay in range!'
[17:08:07] Blossom begins to cast a spell.
[17:08:07] Blossom says 'Casting Complete Heal on Meat, please stay in range!'
[17:08:09] Buttercup begins to cast a spell.
[17:08:09] Buttercup says 'Casting Complete Heal on Meat, please stay in range!'
[17:08:11] Bonnet begins to cast a spell.
[17:08:11] Bonnet says 'Casting Complete Heal on Meat, please stay in range!'
[17:08:13] Bunny begins to cast a spell.
[17:08:13] Bunny says 'Casting Complete Heal on Meat, please stay in range!'
[17:08:15] You are completely healed.
[17:08:17] Blossom performs an exceptional heal! (15000)
[17:08:17] You are completely healed.
[17:08:19] You are completely healed.
[17:08:21] Bonnet performs an exceptional heal! (15000)
[17:08:21] You are completely healed.
[17:08:22] You say, '^hrclearhot Bubbles'
[17:08:22] Succeeded in clearing Bubbles's Heal Rotation HOT
[17:08:23] You are completely healed.
[17:08:34] You say, '^camp spawned'
*footnote* I cleaned up the log a tad to strip bard song, and get a clean time instead of Month, Day, Year, etc.
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

   

All times are GMT -4. The time now is 09:31 PM.


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3