DarkstarProject / darkstar

DEPRECATED - FFXI Server Emulator - See Project Topaz
https://github.com/project-topaz/topaz
GNU General Public License v3.0
455 stars 549 forks source link

[Easy Fix] Aquaveil incorrect functionality #6389

Closed SirGouki closed 4 years ago

SirGouki commented 4 years ago

I have:

Client Version (type /ver in game) : 30191227_0

Source Branch (master/stable) : master (~ 10 Jan 2020)

Additional Information (Steps to reproduce/Expected behavior) :

Aquaveil has slightly incorrect functionality the time is potentially incorrect (needs verification with someone from retail as FFXIclopedia states aquaveil should be 5 minutes max, but the windower spell tracker expects it to last 10 minutes despite even changing the settings for the addon).

The confirmed incorrect functionality is that Aquaveil always drops when preventing interruption. I know that this is incorrect simply because this is not how it ever worked for me on retail, I've never seen it drop upon preventing interruption. Per FFXIclopedia's page on aquaveil, it has a chance to drop, it's not garunteed, but the way its coded into the server (i think its in battleutilities) it always drops once it prevents one interruption. It is also stated that it does have a set number of times it will prevent interruptions, but there's no details for the exact number. As a work around I've commented the drop out for my server, but obviously this may not be correct either.

cocosolos commented 4 years ago

bg-wiki has better info on aquaveil, looks like other wiki doesn't reflect the changes from the 2010 update

cocosolos commented 4 years ago

Looks like DSP correctly applies 1-2 interrupts prevented based on skill, and +1 for Emphatikos Rope, Shedir Seraweels, and Vadose Rod. So looks like 4 items are missing mods to increase interrupts, but otherwise it should be working correctly. There's also AQUAVEIL_COUNTER in settings.lua if you want to increase the base amount of interrupts.

TeoTwawki commented 4 years ago

what you are remembering is how it used to be. SE changed it. long ago it was just a bonus to preventing interrupt chance, now its more like shadows for your spell interrupts. if you would have been interrupted, aquaviel eats that and your cast finishes instead.

The old version let you easily cap interrupt rate reduction and effectively become unstoppable. I had a set for that and loved it.

SirGouki commented 4 years ago

My apologies, last I played was ~2015 and I don't remember it working that way for my RDM (88). Maybe thats why the wiki said "may or may not remove the effect"?

cocosolos commented 4 years ago

I think the "may or may not remove the effect" depends on if you passed the interrupt check or if aquaveil ate it for you, since getting hit isn't always 100% interrupt. If you wouldn't have been interrupted anyway, aquaveil doesn't get removed.

TeoTwawki commented 4 years ago

Its worth mentioning that we probably don’t calculate the interrupt rate like retail does and have some static value somewhere for the chance. I know the skill of spells type should be involved somehow but I can’t say what the math is like.

cocosolos commented 4 years ago

It looks like skill is used in here. The formula used is: ((base interruption rate of 40 + level diff) * skill cap/skill) * ((100 - (meritReduction + Mod::SPELLINTERRUPT)) / 100) It's supposed to cap at 1% but I don't think that's right.

        // caps, always give a 1% chance of interrupt
        if (check < 1) {
            check = 0;
        }

Should be setting check to 1 not 0, right?

TeoTwawki commented 4 years ago

Dunno, glad we already check skill tho, thats further along than I thought we were