WoW:API GetSpellCooldown: Difference between revisions
m (bookType rather than tabNumber) |
m (Move page script moved page API GetSpellCooldown to 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. | ||
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== | ||
; | :;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. | |||
:( | ==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 | |||
===Result=== | |||
Checks status of the [[Presence of Mind]] cooldown and outputs the appropriate message to the default chat frame. | |||
==Example== | |||
local name = GetSpellInfo(28370); | |||
local start, duration, enabled = GetSpellCooldown(name); | |||
etc... | |||
Example of using SpellIDs to retrieve cooldown info | |||
==Example== | |||
local start, duration, enabled = GetSpellCooldown(48505); | |||
===Result=== | |||
returns 0, 0, 1 if the spell 'Starfall' is not on Cooldown | |||
otherwise it returns GetTime(), 90, 1 | |||
==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. | ||
*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] | |||
Latest revision as of 04:46, 15 August 2023
Retrieves the cooldown data of the spell specified.
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
- startTime
- Number - The time when the cooldown started (as returned by 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.
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
Result
Checks status of the Presence of Mind cooldown and outputs the appropriate message to the default chat frame.
Example
local name = GetSpellInfo(28370); local start, duration, enabled = GetSpellCooldown(name); etc...
Example of using SpellIDs to retrieve cooldown info
Example
local start, duration, enabled = GetSpellCooldown(48505);
Result
returns 0, 0, 1 if the spell 'Starfall' is not on Cooldown otherwise it returns GetTime(), 90, 1
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.
- 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]