WoW:BuffId: Difference between revisions

From AddOn Studio
Jump to navigation Jump to search
(Updated with Burning Crusade numbering.)
m (Move page script moved page BuffId to BuffId without leaving a redirect)
 
(5 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{wowapitype}}
{{wowapitype}}
{{removedapi|3.0|Player-specific buff information functions have been removed; replaced by {{api|UnitAura}} and derivatives.
* This page documents the old behavior.}}


Handling player buffs and debuffs are a tad different than unit buffs/debuffs.  [[API GetPlayerBuff|GetPlayerBuff(buffId, buffFilter)]] will return a value for buffIndex, which is used for all the player buff functions and GameTooltip:SetPlayerBuff(buffIndex).  It is easy to get the two values confused because often they are the same.
Handling player buffs and debuffs are a tad different than unit buffs/debuffs.  [[API GetPlayerBuff|GetPlayerBuff(buffId, buffFilter)]] will return a value for buffIndex, which is used for all the player buff functions and GameTooltip:SetPlayerBuff(buffIndex).  It is easy to get the two values confused because often they are the same.
Line 5: Line 7:
buffId directly correlates to the buff frames in the top right area of the screen.  When a buff wears off all buffs to the right of it are shifted over, both buffId and buffIndex can change at this time!  Here are the ID's and filters for each frame as seen by the user (TempEnchant frames aren't shown as they don't have ID's)
buffId directly correlates to the buff frames in the top right area of the screen.  When a buff wears off all buffs to the right of it are shifted over, both buffId and buffIndex can change at this time!  Here are the ID's and filters for each frame as seen by the user (TempEnchant frames aren't shown as they don't have ID's)


<table border="1" cellpadding="2" cellspacing="0">
{| class="darktable"
<tr><td>HELPFUL</td><td>7</td><td>6</td><td>5</td><td>4</td><td>3</td><td>2</td><td>1</td><td>0</td></tr>
|+ Vanilla WoW
<tr><td>HELPFUL</td><td>15</td><td>14</td><td>13</td><td>12</td><td>11</td><td>10</td><td>9</td><td>8</td></tr>
|-----
<tr><td>HARMFUL</td><td>7</td><td>6</td><td>5</td><td>4</td><td>3</td><td>2</td><td>1</td><td>0</td></tr>
!HELPFUL
</table>
| 7 || 6 || 5 || 4 || 3 || 2 || 1
| 0
|- class="alt"
!HELPFUL
| 15 || 14 || 13 || 12 || 11 || 10 || 9
| 8
|-----
!HARMFUL
| 7 || 6 || 5 || 4 || 3 || 2 || 1
| 0
|}


buffIndex works in a similar way, but there is no distinction between buffs and debuffs, they're all indexed together.  This is the whole reason [[API GetPlayerBuff|GetPlayerBuff(buffId, buffFilter)]] is provided.
buffIndex works in a similar way, but there is no distinction between buffs and debuffs, they're all indexed together.  This is the whole reason [[API GetPlayerBuff|GetPlayerBuff(buffId, buffFilter)]] is provided.
Line 15: Line 27:
Remember that both buffId and buffIndex can change when auras change.  Both values are indexed sequentially starting at 0 at all times, you won't encounter a "gap" if a buff has worn off in the middle of the list.
Remember that both buffId and buffIndex can change when auras change.  Both values are indexed sequentially starting at 0 at all times, you won't encounter a "gap" if a buff has worn off in the middle of the list.


{| class="darktable"
|+ Burning Crusade
|-----
!HELPFUL
| 8 || 7 || 6 || 5 || 4 || 3 || 2
| 1
|-----
!HELPFUL
| 16 || 15 || 14 || 13 || 12 || 11 || 10
| 9
|-----
!HARMFUL
| 8 || 7 || 6 || 5 || 4 || 3 || 2
| 1
|}


;Burning Crusade
Both values are indexed sequentially starting at 1 at all times, you won't encounter a "gap" if a buff has worn off in the middle of the list.


<table border="1" cellpadding="2" cellspacing="0">
Note: buffId and buffIndex values should ''not'' be kept between callbacks, as the buffs they refer to may change, or even cease to exist.
<tr><td>HELPFUL</td><td>8</td><td>7</td><td>6</td><td>5</td><td>4</td><td>3</td><td>2</td><td>1</td></tr>
<tr><td>HELPFUL</td><td>16</td><td>15</td><td>14</td><td>13</td><td>12</td><td>11</td><td>10</td><td>9</td></tr>
<tr><td>HARMFUL</td><td>8</td><td>7</td><td>6</td><td>5</td><td>4</td><td>3</td><td>2</td><td>1</td></tr>
</table>
 
Both values are indexed sequentially starting at 1 at all times, you won't encounter a "gap" if a buff has worn off in the middle of the list.

Latest revision as of 04:47, 15 August 2023

API types

Handling player buffs and debuffs are a tad different than unit buffs/debuffs. GetPlayerBuff(buffId, buffFilter) will return a value for buffIndex, which is used for all the player buff functions and GameTooltip:SetPlayerBuff(buffIndex). It is easy to get the two values confused because often they are the same.

buffId directly correlates to the buff frames in the top right area of the screen. When a buff wears off all buffs to the right of it are shifted over, both buffId and buffIndex can change at this time! Here are the ID's and filters for each frame as seen by the user (TempEnchant frames aren't shown as they don't have ID's)

Vanilla WoW
HELPFUL 7 6 5 4 3 2 1 0
HELPFUL 15 14 13 12 11 10 9 8
HARMFUL 7 6 5 4 3 2 1 0

buffIndex works in a similar way, but there is no distinction between buffs and debuffs, they're all indexed together. This is the whole reason GetPlayerBuff(buffId, buffFilter) is provided.

Remember that both buffId and buffIndex can change when auras change. Both values are indexed sequentially starting at 0 at all times, you won't encounter a "gap" if a buff has worn off in the middle of the list.

Burning Crusade
HELPFUL 8 7 6 5 4 3 2 1
HELPFUL 16 15 14 13 12 11 10 9
HARMFUL 8 7 6 5 4 3 2 1

Both values are indexed sequentially starting at 1 at all times, you won't encounter a "gap" if a buff has worn off in the middle of the list.

Note: buffId and buffIndex values should not be kept between callbacks, as the buffs they refer to may change, or even cease to exist.