Скрипты Neilyo и не только  
Автор Сообщение



<Имя Говорит Само за Себя>


Сервер: Гордунни
139
Сообщение Скрипты Neilyo и не только

В последнее время стали часто спрашивать, что за аддоны использует легендарный разбойник Neilyo.

Я решил приоткрыть завесу таинственности и выложить те скрипты, которые он использует.

Чтобы лучше разбираться в происходящем, рекомендую скачать программу notepad++ http://notepad-plus-plus.org/.

означает, что скрипт работает в MoP.

 

Blizzard Loss Of Control

 

Как удалить красный кулдаун с экшен баров:

Код:

f=CreateFrame("Frame") f:RegisterEvent("LOSS_OF_CONTROL_ADDED") f:RegisterEvent("LOSS_OF_CONTROL_UPDATE")
f:SetScript("OnEvent",function()for b in pairs(ActionBarActionEventsFrame.frames)do b.cooldown:SetLossOfControlCooldown(0,0)end end)

 или

Код:
hooksecurefunc('ActionButton_OnUpdate',function(self)self.cooldown:SetLossOfControlCooldown(0,0)end)

 

Как двигать фрейм луз контроля:

Код:
LossOfControlFrame:ClearAllPoints() LossOfControlFrame:SetPoint("CENTER",UIParent,"CENTER",0,-200)

 

Как двигать иконку луз контроля:

Код:
select(4,LossOfControlFrame:GetRegions()):ClearAllPoints ()
select(4,LossOfControlFrame:GetRegions()):SetPoint("CENTER",UIParent,"CENTER",0,-200)

 

Как скрыть темную текстуру у фрейма:

Код:
select(1,LossOfControlFrame:GetRegions()):SetAlpha(0)

 

Как скрыть красные полосы сверху и снизу:

Код:
select(2,LossOfControlFrame:GetRegions()):SetAlpha(0) select(3,LossOfControlFrame:GetRegions()):SetAlpha(0)

 

Как сделать текст контроля под иконкой:

Код:
select(5,LossOfControlFrame:GetRegions()):ClearAllPoints()

select(5,LossOfControlFrame:GetRegions()):SetPoint("TOP",select(4,LossOfControlFrame:GetRegions()),"BOTTOM")

 

Как удалить отсчет времени около иконки:

Код:
select(2,LossOfControlFrame:GetChildren()):SetAlpha(0)

 

Как сделать запятые в комбат-тексте

 

Revilated писал(а):

 

Разобрался как поставить запятую, разделяющую большие числа в комбат тексте как на еу клиентах.

 

Нужно прописать в любом луа файле LARGE_NUMBER_SEPERATOR = ","

 

На ру клиентах эта переменная почему-то равна пустой строке.

 

 

PvP-тринкеты противников на арене.

 

Код:

Чтобы выбрать позиции арена фреймов, необходимо указать их координаты в строчке под номером 9.

Координаты иконок тринкета и размер указываются в строчках 14 и 15 соответственно.

Для отображения арена фреймов вне арены используется команда /testaef. 

Можно использовать эти макросы:

Код:
/script LoadAddOn("Blizzard_ArenaUI"); ArenaEnemyFrames:Show(); ArenaEnemyFrame1:Show()

Код:
/run local f=ArenaEnemyFrame1; f:ClearAllPoints(); f:SetPoint("CENTER", nil, "CENTER", 209.0, 204.0)

 

Для выбора масштаба арена фреймов добавьте строчку:

Код:

ArenaEnemyFrame1:ClearAllPoints()

ArenaEnemyFrame1:SetPoint("CENTER", nil, "CENTER", 209.0, 204.0)

ArenaEnemyFrames:SetScale(1.3)

 

 

Скрипт отображает комбат цели и фокуса

 

Код:

 

CTT=CreateFrame("Frame")CTT:SetParent(TargetFrame)CTT:SetPoint("Left",TargetFrame,-30,5)CTT:SetSize(25,25)CTT.t=CTT:CreateTexture(nil,BORDER)CTT.t:SetAllPoints()CTT.t:SetTexture("Interface\\Icons\\ABILITY_DUALWIELD")CTT:Hide()
local function FrameOnUpdate(self) if UnitAffectingCombat("target") then self:Show() else self:Hide() end end local g = CreateFrame("Frame") g:SetScript("OnUpdate", function(self) FrameOnUpdate(CTT) end)
CFT=CreateFrame("Frame")CFT:SetParent(FocusFrame)CFT:SetPoint("Left",FocusFrame,-30,5)CFT:SetSize(25,25)CFT.t=CFT:CreateTexture(nil,BORDER)CFT.t:SetAllPoints()CFT.t:SetTexture("Interface\\Icons\\ABILITY_DUALWIELD")CFT:Hide()
local function FrameOnUpdate(self) if UnitAffectingCombat("focus") then self:Show() else self:Hide() end end local g = CreateFrame("Frame") g:SetScript("OnUpdate", function(self) FrameOnUpdate(CFT) end)

 

 

 

Координаты и размер иконки комбата настраиваются в строках:

Код:
CTT:SetParent(TargetFrame)CTT:SetPoint("Left",TargetFrame,-30,5)CTT:SetSize(25,25)

Код:
CFT:SetParent(FocusFrame)CFT:SetPoint("Left",FocusFrame,-30,5)CFT:SetSize(25,25)

 

 

Иконка класса вместо портрета игрока

 

Код:

UFP = "UnitFramePortrait_Update"
UICC = "Interface\\TargetingFrame\\UI-Classes-Circles"
CIT = CLASS_ICON_TCOORDS
hooksecurefunc(UFP,function(self) if self.portrait then if UnitIsPlayer(self.unit) and UnitIsVisible(self.unit) then self.portrait:SetTexture(UICC) self.portrait:SetTexCoord(unpack(CIT[select(2,UnitClass(self.unit))])) else self.portrait:SetTexCoord(0,1,0,1) end end end)

 

 

Шрифт комбат текста

 

Для этого необходимо положить файл с нужным вам шрифтом в папку с аддоном и переименовать его в font.

Код:

local fontName = "Interface\\AddOns\\NeilyoScript\\font.ttf"
local fontHeight = 40
local fFlags = ""

local function FS_SetFont()
DAMAGE_TEXT_FONT = fontName
COMBAT_TEXT_HEIGHT = fontHeight
COMBAT_TEXT_CRIT_MAXHEIGHT = fontHeight + 2
COMBAT_TEXT_CRIT_MINHEIGHT = fontHeight - 2
local fName, fHeight, fFlags = CombatTextFont:GetFont()
CombatTextFont:SetFont(fontName, fontHeight, fFlags)

end
FS_SetFont()

 

 

Enemy Cooldowns

 

Скрипт, отображающий использованные кулдауны врагов. Этот код я нашел на одном из китайских форумов, где умельцы смогли привести его в рабочее состояние.

Вот как эти скрипты выглядят в моем интерфейсе:http://i.imgur.com/gc8PO.jpg

Прежде всего, вам необходимо выбрать местоположение данных абилок. Для этого в игре введите команду /fstack.

В появившемся окне будут отображаться координаты X Y относительно нижнего левого угла монитора. Координаты по X отличаются на 22 для каждой иконки и по 30 для Y. Координаты указываются здесь:

Код:
t1p="Interface\\Icons\\ability_rogue_shadowdance";t1=CF(F);TrS(t1,240,560,"cd1",t1p,22,true)

Если "true" заменить на "false", то при заходе(релоге) не будут высвечиваться все кулдауны.

 

 

Как добавлять свои абилки (покажу на примере маговского КСа).


1)Находим нужную абилку  Антимагия

2)В ссылке http://www.wowhead.com/spell=2139 цифры после "=" показывают ID спелла.

3)Нажимаем на иконку КСа, чтобы узнать, как она называется: spell_frost_iceshock

4)Также необходимо знать кулдаун спелла: 24 сек

Теперь все необходимое у нас есть, чтобы добавить в скрипт. Ниже показана добавленная строчка к маговским абилкам.

Жирным выделены изменения, произведенные в новой строке.

Код:

t15p="Interface\\Icons\\ability_mage_deepfreeze";t15=CF(F);TrS(t15,240,500,"cd15",t15p,22,true);t15:SetScript(OE,function(self,event,...) Ts(t15,cd15,select(1,...),select(5,...),44572,30) end);
t16p="Interface\\Icons\\spell_frost_wizardmark";t16=CF(F);TrS(t16,262,500,"cd16",t16p,22,true);t16:SetScript(OE,function(self,event,...) Ts(t16,cd16,select(1,...),select(5,...),11958,480) end);
t17p="Interface\\Icons\\spell_arcane_blink";t17=CF(F);TrS(t17,284,500,"cd17",t17p,22,true);t17:SetScript(OE,function(self,event,...) Ts(t17,cd17,select(1,...),select(5,...),1953,15) end);

t59p="Interface\\Icons\\spell_frost_iceshock";t59=CF(F);TrS(t59,306,500,"cd59",t59p,22,true);t59:SetScript(OE,function(self,event,...) Ts(t59,cd59,select(1,...),select(5,...),2139,24) end);

 

Можно назначить условия, когда будут отображаться необходимые кулдауны. Для этого в строчке 85:

Код:
(U=="arena1" or U=="target" or U=="arena2" or U=="arena3" or U=="arenapet1" or U=="arenapet2" or U=="arenapet3")

необходимо добавить нужные аргументы, например:

Код:
U=="party1" or U=="party2"

чтобы отображать кулдауны ваших сопартийцев.

 

 

В игре необходимо сделать макрос:

Код:
/run for i=1,58 do _G["t"..i]:Hide() end
/run for i=1,58 do _G["t"..i].c:Hide() end

С помощью него очищаются кулдауны после каждой арены или баттлграунда.

Значение "58" верно только для этого скрипта(для 58 спеллов), но при добавлении своих абилок его необходимо увеличивать.

 

 

Еще несколько полезных скриптов.

 

---by Talbadar---

 

Код:
/run StopwatchFrame:SetScale(.01)
/run StopwatchFrame:SetPoint("TOPLEFT",81000,0)
/run StopwatchTicker:SetScale(100)
/run StopwatchTicker:SetPoint("TOPLEFT",-430,-730)
/run StopwatchFrame:SetMovable(false)

Версия для аддона:

