@Valma: The GCD is added to every spell regardless if it has a cooldown or not. Hence why GetSpellCoodlwon, hell, even select(2,GetSpellCooldown(spellID/name)) returns a random number right after you've launched an ability.
You're doing it wrong though by adding + 1.2 to your profile as people with less haste rating than you would effectively be screwed over. There's a way around this though.
The global cooldown can be calculated like this:
Code:
GCD = (1.5*((1 + GetCombatRating(19) / (128.057 * 100))^-1))
In other words; Base cast time * ((1 + Haste Rating / (Rating Conversion * 100))^-1) -- This turns out (with my 3035 haste rating) to be ~1.212...... seconds.
Simply subtracting this from any castable spell and using "<= 0" when you're checking if something is on cooldown will always be accurate as when something is affected by the GCD, the number returned with select(2,GetSpellCooldown()) will always be 0, otherwise it'll be a negative number. (Hence checking if a cooldown is 0 or under; i.e. negative)
This should in essence always return:
- The actual cooldown
- 0
- -gcd
Code:
GCD = (1.5*((1 + GetCombatRating(19) / (128.057 * 100))^-1))
ShadowfiendCD = (select(1,GetSpellCooldown(34433)) + select(2,GetSpellCooldown(34433)) - GetTime()) - GCD
Because it always takes the global cooldown into account, the actual global cooldown of the user (and not just some random number. Easy huh?)
Just thought I'd share a bit. :P