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

Development::Bots Forum for bots.

Reply
 
Thread Tools Display Modes
  #1  
Old 07-21-2011, 03:25 AM
Criimson
Hill Giant
 
Join Date: Sep 2006
Posts: 172
Default

Quote:
now how are the bots going to know when to cast a magic based slow or a disease based slow(Emperor Ssraeshza)?
There is already code that can be used to check a mobs resists and cast based on that. It is used atm in DDs and in slows.

Quote:
How will the bots know when to use single target slow or aoe slow
Now this code is not in atm as far as I can tell. I did notice a mob count function that was related to fear. If I am corect it checks how many mobs are in close proximity and not agroing and if its a certain number then fear isnt cast. I was looking at it thinking I might alter it to to start an agro check for aoe spells like aoe mez.

Quote:
Another issue I can see from live is some mobs are highly resistant to slow or even magic based spells but they are not flagged as immune….Gaukr Sandstorm is a good example of this…while not immune to magic he is so highly resistant most never bothered trying to slow him. It raises the question as to when will be bots stop trying to cast debuffs or will they just keep casting till they are out of mana. Seems like some tricky AI is headed someone’s way.
IMO this is exactly what this thread is about. Each of us probably has a different way of thining about this. As the contributers to this thread we all have a love of bots and we can come to some agreement about a structure that suits the needs/desires of each of us and then start a-codin'.
Using your last question as an example: Code could be implimented that checked a certain amount of casts before giving up on that spell and as resist checks are pretty easy to code there could be a range in which it is basically seen as immune. To me bot AI isn't very difficult to break down. A thought process is basically a tree and the branches are far from infinite.
Reply With Quote
  #2  
Old 07-21-2011, 07:04 PM
bad_captain
Developer
 
Join Date: Feb 2009
Location: Cincinnati, OH
Posts: 512
Default

Quote:
Originally Posted by Criimson View Post


Now this code is not in atm as far as I can tell. I did notice a mob count function that was related to fear. If I am corect it checks how many mobs are in close proximity and not agroing and if its a certain number then fear isnt cast. I was looking at it thinking I might alter it to to start an agro check for aoe spells like aoe mez.
AOE spells definitely need to be thought out and added in. AOE nukes would most likely need to be togglable, since I can see the usefulness on AEing for faction or questing, but think the AI would be difficult to get right so it doesn't break mez, root, or otherwise affect mobs you wouldn't want it to.
Reply With Quote
  #3  
Old 07-21-2011, 07:30 PM
Criimson
Hill Giant
 
Join Date: Sep 2006
Posts: 172
Default

Quote:
Originally Posted by bad_captain View Post
AOE spells definitely need to be thought out and added in. AOE nukes would most likely need to be togglable, since I can see the usefulness on AEing for faction or questing, but think the AI would be difficult to get right so it doesn't break mez, root, or otherwise affect mobs you wouldn't want it to.
I was thinking about something related to this and it fits well into this idea.
I was pondering this:
Quote:
How will the bots know when a belly cast(Sontalak) is required versus just melee range?
I am assuming that certain functions will simply have to be added as bot commands. Belly cast and AoE allowed being two of them. Bot AI could be added for MoBs like bosses but at times it will fail. For instance, I remember AoEing for exp in Seb, but a bot isnt able to determine if we are on an AoE exping trip to seb or a slow going mez stuff trip. Having commands to turn off mez and turn on AoE would be neccessary.
Reply With Quote
  #4  
Old 07-21-2011, 08:18 PM
bad_captain
Developer
 
Join Date: Feb 2009
Location: Cincinnati, OH
Posts: 512
Default

Quote:
Originally Posted by Criimson View Post
I was thinking about something related to this and it fits well into this idea.
I was pondering this:


I am assuming that certain functions will simply have to be added as bot commands. Belly cast and AoE allowed being two of them. Bot AI could be added for MoBs like bosses but at times it will fail. For instance, I remember AoEing for exp in Seb, but a bot isnt able to determine if we are on an AoE exping trip to seb or a slow going mez stuff trip. Having commands to turn off mez and turn on AoE would be neccessary.
I'm not sure belly casting is required for bots. I remember taking some of the dragons out, but not having to be under them for bot spells to land. I may be wrong, but I think it's only checking for clients. I'd have to look to be sure, though.
Reply With Quote
  #5  
Old 07-21-2011, 08:37 PM
Criimson
Hill Giant
 
Join Date: Sep 2006
Posts: 172
Default

Quote:
Originally Posted by bad_captain View Post
I'm not sure belly casting is required for bots. I remember taking some of the dragons out, but not having to be under them for bot spells to land. I may be wrong, but I think it's only checking for clients. I'd have to look to be sure, though.
That makes sense since bots arent restricted by regeants and can bypass other things as well according to comments in the code.
Reply With Quote
  #6  
Old 07-21-2011, 07:10 PM
bad_captain
Developer
 
Join Date: Feb 2009
Location: Cincinnati, OH
Posts: 512
Default

Quote:
Originally Posted by Criimson View Post

Using your last question as an example: Code could be implimented that checked a certain amount of casts before giving up on that spell and as resist checks are pretty easy to code there could be a range in which it is basically seen as immune. To me bot AI isn't very difficult to break down. A thought process is basically a tree and the branches are far from infinite.
Wizard nuke code already does somethign similar. It compares the mob's resists, and determines which is lower, but must be a certain amount lower to coose one group of nukes over another. We would just have to determine at which point it's pointless to continue casting a magic or fire based spell. But we would also have to factor in lure type spells, just in case there are custom spells, or spells added later that use them.

I see preventing in the first place as better than tracking how many times a certain spell fails to land. Less to keep track of and more efficient.
Reply With Quote
  #7  
Old 07-21-2011, 10:06 PM
blackdragonsdg
Dragon
 
Join Date: Dec 2008
Location: Tennessee
Posts: 672
Default

Quote:
Originally Posted by bad_captain View Post
Wizard nuke code already does somethign similar. It compares the mob's resists, and determines which is lower, but must be a certain amount lower to coose one group of nukes over another. We would just have to determine at which point it's pointless to continue casting a magic or fire based spell. But we would also have to factor in lure type spells, just in case there are custom spells, or spells added later that use them.

I see preventing in the first place as better than tracking how many times a certain spell fails to land. Less to keep track of and more efficient.
This raises another issue with AOE's....if you are checking your targets stats then you are only checking one target so what about the others? Your target could be more resistant to one specific resist type but the rest of the npc's could be getting hit by that spell. I bring this up because a common tactic for the Corinav event is to pull 20+ mobs into a small space then aoe nuke them to death.
If there is a way to do a resist check for all npc's in close proximity to your target then it would give a more realistic view of what spell needs to be used.
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 12:50 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 - 2026, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3