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)

Mrwalsh 02-05-2008 02:59 AM

Disregard.

WildcardX 02-08-2008 05:34 PM

For this to be of maximum value in hopes of working out some type of merge, I need a diff of this bot source code against the most recent eqemu build. So the sooner the better before the builds continue past where you are now.

Congdar 02-08-2008 06:59 PM

Here's my most stable build. Source and Binaries based off of the 1090 sources.

I was able to get everything inside #ifdef EQBOTS
Did some debugging and fixing on bot raid commands and bot inventory trading.

Feel free to test and report bugs.

a_troll_01 02-10-2008 12:21 AM

BOT Versions
 
I'm sure there are a couple of different versions of the BOT source being maintained by folks. It might be worthwhile to diff the source and pull the best features from each one.

I just finished tweaking BOT spell entries and randomizing BOT pets.
Spells - Changed "Order By" for npc_spells_entries.
Pet -
Class with multiple pet types will now have a random chance for each valid pet.(ie mages)
SK's and Druid BOTS will now summon pets.
Beastlord Pets are now Warders.

Here is my 1090 source and binaries.
source - http://rapidshare.com/files/90637737...ource.rar.html
binaries - http://rapidshare.com/files/90637738...-1090.rar.html

Congdar 02-10-2008 05:23 AM

