Broker_PlayTimer
Description
Broker_PlayTimer reports how much time you've spent playing WoW today. It can display a reminder after you've played for a specified length of time, with a "snooze" reminder that comes up again later. Broker_PlayTimer includes timers for the current character (session, today, level and lifetime), daily timers for all characters on the account, time played today as Alliance or Horde, and the sum total played today.
Broker_PlayTimer was inspired by FuBar_PlayFu, and was originally created as a Data Broker plugin. This version doesn't actually require a broker display addon, though: It will work as a standalone add-on with its own minimap button. (It's nicer when used with a display addon, though. I recommend Bazooka, Fortress or Docking Station.)
You can help localize Broker_PlayTimer into other languages by going here.
Installation
- Download the PlayTimer plugin and drag the Broker_PlayTimer folder into the Interface/AddOns folder of your WoW directory.
Version History
1.4
- Added the ability to pause the timer by alt-clicking on it.
1.3
- Added "Example" button in options dialog to display a sample reminder.
1.2
- Now usable as a standalone addon, with its own (optional) minimap button.
- Added the LibSink library for even more reminder output options.
- Timers now begin with 0 minutes (instead of 1 minute) to be consistent with the /played command.
1.1
- Reminders can be delivered as whispers, chat messages, raid warnings, or via pop-up dialog box.
- PlayTimer's "whispers" are now real whispers and respect the player's chat window settings.
- No longer causes the output of the /played command to display in the chat window on startup.
- Added an option to manually reset the timers.
- PlayTimer is now ready to be localized into other languages.
- Code cleanup and optimization.
- Made a -nolib version.
1.0
- First release.
i just love this addon. it is fantastic! an update would be great and much appreciated.
a feature i have always wished to have is a way to be able to go back and see my playing time habits - it would be interesting to be able to see how much time i played yesterday or last week for example.
thanks :)
Please, update this addon.
local L = LibStub("AceLocale-3.0"):NewLocale("Broker_PlayTimer", "zhCN")
if not L then return end
L["1:00 AM"] = "1:00 AM"
L["2:00 AM"] = "2:00 AM"
L["3:00 AM"] = "3:00 AM"
L["4:00 AM"] = "4:00 AM"
L["5:00 AM"] = "5:00 AM"
L["6:00 AM"] = "6:00 AM"
L["Alliance"] = "联盟"
L["Always"] = "一直"
L["Broker_PlayTimer"] = "Broker: 游戏时间"
L["Chat Message"] = "聊天信息"
L["Controls the use of color in the tooltip and on the status bar display."] = "在状态栏提示中开启/禁用颜色."
L["Controls whether to show Alliance and Horde timers in the tooltip."] = "在提示中是否显示联盟/部落游戏时间"
L["Custom"] = "自定义"
L["d"] = "天"
L["day"] = "天"
L["days"] = "天"
L["Default status bar timer:"] = "默认状态栏计时: "
L["Dialog Box"] = "对话框"
L["Display"] = "显示"
L["Enable Reminders"] = "启用提醒"
L["every (minutes):"] = "每 (分钟): "
L["Example"] = "实例"
L["exceeds (minutes):"] = "超过 (分钟): "
L["h"] = "h"
L["Horde"] = "部落"
L["hour"] = "小时"
L["hours"] = "小时"
L["hr"] = "时"
L["hrs"] = "时"
L["Level"] = "等级"
L["Lifetime"] = "人生"
L["m"] = "m"
L["midnight"] = "半夜"
L["min"] = "分"
L["mins"] = "分"
L["minute"] = "分钟"
L["minutes"] = "分钟"
L["Never"] = "从不"
L["Okay"] = "确定"
L["Only if I've played both"] = "仅当两者均存在时"
L["Options"] = "选项"
L["Player, realm and faction timers will be reset to zero minutes at the selected time of day."] = "玩家, 服务器, 与阵营计时器将以选择日期为准重置"
L["PlayTimer"] = "游戏时间"
L["Raid Warning"] = "团队警报"
L["Remind me after I've played for this length of time in minutes."] = "在持续游戏此设置时间(分)后报警"
L["Remind me again"] = "下次报警"
L["Remind me when:"] = "报警时间: "
L["Reminder text:"] = "报警内容: "
L["Reminder: You have been playing for %s."] = "报警:已经游戏 %s."
L["Reminders"] = "报警器"
L["Reset Now"] = "立即重置"
L["Reset player, realm and faction timers to zero minutes."] = "重置计时器, 服务器与阵营计时器"
L["Reset timers at:"] = "重置计时于: "
L["Send my reminders using:"] = "发送计时信息: "
L["Session"] = "进程"
L["Show Alliance / Horde timers:"] = "分别显示联盟/部落计时: "
L["Show an example of how the reminder will appear."] = "显示实例, 展现警示方式."
L["Show Minimap Icon"] = "显示小地图图标"
L["Show name of timer"] = "显示计时名称"
L["Show the timer's name in the status bar display."] = "在状态栏显示计时器名称."
L["Snooze and remind me again after I've played for this length of time in minutes."] = "在持续游戏此时间(分钟)后打盹并提醒."
L["Snooze"] = "打盹"
L["The reminder will be delivered via the specified channel."] = "将通过此频道进行警报."
L["The selected timer will be displayed in the status bar when the player initially enters the realm."] = "选择的计时器将在玩家进入服务器后显示在状态栏上."
L["This character today"] = "当天角色"
L["This Session"] = "本次进程"
L["Time format:"] = "时间格式: "
L["Time played this session"] = "本次游戏时间"
L["Times will be displayed in the selected format."] = "以此格式显示时间"
L["Today"] = "当天"
L["Total Played Today"] = "当天游戏"
L["Total played today"] = "当天游戏"
L["Turn Off"] = "关闭"
L["Use color"] = "使用颜色"
L["Use the string '%s' (without the quotes) to display the timer duration."] = "使用字符串 '%s' (无单引号)显示计时时间"
L["Whisper"] = "密语"
L["Show Hint Text"] = "显示提示文本"
L["Show mouse-click hints in the tooltip."] = "在提示中显示鼠标点击提示"
L["Flash When Paused"] = "暂停时闪烁"
L["Change status bar color to warn when timers are paused."] = "计时器停止后, 状态栏闪烁警报."
L['Right-click to open the options panel'] = "右键: 打开配置面板"
L['Alt-click to pause or resume timing'] = "ALT+单击: 暂停或恢复计时"
L["Ctrl-click to show the timer's name"] = "CTRL+单击: 显示计时器名称"
L['Shift-click for 1m, 1 min or 1 minute'] = "SHIFT+单击: 切换 m 或 分 或 分钟 (显示方式)"
L['Click to show player, day or session'] = "点击切换玩家, 当日或进程"
1) Add seconds!
2) A compact time format. IE: 1:23 for 1 minute 23 seconds, 3d 04:05:06 for 3 days 4 hours 5 minutes 6 seconds, etc.
I've tried to make PlayTimer very lightweight in terms of CPU usage, so as not to reduce framerates or interfere with gameplay --basically the add-on wakes up once a minute, does its thing and then goes back to sleep. I could change things so that it wakes up once a second instead, but that'd be a 60x increase in CPU usage... and I'm not sure how many people want to track their time spent playing WoW down to the exact second. :-) If there's popular demand I'll consider it, though -- and in the meantime Broker uClock is a good general-purpose "clock" add-on that can be configured to display seconds.
Regarding compact time formats, PlayTimer has a "1h 23m" format that you can choose from the options menu, or you can cycle through the different time formats by shift-clicking on the timer.
...terface\AddOns\Broker_PlayTimer\Broker_PlayTimer.lua:629: attempt to index a nil value
Time: 12/17/09 14:05:23
Count: 7
Stack: ...terface\AddOns\Broker_PlayTimer\Broker_PlayTimer.lua:629: in function `OnTooltipShow'
Interface\AddOns\ChocolateBar\Chocolate.lua:183: in function <Interface\AddOns\ChocolateBar\Chocolate.lua:161>
Locals: self = GameTooltip {
SetExistingSocketGem = <function> defined =[C]:-1
SetCurrencyToken = <function> defined =[C]:-1
SetGuildBankItem = <function> defined =[C]:-1
comparing = false
SetSocketGem = <function> defined =[C]:-1
Show = <function> defined @Interface\AddOns\TipTac\core.lua:823
tipTacGradient = <unnamed> {
}
SetLootItem = <function> defined =[C]:-1
SetQuestItem = <function> defined =[C]:-1
FadeOut = <function> defined @Interface\AddOns\TipTac\core.lua:833
SetInboxItem = <function> defined =[C]:-1
SetBuybackItem = <function> defined =[C]:-1
shoppingTooltips =
}
SetHyperlinkCompareItem = <function> defined =[C]:-1
SetMerchantItem = <function> defined =[C]:-1
SetQuestLogItem = <function> defined =[C]:-1
SetBackpackToken = <function> defined =[C]:-1
SetTradeTargetItem = <function> defined =[C]:-1
SetTradePlayerItem = <function> defined =[C]:-1
SetSendMailItem = <function> defined =[C]:-1
updateTooltip = 0.076999992877245
SetInventoryItem = <function> defined =[C]:-1
SetLootRollItem = <function> defined =[C]:-1
SetMerchantCostItem = <function> defined =[C]:-1
SetAuctionSellItem = <function> defined =[C]:-1
SetBagItem = <function> defined =[C]:-1
SetTrainerService = <function> defined =[C]:-1
0 = <userdata>
SetHyperlink = <function> defined =[C]:-1
SetTradeSkillItem = <function> defined =[C]:-1
SetAuctionItem = <function> defined =[C]:-1
}
(*temporary) = <function> defined =[C]:-1
(*temporary) = GameTooltip {
SetExistingSocketGem = <function> defined =[C]:-1
SetCurrencyToken = <function> defined =[C]:-1
SetGuildBankItem = <function> defined =[C]:-1
comparing = false
SetSocketGem = <function> defined =[C]:-1
Show = <function> defined @Interface\AddOns\TipTac\core.lua:823
tipTacGradient = <unnamed> {
}
SetLootItem = <function> defined =[C]:-1
SetQuestItem = <function> defined =[C]:-1
FadeOut = <function> defined @Interface\AddOns\TipTac\core.lua:833
SetInboxItem = <function> defined =[C]:-1
SetBuybackItem = <function> defined =[C]:-1
shoppingTooltips =
}
SetHyperlinkCompareItem = <function> defined =[C]:-1
SetMerchantItem = <function> defined =[C]:-1
SetQuestLogItem = <function> defined =[C]:-1
SetBackpackToken = <function> defined =[C]:-1
SetTradeTargetItem = <function> defined =[C]:-1
SetTradePlayerItem = <function> defined =[C]:-1
SetSendMailItem = <function> defined =[C]:-1
updateTooltip = 0.076999992877245
SetInventoryItem = <function> defined =[C]:-1
SetLootRollItem = <function> defined =[C]:-1
SetMerchantCostItem = <function> defined =[C]:-1
SetAuctionSellItem = <function> defined =[C]:-1
SetBagItem = <function> defined =[C]:-1
SetTrainerService = <function> defined =[C]:-1
0 = <userdata>
SetHyperlink = <function> defined =[C]:-1
SetTradeSkillItem = <function> defined =[C]:-1
SetAuctionItem = <function> defined =[C]:-1
}
(*temporary) = " Today"
(*temporary) = <function> defined @Interface\AddOns\Broker_PlayTimer\Broker_PlayTimer.lua:250
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = "Uldum"
(*temporary) = 0
(*temporary) = 0
(*temporary) = "d"
(*temporary) = "h"
(*temporary) = "m"
(*temporary) = "%dm"
(*temporary) = "0m"
(*temporary) = "0m"
(*temporary) = "0m"
(*temporary) = "%dm"
(*temporary) = 0
(*temporary) = "0m"
(*temporary) = 255
(*temporary) = "attempt to index a nil value"
colorizeText = <function> defined @Interface\AddOns\Broker_PlayTimer\Broker_PlayTimer.lua:171
L =
mins = "mins"
Always = "Always"
d = "d"
h = "h"
minute = "minute"
m = "m"
Player, realm and faction timers will be reset to zero minutes at the selected time of day. = "Player, re
It looks like you downloaded the r12 alpha from WowAce, and that release has a (fatal) bug -- the 1.0-release version on the curse.com page is the latest stable build. I just uploaded an r13 alpha that fixes the r12 bug, though, if you'd like to try it.
Thanks!