Go Back   EQEmulator Home > EQEmulator Forums > Support > Support::Windows Servers

Support::Windows Servers Support forum for Windows EQEMu users.

Reply
 
Thread Tools Display Modes
  #1  
Old 07-26-2011, 05:39 PM
strider51
Sarnak
 
Join Date: Jan 2011
Posts: 77
Default Tank bots and Melee Player Chars.

Hello,

I recently posted about this in another thread, but have confirm this issue. I looked around in the code at where the mob's choose a target to attack, but thought someone else may have a better indication of where this is. (is it in mob.cpp or aggro.cpp? or somewhere else. i got alot of aggro list building,b ut can't find the "attack")

The aggro list seems to be fine. I can command #getaggro (or whatever the command was), and it shows me (melee player char) as on the list, at 0, 0.

However as soon as the player char is in melee range of the bot, regardless of the aggro list the player char is attacked. So this makes it difficult to play classes like rogue, berz, etc.

Can anyone point me to the area where the mob "picks" a char to attack, or is this done clientside?

also I should note: I tried this out with 2 player chars, and the aggro works perfectly. It's only with bots.


Steps to repeat this issue.

1. create a character, and a tank bot
2. either aggro and attack , or just command #bot group attack on a mob
3. Stand within melee range of the mob
4. move in and out of melee range to notice the effects
5. check your aggro list with the GM command to confirm that you are on the bottom.

I've confirmed that the mob will always attack the player char. (not sure if this is intended)

thanks,
Reply With Quote
  #2  
Old 07-26-2011, 06:01 PM
lerxst2112
Demi-God
 
Join Date: Aug 2010
Posts: 1,743
Default

Look at Mob *HateList::GetTop(Mob *center) and the SmartAggroList rule. If that's on it will always favor a client over pet/bot unless I'm reading it incorrectly.
Reply With Quote
  #3  
Old 07-26-2011, 06:31 PM
strider51
Sarnak
 
Join Date: Jan 2011
Posts: 77
Default

Thanks lex. Always Helpful
Ill look into this
When I get home
Reply With Quote
  #4  
Old 07-26-2011, 08:06 PM
strider51
Sarnak
 
Join Date: Jan 2011
Posts: 77
Default

I commented out the following line of code, recompiled and now the Bots will tank, and I can be a rogue or berserker.

I'm not sure of the complete side effects, but this is a perfect change for me, since I want to make a 1 groupable server where I can be a melee damage dealer and not have to tank!

Edit: I should mention. This is in hate_list.cpp line 318 with svn release 1985.

Edit2: This also makes pets Tank... (wow I wish this was always this way, i always thought that pets should be able to tank!!!)


Code:
			if(cur->ent->IsClient()){
				
				if(cur->ent->CastToClient()->IsSitting()){
					aggroMod += RuleI(Aggro, SittingAggroMod);
				}

				if(center){
					if(center->GetTarget() == cur->ent)
						aggroMod += RuleI(Aggro, CurrentTargetAggroMod);
					if(RuleI(Aggro, MeleeRangeAggroMod) != 0)
					{
						if(center->CombatRange(cur->ent)){
							aggroMod += RuleI(Aggro, MeleeRangeAggroMod);

							if(currentHate > hateClientInRange || cur->bFrenzy){
								hateClientInRange = currentHate;
								//topClientInRange = cur->ent;
							}
						}
					}
				}

			}
Reply With Quote
  #5  
Old 10-22-2011, 10:48 AM
Rhodan
Hill Giant
 
Join Date: Oct 2006
Posts: 179
Default

I take it this change has not made it into source? Is that a concious decision or oversight?

It's fine either way since the above poster has the solution and it's very easy to do, just wondering if the current source with the client always at the top of aggro was offiically the way things are supposed to be.
Reply With Quote
  #6  
Old 10-22-2011, 11:20 AM
Congdar
Developer
 
Join Date: Jul 2007
Location: my own little world
Posts: 751
Default

concious decision. reming out that line breaks it so that you will never get aggro if you are a client. set your database to use smartaggro:false
then if you manage your aggro, your bot tank should maintain aggro.
__________________
The Realm
Reply With Quote
  #7  
Old 10-23-2011, 11:18 AM
bad_captain
Developer
 
Join Date: Feb 2009
Location: Cincinnati, OH
Posts: 512
Default

I'm testing out a bunch of changes including a fix for this issue. I just need to check a few more things the I will commit it. I will probably add a rule for this, just in case people dont want this behavior.
Reply With Quote
  #8  
Old 10-29-2011, 01:28 PM
Rhodan
Hill Giant
 
Join Date: Oct 2006
Posts: 179
Default

turning off smartaggrolist did it for me. Bots can tank
Reply With Quote
Reply

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