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

Development::Bots Forum for bots.

Closed Thread
 
Thread Tools Display Modes
  #1  
Old 05-29-2008, 11:03 AM
BatCountry
Fire Beetle
 
Join Date: Mar 2006
Posts: 24
Default

Quote:
Originally Posted by Congdar View Post
There may be something I can do here, but it would lose what little staggering there is now and all the bots would end up in one spot.
I've made some progress in this direction on my server (during the course of completely rehashing the bot command structure). The trick seems to be to pull out the staggering code you've got that is bypassing the movement system, then make the bots follow each other in order, forming a train.

If you keep the follow distance short enough, they stay together enough to avoid being a problem for agro or navigation without them getting in your way or making it impossible to click target one of them (or around one of them).
  #2  
Old 05-29-2008, 11:24 AM
davood3
Fire Beetle
 
Join Date: May 2008
Location: n
Posts: 9
Default

Divine Arbitration from epic, and from AA both seem to land on the bots. Whereas word of vivication does not, nor does any other instant casted group heal.

The instant group heal aa hand of xxxx seems to hit bots just fine.


When I was referring to tinting, basically you have xxx armor that is tinted, you give it to the bot, and it appears as the base colour, not the actual armors colour, so rubicite will appear as regular grey plate, etc. whereas robes appear properly tinted, until you resummon the bot, then they lose their tinting.

I will investigate the code, and eventually create a diff for the guild tag thing, I don't know how I'd go about making them respond to tells or appear in a /who all though.
  #3  
Old 05-29-2008, 11:25 AM
davood3
Fire Beetle
 
Join Date: May 2008
Location: n
Posts: 9
Default

any chance of sharing that with us bat? hehehe. that sounds like the perfect solution.
  #4  
Old 05-29-2008, 11:27 PM
BatCountry
Fire Beetle
 
Join Date: Mar 2006
Posts: 24
Arrow

Quote:
Originally Posted by davood3 View Post
any chance of sharing that with us bat? hehehe. that sounds like the perfect solution.
Well, trivially, in commands.cpp under the bot follow command:
Code:
for(int i=0; i<MAX_GROUP_MEMBERS; i++) {
	if(g->members[i] != NULL && g->members[i]->IsBot()) {
		//--BAT : Forms trains out of the group instead of them all dogpiling your face
		if(i > 0)
			g->members[i]->SetFollowID(g->members[i-1]->GetID());
		else
			g->members[i]->SetFollowID(c->GetID());
		g->members[i]->Say("Following, %s.", c->GetName());
	}
}
More advanced following code avoiding jitter and jumping as much as possible and letting them look like they're really running is what I'm working on right now. Shouldn't prove too much of a problem.

Making them actually behave sensibly when you stop is another thing.

At least formally, you'd probably like them to stop at some point behind you, catch up with you, fan out behind you without getting in the way of other party members, and avoid aggroing anything by fanning out too far. In theory, you would take your heading and transform a point behind you a certain distance, then have each party member take a point of the compass behind that point and move a set distance from it, avoiding walking through (or against) walls or spreading out so far that they can't see what's going on.

That part is quite a bit harder. I think Congdar's code for that is a pretty good solution to keeping them out of your way but still in a position where they have line-of-sight to anything you might target, but as he says in his code comments, it makes them behave like ugly bots rather than like natural party members.

Ideally you'd have the things find the nearest AI node behind you and form up around that, then move themselves so they had line of sight on whatever you might target as soon as you engaged, but that would be pretty much impossible without some rather sophisticated FPS-stype AI operating on the AI node trees, which is probably more effort than anybody would want to go to just to make them look a bit more natural.
  #5  
Old 05-29-2008, 10:42 PM
Davood
Discordant
 
Join Date: Jan 2005
Posts: 488
Default

ok

if you change the bot's lastname ... thats the guild tag.. haha.

so you can easily update it that way.
__________________
----------
Demon Overlord of Alakamin
skype @ davoodinator
  #6  
Old 05-29-2008, 11:33 PM
BatCountry
Fire Beetle
 
Join Date: Mar 2006
Posts: 24
Red face

Ugh, 5 minute edit rule.

I was playing with this last evening and just started tinkering again. There's really no sensible way to make the bots fan out when the group is at rest without risking pulling aggro, walking into somebody else's face, teleporting them into a wall, etc, without making them aware of the path grid.

The follow train seems to work well on my system, although I'm beefing up the movement code so it looks a bit more natural and makes them less fidgety when you're moving only short distances (making a range in which they decide they don't need to follow, only following if they get too far away).

I'll tinker with these ranges and see what kind of results I get and post here with them. Part of the problem with how sticky the bots seem to be is the unit size you're using.

Code:
if(dist2 >= 50)
{
	if( dist2 >= 100)
		speed = GetRunspeed();
	CalculateNewPosition2(px,py,follow->GetZ(),speed);
}
Remember that you're using DistNoRoot, so it's the square of the actual distance between the bot and its follow target, meaning they want to hug you. Root 50 is about 7 units, which is not more than one or two steps.
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 09:54 AM.


 

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