PDA

View Full Version : Game Mechanics: More ClassicQuest: NPC Hate mechanics research and what's still wrong on P99


Dolalin
09-30-2018, 06:19 AM
Let's talk about NPC hate.

Torven on EQEmulator.org has done some meticulous research on NPC hate mechanics since Sony introduced their "Hate Meter", making it possible to probe NPC hate mechanics on Live EQ in great detail.

I haven't seen it brought up before? Maybe I just haven't read enough.

His post can be found here:

http://www.eqemulator.org/forums/showthread.php?t=39819

It is amazing to note that many things I remembered from EQLive are faithfully documented in his post, finally. If implemented properly this would really change things here.

Some stunning stand-out highlights (there are more, and good charts):

Mallets shouldn't be a thing:

The non-damage hate from spells casted from items is capped at 400, unless the spell on the item is castable as a normal spell by the class of the item user.

E.g. the snare whip from Sebilis does the full hate amount if a ranger wields it. Also the shaman slow clickable from PoTime does full hate. Sony apparently just checked for class availability of spells in their spell hate routine instead of passing a 'isproc' parameter. Explains why most weapons use non-castable spells.


Items like WESS generate too much hate:

Hate from procs is capped.

From the February 21, 2001 patch notes:


— We reduced the amount of hate that can be caused by a proc. Due to
the high proc rates at upper levels, the amount of hate generated from
procs, and the spells that were selected for those procs, made keeping
the attention of the creature much too easy a task for the tank.
Simply, it nearly eliminated the challenge of keeping a foes attention
at levels above 50.


This affects not just stuns, but also slows and snares and presumably any of the effects with hate that scales with NPC hitpoints. The scaling spell hate portion of a proc is capped at 400-- any damage component will stack. I used a swarmcaller on a 3600 hp NPC and the proc did ~236 hate. The proc on a 11.5k hp NPC did 400 hate.

Off-hand attacks might generate too much hate:

Off-hand attacks do not apply the hate from the 1h damage bonus, which is expected since off-hand attacks don't have a damage bonus.

Some old research claimed otherwise, but it's wrong or was changed later so I'm noting it here.


Proximity hate and Sitting hate isn't quite right:

The hate bonus for being in melee range is...

For NPCs with less than 4000 hitpoints, bonus = 100.
For NPCs with 4000 to around 60k hitpoints, bonus = (maxHP - 4000) / 15 + 100.
After roughly 60k hitpoints, bonus = 250 + hitpoins / 100 with a cap of 2250.

The hate bonus/aggro threshold for sitting is...

The sit bonus is different depending on if you are inside or outside of melee range.

The inside melee range bonus is thus:

Up to around 13k hp, the sit bonus is equal to a non-damaging detrimental spell (hitpoints / 15) with a minimum of 15 instead of 25.
After ~13k hp, the NPC's sit bonus actually starts to decline down to 0 at 100,000 hitpoints with the function bonus = -hitpoints / 100 + 1000.

The outside of melee range sit bonus is also equal to a non-damaging detrimental spell (hitpoints / 15) but it caps at 1000 and stays there.

Trains are too carebear on P99:

NPCs calling for help will cause them to social aggro on players even after they are already aggro on another player.

There is an issue on the emus where, for example, you can aggro an NPC, then drag it nearby another NPC on the same faction that is engaged with another player, and you will not get on the hate list of that second NPC. This is incorrect behavior. NPCs will share who they hate with each other even after entering combat.


Misc others (like Ripostes not generating enough aggro):

Misc errors in the emu code: (all of these are unlike EQLive)

Demonstar may have fixed these already very recently or will soon, but I'll mention these for illustrative purposes.

The emu code is/was dividing up witness hate between every NPC that sees the cast. This is incorrect and trivializes healing aggro in multi-pulls.

The emu code is/was reducing first-to-aggro witness hate to 1/3rd the normal value. No idea why this is there.

Ripostes in the emu code were specifically made to not aggro. If the mob is hitting you, it's already aggro on you; there was no reason to do this. Using riposte discs to build a large amount of hate used to be something done on raid bosses. (hell, maybe it still is, I don't play Live)

Mezed and stunned NPCs are exempt from witness hate on the emu. It should be reduced, but non-zero.

March 6, 2001 patch note:

– NPCs that are mesmerized or stunned will now only add a very small
amount of hate when they see you cast beneficial spells on their
enemies. Prior to this, they would add full hate when they saw you do
this. This is why NPCs would always jump the cleric after breaking Mez.

Hill Giants and Undead, and others (dragons?) should constantly check their prox for new targets to hate:

The permanent hate bonus for aggroing most NPCs by proximity is 20 or 25, depending on the NPC.

If you run up to most NPCs and let them hit you first, you'll have either 120 or 125 hate.

An NPC will add everybody that it's aggressive to and are in aggro range of it to its hate list when its proximity aggro routine is executed.