Код:

  1. local frame = CreateFrame("FRAME", "DefaultUIScrips")
  2. frame:RegisterEvent("PLAYER_ENTERING_WORLD")
  3.      local function eventHandler(self, event, ...)
  4.         StopwatchFrame:Show()
  5.         StopwatchFrame:SetScale(.01)
  6.         StopwatchFrame:ClearAllPoints()
  7.         StopwatchFrame:SetPoint("TOPLEFT",23400,0)
  8.         StopwatchTicker:SetScale(100)
  9.         StopwatchTicker:SetPoint("TOPLEFT",0,-80)
  10.         StopwatchFrame:SetMovable(false)
  11. end
  12. frame:SetScript("OnEvent", eventHandler)

 

Код:

/run for i = 1, 12 do _G["BonusActionButton"..i.."HotKey"]:SetAlpha(0) end
/run for i = 1, 12 do _G["MultiBarBottomLeftButton"..i.."HotKey"]:SetAlpha(0) end
/run for i = 1, 12 do _G["MultiBarBottomRightButton"..i.."HotKey"]:SetAlpha(0) end
/run for i = 1, 12 do _G["ActionButton"..i.."HotKey"]:SetAlpha(0) end 
/run for i = 1, 12 do _G["MultiBarLeftButton"..i.."HotKey"]:SetAlpha(0) end
/run for i = 1, 12 do _G["MultiBarRightButton"..i.."HotKey"]:SetAlpha(0) end

 

Код:
/run for i = 1, 12 do _G["BonusActionButton"..i.."Name"]:Hide() end

/run for i = 1, 12 do _G["ActionButton"..i.."Name"]:Hide() end
/run for i = 1, 12 do _G["MultiBarBottomLeftButton"..i.."Name"]:Hide() end
/run for i = 1, 12 do _G["MultiBarBottomRightButton"..i.."Name"]:Hide() end

 

Код:
Macro 1:
/run TF=CreateFrame("Frame")TFHB=TargetFrameHealthBar.TextString;TTSB=TextStatusBar_CapDisplayOfNumericValue
/run FF=CreateFrame("Frame")FFHB=FocusFrameHealthBar.TextString;TTSB=TextStatusBar_CapDisplayOfNumericValue
Macro 2:
/run TF:SetScript("OnUpdate", function(target)TFHB:SetText(TTSB(UnitHealth("target")).."/"..TTSB(UnitHealthMax("target")).." ("..format("%.0f", ((UnitHealth("target")/UnitHealthMax("target"))*100)).."%)") end)
Macro 3:
/run FF:SetScript("OnUpdate", function(focus)FFHB:SetText(TTSB(UnitHealth("focus")).."/"..TTSB(UnitHealthMax("focus")).." ("..format("%.0f", ((UnitHealth("focus")/UnitHealthMax("focus"))*100)).."%)") end)

 

Код:
/run V={B="ArenaEnemyFrame"} for i=1,5 do _G[V.B..i]:SetScale(1.23); _G[V.B..i.."CastingBar"]:SetPoint("RIGHT",95,0); end;

 

Код:

/run px,py=GetPlayerMapPosition("player"); DEFAULT_CHAT_FRAME:AddMessage(format("You are at: %s (%0.1f, %0.1f)",GetZoneText(),px*100,py*100));

 

---by Xandyn---

 

Код:
/run MultiBarBottomRight:SetScale(0.72);MultiBarBottomLeft:SetScale(0.72);MainMenuBar:ClearAllPoints();MainMenuBar:SetPoint("CENTER", UIParent, "CENTER", 0, -800);MainMenuBar.SetPoint = function() end
/run for i=1,12 do local s,t=_G["MultiBarBottomRightButton"..i],_G["MultiBarBottomLeftButton"..i];s[CA](s);s[SP](s,"CENTER",-310+i*38.5,625);t[CA](t);t[SP](t,"CENTER",200+i*38.5,662) end

 

Код:
/run for i = 1, NUM_CHAT_WINDOWS do local eb = _G['ChatFrame'..i..'EditBox'] eb:Hide()eb:HookScript('OnEnterPressed', function(s)s:Hide() end)end;ChatFrame1:SetClampedToScreen(nil)
/run ChatFrame1EditBox:SetPoint("TOPLEFT",GeneralDockManager,"TOPLEFT");ChatFrame1EditBox:EnableMouse(false);ChatFrame1:EnableMouse(false)
/run ChatFrame1Tab:ClearAllPoints();ChatFrame1Tab:SetPoint("CENTER", UIParent, "CENTER", -990, -990);ChatFrame1Tab.SetPoint = function() end
/run ChatFrame1:SetFont("Fonts\\ARIALN.TTF", 13, "OUTLINE");MinimapCluster:Hide();BuffButton1:SetScale(1.05);for i=1,16 do CreateFrame("Button", "TargetFrameBuff"..i, TargetFrame, "FrameTemplate"):SetScale(1.3) end

 

Код:
/run SetStatusBarColor(0,0.45,0.9); CastingBarFrame.SetStatusBarColor = function() end
/run FocusFrameSpellBar:SetStatusBarColor(0,0.45,0.9); FocusFrameSpellBar.SetStatusBarColor = function() end

 

Код:

-- Class colors in target name background

local frame = CreateFrame("FRAME")
frame:RegisterEvent("PLAYER_ENTERING_WORLD")
frame:RegisterEvent("PARTY_MEMBERS_CHANGED")
frame:RegisterEvent("PLAYER_TARGET_CHANGED")
frame:RegisterEvent("PLAYER_FOCUS_CHANGED")
frame:RegisterEvent("UNIT_FACTION")

local function eventHandler(self, event, ...)
local unitid = ...

if (event == "UNIT_FACTION" and unitid ~= "target" and unitid ~= "focus") then return end

if UnitIsPlayer("target") then
_, class = UnitClass("target")
c = RAID_CLASS_COLORS[class]
TargetFrameNameBackground:SetVertexColor(c.r, c.g, c.b )
end
if UnitIsPlayer("focus") then
_, class = UnitClass("focus")
c = RAID_CLASS_COLORS[class]
FocusFrameNameBackground:SetVertexColor(c.r, c.g, c.b )
end
end

frame:SetScript("OnEvent", eventHandler)

-- Class colors in focus name background

local frame = CreateFrame("FRAME")
frame:RegisterEvent("PLAYER_ENTERING_WORLD")
frame:RegisterEvent("PARTY_MEMBERS_CHANGED")
frame:RegisterEvent("PLAYER_FOCUS_CHANGED")
frame:RegisterEvent("UNIT_FACTION")

local function eventHandler(self, event, ...)
local unitid = ...

if (event == "UNIT_FACTION" and unitid ~= "focus") then return end

if UnitIsPlayer("focus") then
_, class = UnitClass("focus")
c = RAID_CLASS_COLORS[class]
FocusFrameNameBackground:SetVertexColor(c.r, c.g, c.b)
end
end
frame:SetScript("OnEvent", eventHandler)

-- Brighter targetname and focusname textures (fix)

for _, BarTextures in pairs({TargetFrameNameBackground, FocusFrameNameBackground})
do
BarTextures:SetTexture("Interface\\TargetingFrame\\UI-StatusBar")
end

 

Код:
/run h={PlayerFrame,TargetFrame,FocusFrame,PetFrame,MultiBarBottomLeft,MainMenuBar,MainMenuBarArtFrame,MultiBarBottomRight,MultiBarLeft,BuffFrame,Minimap,MinimapCluster,MultiBarRight,ArenaEnemyFrames,ArenaEnemyFrame1,ArenaEnemyFrame2,ArenaEnemyFrame3}
/run for _,s in ipairs( h) do s:EnableMouse(false); c={s:GetChildren()}; for _,v in ipairs© do if(v) then v:EnableMouse(false); end end end

 

Код:
/run AEF="ArenaEnemyFrame";C="CENTER";Ui=UIParent;R="RIGHT";CB="CastingBar";N="Name";CBI="CastingBarIcon";PF="PetFrame"; for i=1,3 do _G[AEF..i]:ClearAllPoints();_G[AEF..i]:ClearAllPoints();_G[AEF..i]:SetScale(1.64); end;
/run for i=1,3 do _G[AEF..i..PF]:Hide();_G[AEF..i..N]:Hide();_G[AEF..i..CB]:SetWidth(71);_G[AEF..i..CBI]:SetPoint("right", -71, 0);_G[AEF..i..CBI]:SetHeight(14);_G[AEF..i..CB]:SetStatusBarColor(0,0.45,0.9); end
/run _G[AEF.."1"]:SetPoint(C,Ui,C,175,-3);_G[AEF.."2"]:SetPoint(C,Ui,C,175,-38);_G[AEF.."3"]:SetPoint(C,Ui,C,175,-73); for i=1,3 do _G[AEF..i].SetPoint = function() end; _G[AEF..i..CB].SetStatusBarcolor = function() end end
/run ArenaEnemyFrame1CastingBar:SetPoint(R,-30,-20.5);ArenaEnemyFrame2CastingBar:SetPoint(R,-30,-20);ArenaEnemyFrame3CastingBar:SetPoint(R,-30,-19.5);for i=1,3 do _G[AEF..i..PF].Show = function() end end
/run for i=1,3 do _G[AEF..i..PF].Show = function() end _G[AEF..i.."ManaBarText"]:Hide();_G[AEF..i.."HealthBarText"]:Hide() _G[AEF..i.."ManaBarText"].Show = function() end _G[AEF..i.."HealthBarText"].Show = function() end end

 

Код:
/run PetFrame:SetScale(1.05);PetFrame:ClearAllPoints();PetFrame:SetPoint("CENTER", UIParent, "CENTER", -216, -282);PetFrame.SetPoint = function() end
/run PetName:Hide()

 

Код:
--player buffs

/run BuffFrame:ClearAllPoints();BuffFrame:SetPoint("CENTER", PlayerFrame, "CENTER", 771, 468);BuffFrame.SetPoint = function() end
/run BuffFrame:SetScale(1.2)

--player debuffs

/run DebuffButton1:ClearAllPoints();DebuffButton1:SetPoint("CENTER", PlayerFrame, "CENTER", 771, 468);DebuffButton1.SetPoint = function() end
/run DebuffButton1:SetScale(1.2)

-target buffs


/run hooksecurefunc("TargetFrame_UpdateAuraPositions",function(self) local g=_G["TargetFrameBuff1"] if g then g:ClearAllPoints();g:SetPoint("CENTER",TargetFrame,"CENTER",67,10)end end); TargetFrame.maxBuffs = 16
/run TargetFrameBuff1:SetScale(1.2)
/run TargetFrameDebuff1:SetScale(1.2)
etc

 

Код:
/run TargetFrameTextureFramePVPIcon:SetAlpha(0)
/run PlayerPVPIcon:SetAlpha(0) 
 

