EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Development::Bots (https://www.eqemulator.org/forums/forumdisplay.php?f=676)
-   -   EQoffline, bots and more.. (https://www.eqemulator.org/forums/showthread.php?t=22667)

Magoth78 08-16-2007 01:15 AM

Ok thanks sonicvt.

I think it's fixed. Just download the lastest builds: 1.03c and test them please
http://eqoffline.free.fr/Build.rar

Mag

drakelord 08-16-2007 05:53 AM

Mag, I have a question regarding the npc spells list. I went ahead and applied a list I created to my druid. I created the bot, updated him, logged off, changed his npc_spells in the database, logged back on, zoned, spawned him, and his casting did not change at all, compared to his old spell list. He was casting spells that were not even on his spell list, that I took off to make sure it worked right. Is there something in the source code I need to change in order to get the bot to cast according to the list?

Magoth78 08-16-2007 08:02 AM

EQoffline spells list ID:

Magician: 516
Necromancer: 515
Enchanter: 517
Shaman: 518
Druid: 519
Shadowknight: 512
Beastlord: 524

Other are standards.

If someone wants to start to work on this table, that could be nice. This way, we could create profiles.

sonicvt 08-16-2007 09:40 AM

Mag,

I fired up 1.03c today and I noticed that the cleric and shaman bots I use (both level 46) heal MUCH less frequently now. SO much so that a single blue con mob can almost take out my warrior or ranger bot before receiving a heal. Was this a change on your part or just the spell set available to level 46 bots?

sonicvt 08-16-2007 09:49 AM

Mag,

After further testing I see the shaman bot isn't healing at all at level 46. The cleric appears to still be using the 350 hp heal instead of complete heal like I think he would normally.

drakelord 08-16-2007 10:27 AM

Alright Mag, I'll work on those spell profile lists. Just point me in the direction of the file the bot spell lists are stored in under the source code so I can change it and recompile for testing.

Magoth78 08-16-2007 08:30 PM

Updates: v1.03d

http://eqoffline.free.fr/Build.rar

-- new command added "#bot debug spells <target>" : it will show the 16 spells loaded in the bot spells list.
-- the command "#bot inventory remove <slotID>" should now remove the item from the target bot inventory. This item pops on the client's cursor. This way, he can gives it to an other bot.

Drakelord>
If you want to create the npc_spells_entries with the same spells per level as clients, you have to create a new entrie per class into the npc_spells table.
For example: Bot_Druid with an ID that will be autoincremented.

Then, you have to enter the full spell line into the npc_spells_entries table.
In this one, you can see the column :
- id: unique id per entrie
- npc_spells_id: that will be the ID of you Bot_Druid ID (in the npc_spells table)
- spellid: ID of the spell
- type: type of the spell (1= nuke, 2=heal, 4=root, 8=buff, 16=escape, 32=pet, 64=lifetap, 128=snare, 256=dot)
- minlevel and maxlevel: level range where the spell will be casted. (maxlevel can be set to 255 for some spells that are always usefull like resist spells)
- manacost: -1 by default
- recast_delay= -1 by default
- priority: if you plan to make this table so the bot have exactly the same spells as clients with the right levels range, you can set it to 1.

Note that a bot can have a maximum of 16 spells in its spells list. Some casters don't have 16 spells per new spell level range. In this case, you will have to deal with level range so it can learn some of the previous spells.

For example, we have a level 8 mage bot.
In the npc_spells_entries table you have added the level 8-12 mage spells. But it doesn't have 16 spells to learn in this range. Let's say 6 slots are free, you want that you bot can learn some of the lvl4-8 spells to complete thoses free slots. You would have to set a higher maxlevel for thoses spells.

My english seems to suck a lot and I'm sorry about that. I hope that I've explained correctly how it works...

Mag

GeorgeS 08-17-2007 02:06 AM

"#bot debug spells <target>" : it will show the 16 spells loaded in the bot spells list."

This I think will help me out especially when debugging spells loaded and what's not loaded. Excellent addition.

GeorgeS

drakelord 08-17-2007 03:40 AM

Yes, I had already done all of these steps, and changed the npc_spells entry for the bot in the database. It didn't fix anything, which is why I was asking if there was something in the source code that I had to change.

Quote:

Originally Posted by Magoth78 (Post 137082)
Updates: v1.03d

http://eqoffline.free.fr/Build.rar

-- new command added "#bot debug spells <target>" : it will show the 16 spells loaded in the bot spells list.
-- the command "#bot inventory remove <slotID>" should now remove the item from the target bot inventory. This item pops on the client's cursor. This way, he can gives it to an other bot.

Drakelord>
If you want to create the npc_spells_entries with the same spells per level as clients, you have to create a new entrie per class into the npc_spells table.
For example: Bot_Druid with an ID that will be autoincremented.

Then, you have to enter the full spell line into the npc_spells_entries table.
In this one, you can see the column :
- id: unique id per entrie
- npc_spells_id: that will be the ID of you Bot_Druid ID (in the npc_spells table)
- spellid: ID of the spell
- type: type of the spell (1= nuke, 2=heal, 4=root, 8=buff, 16=escape, 32=pet, 64=lifetap, 128=snare, 256=dot)
- minlevel and maxlevel: level range where the spell will be casted. (maxlevel can be set to 255 for some spells that are always usefull like resist spells)
- manacost: -1 by default
- recast_delay= -1 by default
- priority: if you plan to make this table so the bot have exactly the same spells as clients with the right levels range, you can set it to 1.

Note that a bot can have a maximum of 16 spells in its spells list. Some casters don't have 16 spells per new spell level range. In this case, you will have to deal with level range so it can learn some of the previous spells.

For example, we have a level 8 mage bot.
In the npc_spells_entries table you have added the level 8-12 mage spells. But it doesn't have 16 spells to learn in this range. Let's say 6 slots are free, you want that you bot can learn some of the lvl4-8 spells to complete thoses free slots. You would have to set a higher maxlevel for thoses spells.

My english seems to suck a lot and I'm sorry about that. I hope that I've explained correctly how it works...

Mag


Magoth78 08-18-2007 03:13 AM

Version is now 1.03d.

Fixed #bot update. No need to zone or kill and respawn the bots anymore. They will update their stats and their spells at the same time.

Bjerlk 08-18-2007 03:42 AM

Excellent progress sire.
Huge kudos to you.

I love swarming around with my private army...

John Adams 08-18-2007 04:20 AM

Magoth, sorry to ask an old question - but what EQEmu source version were bots coded in? I know many have asked if current EQEmu source could support bots, and you do not have time to convert it all over. Maybe others here can help. I searched the thread, but cannot seem to remember if you said EQEmu-0.7.0-931, or 992... or...?

Thanks!

Magoth78 08-18-2007 05:17 AM

It's 992, yes.

drakelord 08-19-2007 12:33 AM

Alright, something is definately not loading correctly.

In the database, the bots "npc_spells_id" is set to 600.
600 is the number of the npc_spells field created for the druid bot.
In npc_spells_entries, the spells are selected.

The bot is loaded and updated, and with #bot debug spells, he is showing spells that are not even on my list. Does it not actually use the npc_spells_id field in the database?

Magoth78 08-19-2007 01:18 AM

To be sure that it's loading your spells, target your bot and do "#ai spellslist 600".


All times are GMT -4. The time now is 10:41 AM.

Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.