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

Development::Development Forum for development topics and for those interested in EQEMu development. (Not a support forum)

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #1  
Old 11-25-2008, 02:58 PM
Romai
Fire Beetle
 
Join Date: Mar 2006
Posts: 6
Default Heal Aggro

I've been hearing that the main issue atm with heal aggro is the fact that you get too much aggro for healing someone who is barely even on the hate list.

For example, a warrior pulls 3 mobs, does a bit of damage to each of them (lets say < 1000) and then you heal a monk who was standing near by for 2000 and the mobs jump you.

In order to combat this, I was thinking we could change the following code in entities.cpp. I'd also like to point out that I'm not 100% sure if I'm interpreting how this code section works correctly, so please tell me if I'm wrong.

Current:
Code:
void EntityList::AddHealAggro(Mob* target, Mob* caster, int16 thedam)
{
...
  if(caster){
	if(!cur->CheckAggro(caster))
		cur->AddToHateList(caster, 1);
	else
		cur->AddToHateList(caster, thedam);
  }
...
}
To: (changing the else branch in the above code)
Code:
else {
	thedam = thedam / (((cur->GetHateAmount(cur->GetHateTop()) - cur->GetHateAmount(target))*1)+1);
	cur->AddToHateList(caster, thedam);
}
My idea is to take the current amount that would be added into the hate list and scale it depending on where the target being healed is on the hate list. It would divide the hate by the difference in hate level from the top of the list to the target, +1 to avoid a divide by 0 and to ensure that it never actually increases the hate. The *1 is there as a placeholder mostly to allow it to be tuned easily. > 1 will lower the aggro more, < 1 will lower the aggro less. If this was actually used, I'd probably put that into a rule to make it easier to maintain.

It might not be exactly what we need, but it should at least provide some relationship between aggro generation and the targets position on the hate list.
Reply With Quote
 


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 11:17 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