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

Development::Bots Forum for bots.

Closed Thread
 
Thread Tools Display Modes
  #571  
Old 06-01-2008, 06:31 PM
BatCountry
Fire Beetle
 
Join Date: Mar 2006
Posts: 24
Default

Why the change to a hard limit on the number of bot groups, out of curiosity?

I realize that if 12 groups isn't enough to take down something, a player's got more problems than just bot count, but why add the hard limit when you were running on a LinkedList before?

If the problem was not being able to iterate through raid groups, this is what I was using for that:

Code:
LinkedListIterator <Group *> gps(RaidGroups);

gps.Reset();

while(gps.MoreElements())
{
    Group *gp = gps.GetData();

    if(gp) {
         // do some stuff here to your new group pointer
         // ...
    }
    gps.Advance();
}
also adding new groups:

Code:
// with your new group "newgroup"
RaidGroups.Append(newgroup);

// then reset any interators going to it
  #572  
Old 06-01-2008, 11:32 PM
Congdar
Developer
 
Join Date: Jul 2007
Location: my own little world
Posts: 751
Default

that's not why I got away from the linkedlist, I just thought that 72 was the max raid in eq anyway.
  #573  
Old 06-01-2008, 11:33 PM
Congdar
Developer
 
Join Date: Jul 2007
Location: my own little world
Posts: 751
Default

I've updated the source and binaries for build 1110
  #574  
Old 06-02-2008, 08:28 AM
cubber
Discordant
 
Join Date: Apr 2006
Posts: 374
Default

There was some discussion earlier in this thread about incorporating this into the main eqemu source as a rule or something. Is this still a possibility, or should we keep searching this 39 page thread for builds?
  #575  
Old 06-02-2008, 08:49 AM
eski2
Hill Giant
 
Join Date: May 2008
Location: sydney
Posts: 177
Default

I noticed the bot entries were in my database when i first installed it although i couldn't figure out what they were for, so i assume it was half done. I've tried replacing my binaries with the ones listed but that just crashes my game so i am not sure how to proceed.

If there's a way to backup my characters and install a version like minilogin that i can solo on and use bots i'd be very interested!
  #576  
Old 06-02-2008, 10:21 AM
quadroplex
Banned
 
Join Date: May 2008
Location: Reno baby YEAH LOL
Posts: 123
Default

1 you need to check through the changelogs and enter the required mysql changes in it before trying to upgrade any of your binaries without those changes as soon as you try zoning in youll crash the bots work fine with minilogin just backup your character_ account, and inventory tables but you dont need to just run the needed mysql statements in the changelogs and itll work fine
  #577  
Old 06-02-2008, 10:22 AM
quadroplex
Banned
 
Join Date: May 2008
Location: Reno baby YEAH LOL
Posts: 123
Default

heck atleast make a forum specificly for this as a alternate version or something hes right searching this thread is a bit of a pain in the ass.
  #578  
Old 06-02-2008, 11:43 AM
BatCountry
Fire Beetle
 
Join Date: Mar 2006
Posts: 24
Default

Quote:
Originally Posted by Congdar View Post
that's not why I got away from the linkedlist, I just thought that 72 was the max raid in eq anyway.
Ah, you may have a point there. Now that you mention it, I seem to remember them having that kind of limit, like the hate list depth, so people involved in stupidly huge raids weren't getting credit or something like that.

I've been working on command sets which operate on the entire raid (including loading and saving intact raids on a per-player basis) which used the linked list iterators heavily. ("#raid load fivegroup" loads the raid I saved as "fivegroup," complete with main tank and second tank flags).
Some of the stuff I've been doing (like adding a pacifist flag so the raid can't attack) I see you've already either been working on or finished.

This stuff still needs a bit of work though, although I think the new movement code for the bots I'm working on will be done in a week or so.

I've just integrated the code in your 1108 release into my codebase (but converted it all to linked list.)
When I update to your 1110 release, I'll switch back to arrays. Shouldn't set me back more than a few hours.
  #579  
Old 06-02-2008, 11:53 AM
BatCountry
Fire Beetle
 
Join Date: Mar 2006
Posts: 24
Default

Gah, five minute edit rule strikes again.

Quote:
Originally Posted by BatCountry View Post
I've been working on command sets which operate on the entire raid (including loading and saving intact raids on a per-player basis) which used the linked list iterators heavily. ("#raid load fivegroup" loads the raid I saved as "fivegroup," complete with main tank and second tank flags).
Some of the stuff I've been doing (like adding a pacifist flag so the raid can't attack) I see you've already either been working on or finished.
I've been simplifying the interface for a lot of commands ("#bot raid order task attack"? really?) to a #bot, #bot group, and #raid command structure, and I've stuck all of the commands into two separate included .h files ("botcommands.h" and "botraidcommands.h") which can be included in "commands.h" to make merging a bit easier, etc.

Let me know if you'd like to work together on this stuff or what things you're working on now so we're not duplicating work.
  #580  
Old 06-02-2008, 12:42 PM
John Adams
Demi-God
 
Join Date: Jul 2006
Posts: 1,552
Default

I would love to see the commands simplified and made more intuitive. Nice work!
  #581  
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.
  #582  
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.
  #583  
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.
  #584  
Old 06-02-2008, 02:54 PM
Congdar
Developer
 
Join Date: Jul 2007
Location: my own little world
Posts: 751
Default

Quote:
Originally Posted by BatCountry View Post
I've been simplifying the interface for a lot of commands ("#bot raid order task attack"? really?) to a #bot, #bot group, and #raid command structure, and I've stuck all of the commands into two separate included .h files ("botcommands.h" and "botraidcommands.h") which can be included in "commands.h" to make merging a bit easier, etc.
#raid should be #bot raid
I think everything should be prefaced with #bot because eventually the emu is going to have it's raid stuff fixed and there may be gm commands like #raid and we don't want to preclude the emu from using them. Just my .02 on the commands.(unless it was just a typo... I see you have #bot group).
  #585  
Old 06-02-2008, 03:09 PM
cubber
Discordant
 
Join Date: Apr 2006
Posts: 374
Default

Quote:
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.
What about a separate release thread on these forums for the bot source and binaries, so it is easier for people to find them and know exactly when it has been updated. This thread is growing fast and sometimes it is easy to miss releases if you don't check every day.

Keep this thread as the discussion thread and only let the people working on the code post in the release thread.
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 05:24 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