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

Development::Bots Forum for bots.

Closed Thread
 
Thread Tools Display Modes
  #556  
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.
  #557  
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.
  #558  
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
  #559  
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.
  #560  
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.
  #561  
Old 05-30-2008, 01:49 AM
eski2
Hill Giant
 
Join Date: May 2008
Location: sydney
Posts: 177
Default

Quote:
Originally Posted by GeorgeS View Post
The problem I noticed was I could not move in game fwd/back, but could turn around. Any ideas?

GeorgeS
where you getting the message that you were being moved to a safe point? that's what i was seeing.
  #562  
Old 05-30-2008, 03:11 AM
eski2
Hill Giant
 
Join Date: May 2008
Location: sydney
Posts: 177
Default

Quote:
Originally Posted by GeorgeS View Post
The problem I noticed was I could not move in game fwd/back, but could turn around. Any ideas?

GeorgeS
where you getting the message that you were being moved to a safe point? that's what i was seeing.
  #563  
Old 05-30-2008, 11:06 AM
Congdar
Developer
 
Join Date: Jul 2007
Location: my own little world
Posts: 751
Default

Quote:
Originally Posted by GeorgeS View Post
The problem I noticed was I could not move in game fwd/back, but could turn around. Any ideas?

GeorgeS
The only time ive experienced this is when I have zoned in under the world, or slightly under the world using #goto x, y, z and the z was just an inch under the world. The bot code doesn't specifially use zoning code or zoning xyz coords. Maybe the db zonepoints need to be updated for the zone you are in?
  #564  
Old 05-30-2008, 12:19 PM
BatCountry
Fire Beetle
 
Join Date: Mar 2006
Posts: 24
Default

Either that or your strength buffs have worn off.

No joke, I've done it before.
  #565  
Old 05-30-2008, 12:35 PM
eski2
Hill Giant
 
Join Date: May 2008
Location: sydney
Posts: 177
Default

I'm not sure this is the right approach. If i use those three files, the problem occurs, if i don't, it doesn't, if i do it comes back and so on. It's nothing to do with buffs. I can use goto or zone to alter my coords, i can change my size using #size but i can't get around this issue. I am unable to comment on it being an incompatibility with the database as i don't see anything that marks the version name or number.

However, if georgeS and i get the same symptoms when we use those 3 files, and our systems work as soon as we stop doing it, then i think there's more going on. I can't investigate, i don't have the skills but if anyone working on that code could do so, it would be much appreciated.
  #566  
Old 05-30-2008, 12:38 PM
Congdar
Developer
 
Join Date: Jul 2007
Location: my own little world
Posts: 751
Default

I've updated the source and binaries with the workaround for Group Heals. There are many Cleric and some Paladin group heals that report as ST_GroupTeleport for some reason.
I also made a change to trading that may fix the refresh on appearance when giving items to the bots.

My changes are running on The Realm server. If you can log in there and still get stuck then I can look at log files to see why.
  #567  
Old 05-31-2008, 03:26 AM
eski2
Hill Giant
 
Join Date: May 2008
Location: sydney
Posts: 177
Default

I'm running whatever came with the minilogin package. Are those three files incompatible?
  #568  
Old 05-31-2008, 03:44 AM
Congdar
Developer
 
Join Date: Jul 2007
Location: my own little world
Posts: 751
Default

yes, incompatible.

your loginserver.ini file should look something like this:
Code:
[LoginServer]
loginserver=192.168.10.241
loginport=5999
worldname=Congdar's World
worldaddress=192.168.10.241
locked=false
account=
password=

[WorldServer]
Defaultstatus=
Unavailzone=

[ChatChannelServer]
worldshortname=
chataddress=
chatport=

[LoginConfig]
ServerMode=MiniLogin
ServerPort=5999
and you should use the *.conf files that come from the main download of the win32 binaries(not source). Only use the minilogin.exe from that zip file.
  #569  
Old 05-31-2008, 11:59 AM
eski2
Hill Giant
 
Join Date: May 2008
Location: sydney
Posts: 177
Default

Is there any way i can use the bots with minilogin then? My database is ready to i think.
  #570  
Old 05-31-2008, 01:25 PM
Congdar
Developer
 
Join Date: Jul 2007
Location: my own little world
Posts: 751
Default

if you can get the emu up and running with minilogin, then the only thing you need to do is copy in the bot binaries.
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 09:38 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