diff --git a/SmartBuff.buffs.lua b/SmartBuff.buffs.lua
index 2aa9c17..41d2088 100644
--- a/SmartBuff.buffs.lua
+++ b/SmartBuff.buffs.lua
@@ -829,7 +829,7 @@ function SMARTBUFF_InitSpellList()
-- buffs
{SMARTBUFF_AI, 30, SMARTBUFF_CONST_GROUP, {1,14,28,42,56,70,80}, "WARRIOR;DEATHKNIGHT;ROGUE;HPET;WPET;DKPET", S.ChainMageBuffs},
{SMARTBUFF_AB, 60, SMARTBUFF_CONST_GROUP, {56, 70, 80}, "WARRIOR;DEATHKNIGHT;ROGUE;HPET;WPET;DKPET", S.ChainMageBuffs},
- {SMARTBUFF_DALI, 30, SMARTBUFF_CONST_GROUP, {1,14,28,42,56,70,80}, "WARRIOR;DEATHKNIGHT;ROGUE;HPET;WPET;DKPET", S.ChainMageBuffs},
+ {SMARTBUFF_DALI, 30, SMARTBUFF_CONST_GROUP, {80}, "WARRIOR;DEATHKNIGHT;ROGUE;HPET;WPET;DKPET", S.ChainMageBuffs},
{SMARTBUFF_DALARANB, 60, SMARTBUFF_CONST_GROUP, {80}, "WARRIOR;DEATHKNIGHT;ROGUE;HPET;WPET;DKPET", S.ChainMageBuffs},
-- Armor
{SMARTBUFF_ICEARMOR, -1, SMARTBUFF_CONST_SELF, nil, nil, nil, S.ChainMageArmor},
@@ -844,8 +844,8 @@ function SMARTBUFF_InitSpellList()
{SMARTBUFF_FROSTWARD, 30, SMARTBUFF_CONST_SELF},
-- other
{SMARTBUFF_FOCUSMAGIC, 30, SMARTBUFF_CONST_GROUP},
- {SMARTBUFF_AMPLIFYMAGIC, 10, SMARTBUFF_CONST_GROUP},
- {SMARTBUFF_DAMPENMAGIC, 10, SMARTBUFF_CONST_GROUP},
+ {SMARTBUFF_AMPLIFYMAGIC, 10, SMARTBUFF_CONST_GROUP, {18,30,42,63,69,77,80}, "WARRIOR;DEATHKNIGHT;ROGUE;HPET;WPET;DKPET"},
+ {SMARTBUFF_DAMPENMAGIC, 10, SMARTBUFF_CONST_GROUP, {12,24,36,48,60,67,76}, "WARRIOR;DEATHKNIGHT;ROGUE;HPET;WPET;DKPET"},
{SMARTBUFF_SUMMONWATERELE, -1, SMARTBUFF_CONST_SELF, nil, S.CheckPet},
{SMARTBUFF_COMBUSTION, -1, SMARTBUFF_CONST_SELF},
{SMARTBUFF_ARCANEPOWER, 0.25, SMARTBUFF_CONST_SELF},
diff --git a/SmartBuff.lua b/SmartBuff.lua
index 2a36557..d02e3ce 100644
--- a/SmartBuff.lua
+++ b/SmartBuff.lua
@@ -7,7 +7,7 @@
-- Cast the most important buffs on you, tanks or party/raid members/pets.
-------------------------------------------------------------------------------
-SMARTBUFF_DATE = "160723";
+SMARTBUFF_DATE = "290723";
SMARTBUFF_VERSION = "r49."..SMARTBUFF_DATE;
SMARTBUFF_VERSIONNR = 30402;
@@ -25,7 +25,7 @@ local SmartbuffCommands = { "SBCVER", "SBCCMD", "SBCSYC" }
local SmartbuffSession = true;
local SmartbuffVerCheck = false; -- for my use when checking guild users/testers versions :)
local buildInfo = select(4, GetBuildInfo())
-local SmartbuffRevision = 48;
+local SmartbuffRevision = 49;
local SmartbuffVerNotifyList = {}
-- Using LibRangeCheck-2.0 by Mitchnull
@@ -101,6 +101,7 @@ local cBuffTimer = { };
local cBlacklist = { };
local cUnits = { };
local cBuffsCombat = { };
+local cSpellRankInfo = { };
local cScrBtnBO = nil;
@@ -945,8 +946,6 @@ function SMARTBUFF_SetTemplate()
end
sRUnit = "raid"..n;
- --SMARTBUFF_AddMsgD(name .. ", " .. sRUnit .. ", " .. UnitName(sRUnit));
-
SMARTBUFF_AddUnitToClass("raid", n);
SmartBuff_AddToUnitList(1, sRUnit, subgroup);
SmartBuff_AddToUnitList(2, sRUnit, subgroup);
@@ -1165,6 +1164,7 @@ function SMARTBUFF_SetBuff(buff, i, ia)
if (SMARTBUFF_IsSpell(cBuffs[i].Type)) then
cBuffs[i].IDS, cBuffs[i].BookID = SMARTBUFF_GetSpellID(cBuffs[i].BuffS);
end
+
if (cBuffs[i].IDS == nil and not(SMARTBUFF_IsItem(cBuffs[i].Type) or cBuffs[i].Type == SMARTBUFF_CONST_TRACK)) then
cBuffs[i] = nil;
return i;
@@ -1174,6 +1174,7 @@ function SMARTBUFF_SetBuff(buff, i, ia)
if (buff[5] ~= nil) then cBuffs[i].Params = buff[5] else cBuffs[i].Params = SG.NIL end
cBuffs[i].Links = buff[6];
cBuffs[i].Chain = buff[7];
+
if (cBuffs[i].IDS ~= nil) then
cBuffs[i].IconS = GetSpellTexture(cBuffs[i].BuffS);
else
@@ -1308,7 +1309,7 @@ function SMARTBUFF_PreCheck(mode, force)
elseif (sPlayerClass == "DEATHKNIGHT" and IsMounted() and not SMARTBUFF_CheckBuff("player", SMARTBUFF_PATHOFFROST)) then
return true;
end
- if ((mode == 1 and not O.ToggleAuto) or IsMounted() or IsFlying() or LootFrame:IsVisible()
+ if ((mode == 1 and not O.ToggleAuto) or IsMounted() and not O.ToggleMountedPrompt or IsFlying() or LootFrame:IsVisible()
or UnitOnTaxi("player") or UnitIsDeadOrGhost("player") or UnitIsCorpse("player")
or (mode ~= 1 and (SMARTBUFF_IsPicnic("player") or SMARTBUFF_IsFishing("player")))
or (UnitInVehicle("player") or UnitHasVehicleUI("player"))
@@ -1552,26 +1553,21 @@ function SMARTBUFF_SyncBuffTimers()
while (cBuffs[i] and cBuffs[i].BuffS) do
rbTime = 0;
buffS = cBuffs[i].BuffS;
-
- -- TOCHECK
rbTime = B[CS()][ct][buffS].RBTime;
if (rbTime <= 0) then
rbTime = O.RebuffTimer;
end
-
if (buffS and B[CS()][ct][buffS].EnableS and cBuffs[i].IDS ~= nil and cBuffs[i].DurationS > 0) then
if (cBuffs[i].Type ~= SMARTBUFF_CONST_SELF or (cBuffs[i].Type == SMARTBUFF_CONST_SELF and SMARTBUFF_IsPlayer(unit))) then
SMARTBUFF_SyncBuffTimer(unit, unit, cBuffs[i]);
end
end
-
i = i + 1;
end -- END while
end
end -- END for
end
end -- END for
-
isSync = false;
isSyncReq = false;
end
@@ -1620,6 +1616,48 @@ function SMARTBUFF_IsShapeshifted()
end
-- END SMARTBUFF_IsShapeshifted
+-- build spell rank info.
+local function buildSpellRankInfo(spell)
+ local spellName, spellSubName, name, spellID;
+ local rank = 1;
+ cSpellRankInfo = {}; -- always clear it
+ for i = 1, 300 do -- 300 is more than enough
+ spellName, spellSubName = GetSpellBookItemName(i, BOOKTYPE_SPELL);
+ if spellName == spell then
+ name, _, _, _, _, _, spellID, _ = GetSpellInfo(spellName.."("..spellSubName..")");
+ tinsert(cSpellRankInfo, {rank, spellName, spellSubName, spellName.."("..spellSubName..")", spellID});
+ rank = rank + 1;
+ end
+ end
+end
+
+-- get spell rank info
+local function getSpellRankInfo(rank)
+ for rankcount, ranks in ipairs(cSpellRankInfo) do
+ if ranks[1] == rank then
+ return ranks[1], ranks[2], ranks[3], ranks[4], ranks[5];
+ end
+ end
+end
+
+-- make sure we have the correct rank to cast for unit.
+local function SMARTBUFF_CheckSpellLevel(spell, unit, buffLevels)
+ if not buffLevels then return nil; end
+ local uLevel = nil;
+ local bSpellRank = 0;
+ local rank, spellName, spellSubName, spellNameRank, spellID;
+ uLevel = UnitLevel(unit);
+ if uLevel == 80 then return nil; end -- no reason to down-rank on a max level, just exit.
+ buildSpellRankInfo(spell);
+ -- get rank
+ for count, levelrange in next, buffLevels do
+ if uLevel >= levelrange then
+ bSpellRank = count;
+ end
+ end
+ rank, spellName, spellSubName, spellNameRank, spellID = getSpellRankInfo(bSpellRank)
+ return rank, spellName, spellSubName, spellNameRank, spellID;
+end
local IsChecking = false;
function SMARTBUFF_Check(mode, force)
@@ -1632,9 +1670,6 @@ function SMARTBUFF_Check(mode, force)
local unitB = nil;
local unitL = nil;
local unitU = nil;
- local uLevel = nil;
- local uLevelL = nil;
- local uLevelU = nil;
local idL = nil;
local idU = nil;
local subgroup = 0;
@@ -1716,7 +1751,6 @@ function SMARTBUFF_Check(mode, force)
end
end
end
-
end
end -- for groups
@@ -1760,6 +1794,7 @@ function SMARTBUFF_BuffUnit(unit, subgroup, mode, spell)
local cBuff = nil;
local iId = nil;
local iSlot = -1;
+ local spellNameRank = nil
if (UnitIsPVP("player")) then isPvP = true end
@@ -1835,7 +1870,7 @@ function SMARTBUFF_BuffUnit(unit, subgroup, mode, spell)
if (buffnS == SMARTBUFF_CONJFOOD or buffnS == SMARTBUFF_CONJREFRESHMENT) then lookupData = ConjuredMageFood
elseif (buffnS == SMARTBUFF_CONJWATER or buffnS == SMARTBUFF_CONJREFRESHMENT) then lookupData = ConjuredMageWater
elseif buffnS == SMARTBUFF_CREATEMGEM then lookupData = ConjuredMageGems end
- if lookupData then
+ if lookupData and isPlayerMoving == false then
for count, value in next, lookupData do
if value then
itemInfo = GetItemInfo(value)
@@ -1844,6 +1879,8 @@ function SMARTBUFF_BuffUnit(unit, subgroup, mode, spell)
end
end
end
+ elseif lookupData and isPlayerMoving then
+ bUsable = false;
end
end
@@ -1857,7 +1894,7 @@ function SMARTBUFF_BuffUnit(unit, subgroup, mode, spell)
elseif buffnS == SMARTBUFF_CREATESOULS then lookupData = ConjuredLockSoulstones
elseif buffnS == SMARTBUFF_CREATESPELLS then lookupData = ConjuredLockSpellstones
elseif buffnS == SMARTBUFF_CREATEFIRES then lookupData = ConjuredLockFirestones end
- if lookupData then
+ if lookupData and isPlayerMoving == false then
for count, value in next, lookupData do
if value then
itemInfo = GetItemInfo(value)
@@ -1866,6 +1903,8 @@ function SMARTBUFF_BuffUnit(unit, subgroup, mode, spell)
end
end
end
+ elseif lookupData and isPlayerMoving then
+ bUsable = false;
end
else
SMARTBUFF_AddMsgD(itemInfo.." is missing in bag, cannot continue.");
@@ -1885,7 +1924,7 @@ function SMARTBUFF_BuffUnit(unit, subgroup, mode, spell)
end
-- extra testing for revive pet on hunters,
- -- only allow if the pet is actually dead
+ -- only allow if the pet is actually dead
if (bUsable and sPlayerClass == "HUNTER") and buffnS == SMARTBUFF_REVIVEPET then
if not UnitIsDead("pet") then
SMARTBUFF_AddMsgD("Pet appears to be very much alive!");
@@ -2245,7 +2284,7 @@ function SMARTBUFF_BuffUnit(unit, subgroup, mode, spell)
end
-- cast spell
- else
+ else
r = SMARTBUFF_doCast(unit, cBuff.IDS, buffnS, cBuff.LevelsS, cBuff.Type);
if (r == 0) then
currentUnit = unit;
@@ -2287,7 +2326,15 @@ function SMARTBUFF_BuffUnit(unit, subgroup, mode, spell)
-- target buffed
-- Message will printed in the "SPELLCAST_STOP" event
sMsgWarning = "";
- return 0, SMARTBUFF_ACTION_SPELL, buffnS, -1, unit, cBuff.Type;
+ _, _, _, spellNameRank, _ = SMARTBUFF_CheckSpellLevel(buffnS, unit, cBuff.LevelsS)
+ if spellNameRank then
+ -- we have ranks, process them.
+ SMARTBUFF_AddMsgD("Buff down-ranked to: " .. spellNameRank);
+ return 0, SMARTBUFF_ACTION_SPELL, spellNameRank, -1, unit, cBuff.Type;
+ else
+ -- nothing special here, just continue.
+ return 0, SMARTBUFF_ACTION_SPELL, buffnS, -1, unit, cBuff.Type;
+ end
elseif (r == 1) then
-- spell cooldown
if (mode == 0) then SMARTBUFF_AddMsgWarn(buffnS .. " " .. SMARTBUFF_MSG_CD); end
@@ -2319,13 +2366,13 @@ function SMARTBUFF_BuffUnit(unit, subgroup, mode, spell)
if (mode == 0) then SMARTBUFF_AddMsgD(buffnS .. " spellID not found"); end
elseif (r == 10) then
-- target could not buffed
- if (mode == 0) then SMARTBUFF_AddMsgD(buffnS .. " could not buffed on " .. un); end
+ if (mode == 0) then SMARTBUFF_AddMsgD(buffnS .. " could not be buffed on " .. un); end
elseif (r == 20) then
-- item not found
- if (mode == 0) then SMARTBUFF_AddMsgD(buffnS .. " could not used"); end
+ if (mode == 0) then SMARTBUFF_AddMsgD(buffnS .. " could not be used"); end
elseif (r == 50) then
-- weapon buff could not applied
- if (mode == 0) then SMARTBUFF_AddMsgD(buffnS .. " could not applied"); end
+ if (mode == 0) then SMARTBUFF_AddMsgD(buffnS .. " could not be applied"); end
else
-- no spell selected
if (mode == 0) then SMARTBUFF_AddMsgD(SMARTBUFF_MSG_CHAT); end
@@ -2465,7 +2512,6 @@ function SMARTBUFF_doCast(unit, id, spellName, levels, type)
if (type == SMARTBUFF_CONST_TRACK and (GetTrackingTexture() ~= "Interface\\Minimap\\Tracking\\None")) then
return 7;
end
-
-- check if spell has cooldown
local _, cd = GetSpellCooldown(spellName)
if (not cd) then
@@ -2475,9 +2521,7 @@ function SMARTBUFF_doCast(unit, id, spellName, levels, type)
elseif (cd > 0) then
return 1;
end
-
-- Rangecheck
- --SMARTBUFF_AddMsgD("Spell has range: "..spellName.." = "..ChkS(SpellHasRange(spellName)));
if ((type == SMARTBUFF_CONST_GROUP or type == SMARTBUFF_CONST_ITEMGROUP)) then
local minRange, maxRange = LRC:GetRange(unit)
if (UnitInRange(unit) or unit == "player" or (unit == "target" and O.BuffTarget)) then
@@ -2491,13 +2535,11 @@ function SMARTBUFF_doCast(unit, id, spellName, levels, type)
return 3;
end
end
-
-- check if you have enough mana/energy/rage to cast
local isUsable, notEnoughMana = IsUsableSpell(spellName);
if (notEnoughMana) then
return 6;
end
-
return 0;
end
-- END SMARTBUFF_doCast
@@ -2635,7 +2677,6 @@ function SMARTBUFF_CheckUnitBuffs(unit, buffN, buffT, buffL, buffC)
return nil, 0, defBuff, timeleft, count;
end
end
-
-- Buff not found, return default buff
return defBuff, nil, nil, nil, nil;
end
@@ -3013,6 +3054,7 @@ function SMARTBUFF_Options_Init(self)
if (O.ToggleAutoChat == nil) then O.ToggleAutoChat = false; end
if (O.ToggleAutoSplash == nil) then O.ToggleAutoSplash = true; end
if (O.ToggleAutoSound == nil) then O.ToggleAutoSound = true; end
+ if (O.ToggleMountedPrompt == nil) then O.ToggleMountedPrompt = true; end
if (O.AutoSoundSelection == nil) then O.AutoSoundSelection = 4; end;
if (O.CheckCharges == nil) then O.CheckCharges = true; end
--if (O.ToggleAutoRest == nil) then O.ToggleAutoRest = true; end
@@ -3398,6 +3440,9 @@ end
function SMARTBUFF_OToggleAutoSound()
O.ToggleAutoSound = not O.ToggleAutoSound;
end
+function SMARTBUFF_OToggleMountedPrompt()
+ O.ToggleMountedPrompt = not O.ToggleMountedPrompt;
+end
function SMARTBUFF_OAutoSwitchTmp()
O.AutoSwitchTemplate = not O.AutoSwitchTemplate;
end
@@ -3765,6 +3810,7 @@ function SMARTBUFF_Options_OnShow()
SmartBuffOptionsFrame_cbAutoChat:SetChecked(O.ToggleAutoChat);
SmartBuffOptionsFrame_cbAutoSplash:SetChecked(O.ToggleAutoSplash);
SmartBuffOptionsFrame_cbAutoSound:SetChecked(O.ToggleAutoSound);
+ SmartBuffOptionsFrame_cbWarnWhenMounted:SetChecked(O.ToggleMountedPrompt);
SmartBuffOptionsFrame_cbAutoSwitchTmp:SetChecked(O.AutoSwitchTemplate);
SmartBuffOptionsFrame_cbAutoSwitchTmpInst:SetChecked(O.AutoSwitchTemplateInst);
@@ -4208,6 +4254,7 @@ local lastBuffType = "";
function SMARTBUFF_OnPreClick(self, button, down)
if (not isInit) then return end
local mode = 0;
+ local unitsLevel = nil
if (button) then
if (button == "MOUSEWHEELUP" or button == "MOUSEWHEELDOWN") then
mode = 5;
@@ -4225,20 +4272,10 @@ function SMARTBUFF_OnPreClick(self, button, down)
self:SetAttribute("action", nil);
end
- -- leaving in for classic, its possible blizzard decide to make the
- -- same changes they did in retail.. you never know!
-
if O.SBButtonFix then
- -- macros really dont like the cvar set to 1 so lets test we are
- -- actually clicking the action button rather than using the scroll
- -- mouse to ensure buffing works for both.
if button == "LeftButton" or button == "RightButton" then
- -- clicked manually either the action button or macro
- -- using a mouse button - crazy blizzard issues strike
- -- again :)
C_CVar.SetCVar("ActionButtonUseKeyDown", 0 );
else
- -- assume this is a scroll mouse.
C_CVar.SetCVar("ActionButtonUseKeyDown", 1 );
end
end
@@ -4274,7 +4311,7 @@ function SMARTBUFF_OnPreClick(self, button, down)
self:SetAttribute("macrotext", string.format("/use %s\n/use %i\n/click StaticPopup1Button1", spellName, slot));
SMARTBUFF_AddMsgD("Weapon buff "..spellName..", "..slot);
else
- self:SetAttribute("spell", spellName);
+ self:SetAttribute("spell", spellName);
end
if (cBuffIndex[spellName]) then
diff --git a/SmartBuff.xml b/SmartBuff.xml
index 6adcc45..eb37e5f 100644
--- a/SmartBuff.xml
+++ b/SmartBuff.xml
@@ -378,6 +378,8 @@
ToggleAutoGatherer()
elseif (button == "LeftButton") then
SMARTBUFF_OptionsFrame_Toggle();
+ elseif (button == "RightButton" and IsAltKeyDown()) then
+ SMARTBUFF_OToggleMountedPrompt();
elseif (button == "RightButton") then
SMARTBUFF_OToggle();
if(SmartBuffOptionsFrame:IsVisible()) then
@@ -463,7 +465,7 @@
-
+
@@ -563,9 +565,7 @@
-
-
-
+
@@ -1705,6 +1705,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ SMARTBUFF_OToggleMountedPrompt();
+
+
+ getglobal(self:GetName().."Text"):SetText(SMARTBUFF_OFT_MOUNTEDWARN);
+ getglobal(self:GetName().."Text"):SetFontObject(GameFontNormalSmall);
+
+
+ GameTooltip:Hide();
+
+
+ GameTooltip:SetOwner(self, "ANCHOR_RIGHT");
+ GameTooltip:SetText(SMARTBUFF_OFTT_MOUNTEDWARN, SMARTBUFF_TTC_R, SMARTBUFF_TTC_G, SMARTBUFF_TTC_B, SMARTBUFF_TTC_A);
+
+
+
diff --git a/localization.cn.lua b/localization.cn.lua
index 25dd507..dcb8324 100644
--- a/localization.cn.lua
+++ b/localization.cn.lua
@@ -43,6 +43,9 @@ SMARTBUFF_OFTT_AUTOGATHOFF = "在聚会或突袭中自动关闭此功能,并
-- wrong version
SMARTBUFF_NOTINTENDEDCLIENT = "此版本的 Smartbuff 不适用于此客户端,请下载正确的版本。";
+-- mounted warning
+SMARTBUFF_OFT_MOUNTEDWARN = "骑行时显示";
+SMARTBUFF_OFTT_MOUNTEDWARN = "继续提醒我在骑行时缺少的增益或能力。";
-- 德鲁伊
SMARTBUFF_DRUID_CAT = "猎豹形态";
diff --git a/localization.de.lua b/localization.de.lua
index da609f0..cc1ba42 100644
--- a/localization.de.lua
+++ b/localization.de.lua
@@ -48,6 +48,9 @@ BINDING_NAME_SMARTBUFF_BIND_TARGET = "Ziel";
BINDING_NAME_SMARTBUFF_BIND_OPTIONS = "Optionen";
BINDING_NAME_SMARTBUFF_BIND_RESETBUFFTIMERS = "Buff Timer löschen";
+-- mounted warning
+SMARTBUFF_OFT_MOUNTEDWARN = "Beim Reiten vorzeigen";
+SMARTBUFF_OFTT_MOUNTEDWARN = "Erinnere mich während des Reitens weiterhin an fehlende Buffs oder Fähigkeiten.";
-- purge/reload messages
SMARTBUFF_OFT_YES = "Ja";
diff --git a/localization.en.lua b/localization.en.lua
index cb5ff89..023f447 100644
--- a/localization.en.lua
+++ b/localization.en.lua
@@ -6,13 +6,17 @@
SMARTBUFF_WHATSNEW = "\n\n|cffffffff Whats new:|r\n\n"
.." |cffffffffClassic version by Codermik, additional retail coding\n"
.." by Speedwaystar.\n\n\n"
- .." Changes in r48.250623:\n\n"
- .." * Fixed warlocks Soul Link\n"
- .." * Added missing Dalaran Intellect\n"
+ .." Changes in r49.280723:\n\n"
+ .." * Fixed an issue with the camera zoom.\n\n"
+ .." * Conjured items no longer prompt if moving.\n\n"
+ .." * Added option to prompt while mounted and\n"
+ .." to automatically dismount you to buff.\n\n"
+ .." * Class buffs should now use the correct\n"
+ .." ranks when casting on lower levels.\n"
.."\n\n"
.." |cffffff00I currently play on the Mirage Raceway EU classic\n"
.." WOTLK server as Alliance, I play on Mik, Gabella,\n"
- .." Castanova, Amarantine and various alts...\n"
+ .." Castanova, Amarantine and various alts...\n\n"
.." ...too many actually :)\n\n"
.." Please feel free to say hello!\n\n\n"
.." |cff00FF7FMany thanks to Chris S., Samantha R. and\n"
@@ -23,8 +27,7 @@ SMARTBUFF_WHATSNEW = "\n\n|cffffffff Whats new:|r\n\n"
SMARTBUFF_CREDITS = "|cffffffff"
.."Retail & Classic by Codermik & Speedwaystar. Please join to get support on our discord server:\n"
.."|cff00e0ffhttps://discord.gg/R6EkZ94TKK\n\n"
- .."|cffffffffIf you want to help support us and the development of this addon then please always download from Curse or use one of the following links:\n\n(We only ever upload to Curseforge)\n\n"
- .."|cffffffffPatreon: |cff00e0ffhttps://www.patreon.com/codermik\n"
+ .."|cffffffffIf you want to help support me and the development of this addon then please always download from Curse or use one of the following links:\n\n(I only ever upload to Curseforge)\n\n"
.."|cffffffffTwitch: |cff00e0ffhttps://www.twitch.tv/codermik\n"
.."|cffffffffPayPal.Me: |cff00e0ffhttps://paypal.me/codermik\n\n"
;
@@ -48,8 +51,6 @@ SMARTBUFF_UNDEAD = "Undead";
SMARTBUFF_CLASSES = {"Druid", "Hunter", "Mage", "Paladin", "Priest", "Rogue", "Shaman", "Warlock", "Warrior", "Death Knight", "Monk", "Demon Hunter", "Evoker", "Hunter Pet", "Warlock Pet", "Death Knight Pet", "Tank", "Healer", "Damage Dealer"};
-- Templates and Instances
---SMARTBUFF_TEMPLATES = {"Solo", "Party", "LFR", "Raid", "Mythic Keystone", "Battleground", "Arena", "Castle Nathria", "Sanctum of Domination", "Sepulcher of the First Ones", "Vault of the Incarnates", "Custom 1", "Custom 2", "Custom 3", "Custom 4", "Custom 5"};
---SMARTBUFF_INSTANCES = {"Castle Nathria", "Sanctum of Domination", "Sepulcher of the First Ones", "Vault of the Incarnates"};
SMARTBUFF_TEMPLATES = {"Solo", "Party", "Raid", "Battleground", "Arena", "ICC", "TOC", "Ulduar", "Ony", "Naxx", "Custom 1", "Custom 2", "Custom 3", "Custom 4", "Custom 5"};
SMARTBUFF_INSTANCES = {"Icecrown Citadel", "Trial of the Crusader", "Ulduar", "Onyxia's Lair", "Naxxramas"};
@@ -72,7 +73,7 @@ SMARTBUFF_NOTINTENDEDCLIENT = "This version of Smartbuff is not intended for th
-- Fix casting.
SMARTBUFF_OFT_FIXBUFF = "Fix Casting"
-SMARTBUFF_OFTT_FIXBUFF = "Only tick this option if Smartbuff is failing to cast buffs while using the\nscroll mouse, action button or macro. Combat buffing will not work with\nthis setting active but you will be notified its missing for manual buffing."
+SMARTBUFF_OFTT_FIXBUFF = "Only tick this option if Smartbuff is failing to cast buffs while using the\nscroll mouse, action button or macro. Combat buffing will not work with\nthis setting active but you will be notified its missing for manual buffing.\n\n** This should not be needed in classic clients **"
-- tracking switcher
SMARTBUFF_TRACKSWITCHMSG = " has been detected but the auto switch find herbs, minerals and fish is turned on in the options. type /sbm to open options and either turn off the individual trackers or the automatic switching.";
@@ -83,11 +84,15 @@ SMARTBUFF_OFT_GATHERER = "Auto Switch Gathering Trackers"
SMARTBUFF_OFT_FINDFISH = "Find Fish"
SMARTBUFF_OFT_MINERALS = "Find Minerals"
SMARTBUFF_OFT_HERBS = "Find Herbs"
-SMARTBUFF_OFTT_GATHERER = "Switches through your Find Herbs, Find Minerals and Find Fish (if available and selected)."
+SMARTBUFF_OFTT_GATHERER = "Switches through your Find Herbs, Find Minerals and Find Fish (if available and selected). This feature\nwill disable automatically if you do not have two of the three listed."
SMARTBUFF_OFTT_GATHERERFISH = "Include Find Fish when switching through Gathering Trackers."
SMARTBUFF_OFT_AUTOGATHOFF = "Auto switch OFF in Party/Raids"
SMARTBUFF_OFTT_AUTOGATHOFF = "Automatically switch this feature OFF when in a party or raid and switch to your current template preference."
+-- mounted warning
+SMARTBUFF_OFT_MOUNTEDWARN = "Prompt while mounted";
+SMARTBUFF_OFTT_MOUNTEDWARN = "Continue to remind me of missing buffs or abilities while I am mounted and automatically dismount to buff.";
+
SMARTBUFF_OFT = "SmartBuff On/Off";
SMARTBUFF_OFT_MENU = "Show/hide options menu";
SMARTBUFF_OFT_AUTO = "Reminder";
@@ -241,7 +246,7 @@ SMARTBUFF_MSG_SPECCHANGED = "Spec changed (%s), loading buff templates...";
-- Support
SMARTBUFF_MINIMAP_TT = "Left mouse for options\nRight mouse to toggle On/Off\nAlt-Left mouse to toggle auto tracking\nShift drag: Move button";
SMARTBUFF_TITAN_TT = "Left mouse for options\nRight mouse to toggle On/Off\nAlt-Left mouse to toggle auto tracking";
-SMARTBUFF_FUBAR_TT = "\nLeft mouse for options\nRight mouse to toggle On/Off\nAlt-Left mouse to toggle auto tracking";
+SMARTBUFF_FUBAR_TT = "\nLeft mouse for options\nRight mouse to toggle On/Off\nAlt-Right mouse to toggle mounted prompts\nAlt-Left mouse to toggle auto tracking";
SMARTBUFF_DEBUFF_TT = "Shift-Left drag: Move frame\n|cff20d2ff- S button -|r\nLeft click: Show by classes\nShift-Left click: Class colors\nAlt-Left click: Highlight L/R\n|cff20d2ff- P button -|r\nLeft click: Hide pets on/off";
diff --git a/localization.es.lua b/localization.es.lua
index 4c8ef5e..bd632a7 100644
--- a/localization.es.lua
+++ b/localization.es.lua
@@ -46,6 +46,10 @@ BINDING_NAME_SMARTBUFF_BIND_TARGET = "Objetivo";
BINDING_NAME_SMARTBUFF_BIND_OPTIONS = "Men\195\186 de opciones";
BINDING_NAME_SMARTBUFF_BIND_RESETBUFFTIMERS = "Restaurar temporizador de buffs";
+-- mounted warning
+SMARTBUFF_OFT_MOUNTEDWARN = "mientras est montado";
+SMARTBUFF_OFTT_MOUNTEDWARN = "%Contine recordndome mientras estoy montando.";
+
-- purge/reload messages
SMARTBUFF_OFT_YES = "S";
SMARTBUFF_OFT_NO = "No";
diff --git a/localization.fr.lua b/localization.fr.lua
index 2639e29..29736f2 100644
--- a/localization.fr.lua
+++ b/localization.fr.lua
@@ -42,6 +42,10 @@ SMARTBUFF_ELEMENTAL = "\195\137l\195\169mentaire";
SMARTBUFF_DEMONTYPE = "Diablotin";
SMARTBUFF_UNDEAD = "Mort-vivant";
+-- mounted warning
+SMARTBUFF_OFT_MOUNTEDWARN = "Afficher une fois monté";
+SMARTBUFF_OFTT_MOUNTEDWARN = "Continuez à me rappeler les buffs ou les capacités manquants pendant que je roule.";
+
-- Classes
SMARTBUFF_CLASSES = {"Druide", "Chasseur", "Mage", "Paladin", "Pr\195\170tre", "Voleur", "Chaman", "D\195\169moniste", "Guerrier", "Chevalier de la mort", "Moine", "Chasseur de démons", "Evoker", "Chasseur Pet", "D\195\169moniste Pet", "Chevalier de la mort Pet", "Tank", "Gu\195\169risseur", "Sp\195\169cialiste des d\195\169g\195\162ts"};
diff --git a/localization.ru.lua b/localization.ru.lua
index 0c1f4dc..bffc0cf 100644
--- a/localization.ru.lua
+++ b/localization.ru.lua
@@ -73,6 +73,9 @@ SMARTBUFF_OFTT_AUTOGATHOFF = "Автоматически выключайте
-- wrong version
SMARTBUFF_NOTINTENDEDCLIENT = "Эта версия Smartbuff не предназначена для этого клиента, загрузите правильную версию.";
+-- mounted warning
+SMARTBUFF_OFT_MOUNTEDWARN = "Подсказать когда смонтирован";
+SMARTBUFF_OFTT_MOUNTEDWARN = "Продолжайте напоминать мне об отсутствующих усилениях или способностях, пока я еду верхом.";
-- Options Frame Text
diff --git a/localization.tw.lua b/localization.tw.lua
index 84cf077..2b7cd3e 100644
--- a/localization.tw.lua
+++ b/localization.tw.lua
@@ -60,6 +60,11 @@ SMARTBUFF_OFT_REQ_RELOAD = "新版本需要重新加载 GUI\n准备就绪后
SMARTBUFF_OFT_FRODWARN = "您正在使用装备好的钓鱼竿进行战斗。";
SMARTBUFF_OFT_FRINSWARN = "您正在参加派对或突袭,并配备了钓鱼竿。";
+-- mounted warning
+SMARTBUFF_OFT_MOUNTEDWARN = "騎行時顯示";
+SMARTBUFF_OFTT_MOUNTEDWARN = "繼續提醒我在騎行時缺少的增益或能力。";
+
+
-- tracking switcher
SMARTBUFF_TRACKSWITCHMSG = " 已检测到,但自动切换跟踪已打开。 键入 /sbm 以查看选项并关闭个人跟踪或自动切换。";
SMARTBUFF_TRACKINGDISABLE = "如果你有两个或更多收集能力,你将只能从这个功能中受益,该选项已被禁用。"