Код:

CastingBarFrame.timer =CastingBarFrame:CreateFontString(nil);
CastingBarFrame.timer:SetFont(STANDARD_TEXT_FONT,12,"OUTLINE");
--CastingBarFrame.timer:SetPoint("RIGHT",CastingBarFrame,"RIGHT",-5,-2);
CastingBarFrame.timer:SetPoint("RIGHT",CastingBarFrame,"RIGHT",2,-15);
CastingBarFrame.update =.1;

hooksecurefunc("CastingBarFrame_OnUpdate",function(self, elapsed)
        if not self.timer then return end
        if self.update and self.update < elapsed then
                if self.casting then
                        self.timer:SetText(format("%2.1f/%1.1f", max(self.maxValue -self.value,0),self.maxValue))
                elseif self.channeling then
                        self.timer:SetText(format("%.1f", max(self.value,0)))
                else
                        self.timer:SetText("")
                end
                self.update =.1
        else
                self.update =self.update - elapsed
        end
end)

 

Код:
/script for i=0,1 do teamName,oldTeamRating,newTeamRating, teamRating=GetBattlefieldTeamInfo(i);SendChatMessage(teamName .. " (now: " .. newTeamRating .. "; before: " .. oldTeamRating .. "; mmr: " .. teamRating .. ")", "PARTY"); end

 

Код:

local frame = CreateFrame("FRAME", "NameChangeScripts")
frame:RegisterEvent("PLAYER_ENTERING_WORLD")
local function eventHandler(self, event, ...)

 

-- EDIT THIS LINE BELOW TO CHANGE YOUR NAME
NewName = " "
PN = GetUnitName("player")

-- Change Player UnitFrame Name
PFNC = CreateFrame("Frame", "PlayerFrameNameChange")
local function ChangePlayerName(self)
PlayerFrame.name:SetText(NewName)
end
PFNC:SetScript("OnUpdate", ChangePlayerName)

-- Change Target UnitFrame Name
TFNC = CreateFrame("Frame", "TargetFrameNameChange")
local function ChangeTargetName(self)
local TN = GetUnitName("target")
if PN == TN then
TargetFrame.name:SetText(NewName)
end
end
TFNC:SetScript("OnUpdate", ChangeTargetName)

-- Change Target's Target UnitFrame Name
TFTNC = CreateFrame("Frame", "TargetFrameTargetNameChange")
local function ChangeTargetofTargetName(self)
local TTN = GetUnitName("targettarget")
if PN == TTN then
TargetFrameToT.name:SetText(NewName)
end
end
TFTNC:SetScript("OnUpdate", ChangeTargetofTargetName)

-- Change Focus UnitFrame Name
FFNC = CreateFrame("Frame", "FocusFrameNameChange")
local function ChangeFocusName(self)
local FN = GetUnitName("focus")
if PN == FN then
FocusFrame.name:SetText(NewName)
end
end
FFNC:SetScript("OnUpdate", ChangeFocusName)

-- Change Focus' Target UnitFrame Name
FFTNC = CreateFrame("Frame", "FocusFrameTargetNameChange")
local function ChangeFocusTargetName(self)
local FTN = GetUnitName("focustarget")
if PN == FTN then
FocusFrameToT.name:SetText(NewName)
end
end
FFTNC:SetScript("OnUpdate", ChangeFocusTargetName)

end
frame:SetScript("OnEvent", eventHandler)

 

Код:

local UnitIsPlayer, UnitIsConnected, UnitClass, RAID_CLASS_COLORS =
UnitIsPlayer, UnitIsConnected, UnitClass, RAID_CLASS_COLORS
local _, class, c

local function colour(statusbar, unit)
if UnitIsPlayer(unit) and UnitIsConnected(unit) and unit == statusbar.unit and UnitClass(unit) then
_, class = UnitClass(unit)
c = CUSTOM_CLASS_COLORS and CUSTOM_CLASS_COLORS[class] or RAID_CLASS_COLORS[class]
statusbar:SetStatusBarColor(c.r, c.g, c.b)
end
end

hooksecurefunc("UnitFrameHealthBar_Update", colour)
hooksecurefunc("HealthBar_OnValueChanged", function(self)
colour(self, self.unit)
end)

local sb = _G.GameTooltipStatusBar
local addon = CreateFrame("Frame", "StatusColour")
addon:RegisterEvent("UPDATE_MOUSEOVER_UNIT")
addon:SetScript("OnEvent", function()
colour(sb, "mouseover")
end)

 

#198

 

---Scripts by Firebug---

 

#198#198

Код:

--[[
Cooldown Viewer[Omnicc]

cs = actionbar cooldown text size
ps = player/focus/target/raid cooldown text size(disable if ps is 1)
ctp = actionbar cooldown position(DEFAULT : CENTER)
ptp = player cooldown position(DEFAULT : BOTTOMRIGHT)
ct = font

-- text position list

CETNER / RIGHT / LEFT
TOP / TOPRIGHT / TOPLEFT
BOTTOM / BOTTOMRIGHT / BOTTOMLEFT

-- font list

DAMAGE_TEXT_FONT
STANDARD_TEXT_FONT
UNIT_NAME_FONT
NAMEPLATE_FONT

-- show cooldown text until 1 sec

:: insert "elseif(e>0)then" -> "elseif(e>1)" in macro 3

-- disable to show 0.x sec with enabling red text

:: insert "return"%.1f",e" -> "return"%d",e" in macro 3

-- DEATH KNIGHT RUNE COOLDOWN DISABLE

instead of macro 6, use this two macro


/run function gct(f)if not cDB[f]then local c=gict(f)c:SetSize(c.s*crt,c.s*crt)sf(c,1)cDB[f]=c;end return cDB[f]end

/run function cvf(f,s,d)if(string.find(f:GetName(),"Rune") ~= nil)then return end local c=gct(f)if(s and d)then c.b=s;c.d=d;if(s>0 and d>1.5)then c.c=0;c.r=d-(GetTime()-s);suc(c)else rt(c)end end end

-------------------------------------------------------------------
-------------------------------------------------------------------]]--

/run cs=20;ps=10;ctp="CENTER"ptp="BOTTOMRIGHT"cp=5;ct=UNIT_NAME_FONT;crt=2;cDB={}action={}ccf=CreateFrame;gac=GetActionCooldown;ol="OUTLINE"cpe="PLAYER_ENTERING_WORLD"cau="ACTIONBAR_UPDATE_COOLDOWN"co="OnUpdate"

/run function rt(f)f.e=nil f.t:SetText("")f:SetScript(co,nil)end function sf(f,v)f.t:SetFont(ct,f.s*v,ol)end function acv(b)local x=b.cooldown x.a=b.action action[x]=x end function scv(p,f,po,s)if(s>1)then f.t:SetPoint(po,p)end f.s=s;end

/run function sr(f,e)if(e>60)then sf(f,0.7)if(f.s==cs)then return"%d:%02d",e,e else return"%dm",e+60,e end elseif(e>=cp)then sf(f,1)f.t:SetTextColor(1,1,0,1)return"%d",e elseif(e>0)then sf(f,0.9)f.t:SetTextColor(1,0,0,1)return"%.1f",e else return end end

/run function suc(f)if not f.e then f.e=1;f:SetScript(co,function(s,e)f.c=f.c+e;local fo,v1,v2=sr(f,f.r-f.c)if not fo then rt(f)elseif not v2 then f.t:SetFormattedText(fo,v1)else f.t:SetTextColor(1,1,1,1)f.t:SetFormattedText(fo,v1/60,v2%60)end end)end end

/run function scs(p,f)if(p:GetSize()<35)then scv(p,f,ptp,ps)else scv(p,f,ctp,cs)end end function gict(f)local c=ccf("Frame",nil,f)c:SetFrameLevel(f:GetFrameLevel()+5)c.t=c:CreateFontString(nil,"OVERLAY")c.t:SetAllPoints(c)scs(f:GetParent(),c)return c;end

/run function gct(f)if not cDB[f]then local c=gict(f)c:SetSize(c.s*crt,c.s*crt)sf(c,1)cDB[f]=c;end return cDB[f]end function cvf(f,s,d)local c=gct(f)if(s and d)then c.b=s;c.d=d;if(s>0 and d>1.5)then c.c=0;c.r=d-(GetTime()-s);suc(c)else rt(c)end end end

/run function cvc(DB)for c in pairs(DB)do if c.a then local s,d=gac(c.a)cvf(c,s,d)end end end function pcv(_,e)if e==cau then cvc(action)else cvc(cDB)end end for _,b in pairs(ActionBarButtonEventsFrame.frames)do acv(b)end

/run vc=ccf("Frame")vc:SetScript("OnEvent",pcv)vc:RegisterEvent(cpe)vc:RegisterEvent(cau)hooksecurefunc(getmetatable(ActionButton1Cooldown).__index,"SetCooldown",cvf)hooksecurefunc("SetActionUIButton",acv)

 

Код:

--[[
        Interrupt Bar

ic = icon size
xp = x position of interrupt bar
yp = y positon of interrupt bar

n = x icons per line

fl=0 : Enable in world
fl=1 : Enable only in Arena]]--


--[[
* use this line when use macro *

li={2139,19647,57994,48707,8143,8122,6552,1766,96231,47528,80965,44572}
cd={24,24,5,45,60,27,10,10,10,10,10,45}

]]--
/run li={2139,19647,57994,48707,8143,8122,6552,1766,96231,47528,80965,44572}cd={24,24,5,45,60,27,10,10,10,10,10,45}

/run fl=0;ic=40;xp=-500;yp=320;n=6;sfc=CooldownFrame_SetTimer;crf=CreateFrame;ce=math.ceil;ih=IsInInstance;gsi=GetSpellInfo;up=UIParent pe="PLAYER_ENTERING_WORLD"cdf="Cooldown"

/run function cf(i,s,x,y)local _,_,t=gsi(s)local f=crf("Frame",nil,up)f:SetPoint("CENTER",x,y)f:SetSize(ic,ic)f.t = f:CreateTexture(nil,"BORDER")f.t:SetAllPoints(true)f.t:SetTexture(t)f.c=CreateFrame(cdf,nil,f)f.c:SetAllPoints(f)return f;end

/run function ud(f,ls,lc)f:SetScript("OnEvent",function(_,_,_,e,_,_,_,b,_,_,_,_,_,s)if((bit.band(b,0x40) == 0x40)and e=="SPELL_CAST_SUCCESS"and s==ls)then sfc(f.c,GetTime(),lc,1)end end)f:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED")end

