"Activation Time" property in skills API

"Activation Time" property in skills API

in API Development

Posted by: nightzirch.3126

nightzirch.3126

I am currently planning a very helpful tool for GW2 players who would like to improve their DPS rotation. I have however met a rather big limitation of the API that will require me to do an immense amount of manual work when creating and updating the tool.

And that is the activation time of skills. How difficult would it be to add this property to the skills API?

For instance, we have https://api.guildwars2.com/v2/skills/14407 with duration of 90 and recharge of 120, but we have idea about the activation time (cast time) of that skill.

Thank you for your time

Hi, I’m Chris aka nightzirch
Snow Crows [SC]
Front-end developer – SecretToymaker.com

(edited by nightzirch.3126)

"Activation Time" property in skills API

in API Development

Posted by: Lawton Campbell

Lawton Campbell

Web Programmer

Next

There’s an existing issue for this, but the short story is that this is pretty difficult to expose (since activation times are stored in the animation data), but I’ll see what I can do to pull it out.

EDIT: so the long story short is that the cast time is actually stored in the skill’s animation data and the code that extracts the value displayed in-game is fairly coupled to the UI. Pulling that out is a pretty significant undertaking; not sure when I’ll have time for it.

(edited by Lawton Campbell.8517)

"Activation Time" property in skills API

in API Development

Posted by: Khisanth.2948

Khisanth.2948

I guess that explains why some skills are lacking this info even in game. Mostly as part of auto attack sequences.

The aftercast would also be necessary as well …

"Activation Time" property in skills API

in API Development

Posted by: Lawton Campbell

Previous

Lawton Campbell

Web Programmer

Next

Hah yeah the aftercast is embedded in the animation data as well, as are the precast duration and the evade duration (though I think some of the evade durations are hardcoded skill facts — otherwise they wouldn’t show up in the API at all).

Once I find the time to do the necessary refactoring it should be possible to expose all four values (precast, aftercast, total cast time, total evade time).

"Activation Time" property in skills API

in API Development

Posted by: Crell.6401

Crell.6401

It’d also be cool to know exactly where the evade frames are in the animation, sometimes its not as obvious as one might think.

"Activation Time" property in skills API

in API Development

Posted by: nightzirch.3126

nightzirch.3126

Thank you for replying!

I was checking out arcdps’ skill logs. Link to .txt ~20mb.
And was wondering if maybe you could help me make sense of “etime” and “atime”. This could prove to be a good enough source for these timings until these values can be extracted and put into the API.

Are the timings listed here all the relevant information or are there more information about timing (aftercast etc) which are stored someplace else? In the animation data for instance?

Hi, I’m Chris aka nightzirch
Snow Crows [SC]
Front-end developer – SecretToymaker.com

"Activation Time" property in skills API

in API Development

Posted by: Lawton Campbell

Previous

Lawton Campbell

Web Programmer

Ugh I just made a really long post about this and the forums ate it. It was probably the best post I’ve ever made and this is a poor facsimile.

Anyway.

After looking at the data, I’m pretty sure that “etime” and “atime” are poking into the animation sequence data. The animation sequence data does contain both the evade frames and the activation timings.

“etime” looks like it basically has the time offsets for the animation sequence steps that control the end of precast/end of cast. I’m not entirely sure where this data is coming from, but the timings are matching what I’m looking at. “etime.a” appears to be the time between casting the spell and the precast being over; “etime.b” is the time between casting the spell and the spell being over.

Or, that’s what it looked like until I just now looked up Meteor Shower

Mar 07 02:27:54 sdef 5501 Bn0VAAA= at 18b1b98eb9c: Meteor Shower
Mar 07 02:27:54 —etime
Mar 07 02:27:54 --— a: 3.8100s
Mar 07 02:27:54 —-- b: 1.8000s
Mar 07 02:27:54 —atime
Mar 07 02:27:54 --— 5: 1.4000s
Mar 07 02:27:54 —-- 1: 1.4000s
Mar 07 02:27:54 —-- 4: 1.4000s
Mar 07 02:27:54 —-- 5: 1.8000s
Mar 07 02:27:54 —-- 5: 2.2000s
Mar 07 02:27:54 —-- 5: 2.6000s
Mar 07 02:27:54 —-- 5: 2.8000s
Mar 07 02:27:54 —-- 5: 3.4000s
Mar 07 02:27:54 —-- 2: 3.8010s
Mar 07 02:27:54 —-- 0: 3.8010s
Mar 07 02:27:54 —-- 3: 3.8100s

I’m actually not totally certain what etime is because that doesn’t look quite right. Or — meteor shower might be a bit of a special pickle because it’s got really wonky animation timings.

Assuming that “etime” is a subset of the animation sequence step data — the animation sequence step data contains the evade frames, but those don’t appear to be exposed by this.

Anyway, “atime” has the animation sequence’s trigger data. The “number:” prefix is the trigger id — the important ones, I think, are “0” is the trigger for “give the player back control”, and “1” is “do the skill’s effects”. Pretty sure the other ones are totally irrelevant for gameplay purposes.

tl;dr, man this would really be useful to have in the API so we didn’t have to root around all crazy-like.

"Activation Time" property in skills API

in API Development

Posted by: deltaconnected.4859

deltaconnected.4859

I wish I knew why I named them the way I did… I just wanted something fast for easy ctrl+c/ctrl+v’ing for total mapchat link code domination. Data comes from crawling game memory.

etime is the result (?) from the game’s tooltip cast time function. My comments tell me it eats an &float\[18\] parameter (with index 9 and 10 set to infinity), and etime are the two values that made the most “sense”. Quite possible the value you mention was in the others and I picked unfortunate samples to filter out what to keep.

atime is what I assumed to be the animation step data. I take it evade frames and other points are included elsewhere?

edit: wrong function. It’s a struct-like float18 and not 4.

(edited by deltaconnected.4859)

"Activation Time" property in skills API

in API Development

Posted by: Maja.6372

Maja.6372

I am not sure if I understand it right, but if this is about to know when you can skip parts of skillanimations via stow weapon to cast faster to do more dmg
maybe it would just be better to finaly fix the skills so stow weapon cant be exploited anymore ?

"Activation Time" property in skills API

in API Development

Posted by: nightzirch.3126

nightzirch.3126

I am not sure if I understand it right, but if this is about to know when you can skip parts of skillanimations via stow weapon to cast faster to do more dmg
maybe it would just be better to finaly fix the skills so stow weapon cant be exploited anymore ?

Uhm, what? This is about knowing the length of the skill animation so I can create a tool that simulates a dps rotation.

Also, this is in the API section of the forums. Your concern is better fit in the Bugs: Game, Forum, Website section.

Hi, I’m Chris aka nightzirch
Snow Crows [SC]
Front-end developer – SecretToymaker.com

"Activation Time" property in skills API

in API Development

Posted by: Ramiel.1405

Ramiel.1405

Thanks Lawton for replying and actually participating in the discussion. I’m also very interested in this because I also was thinking about a project similar to OP’s.
I hope you have time to work on this in the near future!