ESOUI

ESOUI (https://www.esoui.com/forums/index.php)
-   Bug Reports (https://www.esoui.com/forums/forumdisplay.php?f=187)
-   -   [outdated] GetAbilityDuration() returning wrong values (https://www.esoui.com/forums/showthread.php?t=7692)

Letho 03/29/18 05:06 PM

[outdated] GetAbilityDuration() returning wrong values
 
/Edit: With the help of ArtOfShred I finally found the actual problem. GetAbilityDuration() does in fact NOT return wrong values, it is another problem related to ground effects (for best reproduction of the issue use the bow ability 'Endless Hail').

The problem:
Code:

GetAbilityDuration(40932) -- endless hail rank IV
-- returns 10000

As you can clearly see, it takes 12 seconds from pressing the button to the end of the effect - let's have a look at the following timeline:

timeline
0s: Animation start for endless hail
...
2s: 'real' endless hail effect spawning in the world (hail of arrows animation start)
...
12s: the 'real' effect of endless hail ends

So the 'real' effect has indeed a duration of 10seconds, yet it still takes 2s after pressing the button before it starts. The problem with this is, that there is currently no way to determine exactly WHEN the 'real' effect starts, as EVENT_COMBAT_EVENT will fire for 'endless hail' as soon as the button is pressed', just as EVENT_ACTION_SLOT_ABILITY_USED does.

My suggestion:
- Change the behaviour of all ground effects so that the event will only fire as soon as the 'real' effect starts.
- Additionally, giving ground effects a whole new event type (EVENT_GROUND_EFFECT_CHANGED(eventId, changeType, abilityId, startTime, endTime)) and removing it from EVENT_EFFECT_CHANGED would get rid of the overhead fields that are currently passed when a ground effect is communicated via EVENT_EFFECT_CHANGED and make it much easier to adress and to filter.

Original Post:
Warning: Spoiler

ArtOfShred 03/30/18 06:41 PM

For some reason the cast time value gets added onto the duration of the actual ground targeted aoe ID triggered by EVENT_EFFECT_CHANGED when this ability is used.

Technically the duration is 10 seconds with a 2 second cast time so it is *accurate.*

I believe the tooltip duration isn't really intended to be an API accurate method of tracking actual event effect duration, but rather a way to report to the player the duration of the effect. I believe Arrow Barrage and it's morphs do mention the 2 second cast time on the TT as well?

I find in practice its best to track actual effects once they go off - as some other factors are considered for many auras when triggered as well. Wall of Elements has a 6 sec duration but in practice the effect aura duration is around 6.6 seconds or so. Not sure if this is something to do with latency, animation delay, or something else but many effects work this way. Alot of effects also have a 0 duration but when applied have a ms duration equivalent to the travel time of the projectile hitting a target for example.

Letho 03/31/18 03:12 AM

Strange, my first reply seems not to have been saved.

Well, again: Thx for pointing that out, I hadn't figured that out myself, superb find!

Regarding using EVENT_EFFECT_CHANGED to track ground effects duration: It has the same problem as EVENT_ACTION_SLOT_ABILITY_USED: It fires as soon as the ability is used, making endless hail actually a 12 second ability. There is no way to check if the 'real' effect has begun (in other words: eliminate the animation time from the ability duration), neither by checking combat events nor by checking effect events. Destru staff abilities seem to communicate other effects that start at a proper time. It's very inconsistent across all abilities.)

Letho 03/31/18 03:36 AM

/updated, please read the initial post (original post is marked as spoiler).


All times are GMT -6. The time now is 12:48 AM.

vBulletin © 2024, Jelsoft Enterprises Ltd
© 2014 - 2022 MMOUI