the links say file deleted :(

Congdar 02-11-2008 07:44 AM

a_troll_01,
I'm interested in your updates to the bot code, can you repost your source?

This goes for anyone else that has made tweaks/improvements to the bot source.

a_troll_01 02-11-2008 12:54 PM

Bot 1090 source
 
Here is a link to my 1090 source. I fiddle with the Bot portion of the code continuously, so it will be out of date before I finish this beer. /grin

http://rapidshare.com/files/91061241...ource.rar.html

a_troll_01 02-11-2008 03:02 PM

Quote:

Originally Posted by WildcardX (Post 142976)
For this to be of maximum value in hopes of working out some type of merge, I need a diff of this bot source code against the most recent eqemu build. So the sooner the better before the builds continue past where you are now.

Diff files for the Bot source I provided.
http://rapidshare.com/files/91079872..._Diff.rar.html

Jexl 02-15-2008 08:39 AM

Hi a_troll_01

I was wondering if you have a copy of the binaries on the latest 1090 eqemu update for bots. Im not a programmer, and have no clue what to do with the source...

can you see if you can get a download up and running?

thanks,

Congdar 02-16-2008 08:03 AM

I've uploaded new binaries and source for 1090 bots. Fixed 3 or 4 crashing bugs that kept people from logging in. Use the links in my post above.

Jexl 02-16-2008 08:26 AM

Thanks Cor,

I'll try this out. There are a few bugs that have come up. Ill double check your most recent work, and provide any info I can.

I appreciate it.

number6 03-04-2008 09:50 PM

Hi Guys,

I'm thinking of resurrecting my little server in a few weeks for use by me and a handful of friends (we are all bored with LoTRO now...). I had a little play with the bots stuff last year when it first came out. I was wondering if WildcardX or anyone else was still looking at folding it into the official code base at some point or whether it will always be something that needs to be patched in.

No pressure - I know how long things can take, and if it needs some re-structuring to make it "modular", I can imagine that's a very large undertaking. Just curious.

Cheers

Paul.

Congdar 03-05-2008 03:43 AM

Not sure if anything is being done about a merge into the main base code, although I don't recommend it at this time.

I've made it easier to patch in by surrounding the bot code in blocks of #ifdef EQBOTS and I have been making fixes to things that were causing crashes and added extra helpful text when using #bot commands.

I'm still at build 1090 with this code because I have come across an issue with upgrading the database that I'm relying on another person to fix for me since I'm more of a c++ guy than a database guy. What happens is, during an upgrade of the database you generally run drop_system.sql which deletes the npc_types table where all the bots are, so you lose all your bots. It wouldn't be so tough to backup the bots and then source them back in but there's a problem with that part.

It is likely that the new database will at some point add new npc's and these new npc's could have the same ID as one or more of the bots. The bot ID is also referenced in the botowners and botinventory tables so in this case, the bot would need to be merged into the npc_types table with a new id and the botowners and botinventory tables updated to reflect this.

Not a huge problem and this other guy is working on a vbscript or some tool like that to solve this, so I'll be moving to more recent builds soon.

I have been posting updated binaries and source in my link above, the latest version is dated feb 29th.

number6 03-05-2008 05:20 AM

Thanks Congdar. I'll grab your source and have a play soon :)

Paul.

Lotek 03-07-2008 05:08 AM

Any chance you could put them up on filebeam ?

RapidShare is being a p.i.t.a. Keeps telling me I need to enable
JavaScript, which is enabled, when I click on the free link.

Quote:

Originally Posted by a_troll_01 (Post 143113)
Here is a link to my 1090 source. I fiddle with the Bot portion of the code continuously, so it will be out of date before I finish this beer. /grin

http://rapidshare.com/files/91061241...ource.rar.html


kiirdiir 03-07-2008 10:07 AM

Quote:

Originally Posted by Lotek (Post 144246)
Any chance you could put them up on filebeam ?

I can help you out there: filebeam.com link.

Congdar 03-08-2008 02:49 PM

I've merged the bots with build 1102. Have fun! Source and EXE's
Several crash fixes
Set bots to not aggro when set to "guard"
Caster bots will report they need to meditate

kiirdiir 03-08-2008 03:10 PM

Nice.

I just finished doing that myself, minus the changes you made. Thanks!

Aramid 03-10-2008 06:59 AM

Quote:

Originally Posted by Congdar (Post 144153)
I've made it easier to patch in by surrounding the bot code in blocks of #ifdef EQBOTS and I have been making fixes to things that were causing crashes and added extra helpful text when using #bot commands.

Where do you #def EQBOTS so they will be available when compiling in Linux (Debian 4) or is there something else that needs to be done?

Congdar 03-10-2008 07:08 AM

Not sure for linux compiles, sorry. In Visual Studio you add EQBOTS to the preprocessor settings. Not sure if it's necessary but I add it to the zone, world and emusharemem components.

Derision 03-10-2008 10:05 AM

Quote:

Originally Posted by Aramid (Post 144407)
Where do you #def EQBOTS so they will be available when compiling in Linux (Debian 4) or is there something else that needs to be done?

To define a symbol for the pre-processor you need to add -D<symbol> to the compiler command line. e.g.:

Code:

#include <stdio.h>

int main() {

#ifdef EQBOTS
        printf("EQBOTS defined\n");
#endif

}

entwisd@rama ~ $ g++ test.cpp
entwisd@rama ~ $ ./a.out
entwisd@rama ~ $ g++ -DEQBOTS test.cpp
entwisd@rama ~ $ ./a.out
EQBOTS defined
entwisd@rama ~ $

I've not tried this bots code, but I would guess adding -DEQBOTS to the first DFLAGS line in zone/makefile should be all that is required, i.e. change

Code:

DFLAGS=-DEQDEBUG=5 -DCATCH_CRASH -DNO_PIDLOG -DSHAREMEM -DSPELL_EFFECT_SPAM -DFIELD_ITEMS -DCOMBINED -DAPP_OPCODE_SIZE=2 -Di386
to

Code:

DFLAGS=-DEQDEBUG=5 -DCATCH_CRASH -DNO_PIDLOG -DSHAREMEM -DSPELL_EFFECT_SPAM -DFIELD_ITEMS -DCOMBINED -DAPP_OPCODE_SIZE=2 -Di386 -DEQBOTS
then do a make clean; make

cavedude 03-10-2008 11:15 AM

You also need to add the 3 bot files to the makefile to compile. so in zone/makefile.common

Code:

../common/guild_base.o guild_mgr.o
becomes:

Code:

../common/guild_base.o guild_mgr.o botRaids.o botAI.o petAI.o

Aramid 03-10-2008 11:45 AM

Thanks Derision and Cavedude, that was what was needed. It compiled and appears to be working fine.

cubber 03-12-2008 02:37 AM

If I am running the latest PEQ database from CVS is there a need to drop the npc_spells_entries table and replace it with the one from the link in the readme? I noticed that the bot tables are already put in and isbot is added to npc_types by default in PEQ.

Congdar 03-12-2008 03:02 AM

I wouldn't, that sql file is pretty old and missing much of what is in the current table.

cubber 03-12-2008 03:14 AM

Great thanks for the reply. I just want to make sure I got this right, there is a lot of info in this thread. So on a linux server after downloading your 1102 sources all I would have to do is:

1. Change the following in zone/makefile:

Code:

DFLAGS=-DEQDEBUG=5 -DCATCH_CRASH -DNO_PIDLOG -DSHAREMEM -DSPELL_EFFECT_SPAM -DFIELD_ITEMS -DCOMBINED -DAPP_OPCODE_SIZE=2 -Di386
to:

Code:

DFLAGS=-DEQDEBUG=5 -DCATCH_CRASH -DNO_PIDLOG -DSHAREMEM -DSPELL_EFFECT_SPAM -DFIELD_ITEMS -DCOMBINED -DAPP_OPCODE_SIZE=2 -Di386 -DEQBOTS
2. Then change the following in zone/makefile.common

Code:

../common/guild_base.o guild_mgr.o
to:

Code:

../common/guild_base.o guild_mgr.o botRaids.o botAI.o petAI.o
3. run make

4. copy the world, zone , and libEMuShareMem.so files from the bot source to my current working server directory replacing the normal world, zone and libEMuShareMem.so files, and run my start script that I use to normally start my server.

Then if I wish to revert back to my old server just copy the old world, zone, libEMuShareMem.so files back to the working server directory over the bot files.

Thanks

Congdar 03-12-2008 03:28 AM

Not sure if \common is the correct place for those files. The original eqoffline source files are in the \zone folder.

cavedude 03-12-2008 03:40 AM

That's absolutely correct, cubber. Though, to toggle between eqoffline and normal binaries you only need to swap out zone. The other binaries are not changed.

../common is the location of guild_base.cpp and guild_base.h. If you notice, the other 4 files after it have no directory, so the makefile will just use its current directory for those, which of course is zone.

cubber 03-12-2008 03:45 AM

Thats how I thought the line read thanks cavedude! So basically the only thing I need to compile after downloading the 1102 source linked above is zone. Since I already have a 1102 eqemu server running.

cavedude 03-12-2008 04:00 AM

Yep, that's it.

cubber 03-13-2008 12:32 AM

Thanks for the help. I was able to play around with the bot system last night and had a blast. The system is amazing!

I did notice that I had to zone before my bots would cast any spells over level 1, and I also had random game client crashes when using the bots system that I never experienced using the regular 1102 server. My client just froze up 3 times in about a 4 hour time frame. In different zones, all when using the bots. I was able to open task manager and kill the client which was labeled "not responding", then restart the client and log back into the server. Looking at the server's built in web interface it looks like 1 of my 5 dynamic zones restarted, it has a start count of 2.

The zones I experienced the crashes in were, Plane of Knowledge, HateplaneB, and Plane of Growth. Those were pretty much the only zones I visited too. The crashes happened on 2 different characters running different bots. 2 happened when the bots were casting and in combat, the other happened when I was spawning a bot, but the other bots were also buffing.

However, I had so much fun using the bot system that the crashes didn't really even bother me that much.

Congdar 03-13-2008 12:54 AM

The original design was for solo play with the bots. I think there are likely issues with two pc's in the same zone running bots at the same time, however it seems to work great for filling the last slots when single grouping with friends.

cubber 03-13-2008 12:58 AM

I was only running 1 pc with a full group of bots. When I said 2 characters I meant that at one point I switched to another character and created a new set of bots.

Congdar 03-13-2008 01:18 AM

hmm, I was in plane of mischief all night and didn't have any problems with locking up. Are you using my sources or some other? I think there are two or three versions around. That's not to say there aren't multitudes of issues with the bots but they are quite a bit more stable than before. If you could remember exactly what you were doing maybe I could debug a little bit in that area.

cubber 03-13-2008 01:30 AM

I was using your 1102 sources on a gentoo linux server and running the titanium client on windows xp. Like I said it seems to be random when the bots cast a spell. I am not sure if its a cleric bot or enchanter bot that keeps hosing me. I will have to do more testing and pay more attention to whats happening before the crashes.

The bots I had up were: enchanter, cleric, shaman, necro, monk. I gave them all their epics to start then went hunting to gear them up after that. Most of them are still pretty naked.

I also noticed that the chanter bots don't cast any kind of mana buffs and have a hard time with mezzing adds, even when I use the #bot ai mez command. I don't ever see any haste being casted either. But that all probably has to do with the spell table in the database.

Congdar 03-13-2008 04:51 AM

I guessing it's the enchanter bot. I've never used one because I think it tries to root instead of mez dunno. I've tested with Cleric, Monk, Mage, Beastlord, Shadowknight, Warrior, Paladin, Shaman, Berserker, Druid, Wizard, Necromancer without issues.

I think ranger probably works but not with a bow. I think bard can sing one song and melee but I haven't tested extensively.

The spell selection isn't that great. I've worked up a modification to the spells a Cleric casts for npc_spells_entries but I'm not totally happy with it due to the self only buffs also get cast as on the other members of the group.

There's lots to do to get bots more robust.

cubber 03-13-2008 04:54 AM

Could be the chanter bot, I will try again when I have a chance with a different bot. I noticed when I tried a bard bot all's she did was melee, no songs.

Aramid 03-13-2008 10:44 AM

I have been playing the following Bots with no trouble even with 2 different people in the same zone using bots:
Cleric, Enchanter, Warrior, Shaman and Wizard

I just figured out today how to get the Enchanter to use MEZ.

First off, lets talk about what you have to do with the spells. I have started to make new ones for my toons, but you can adjust the existing ones in the database.

All spells have a minimum and Maximum spell level. You can only have 16 spells on a bot at any given time. The spells are determined by the Bots Level and Maximum Level settings in the spell database.

I use level 65 bots, so that's what I will use as examples.

All the Level 65 Spells of course have a minimum level of 65 and of course will load onto a level 65 bot. You may have to use the #AI SPELLSLIST # to get them using the correct list. Now, what I did was set the chanter to have all the good buff spells and of course, all the level 65 spells and 65 Mez. On any root spell, I made sure that the Minimum & Maximum level were below 65. 64 will work. This way no root spell would load on the 65 Bot. The spells that I wanted it to load that were below level 65, you just have to raise the maximum level to your Bots level or higher. It will load the 16 spells with the highest maximum in reverse order... I think but not really tested that part as I just have it so 16 spells will load based on the Bots level.

So, again, for an Enchanter to mez, there cannot be a root spell in there list of 16 spells (at least this is how I got mez to work instead of root) Make sure your mez spell in the database is set to a ROOT type. As long as there are no root spells in the bots 16 spell list, then mez will work. The spells load into the 16 slots based on priority. The higher the priority the closer to the top it goes. Not sure if this has any advantage or not.... but that's how that works.

BTW. I think you also have to restart your EMU Server after making the changes to your Spells in order for them to take effect. If you don't, please let me know how.

So what I have done, is to make my Wizard not do any buffs but have all the high nukes, the enchanter to have the highest mez and mana regen buffs, the Cleric to have the Highest HP buffs and AC buffs and no nukes and the shaman to have the best slow and PC Bots, all Group Spells on the buffs as well and so far it's working great.

cubber 03-14-2008 11:05 AM

Hmm 2 nights ago the bots were accepting items fine and displaying them correctly when worn. Now when I hand a bot an item it does not display the item on the bot and I get a dupe of the item back in my cursor. When I do a #bot inventory list the item shows correctly in the correct slot. If I kill the bot and respawn it then it comes back with the inventory item displayed correctly. The only thing I did to my server was update the quests via CVS and restart the server.

I tried restarting the server again and it did not help.

cavedude 03-14-2008 11:30 AM

Delete default.pl in quests, it prevents items from being handed to bots properly. I'm trying to find a way around that.


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

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