/run for i,s in ipairs(li)do _G["ib"..i] = cf(i,s,xp+(ic+5)*ce((i-1)%n),yp-(ic+5)*ce(i/n))ud(_G["ib"..i],s,cd[i])end

/run ik=crf("Frame")ik:SetScript("OnEvent",function()local _,t=ih()for i,s in ipairs(li)do local f=_G["ib"..i]if(t=="arena"or fl==0)then f:Show()f.c:Show()else f:Hide()f.c:Hide()end end end)ik:RegisterEvent(pe)

 

Код:

--[[
Buff Tracker

bl = icon list
bs = icon size
xb = x positon of buff Tracker
yb = y positon of buff Tracker

br = x buffs per line


-PALADIN
                - bl={31884,53563,31821,85497,86659,20049,88819,54149,84963,642,31842}

-SHAMAN
                - bl={52127,32734,324,61295,55277,8178,73685,96230}
                        
-PRIEST
                bl={588,73413,15473,81292,47218,17,92085,37274,33206,96266,59887,87152,81661}
]]--

/run bl={52127,32734,324,61295,55277,8178,73685,96230}

/run bs=30;xb=-360;yb=-140;br=6;bdr="BORDER"be="UNIT_AURA"cbf=CreateFrame;gi=GetSpellInfo;bm=math.ceil;fm=math.floor;st=STANDARD_TEXT_FONT;function cu(s) return UnitBuff("player",gi(s))end

/run function Cb(i,s)local _,_,t3=gi(s)local f=cbf("Frame")f:SetSize(bs,bs)f.t=f:CreateTexture(nil,bdr)f.t:SetAllPoints(true)f.t:SetTexture(t3)f.f=f:CreateFontString(nil,bdr)f.f:SetFont(st,12,"OUTLINE")f.f:SetPoint("BOTTOMRIGHT",0,0)return f;end

/run function vb(s,i,row)local b1,_,_,b4=cu(s)local f=_G["B"..i]if b1 then f:Show()f:SetPoint("CENTER",xb+(bs+5)*bm((row-1)%br),yb-(bs+10)*bm(row/br))if(b4>1)then f.f:SetText(b4)end row=row+1;end return row;end

/run function ub()for i,s in ipairs(bl)do local b,_,_,_,_,_,k=cu(s)if b then local vt=fm(k-GetTime())if (vt>=60)then vt=bm(vt/60)_G["B"..i].c:SetText(vt.."m")elseif vt >= 0 then _G["B"..i].c:SetText(vt.."s")end end end end

/run function Cc(f)f.c=f:CreateFontString(nil,bdr)f.c:SetFont(st,12,"OUTLINE")f.c:SetPoint("CENTER",0,-20)end function db()for i in ipairs(bl)do _G["B"..i]:Hide()end end

/run for i,s in ipairs(bl)do _G["B"..i]=Cb(i,s)Cc(_G["B"..i])_G["B"..i]:Hide()end function bb()db()local bw=1;for i,s in ipairs(bl)do bw=vb(s,i,bw)end end bk=cbf("Frame")bk:SetScript("OnEvent",bb)bk:SetScript("OnUpdate",ub)bk:RegisterEvent(be)

 

Код:

--[[
        DR Tracker

drx = x position
drs = icon size
        
DRt={{DRLIST1},{DRLIST2},{DRLIST3}...}
DEFAULT  : DRt={{fear},{polymorph}}


-- show frame in left of arena enemyframe

drx : set minus value(ex drx : -120)
dp : "LEFT"

and insert in macro 5

drx+(r-1) -> drx-(r-1)

]]--

/run DRt={{5782,8122,5484,20511,2094},{118,6770,1776,49203,28272,28271,61305,61721,61780,82691,51514}}

/run drx=110;drs=40;dp="RIGHT";dre="COMBAT_LOG_EVENT_UNFILTERED"drp="PLAYER_ENTERING_WORLD"dra="ARENA_OPPONENT_UPDATE"LoadAddOn("Blizzard_ArenaUI")function gaef(f,n)return _G["ArenaEnemyFrame"..n.."HealthBar"]end

/run function rDR(f)f.e=1;f.t:SetTexture(nil)f.c:Hide()end function sDR(f)f.e=f.e+1;f.c:Show()end function gDRt(i,j)return _G["drc"..i..":"..j]end function runDR(f,n)CooldownFrame_SetTimer(f.c,GetTime(),18,1)eDR(f,n)sDR(f)oDR(n)end

/run function eDR(f,n)local t=1;f:SetScript("OnUpdate",function(s,e)t=t+e;if(t>=18)then f:SetScript("OnUpdate",nil)rDR(f)oDR(n)end end)end function cDR(f,n,s)if f.e<4 then local _,_,t=GetSpellInfo(s)f.t:SetTexture(t)runDR(f,n)end end

/run function oDR(n)local r=1;for j in ipairs(DRt)do local f=gDRt(n,j)f:SetPoint(dp,gaef(f,n),dp,drx+(r-1)*50,0)r=r+1;end end function uDR(n,s)for i,t in ipairs(DRt)do for _,j in ipairs(t)do if s==j then cDR(gDRt(n,i),n,s)end end end end

/run function DRc(i,j)local f=CreateFrame("Frame",nil,UIParent)f:SetSize(drs,drs)f.t=f:CreateTexture(nil,"BORDER")f.t:SetAllPoints(true)f.c=CreateFrame("Cooldown",nil,f)f.c:SetAllPoints(f)f.e=1 return f end

/run function clDR(_,e,_,_,_,_,_,d,_,_,_,s)if(e=="SPELL_AURA_REMOVED" or e=="SPELL_AURA_REFRESH")then for i=1,5 do local ag=UnitGUID("arena"..i)if(ag ~= nil and d==ag)then uDR(i,s)end end end end

/run function iDRt(o,m)for i=1,m do for j in ipairs(DRt)do local f=gDRt(i,j)rDR(f)if o then f:Show()end end end end for i=1,5 do for j in ipairs(DRt)do _G["drc"..i..":"..j]=DRc(i,j)end end

/run dt=CreateFrame("Frame")dt:SetScript("OnEvent",function(_,e,...)if e==dre then clDR(...)elseif e==dra then iDRt(1,GetNumArenaOpponents())else iDRt(nil,5)end end)dt:RegisterEvent(dra)dt:RegisterEvent(drp)dt:RegisterEvent(dre)



 

http://www.arenajunkies.com/topic/23451 ... ine-ui-20/

 

 

---by Woundman---

http://www.arenajunkies.com/topic/218321-woundmans-config-8612/

 

#198

 

Код:

--Woundman DRTracker
USD="UNIT_SPELLCAST_SUCCEEDED";OT="OnEvent";FR="Frame";RF=CreateFrame;RD="Border";UE=UnitName
CS=RF(FR) CS.c=RF("Cooldown","CST",CS.t) CS:RegisterEvent(USD)
CS.c:SetAllPoints(CS) CS:SetPoint("TOPRIGHT",PlayerFrame,-2,-100)CS:SetSize(22,22)CS.t=CS:CreateTexture(nil,RD)CS.t:SetAllPoints()CS.t:SetTexture("Interface\\Icons\\ability_cheapshot")
CS:SetScript(OT,function(self,event,...)if UE(select(1,...))==UE("player")and select(5,...)==1833 then CST:SetCooldown(GetTime(),23) end if UE(select(1,...))==UE("player")and select(5,...)==408 then CST:SetCooldown(GetTime(),25)end end)
SP=RF(FR) SP.c=RF("Cooldown","SAP",SP.t) SP:RegisterEvent(USD)
SP.c:SetAllPoints(SP) SP:SetPoint("TOPRIGHT",PlayerFrame,-25,-100)SP:SetSize(22,22)SP.t=SP:CreateTexture(nil,RD)SP.t:SetAllPoints()SP.t:SetTexture("Interface\\Icons\\ability_sap")
SP:SetScript(OT,function(self,event,...)if UE(select(1,...))==UE("player")and select(5,...)==6770 then SAP:SetCooldown(GetTime(),27)end if UE(select(1,...))==UE("player")and select(5,...)==1776 then SAP:SetCooldown(GetTime(),23)end end)

 

 

---Scripts from IboUI---

 

Код:

  1. hooksecurefunc("ActionButton_OnEvent",function(self, event, ...)
  2.                 if ( event == "PLAYER_TARGET_CHANGED" ) then
  3.                         self.newTimer = self.rangeTimer
  4.                 end
  5.         end)
  6.  
  7.         hooksecurefunc("ActionButton_UpdateUsable",function(self)
  8.                 local icon = _G[self:GetName().."Icon"]
  9.                 local valid = IsActionInRange(self.action)
  10.  
  11.                 if ( valid == 0 ) then
  12.                         icon:SetVertexColor(1.0, 0.1, 0.1)
  13.                 end
  14.         end)
  15.  
  16.         hooksecurefunc("ActionButton_OnUpdate",function(self, elapsed)
  17.                 local rangeTimer = self.newTimer
  18.  
  19.                 if ( rangeTimer ) then
  20.                         rangeTimer = rangeTimer - elapsed
  21.  
  22.                         if ( rangeTimer <= 0 ) then
  23.                                 ActionButton_UpdateUsable(self)
  24.                                 rangeTimer = TOOLTIP_UPDATE_TIME
  25.                         end
  26.  
  27.                         self.newTimer = rangeTimer
  28.                 end
  29.         end)

Код:
hooksecurefunc("ActionButton_OnEvent",function(self, event, ...)
if ( event == "PLAYER_TARGET_CHANGED" ) then
self.newTimer = self.rangeTimer
end
end)

hooksecurefunc("ActionButton_UpdateUsable",function(self)
local icon = _G[self:GetName().."Icon"]
local valid = IsActionInRange(self.action)

if ( valid == false ) then
icon:SetVertexColor(1.0, 0.1, 0.1)
end
end)

hooksecurefunc("ActionButton_OnUpdate",function(self, elapsed)
local rangeTimer = self.newTimer

if ( rangeTimer ) then
rangeTimer = rangeTimer - elapsed

if ( rangeTimer <= 0 ) then
ActionButton_UpdateUsable(self)
rangeTimer = TOOLTIP_UPDATE_TIME
end

self.newTimer = rangeTimer
end
end)

#198

 

