Disregard.
|
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.
|
|
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 |
the links say file deleted :(
|
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. |
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 |
Quote:
http://rapidshare.com/files/91079872..._Diff.rar.html |
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, |
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.
|
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. |
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. |
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. |
Thanks Congdar. I'll grab your source and have a play soon :)
Paul. |
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:
|
Quote:
|
|
Nice.
I just finished doing that myself, minus the changes you made. Thanks! |
Quote:
|
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.
|
Quote:
Code:
#include <stdio.h> Code:
DFLAGS=-DEQDEBUG=5 -DCATCH_CRASH -DNO_PIDLOG -DSHAREMEM -DSPELL_EFFECT_SPAM -DFIELD_ITEMS -DCOMBINED -DAPP_OPCODE_SIZE=2 -Di386 Code:
DFLAGS=-DEQDEBUG=5 -DCATCH_CRASH -DNO_PIDLOG -DSHAREMEM -DSPELL_EFFECT_SPAM -DFIELD_ITEMS -DCOMBINED -DAPP_OPCODE_SIZE=2 -Di386 -DEQBOTS |
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 Code:
../common/guild_base.o guild_mgr.o botRaids.o botAI.o petAI.o |
Thanks Derision and Cavedude, that was what was needed. It compiled and appears to be working fine.
|
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.
|
I wouldn't, that sql file is pretty old and missing much of what is in the current table.
|
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 Code:
DFLAGS=-DEQDEBUG=5 -DCATCH_CRASH -DNO_PIDLOG -DSHAREMEM -DSPELL_EFFECT_SPAM -DFIELD_ITEMS -DCOMBINED -DAPP_OPCODE_SIZE=2 -Di386 -DEQBOTS Code:
../common/guild_base.o guild_mgr.o Code:
../common/guild_base.o guild_mgr.o botRaids.o botAI.o petAI.o 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 |
Not sure if \common is the correct place for those files. The original eqoffline source files are in the \zone folder.
|
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. |
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.
|
Yep, that's it.
|
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. |
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.
|
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.
|
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.
|
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. |
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. |
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.
|
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. |
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. |
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.