Go to Page... |
Thread Tools | Display Modes |
08-01-14, 06:32 PM | #1 |
[REQUEST] Simple Rotation Rogue
Hello friends WowInterface,
I'm looking for a simple and well functional addon for my Rogue, I found some online, but they are either exceeded or their functions are many and ends up not working the way you expect. Would you like an addon that works as follows ... When I generate 5 combo points in my target, Addon me know if I use Slice, Rupture or Eviscerate, leading some things in priority. Example, I generated 5 combo points and the addon tells you what to use ... Slice priority (If it is inactive) Rupture (if Slice is active) Eviscerate (If Rip and Rupture are active) You can do that? Could someone do me the same code I add the files here? |
|
08-02-14, 04:37 AM | #2 |
I would recommend using Power Auras, and import this aura set:
Code:
Set=Page 1@ Aura[1]=Version:4.26.1; buffname:5; enablefullrotation:false; customname:Slice; bufftype:6; multiids:!4; strata:High; size:0.5; icon:inv_sword_48; customtex:true; y:-250@ Aura[2]=Version:4.26.1; buffname:5; enablefullrotation:false; customname:Rupture; bufftype:6; multiids:4; strata:Medium; size:0.5; icon:inv_sword_48; customtex:true; y:-250@ Aura[3]=Version:4.26.1; buffname:5; enablefullrotation:false; customname:Eviscerate; bufftype:6; multiids:5/6; size:0.5; icon:inv_sword_48; customtex:true; y:-250@ Aura[4]=Version:4.26.1; buffname:Slice; customtex:true@ Aura[5]=Version:4.26.1; buffname:Rip; customtex:true@ Aura[6]=Version:4.26.1; buffname:Rupture@ |
|
08-02-14, 08:20 AM | #3 |
http://www.wowinterface.com/download...-Assassin.html what about this?
|
|
08-02-14, 12:53 PM | #4 | |
Is it possible? |
||
08-02-14, 10:44 PM | #5 |
Of course it's possible, but if you're not willing to write the code yourself, your only option is to use the addon that already exists. If you want to do A and B, and there's an addon available that does A, B and C, just use that addon, and ignore C.
__________________
Retired author of too many addons. Message me if you're interested in taking over one of my addons. Don’t message me about addon bugs or programming questions. |
|
08-04-14, 10:50 AM | #6 |
I understand, I am willing to create this type addon that will perfectly suit my need, but do not even know where to start.
Help me? |
|
08-04-14, 12:24 PM | #7 |
I have absolutely no interest in writing a "rotation helper" for any class, let alone for a rogue, which I don't play. As far as I'm concerned, if you think you need a "rotation helper" then what you really need is to learn how to play your class. There's just no class in the game that's so complicated you can't figure out how to use its abilities without an addon telling you which buttons to push and when.
__________________
Retired author of too many addons. Message me if you're interested in taking over one of my addons. Don’t message me about addon bugs or programming questions. |
|
08-04-14, 01:57 PM | #8 |
Looking at your post history you should put in more effort yourself
Even when you get help or links to actual working addons, you want others to spoonfeed it for you in a special way http://meta.stackexchange.com/questi...ampire-problem |
|
08-04-14, 03:28 PM | #9 |
The addon that comes closest to what I want is this ...
http://www.curse.com/addons/wow/rogue-subtlety Code:
Subtlety = {} Subtlety.currentTarget = "" Subtlety.lastTarget = "" function FM_GetSpellNameById(spellId) if (spellId == nil) then return nil end local spellName, rank, _, _, _, _, _, _, _ = GetSpellInfo(spellId) if rank==nil then return spellName elseif string.len(rank)>1 then return spellName.."("..rank..")" end return spellName end local language = GetLocale(); if language == "esMX" then Subtlety.L = { ["Garrote"] = "Garrote", ["Backstab"] = "Puñalada", ["Slice and Dice"] = "Hacer picadillo", ["Eviscerate"] = "Eviscerar", ["Rupture"] = "Ruptura", ["Recuperate"] = "Reponerse", ["Tricks of the Trade"] = "Secretos del oficio", ["Shadow Blades"] = "Paso de las Sombras", ["Hemorrhage"] = "Hemorragia", ["Ambush"] = "Emboscada", ["Vanish"] = "Esfumarse", ["Shadow Dance"] = "Danza de las Sombras", ["Premeditation"] = "Premeditación", ["Redirect"] = "Redirigir", ["Master of Subtlety"] = "Maestro de la sutileza", ["Stealth"] = "Sigilo", ["Generator"] = "Generator" } elseif language == "ptBR" then Subtlety.L = { ["Garrote"] = "Garrote", ["Backstab"] = "Punhalada pelas Costas", ["Slice and Dice"] = "Retalhar", ["Eviscerate"] = "Esvicerar", ["Rupture"] = "Ruptura", ["Recuperate"] = "Recobrar", ["Tricks of the Trade"] = "Truques do Ofício", ["Shadow Blades"] = "Lâminas Sombrias", ["Hemorrhage"] = "Hemorragia", ["Ambush"] = "Emboscar", ["Vanish"] = "Sumir", ["Shadow Dance"] = "Dança das Sombras", ["Premeditation"] = "Premeditação", ["Redirect"] = "Redirecionar", ["Master of Subtlety"] = "Mestre do Subterfúgio", ["Stealth"] = "Furtividade", ["Crimson Tempest"] = "Tempestade Carmesim", ["Generator"] = "Generator" } elseif language == "frFR" then Subtlety.L = { ["Garrote"] = "Garrot", ["Backstab"] = "Attaque sournoise", ["Slice and Dice"] = "Débiter", ["Eviscerate"] = "Eviscération", ["Rupture"] = "Rupture", ["Recuperate"] = "Conversion", ["Tricks of the Trade"] = "Ficelles du métier", ["Shadow Blades"] = "Pas de l'ombre", ["Hemorrhage"] = "Hémorragie", ["Ambush"] = "Embuscade", ["Vanish"] = "Disparition", ["Shadow Dance"] = "Danse de l'ombre", ["Premeditation"] = "Préméditation", ["Redirect"] = "Rediriger", ["Master of Subtlety"] = "Maître de la discrétion", ["Stealth"] = "Camouflage", ["Generator"] = "Generator" } elseif language == "deDE" then Subtlety.L = { ["Garrote"] = "Erdrosseln", ["Backstab"] = "Meucheln", ["Slice and Dice"] = "Zerhäckseln", ["Eviscerate"] = "Ausweiden", ["Rupture"] = "Blutung", ["Recuperate"] = "Gesundung", ["Tricks of the Trade"] = "Schurkenhandel", ["Shadow Blades"] = "Schattenschritt", ["Hemorrhage"] = "Blutsturz", ["Ambush"] = "Hinterhalt", ["Vanish"] = "Verschwinden", ["Shadow Dance"] = "Schattentanz", ["Premeditation"] = "Konzentration", ["Redirect"] = "Umlenken", ["Master of Subtlety"] = "Meister des hinterhältigen Angriffs", ["Stealth"] = "Verstohlenheit", ["Generator"] = "Generator" } elseif language == "ruRU" then Subtlety.L = { ["Garrote"] = "Гаррота", ["Backstab"] = "Удар в спину", ["Slice and Dice"] = "Мясорубка", ["Eviscerate"] = "Потрошение", ["Rupture"] = "Рваная рана", ["Recuperate"] = "Заживление ран", ["Tricks of the Trade"] = "Маленькие хитрости", ["Shadow Blades"] = "Шаг сквозь тень", ["Hemorrhage"] = "Кровоизлияние", ["Ambush"] = "Внезапный удар", ["Vanish"] = "Исчезновение", ["Shadow Dance"] = "Танец теней", ["Premeditation"] = "Умысел", ["Redirect"] = "Смена приоритетов", ["Master of Subtlety"] = "Мастер скрытности", ["Stealth"] = "Незаметность", ["Generator"] = "Generator" } else Subtlety.L = { ["Garrote"] = "Garrote", ["Backstab"] = "Backstab", ["Slice and Dice"] = "Slice and Dice", ["Eviscerate"] = "Eviscerate", ["Rupture"] = "Rupture", ["Recuperate"] = "Recuperate", ["Tricks of the Trade"] = "Tricks of the Trade", ["Shadow Blades"] = "Shadow Blades", ["Hemorrhage"] = "Hemorrhage", ["Ambush"] = "Ambush", ["Vanish"] = "Vanish", ["Shadow Dance"] = "Shadow Dance", ["Premeditation"] = "Premeditation", ["Redirect"] = "Redirect", ["Master of Subtlety"] = "Master of Subtlety", ["Stealth"] = "Stealth", ["Generator"] = "Generator" } end Subtlety.L["Garrote"] = GetSpellInfo(703) Subtlety.L["Slice and Dice"] = GetSpellInfo(5171) Subtlety.L["Backstab"] = GetSpellInfo(53) Subtlety.L["Hemorrhage"] = GetSpellInfo(1752) Subtlety.L["Hemorrhage-Debuff"] = GetSpellInfo(16511) Subtlety.L["Eviscerate"] = GetSpellInfo(2098) Subtlety.L["Rupture"] = GetSpellInfo(1943) Subtlety.L["Recuperate"] = GetSpellInfo(73651) Subtlety.L["Tricks of the Trade"] = GetSpellInfo(57934) Subtlety.L["Shadow Blades"] = GetSpellInfo(121471) Subtlety.L["Shadow Dance"] = GetSpellInfo(51713) Subtlety.L["Ambush"] = GetSpellInfo(8676) Subtlety.L["Premeditation"] = GetSpellInfo(14183) Subtlety.L["Vanish"] = GetSpellInfo(1856) Subtlety.L["Redirect"] = GetSpellInfo(73981) Subtlety.timeSinceLastUpdate = 0 Subtlety.playerName = UnitName("player") Subtlety.textureList = { ["last"] = nil, ["redirect"] = nil, ["current"] = nil, ["next"] = nil, ["misc"] = nil, ["int"] = nil, ["ss"] = nil, } Subtlety.eventFrame = CreateFrame("Frame") Subtlety.eventFrame:SetScript("OnEvent", function(this, event, ...) Subtlety.events[event](...) end) Subtlety.eventFrame:RegisterEvent("ADDON_LOADED") Subtlety.eventFrame:RegisterEvent("PLAYER_LOGIN") Subtlety.eventFrame:RegisterEvent("PLAYER_ALIVE") Subtlety.eventFrame:RegisterEvent("PLAYER_TARGET_CHANGED") Subtlety.eventFrame:RegisterEvent("PLAYER_TALENT_UPDATE") Subtlety.events = {} function Subtlety.events.PLAYER_TALENT_UPDATE() if GetSpecialization() == 3 then Subtlety.displayFrame:Show() else Subtlety.displayFrame:Hide() end end function Subtlety.events.PLAYER_ALIVE() Subtlety.eventFrame:UnregisterEvent("PLAYER_ALIVE") end function Subtlety.events.PLAYER_LOGIN() Subtlety.playerName = UnitName("player"); end function Subtlety.events.ADDON_LOADED(addon) if addon ~= "Lelex" and GetSpecialization() == 3 then return end local _,playerClass = UnitClass("player") if playerClass ~= "ROGUE" then Subtlety.eventFrame:UnregisterEvent("PLAYER_ALIVE") Subtlety.eventFrame:UnregisterEvent("ADDON_LOADED") Subtlety.eventFrame:UnregisterEvent("PLAYER_LOGIN") Subtlety.eventFrame:UnregisterEvent("PLAYER_TARGET_CHANGED") Subtlety.eventFrame:UnregisterEvent("PLAYER_TALENT_UPDATE") return end if not Subtletydb then Subtletydb = {} end if not Subtletydb.scale then Subtletydb.scale = 1 end if not Subtletydb.RupturePoints then Subtletydb.RupturePoints = 5 end if not Subtletydb.RupturePriority then Subtletydb.RupturePriority = 2 end if not Subtletydb.SliceAndDicePoints then Subtletydb.SliceAndDicePoints = 5 end if not Subtletydb.SliceAndDicePriority then Subtletydb.SliceAndDicePriority = 1 end if Subtletydb.locked == nil then Subtletydb.locked = true end if not Subtletydb.x then Subtletydb.x = 100 end if not Subtletydb.y then Subtletydb.y = 100 end if not Subtletydb.SuggestVanish then Subtletydb.SuggestVanish = false end if not Subtletydb.SuggestBackstab then Subtletydb.SuggestBackstab = true end if not Subtletydb.SuggestShadowDance then Subtletydb.SuggestShadowDance = false end if not Subtletydb.SuggestTotT then Subtletydb.SuggestTotT = false end if Subtletydb.range == nil then Subtletydb.range = true end if (Subtletydb.SuggestBackstab == true) then Subtlety.L["Generator"] = Subtlety.L["Hemorrhage"] else Subtlety.L["Generator"] = Subtlety.L["Backstab"] end Subtlety:CreateGUI() Subtlety.displayFrame:SetScale(Subtletydb.scale) Subtlety:CreateOptionFrame() if Subtletydb.locked then Subtlety.displayFrame:SetScript("OnMouseDown", nil) Subtlety.displayFrame:SetScript("OnMouseUp", nil) Subtlety.displayFrame:SetScript("OnDragStop", nil) Subtlety.displayFrame:SetBackdropColor(0, 0, 0, 0) Subtlety.displayFrame:EnableMouse(false) else Subtlety.displayFrame:SetScript("OnMouseDown", function(self) self:StartMoving() end) Subtlety.displayFrame:SetScript("OnMouseUp", function(self) self:StopMovingOrSizing() end) Subtlety.displayFrame:SetScript("OnDragStop", function(self) self:StopMovingOrSizing() end) Subtlety.displayFrame:SetBackdropColor(0, 0, 0, .4) Subtlety.displayFrame:EnableMouse(true) end Subtlety.eventFrame:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED") Subtlety.eventFrame:RegisterEvent("PLAYER_TARGET_CHANGED") if GetSpecialization() == 3 then Subtlety.displayFrame:Show() else Subtlety.displayFrame:Hide() end end function Subtlety.events.COMBAT_LOG_EVENT_UNFILTERED(timestamp, event, srcGUID, srcName, srcFlags, dstGUID, dstName, dstFlags, ...) end function Subtlety.events.COMBAT_RATING_UPDATE(unit) end function Subtlety.events.PLAYER_TARGET_CHANGED(...) Subtlety.lastTarget = Subtlety.currentTarget Subtlety.currentTarget = UnitGUID("target") if UnitName("target") == nil or UnitIsFriend("player","target") ~= nil or UnitHealth("target") == 0 then Subtlety.displayFrame_last:Hide() Subtlety.displayFrame_current:Hide() Subtlety.displayFrame_next:Hide() Subtlety.displayFrame_misc:Hide() Subtlety.displayFrame_int:Hide() Subtlety.displayFrame_ss:Hide() else Subtlety.displayFrame_last:Show() Subtlety.displayFrame_current:Show() Subtlety.displayFrame_next:Show() Subtlety.displayFrame_misc:Show() Subtlety.displayFrame_int:Show() Subtlety.displayFrame_ss:Show() Subtlety:DecideSpells() end end function Subtlety:CreateGUI() local displayFrame = CreateFrame("Frame","SubtletyDisplayFrame",UIParent) displayFrame:SetFrameStrata("BACKGROUND") displayFrame:SetWidth(300) displayFrame:SetHeight(95) displayFrame:EnableMouse(true) displayFrame:SetMovable(true) displayFrame:SetClampedToScreen(true) displayFrame:SetScript("OnMouseDown", function(self) self:StartMoving() end) displayFrame:SetScript("OnMouseUp", function(self) self:StopMovingOrSizing() end) displayFrame:SetScript("OnDragStop", function(self) self:StopMovingOrSizing() end) displayFrame:SetPoint("CENTER",-200,-200) local displayFrame_last = CreateFrame("Frame","$parent_last", SubtletyDisplayFrame) local displayFrame_current = CreateFrame("Frame","$parent_current", SubtletyDisplayFrame) local displayFrame_next = CreateFrame("Frame","$parent_next", SubtletyDisplayFrame) local displayFrame_misc = CreateFrame("Frame","$parent_misc", SubtletyDisplayFrame) local displayFrame_int = CreateFrame("Frame","$parent_int", SubtletyDisplayFrame) local displayFrame_ss = CreateFrame("Frame","$parent_ss", SubtletyDisplayFrame) displayFrame_last:SetWidth(45) displayFrame_current:SetWidth(70) displayFrame_next:SetWidth(45) displayFrame_misc:SetWidth(45) displayFrame_int:SetWidth(45) displayFrame_ss:SetWidth(45) displayFrame_last:SetHeight(45) displayFrame_current:SetHeight(70) displayFrame_next:SetHeight(45) displayFrame_misc:SetHeight(45) displayFrame_int:SetHeight(45) displayFrame_ss:SetHeight(45) displayFrame_current:SetPoint("TOPLEFT", 140, 40) displayFrame_next:SetPoint("TOPLEFT", 150, -10) displayFrame_last:SetPoint("TOPLEFT", 0, -10) displayFrame_misc:SetPoint("TOPLEFT", 0, 40) displayFrame_int:SetPoint("TOPLEFT", 50, 40) displayFrame_ss:SetPoint("TOPLEFT", 50,-10) local t = displayFrame_last:CreateTexture(nil,"BACKGROUND") t:SetTexture(nil) t:SetAllPoints(displayFrame_last) t:SetAlpha(.8) displayFrame_last.texture = t Subtlety.textureList["last"] = t t = displayFrame_current:CreateTexture(nil,"BACKGROUND") t:SetTexture(nil) t:ClearAllPoints() t:SetAllPoints(displayFrame_current) displayFrame_current.texture = t Subtlety.textureList["current"] = t t = displayFrame_misc:CreateTexture(nil,"BACKGROUND") t:SetTexture(nil) t:SetAllPoints(displayFrame_misc) t:SetAlpha(.8) displayFrame_misc.texture = t Subtlety.textureList["misc"] = t t = displayFrame_int:CreateTexture(nil,"BACKGROUND") t:SetTexture(nil) t:SetAllPoints(displayFrame_int) t:SetAlpha(.8) displayFrame_int.texture = t Subtlety.textureList["int"] = t t = displayFrame_next:CreateTexture(nil,"BACKGROUND") t:SetTexture(nil) t:SetAllPoints(displayFrame_next) t:SetAlpha(.8) displayFrame_next.texture = t Subtlety.textureList["next"] = t t = displayFrame_ss:CreateTexture(nil,"BACKGROUND") t:SetTexture(nil) t:SetAllPoints(displayFrame_ss) t:SetAlpha(.8) displayFrame_ss.texture = t Subtlety.textureList["ss"] = t displayFrame:SetScript("OnUpdate", function(this, elapsed) Subtlety:OnUpdate(elapsed) end) local cooldownFrame = CreateFrame("Cooldown","$parent_cooldown", SubtletyDisplayFrame_current) cooldownFrame:SetHeight(70) cooldownFrame:SetWidth(70) cooldownFrame:ClearAllPoints() cooldownFrame:SetPoint("CENTER", displayFrame_current, "CENTER", 0, 0) Subtlety.displayFrame = displayFrame Subtlety.displayFrame_last = displayFrame_last Subtlety.displayFrame_current = displayFrame_current Subtlety.displayFrame_next = displayFrame_next Subtlety.displayFrame_misc = displayFrame_misc Subtlety.displayFrame_int = displayFrame_int Subtlety.displayFrame_ss = displayFrame_ss Subtlety.cooldownFrame = cooldownFrame end function Subtlety:OnUpdate(elapsed) Subtlety.timeSinceLastUpdate = Subtlety.timeSinceLastUpdate + elapsed; Subtlety:DecideSpells() end function Subtlety:Find(t, v, c) if type(t) == "table" and v then v = (c==0 or c==2) and v:lower() or v for k, val in pairs(t) do val = (c==0 or c==2) and val:lower() or val if (c==1 or c==2) and val:find(v) or v == val then return k end end end return nil end function Subtlety:DecideSpells() Subtlety.timeSinceLastUpdate = 0; if UnitName("target") == nil or UnitIsFriend("player","target") ~= nil or UnitHealth("target") == 0 then return end Subtlety.Finisher = { { spell = "Rupture", name = "rupture", priority = Subtletydb.RupturePriority, points = Subtletydb.RupturePoints, energy = 25, expires = '0', }, { spell = "Slice and Dice", name = "slice_and_dice", priority = Subtletydb.SliceAndDicePriority, points = Subtletydb.SliceAndDicePoints, energy = 25, expires = '0', }, } function sort_func(a, b) return a.priority < b.priority; end table.sort(Subtlety.Finisher, sort_func); local guid = UnitGUID("target") local puid = UnitGUID("player") if guid == nil then Subtlety.textureList["last"]:SetTexture(nil) Subtlety.textureList["current"]:SetTexture(nil) Subtlety.textureList["next"]:SetTexture(nil) Subtlety.textureList["misc"]:SetTexture(nil) Subtlety.textureList["int"]:SetTexture(nil) Subtlety.textureList["ss"]:SetTexture(nil) return end local energy = UnitPower("player") local cp = GetComboPoints("player") local currentTime = GetTime() local spell = "" local nextspell = "" local miscspell = "" local intspell = "" local bleeds = 0 local cost = 0 local garrote = 0 local slice_and_dice = 0 local recuperate = 0 local rupture = 0 local premeditation = 0 local hemorrhage = 0 local vanish = 0 local tott = 0 local shadowblades = 0 local shadow_dance = 0 local master_of_subtlety = 0 local serrated_blades = 0 for i = 1, 2, 1 do local name, rank, icon, count, debuffType, duration, expirationTime, isMine, isStealable = UnitBuff("player", Subtlety.L[Subtlety.Finisher[i].spell]) currentTime = GetTime() if name ~= nil then if Subtlety.Finisher[i].name == "slice_and_dice" then Subtlety.Finisher[i]["expires"] = expirationTime - currentTime end end local name, rank, icon, count, debuffType, duration, expirationTime, isMine, isStealable = UnitDebuff("target", Subtlety.L[Subtlety.Finisher[i].spell]) currentTime = GetTime() if name ~= nil then if Subtlety.Finisher[i].name == "rupture" then Subtlety.Finisher[i]["expires"] = expirationTime - currentTime end end end local name, rank, icon, price, isFunnel, powerType, castTime, minRange, maxRange = GetSpellInfo(Subtlety.L["Generator"]) if name ~= nil then cost = price end local name, rank, icon, count, debuffType, duration, expirationTime, isMine, isStealable = UnitDebuff("target", Subtlety.L["Rupture"]) currentTime = GetTime() if name ~= nil and isMine == "player" then rupture = expirationTime - currentTime end local name, rank, icon, count, debuffType, duration, expirationTime, isMine, isStealable = UnitDebuff("target", Subtlety.L["Garrote"]) currentTime = GetTime() if name ~= nil and isMine == "player" then garrote = expirationTime - currentTime bleeds = 1 end local name, rank, icon, count, debuffType, duration, expirationTime, isMine, isStealable = UnitBuff("player", Subtlety.L["Master of Subtlety"]) currentTime = GetTime() if name ~= nil then master_of_subtlety = expirationTime - currentTime end local name, rank, icon, count, debuffType, duration, expirationTime, isMine, isStealable = UnitDebuff("target", Subtlety.L["Hemorrhage-Debuff"]) currentTime = GetTime() if name ~= nil and isMine == "player" then hemorrhage = expirationTime - currentTime end local start, duration, enabled = GetSpellCooldown(Subtlety.L["Tricks of the Trade"]); if duration ~= nil then tott = duration + start - currentTime else tott = 60 end local start, duration, enabled = GetSpellCooldown(Subtlety.L["Shadow Blades"]); if duration ~= nil then shadowblades = duration + start - currentTime else shadowblades = 60 end local start, duration, enabled = GetSpellCooldown(Subtlety.L["Vanish"]); if duration ~= nil then vanish = duration + start - currentTime else vanish = 60 end local start, duration, enabled = GetSpellCooldown(Subtlety.L["Shadow Dance"]); if duration ~= nil then shadow_dance = duration + start - currentTime else shadow_dance = 60 end if (UnitAura("player", Subtlety.L["Stealth"]) ~= nil or UnitBuff("player", Subtlety.L["Shadow Dance"]) ~= nil or UnitBuff("player", Subtlety.L["Vanish"]) ~= nil) then if UnitAura("player", Subtlety.L["Stealth"]) ~= nil then spell = Subtlety.L["Ambush"]; elseif (tott < 1) and (Subtletydb.SuggestTotT == true) then spell = Subtlety.L["Tricks of the Trade"]; elseif (tonumber(Subtlety.Finisher[1].expires) <= 1) and (cp >= tonumber(Subtlety.Finisher[1].points)) and (tonumber(Subtlety.Finisher[1].points) ~= 0) then if (energy >= Subtlety.Finisher[1].energy) then spell = Subtlety.L[Subtlety.Finisher[1].spell]; else nextspell = Subtlety.L[Subtlety.Finisher[1].spell]; end elseif (tonumber(Subtlety.Finisher[2].expires) <= 1) and (cp >= tonumber(Subtlety.Finisher[2].points)) and (tonumber(Subtlety.Finisher[2].points) ~= 0) then if (energy >= Subtlety.Finisher[2].energy) then spell = Subtlety.L[Subtlety.Finisher[2].spell]; else nextspell = Subtlety.L[Subtlety.Finisher[2].spell]; end elseif (cp == 5) then if (energy >= 25) then spell = Subtlety.L["Eviscerate"]; else nextspell = Subtlety.L["Eviscerate"]; end else if rupture == 0 then if (energy >= 50) then spell = Subtlety.L["Ambush"]; else nextspell = Subtlety.L["Ambush"]; end else if (energy >= 40) then spell = Subtlety.L["Ambush"]; else nextspell = Subtlety.L["Ambush"]; end end end end if (UnitAura("player", Subtlety.L["Stealth"]) == nil and UnitBuff("player", Subtlety.L["Shadow Dance"]) == nil and UnitBuff("player", Subtlety.L["Vanish"]) == nil) then if (rupture <= 5) and (cp == 5) and (rupture ~= 0) then if (energy >= 35) then spell = Subtlety.L["Eviscerate"]; else nextspell = Subtlety.L["Eviscerate"]; end elseif (tott < 1) and (Subtletydb.SuggestTotT == true) then spell = Subtlety.L["Tricks of the Trade"]; elseif (shadow_dance < 1) and (Subtletydb.SuggestShadowDance == true) then spell = Subtlety.L["Shadow Dance"]; elseif (vanish < 1) and (Subtletydb.SuggestVanish == true) and UnitAffectingCombat("player") == 1 then spell = Subtlety.L["Vanish"]; elseif (tonumber(Subtlety.Finisher[1].expires) <= 5) and (cp >= tonumber(Subtlety.Finisher[1].points)) and (tonumber(Subtlety.Finisher[1].points) ~= 0) then if (energy >= Subtlety.Finisher[1].energy) then spell = Subtlety.L[Subtlety.Finisher[1].spell]; else nextspell = Subtlety.L[Subtlety.Finisher[1].spell]; end elseif (tonumber(Subtlety.Finisher[2].expires) <= 5) and (cp >= tonumber(Subtlety.Finisher[2].points)) and (tonumber(Subtlety.Finisher[2].points) ~= 0) then if (energy >= Subtlety.Finisher[2].energy) then spell = Subtlety.L[Subtlety.Finisher[2].spell]; else nextspell = Subtlety.L[Subtlety.Finisher[2].spell]; end elseif (cp == 5) then if (energy >= 25) then spell = Subtlety.L["Eviscerate"]; else nextspell = Subtlety.L["Eviscerate"]; end else if (hemorrhage <= 5) then if (energy >= cost) then spell = Subtlety.L["Hemorrhage"]; else nextspell = Subtlety.L["Hemorrhage"]; end else if (energy >= cost) then spell = Subtlety.L["Generator"]; else nextspell = Subtlety.L["Generator"]; end end end end Subtlety.textureList["current"]:SetTexture(GetSpellBookItemTexture(spell)) Subtlety.textureList["next"]:SetTexture(GetSpellBookItemTexture(nextspell)) if shadow_dance < 1 then Subtlety.textureList["last"]:SetTexture(GetSpellBookItemTexture(Subtlety.L["Shadow Dance"])) else Subtlety.textureList["last"]:SetTexture(nil) end if tott < 1 then Subtlety.textureList["misc"]:SetTexture(GetSpellBookItemTexture(Subtlety.L["Tricks of the Trade"])) else Subtlety.textureList["misc"]:SetTexture(nil) end if (vanish < 1) then Subtlety.textureList["int"]:SetTexture(GetSpellBookItemTexture(Subtlety.L["Vanish"])) else Subtlety.textureList["int"]:SetTexture(nil) end if shadowblades < 1 then Subtlety.textureList["ss"]:SetTexture(GetSpellBookItemTexture(Subtlety.L["Shadow Blades"])) else Subtlety.textureList["ss"]:SetTexture(nil) end if spell ~= "" and spell ~= nil then local start, dur = GetSpellCooldown(spell) if dur == 0 or start == nil or dur == nil then Subtlety.cooldownFrame:SetAlpha(0) else Subtlety.cooldownFrame:SetAlpha(1) Subtlety.cooldownFrame:SetCooldown(start, dur) end end end function Subtlety:CreateOptionFrame() local panel = CreateFrame("FRAME", "SubtletyOptions"); panel.name = "Rotação Subterfúgio"; local fstring00 = panel:CreateFontString("SubtletyOptions_string00","OVERLAY","GameFontNormal") fstring00:SetText("Prioridade") fstring00:SetPoint("TOPLEFT", 355, -35) local fstring01 = panel:CreateFontString("SubtletyOptions_string01","OVERLAY","GameFontNormal") fstring01:SetText("Pontos de Combo") fstring01:SetPoint("TOPLEFT", 485, -35) local fstring2 = panel:CreateFontString("SubtletyOptions_string2","OVERLAY","GameFontNormal") fstring2:SetText("Ruptura") fstring2:SetPoint("TOPLEFT", 10, -70) local slider2a = CreateFrame("Slider", "$parent_s2a", panel, "OptionsSliderTemplate") slider2a:SetMinMaxValues(1, 2) slider2a:SetWidth(75) slider2a:SetValue(Subtlety:GetRupturePriority()) slider2a:SetValueStep(1) slider2a:SetScript("OnValueChanged", function(self) Subtlety:SetRupturePriority(self:GetValue()); getglobal(self:GetName() .. "Text"):SetText(self:GetValue()) end) getglobal(slider2a:GetName() .. "Low"):SetText("1") getglobal(slider2a:GetName() .. "High"):SetText("2") getglobal(slider2a:GetName() .. "Text"):SetText(Subtlety:GetRupturePriority()) slider2a:SetPoint("TOPRIGHT", -200, -70) local slider2b = CreateFrame("Slider", "$parent_s2b", panel, "OptionsSliderTemplate") slider2b:SetMinMaxValues(0, 5) slider2b:SetWidth(150) slider2b:SetValue(Subtlety:GetRupturePoints()) slider2b:SetValueStep(1) slider2b:SetScript("OnValueChanged", function(self) Subtlety:SetRupturePoints(self:GetValue()); getglobal(self:GetName() .. "Text"):SetText(self:GetValue()) end) getglobal(slider2b:GetName() .. "Low"):SetText("0") getglobal(slider2b:GetName() .. "High"):SetText("5") getglobal(slider2b:GetName() .. "Text"):SetText(Subtlety:GetRupturePoints()) slider2b:SetPoint("TOPRIGHT", -10, -70) local fstring3 = panel:CreateFontString("SubtletyOptions_string3","OVERLAY","GameFontNormal") fstring3:SetText("Retalhar") fstring3:SetPoint("TOPLEFT", 10, -100) local slider3a = CreateFrame("Slider", "$parent_s3a", panel, "OptionsSliderTemplate") slider3a:SetMinMaxValues(1, 2) slider3a:SetWidth(75) slider3a:SetValue(Subtlety:GetSliceAndDicePriority()) slider3a:SetValueStep(1) slider3a:SetScript("OnValueChanged", function(self) Subtlety:SetSliceAndDicePriority(self:GetValue()); getglobal(self:GetName() .. "Text"):SetText(self:GetValue()) end) getglobal(slider3a:GetName() .. "Low"):SetText("1") getglobal(slider3a:GetName() .. "High"):SetText("2") getglobal(slider3a:GetName() .. "Text"):SetText(Subtlety:GetSliceAndDicePriority()) slider3a:SetPoint("TOPRIGHT", -200, -100) local slider3b = CreateFrame("Slider", "$parent_s3b", panel, "OptionsSliderTemplate") slider3b:SetMinMaxValues(0, 5) slider3b:SetWidth(150) slider3b:SetValue(Subtlety:GetSliceAndDicePoints()) slider3b:SetValueStep(1) slider3b:SetScript("OnValueChanged", function(self) Subtlety:SetSliceAndDicePoints(self:GetValue()); getglobal(self:GetName() .. "Text"):SetText(self:GetValue()) end) getglobal(slider3b:GetName() .. "Low"):SetText("0") getglobal(slider3b:GetName() .. "High"):SetText("5") getglobal(slider3b:GetName() .. "Text"):SetText(Subtlety:GetSliceAndDicePoints()) slider3b:SetPoint("TOPRIGHT", -10, -100) local fstring4 = panel:CreateFontString("SubtletyOptions_string4","OVERLAY","GameFontNormal") fstring4:SetText("Sugerir Sumir na rotação") fstring4:SetPoint("TOPLEFT", 10, -150) local checkbox4 = CreateFrame("CheckButton", "$parent_cb4", panel, "OptionsCheckButtonTemplate") checkbox4:SetWidth(18) checkbox4:SetHeight(18) checkbox4:SetScript("OnClick", function() Subtlety:ToggleVanish() end) checkbox4:SetPoint("TOPRIGHT", -10, -150) checkbox4:SetChecked(Subtlety:GetVanish()) local fstring5 = panel:CreateFontString("SubtletyOptions_string4","OVERLAY","GameFontNormal") fstring5:SetText("Sugerir Hemorragia para gerar Pontos de Combo") fstring5:SetPoint("TOPLEFT", 10, -180) local checkbox5 = CreateFrame("CheckButton", "$parent_cb5", panel, "OptionsCheckButtonTemplate") checkbox5:SetWidth(18) checkbox5:SetHeight(18) checkbox5:SetScript("OnClick", function() Subtlety:ToggleBackstab() end) checkbox5:SetPoint("TOPRIGHT", -10, -180) checkbox5:SetChecked(Subtlety:GetBackstab()) local fstring6 = panel:CreateFontString("SubtletyOptions_string5","OVERLAY","GameFontNormal") fstring6:SetText("Sugerir Dança das Sombras") fstring6:SetPoint("TOPLEFT", 10, -210) local checkbox6 = CreateFrame("CheckButton", "$parent_cb6", panel, "OptionsCheckButtonTemplate") checkbox6:SetWidth(18) checkbox6:SetHeight(18) checkbox6:SetScript("OnClick", function() Subtlety:ToggleShadowDance() end) checkbox6:SetPoint("TOPRIGHT", -10, -210) checkbox6:SetChecked(Subtlety:GetShadowDance()) local fstring7 = panel:CreateFontString("SubtletyOptions_string7","OVERLAY","GameFontNormal") fstring7:SetText("Sugerir Truques do Ofício") fstring7:SetPoint("TOPLEFT", 10, -240) local checkbox7 = CreateFrame("CheckButton", "$parent_cb7", panel, "OptionsCheckButtonTemplate") checkbox7:SetWidth(18) checkbox7:SetHeight(18) checkbox7:SetScript("OnClick", function() Subtlety:ToggleTotT() end) checkbox7:SetPoint("TOPRIGHT", -10, -240) checkbox7:SetChecked(Subtlety:GetTotT()) local fstring8 = panel:CreateFontString("SubtletyOptions_string8","OVERLAY","GameFontNormal") fstring8:SetText("Escala GUI") fstring8:SetPoint("TOPLEFT", 10, -280) local slider8 = CreateFrame("Slider", "$parent_s8", panel, "OptionsSliderTemplate") slider8:SetMinMaxValues(.5, 1.5) slider8:SetValue(Subtlety:GetScale()) slider8:SetValueStep(.05) slider8:SetScript("OnValueChanged", function(self) Subtlety:SetScale(self:GetValue()); getglobal(self:GetName() .. "Text"):SetText(self:GetValue()) end) getglobal(slider8:GetName() .. "Low"):SetText("0.5") getglobal(slider8:GetName() .. "High"):SetText("1.5") getglobal(slider8:GetName() .. "Text"):SetText(Subtlety:GetScale()) slider8:SetPoint("TOPRIGHT", -10, -280) local fstring9 = panel:CreateFontString("SubtletyOptions_string1","OVERLAY","GameFontNormal") fstring9:SetText("Travar") fstring9:SetPoint("TOPLEFT", 10, -320) local checkbox9 = CreateFrame("CheckButton", "$parent_cb9", panel, "OptionsCheckButtonTemplate") checkbox9:SetWidth(18) checkbox9:SetHeight(18) checkbox9:SetScript("OnClick", function() Subtlety:ToggleLocked() end) checkbox9:SetPoint("TOPRIGHT", -10, -320) checkbox9:SetChecked(Subtlety:GetLocked()) InterfaceOptions_AddCategory(panel); end function Subtlety:GetLocked() return Subtletydb.locked end function Subtlety:ToggleLocked() if Subtletydb.locked then Subtletydb.locked = false Subtlety.displayFrame:SetScript("OnMouseDown", function(self) self:StartMoving() end) Subtlety.displayFrame:SetScript("OnMouseUp", function(self) self:StopMovingOrSizing() end) Subtlety.displayFrame:SetScript("OnDragStop", function(self) self:StopMovingOrSizing() end) Subtlety.displayFrame:SetBackdropColor(0, 0, 0, .4) Subtlety.displayFrame:EnableMouse(true) else Subtletydb.locked = true Subtlety.displayFrame:SetScript("OnMouseDown", nil) Subtlety.displayFrame:SetScript("OnMouseUp", nil) Subtlety.displayFrame:SetScript("OnDragStop", nil) Subtlety.displayFrame:SetBackdropColor(0, 0, 0, 0) Subtlety.displayFrame:EnableMouse(false) end end function Subtlety:GetScale() return Subtletydb.scale end function Subtlety:SetScale(num) Subtletydb.scale = num Subtlety.displayFrame:SetScale(Subtletydb.scale) Subtlety.cooldownFrame:SetScale(Subtletydb.scale) end function Subtlety.Options(msg, editBox) if(msg == 'show') then Subtlety.displayFrame:Show() elseif(msg == 'hide') then Subtlety.displayFrame:Hide() elseif(msg == '') then InterfaceOptionsFrame_OpenToCategory(getglobal("SubtletyOptions")) else end end function Subtlety:GetRupturePoints() return Subtletydb.RupturePoints end function Subtlety:SetRupturePoints(num) Subtletydb.RupturePoints = num end function Subtlety:GetRupturePriority() return Subtletydb.RupturePriority end function Subtlety:SetRupturePriority(num) Subtletydb.RupturePriority = num end function Subtlety:GetSliceAndDicePoints() return Subtletydb.SliceAndDicePoints end function Subtlety:SetSliceAndDicePoints(num) Subtletydb.SliceAndDicePoints = num end function Subtlety:GetSliceAndDicePriority() return Subtletydb.SliceAndDicePriority end function Subtlety:SetSliceAndDicePriority(num) Subtletydb.SliceAndDicePriority = num end function Subtlety:GetVanish() return Subtletydb.SuggestVanish end function Subtlety:GetShadowDance() return Subtletydb.SuggestShadowDance end function Subtlety:GetBackstab() return Subtletydb.SuggestBackstab end function Subtlety:GetTotT() return Subtletydb.SuggestTotT end function Subtlety:ToggleVanish() if(Subtletydb.SuggestVanish == true) then Subtletydb.SuggestVanish = false else Subtletydb.SuggestVanish = true end end function Subtlety:ToggleShadowDance() if(Subtletydb.SuggestShadowDance == true) then Subtletydb.SuggestShadowDance = false else Subtletydb.SuggestShadowDance = true end end function Subtlety:ToggleBackstab() if(Subtletydb.SuggestBackstab == true) then Subtletydb.SuggestBackstab = false Subtlety.L["Generator"] = Subtlety.L["Backstab"] else Subtletydb.SuggestBackstab = true Subtlety.L["Generator"] = Subtlety.L["Hemorrhage"] end end function Subtlety:ToggleTotT() if(Subtletydb.SuggestTotT == true) then Subtletydb.SuggestTotT = false else Subtletydb.SuggestTotT = true end end I already placed the BugTracker but did not identify any problem, and as I unfortunately have no programming knowledge, do not know what to do ... Last edited by Caetan0 : 08-04-14 at 03:54 PM. |
|
08-04-14, 03:54 PM | #10 | |
You've been asking for help with WoW addon code on these forums for years, but you don't seem to have learned even the most basic programming concepts in all that time -- this makes it very clear to us that you don't want to know anything about programming, and you just want other people to write programs for you. If you actually want to put in some effort and learn something, feel free to ask questions, and we're happy to help you. Otherwise, go use one of the working addons that people have already linked to you. I'm not going to write an addon for you, nor rewrite someone else's ancient and badly coded addon for you, and I doubt anyone else here is going to do either of those things either.
__________________
Retired author of too many addons. Message me if you're interested in taking over one of my addons. Don’t message me about addon bugs or programming questions. |
||
WoWInterface » AddOns, Compilations, Macros » AddOn Search/Requests » [REQUEST] Simple Rotation Rogue |
«
Previous Thread
|
Next Thread
»
|
Display Modes |
Linear Mode |
Switch to Hybrid Mode |
Switch to Threaded Mode |
|
|