This means that when an NPC spawns on top of multiple players, everybody within the NPC's aggro radius will get on the hate list simultaneously. Also, if you run multiple characters in range of the NPC between the periods the NPC checks for players, everybody in range gets on the hate list. After the NPC is aggro, it will stop checking its aggro radius.

Some NPCs continuously (endlessly) check for players in melee range (not full aggro range) to add to their hate lists even after aggroing on a player. (usually undead)

This used to be much more common in the classic world before Sony revamped all the zones. It's still common in Kunark, undead NPCs, fearplane, and other places. Players who first-aggro NPCs this way will still get the 20 or 25 hate applied when they aggro. The result of NPCs having this ability is that you can train them on to people who did not touch them by running over people if you have very little hate on the NPC. This is very much classic behavior. (see Fansy the bard)

Dolalin
09-30-2018, 06:51 AM
Clickable items such as such as the midnight mallet and puppet strings are also subject to the same 400 hate cap.

Jan Jensen
09-30-2018, 11:04 AM
Roots generate far too much agro.
Heals don't generate enough agro.

Dolalin
09-30-2018, 11:19 AM
I'll post the bits Jan is referring to because they're juicy too:



Heal hate = 2/3rds the amount healed excluding crit, focus, and AA portions; capped at 800 on 1-50 targets, and 1500 on 51+ targets.

Relevant patch notes:

March 6, 2001
– Hate from heals is also now calculated at a lesser number than the
number of hitpoints healed. Previously, healing one hitpoint would
cause one point of hate. Now, healing 3 hitpoints will cause 2 points
of hate.

February 21, 2001
two separate caps have been placed for targets level
50 or below, and 51 or above. Heal spells will generate significantly
less hate for targets below level 51 than those at or above that level.

