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

Development::Bots Forum for bots.

Closed Thread
 
Thread Tools Display Modes
  #406  
Old 03-20-2008, 10:32 AM
Haven21
Fire Beetle
 
Join Date: Mar 2008
Posts: 6
Default

I've been messing around with trying to create custom spell sets for my bots and so far all of them work great except for shaman. Whenever i create a custom spell set for that class and change the bot to use that list it defaults on the spell list, i have to use #ai spellslist # to get it to use the custom list. I'm fairly certain i'm not doing anything wrong since I've gotten other classes to work so if someone could look into this that would be great!
  #407  
Old 03-20-2008, 03:14 PM
Aramid
Discordant
 
Join Date: May 2006
Posts: 356
Default

I started making Custom Spell lists but did not use the normal entries, instead added the id's in the 600's. The ones that I put to use those seem to work fine, but as you say, I haven't done the Shaman's yet, but have set the original ones as they should be by the minimum and maximum levels and I still have to use the #ai spellslist 6 to get the Shaman to load the higher level spells instead of the lower levels that he shouldn't even be loading. Once I get them all done, I'll edit the code in command.cpp where it assigns the spell lists to my 600's.

I'm going to try to get the time to setup the Shaman list tomorrow in the 600's and see if it loads them properly or not.

Also, the ones with pets seem to load that spell twice... Does that happen for anyone else?
__________________
Random Segments of Code....
  #408  
Old 03-20-2008, 05:24 PM
Haven
Fire Beetle
 
Join Date: May 2006
Posts: 1
Default

Thanks Aramid, i did notice with the wizard spell greater familiar (i think it was this spell) that when it was cast the wizard bot summoned a greater familiar for both the bot and myself and the familiar also summoned its own familiar. I ended up with X's familiar and X's familiar's familiar lol

Edit: bah used my alternate account to post this /sigh
  #409  
Old 03-21-2008, 05:45 AM
Aramid
Discordant
 
Join Date: May 2006
Posts: 356
Default

OK, just found out something I didn't know before nd maybe the coders can figure out why it's happening. I tested this with a Shaman, Wizard, Enchanter, Druid and Necro.

All except the Wizard will load there Default Pet XXXX, where XXXX = Class Spells instead of there own spells.

See if this is what is happening to you as well. Spawn your Bot and before grouping or anything, target it and issue the #showstats command. You will see that it has loaded spellslists in the 500's. They don't have a pet spawned at this time either, as they aren't even grouped yet. Funny thing too, my Wizard doesn't spawn a pet (Familiar) at all even though it has the spell and has the correct list loaded.

My Cleric seems to always load the spells I setup for it.
With the Shaman, I created a short list in the 606 slot and it did not load those spells until I used the #ai command. It loaded it's default pet spells. Yes I set it up to use that spellist in the db

Hope someone can figure out why.
__________________
Random Segments of Code....
  #410  
Old 03-21-2008, 08:47 AM
Congdar
Developer
 
Join Date: Jul 2007
Location: my own little world
Posts: 751
Default

The peq database has default spell lists for all caster classes in npc_spells table starting at id 1 and going through id 12 with names "Default <class> List"
Also in the database are separate entries id 514-524 with names "Default Pet <class> List"

I don't know the reason for needing both, but the bots that can cast pets are hard coded to use the 514-524 list AND the Wizard code is rem'd out.

Maybe Cavedude can shed some light on the multiple default entries as the pet classes would never need the default entries in favor or the default pet entries. It seems the bot code uses the 'Pet' version for pet classes, so any custimization you do should use the higher range unless we hear some reason not to. (We should probably make a 'Default Bot' list, what id range should we use?).

Since the wizard bot code is not changing to the Default Pet entry it is instead using the Default entry. The default entry does not have any pet spells in the list.
  #411  
Old 03-21-2008, 09:02 AM
Congdar
Developer
 
Join Date: Jul 2007
Location: my own little world
Posts: 751
Default

Quote:
Originally Posted by Haven View Post
Thanks Aramid, i did notice with the wizard spell greater familiar (i think it was this spell) that when it was cast the wizard bot summoned a greater familiar for both the bot and myself and the familiar also summoned its own familiar. I ended up with X's familiar and X's familiar's familiar lol

Edit: bah used my alternate account to post this /sigh
When customizing the database list, make sure you put the familiars spell as SpellType_Pet. If you put it as SpellType_Buff it will cast it on everyone in the group.

SpellType_Nuke=1;
SpellType_Heal=2;
SpellType_Root=4;
SpellType_Buff=8;
SpellType_Escape=16;
SpellType_Pet=32;
SpellType_Lifetap=64;
SpellType_Snare=128;
SpellType_DOT=256;
  #412  
Old 03-21-2008, 11:08 AM
cavedude's Avatar
cavedude
The PEQ Dude
 
Join Date: Apr 2003
Location: -
Posts: 1,988
Default

It was Angelox's implementation and works quite well. Not every NPC has a pet, so by default we give NPCs the spell list without pets. When we come to an exception, we give them the list with a pet. Simple, really.

Though for bots I would agree with creating new sets cleric_bot or the like and changing the code to automatically use them would be the best way to go. Starting at 600 would be fine by me and I'd have no problem adding it to PEQ.
  #413  
Old 03-21-2008, 11:41 AM
Aramid
Discordant
 
Join Date: May 2006
Posts: 356
Default

