LandSandBoat / server

:sailboat: LandSandBoat - a server emulator for Final Fantasy XI
https://landsandboat.github.io/server/
GNU General Public License v3.0
289 stars 574 forks source link

🔨 Enmity handling and info #5125

Open Xaver-DaRed opened 7 months ago

Xaver-DaRed commented 7 months ago

I affirm:

Describe the feature

Our current system to handle enmity may need some improvements.

PR #5123 linked an article which could lead to some better understanding on how enmity works. https://forum.square-enix.com/ffxi/threads/30629-Enmity-System-Explanation-and-Planned-Adjustments?p=402769&viewfull=1#post402769

Several things to try to test in retail would be:

cocosolos commented 7 months ago

Very interesting! Something I noticed from the linked forum post:

Enmity calculation for effect variations For each level there is data known as standard damage which is used for enmity calculation. *This value was made to be almost the same damage value as the baseline value when weapon data is created (240 attack delay sword).

The below is how enmity is calculated at the time of dealing “d” damage: Time-volatile enmity = 240d/standard damage Damage-volatile enmity= 80d/standard damage (Standard damage is obtained based on the level of the monster) In other words, if you are dealing standard damage every 4 seconds, time-volatile enmity is repeatedly decaying from 240 to 0. Also, damage-volatile enmity is 1/3 of the time-volatile enmity (25% of total enmity), and the coefficient value is 80.

Currently the amount of fire power is much higher than the initially set standard, so I feel we need to rectify the situation where it is easy to reach the cap for volatile enmity by revamping the standard damage used for enmity calculations.

Followed by:

Standard damage (time-volatile) First, we are planning to make adjustments to the standard damage. Since we are able to set the standard damage for each level, it will be possible to only adjust this for high levels without affecting other levels.

We seem to be using the old values hard coded. It seems that the new system changes these on a per-level basis.

Edit: I'm also possibly misunderstanding those values!

TeoTwawki commented 7 months ago

Over the years SE modified capping as well as the amounts of CE/VE produced by various spells and actions (one example is debuff spells had their hate reduced).

There are also certain NM behaviors that suggest the "rules" at least can be altered per-mob as well: abnormal decay rates, abnormal capping, abnormal per-actiontype hate (for example certain specific spell generating more hate than normal)

Things got way more complex. And even on normal mobs I've not seen the current modern "normal" cap pinned down. Used to be 10k and then 30k and those were legit, dunno what it is now.

cocosolos commented 7 months ago

Used to be 10k and then 30k and those were legit, dunno what it is now.

Wonder if that is related at all to this:

As to whether increasing this cap will make it so players don’t get stuck at the enmity cap, since it is only possible work size-wise for us to raise the value approximately three times of what it is currently, this is not an effective way to go. While there were suggestions to change the cap values for each job, assuming that the suggestions were based on getting stuck at the cap, if this situation were to arise, it would ultimately boil down to whether you can or cannot maintain the target, so for the current conditions we are currently looking at pairing this with something else.

Not sure what they mean by "work size-wise", but ~30k would be close to max signed 16-bit int, though idk why they'd be using a signed int for that.

cocosolos commented 6 months ago

I was reading through some patch notes and happened across some general enmity changes that might be relevant.

Feb 2014

Enmity generated from dealing damage has been adjusted. Enmity generated from dealing damage to enemies of level 100 or greater no longer accumulates as quickly.

The "Enmity+X" and "Enmity-X" statistics found on equipment have undergone the following adjustments. Those receiving damage from a foe while wearing "Enmity-X" equipment will experience greater enmity reductions, while those wearing "Enmity+X" equipment will experience lesser enmity reductions.

Aug 2014

The maximum value of the equipment attribute “Enmity+” has been increased.

Mar 2015

Enmity Adjustments The enmity cap has been tripled. The amount of enmity gained by dealing damage has been lowered.

  • Enmity generated by healing remains the same. Enmity will now decrease based on the gap between player/pet level/item level and monster level.
  • Abilities that generate a fixed amount of enmity, such as healing magic and elemental magic, are exempt from this change.

That seems to be it other than some job or ability specific changes.