Parrot
Floating Combat Text of awesomeness.
Displays Events from the combatlog (damage, healing, ...) as moving text and numbers across the Screen. It also supports various other Events (Loot, Cooldowns, ...). Further Parrot offers a Trigger-system to display Text and play sounds on certain predefined events (e.g. Nightfall for Warlocks).
Localization
If you want to translate Parrot into your language (or update an existing translation) please do so here.
FAQ
Q: "I created a custom Trigger doing <something>. Is it worthy to be in parrots default triggers?"
A: In many cases it is. If you want to contribute a custom trigger to be added to the default triggers, please post a ticket where you describe *exactly* how you set it up. I can't figure that out for every class and every spec.
Q: "Parrot is not showing heals, but it's enabled in the options"
A: Since 3.2 WoW displays every full overheal in the combatlog (even for HoTs). That's why Parrot v1.9.0+ contains an option in Events to "Hide full overheals" which is enabled by default to avoid unnecessary spam.
Q: ''I want to use custom fonts and sounds in Parrot, but there are none available'
A: Parrot doesn't provide sounds or additional fonts (only the fonts included in WoW)
For additional fonts and sounds please install SharedMedia.
To use custom sounds and fonts see the "INSTRUCTIONS for MyMedia.txt" in the SharedMedia-folder.
Q: "Whenever I /reload or log back in again, parrot auto-hides blizzard's default outgoing damage text (the one above the mob in question). Is there any way to avoid having to enable blizz's functions all the time?
A: When enabled Parrot manages the settings for Blizzard FCTs damage- and heal-display. You can enable these features to be used with Parrot in the config (General->Game damage/healing)
Q: "Sometimes when Looting stackable items, the stackcount is off. Why isn't this fixed?"
A: The problem is, that the Interface-event for the Loot is sometimes triggered before, and sometimes after the item was put in the bag (depending on lag). If anyone knows a solution that does not involve constantly polling the bags' content, I'm open to suggestions.
Questions
If you need help with some option, trigger, or whatever use the Parrot-forum on wowace for any questions you might have (please no bug-reports).
Feature Requests
To make a feature Request please use the ticket-system.
Before making a feature Request please make sure that the current alpha does not contain the feature already.
Also check if there is a similar feature request among the open tickets already (and maybe join the discussion there).
I am wondering if it's somehow possible to truncate the honor gains announces? Right now it's showing with 10+ decimals. :/
Thanks!
The settings for the trigger are:
Type: Aura stacks received
Amount: 9 (tried 6-9, with no effect)
Aura type: buff
Unit: player
Spell: Lightning Shield
However, this trigger does not go off when I reach 9 (or 6-9) charges on my Lightning Shield.
It works though if I set up a trigger that merely checks if Lightning Shield is up:
Type: Aura
Aura type: buff
Unit: player
Spell: Lightning Shield
Am I missing something or does Parrot not track shield charges as buff stacks properly?
ID: 9
Error occured in: Global
Count: 2
Message: ..\AddOns\Parrot\Code\Triggers.lua line 629:
bad argument #1 to 'split' (string expected, got nil)
Debug:
(tail call): ?
[C]: split()
Parrot\Code\Triggers.lua:629:
Parrot\Code\Triggers.lua:620
Parrot\Code\Triggers.lua:1149: ChangeProfile()
Parrot\Code\Parrot.lua:290: ChangeProfile()
Parrot\Code\Parrot.lua:324:
Parrot\Code\Parrot.lua:303
(tail call): ?
[C]: ?
[string "safecall Dispatcher[1]"]:9:
[string "safecall Dispatcher[1]"]:5
(tail call): ?
Ace3\AceAddon-3.0\AceAddon-3.0.lua:539: EnableAddon()
Ace3\AceAddon-3.0\AceAddon-3.0.lua:629:
Ace3\AceAddon-3.0\AceAddon-3.0.lua:615
[C]: LoadAddOn()
..\FrameXML\UIParent.lua:242: UIParentLoadAddOn()
..\FrameXML\UIParent.lua:316: TimeManager_LoadUI()
..\FrameXML\UIParent.lua:517:
..\FrameXML\UIParent.lua:492
Count: 2
Call Stack:
(tail call): ?
[C]: in function `split'
Interface\AddOns\Parrot\Code\Triggers.lua:629: in function <Interface\AddOns\Parrot\Code\Triggers.lua:620>
Interface\AddOns\Parrot\Code\Triggers.lua:1149: in function `ChangeProfile'
Interface\AddOns\Parrot\Code\Parrot.lua:290: in function `ChangeProfile'
Interface\AddOns\Parrot\Code\Parrot.lua:324: in function <Interface\AddOns\Parrot\Code\Parrot.lua:303>
(tail call): ?
[C]: ?
[string "safecall Dispatcher[1]"]:9: in function <[string "safecall Dispatcher[1]"]:5>
(tail call): ?
...\AddOns\AtlasLoot\Libs\AceAddon-3.0\AceAddon-3.0.lua:539: in function `EnableAddon'
...\AddOns\AtlasLoot\Libs\AceAddon-3.0\AceAddon-3.0.lua:629: in function <...\AddOns\AtlasLoot\Libs\AceAddon-3.0\AceAddon-3.0.lua:615>
[C]: in function `LoadAddOn'
Interface\FrameXML\UIParent.lua:242: in function `UIParentLoadAddOn'
Interface\FrameXML\UIParent.lua:265: in function `CombatLog_LoadUI'
Interface\FrameXML\UIParent.lua:519: in function <Interface\FrameXML\UIParent.lua:492>
1x Parrot-v1.10.20\Code\Triggers.lua:629: bad argument #1 to 'split' (string expected, got nil)
Parrot-v1.10.20\Code\Triggers.lua:629: in function <Parrot\Code\Triggers.lua:620>
Parrot-v1.10.20\Code\Triggers.lua:1191: in function <Parrot\Code\Triggers.lua:1152>
(tail call): ?:
<in C code>: ?
<string>:"safecall Dispatcher[1]":9: in function <[string "safecall Dispatcher[1]"]:5>
(tail call): ?:
AceAddon-3.0-5 (Announce):365: in function `EnableAddon'
AceAddon-3.0-5 (Announce):377: in function `EnableAddon'
AceAddon-3.0-5 (Announce):435: in function <...e\AddOns\Announce\libs\AceAddon-3.0\AceAddon-3.0.lua:421>
<in C code>: in function `LoadAddOn'
Interface\FrameXML\UIParent.lua:242: in function `UIParentLoadAddOn':
Interface\FrameXML\UIParent.lua:265: in function `CombatLog_LoadUI':
Interface\FrameXML\UIParent.lua:519: in function <Interface\FrameXML\UIParent.lua:492>:
---
And this second one:
1x Parrot-v1.10.20\Code\Triggers.lua:629: bad argument #1 to 'split' (string expected, got nil)
Parrot-v1.10.20\Code\Triggers.lua:629: in function <Parrot\Code\Triggers.lua:620>
Parrot-v1.10.20\Code\Triggers.lua:1149: in function `ChangeProfile'
Parrot-v1.10.20\Code\Parrot.lua:290: in function `ChangeProfile'
Parrot-v1.10.20\Code\Parrot.lua:324: in function <Parrot\Code\Parrot.lua:303>
(tail call): ?:
<in C code>: ?
<string>:"safecall Dispatcher[1]":9: in function <[string "safecall Dispatcher[1]"]:5>
(tail call): ?:
AceAddon-3.0-5 (Announce):365: in function `EnableAddon'
AceAddon-3.0-5 (Announce):435: in function <...e\AddOns\Announce\libs\AceAddon-3.0\AceAddon-3.0.lua:421>
<in C code>: in function `LoadAddOn'
Interface\FrameXML\UIParent.lua:242: in function `UIParentLoadAddOn':
Interface\FrameXML\UIParent.lua:265: in function `CombatLog_LoadUI':
Interface\FrameXML\UIParent.lua:519: in function <Interface\FrameXML\UIParent.lua:492>:
---
After login I get this error:
Message: Interface\AddOns\Parrot\Code\Triggers.lua:629: bad argument #1 to 'split' (string expected, got nil)
Message: Interface\AddOns\Parrot\Code\CombatEvents.lua:1946: attempt to index upvalue 'sthrottles' (a nil value)
Time: 10/13/10 00:40:02
Count: 1
Stack: Interface\AddOns\Parrot\Code\CombatEvents.lua:1946: in function <Interface\AddOns\Parrot\Code\CombatEvents.lua:1945>
Interface\AddOns\Parrot\Code\CombatEvents.lua:2060: in function `TriggerCombatEvent'
Interface\AddOns\Parrot\Code\CombatEvents.lua:2496: in function `HandleCombatlogEvent'
Interface\AddOns\Parrot\Code\Parrot.lua:370: in function `?'
...nos\libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:147: in function <...nos\libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:147>
[string "safecall Dispatcher[21]"]:4: in function <[string "safecall Dispatcher[21]"]:4>
[C]: ?
[string "safecall Dispatcher[21]"]:13: in function `?'
...nos\libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:92: in function `Fire'
...ce\AddOns\Dominos\libs\AceEvent-3.0\AceEvent-3.0.lua:120: in function <...ce\AddOns\Dominos\libs\AceEvent-3.0\AceEvent-3.0.lua:119>
Locals: <none>
Message: Interface\AddOns\Parrot\Code\CombatEvents.lua:1946: attempt to index upvalue 'sthrottles' (a nil value)
Time: 10/13/10 00:40:02
Count: 1
Stack: Interface\AddOns\Parrot\Code\CombatEvents.lua:1946: in function <Interface\AddOns\Parrot\Code\CombatEvents.lua:1945>
Interface\AddOns\Parrot\Code\CombatEvents.lua:2060: in function `TriggerCombatEvent'
Interface\AddOns\Parrot\Code\CombatEvents.lua:2496: in function `HandleCombatlogEvent'
Interface\AddOns\Parrot\Code\Parrot.lua:370: in function `?'
...nos\libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:147: in function <...nos\libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:147>
[string "safecall Dispatcher[21]"]:4: in function <[string "safecall Dispatcher[21]"]:4>
[C]: ?
[string "safecall Dispatcher[21]"]:13: in function `?'
...nos\libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:92: in function `Fire'
...ce\AddOns\Dominos\libs\AceEvent-3.0\AceEvent-3.0.lua:120: in function <...ce\AddOns\Dominos\libs\AceEvent-3.0\AceEvent-3.0.lua:119>
Locals: <none>
Message: Interface\AddOns\Parrot\Code\Triggers.lua:629: bad argument #1 to 'split' (string expected, got nil)
Time: 10/12/10 20:56:00
Count: 1
Stack: [C]: in function `split'
Interface\AddOns\Parrot\Code\Triggers.lua:629: in function <Interface\AddOns\Parrot\Code\Triggers.lua:620>
Interface\AddOns\Parrot\Code\Triggers.lua:1191: in function <Interface\AddOns\Parrot\Code\Triggers.lua:1152>
(tail call): ?
[C]: ?
[string "safecall Dispatcher[1]"]:9: in function <[string "safecall Dispatcher[1]"]:5>
(tail call): ?
...dOns\Broker2FuBar\libs\AceAddon-3.0\AceAddon-3.0.lua:365: in function `EnableAddon'
...dOns\Broker2FuBar\libs\AceAddon-3.0\AceAddon-3.0.lua:435: in function <...dOns\Broker2FuBar\libs\AceAddon-3.0\AceAddon-3.0.lua:421>
[C]: in function `LoadAddOn'
[string "Interface\FrameXML\BasicControls.xml:<Scrip..."]:7: in function <[string "Interface\FrameXML\BasicControls.xml:<Scrip..."]:4>
(tail call): ?
...
(tail call): ?
[C]: ?
[string "safecall Dispatcher[1]"]:9: in function <[string "safecall Dispatcher[1]"]:5>
(tail call): ?
...dOns\Broker2FuBar\libs\AceAddon-3.0\AceAddon-3.0.lua:365: in function `EnableAddon'
...dOns\Broker2FuBar\libs\AceAddon-3.0\AceAddon-3.0.lua:435: in function <...dOns\Broker2FuBar\libs\AceAddon-3.0\AceAddon-3.0.lua:421>
[C]: in function `LoadAddOn'
Interface\FrameXML\UIParent.lua:242: in function `UIParentLoadAddOn'
Interface\FrameXML\UIParent.lua:265: in function `CombatLog_LoadUI'
Interface\FrameXML\UIParent.lua:519: in function <Interface\FrameXML\UIParent.lua:492>
Locals: (*temporary) = ";"
(*temporary) = nil
(*temporary) = "string expected, got nil"
Message: Interface\AddOns\Parrot\Data\CombatEvents.lua:142: Usage: GetPlayerInfoByGUID("playerGUID")
Time: 10/06/10 16:10:57
Count: 8
Stack: [C]: ?
[C]: in function `GetPlayerInfoByGUID'
Interface\AddOns\Parrot\Data\CombatEvents.lua:142: in function `value'
Interface\AddOns\Parrot\Code\CombatEvents.lua:1770: in function <Interface\AddOns\Parrot\Code\CombatEvents.lua:1765>
[C]: in function `gsub'
Interface\AddOns\Parrot\Code\CombatEvents.lua:2191: in function <Interface\AddOns\Parrot\Code\CombatEvents.lua:2153>
Interface\AddOns\Parrot\Code\CombatEvents.lua:2311: in function <Interface\AddOns\Parrot\Code\CombatEvents.lua:2308>
It's fixed in 1.10.19a.
Thanks to Goldelf for narrowing it down.