Quote:
Originally Posted by cavedude View Post
Though for bots I would agree with creating new sets cleric_bot or the like and changing the code to automatically use them would be the best way to go. Starting at 600 would be fine by me and I'd have no problem adding it to PEQ.
So basically, all that needs to be done is to change the following code to have the newly created spells lists? I used the 600's, but started at 601 so that the lists lined up so to speak with the originals. 1 and 601 for Clerics (1 = NPC - 601 - Bot) etc... on down the line.

Code:
#ifdef EQBOTS

        //franck-adds: EQoffline. I had to change that so the bot cast their pets if they re pets class..
        if(IsBot() &&  GetClass() == MAGICIAN) {
			AI_AddNPCSpells(516);
			NPCSpecialAttacks(NPCTypedata->npc_attacks,0);
		}
		/*else if( IsBot() &&  GetClass() == WIZARD  )
		{
			AI_AddNPCSpells(514);
			NPCSpecialAttacks(NPCTypedata->npc_attacks,0);
		}*/
		else if(IsBot() &&  GetClass() == NECROMANCER) {
			AI_AddNPCSpells(515);
			NPCSpecialAttacks(NPCTypedata->npc_attacks,0);
		}
		else if(IsBot() && GetClass() == ENCHANTER) {
			AI_AddNPCSpells(517);
			NPCSpecialAttacks(NPCTypedata->npc_attacks,0);
		}
		else if(IsBot() && GetClass() == SHAMAN) {
			AI_AddNPCSpells(518);
			NPCSpecialAttacks(NPCTypedata->npc_attacks,0);
		}
		else if(IsBot() && GetClass() == DRUID) {
			AI_AddNPCSpells(519);
			NPCSpecialAttacks(NPCTypedata->npc_attacks,0);
		}
		else if(IsBot() && GetClass() == SHADOWKNIGHT) {
			AI_AddNPCSpells(521);
			NPCSpecialAttacks(NPCTypedata->npc_attacks,0);
		}
		else if(IsBot() && GetClass() == BEASTLORD) {
			AI_AddNPCSpells(524);
			NPCSpecialAttacks(NPCTypedata->npc_attacks,0);
		}
		else {
			AI_AddNPCSpells(NPCTypedata->npc_spells_id);
			NPCSpecialAttacks(NPCTypedata->npc_attacks,0);
		}

#else

        AI_AddNPCSpells(NPCTypedata->npc_spells_id);
        NPCSpecialAttacks(NPCTypedata->npc_attacks,0);

#endif //EQBOTS
__________________
Random Segments of Code....
  #414  
Old 03-21-2008, 01:21 PM
Congdar
Developer
 
Join Date: Jul 2007
Location: my own little world
Posts: 751
Default

yes, and unrem the Wizard section and share your sql with us.
  #415  
Old 03-22-2008, 11:01 PM
Arex
Hill Giant
 
Join Date: Jul 2004
Posts: 196
Default

Nice work on bots!! I only would like to suggest extend the range of bots to his owner, because they get so near that it is a bit disturbed. Would be a big problem to do it?
  #416  
Old 03-22-2008, 11:42 PM
Aramid
Discordant
 
Join Date: May 2006
Posts: 356
Default

Quote:
Originally Posted by Congdar View Post
yes, and unrem the Wizard section and share your sql with us.
I've only completed 2 of them so far and since you told me that I didn't need to use Group Spells, I have to weed out the group spells now.
__________________
Random Segments of Code....
  #417  
Old 03-23-2008, 01:42 AM
Haven21
Fire Beetle
 
Join Date: Mar 2008
Posts: 6
Default

Quote:
Originally Posted by Congdar View Post
When customizing the database list, make sure you put the familiars spell as SpellType_Pet. If you put it as SpellType_Buff it will cast it on everyone in the group.

SpellType_Nuke=1;
SpellType_Heal=2;
SpellType_Root=4;
SpellType_Buff=8;
SpellType_Escape=16;
SpellType_Pet=32;
SpellType_Lifetap=64;
SpellType_Snare=128;
SpellType_DOT=256;
Ah ok that explains why that is happening, Thanks Congdar!
  #418  
Old 03-23-2008, 02:26 AM
leslamarch
Discordant
 
Join Date: Sep 2006
Location: Green Bay, WI
Posts: 436
Default

Heya guys,
No matter what i try with the bots even using Congdar updated cleric list all the cleric will still cast light healing at level 65? Not sure what i have to do different?
Can anyone point me in the right direction?
  #419  
Old 03-23-2008, 02:51 AM
Aramid
Discordant
 
Join Date: May 2006
Posts: 356
Default

Quote:
Originally Posted by leslamarch View Post
Heya guys,
No matter what i try with the bots even using Congdar updated cleric list all the cleric will still cast light healing at level 65? Not sure what i have to do different?
Can anyone point me in the right direction?
#AI Spellslist #

It's talked about in this very forum on page 27 and the page you posted on as well!
__________________
Random Segments of Code....
  #420  
Old 03-23-2008, 02:57 AM
leslamarch
Discordant
 
Join Date: Sep 2006
Location: Green Bay, WI
Posts: 436
Default

Quote:
Originally Posted by Aramid View Post
#AI Spellslist #

It's talked about in this very forum on page 27 and the page you posted on as well!
Yeah I tried that as well, Must be something else I'll just keep at it. I'm sure its something I'm Just missing thanks for the pointers though.
Closed Thread


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 07:14 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