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

Development::Bots Forum for bots.

Closed Thread
 
Thread Tools Display Modes
  #1  
Old 06-02-2008, 12:44 PM
Congdar
Developer
 
Join Date: Jul 2007
Location: my own little world
Posts: 751
Default

That sounds like some great work your're doing. If you can get the linkedlist thing to work that's awesome. I was getting too many zone crashes cuz dead bots were linked everywhere and ended up having code try and execute on bot objects that no longer existed when they got killed, especially when working 12 group raids(71 bots + me). I left live... i think the expansion after PoP and at that time I thought the raid limit was 12 groups. Before I set that hard limit I did some research into what the limit was and all I could find was that in later expansions they tried to move from 72 down to 48 max players in a raid. If you can find some info that says more than 72 is allowed it isn't hard to bump the constant up from 12.

Just thought I would take this opportunity to give credit to Magoth78 for this bot code he gave the community around build 992. reading some of the posts, it seems people think i wrote all of this stuff. I've just kind of maintained it through the latest builds and tried to figure out how to fix some of the crashes. C/C++ is not my strongest language so I may have made some poor design choices. I think some of the crashes came from bugs I introduced myself when trying to fix other things.

The #bot command structure was inherited from the original bot source, it definitly could use the reorg you are talking about. I have left most everything the same as Magoth78 coded it except where I fixed crashes and the big change to raids with the linkedlist or array decision, and fixing stat bonuses from items and adding AA's.

There was talk of merging the bot source into the emu source and that is when I did all the #IFDEF EQBOTS around all the bot source since the original source was not ifdef'd. The ifdefs would make it really easy to put into the main emu source tree, but I recommended against it at the time since the bot source was really crashing a lot. Now that it has stabalized some, maybe it might be ok, but since there is still some fluidity to the code, it seems easier to work on it this way than do code submission requests through the emu devs.

The next big issue is to complete separate spell lists in the database for bot casters. Some work has been done in this area but a lot more is needed and I just haven't got there since I'm more focused on code bugs than db updates.

I'm all for extra help from the community on the bot source. I don't own it, just trying to keep it going. Happy to work with anyone that wants to help out.
  #2  
Old 06-02-2008, 12:52 PM
John Adams
Demi-God
 
Join Date: Jul 2006
Posts: 1,552
Default

From memory, EQLive raids had a max of 72 players in the Raid UI. However, some zones (I believe) limited the number of entrees to specific numbers - i think PoTime was one of those? I'm sure there are more seasoned raiders out there that know more.

But 72 is the number I remember. You could zerg with 200 if you wanted, but only the 72 in the raid UI got credit/loot (unless of course the loot lockout timer expired yadda yadda)


As for the #ifdef work... I know I've said this before. Is it possible to move all BOT code external into it's own cpp/h files, and use #ifdef / #includes like the GuildWars system uses? There would be lots of #ifdef BOTS...do this... but maybe with a few nicely placed #includes, it could be less intrusive to the core - and can be easily switched off at compile time.
  #3  
Old 06-02-2008, 02:48 PM
Congdar
Developer
 
Join Date: Jul 2007
Location: my own little world
Posts: 751
Default

Quote:
Originally Posted by John Adams View Post
As for the #ifdef work... I know I've said this before. Is it possible to move all BOT code external into it's own cpp/h files, and use #ifdef / #includes like the GuildWars system uses? There would be lots of #ifdef BOTS...do this... but maybe with a few nicely placed #includes, it could be less intrusive to the core - and can be easily switched off at compile time.
It is easily switched off at compile time now with the existing #ifdef EQBOTS I coded. It may be possible to move some, but not all bot code to it's own files. Not sure if that effort would make much of a difference.
  #4  
Old 06-03-2008, 02:12 AM
BatCountry
Fire Beetle
 
Join Date: Mar 2006
Posts: 24
Default

Quote:
Originally Posted by Congdar View Post
That sounds like some great work your're doing. If you can get the linkedlist thing to work that's awesome. I was getting too many zone crashes cuz dead bots were linked everywhere and ended up having code try and execute on bot objects that no longer existed when they got killed, especially when working 12 group raids(71 bots + me).
Yeah, after switching to linked lists, I've had to catch and kill a lot of crash bugs - mostly related to me dealing with linked lists incorrectly, I believe. I need to build some test cases where I ensure the LinkedList and LinkedListIterator classes actually behave the way I think they do.

