Navigation menu

WoW:API GetSpellCooldown: Difference between revisions

Jump to navigation Jump to search
m
Move page script moved page API GetSpellCooldown to WoW:API GetSpellCooldown without leaving a redirect
m (bookType rather than tabNumber)
m (Move page script moved page API GetSpellCooldown to WoW:API GetSpellCooldown without leaving a redirect)
 
(8 intermediate revisions by 7 users not shown)
Line 1: Line 1:
{{wowapi}}
Retrieves the cooldown data of the spell specified.
Retrieves the cooldown data of the spell specified.


  local start, duration = GetSpellCooldown(spellID, "bookType");
  start, duration, enabled = GetSpellCooldown(spellName or spellID or slotID, "bookType");


;
==Arguments==
:;spellName
:: String - name of the spell to retrieve cooldown data for.
:;spellID
:: Number - ID of the spell in the database
:;slotID
:: Number - Valid values are 1 through total number of spells in the spellbook on all pages and all tabs, ignoring empty slots.
:;bookType
:: String - BOOKTYPE_SPELL or BOOKTYPE_PET depending on whether you wish to query the player or pet spellbook.


----
==Returns==
;''Arguments''
:;startTime
:: Number - The time when the cooldown started (as returned by [[API GetTime|GetTime()]]); zero if no cooldown; current time if (enabled == 0).
:;duration
:: Number - Cooldown duration in seconds, 0 if spell is ready to be cast.
:;enabled
:: Number - 0 if the spell is active (Stealth, Shadowmeld, Presence of Mind, etc) and the cooldown will begin as soon as the spell is used/cancelled; 1 otherwise.


:(Number spellID)
==Example==
  local start, duration, enabled = GetSpellCooldown("Presence of Mind");
if enabled == 0 then
  DEFAULT_CHAT_FRAME:AddMessage("Presence of Mind is currently active, use it and wait " .. duration .. " seconds for the next one.");
elseif ( start > 0 and duration > 0) then
  DEFAULT_CHAT_FRAME:AddMessage("Presence of Mind is cooling down, wait " .. (start + duration - GetTime()) .. " seconds for the next one.");
else
  DEFAULT_CHAT_FRAME:AddMessage("Presence of Mind is ready.");
end


:;spellID : The ID of the spell to retrieve cooldown data for
===Result===
Checks status of the [[Presence of Mind]] cooldown and outputs the appropriate message to the default chat frame.


:(string bookType)
==Example==
local name = GetSpellInfo(28370);
local start, duration, enabled = GetSpellCooldown(name);
etc...


:;bookType : BOOKTYPE_SPELL or BOOKTYPE_PET depending on whether you wish to query the player or pet spellbook.
Example of using SpellIDs to retrieve cooldown info
 
----
;''Returns''
 
:(Number startTime, Number duration, Number enable)
 
:;startTime : The time when the cooldown started (as returned by [[API GetTime|GetTime()]]) or zero if no cooldown
:;duration : The number of seconds the cooldown will last, or zero if no cooldown
 
:;enable : Appears to be set to 1 if this spell is in cooldown, and 0 otherwise.
 
----
;''Example''
local start, duration = GetSpellCooldown(spellID, BOOKTYPE_SPELL);
if ( start > 0 and duration > 0) then
Print('Please wait ' .. duration - ( GetTime() - start) .. ' seconds before using this spell.');
else
Print('Spell is ready.');
end


;''Result''


: Retrieves data. Does not (to my knowledge) actually change anything.
==Example==
local start, duration, enabled = GetSpellCooldown(48505);


: "For the [[Nature's_Swiftness|Nature's Swiftness]] spell and posibly other spells that don't start their cooldown timer before they are used up the values retrieved by GetSpellCooldown change over time. The startTime returned is the current time (that this function was called), not the time the spell was cast. The duration is 0.001 not the spell's normal cooldown.
===Result===
returns 0, 0, 1 if the spell 'Starfall' is not on Cooldown
otherwise it returns GetTime(), 90, 1


: In this way we can use GetSpellCooldown to see if this type of spell is active on the player without having to look at buffs and debuffs." --[[User:Brahgulshin|Brahgulshin]] 19:39, 13 March 2006 (EST)
----
;''Description''


: Retrieves data on the cooldown of a specific spell within your spellbook.
==Notes==
----
*The enabled return value allows addons to easily check if the player has used a buff-providing spell (such as Presence of Mind or Nature's Swiftness) without searching through the player's buffs.
{{Template:WoW API}}
*Values returned by this function are not updated immediately when UNIT_SPELLCAST_SUCCEEDED event is raised.
*GetSpellCooldown() does not directly accept SpellIDs. You must first retrieve the spell name using GetSpellInfo(spellID) [Seems out of date as of 3.3]
*GetSpellCooldown() accepts SpellIDs [Noticed in 3.3.2 - but worked with it as of 3.3]
Anonymous user