Dev quote: (mentioned here http://www.eqclerics.org/forums/showthread.php?t=2452)
A team member has asked that we clarify the changes to the way hate is awarded in healing. The important point that may not have been clear below is that there is a cap on the amount of hate that can be awarded for any particular heal spell. For a target below level 51, no heal spell can generate more than 800 hate, regardless of the number of hitpoints healed. For targets level 51 or above, the cap is higher, but does not approach the total hitpoints of a fully buffed warrior.
On EQLive it used to be 1 = 1 like damage, but changed to 2/3rds in 2001, and remains so today. The highest level character I tested heal aggro on was level 96.

Heal over time spells and roots are all 10 hate.

Many/most buffs are a flat 9 hate, even if they have a heal component.

Resist buffs, cleric hitpoint buffs, see invis were 9. Even when the cleric hitpoint buff resulted in healing, the hate value was still 9. Skin like wood was 25 for whatever reason. I didn't test very many buffs.


Don't know if these are implemented as such on P99 already. I'll let a Dev comment.

For roots though, it should be noted that Root Nets shouldn't be giving nearly the amount of hate they do on P99.

Root nets, Mallets, Puppet strings... all bogus here. Shouldn't be nearly so powerful.

Pringles
09-30-2018, 12:50 PM
Do you know how much hate these items generate on p1999? A full mallet at 400 hate per click is 2000 hate. Or 3 warrior epic procs . This seems in line with what I've seen in-game. Root nets don't give that great of agro here it's just most people have so many. One charge will overpower someone's initial agro for instance but require a lot more for bladestoppered etc mobs.
Heals have a witness check to see if the mob notices you healing a PC or not. Which might explain why think heal agro is not enough. This was a classic change implemented last patch or the one before I forget, it's been awhile since either :P

Raev
09-30-2018, 01:23 PM
I did some tests and if memory serves most debuff spells are at about 800 hate here. But it's worse than that, because Torven's values also increase the hate for debuffs on bosses up to 1200 or so. So rather than 1 debuff per mallet/orb click, it should be 1/3. Warriors had pretty decent threat on TAKP, although I did die on my shaman occasionally, but they all hit 2x SoD/BoC.

It's too bad Project 1999 has no active developers, because these changes would hugely balance Warriors vs Knights. Proper hate mechanics should also make zone pulling significantly more difficult. Spells cast out of melee range on a belly caster don't generate hate on TAKP, so pulling for example Aary out of a train required some luck. Throw in witness chance high prox hate and no one can 'rip' trains either.

It wouldn't surprise me if Project 1999ers can figure out how to zone pull anyway, but it should be really hard. Verant clearly intended it to be impossible, after all.

Dolalin
09-30-2018, 01:40 PM
Proper hate mechanics should also make zone pulling significantly more difficult. Spells cast out of melee range on a belly caster don't generate hate on TAKP, so pulling for example Aary out of a train required some luck. Throw in witness chance high prox hate and no one can 'rip' trains either.

Completely agreed, this should be in.

Dolalin
10-04-2018, 08:50 AM
It occurs to me that the proper implementation of the above Proximity Hate mechanics would fix classic Bard charm-swarm kiting:

It's when a bard charms a mob and sends it against a pack of its friends. The pack of friends quickly burns the mob down, but the bard breaks charm (boots of the mosquito work well for that) before the mob dies, charms another to send back at the "swarm" and dots the first pet down for full xps and then repeats with the next pet and so on.

http://eqshadowknight.net/archive/index.php/t-7631.html

This is only possible when the charmed mob is hated more for being in melee range.

Rygar
10-04-2018, 10:19 AM
It's too bad Project 1999 has no active developers

While I get what you are saying here (lack of mechanic type updates, see almost exclusively database type updates being done recently), that does not necessarily mean its true.

I have noticed in the past that Haynar or Rogean doesn't always post 'Fixed, Pending Update' in the bugs section. Is entirely possible they have been making updates behind the scenes and don't want to give players a heads up to prep for mechanics changes.

While Haynar may be active on TakP, its possible as he codes in changes there he may also translate relevant info to P99.

Dolalin
10-05-2018, 05:50 AM
I have noticed in the past that Haynar or Rogean doesn't always post 'Fixed, Pending Update' in the bugs section. Is entirely possible they have been making updates behind the scenes and don't want to give players a heads up to prep for mechanics changes.

Anything is possible. But Nilbog just posted in the RnF thread lamenting that they haven't had a patch for almost a year for his earthquake automation to be rolled out. That doesn't make it sound like there's active development behind the scenes, unless they're just waiting on Chardok 2.0 to be done.

I also haven't seen Haynar post in ages.

Rygar
10-05-2018, 07:33 AM
Anything is possible. But Nilbog just posted in the RnF thread lamenting that they haven't had a patch for almost a year for his earthquake automation to be rolled out. That doesn't make it sound like there's active development behind the scenes, unless they're just waiting on Chardok 2.0 to be done.

I also haven't seen Haynar post in ages.

Uhhhh.... here was that post you are mentioning:
oic, sorry about that.

I've been in North Carolina this week helping with issues related to Hurricane Florence. Soo, I was not at home to notice the simulated respawn alert.

This system is supposed to be automated, but we haven't had a patch since last year. So to date, I've just rolled 2 datetimes in a local alert system.

Should be back within a couple weeks.

I see no lamenting just a statement of fact that upon next patch his earthquake system will have some improvements.

And lamenting means 'express regret or disappointment over something considered unsatisfactory, unreasonable, or unfair.' I didn't feel that come across at all.

Dolalin
10-05-2018, 11:43 AM
I dunno that is my reading between the lines. I'm sure he'd have wanted it patched sooner if possible since it would be less work for him. But I'd let him speak for himself once he is done being a hero in NC :D

Dolalin
10-06-2018, 05:01 AM
Sitting hate isn't fully correct in that post, there is one missing piece: An NPC in flee mode should return to smack someone if they sit down.

Oct 09 2001 at 5:42 PM
Well I have seen a few mention that this mob , along with others , are hard to catch and finish bc of them being sowed. Heres a trick I have learned , it has worked with anything I have tried it with , when he starts running and you cant keep up for some reason just sit down , he will think you are an easy mark and come back for you . When he is in range stand back up and hit him , continue if needed til your able to keep up . Of course not always an option if you have to becareful with adds .

http://everquest.allakhazam.com/db/npc.html?id=2596#m100266734142284

Elerial
10-09-2018, 12:14 AM
That's how you killed mobs with ghoul root on live when in flee mode and you were rooted. You sat down. More dmg to you, but less chance of adds.

Sitting down while mob flees does absolutely nothing on p99.

kaev
10-09-2018, 12:48 AM
That's how you killed mobs with ghoul root on live when in flee mode and you were rooted. You sat down. More dmg to you, but less chance of adds.

Sitting down while mob flees does absolutely nothing on p99.

empty quotin' this for truth and justice and mom and apple pie!

Pringles
10-09-2018, 03:13 PM
Sitting hate isn't fully correct in that post, there is one missing piece: An NPC in flee mode should return to smack someone if they sit down.

Oct 09 2001 at 5:42 PM


http://everquest.allakhazam.com/db/npc.html?id=2596#m100266734142284

Should make a new thread for this otherwise it will just get overlooked more than likely.

Rygar
10-10-2018, 05:56 AM
Should make a new thread for this otherwise it will just get overlooked more than likely.

https://www.project1999.com/forums/showthread.php?t=304581

Dolalin
05-29-2020, 03:05 AM
Hey Haynar, I know you merged a lot of these in already, but is this one in yet? I think it would really fix a lot of raid pulling / training cheese on P99. It seems like, according to Torven, you shouldn't be able to run two trains of allied-faction mobs past each other without them sharing their hate lists with each other (eg, separate wtov / ntov trains should share their hate lists when they run past each other):


NPCs calling for help will cause them to social aggro on players even after they are already aggro on another player.

There is an issue on the emus where, for example, you can aggro an NPC, then drag it nearby another NPC on the same faction that is engaged with another player, and you will not get on the hate list of that second NPC. This is incorrect behavior. NPCs will share who they hate with each other even after entering combat.