Thread Tools Display Modes
06/03/17, 09:57 AM   #1
Letho
AddOn Author - Click to view addons
Join Date: Apr 2016
Posts: 238
[notabug] EVENT_COMBAT_EVENT not firing properly for storm blockade rank IV

As the title states, EVENT_COMBAT_EVENT does not fire for elemental blockade destru staff ability when a lightning staff is equipped. works properly for fire staves, though. abilityId is :41772. Cannot check on ranks 1-3 ofc.

Cheers,
Letho
 
06/03/17, 01:30 PM   #2
Ayantir
 
Ayantir's Avatar
AddOn Author - Click to view addons
Join Date: Jul 2014
Posts: 1,019
To report bugs, please use /bug

it create jobs and helps to respect the thing called process.
 
06/03/17, 03:18 PM   #3
Letho
AddOn Author - Click to view addons
Join Date: Apr 2016
Posts: 238
It's not an ordinary ingame bug, but totally coding specific. Based upon the experience I made with ESO customer support (their only qualification seems to be copy pasting generalized text that is not even slightly related to the problem reported by the player and indicates they don't even know basic aspects of the game [are they part of the ZOS company at all or rather external?]), I highly doubt the report would go where it needs to go. There is not even a preselection that could help them ordering it to be coding specific.

Please dont get me wrong, I dont want to blame anyone, but there is many other ppl who experienced the same. Additionally one could also argue, that having a wish list in this Forum is not respecting the process either, as players could use the official forums for suggestions. Pls correct me if I am wrong.

Last edited by Letho : 06/03/17 at 03:22 PM.
 
06/20/17, 02:51 PM   #4
ZOS_ChipHilseberg
ZOS Staff!
Premium Member
Yes this person is from ZeniMax!
Join Date: Oct 2014
Posts: 551
The casting of the fire variant only has a combat event because it it adds an effect to you on cast. The lightning one does not. This is to say it's pretty random what gets through. There is a rule in place right now that only sends the ACTION_RESULT_BEGIN if the cast time is greater than 0 with the assumption that some other event would arrive immediately explaining the results of the ability. In the case of ground AoEs like this, that isn't true though. We could send down BEGIN in the case of instant AoEs or even in all cases for all abilities, but that would mean for event traffic. What are you trying to achieve with this?
 
06/21/17, 04:57 AM   #5
Letho
AddOn Author - Click to view addons
Join Date: Apr 2016
Posts: 238
Originally Posted by ZOS_ChipHilseberg View Post
(...) We could send down BEGIN in the case of instant AoEs or even in all cases for all abilities, but that would mean for event traffic. What are you trying to achieve with this?
There is several applications that all have the same problem when using EVENT_ACTION_SLOT_ABILITY_USED. Let's assume I want to do sth. (in my case: show an icon for a duration specified by the player) as soon as the player uses an ability and go through the subsequent micro events step by step:

1. if the ability does not have a "cast time", you cannot use EVENT_COMBAT_EVENT for the reason you stated above => Coders have to use EVENT_ABILITY_USED here.
2. ESO is not using a global cooldown based ability system, but an animation frame based ability system; result: even instant cast abilities like the aforementioned storm/fire blockade spell actually are not really instant but have a very short cast time that starts "ON_ABILITY_SLOT_KEY_UP" and is equal to the duration of the ability's animation (in case of elemental blockade: player character lifting the staff into the air and smashing it on the ground)
3. this animation is where things get a little messy when using EVENT_ACTION_SLOT_ABILITY_USED: Let's assume the player suffers a knockback before the animation ends and the instant ability can fire:

3.1 EVENT_ACTION_SLOT_ABILITY_USED registers the user's keypress and the event fires => addon stuff happening
3.2 Ability animation starts at the same time
3.3 player get's knockbacked, before the animation finishes
3.4 the addon reacts to EVENT_ACTION_SLOT_ABILITY_USED although the ability has not really been used because the animation has been interrupted


Sorry for the wall of text so far.

4. I would like to suggest the following implementation:

The important "subevent" we are talking about is EVENT_COMBAT_EVENT's "actionResult" return value:

_BEGIN (2200): should always fire, when a spell that has a cast time starts counting down the cast time (using crystal fragments returns this result, for example) - I am mentioning it here, as I would not use it for instant abilities or ground effect ability, like you suggested above, for having an option to differ between abilities that have a cast time and those that are instant - this is very important for cast bar addons, because you only want to display cast bars for abilities that have a cast time

_ABORTED (not implemented, but would be quite useful): should fire as soon as a spell that has a cast time has been aborted by another action performed by the casting player (e.g. using a combat roll or another ability that interrupts the internal cast time countdown)

_INTERRUPTED (partially implemented): Same as _ABORTED but with the source of the abortion not being the player himself, but other players, NPCs (e.g. bashing, knockbacking or pulling the player with DK chains) or environmental effects, that simply stop the cast.

_SUCCEEDED (not implemented, but would be very very useful): fire, as soon as the animation has ended and the spell sucessfully went through (this is the time where the spell's animation starts, like elemental blockade's elemental wall spawning on the ground or an animated fireball/projectile spawning near the player and starting traveling towards the target, etc.. This event should fire for every single ability, be it an "instant" ability or an ability that has cast time, as soon as the animation successfully finishes (instant cast) or as soon as the cast time is over (cast time spell).


Regarding the _SUCCEEDED: There probably is already an internal method in the client code to check on ability animation successfully finishing, because I found an interesting behavior when casting the sorc's spell "Liquid Lightning": As soon as the lightning pool spawns on the ground EVENT_COMBAT_EVENT returns an actionResult 2245 (ability gained duration) for an ability named "Only one lightning Splash" (abilityId: 65711) and a 2250 (fade) as soon as it vanishes. I must admit I have no clue what this exactly does, as there is another little inconsistancy: 2245 states the player character as a source AND as a target, while the fade event (2250) only displays the player as a target, but no source name and a source unit id = 0.


Regarding the additional traffic: I must admit I have no clue how event handling is exactly regulated internally, but as far as I know all events are fired by the client itself. Couldn't we control it by adding some additional filters?

I hope I could explain what I mean, EVENT_COMBAT_EVENT can be extremely confusing

Last edited by Letho : 06/23/17 at 05:28 PM.
 
08/13/17, 02:43 AM   #6
Letho
AddOn Author - Click to view addons
Join Date: Apr 2016
Posts: 238
@ChipHilseberg: Can you give any update on this or rather if there is a chance that something like those subevents can be implemented?

Cheers,
Letho
 
08/14/17, 08:48 AM   #7
ZOS_ChipHilseberg
ZOS Staff!
Premium Member
Yes this person is from ZeniMax!
Join Date: Oct 2014
Posts: 551
Unfortunately that would be a pretty substantial change to the way the combat code works which would require a lot of time to implement.
 
08/15/17, 07:53 AM   #8
Letho
AddOn Author - Click to view addons
Join Date: Apr 2016
Posts: 238
Hmmm I was afraid that would be the case. Should you ever consider doing such changes, pls let us know
 

ESOUI » Developer Discussions » Bug Reports » [notabug] EVENT_COMBAT_EVENT not firing properly for storm blockade rank IV

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