From 6ccb9fa0b43790104bd7a9fa1a8880f3e6c7f8b5 Mon Sep 17 00:00:00 2001 From: Michael Date: Sat, 29 Jul 2023 18:24:41 +0100 Subject: [PATCH] Down-Rank buffs on lower levels + more Implemented down-ranking of buffs for lower level buffing, fixed issue with camera zoom, added option to be prompted while mounted (default on), conjured items no longer prompt while running. --- SmartBuff.buffs.lua | 6 +-- SmartBuff.lua | 115 +++++++++++++++++++++++++++++--------------- SmartBuff.xml | 37 ++++++++++++-- localization.cn.lua | 3 ++ localization.de.lua | 3 ++ localization.en.lua | 27 ++++++----- localization.es.lua | 4 ++ localization.fr.lua | 4 ++ localization.ru.lua | 3 ++ localization.tw.lua | 5 ++ 10 files changed, 150 insertions(+), 57 deletions(-) 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 = "如果你有两个或更多收集能力,你将只能从这个功能中受益,该选项已被禁用。"