Hermes has been very successful. It's essentially become the standard for managing raid cooldowns. However, life has come up and I must quit the game, which means I cannot support the addon anymore on an active basis (I won't have an active account).
I am seeking an author to take over Hermes support. I will provide as much support as needed from a consulting or "how does this work?" perspective, but no actual coding.
Please post here or send me a PM if you're serious about taking over Hermes. It's a considerably sized addon with many thousands of lines of code. However, it's pretty stable right now.
This is the basic concept (dry coded), you could implement it a million different ways depending on the needs:
local _cache = {}
local function cleu_handler(...)
if event == SPELL_DAMAGE or event == SPELL_ENERGIZE then
local cache = _cache[sourceName]
if cache then
if cache == SPELL_DAMAGE and event == SPELL_ENERGIZE then
--SPELL_ENERGIZE after SPELL_DAMAGE
_cache[sourceName] = nil
elseif cache == SPELL_ENERGIZE and event == SPELL_DAMAGE then
--SPELL_DAMAGE after SPELL_ENERGIZE
_cache[sourceName] = nil
else
--you probably got two of the same event in a row
end
else
_cache[sourceName] = event
end
else
--some other event, may need to remove cache depending on logic
_cache[sourceName] = nil
end
end
The logic regarding when to clear the last cache value, or for how long to keep it is entirely dependent on what you're trying to accomplish and how the events come in.
Any clues why Hermes v2.3 or v2.3.1 is showing up on the Curse web-site, but not the curse client? BTW, the only reason I tagged v2.3.1 was to see if perhaps it was a fluke and maybe curse client would start showing it.
I should mention that I recently worked with some of you on a repository issue. That seem fine right now. Just not sure what's going on here. Curse Client is 4.0.1.112.
PLAYER_DIED which is not part of CLEU, but that is limited to the player, and UNIT_DIED for anything, mob, NPC, player, party/raid member, etc, which is part of CLEU.
I meant, in the context of his problem, I don't know what all can fire in between a unit/player having died, and the final PLAYER_DIED/UNIT_DIED event/cleu happening. Clearly, we know SPELL_AURA_REMOVED does but not sure what else is in there that could throw off his code.
I don't recall the specifics, but I had to do something similar to what you're talking about possibly doing with Hermes. My case was simpler, I only had to remember the last relevent combat log event per player. I would use it when processing the next event found for the player, and continuously reset, etc.
I'm a little confused by your snippet, it looks like the only thing that died was an NPC, but your post talks about healing so I'm assuming you're worried about players, and not NPC's.
One possibility is to make special condition for SPELL_AURA_REMOVED events. If it's true that SPELL_AURA_REMOVED events all fire sequentially with nothing else relevent in between, then you can remember for the player that a SPELL_AURA_REMOVED event was caught. For all the following events, if you keep seeing SPELL_AURA_REMOVED without something else like damage, healing, whatever, and it keeps going and going with nothing but SPELL_AURA_REMOVED before you finally see a UNIT_DIED then that might work. It's essentially what I id but I didn't have to worry about repeated occurrences of the same event.
I have no clue what events fire when someone dies. But this might give a clue.
First, I think the idea is nice. But my best guess is that there will be a lot of addons that have issues. I know mine would. I occasionally call a "Restore Window Position" type call that's not necessarily done during OnLoad. Also, most of my frames aren't global (or rather, I don't provide a global name for it) or generated as needed, recycled, etc. So not sure what issues that might cause. If you manage to work it out in a reliable way I think it would be a nifty tool.
Thank you. If you saw any glaring issues I'm confident you'd have told me. So far this seems best. I don't expect anything "massive" like Pitbull where you have to scroll through 60 items to uncheck them :)
Well, here's my answer, looking for suggestions for better practices please:
1. Create a Modules folder in Hermes repository. Make a folder for each module there where the code gets checked in.
2. Create separate Localization folders/files for each module in the modules subfolder as well.
3. Stop using wowace locale tools (just manually edit the files for each locale).
4. Locally in my wow addons folder, checkout each module path so that I can actually test each module as an addon (even though it'll point to a deeper subfolder in the Hermes repository)
5. Update the pkgmeta for Hermes to move from the Modules folder using "move-folders:"
0
I am seeking an author to take over Hermes support. I will provide as much support as needed from a consulting or "how does this work?" perspective, but no actual coding.
Please post here or send me a PM if you're serious about taking over Hermes. It's a considerably sized addon with many thousands of lines of code. However, it's pretty stable right now.
http://wow.curseforge.com/addons/hermes/
0
Nope.
Take a look at this thread though, different problem, but same technique can be employed:
http://forums.wowace.com/showthread.php?t=19559
This is the basic concept (dry coded), you could implement it a million different ways depending on the needs:
The logic regarding when to clear the last cache value, or for how long to keep it is entirely dependent on what you're trying to accomplish and how the events come in.
0
0
0
I should mention that I recently worked with some of you on a repository issue. That seem fine right now. Just not sure what's going on here. Curse Client is 4.0.1.112.
Website:
Client:
0
I meant, in the context of his problem, I don't know what all can fire in between a unit/player having died, and the final PLAYER_DIED/UNIT_DIED event/cleu happening. Clearly, we know SPELL_AURA_REMOVED does but not sure what else is in there that could throw off his code.
0
I'm a little confused by your snippet, it looks like the only thing that died was an NPC, but your post talks about healing so I'm assuming you're worried about players, and not NPC's.
One possibility is to make special condition for SPELL_AURA_REMOVED events. If it's true that SPELL_AURA_REMOVED events all fire sequentially with nothing else relevent in between, then you can remember for the player that a SPELL_AURA_REMOVED event was caught. For all the following events, if you keep seeing SPELL_AURA_REMOVED without something else like damage, healing, whatever, and it keeps going and going with nothing but SPELL_AURA_REMOVED before you finally see a UNIT_DIED then that might work. It's essentially what I id but I didn't have to worry about repeated occurrences of the same event.
I have no clue what events fire when someone dies. But this might give a clue.
0
I'm not positive, but what I'm trying to say is that I think you'll have frames you simply won't be able to control, period. Coded exceptions or not.
0
0
0
0
0
0
0
1. Create a Modules folder in Hermes repository. Make a folder for each module there where the code gets checked in.
2. Create separate Localization folders/files for each module in the modules subfolder as well.
3. Stop using wowace locale tools (just manually edit the files for each locale).
4. Locally in my wow addons folder, checkout each module path so that I can actually test each module as an addon (even though it'll point to a deeper subfolder in the Hermes repository)
5. Update the pkgmeta for Hermes to move from the Modules folder using "move-folders:"