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)

Reply
 
Thread Tools Display Modes
  #1  
Old 06-26-2009, 07:03 PM
gaeorn
Developer
 
Join Date: Apr 2009
Location: USA
Posts: 478
Default aggro radius

I've been noticing that lull/harmony effects do not appear to have the expected effect. In particular, the monk phantom line of disciplines do not appear to reduce assist range. Looking through code, I found this:

Code:
void EntityList::AIYellForHelp(Mob* sender, Mob* attacker) {
        _ZP(EntityList_AIYellForHelp);
        if(!sender || !attacker)
                return;
        if (sender->GetPrimaryFaction() == 0 )
                return; // well, if we dont have a faction set, we're gonna be indiff to everybody
        
        LinkedListIterator<NPC*> iterator(npc_list);
        
        for(iterator.Reset(); iterator.MoreElements(); iterator.Advance()) {
                NPC* mob = iterator.GetData();
                if(!mob){
                        continue;
                }
                float r = mob->GetAssistRange();
                r = r * r;

                if(sender == NULL)
                        return;

                if (
                        mob != sender
                        && mob != attacker
//                      && !mob->IsCorpse()
//                      && mob->IsAIControlled()
                        && mob->GetPrimaryFaction() != 0
                        && mob->DistNoRoot(*sender) <= r
                        && !mob->IsEngaged()
                        )
                {
                        //if they are in range, make sure we are not green...
                        //then jump in if they are our friend
Is there a reason we are squaring the assist range of a mob before deciding to assist?
Reply With Quote
  #2  
Old 06-26-2009, 07:17 PM
ChaosSlayerZ's Avatar
ChaosSlayerZ
Demi-God
 
Join Date: Mar 2009
Location: Umm
Posts: 1,492
Default

I think it could be related how we have a SINGLE value in npc_types for Personal Agro and for Assist range, while looking at spell file you clearly see that ALL lull type spells have as much as 3 diffirent properties - Lull, Frenzy range, and Harmony, each of which supposely does something diffirent...
Reply With Quote
  #3  
Old 06-26-2009, 07:23 PM
gaeorn
Developer
 
Join Date: Apr 2009
Location: USA
Posts: 478
Default

Quote:
Originally Posted by ChaosSlayerZ View Post
I think it could be related how we have a SINGLE value in npc_types for Personal Agro and for Assist range, while looking at spell file you clearly see that ALL lull type spells have as much as 3 diffirent properties - Lull, Frenzy range, and Harmony, each of which supposely does something diffirent...
I don't understand what you are talking about. And not all spells have all 3 types of effects. The spells underlying the higher level monk phantom discs only have the harmony effect.
Reply With Quote
  #4  
Old 06-26-2009, 07:36 PM
ChaosSlayerZ's Avatar
ChaosSlayerZ
Demi-God
 
Join Date: Mar 2009
Location: Umm
Posts: 1,492
Default

Quote:
Originally Posted by gaeorn View Post
I don't understand what you are talking about. And not all spells have all 3 types of effects. The spells underlying the higher level monk phantom discs only have the harmony effect.
ok not all. but spells seem to diffirentiate between lull and frenzy radius, and in some cases harmony.
Reply With Quote
  #5  
Old 06-26-2009, 07:41 PM
gaeorn
Developer
 
Join Date: Apr 2009
Location: USA
Posts: 478
Default

Although I still do not know why the range value in my first post was being squared, I believe I may have found out why the monk phantom disciplines don't work as desired. I'm using a version that is level 69, Phantom Cry. It only has the reaction radius effect (SE_Harmony), whereas lower level phantom discs have reaction radius, frenzy radius and lull effects.

According to this excerpt from the comments on this page:

Quote:
That's exactly how all the monk pacify disc's work. They are designed to split mobs only.
However, you notice they are unresistable.
Any monk that gets this will already be well aware of how they work and how to use it.
The other classes had the biggest adjustment with their OoWar pacify spells since they removed the frenzy radius of all the OoWar pacify spells. That means that the aggro range of the mob is not affected. You can't pacify a mob and walk up near it - it will aggro. Since monks could only ever pacify one mob at a time, they never really got used to pacifying their way through groups of mobs.
It still works great for pulling, but it does take adjusting.
the reaction radius affects assist radius, not aggro radius. But looking at the code, that effect (SE_Harmony) is adjusting aggro radius (frenzy radius, SE_ChangeFrenzyRad, is adjusting assist radius). So from what I am reading, it appears these should actually be frenzy radius = aggro range and reaction radius = assist range. This would have been difficult to determine initially as the level 65 and lower pacify type spells all have both effects. In fact, according to an allakhazam search, all spells that have the frenzy radius effect also have the reaction radius effect.
Reply With Quote
  #6  
Old 06-26-2009, 08:08 PM
KLS
Administrator
 
Join Date: Sep 2006
Posts: 1,348
Default

The reason is to do the range check without the square root.
Reply With Quote
  #7  
Old 06-26-2009, 08:16 PM
ChaosSlayerZ's Avatar
ChaosSlayerZ
Demi-God
 
Join Date: Mar 2009
Location: Umm
Posts: 1,492
Default

KLS, but does Emu code actualy sees the diffirence between frenzy range and assist range?


Also could someone clearfy what then "harmony" value does, since these allready seem to cover both effects?
Reply With Quote
  #8  
Old 06-26-2009, 08:28 PM
gaeorn
Developer
 
Join Date: Apr 2009
Location: USA
Posts: 478
Default

Quote:
Originally Posted by KLS View Post
The reason is to do the range check without the square root.
I see. Still, I think the frenzy and reaction radius effects are reversed.

Quote:
Originally Posted by ChaosSlayerZ View Post
KLS, but does Emu code actualy sees the diffirence between frenzy range and assist range?


Also could someone clearfy what then "harmony" value does, since these allready seem to cover both effects?
In answer to your first question, yes the code does different effects for both. In answer to the second, the SE_Harmony effect currently reduces the aggro radius of the mob, but does not reduce the assist radius of the mob.
Reply With Quote
  #9  
Old 06-26-2009, 08:51 PM
ChaosSlayerZ's Avatar
ChaosSlayerZ
Demi-God
 
Join Date: Mar 2009
Location: Umm
Posts: 1,492
Default

Quote:
Originally Posted by gaeorn View Post
I see. Still, I think the frenzy and reaction radius effects are reversed.

.
well we can test this easily enough by making 2 custom spells one just with frenzy and one just with lull.

Quote:
In answer to your first question, yes the code does different effects for both. In answer to the second, the SE_Harmony effect currently reduces the aggro radius of the mob, but does not reduce the assist radius of the mob.
ok so then:

Frenzy Radius - distance from which mob will agro
Lull - distance from which mob will assist
Harmony - ALSO distance from which mob will agro?

so Harmony just repeats Frenzy range effect?
Reply With Quote
  #10  
Old 06-26-2009, 09:00 PM
gaeorn
Developer
 
Join Date: Apr 2009
Location: USA
Posts: 478
Default

Quote:
Originally Posted by ChaosSlayerZ View Post
well we can test this easily enough by making 2 custom spells one just with frenzy and one just with lull.
Great, except which one is supposed to do what on live? The problem isn't knowing which does what on the emulator. One can look at the code and see that reaction radius = harmony = aggro radius and frenzy radius = assist radius. How do you propose we make those custom spells on live? That is where we need to figure it out.

Quote:
Originally Posted by ChaosSlayerZ View Post
ok so then:

Frenzy Radius - distance from which mob will agro
Lull - distance from which mob will assist
Harmony - ALSO distance from which mob will agro?

so Harmony just repeats Frenzy range effect?
Harmony and lull are both aggro radius and frenzy is assist radius according to the emulator code. I suspect harmony and frenzy should be reversed to match live.
Reply With Quote
  #11  
Old 06-26-2009, 09:20 PM
KLS
Administrator
 
Join Date: Sep 2006
Posts: 1,348
Default

Honestly it's code that I haven't ever really touched, it was like that when I got here and other than some minor changes it's mostly the same.

If something didn't work right it wouldn't completely surprise me.
Reply With Quote
  #12  
Old 06-26-2009, 09:23 PM
ChaosSlayerZ's Avatar
ChaosSlayerZ
Demi-God
 
Join Date: Mar 2009
Location: Umm
Posts: 1,492
Default

Quote:
Originally Posted by gaeorn View Post
Great, except which one is supposed to do what on live? The problem isn't knowing which does what on the emulator. One can look at the code and see that reaction radius = harmony = aggro radius and frenzy radius = assist radius. How do you propose we make those custom spells on live? That is where we need to figure it out.


Harmony and lull are both aggro radius and frenzy is assist radius according to the emulator code. I suspect harmony and frenzy should be reversed to match live.
wait wait, you saying yourself in that post that Frenzy radius effect was removed from OoW+ lulls.
you also saying that effects on emu are reversed.

which means if we take a LULL only spell and it does NOT lull - then you have proved that emu uses these effects in reverse.
Reply With Quote
  #13  
Old 06-26-2009, 09:35 PM
gaeorn
Developer
 
Join Date: Apr 2009
Location: USA
Posts: 478
Default

Quote:
Originally Posted by ChaosSlayerZ View Post
wait wait, you saying yourself in that post that Frenzy radius effect was removed from OoW+ lulls.
you also saying that effects on emu are reversed.

which means if we take a LULL only spell and it does NOT lull - then you have proved that emu uses these effects in reverse.
I don't see how this tells us what the effects actually are on live, which is all we need to know. In any case, I am already pretty sure the two effects are reversed on the emulator.

Quote:
Originally Posted by KLS View Post
Honestly it's code that I haven't ever really touched, it was like that when I got here and other than some minor changes it's mostly the same.

If something didn't work right it wouldn't completely surprise me.
I'm going to do a bit more research to back up my theory that the effects are reversed before I post patches to swap the two around.
Reply With Quote
  #14  
Old 06-26-2009, 09:48 PM
ChaosSlayerZ's Avatar
ChaosSlayerZ
Demi-God
 
Join Date: Mar 2009
Location: Umm
Posts: 1,492
Default

Quote:
Originally Posted by gaeorn View Post
I don't see how this tells us what the effects actually are on live, which is all we need to know. In any case, I am already pretty sure the two effects are reversed on the emulator.
i will trust Alakhazam on this and go with Ala shows as frenzy and lull

look

http://everquest.allakhazam.com/db/s...&action=search

you see that lower level spells all have:

Frenzy Radius
Reaction Radius

then you see Pacify added (whats that do now?)

then on lev 67 Placate spell you see 2 of effects dissapear and only Reaction Radius remains.

this spell IS in Titanium spell list.
So take this spell, run Emu and cast it. - see which of the two it reduces.
Here is your answer.
Reply With Quote
  #15  
Old 06-26-2009, 10:03 PM
gaeorn
Developer
 
Join Date: Apr 2009
Location: USA
Posts: 478
Default

Quote:
Originally Posted by ChaosSlayerZ View Post
i will trust Alakhazam on this and go with Ala shows as frenzy and lull

look

http://everquest.allakhazam.com/db/s...&action=search

you see that lower level spells all have:

Frenzy Radius
Reaction Radius

then you see Pacify added (whats that do now?)

then on lev 67 Placate spell you see 2 of effects dissapear and only Reaction Radius remains.

this spell IS in Titanium spell list.
So take this spell, run Emu and cast it. - see which of the two it reduces.
Here is your answer.
You simply are not understanding me. I KNOW what it does in the emulator. I've read the c++ code for it already.

What I DON'T know is:
On live, is reaction radius the aggro radius or the assist radius? The same for frenzy radius. Does it affect aggro or assist radius on live?

I don't see how doing anything at all on the emulator will answer that since the emulator could be wrong.
Reply With Quote
Reply


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 07:32 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