I've been doing a lot of what I see you've been doing (while comparing the older code with what you've been making) - adding checks to catch null pointers and finding the behavior that can result in creating them.

I'm still in awe of what Magoth78 put out - and how easy it is to follow the logic. Most of what I've done with the codebase to make it work the way I want is just simplifying commands and catching some stray crash bugs.
  #5  
Old 06-03-2008, 10:55 AM
BatCountry
Fire Beetle
 
Join Date: Mar 2006
Posts: 24
Default

Quote:
Originally Posted by Congdar View Post
Before I set that hard limit I did some research into what the limit was and all I could find was that in later expansions they tried to move from 72 down to 48 max players in a raid. If you can find some info that says more than 72 is allowed it isn't hard to bump the constant up from 12.
Quote:
Ulairi: Many players have expressed an interest in increasing the raid group size to over the 72 player limit to support larger guilds. Is it possable leadership advancement will aid in this?

Craig Knapp: As for now, we have no intentions of raising the raid group size.
From a dev chat log about The Serpent's Spine, I guess we can fairly call the limit 72. Smaller limits seem to be for various raid Tasks, which aren't really implemented yet.
  #6  
Old 06-03-2008, 08:32 PM
Trynix
Fire Beetle
 
Join Date: Mar 2008
Location: Cincinnati
Posts: 9
Default

Has anyone else noticed an issue with the bots not being able to keep agro? I played my wizard lastnight and had 2 bots (a warrior and a cleric), I would do #bot group order attack and send the warrior to tank the mob. I can see the warrior saying "taunting", I am waiting until the mobs are at least 80% before I cast and as soon as I cast my first spell the mob immediately runs to me. The warrior bot will run over and continue to attack and taunt but the mob never leaves me.

I have tried with other characters as well, with my ranger I can send in the warrior and if I am even standing close by not attacking I still catch agro. I can stand still not attacking at all and the warrior bot can never taunt the mob away.
  #7  
Old 06-03-2008, 08:42 PM
Congdar
Developer
 
Join Date: Jul 2007
Location: my own little world
Posts: 751
Default

Quote:
Originally Posted by Trynix View Post
Has anyone else noticed an issue with the bots not being able to keep agro? I played my wizard lastnight and had 2 bots (a warrior and a cleric), I would do #bot group order attack and send the warrior to tank the mob. I can see the warrior saying "taunting", I am waiting until the mobs are at least 80% before I cast and as soon as I cast my first spell the mob immediately runs to me. The warrior bot will run over and continue to attack and taunt but the mob never leaves me.

I have tried with other characters as well, with my ranger I can send in the warrior and if I am even standing close by not attacking I still catch agro. I can stand still not attacking at all and the warrior bot can never taunt the mob away.
try a test... set your server rule and see if it helps:

Aggro:SmartAggroList = false
  #8  
Old 06-03-2008, 10:54 PM
Trynix
Fire Beetle
 
Join Date: Mar 2008
Location: Cincinnati
Posts: 9
Default

Quote:
Originally Posted by Congdar View Post
try a test... set your server rule and see if it helps:

Aggro:SmartAggroList = false
After adding the rule my bots can now hold aggro. Thanks!
  #9  
Old 06-04-2008, 01:22 AM
EvoZak
Sarnak
 
Join Date: May 2008
Location: Midwest
Posts: 72
Default

Just wanted to say thanks to those of you shepherding the bots code along. I've enjoyed using the bots quite a bit and, while not perfect, they are pretty darn good.

C++ isn't my best language either but if you need any help Congdar don't hesitate to throw me a PM.
  #10  
Old 06-24-2008, 05:53 PM
Aramid
Discordant
 
Join Date: May 2006
Posts: 356
Default Emu0.7.0-1118-Source With Bot Code

For anyone interested, I have merged all of the 1118 Changes in with the BOT Code and have successfully compiled it under Debian Linux and Windows C++ 2005 Express. Here is the link for the files... The Makefiles have been setup to include the bot code for Linux compiles.

http://www.mediafire.com/?yzgwlxkgdgz

On another Note, The implementation of fear has caused the Bot code to really spam the so and so is under attack when the mob gets feared away so much that it really lags out the zone bad.

Just an FYI.
__________________
Random Segments of Code....
Closed Thread

Thread Tools
Display Modes

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