Quote Originally Posted by seastar View Post
I go through the code and found hermes is implemented by teammembers send the cooldown related information to you.

I found in the WOW, there is a event call: UNIT_SPELLCAST_SUCCEESSED, in the event, the unit and the spellname are all provided.

So is it possible to use this event to monitor the cooldown of your teammembers? Is there any bad performance with this solution, like impact the game performace, etc?

I write a small addon to do it and it look ok. But because of my poor programming, I only can write the simple addons for my specific char and also the specific spell i want to monitor.
That is a perfectly acceptable approach, and will work. However, it has some technical issues (then again, so does the approach Hermes takes).

1. There are a LOT of items in the game where the cooldown changes based on spec, glyphs, other procs, etc. For example, Guardian Spirit used to act such that if it triggered the cooldown would be 3 minutes, otherwise 1. This causes any addon that monitors the spell to create custom code to handle specifically that spell. The approach Hermes takes requires no custom coding. Which means it's more resilient over time such as when new patches are released.
2. In order to know who a spell is cast on, you have to track the casters target and/or utilize the combat log.
3. The more complicated scenarios require monitoring what's known as the COMBAT_EVENT_LOG. This is the biggest performance sync in all of wow. Many addons utilize the combat log. If your computer is old, it's a noticeable impact on frame rate.

Not sure if you've ever looked at the CPU usage of Hermes, but it's extremely light compared to similar addons. And it's because I don't monitor combat log events, or UNIT_AURA events. In a raid environment, these events are sent hundreds to thousands of times per minute.

Again, the approach you're talking about will work, and it's easy for spells that are conisidered "static" in that their cooldowns are always the same no matter what. But when making a general addon for all classes and spells it can get complex quickly.