WoW:API UnitBuff: Difference between revisions

From AddOn Studio
Jump to navigation Jump to search
mNo edit summary
Line 23: Line 23:


== Example ==
== Example ==
  local x, i = "You're currently buffed with the following buffs: ", 1;
  local buffs, i = { }, 1;
  while (UnitBuff("player",i) ~= nil) do
  local buff = UnitBuff("player", i);
  x = x .. UnitBuff("player",i) .. ", ";
while buff do
  i = i + 1;
  buffs[#buffs + 1] = buff;
  end
  i = i + 1;
  if (i == 1) then
  buff = UnitBuff("player", i);
  x = x .. "no buffs.";
  end;
  if #buffs < 1 then
  buffs = "You have no buffs";
  else
  else
  x = strsub(x,0,-3) .. ".";
  buffs[1] = "You're buffed with: "..buffs[1];
  end
  buffs = table.concat(buffs, ", ");
  DEFAULT_CHAT_FRAME:AddMessage(x);
  end;
 
  DEFAULT_CHAT_FRAME:AddMessage(buffs);


=====Macro Option:=====
=====Macro Option:=====

Revision as of 07:26, 30 November 2007

WoW API < UnitBuff

Retrieve info about a certain buff on a certain unit.

name, rank, iconTexture, count, duration, timeLeft =  UnitBuff(unit, buffIndex[, castable]);

Parameters

Arguments

(unit, buffIndex, showCastable)
unit
String - The unit to query information for
buffIndex
Integer - The index of the buff to retrieve information for. Starts at 1 and goes up indefinitely until there are no more buffs on target.
castable
Boolean - If present and true (1), then only player-castable buffs will be returned; buffIndex still starts at 1.

Returns

name
String - The name of the spell or effect of the buff. This is the name shown in yellow when you mouse over the icon.
rank
String - The rank of the spell or effect that caused the buff. Returns "" if there is no rank.
iconTexture
String - The identifier of (path and filename to) the indicated buff.
count
String - The number of times the buff has been applied to the target.
duration
Number - Full duration of a buff you cast, in seconds; nil if you did not cast this buff.
timeLeft
Number - Time left before a buff expires, in seconds; nil if you did not cast this buff.

Example

local buffs, i = { }, 1;
local buff = UnitBuff("player", i);
while buff do
  buffs[#buffs + 1] = buff;
  i = i + 1;
  buff = UnitBuff("player", i);
end;
if #buffs < 1 then
  buffs = "You have no buffs";
else
  buffs[1] = "You're buffed with: "..buffs[1];
  buffs = table.concat(buffs, ", ");
end;
DEFAULT_CHAT_FRAME:AddMessage(buffs);
Macro Option:
/script for i=1,40 do local B=UnitBuff("target",i); if B then DEFAULT_CHAT_FRAME:AddMessage(i.."="..B) end end


Result

Print the names of all buffs you're currently buffed with.

History

  • Path 1.9 added castable to the list of parameters.
  • Patch 2.0 added name and rank return values.
  • Patch 2.1 added duration and timeLeft return values.

See also

UnitDebuff
HOWTO: Identify Buffs Using Textures
List of known buff and debuff effects that can be queried