HorizonFFXI / HorizonXI-Issues

Issue Tracker for HorizonXI
14 stars 1 forks source link

🐛[BUG][Combat] Elemental Staff WS sometimes hit for 0 #709

Open TiberonKalkaz opened 1 year ago

TiberonKalkaz commented 1 year ago

What does this bug affect? Elemental Staff WS sometimes hit for 0

Steps to Reproduce Use the elemental staff ws - occasionally will hit for 0. Dmg which shows over the mobs head also says 0 (not miss).

Expected behavior If its a miss, should say miss in logs and via pop up dmg. Its an elemental dmg ws, not a hybrid - so it should also never miss unless era+

Its more likely that there is a nil getting hit on occasion (perhaps resist fcn) which is causing the 0 dmg return.

Screenshots image

Setup Information ver 30221103_1

Additional context reported to be as high as 75% of the time

HorizonPotato commented 1 year ago

To add to OP, Star/Sunburst, Earth, and Rock crusher seem to all have this bug. Its still happening and fairly consistent

TiberonKalkaz commented 1 year ago

I think the root cause here is in globals\magic.lua For elemental ws (like rock crusher) - we eventually wind up below when calculating resists with ignoreStateLock set to false. This means that below a half resist actually gets converted to a "0". Anything between half and no resist is dropped to half. image

Later, the dmg for magical weaponskills is directly modified by the return value in globals\weaponskills.lua image

Would have to investigate the fallout, but I believe setting the ignoreStateLock to true before checking resists for magical weaponskills would result in the expected behavior of elemental WS never missing, and landing for dmg between 1/8 and 100% dmg.

Note: just trying that change seemed to work better - but also had a nekkid 75 whm with a mekki shakki hitting 500 earth crushers at 3k tp on an 83 seaboard vulture in mis coast. Maybe within params, but ive not run the numbers

TiberonKalkaz commented 1 year ago

Note2: The only things in ASB today using ignoreStateLock=true are avatar abilities. Is it really intentional that every other usage of applyAbilityResistance is supposed to truncate to 0 effect, half effect, and full effect? Especially with a half resist or less equating to no effect?

Note3: This appears to extend to

Code pointers: Application of ignoreStateLock in applyAbilityResistance Point where doMagicWeaponskill uses the returned resist to multiply dmg - causing resisted elemental ws to hit for 0. A code search of applyAbilityResistance will show the one off usages as well as the hybrid ws application which can cause the magical half of a hybrid to hit for 0.

TiberonKalkaz commented 1 year ago

Note: additional effects which should normally never 0 out may also be impacted per discord reports. Shouldve verify the pathway taken on dmg AEs