Код:

  1. MinimapBorderTop:Hide()
  2. MiniMapWorldMapButton:Hide()
  3. MinimapZoneText:SetPoint("TOPLEFT","MinimapZoneTextButton","TOPLEFT", 8, 0) -- to center the minimap zone text
  4. MinimapZoomIn:Hide()
  5. MinimapZoomOut:Hide()
  6. Minimap:EnableMouseWheel(true)
  7. Minimap:EnableMouseWheel(true)
  8. Minimap:SetScript('OnMouseWheel', function(self, delta)
  9.         if delta > 0 then
  10.                 Minimap_ZoomIn()
  11.         else
  12.                 Minimap_ZoomOut()
  13.         end
  14. end)

 

Код:

  1. local ef=CreateFrame("Frame")
  2.    
  3.       ef:RegisterEvent("ADDON_LOADED")
  4.          ef:SetScript("OnEvent", function(self, event, addon)
  5.              if(addon=="Blizzard_TimeManager") then
  6.           for i,v in pairs({
  7.                
  8.                 PlayerFrameTexture,
  9.                 TargetFrameTextureFrameTexture,
  10.                 PetFrameTexture,
  11.                         PartyMemberFrame1Texture,
  12.                         PartyMemberFrame2Texture,
  13.                         PartyMemberFrame3Texture,
  14.                         PartyMemberFrame4Texture,
  15.                 PartyMemberFrame1PetFrameTexture,
  16.                 PartyMemberFrame2PetFrameTexture,
  17.                 PartyMemberFrame3PetFrameTexture,
  18.                 PartyMemberFrame4PetFrameTexture,
  19.                         FocusFrameTextureFrameTexture,
  20.                         TargetFrameToTTextureFrameTexture,
  21.                         FocusFrameToTTextureFrameTexture,
  22.         BonusActionBarFrameTexture0,
  23.                 BonusActionBarFrameTexture1,
  24.                 BonusActionBarFrameTexture2,
  25.                 BonusActionBarFrameTexture3,
  26.                 BonusActionBarFrameTexture4,   
  27.                         MainMenuBarTexture0,
  28.                         MainMenuBarTexture1,
  29.                         MainMenuBarTexture2,
  30.                         MainMenuBarTexture3,
  31.         MainMenuMaxLevelBar0,
  32.         MainMenuMaxLevelBar1,
  33.                 MainMenuMaxLevelBar2,
  34.                 MainMenuMaxLevelBar3,
  35.                         MinimapBorder,
  36.                 CastingBarFrameBorder,
  37.                 FocusFrameSpellBarBorder,
  38.                 TargetFrameSpellBarBorder,
  39.                         MiniMapTrackingButtonBorder,
  40.                         MiniMapLFGFrameBorder,
  41.                         MiniMapBattlefieldBorder,
  42.                         MiniMapMailBorder,     
  43.  
  44.                 select(1, TimeManagerClockButton:GetRegions()),
  45.                 --select(1, GameTimeFrame:GetRegions()),
  46.               }) do
  47.                  v:SetVertexColor(.4, .4, .4)
  48.               end
  49.                 for i,v in pairs({
  50.                 select(2, TimeManagerClockButton:GetRegions()),
  51.                         }) do
  52.                  v:SetVertexColor(1, 1, 1)
  53.               end
  54.         self:UnregisterEvent("ADDON_LOADED")
  55.         ef:SetScript("OnEvent", nil)
  56.     end
  57. end)
  58.           for i,v in pairs({
  59.                 MainMenuBarLeftEndCap,
  60.         MainMenuBarRightEndCap,  
  61.               }) do
  62.                  v:SetVertexColor(.35, .35, .35)
  63.               end

#198

 

Код:

  1. local CurrentValues = CreateFrame("Frame")
  2. CurrentValues:SetScript("OnUpdate", function(self, e)
  3.  
  4.                 local PlayerHealth = UnitHealth("player")
  5.                 local PlayerMana = UnitMana("player")
  6.                
  7.         local TargetHealth = UnitHealth("target")
  8.         local TargetMana = UnitMana("target")
  9.                
  10.                 local FocusHealth = UnitHealth("focus")
  11.         local FocusMana = UnitMana("focus")
  12.                
  13.                
  14.                 PlayerFrameHealthBar.TextString:SetText(TextStatusBar_CapDisplayOfNumericValue(PlayerHealth))
  15.                 PlayerFrameManaBar.TextString:SetText(TextStatusBar_CapDisplayOfNumericValue(PlayerMana))
  16.                
  17.                 TargetFrameHealthBar.TextString:SetText(TextStatusBar_CapDisplayOfNumericValue(TargetHealth))
  18.                 TargetFrameManaBar.TextString:SetText(TextStatusBar_CapDisplayOfNumericValue(TargetMana))
  19.                
  20.                 FocusFrameHealthBar.TextString:SetText(TextStatusBar_CapDisplayOfNumericValue(FocusHealth))
  21.                 FocusFrameManaBar.TextString:SetText(TextStatusBar_CapDisplayOfNumericValue(FocusMana))
  22. end)

 

 

 

 

Внутренний кулдаун тринек.

 

#198

 

Оригинал тут.

 

Macro 1:
/run t=CreateFrame("Frame")
t:SetPoint("CENTER",0,0)
t:SetSize(40,40)
t.c=CreateFrame("Cooldown","cd1")
t.c:SetAllPoints(t)
t.t=t:CreateTexture(nil,"BORDER")
t.t:SetAllPoints()
t.t:SetTexture("Interface\\Icons\\inv_potion_85")

Macro 2:

/run t:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED")
t:SetScript("OnEvent",function(...)local _,_,_,_,x=select(3, ...)
if x==UnitName("Player")then local _,_,y=select(12, ...) 
if y==109721 then CooldownFrame_SetTimer(cd1,GetTime(),30,1)end end end)

You only need to change 3 things: inv_potion_85, 109721 and 30(cooldown).
Check out the list below.

Vial of Shadows inv_potion_85

  • LFR 109721
  • Normal 107994
  • Heroic 109724


Cunning of the Cruel inv_misc_coin_09

  • LFR 109798
  • Normal 108005
  • Heroic 109800


Bone-Link Fetish inv_misc_coin_12

  • LFR 109752
  • Normal 107997
  • Heroic 109754


Insignia of the Corrupted Mind inv_bijou_purple

  • LFR 109787
  • Normal 107982
  • Heroic 109789


Creche of the Final Dragon creatureportrait_twilightshammer_dragonegg_01

  • LFR 109742
  • Normal 107988
  • Heroic 109744


Starcatcher Compass inv_relics_sundial

  • LFR 109709
  • Normal 107982
  • Heroic 109711


Seal of the Seven Signs inv_relics_runestone

  • LFR 109802
  • Normal 107982
  • Heroic 109804


How do I move the icon?
change -- t:SetPoint("CENTER",0,0) -- in Macro 1 to your likings

OR

use this Macro to drag the icon:
/run local f=t; f:SetMovable(true); f:EnableMouse(true); f:SetUserPlaced(true); f:SetScript("OnMouseDown", f.StartMoving); f:SetScript("OnMouseUp", f.StopMovingOrSizing);

 

 

  1. t=CreateFrame("Frame")
  2. t:SetPoint("CENTER",0,0)
  3. t:SetSize(40,40)
  4. t.c=CreateFrame("Cooldown","cd1")
  5. t.c:SetAllPoints(t)
  6. t.t=t:CreateTexture(nil,"BORDER")
  7. t.t:SetAllPoints()
  8. t.t:SetTexture("Interface\\Icons\\inv_potion_85")
  9.  
  10.  
  11. t:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED")
  12. t:SetScript("OnEvent",function(...)local _,_,_,_,x=select(3, ...)
  13. if x==UnitName("Player")then local _,_,y=select(12, ...)
  14. if y==109721 then CooldownFrame_SetTimer(cd1,GetTime(),30,1)end end end)
  15.  
  16. local f=t;
  17. f:SetMovable(true);
  18. f:EnableMouse(true);
  19. f:SetUserPlaced(true);
  20. f:SetScript("OnMouseDown", f.StartMoving);
  21. f:SetScript("OnMouseUp", f.StopMovingOrSizing);
    AddOn IboTrinkets:
    http://www.2shared.c...boTrinkets.html

 

 

 http://www.arenajunkies.com/topic/11575-post-your-ui/page__st__2880#entry3773919

 

 

---by wit4er---

 

Party Cooldowns

 

Аддон PartyCooldowns отображает кулдауны игроков, находящихся в вашей группе. Все настраивается самостоятельно, настройки аналогичны EnemyCooldowns(вы выбираете спеллы, координаты и т.п.).

Значения t не меняйте, так и начинайте с t100. Например, если будет 20 пати абилок, то значения переименовывайте в t100 по t120.

Код:
t100p="Interface\\Icons\\ability_rogue_shadowdance";t100=CFrame(Frame);

func1(t100,640,560,"cd100",t101p,22,true);t100:SetScript(E,function(self,event,...) func2(t100,cd100,select(1,...),select(5,...),51713,60) end);

 

Соответственно макрос будет выглядеть так:

 

Код:
/run for i=100,120 do _G["t"..i]:Hide() end
/run for i=100,120 do _G["t"..i].c:Hide() end
  

Код:

t101p="Interface\\Icons\\spell_shadow_psychicscream";t101=CFrame(Frame);func1(t101,549,650,"cd101",t101p,22,true);
t101:SetScript(E,function(self,event,...) func2(t101,cd101,select(1,...),select(5,...),8122,30) end);
t102p="Interface\\Icons\\spell_shadow_shadowfiend";t102=CFrame(Frame);func1(t102,571,650,"cd102",t102p,22,true);
t102:SetScript(E,function(self,event,...) func2(t102,cd102,select(1,...),select(5,...),34433,300) end);
t103p="Interface\\Icons\\ability_golemstormbolt";t103=CFrame(Frame);func1(t103,593,650,"cd103",t103p,22,true);
t103:SetScript(E,function(self,event,...) func2(t103,cd103,select(1,...),select(5,...),19503,30) end);
t104p="Interface\\Icons\\ability_hunter_aspectofthemonkey";t104=CFrame(Frame);func1(t104,615,650,"cd104",t104p,22,true);
t104:SetScript(E,function(self,event,...) func2(t104,cd104,select(1,...),select(5,...),90337,60) end);
t105p="Interface\\Icons\\ability_theblackarrow";t105=CFrame(Frame);func1(t105,637,650,"cd105",t105p,22,true);
t105:SetScript(E,function(self,event,...) func2(t105,cd105,select(1,...),select(5,...),34490,20) end);
t106p="Interface\\Icons\\spell_shadow_mindsteal";t106=CFrame(Frame);func1(t106,659,650,"cd106",t106p,22,true);
t106:SetScript(E,function(self,event,...) func2(t106,cd106,select(1,...),select(5,...),2094,120) end);

 

