Thread Tools Display Modes
03/29/18, 05:06 PM   #1
Letho
AddOn Author - Click to view addons
Join Date: Apr 2016
Posts: 238
[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

Last edited by Letho : 04/01/18 at 04:24 PM.
 
03/30/18, 06:41 PM   #2
ArtOfShred
 
ArtOfShred's Avatar
AddOn Author - Click to view addons
Join Date: Jun 2016
Posts: 103
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.

Last edited by ArtOfShred : 03/30/18 at 06:51 PM.
 
03/31/18, 03:12 AM   #3
Letho
AddOn Author - Click to view addons
Join Date: Apr 2016
Posts: 238
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.)

Last edited by Letho : 03/31/18 at 03:55 AM.
 
03/31/18, 03:36 AM   #4
Letho
AddOn Author - Click to view addons
Join Date: Apr 2016
Posts: 238
/updated, please read the initial post (original post is marked as spoiler).
 

ESOUI » Developer Discussions » Bug Reports » [outdated] GetAbilityDuration() returning wrong values

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off