Baldrick
Baldrick adds a button to your interface which automatically picks the best daily quest item to use based on all the information it can gather (location, status of the quest, etc).
Usage & Commands
The chat command is /baldrick or /br, however it's easier to configure from WoW's Interface->Addons configuration dialog. Some options can only be set by using WoW's Interface->Addons dialog. These include the profile. Baldrick supports ButtonFacade, use /bf to configure the skin and color settings for the button if you have it installed. Baldrick supports LibKeyBound, use /kb to enter key binding mode. Baldrick's button will stick to other frames that support LibStickyFrames Baldrick outputs the current item it will use using LibDataBroker-1.1. Note that clicking on the item in a Broker addon will not activate the item. You must have Baldrick bound to a key to use it in a Broker addon and hide its own button.Localisations
Many thanks to thrillseeker for the deDE localisation. :)Quest Quirks
- To tell Baldrick you want to cook for Super Hot Stew, you need to target a dead Abyssal Flamebringer.
- To tell Baldrick you want to free some murlocks for Disrupt the Greengill Coast, you need to target a live Greengill Slave.
Handy Outfitter Scripts
A handy script for Outfitter to automatically equip and unequip your Multiphase Spectrographic Goggles is:-- $EVENTS ZONE_CHANGED_INDOORS ZONE_CHANGED ZONE_CHANGED_NEW_AREA QUEST_LOG_UPDATE -- $DESC Equips the outfit when you are in one of the zones or minimap sub-zones listed below and "The Multiphase Survey" is not already complete -- $SETTING zoneList={Type="ZoneList", Label="Zones"} -- $SETTING minimapZoneList={Type="ZoneList", ZoneType="MinimapZone", Label="Minimap zones"} local currentZone = GetZoneText() local Baldrick = Baldrick for _, zoneName in ipairs(setting.zoneList) do if zoneName == currentZone then equip = ( Baldrick ~= nil ) and Baldrick.HasQuestAndNotComplete( 11880 ) break end end if not equip then currentZone = GetMinimapZoneText() for _, zoneName in ipairs(setting.minimapZoneList) do if zoneName == currentZone then equip = ( Baldrick ~= nil ) and Baldrick.HasQuestAndNotComplete( 11880 ) break end end end if didEquip and equip == nil then equip = false endJust set Minimap zones to be either just the localized name for "Spirit Fields" or that and "Nagrand" depending on your preference.
API to add a quest module
Baldrick includes a quest module for daily quests. An API is exposed to add new quest modules.Baldrick:RegisterQuestModule( moduleName, questList, checkLoadFunc )
This function allows for the registration of a quest module.Args
- "moduleName" : string - the name of your module, presented to the user on Baldrick's configuration screen
- questList : table of questInfos - see below for definition of a [[#questInfo]]
- [checkLoadFunc] : function - a function, that returns a boolean, to call to check if the module should be added to the list of quests
Example
Baldrick:RegisterQuestModule( "Daily Quests", dailyQuestList )
questInfo
A questInfo is a table of values which describe a quest. These are the availiable fields; required fields are in bold:- questIDs: Either a number with a questID or a table of numbers with questIDs.
- questItems: A table of items required for the quest. The one with an index of default is what will show on the button. The fields for items are:
- questItem: the itemID of the item
- questItemCount: the MINIMUM number required (the comparison will be >= )
- subZones: A string of subzones/zones this quest is valid for. Zone names will be checked if in a null subzone. Separate entries with |.
- target: String that has the name of a mob that must be the current target, in the player's locale.
- addionalEvents: Either a string with the name of an additional event that this quest should be checked when fired, or a table of strings with names. In addition to the WoW events, mounting and dismounting can be checked by using !Mounted and !Dismounted respectively.
- func: A function that takes two parameters. The first parameter is the quest data iself, the second parameter will hold the questID being used. If used this function must return a boolean, true if this quest is valid to show on the button.
Example
{ --Distraction at the Dead Scar --The Air Strikes Must Continue questIDs = { 11532, 11533, }, --Arcane Charges questItems = { default = { questItem = 34475, questItemCount = 1, }, }, subZones = L["The Dead Scar"], additionalEvents = { "PLAYER_CONTROL_LOST", "PLAYER_CONTROL_GAINED", "TAXIMAP_CLOSED" }, func = function() return UnitOnTaxi( "player" ) end, },
Future Plans
- Possibly integration into quest addons?
[2009/08/30 10:14:02-1328-x2]: LibLordFarlander-UI-2.0-90154:522: attempt to index field 'class' (a nil value)
CallbackHandler-1.0-3:156: in function <...onLoader\CallbackHandler-1.0\CallbackHandler-1.0.lua:156>
<string>:"safecall Dispatcher[7]":4: in function <[string "safecall Dispatcher[7]"]:4>
<in C code>: ?
<string>:"safecall Dispatcher[7]":13: in function `?'
CallbackHandler-1.0-3:91: in function `Fire'
LibStickyFrames-2.0-90032:1142: in function `StopFrameMoving'
LibLordFarlander-UI-2.0-90154:515: in function <...\LibLordFarlander-UI-2.0\LibLordFarlander-UI-2.0.lua:507>
---
Anyway if the author reads this I've seen 1.5 118 to be the latest version. But on wowui and wowinterfance the versions we download is only 1.5 116.
First fix, and first quest I did when I got the addon was for the daily "Leave Our Mark!" There are more then just two targets for the quest that the banner can be used on. Also the match for Spear-Sisters doesn't work, I've tryed Spear-sister and that didn't work. Anyway this is the fix that works now.
--Leave Our Mark!
questIDs = 12995,
--Ebon Blade Banner
questItems = { default = { questItem = 42480, questItemCount = 1, }, },
target = { NPCS["Jotunheim Warrior"], NPCS["Njorndar Spear"], NPCS["Mjordin Water Magus"], NPCS["Valhalas Vargul"], },
func = IsTargetDead,
"The Solution Solution" - Doesn't show the button, probably due to the match table looking for only one of each item before showing it. So if I had all three items total, but 2 of one, the button doesn't show. I'm not sure how to make it match to ">= 1" I tryed it but broke the addon I think.
"Retest Now" - Would be nice for the "Diluted Cult Tonic" icon to check the subzone if possible. Also the "Tainted Essence" nor the "Writhing Mass" seemed to show their icons, they didn't yesterday anyway.
"That's Abominable!" - Icon doesn't show
"Not a Bug" - Icon doesn't show when it should
"Drag and Drop" - Icon for "Orb of Illusion" doesn't show, even if I only have 1 Orb in my bag.
I personally love this addon. Just gotta get these little bugs out of the way.