Pokedex
IMPORTANT UPDATE FOR 9.2
The "new hotness" feature for mounts has been completely rewritten to work better with how the game has operated the last several expansions. The problems were that 1) multiple new mounts are often acquired in a small window of time followed by periods of drought and 2) flying mounts are often acquired when the vast majority of time was being spent in ground mount only zones.
The result is that many new mounts never really get a chance to be highlighted by the system before getting bumped down into the full pool. The solution is to track multiple hot mounts. Now, when you acquire a new mount its given a heat value. When you summon a mount, we will first check that slider percentage to see if we should summon from the pool of hot mounts. If so, we'll select from amongst just those mounts with hotter mounts having a greater chance of being summoned. A mount summoned this way loses one from its heat value. When a mount hits zero its no longer hot and falls into the general pool of mounts.
This system should ensure that all new mounts you acquire will have their time in the sun with the most recently acquired mounts being summoned the most often.
USING POKEDEX - THE SHORT VERSION
The games Key Binding UI will contain a section for Pokedex. The only two commands you'll probably want or need to keybind are Toggle Mount and Summon Companion. SummonOtherMount is a useful bind for those times when you don't want the type of mount we selected (for example, we choose a swimming mount but you want a regular one). Pokedex configuration can be reached through the games addons menu or by typing /pd. The full list of commands can be found at http://www.wowace.com/addons/pokedex/pages/main/actions/.
ADDON DESCRIPTION
Pokedex allows random summoning of mounts and companions using preference values set by user to influence selection. Pokedex will summon the appropriate mount, or invoke a class specific movement ability like Ghost Wolf or Burning Rush, based on what the current location and conditions support. Pokedex can also randomly set character's title using the same basic ranking system.
The chance of a particular item (mount, companion or title) being selected is equal to the rank you have assigned to it divided by the total of the ranks for all other eligible items. Put another way, each point of ranking is one ticket to the raffle drawing to see which mount is selected. If all items are still set to the default value, then they all have an equal chance of being selected. An item which you have assigned a value of 0 will never be selected.
PROFILE SUPPORT
Pokedex has support for all the normal ace3 profile stuff (change current, copy, etc), with a couple of twists so that you can have the benefits of sharing a profile and still be able to make character specific tweaks by overriding the rank value on that character. See http:www.wowace.com/addons/pokedex/pages/profiles/ for more info.
ADDITIONAL FEATURES
The New Hotness - The idea behind this feature is that your most recently acquired pet/mount/title is something you're probably excited about and what to see more often than the rest of your collection. Or maybe you want to flaunt it in front of the all the people who are still trying to get, for example, their Sinister Squashling. When dealing with large numbers of pets or mounts, even setting it to the max rank will not cause it to show up very often. So rather than make you downrank every other item, the hotness feature acts as a way to get that one pet or mount out more often. If there is a hot pet, we'll first do a percentile roll against the heat of hot item. If the heat is set to 50, then 50 percent of the time we would summon that hot pet. The other 50 percent of the time, we'll do the usual random selection out of the weighted pet pool.
Safe Dismount - This feature is disabled by default but can be turned on in Pokedex's options ui. This feature allows you to keep as a default behavior that of having the Auto Dismount in Flight option turned off, so that accidently trying to cast a spell in flight won't send you plummeting to your death, but allows you to choose override scenarios where you do want actions to dismount you automatically so that they can be executed. The scenarios you can opt into are 1) when you are in combat, 2) targeting something attackable or 3) attempting to gather a resource via mining, herbalism or skinning.
Random Titles - You can also rank titles the way you do pets and mounts and have Pokedex periodically change your title.
Auto summon pet - You can have Pokedex summon a non-combat pet, if you don't already have one out, every time you dismount or change zone.
Druid forms, Ghost Wolf and Burning Rush support - Pokedex supports using Druid forms, Shaman Ghost Wolf and Warlock Burning Rush in the appropriate situations as part of the Toggle Mount command.
autocast Water Walking when mounting - An option exists (off by default) for Shamans to cast Water Walking and Affliction Warlocks to cast a Soulburned Unending Breath as they summon a mount with the Toggle Mount command. This way the buff is already in place when they encounter water so they don't have to dismount, buff and then remount (all while wondering why Death Knights get to cast Path of Frost while mounted).
autocast Horn of Winter when mounting - For Death Knights, Pokedex can cast Horn of Winter whenever you mount. This is useful for keeping the buff up while questing or resource gathering (e.g. mining).
local L = LibStub("AceLocale-3.0"):NewLocale("Pokedex", "zhTW")
if not L then return end
-- Keybinding
L["Pokedex"] = "Pokedex"
L["Super Toggle"] = "超級切換"
L["Summon Mount"] = "招喚坐騎"
L["Dismiss Mount"] = "解除坐騎"
L["Summon Next Mount"] = "招喚下個坐騎"
L["Summon Other Mount"] = "招喚其他坐騎"
L["Toggle Mount"] = "切換坐騎"
L["Summon Companion"] = "招喚寵物"
L["Dismiss Companion"] = "解除寵物"
L["Toggle Companion"] = "切換寵物"
L["Summon Next Companion"] = "招喚下個寵物"
L["Summon Vendor"] = "招喚載具"
L["Change Title"] = "改變稱號"
-- Chat commands
L["pokedex"] = "pokedex"
L["pd"] = "pd"
-- Announcement channels names
L["personal"] = "個人"
L["party"] = "隊伍"
L["raid"] = "團隊"
L["emote"] = "表情"
L["say"] = "說"
L["yell"] = "大喊"
-- Announcement messages, %s is name of companion or mount
L["%s, I choose you!"] = "%s, 我選擇了你!"
L["lets %s know that they have been chosen."] = "lets %s know that they have been chosen."
-- mount types
L["Unidentified Mounts"] = "不明坐騎"
L["Flyers"] = "飛行坐騎"
L["Runners"] = "陸地坐騎"
L["Walkers"] = "Walkers"
L["Swimmers"] = "水中坐騎"
L["Vashj'ir Seahorses"] = "瓦斯琪爾海馬"
L["Qiraji Scarabs"] = "其拉甲蟲坐騎"
-- Update messages
L["New mount added: %s"] = "新坐騎添加: %s"
L["New companion added: %s"] = "新寵物添加: %s"
L["New title added: %s"] = "新稱號添加: %s"
-- drop down strings for nil cases
L["name not yet available"] = "名稱尚未公佈"
L["no mounts available"] = "無坐騎可用"
L["no companions available"] = "無寵物可用"
L["no titles available"] = "無稱號可用"
L["no hot mount"] = "無火熱坐騎"
L["no hot companion"] = "無火熱寵物"
L["no hot title"] = "無火熱稱號"
L["None"] = "無"
-- tooltip strings checked for gathering
L["Requires"] = "需要"
L["Mining"] = "採礦"
L["Herbalism"] = "草藥"
L["Skinnable"] = "美化"
-- commands and options
L["retry initialization"] = "重試初始化"
L["Mounts"] = "坐騎"
L["Companions"] = "寵物"
L["Titles"] = "稱號"
L["Safe Dismount"] = "安全解除"
L["Please see the README.TXT file in the Pokedex addon folder for more information on how to use Pokedex"] = "Please see the README.TXT file in the Pokedex addon folder for more information on how to use Pokedex"
L["echoes out test info relevant to current feature in development"] = "echoes out test info relevant to current feature in development"
L["echoes out current speed"] = "回報目前速度"
L["echoes out zone info"] = "回報地域資訊"
L["announce"] = "通告"
L["(on|off) let everyone know who *you* choose"] = "(on|off) let everyone know who *you* choose"
L["channel"] = "頻道"
L["channel to announce selection in"] = "通告在選擇的頻道"
L["summon companion"] = "招喚寵物"
L["summons a companion"] = "招喚一個寵物"
L["summon next companion"] = "招喚下個寵物"
L["summons next companion in collection"] = "summons next companion in collection"
L["dismiss companion"] = "解除寵物"
L["dismisses current companion"] = "解除當前寵物"
L["select companion for ranking"] = "選擇寵物等級"
L["companion whose rank you can set"] = "你可以設置寵物的優先等級"
L["companion rank"] = "寵物等級"
L["rank of current companion"] = "當前寵物等級"
L["summon mount"] = "招喚坐騎"
L["summons a mount"] = "招喚一個坐騎"
L["summon next mount"] = "招喚下個坐騎"
L["summons next mount in collection"] = "summons next mount in collection"
L["dismiss mount"] = "解除坐騎"
L["dismisses current mount"] = "解除當前坐騎"
L["select mount type"] = "選擇坐騎類型"
L["select mount for ranking"] = "選擇坐騎等級"
L["mount whose rank you can set"] = "你可以設置坐騎的優先等級"
L["mount rank"] = "坐騎等級"
L["rank of current mount"] = "當前坐騎等級"
L["enable hot pets"] = "啟用火熱寵物"
L["lets your turn on|off the hot pet subfeatures"] = "lets your turn on|off the hot pet subfeatures"
L["new hotness"] = "新熱點"
L["always make newest mount or companion the hot one"] = "總是讓新坐騎或寵物為新熱點"
L["select hot companion"] = "選擇火熱寵物"
L["companion to become hot one"] = "成為火熱寵物"
L["companion heat"] = "寵物熱度"
L["set hotness as a percentage - 100% means the hot pet is the only one that will be chosen"] = "設定熱度為100%代表會是唯一招喚的寵物"
L["select hot mount"] = "選擇火熱坐騎"
L["mount to become hot one"] = "成為火熱坐騎"
L["mount heat"] = "坐騎熱度"
L["set hotness as a percentage - 100% means the hot mount is the only one that will be chosen"] = "設定熱度為100%代表會是唯一招喚的坐騎"
L["Change title on mount"] = "上坐騎換稱號"
L["Change title when a mount is summoned"] = "當招喚坐騎時換稱號"
L["change title"] = "改變稱號"
L["select title for ranking"] = "選擇稱號等級"
L["title whose rank you can set"] = "你可以設置稱號的優先等級"
L["title rank"] = "稱號等級"
L["rank of current title"] = "當前稱號等級"
L["select hot title"] = "選擇火熱稱號"
L["title to become hot one"] = "成為火熱稱號"
L["title heat"] = "稱號熱度"
L["set hotness as a percentage - 100% means the hot title is the only one that will be chosen"] = "設定熱度為100%代表會是唯一選擇的稱號"
L["toggle companion"] = "切換寵物"
L["toggles a companion"] = "toggles a companion"
L["toggle mount"] = "切換坐騎"
L["toggles a mount"] = "toggles a mount"
L["toggle mount or companion"] = "切換坐騎或寵物"
L["toggles mount or companion"] = "切換坐騎或寵物"
L["summon other mount"] = "招喚其他坐騎"
L["if summon mount would summon flyer, will summon ground mount and vice versa"] = "if summon mount would summon flyer, will summon ground mount and vice versa"
L["summon vendor"] = "summon vendor"
L["summons a mount or companion with vendor capabilities"] = "summons a mount or companion with vendor capabilities"
L["This feature works with and manages the games Auto Dismount in Flight setting to improve your experience with flying mounts. Auto dismount will be disabled unless in one of the selected conditions."] = "This feature works with and manages the games Auto Dismount in Flight setting to improve your experience with flying mounts. Auto dismount will be disabled unless in one of the selected conditions."
L["Manage Auto Dismount"] = "自動解除坐騎管理"
L["Enables Pokedex's management of the Auto Dismount in Flight option"] = "啟用Pokedex的自動解除飛騎管理選項"
L["Dismount for Combat"] = "進入戰鬥解除"
L["Enables Auto Dismount when in combat"] = "Enables Auto Dismount when in combat"
L["Dismount to Attack"] = "開始攻擊時解除"
L["Enables Auto Dismount when targeting something attackable"] = "Enables Auto Dismount when targeting something attackable"
L["Dismount for Gathering"] = "採集時解除"
L["Enables Auto Dismount when gathering a resource with mining, herbalism or skinning"] = "Enables Auto Dismount when gathering a resource with mining, herbalism or skinning"
-- ERRORS
L["ERROR: Pokedex failed to initialize correctly. This is usually caused when WoW has invalidated its cache and hasn't finished rebuilding it. Please try this action again later."] = "ERROR: Pokedex failed to initialize correctly. This is usually caused when WoW has invalidated its cache and hasn't finished rebuilding it. Please try this action again later."
L["ERROR: only one of Total Ranks and Summonable List was zero"] = "ERROR: only one of Total Ranks and Summonable List was zero"
L["ERROR: category selected that appears to have no mounts"] = "ERROR: category selected that appears to have no mounts"
L["ERROR: You have no summonable mounts."] = "ERROR: You have no summonable mounts."
L["ERROR: mount name not available"] = "ERROR: mount name not available"
L["ERROR: You have no summonable companions."] = "ERROR: You have no summonable companions."
L["ERROR: companion name not available"] = "ERROR: companion name not available"
L["ERROR: You don't have any titles."] = "ERROR: You don't have any titles."
L["ERROR: title name not available"] = "ERROR: title name not available"
L["ERROR: selection error"] = "ERROR: selection error"
L["ERROR: type error"] = "ERROR: type error"
L["ERROR: You cannot summon your mammoth in this area"] = "ERROR: You cannot summon your mammoth in this area"
L["ERROR: You have no mounts or pets with vendor capabilities"] = "ERROR: You have no mounts or pets with vendor capabilities"
-- CVAR text not sure if this actually needs updating
L["AUTO_DISMOUNT_FLYING_TEXT"] = "自動解除飛騎文本"
-- not include enUS.lua
L["Summon Vendor"] = "招喚載具"
L["All Flyers"] = "所有飛行坐騎"
L["Fast Flyers"] = "快速飛行座騎"
L["All Runners"] = "所有陸地坐騎"
L["style over substance"] = true
L["when summoning, combine extremely fast (310%) and very fast (280%) flying mounts into one group"] = true
L["keeping it real (slow)"] = true
L["when summoning, combine fast and slow mounts into one group"] = true
L["extremely fast"] = "非常快"
L["Extremely Fast Flyers"] = "非常快的飛行坐騎"
L["location"] = "地區"
L["mount"] = "坐騎"
L["name not yet available"] = "名稱尚未公佈"
L["only"] = "唯一"
L["ride"] = "騎乘"
L["rideable"] = "可騎乘"
L["Riding skill"] = "騎乘技能"
L["slow"] = "慢"
L["Slow Runners"] = "慢速陸地坐騎"
L["super toggle"] = "超級切換"
L["Vashj'ir Seahorses"] = "瓦斯琪爾海馬"
L["very fast"] = "非常快"
L["Very Fast Flyers"] = "非常快的飛行坐騎"
L["Very Fast Runners"] = "非常快的陸地坐騎"
Note, some of those strings have been removed from Pokedex because changes to the way the game does mount speeds made them irrelevant. In the future, you can do translations for zhTW directly at http://www.wowace.com/addons/pokedex/localization/zhTW/. I don't get notifications when people make changes on that site, unfortuneately, so if you update any strings then please also PM me or post in the comment section here or on wowace.
Here's a question for you - if you're using the latest version (v3.3.18) and you disable *all* addons except Pokedex, does the problem still reproduce? I tried that setup and it worked just fine for me.
Wule - please use that .20 release when trying to see if you can still generate the load/save problem - especially when pokedex is the only addon enabled.
So again we come to my feeling that this is a problem that isn't specifically pokedex. But that means you should see it with other addons, especially ones using AceDB-3.0.
Actually, what it most sounds like is a problem I had when I upgraded my computer from winxp to windows 7. My WoW install was not on my C drive and so when I upgraded the partition it was on didn't really get touched. Windows 7 got all confused because the folders in that wow directory were marked as being owned by a user identifer that it knew nothing about - an admin account that had been on that xp machine. So even if I ran WoW at system administrator privileges it still had issues where it wouldn't actually right out changes to files in those folders. So IIRC, things would work but then next session they'd be back to the way they were ... that could be something like what you're seeing.
The settings are saved in WTF\Account\[name of your account]\SavedVariables\Pokedex.lua. If you make changes to a pet or mounts rank and reloadui, those changes should be written out to that file right then. So, I'd like you to test that. Check both that the if you examine the file after the reloadui whether the file contains the new value and also in the file system what's the Date Modified. When was the last time the file actually got changed.
/script UIErrorsFrame:UnregisterEvent("UI_ERROR_MESSAGE");
/cast [stance:0,nomounted,indoors] [stance:0,nomounted,combat] Ghost Wolf
/pd ToggleMount
/cancelform [stance:1]
/script UIErrorsFrame:RegisterEvent("UI_ERROR_MESSAGE"
Give that a try and tell me how it works.
I can't add support for Ghost Wolf or Druid forms at this time. In the future, once I finally figure out the whole SecureTemplates thing, I may be able to. But based off what I think I know about that, I can see a couple of reasons why that might not even work right.
Anyway, here's a macro that I think should pretty much give you the behavior that you want. Should put you into ghost wolf form only if in combat or indoors. Its wrapped in UIErrors stuff so that you wont get game errors everytime Pokedex fails summoning a mount (because you're already in ghost wolf form for example).
Anyway to add in Shaman Ghostwolf? Thanks for the great addon :).
You could log into one of the alts and type "/pd debug misc 3" on the command line (without quotes of course). Then log into the hunter. If we're blowing up sometime after loaded (during initialization) then we should see Pokedex spit out a few lines of logging at least. If we see nothing then its blowing up even earlier than that and will be harder to debug. To turn off the pokedex debug output just type "/pd debug misc 0".
If for some reason there's something in the saved settings for your hunter that we're choking on, you could detect that by renaming the pokedex.lua file in WTF\Account\[Your Account Name]\SavedVariables. Then boot the game and log in to your hunter and it should be like the first time you booted with Pokedex (everything back to default settings). If that works and you're cool with losing all of your previous rankings, then you're done.
If it worked but you want to keep your rankings and/or try to find the exact problem then exit, replace the new pokedex.lua with your original renamed one (but keep the renamed copy so you have a backup), and open it up in a text editor like Notepad. At that point you can find the block for your hunter and start doing trial and error attempts to figure out what bit causes it to fail if left in the file.
Date: 2010-09-11 02:57:46
ID: 1
Error occured in: Global
Count: 1
Message: ..\AddOns\Pokedex\core.lua line 927:
attempt to index local 'dms' (a nil value)
Debug:
(tail call): ?
Pokedex\core.lua:927: FUpdateMountInfo()
Pokedex\core.lua:122: Initialize()
Pokedex\core.lua:69:
Pokedex\core.lua:49
(tail call): ?
[C]: ?
[string "safecall Dispatcher[1]"]:9:
[string "safecall Dispatcher[1]"]:5
(tail call): ?
...ce\AddOns\Pokedex\Libs\AceAddon-3.0\AceAddon-3.0.lua:539: EnableAddon()
...ce\AddOns\Pokedex\Libs\AceAddon-3.0\AceAddon-3.0.lua:629:
...ce\AddOns\Pokedex\Libs\AceAddon-3.0\AceAddon-3.0.lua:615
[C]: LoadAddOn()
..\FrameXML\UIParent.lua:235: UIParentLoadAddOn()
..\FrameXML\UIParent.lua:258: CombatLog_LoadUI()
..\FrameXML\UIParent.lua:482:
..\FrameXML\UIParent.lua:454
AddOns:
Swatter, v5.8.4723 (CreepyKangaroo)
ACP, v3.3.4
Pokedex, v3.3.12
BlizRuntimeLib_enUS v3.3.5.30300 <us>
(ck=70)