WoWInterface

WoWInterface (https://www.wowinterface.com/forums/index.php)
-   Legion Beta archived threads (https://www.wowinterface.com/forums/forumdisplay.php?f=177)
-   -   Event changes in Legion (https://www.wowinterface.com/forums/showthread.php?t=52909)

p3lim 11-24-15 03:39 PM

Event changes in Legion
 
See this thread for diffs: http://www.wowinterface.com/forums/s...ad.php?t=53455

galvin 04-24-16 07:09 PM

There any lists I can look into?
UNIT_SPELLCAST_START returns different info than live. Having a hardtime finding what it is.

TOM_RUS 04-24-16 07:17 PM

Quote:

Originally Posted by galvin (Post 314332)
There any lists I can look into?
UNIT_SPELLCAST_START returns different info than live. Having a hardtime finding what it is.

Code:

if event == "UNIT_SPELLCAST_START" then
    local unitTag, spellName, rank, lineID, spellID = ...;
end


galvin 04-24-16 08:21 PM

SpellID is not a spellID anymore.
Here is the info I got back from the event.
This is for Solar Wrath spellID 190984

Unit: player
Name: Solar Wrath
Rank: Solar
LineID: 3-2084-1-152-190984-00001D7EA8
SpellID: 569608

Edit: With more testing the last set of digits on the lineID changes when casting over and over. There must be a function to parse the lineID. The SpellID is a random number each time. So its most likely a useless parm now.

Resike 04-25-16 04:59 AM

Quote:

Originally Posted by galvin (Post 314336)
SpellID is not a spellID anymore.
Here is the info I got back from the event.
This is for Solar Wrath spellID 190984

Unit: player
Name: Solar Wrath
Rank: Solar
LineID: 3-2084-1-152-190984-00001D7EA8
SpellID: 569608

Edit: With more testing the last set of digits on the lineID changes when casting over and over. There must be a function to parse the lineID. The SpellID is a random number each time. So its most likely a useless parm now.

This is retaded, we seriously have to parse a guid string just for the spellID?

Nevcairiel 04-25-16 07:11 AM

We decomposed the new UNIT_SPELLCAST_* GUID some time ago, this is the layout:

3-[server id]-[instance id]-[zone uid]-[spell id]-[cast UID]

So yes, you need to parse this GUID to get the spell id. The cast UID is unique to every single spell cast.
What the last parameter is on the U_S_* events is not yet known. It looks like flags of some sort, but I was unable to determine their meaning.

The GUID has a bunch of advantages, it allows you to clearly group spell cast events together, like the appropriate start with the success or cancel, or whichever.
The previous method the old events offered was generally not very reliable.

Interestingly the FrameXML UI itself seems to not have been updated to properly use these new events.

Resike 04-25-16 07:36 AM

Quote:

Originally Posted by Nevcairiel (Post 314343)
The GUID has a bunch of advantages, it allows you to clearly group spell cast events together, like the appropriate start with the success or cancel, or whichever.

You could have easily do this before. Each cast has an unique cast lineID, channeled spells had 0.

Now if you dont pase the guid, and just compare as a whole. That could potentionally cause some issues:

1. You start casting a spell.
2. You zone into a new zone.
3. Every stop, success, interrupt, event will fail because the GUID wont be the same.

And since it seems like you will be forced to parse, then it will be so heavy resource wise.

Resike 04-25-16 07:48 AM

I recently reported a minor issue regarding the lineIDs, i wonder if this would be their potentional fix for it. But honestly this would even cause more issues then it fixes.

Nimhfree 04-25-16 07:59 AM

Is this also true for UNIT_SPELLCAST_SUCCEEDED? In WoD the lineId does not return a GUID, so I assume if UNIT_SPELLCAST_SUCCEEDED has changed in Legion we need to special case processing based on release.

Nevcairiel 04-25-16 08:29 AM

Quote:

Originally Posted by Resike (Post 314344)
You could have easily do this before. Each cast has an unique cast lineID, channeled spells had 0.

The lineId was not very reliable.
Splitting a string at a pre-determined deliminator isnt actually an expensive operation, so complaining about resource costs isnt really worthwhile. The alternative probably is that the game applies this split, so nothing saved.

Quote:

Originally Posted by Nimhfree (Post 314346)
Is this also true for UNIT_SPELLCAST_SUCCEEDED? In WoD the lineId does not return a GUID, so I assume if UNIT_SPELLCAST_SUCCEEDED has changed in Legion we need to special case processing based on release.

All the UNIT_SPELLCAST_ events have changed to this layout.

sezz 04-25-16 11:37 AM

UI_ERROR_MESSAGE: number, message

not sure what the number means, because it's not unique - maybe a category id?

some samples:

252 Another action is in progress
50 Can't do that while moving
50 Interrupted
51 Item is not ready yet.
220 You have no target.

Resike 04-25-16 01:47 PM

Quote:

Originally Posted by Nevcairiel (Post 314348)
The lineId was not very reliable.
Splitting a string at a pre-determined deliminator isnt actually an expensive operation, so complaining about resource costs isnt really worthwhile. The alternative probably is that the game applies this split, so nothing saved.



All the UNIT_SPELLCAST_ events have changed to this layout.

I recently wrote a castbar addon, and i havn't run into any issues with the lineID method. And everything works perfectly.
Well it's not that expensive, i just don't see whats the point storing everything in a big string instead of proper values. Specially on something that gets called bazillion times.

galvin 04-25-16 02:54 PM

So for a proper lineID I need to take the last set of digits from the spellGUID?

Be nice if blizzard had docs on this. Right now I use combatlogunfiltered for spell missed, energized, failed.
If the new spellGUID has all the info now, thats actually useful. But I couldn't find any lua code using the new lineID format.

Resike 04-26-16 05:25 AM

Quote:

Originally Posted by galvin (Post 314354)
So for a proper lineID I need to take the last set of digits from the spellGUID?

Be nice if blizzard had docs on this. Right now I use combatlogunfiltered for spell missed, energized, failed.
If the new spellGUID has all the info now, thats actually useful. But I couldn't find any lua code using the new lineID format.

Thats a totally different thing. These are only cover when you start/stop/fail/succeed with a spellcast. The miss/parry/dodge/evade/glacing/crusing/crit/multistrike events came after the spell hits the target. And you still gonna need different events to track those.

galvin 04-26-16 06:37 AM

Since you're parsing spellID from a string. The spellID will be of type string. and you'll have to turn it into a number by doing tonumber(SpellID). Found this out yesterday why it wasn't finding the spell in my table after an hour.

Resike 04-26-16 08:40 AM

3 global calls just to get an info from the guid, and the strsplit is basically a for cycle which goes through the whole string:

Lua Code:
  1. tonumber((select(5, strsplit("-", GUID))))

p3lim 04-26-16 10:28 AM

Quote:

Originally Posted by Resike (Post 314361)
3 global calls just to get an info from the guid, and the strsplit is basically a for cycle which goes through the whole string:

Lua Code:
  1. tonumber((select(5, strsplit("-", GUID))))

You don't need to (and shouldn't) use select.

Resike 04-26-16 10:41 AM

Quote:

Originally Posted by p3lim (Post 314365)
You don't need to (and shouldn't) use select.

Yeah you can ditch the select for some extra variables, i only wanted to show a more compact approach.

Seerah 04-26-16 07:32 PM

While more "compact", it is slower. Which especially matters in combat.

yoshimo 04-28-16 11:35 PM

Which events are used for learned appearances and for the new class spells you get when your demon hunter kills a certain quest npc?


All times are GMT -6. The time now is 07:32 PM.

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