2012-10-29

The endless cast

Since I'm abroad I don't have access to any "new" logs to play with.  In particular, I cannot test DoC/NV since I don't have here any logs where I used them..... I've put the code in, but I'll be postponing the tests until I can create some appropriate logs.
So I have decided to add activity tracking: the idea is to see if you are a key-spammer (tons of cast failed due to GCD / low energy) or a classy-clicker (just press the key once exactly at the right time.  Of course, it turns out that it's not so easy.  Apart from the negative-time casts (which I can try to detect as instant cast since I have the spell effect just before the cast_success), I've found a new gem: SPELL_CAST_SUCCESS is used for instant casts, but it doesn't appear in the log for channeled casts.  What I mean is this:

10/17 00:10:27.143  SPELL_CAST_START,0x0180000001B138CB,"Helistar",0x511,0x0,0x0000000000000000,nil,0x80000000,0x80000000,5176,"Wrath",0x8
10/17 00:10:28.189  SPELL_CAST_FAILED,0x0180000001B138CB,"Helistar",0x511,0x0,0x0000000000000000,nil,0x80000000,0x80000000,5176,"Wrath",0x8,"Another action is in progress"
10/17 00:10:28.959  SPELL_CAST_START,0x0180000001B138CB,"Helistar",0x511,0x0,0x0000000000000000,nil,0x80000000,0x80000000,5176,"Wrath",0x8
10/17 00:10:31.163  SPELL_DAMAGE,0x0180000001B138CB,"Helistar",0x511,0x0,0xF130EBFA00004EBC,"Elegon",0x10a48,0x0,5176,"Wrath",0x8,308679,-1,8,0,0,0,nil,nil,nil

The SPELL_DAMAGE event corresponds to the *first* Wrath cast (remember, Wrath has a fairly long "flight time").  This means that I have no way to detect that the actual casting of Wrath has ended, except guessing it from the fact that I had another CAST_START.  This also means that I have no easy way of knowing if the player is idle or not.  I'll need to do some tests, but I fear I'll be forced to go dig in the CAST_FAILED error message to see *why* it failed, in order to understand if it's just a key-spam while already casting (= you're not idle), or if the cast really failed because you moved (or the target died, ...), in which cast the CAST_FAILED indicates a transition back to the idle state.
And it's actually worse: if you cast a single Wrath, I have no way of knowing that the casting has ended.... since the spell effect (SPELL_DAMAGE) will appear a lot later.

I don't know why, but I'm starting to think that this whole "activity display" thing is a bad idea.....

No comments:

Post a Comment