Class Colored Party Frames

 

 

#198

 

Default Gladius

 

Сборка скриптов, включающая дефолтные арена фреймы, тринки, диминишинги, анонсы.

#198

 


Improved Hamstring Tracker


Показывает внутренний кулдаун Улучшенного подрезания сухожилий.

 

Код:

  1. local f = CreateFrame("Frame")
  2. local function Update(self, event, ...)
  3. if event == "PLAYER_ENTERING_WORLD" then
  4.         FR="Frame";
  5.         RF=CreateFrame;RD="Border"
  6.         CS=RF(FR) CS.c=RF("Cooldown","CST",CS.t)
  7.         CS.c:SetAllPoints(CS)
  8.                 CS:SetPoint("TOPRIGHT",FocusFrame,-192,1)
  9.                 CS:SetSize(22,22)
  10.                 CS.t=CS:CreateTexture(nil,RD)
  11.                 CS.t:SetAllPoints()CS.t:SetTexture("Interface\\Icons\\ability_shockwave")
  12.                 end
  13.             if event == "COMBAT_LOG_EVENT_UNFILTERED" then      
  14.                 local timestamp, eventType, _, sourceGUID, sourceName, sourceFlags, sourceRaidFlags,destGUID, destName, destFlags, _, spellID, spellName, _, extraskillID, extraSkillName = ...
  15.                 if eventType == "SPELL_AURA_APPLIED" and sourceName == UnitName("player") and spellID ==23694 then            
  16.         CST:SetCooldown(GetTime(),30)                  
  17.                 end
  18.         end
  19. end
  20. f:RegisterEvent("PLAYER_ENTERING_WORLD")
  21. f:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED")
  22. f:SetScript("OnEvent", Update)

 

Party Trinkets

 

Показывает PvP-тринкеты членов группы.

Код:

  1. ----------------------------------------------------------------------------------------------------
  2. --PartyTrinkets--
  3. ----------------------------------------------------------------------------------------------------
  4. local trinkets = {}
  5. local events = CreateFrame("Frame")            
  6. local partyFrame, trinket
  7.     for i = 1, MAX_PARTY_MEMBERS do
  8.         partyFrame = "PartyMemberFrame"..i
  9.         trinket = CreateFrame("Cooldown", partyFrame.."Trinket")
  10.         trinket:SetPoint("TOPRIGHT", partyFrame, 30, -6)
  11.         trinket:SetSize(24, 24)
  12.         trinket.icon = trinket:CreateTexture(nil, "BACKGROUND")
  13.         trinket.icon:SetAllPoints()
  14.         trinket.icon:SetTexture("Interface\\Icons\\inv_jewelry_trinketpvp_02")
  15.         trinket:Hide()
  16.         trinkets["party"..i] = trinket
  17.     end
  18. function events:UNIT_SPELLCAST_SUCCEEDED(unitID, spell, rank, lineID, spellID)
  19.     if not trinkets[unitID] then
  20.         return
  21.     end
  22.     if spellID == 59752 or spellID == 42292 then
  23.         CooldownFrame_SetTimer(trinkets[unitID], GetTime(), 120, 1)        
  24.     elseif spellID == 7744 then
  25.         CooldownFrame_SetTimer(trinkets[unitID], GetTime(), 45, 1)        
  26.     end
  27. end
  28. function events:PLAYER_ENTERING_WORLD()
  29.         local _, instanceType = IsInInstance()
  30.              if instanceType == "arena" then
  31.              self:RegisterEvent("UNIT_SPELLCAST_SUCCEEDED")
  32.                          elseif instanceType == "none" then
  33.              self:RegisterEvent("UNIT_SPELLCAST_SUCCEEDED")
  34.              elseif self:IsEventRegistered("UNIT_SPELLCAST_SUCCEEDED") then
  35.               self:UnregisterEvent("UNIT_SPELLCAST_SUCCEEDED")          
  36.              for _, trinket in pairs(trinkets) do
  37.             trinket:SetCooldown(0, 0)
  38.             trinket:Hide()
  39.              end  end  
  40. end
  41. events:SetScript("OnEvent", function(self, event, ...) return self[event](self, ...) end)
  42. events:RegisterEvent("PLAYER_ENTERING_WORLD")

 

Recuperate/SnD Tracker

 

Код:

local f = CreateFrame("Frame")
local function Update(self, event, ...)
local RECUP = GetSpellInfo(73651)
local SLICE = GetSpellInfo(5171)
if event == "PLAYER_ENTERING_WORLD" then
        Frame="Frame";CreateFrame=CreateFrame;Border="Border"
        REC=CreateFrame(Frame)REC.c=CreateFrame("Cooldown","RC",REC.t)REC.c:SetAllPoints(REC)
        REC:SetPoint("BOTTOMRIGHT",PlayerFrame,-3,6)REC:SetSize(26,26)REC.t=REC:CreateTexture(nil,Border)
        REC.t:SetAllPoints()REC.t:SetTexture("Interface\\Icons\\ability_rogue_recuperate")
        SND=CreateFrame(Frame)SND.c=CreateFrame("Cooldown","SN",SND.t)SND.c:SetAllPoints(SND)
        SND:SetPoint("BOTTOMRIGHT",PlayerFrame,-29,6)SND:SetSize(26,26)SND.t=SND:CreateTexture(nil,Border)
        SND.t:SetAllPoints()SND.t:SetTexture("Interface\\Icons\\ability_rogue_slicedice")
end
if event == "UNIT_AURA" then
local maxx = 0
local _, name, d, D, x
for i = 1, 40 do
        name, _, icon, _, _, d, x = UnitBuff("player", i)
        if not name then break end
        if name == RECUP then
           maxx = x
           D = d
           if D > 0 then
            RC:SetCooldown(maxx - D - 0.5, D)
           end           
        elseif name == SLICE then
           maxx = x
           D = d
           if D > 0 then
            SN:SetCooldown(maxx-D - 0.5,D)            
           end           
         end
    end
end
end
f:RegisterEvent("PLAYER_ENTERING_WORLD")
f:RegisterEvent("UNIT_AURA")
f:SetScript("OnEvent", Update)

 

 

Русифицированная версия аддона SafeQueue

 

#198

 

Благодаря пользователю портала Отрицание удалось локализовать аддон для русского клиента WoW.

По моей просьбе он сделал две версии аддона. В light-версии вырезаны все настройки и есть только самое

необходимое (скрытие кнопки "Leave Queue" и таймер очереди). Обсуждение можно найти в этой теме.

 

 

Выбор позиции всплывающего комбат текста.

 

Код:

 

  1. local f = CreateFrame("FRAME");
  2. f:SetScript("OnEvent", function(self,event,...)
  3.                         local arg1 =...;        
  4.                         if (arg1=="Blizzard_CombatText") then
  5.                           f:UnregisterEvent("ADDON_LOADED");
  6.                           hooksecurefunc("CombatText_UpdateDisplayedMessages",
  7.                           function ()
  8.                                 COMBAT_TEXT_LOCATIONS =
  9.                                 {startX  = 100,
  10.                                 startY = 384 * COMBAT_TEXT_Y_SCALE,
  11.                                 endX =200,
  12.                                 endY = 609 * COMBAT_TEXT_Y_SCALE};
  13.                           end);
  14.                         end
  15.                         end);
  16. f:RegisterEvent("ADDON_LOADED");

 


 

PlayerFrame tweaks

 

Код:
hooksecurefunc("PlayerFrame_UpdateStatus", function()
if IsResting("player") then
PlayerStatusTexture:Hide()
PlayerRestIcon:Hide()
PlayerRestGlow:Hide()
PlayerStatusGlow:Hide()
elseif PlayerFrame.inCombat then
PlayerStatusTexture:Hide()
PlayerAttackIcon:Hide()
PlayerRestIcon:Hide()
PlayerAttackGlow:Hide()
PlayerRestGlow:Hide()
PlayerStatusGlow:Hide()
PlayerAttackBackground:Hide() end end)

 

Прозрачный бэкграунд у таргета и фокуса

 

Код:

hooksecurefunc('TargetFrame_CheckFaction', function(self)
  if ( not UnitPlayerControlled(self.unit)
  and UnitIsTapped(self.unit)
  and not UnitIsTappedByPlayer(self.unit)
  and not UnitIsTappedByAllThreatList(self.unit) ) then
    self.nameBackground:SetVertexColor(0.0, 0.0, 0.0, 0.5);
    if ( self.portrait ) then
      self.portrait:SetVertexColor(0.5, 0.5, 0.5);
    end
  else
    self.nameBackground:SetVertexColor(0.0, 0.0, 0.0, 0.5);
    if ( self.portrait ) then
      self.portrait:SetVertexColor(1.0, 1.0, 1.0);
    end
  end  
end)

 

 

 

---By Fernir---

 

Код:

 

hooksecurefunc(getmetatable(PlayerFrameHealthBar).__index,"Show",function(s)
    if s:GetParent().healthbar then
        if s.st == nil then
            s:SetStatusBarTexture("Interface\\TokenFrame\\UI-TokenFrame-CategoryButton")
            s:GetStatusBarTexture():SetDesaturated(1)
            s:GetStatusBarTexture():SetTexCoord(0, 1, .609375, .796875)
            s:GetStatusBarTexture():SetHorizTile(true)
            s.st = true
        end
    end
end)

текстуру меняем в SetStatusBarTexture


Скрипт на карту (большую) - работают мышь, кнопки, убирается черный фон. карта лучшеет

Код:
local BigMap = function()
     WorldMapFrame:SetParent(UIParent)
     WorldMapFrame:EnableMouse(false)
     WorldMapFrame:EnableKeyboard(false)
     WorldMapFrame:SetScale(1)
     SetUIPanelAttribute(WorldMapFrame, "area", "center")
     SetUIPanelAttribute(WorldMapFrame, "allowOtherPanels", true)
     WorldMapFrame:SetFrameLevel(6)
     WorldMapDetailFrame:SetFrameLevel(WorldMapFrame:GetFrameLevel() + 1)
     WorldMapFrame:SetFrameStrata('TOOLTIP')
     BlackoutWorld:SetTexture(0, 0, 0, 0)
end
hooksecurefunc("WorldMap_ToggleSizeUp", BigMap)
hooksecurefunc("WorldMapFrame_SetFullMapView", BigMap)
BigMap()

 

Код:

