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

Development::Bots Forum for bots.

Reply
 
Thread Tools Display Modes
  #1  
Old 11-27-2010, 12:29 PM
Randymarsh9
Dragon
 
Join Date: Dec 2007
Posts: 658
Default Interrupting bot casting?

Is there a command in the source code to temporarily stop a bot from casting a spell? I was using #bot sow regular and I noticed that you have to wait for the bot to finish casting whatever spell it is casting before he will actually listen to you. Is there a way you can update this so that once you tell a bot to cast a spell, it automatically starts casting that one and stops doing whatever it was doing before?
Reply With Quote
  #2  
Old 11-27-2010, 12:44 PM
bad_captain
Developer
 
Join Date: Feb 2009
Location: Cincinnati, OH
Posts: 512
Default

Not that I'm aware of.. It's frustrating trying to get a rez when my Cleric is rebuffing everyone..
Reply With Quote
  #3  
Old 11-27-2010, 12:51 PM
Randymarsh9
Dragon
 
Join Date: Dec 2007
Posts: 658
Default

Yeah I'm trying to find something that you could just put in those commands that will make the bot stop doing everything until it casts whatever spell you tell it to
Reply With Quote
  #4  
Old 11-27-2010, 01:28 PM
steve
Discordant
 
Join Date: Jan 2002
Posts: 305
Default

That or a queuing system would be nice.
Reply With Quote
  #5  
Old 11-27-2010, 02:10 PM
bad_captain
Developer
 
Join Date: Feb 2009
Location: Cincinnati, OH
Posts: 512
Default

I assume in the AI_Process it could check to see if you're trying to have them cast something before trying to cast their own spells, but I'm not sure of the best way to handle it.
Reply With Quote
  #6  
Old 11-28-2010, 05:48 PM
Randymarsh9
Dragon
 
Join Date: Dec 2007
Posts: 658
Default

Has anyone made any progress on this?
Reply With Quote
  #7  
Old 11-28-2010, 07:32 PM
Caryatis
Dragon
 
Join Date: May 2009
Location: Milky Way
Posts: 541
Default

in 1 day? patience dude.
Reply With Quote
  #8  
Old 11-28-2010, 10:30 PM
Congdar
Developer
 
Join Date: Jul 2007
Location: my own little world
Posts: 751
Default

There's an example in the command #bot corpse summon
the shadowknight or necromacner bot is first inerrupted from any other spell casting before casting the summon corpse spell using:
Code:
g->members[i]->InterruptSpell();
__________________
The Realm
Reply With Quote
  #9  
Old 11-28-2010, 10:35 PM
Randymarsh9
Dragon
 
Join Date: Dec 2007
Posts: 658
Default

Where should I put that to make it work? Like if I was putting it on the sow command would I make it look like
Code:
 					if      ((!strcasecmp(sep->arg[2], "regular")) && (zone->CanCastOutdoor())  && (c->GetLevel() >= 10) ) {
						g->members[i]->InterruptSpell();
						Sower->Say("Casting sow...");
						Sower->CastSpell(278, c->GetID(), 1, -1, -1);
					}
and then just add that in for every line?
Reply With Quote
  #10  
Old 11-29-2010, 11:18 AM
Congdar
Developer
 
Join Date: Jul 2007
Location: my own little world
Posts: 751
Default

no, then you would have the same line of code too many times. just put it before the switch(SowerClass) so you only need it once, and it would look better as Sower->InterruptSpell();
__________________
The Realm
Reply With Quote
Reply


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 05:35 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 - 2024, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3