local shadowdancebar = 2 -- внимание! это номер панели для шд
local f = CreateFrame('frame', 'myownstatedriver', UIParent, 'SecureHandlerStateTemplate')
for i=1,12 do f:SetFrameRef('ActionButton'..i, _G['ActionButton'..i]) end
f:Execute([[ buttons = table.new() for i = 1, 12 do table.insert(buttons, self:GetFrameRef('ActionButton'..i)) end ]])
f:SetAttribute('_onstate-page', [[ for i, button in ipairs(buttons) do button:SetAttribute('actionpage', tonumber(newstate)) end ]])
local getBar = function()
local class, spec = select(2, UnitClass('player')), GetSpecialization()
local pages = {
['DRUID'] = '[bonusbar:1,nostealth] 7; [bonusbar:1,stealth] 8; [bonusbar:2] 8; [bonusbar:3] 9; [bonusbar:4] 10;',
['WARRIOR'] = '[bonusbar:1] 7; [bonusbar:2] 8; [bonusbar:3] 9;',
['PRIEST'] = '[bonusbar:1] 7;',
['ROGUE'] = '[form:1][form:'..(spec==3 and 3 or 2)..',stealth] 7; [form:'..(spec==3 and 3 or 2)..',nostealth]'..shadowdancebar..';',
['WARLOCK'] = '[form:2] 10;',
['MONK'] = '[form:1] '..(spec == 1 and 8 or spec == 2 and 9 or spec == 3 and 7 or 9)..'; [form:2] 7;',
['DEFAULT'] = '[vehicleui] 12; [bar:2] 2; [bar:3] 3; [bar:4] 4; [bar:5] 5; [bar:6] 6;',
}
local condition, page = pages['DEFAULT'], pages[class]
if page then condition = condition..' '..page end
condition = condition..' 1'
return condition
end
RegisterStateDriver(f, 'page', getBar())

 

(название штуки можно узнать командой /fstack)

в данном случае это минимапа, список задач, чат
идея: заменяем ф-цию создания окна своей, в ней
добавляем темплейт SecureHandlerShowHideTemplate и потом используем
кондишн драйвер. в нем можно использовать не только [combat], но и
многие другие условия макросов, такие как [target=focus,exists] и прочее

Код:

local mcf, fth = CreateFrame, {'MinimapCluster', 'WatchFrame', 'ChatFrame1'}
CreateFrame
= function(f,n,p,t) for _,v in pairs(fth) do t = (n == v) and
t..',SecureHandlerShowHideTemplate' or t end return mcf(f,n,p,t) end
for _,v in pairs(fth) do RegisterStateDriver(_G[v],'visibility','[combat]hide;show') end

 

Код:
UnitSelectionColor = function(unit)
if not UnitExists(unit) then return 1,1,1,1 end

local color = UnitIsPlayer(unit) and RAID_CLASS_COLORS[select(2,
UnitClass(unit))] or FACTION_BAR_COLORS[UnitReaction(unit, 'player')]
if color then
if not UnitIsConnected(unit) then
return .5, .5, .5, 1
else
return 0, 0, 0, 0.5
end
else
if UnitIsTapped(unit) and not UnitIsTappedByPlayer(unit) then
return .5, .5, .5, 1
end
end
end

 

 

Код:
hooksecurefunc('ActionButton_UpdateHotkeys', function(self)
    local macro, hotkey = _G[self:GetName()..'Name'], _G[self:GetName()..'HotKey']
    if macro and hotkey then macro:Hide() hotkey:Hide() end
end)

 

Код:

  1. --Big Debuffs--
  2.  
  3.   hooksecurefunc("TargetFrame_UpdateAuraPositions", function(self, auraName, numAuras, numOppositeAuras,largeAuraList, updateFunc, maxRowWidth, offsetX)
  4.     local AURA_OFFSET_Y = 3
  5.     local LARGE_AURA_SIZE = 27 -- развер ВАШИХ баффов/дебаффов.
  6.     local SMALL_AURA_SIZE = 15 -- развер чужих баффов/дебаффов.
  7.     local size
  8.     local offsetY = AURA_OFFSET_Y
  9.     local rowWidth = 0
  10.     local firstBuffOnRow = 1
  11.     for i=1, numAuras do
  12.      if ( largeAuraList[i] ) then
  13.        size = LARGE_AURA_SIZE
  14.        offsetY = AURA_OFFSET_Y + AURA_OFFSET_Y
  15.      else
  16.        size = SMALL_AURA_SIZE
  17.      end
  18.      if ( i == 1 ) then
  19.        rowWidth = size
  20.        self.auraRows = self.auraRows + 1
  21.      else
  22.        rowWidth = rowWidth + size + offsetX
  23.      end
  24.      if ( rowWidth > maxRowWidth ) then
  25.        updateFunc(self, auraName, i, numOppositeAuras, firstBuffOnRow, size, offsetX, offsetY)
  26.        rowWidth = size
  27.        self.auraRows = self.auraRows + 1
  28.        firstBuffOnRow = i
  29.        offsetY = AURA_OFFSET_Y
  30.      else
  31.        updateFunc(self, auraName, i, numOppositeAuras, i - 1, size, offsetX, offsetY)
  32.      end
  33.     end
  34.     end)

 

Код:

local ocolor = {0, 0, 0, 1}
local eventframe=CreateFrame("Frame")
eventframe:RegisterEvent("ADDON_LOADED")
eventframe:RegisterEvent("PLAYER_ENTERING_WORLD")
eventframe:SetScript("OnEvent", function(self, event, addon)
      for _, obj in ipairs({Minimap:GetChildren()}) do
            if (obj and (obj:GetObjectType() == "Frame" or obj:GetObjectType() == "Button")) then
                  for _, tex in ipairs({obj:GetRegions()}) do
                        if (tex and tex:GetObjectType() == "Texture") then
                              if tex:GetTexture() == "Interface\\Minimap\\MiniMap-TrackingBorder" then
                                    tex:SetDesaturated(true)
                                    tex:SetVertexColor(unpack(ocolor))
                              end
                        end
                  end
            end
      end

      for i,v in pairs({
            PlayerFrameTexture,
            TargetFrameTextureFrameTexture,
            PetFrameTexture,
            PartyMemberFrame1Texture,
            PartyMemberFrame2Texture,
            PartyMemberFrame3Texture,
            PartyMemberFrame4Texture,
            PartyMemberFrame1PetFrameTexture,
            PartyMemberFrame2PetFrameTexture,
            PartyMemberFrame3PetFrameTexture,
            PartyMemberFrame4PetFrameTexture,
            FocusFrameTextureFrameTexture,
            TargetFrameToTTextureFrameTexture,
            FocusFrameToTTextureFrameTexture,
            
            MinimapBackdrop,
            MinimapBorder,
            MiniMapMailBorder,
            MiniMapTrackingButtonBorder,
            MinimapBorderTop,
            MinimapZoneTextButton,
            MiniMapWorldMapButton,
            MiniMapWorldMapButton,
            MiniMapWorldIcon,
            MinimapZoomIn:GetRegions(),
            MinimapZoomOut:GetRegions(),
            MiniMapWorldMapButton:GetRegions(),
            MiniMapBattlefieldBorder,
            MiniMapLFGFrameBorder,

            CastingBarFrameBorder,
            FocusFrameSpellBarBorder,
            TargetFrameSpellBarBorder,
            
            StanceBarLeft,
            StanceBarRight,
            StanceBarMiddle,

            -- Other
            select(2, CastingBarFrame:GetRegions()),
            select(2, MirrorTimer1:GetRegions()),
            
            BonusActionBarFrameTexture0,
            BonusActionBarFrameTexture1,
            BonusActionBarFrameTexture2,
            BonusActionBarFrameTexture3,
            BonusActionBarFrameTexture4,   
            MainMenuBarTexture0,
            MainMenuBarTexture1,
            MainMenuBarTexture2,
            MainMenuBarTexture3,
            MainMenuMaxLevelBar0,
            MainMenuMaxLevelBar1,
            MainMenuMaxLevelBar2,
            MainMenuMaxLevelBar3,
            MainMenuXPBarTextureMid,
            MainMenuXPBarTextureLeftCap,
            MainMenuXPBarTextureRightCap,

            MainMenuBarLeftEndCap,
            MainMenuBarRightEndCap,
            
            SlidingActionBarTexture0,
            SlidingActionBarTexture1,
            ShapeshiftBarLeft,
            ShapeshiftBarMiddle,
            ShapeshiftBarRight,
            
            select(5, ShardBarFrameShard1:GetRegions()),
            select(5, ShardBarFrameShard2:GetRegions()),
            select(5, ShardBarFrameShard3:GetRegions()),
            
            select(1, PaladinPowerBar:GetRegions()),
            
            
         }) do
            if v and v:GetObjectType() == "Texture" then
                  v:SetDesaturated(true)
                  v:SetVertexColor(unpack(ocolor))
            end
      end   
      
      for i=1,19 do _G["MainMenuXPBarDiv"..i]:SetVertexColor(unpack(ocolor)) end
      
      if TimeManagerClockButton then
            for i,v in pairs({
                  select(1, TimeManagerClockButton:GetRegions()),
                  select(1, GameTimeFrame:GetRegions()),
               }) do
                  if v and v:GetObjectType() == "Texture" then
                        v:SetDesaturated(true)
                        v:SetVertexColor(unpack(ocolor))
                  end
            end   
      end
      
      for i,v in pairs({
            ArenaEnemyFrame1Texture,
            ArenaEnemyFrame2Texture,
            ArenaEnemyFrame3Texture,
            ArenaEnemyFrame4Texture,
            ArenaEnemyFrame5Texture,
         }) do
            v:SetDesaturated(true)
            v:SetVertexColor(unpack(ocolor))
      end
end)

 

Код:

local dispelFrames = {}
local dispellID = {
    [527]    =8, -- priest Purify
    [4987]    =8,    -- paladin Cleanse
    [77130]    =8,    -- shaman Purify Spirit
    [88423]    =8,    -- druid Nature's cure
    [115450]    =8,    -- monk

}

local dispelCD = CreateFrame('frame')
dispelCD:RegisterEvent('PLAYER_ENTERING_WORLD')

local updateDispelFrames = function()
    dispelFrames = wipe(dispelFrames)
    for i = 1, MAX_ARENA_ENEMIES do
        arenaFrame = 'ArenaEnemyFrame'..i
        local dispel = _G[arenaFrame..'Dispel'] or CreateFrame('Cooldown', arenaFrame..'Dispel', ArenaEnemyFrames)
        dispel:SetPoint('RIGHT', arenaFrame, 'LEFT', -30, 0)
        dispel:SetSize(24, 24)
        dispel.icon = dispel.icon or dispel:CreateTexture(nil, 'BACKGROUND')
        dispel.icon:SetAllPoints()
        dispel.icon:SetTexture(select(3, GetSpellInfo(527)))
        dispelFrames[UnitGUID('arena'..i)] = dispel
    end
end

dispelCD:SetScript('OnEvent',function(self,event,...)
    if event == 'PLAYER_ENTERING_WORLD' then
        updateDispelFrames()
        local _, instanceType = IsInInstance()
        if instanceType == "arena" then
            self:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED")
        elseif self:IsEventRegistered("COMBAT_LOG_EVENT_UNFILTERED") then
            self:UnregisterEvent("COMBAT_LOG_EVENT_UNFILTERED")
            for _, df in pairs(dispelFrames) do df:SetCooldown(0, 0) end
        end
    elseif event == 'COMBAT_LOG_EVENT_UNFILTERED' then
        local _, subevent, _, unit, _, _, _, _, _, _, _, spell
  
     if (not(UnitGUID('arena1')==unit or UnitGUID('arena2')==unit or
UnitGUID('arena3')==unit or UnitGUID('arena4')==unit or
UnitGUID('arena5')==unit)) then return end
        if subevent == 'SPELL_DISPEL' then
            updateDispelFrames()
            if dispellID[spell] then
                dispelFrames[unit].icon:SetTexture(select(3, GetSpellInfo(spell)))
                CooldownFrame_SetTimer(dispelFrames[unit], GetTime(), 8, 1)
            end
        end
    end
end)

 

Код:

local fixvalue = function(val)
    if(val >= 1e6) then
        return ('%.2f'..SECOND_NUMBER_CAP):format(val / 1e6):gsub('%.?0+(['..FIRST_NUMBER_CAP..SECOND_NUMBER_CAP..'])$', '%1')
    elseif(val >= 1e4) then
        return ('%.1f'..FIRST_NUMBER_CAP):format(val / 1e3):gsub('%.?0+(['..FIRST_NUMBER_CAP..SECOND_NUMBER_CAP..'])$', '%1')
    else
        return val
    end
end

CreateFrame('frame'):SetScript('OnUpdate', function(self, elapsed)
     for index = 1, select('#', WorldFrame:GetChildren()) do
          local f = select(index, WorldFrame:GetChildren())
          if f:GetName() and f:GetName():find('NamePlate%d') then
               f.h = select(1, select(1, f:GetChildren()):GetChildren())
               if f.h then
                    if not f.h.v then
                         f.h.v = f.h:CreateFontString(nil, "ARTWORK")    
                         f.h.v:SetPoint("CENTER", f.h, 'CENTER')
                         f.h.v:SetFont(STANDARD_TEXT_FONT, 9, 'OUTLINE')
                    else
                         local _, maxh = f.h:GetMinMaxValues()
                         local val = f.h:GetValue()
                         f.h.v:SetText(string.format("%s - %d%%", fixvalue(val), math.floor((val/maxh)*100)))
                    end
               end
          end
     end
end)

Чтобы оставить только проценты хп, замените строку

Код:
f.h.v:SetText(string.format("%s - %d%%", fixvalue(val), math.floor((val/maxh)*100)))

на

Код:
f.h.v:SetText(string.format("%d", math.floor((val/maxh)*100)))

 

  Мой pastebin:

http://pastebin.com/u/wit4er

http://pastebin.com/download.php?i=wne7fmMG

 

Как делать аддоны из скриптов написано здесь:

 

http://prestige-gaming.ru/bud_ploxim_igrai_na_defolte-t14619.html

 

http://www.arenajunkies.com/topic/222642-default-ui-scripts/

 

http://addon.ziuo.net/

 

 

DefaultGladius Beta MoP

 

http://prestige-gaming.ru/resources/file/10142

 

ArenaTrinkets Beta MoP

 

http://prestige-gaming.ru/resources/file/10154

 

EnemyCooldowns Beta MoP

 

http://prestige-gaming.ru/resources/file/10131

Добавил спеллы монков, исправил и добавил кулдауны остальных классов.

Чтобы настроить, откройте любым редактором и найдите строки:

Код:
xb=394;--координата по X
yb=500;--координата по Y
sb=26;--размер иконок
ib=5;--межстрочное расстояние
ii=1 --расстояние между иконками 

Чтобы отобразить все иконки в игре, используйте макрос:

Код:
/run for i=1,84 do _G["t"..i]:Show() end
/run for i=1,84 do _G["t"..i].c:Show() end

 

 

Neilyo Scripts Full Pack

http://rapidshare.com/share/E3108C7B40EB9B4A27B65F672D50DF30

http://www.mediafire.com/?cdddkbrj67n7358



28 фев 2012, 00:11
Профиль

0
Сообщение Скрипты Neilyo

Как координаты узнать ?

Например хочу подвинуть Арена фреймы, но в вбивая наугад координаты, 100500 раз выходя/заходя игру это не ок.

 



28 фев 2012, 00:35
Профиль



<Имя Говорит Само за Себя>


Сервер: Гордунни
0
Сообщение Скрипты Neilyo

Fiction писал(а):

Как координаты узнать ?

Например хочу подвинуть Арена фреймы, но в вбивая наугад координаты, 100500 раз выходя/заходя игру это не ок.

 

/fstack



28 фев 2012, 00:36
Профиль

0
Сообщение Скрипты Neilyo

Fiction писал(а):

Как координаты узнать ?

Например хочу подвинуть Арена фреймы, но в вбивая наугад координаты, 100500 раз выходя/заходя игру это не ок.

Все намного проще:

1. Скачать AddOn Studio for World of Warcraft

2. Установить
3. Открыть в ней lua файл

4. Изменить координаты/местоположение итп

5. Нажать Сейв

Прописать в игре /reload и у тебя сразу подгрузит этот измененный луа файл. Скорее всего есть более легкий способ сразу загружать обновленный луа, но мне известен только этот. Ну или на крайняк двигать в ручную через /run



28 фев 2012, 00:57
Профиль



<Имя Говорит Само за Себя>


Сервер: Гордунни
0
Сообщение Скрипты Neilyo

Да, нет необходимсоти перезапускать игру при внесении изменений в этот lua-файл. Достаточно сделать /reload.



28 фев 2012, 01:01
Профиль



<Последняя Минута Глада>


Сервер: Свежеватель Душ
Рейтинг поля боя: 192
2х2: 1573
3х3: 1941
5х5: 1055
0
Сообщение Скрипты Neilyo

Данный скрипт отображает нахождение цели либо фокуса в комбате(маст хев для разбойников). Координаты и размер иконки комбата настраиваются в строках


чит.



28 фев 2012, 01:02
Профиль ICQ Skype



<Имя Говорит Само за Себя>


Сервер: Гордунни
0
Сообщение Скрипты Neilyo

Klips писал(а):

Данный скрипт отображает нахождение цели либо фокуса в комбате(маст хев для разбойников). Координаты и размер иконки комбата настраиваются в строках


чит.

Например X-perl давно это умеет Smile



28 фев 2012, 01:03
Профиль

0
Сообщение Скрипты Neilyo

скрипты сила



28 фев 2012, 01:18
Профиль



<Последняя Минута Глада>


Сервер: Свежеватель Душ
Рейтинг поля боя: 192
2х2: 1573
3х3: 1941
5х5: 1055
0
Сообщение Скрипты Neilyo

Klips писал(а):

Данный скрипт отображает нахождение цели либо фокуса в комбате(маст хев для разбойников). Координаты и размер иконки комбата настраиваются в строках


чит.

тогда забей,поцаны зря старались придумывая эти скриптики



28 фев 2012, 01:19
Профиль ICQ Skype

10
Сообщение Скрипты Neilyo

Сам себя квотит уже, вот это прикол.



28 фев 2012, 01:53
Профиль

0
Сообщение Скрипты Neilyo

тс ты лучший  :love



28 фев 2012, 02:20
Профиль

0
Сообщение Скрипты Neilyo

sai писал(а):

Сам себя квотит уже, вот это прикол.

блядь я заржал



28 фев 2012, 03:07
Профиль



<Омномном>


Сервер: Howling Fjord
0
Сообщение Скрипты Neilyo

и этого достаточно для топодин? гуд!



28 фев 2012, 05:28
Профиль

0
Сообщение Скрипты Neilyo

Как убрать бафы/дебафы у таргета и фокуса?



28 фев 2012, 08:31
Профиль

-7
Сообщение Скрипты Neilyo


Цитата:
PvP-тринкеты противников на арене

Всегда думал, что пвп тринкеты это тринкеты юзающиеся на + к силе, ловкости и прочему и мне нужно отображение именно этих тринкетов (+пве тринкетов которые абузят), а не тринкеты снимающие контроль...



28 фев 2012, 09:42
Профиль

2
Сообщение Скрипты Neilyo

гладиус , нормальные фреймы и PoWa - уже не торт ? Тут либо ты играешь вообще без всего этого , претендуешь на солотоп и ездишь по ланам , либо сидишь дома и нагружай как хочешь , причем давно же придумали аддоны с удобной интерфейсной частью в плане настройки , не ?

Все эти понты по поводу стандартного UI - да кому они нужны , если ты раб системы ММРа и гладов сидящих на 2.2 , которые дальше тебя не пускают ? Сидишь дома - ставь , что хочешь .

 



28 фев 2012, 09:57
Профиль



<АОЕ Бригада>


Сервер: Свежеватель Душ
0
Сообщение Скрипты Neilyo

Какие строки нужно удалить из файла, чтобы остались классовые иконки и знак комбата на цели и фокусе?



28 фев 2012, 10:26
Профиль

0
Сообщение Скрипты Neilyo

Цитата:

Вот как эти скрипты выглядят в моем интерфейсе:http://i.imgur.com/gc8PO.jpg

хемо 9 , бек 0 , спинт 8

ДренейРазбойник



28 фев 2012, 10:33
Профиль
Пилигрим

0
Сообщение Скрипты Neilyo

Ривера писал(а):

Цитата:

Вот как эти скрипты выглядят в моем интерфейсе:http://i.imgur.com/gc8PO.jpg

хемо 9 , бек 0 , спинт 8

ДренейРазбойник

Пришло время познакомиться со вторым биндом!



28 фев 2012, 10:35
Профиль

0
Сообщение Скрипты Neilyo

за энэмикулдаунс спасибо !



28 фев 2012, 11:17
Профиль
Начать новую тему Ответить на тему


Перейти:  

На сайте использованы материалы, принадлежащие Blizzard Entertainment. Копирование материалов возможно только c разрешения портала. В противном случае это будет называться уже другим словом.
Рейтинг@Mail.ru