Jump to content

  • Curse Sites
Help

riccod

Member Since 12 Dec 2010
Offline Last Active Dec 13 2013 06:41 PM
*****

#3697040 cant click links.

Posted Cutebaby on 02 May 2012 - 12:00 PM

If anyone is still experiencing this issue that none of the developers here at AJ seems to care to fix, here is how to fix it (For Windows 7/Vista/XP etc. For other OS the hosts file will be located elsewhere);

Open: C:\Windows\System32\drivers\etc\hosts in notepad
Type " 127.0.0.1 adserver.adtechus.com " at the end of the file.

Now you will be unable to load any of the shitty content from this address, and arenajunkies will work perfectly  B)


#3686808 Default UI Scripts

Posted Thaya on 17 April 2012 - 08:57 AM

Table of contents
  • How to use scripts
  • General/uncategorized scripts
    • Disable damage/healing spam in floating text
    • Add more "power auras"
    • Darken all the graphics Ibo/Lorti UI style
    • Hide the error frame (red text in top middle)
  • Unit frame scripts
    • Class icons instead of portraits
    • Class colors in hp bars
    • Class colors behind names
    • Disable healing/damage spam over player/pet frame
    • Flashy spellsteal border for non-mages and/or enrage effects
    • Change the format of hp/mana text to absolute values ("140k")
    • Hide the faction/PvP icon
    • Disable the group number frame
    • Scaling/moving unitframes
  • Arena frame scripts
    • Show frames outside of arena (macro)
    • Scaling/moving arenaframes and castbars
    • Arena trinkets tracker
  • Action bar scripts
    • Hide graphics
    • Hide macro labels
    • Hide hotkeys
  • Cast bar scripts
    • Text cast timer ("0.8 / 1.5")
    • Scaling/moving castbars
  • Quality of life scripts
    • Autosell grey trash and repair
    • Minimap tweaks
    • Extra slash commands
            

1. How to use scripts

You either need to create your own addon, add the code to an existing addon (I don't recommend this), or run it in-game via the /run command. The latter, in most cases, requires a condensed form of the script to fit the 255 character limit of input/macros; macros often need to be executed after every reload or zone. Unless you're going to Blizzcon tomorrow, there's really no reason to use macros - just create an addon. I will, however, add macros where available (i.e. those I already have in macro form).

Download this template: http://www.mediafire...b4cj4r0fcqcwquj

This already has the folder structure and the .toc file, at this point you only need to open the .lua file as a text file (with notepad/wordpad or anything that works with raw text), and simply copy/paste the code you want from below.

You don't need to relog every time you edit a .lua file if the addon is loaded, a /reloadui is enough.

Comments start with "--", multi-line comments look like this:
--[[
This code
won't execute.
]]

-- This is a single-line comment
This way you can enable/disable certain features, or just add comments to organize your code better.

If you're a do it yourself type, here's how you create an addon:
1. Create YourAddon folder in Interface/Addons
2. Create a text file called YourAddon.toc (has to be the same name as the folder), content should be:
## Title: YourAddon
## Interface: 50001

YourAddon.lua
3. Create YourAddon.lua (can be any filename, but it has to be mentioned in the .toc file to load), copy scripts into that file.

Make sure that you see the actual extensions of files - this is disabled by default in Windows. So the files you are looking at might actually be YourAddon.toc.txt and YourAddon.lua.txt, and of course it doesn't work in this case.

2. General/uncategorized scripts

2.1. Disable damage/healing spam in floating text:
LoadAddOn("Blizzard_CombatText")

COMBAT_TEXT_TYPE_INFO["PERIODIC_HEAL"] = {var = nil, show = nil}
COMBAT_TEXT_TYPE_INFO["HEAL_CRIT"] = {var = nil, show = nil}
COMBAT_TEXT_TYPE_INFO["HEAL"] = {var = nil, show = nil}
COMBAT_TEXT_TYPE_INFO["PERIODIC_HEAL_ABSORB"] = {var = nil, show = nil}
COMBAT_TEXT_TYPE_INFO["HEAL_CRIT_ABSORB"] = {var = nil, show = nil}
COMBAT_TEXT_TYPE_INFO["HEAL_ABSORB"] = {var = nil, show = nil}

COMBAT_TEXT_TYPE_INFO["DAMAGE_CRIT"] = {var = nil, show = nil}
COMBAT_TEXT_TYPE_INFO["DAMAGE"] = {var = nil, show = nil}
COMBAT_TEXT_TYPE_INFO["SPELL_DAMAGE_CRIT"] = {var = nil, show = nil}
COMBAT_TEXT_TYPE_INFO["SPELL_DAMAGE"] = {var = nil, show = nil}
Macros:
/run CTTI=COMBAT_TEXT_TYPE_INFO CTTI.PERIODIC_HEAL={var=nil,show=nil} CTTI.HEAL_CRIT={var=nil,show=nil} CTTI.HEAL={var=nil,show=nil} CTTI.PERIODIC_HEAL_ABSORB={var=nil,show=nil} CTTI.HEAL_CRIT_ABSORB={var=nil,show=nil} CTTI.HEAL_ABSORB={var=nil,show=nil}
/run CTTI.DAMAGE_CRIT={var=nil,show=nil} CTTI.DAMAGE={var=nil,show=nil} CTTI.SPELL_DAMAGE_CRIT={var=nil,show=nil} CTTI.SPELL_DAMAGE={var=nil,show=nil}

2.2. Add more "power auras":
local frame = CreateFrame("FRAME")
frame:RegisterEvent("UNIT_AURA")

frame:SetScript("OnEvent", function(self, event, ...)
	local unitid = ... if unitid ~= "player" then return end

	if UnitBuff("player", "Eradication") then
		SpellActivationOverlay_ShowOverlay(SpellActivationOverlayFrame, 64371, "TEXTURES\\SPELLACTIVATIONOVERLAYS\\GENERICTOP_01.BLP", "TOP", 1.2, 139, 65, 239, false, false)
	else
		SpellActivationOverlay_HideOverlays(SpellActivationOverlayFrame, 64371)
	end
end)
First, change "Eradication" to whatever you need. (Use the locale/language you actually play on.)

Next, here's how you configure this whole thing:
SpellActivationOverlay_ShowOverlay(self, spellID, texturePath, location, scale, r, g, b, info.vFlip, info.hFlip)
It's all pretty self-explanatory. Keep the first argument as it is in the script above, everything else you can change/edit as you wish to. The last two arguments are vertical and horizontal flips, "r, g, b" are red/green/blue color codes (0-255).

To get the spellID, find your spell/aura on wowhead and look at the address bar. The number is the spellID. Keep in mind you need the spellID of the buff, not the spell that triggers it - they are sometimes different.

Textures created for the default UI and available in the game files:
Spoiler
Just change the last part of the texture path provided in the example above to any of these.

If that's not enough, you can always steal a file from Power Auras or other addons. To specify an external texture: "Interface\\AddOns\\YourAddon\\yourtexture.tga" - you can use .tga files; in general, you can use any texture/picture available to the game (anything in the game files and anything in addon folders).

2.3. Darken all the graphics Ibo/Lorti UI style:
This particular script is stolen from Ibo UI. You'll also need some textures to make it look right, simply put them into the /Interface/ folder alongside the Addons folder:
http://www.mediafire...mpaxe6jfllwa5q8

local frame=CreateFrame("Frame")
frame:RegisterEvent("ADDON_LOADED")

frame:SetScript("OnEvent", function(self, event, addon)
	if (addon == "Blizzard_TimeManager") then
		for i, v in pairs({PlayerFrameTexture, TargetFrameTextureFrameTexture, PetFrameTexture, PartyMemberFrame1Texture, PartyMemberFrame2Texture, PartyMemberFrame3Texture, PartyMemberFrame4Texture,
			PartyMemberFrame1PetFrameTexture, PartyMemberFrame2PetFrameTexture, PartyMemberFrame3PetFrameTexture, PartyMemberFrame4PetFrameTexture, FocusFrameTextureFrameTexture,
			TargetFrameToTTextureFrameTexture, FocusFrameToTTextureFrameTexture, BonusActionBarFrameTexture0, BonusActionBarFrameTexture1, BonusActionBarFrameTexture2, BonusActionBarFrameTexture3,
			BonusActionBarFrameTexture4, MainMenuBarTexture0, MainMenuBarTexture1, MainMenuBarTexture2, MainMenuBarTexture3, MainMenuMaxLevelBar0, MainMenuMaxLevelBar1, MainMenuMaxLevelBar2,
			MainMenuMaxLevelBar3, MinimapBorder, CastingBarFrameBorder, FocusFrameSpellBarBorder, TargetFrameSpellBarBorder, MiniMapTrackingButtonBorder, MiniMapLFGFrameBorder, MiniMapBattlefieldBorder,
			MiniMapMailBorder, MinimapBorderTop,
			select(1, TimeManagerClockButton:GetRegions())
		}) do
			v:SetVertexColor(.4, .4, .4)
		end

		for i,v in pairs({ select(2, TimeManagerClockButton:GetRegions()) }) do
			v:SetVertexColor(1, 1, 1)
		end

		self:UnregisterEvent("ADDON_LOADED")
		frame:SetScript("OnEvent", nil)
	end
end)

for i, v in pairs({ MainMenuBarLeftEndCap, MainMenuBarRightEndCap }) do
	v:SetVertexColor(.35, .35, .35)
end

2.4. Hide the error frame (red text in top middle):
UIErrorsFrame:SetAlpha(0)

3. Unit frame scripts

3.1. Class icons instead of portraits:
hooksecurefunc("UnitFramePortrait_Update",function(self)
	if self.portrait then
		if UnitIsPlayer(self.unit) then				
			local t = CLASS_ICON_TCOORDS[select(2, UnitClass(self.unit))]
			if t then
				self.portrait:SetTexture("Interface\\TargetingFrame\\UI-Classes-Circles")
				self.portrait:SetTexCoord(unpack(t))
			end
		else
			self.portrait:SetTexCoord(0,1,0,1)
		end
	end
end)
Macros:
/run UFP="UnitFramePortrait_Update" UICC="Interface\\TargetingFrame\\UI-Classes-Circles" CIT=CLASS_ICON_TCOORDS UC=UnitClass
/run hooksecurefunc(UFP,function(self) if self.portrait then t=CIT[select(2,UC(self.unit))] if t and UnitIsPlayer(self.unit) then self.portrait:SetTexture(UICC) self.portrait:SetTexCoord(unpack(t)) else self.portrait:SetTexCoord(0,1,0,1) end end end)

3.2. Class colors in hp bars:
local function colour(statusbar, unit)
	local _, class, c
	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)
		PlayerFrameHealthBar:SetStatusBarColor(0,1,0)
	end
end

hooksecurefunc("UnitFrameHealthBar_Update", colour)
hooksecurefunc("HealthBar_OnValueChanged", function(self)
	colour(self, self.unit)
end)
Macros:
/run UIP=UnitIsPlayer UIC=UnitIsConnected RCC=RAID_CLASS_COLORS PFHB=PlayerFrameHealthBar UC=UnitClass
/run function colour(sb,unit) if UIP(unit) and UIC(unit) and unit==sb.unit and UC(unit) then _,cl=UC(unit) c=RAID_CLASS_COLORS[cl] sb:SetStatusBarColor(c.r,c.g,c.b) PFHB:SetStatusBarColor(0,1,0) end end
/run hooksecurefunc("UnitFrameHealthBar_Update", colour) hooksecurefunc("HealthBar_OnValueChanged", function(self) colour(self, self.unit) end)

3.3. Class colors behind names:
local frame = CreateFrame("FRAME")
frame:RegisterEvent("GROUP_ROSTER_UPDATE")
frame:RegisterEvent("PLAYER_TARGET_CHANGED")
frame:RegisterEvent("PLAYER_FOCUS_CHANGED")
frame:RegisterEvent("UNIT_FACTION")

local function eventHandler(self, event, ...)
	if UnitIsPlayer("target") then
		c = RAID_CLASS_COLORS[select(2, UnitClass("target"))]
		TargetFrameNameBackground:SetVertexColor(c.r, c.g, c.b)
	end
	if UnitIsPlayer("focus") then
		c = RAID_CLASS_COLORS[select(2, UnitClass("focus"))]
		FocusFrameNameBackground:SetVertexColor(c.r, c.g, c.b)
	end
end

frame:SetScript("OnEvent", eventHandler)

for _, BarTextures in pairs({TargetFrameNameBackground, FocusFrameNameBackground}) do
	BarTextures:SetTexture("Interface\\TargetingFrame\\UI-StatusBar")
end
Macros:
/run UIP=UnitIsPlayer RCC=RAID_CLASS_COLORS UC=UnitClass TFNB=TargetFrameNameBackground FFNB=FocusFrameNameBackground
/run f=CreateFrame("FRAME") f:RegisterEvent("PARTY_MEMBERS_CHANGED") f:RegisterEvent("PLAYER_TARGET_CHANGED") f:RegisterEvent("PLAYER_FOCUS_CHANGED") f:RegisterEvent("UNIT_FACTION")
/run function e(self,event,...) if UIP("target") then c=RCC[select(2,UC("target"))] TFNB:SetVertexColor(c.r,c.g,c.b) end if UIP("focus") then c=RCC[select(2,UC("focus"))] FFNB:SetVertexColor(c.r,c.g,c.b) end end f:SetScript("OnEvent",e)

3.4. Disable healing/damage spam over player/pet frame:
PlayerHitIndicator:SetText(nil)
PlayerHitIndicator.SetText = function() end

PetHitIndicator:SetText(nil)
PetHitIndicator.SetText = function() end

3.5. Flashy spellsteal border for non-mages and/or enrage effects:
hooksecurefunc("TargetFrame_UpdateAuras", function(s)
	for i = 1, MAX_TARGET_BUFFS do
		_, _, ic, _, dT = UnitBuff(s.unit, i)
		if(ic and (not s.maxBuffs or i<=s.maxBuffs)) then
			fS=_G[s:GetName()..'Buff'..i..'Stealable']
			if(UnitIsEnemy(PlayerFrame.unit, s.unit) and dT=='Magic') then
				fS:Show()
			else
				fS:Hide()
			end
		end
	end
end)
Macros:
/run b = 'Buff' st = 'Stealable' mM = 'Magic' mB = maxBuffs TFUA = 'TargetFrame_UpdateAuras' PFu = PlayerFrame.unit MTB = MAX_TARGET_BUFFS UB = UnitBuff UIE = UnitIsEnemy
/run hooksecurefunc(TFUA,function(s) for i=1,MTB do _,_,ic,_,dT=UB(s.unit,i) if(ic and (not s.mB or i<=s.mB)) then fS=_G[s:GetName()..b..i..st] if (UIE(PFu,s.unit) and dT==mM) then fS:Show() else fS:Hide() end end end end)
You can adapt this to enrages by changing the dT=='Magic' line to dT='' (or in the macro, mM='' instead of mM='Magic'). For an unknown reason, enrage effects return an empty string as their debuff type.

3.6. Change the format of hp/mana text to absolute values ("140k"):
hooksecurefunc("TextStatusBar_UpdateTextStringWithValues", function()
	PlayerFrameHealthBar.TextString:SetText(AbbreviateLargeNumbers(UnitHealth("player")))
	PlayerFrameManaBar.TextString:SetText(AbbreviateLargeNumbers(UnitMana("player")))

	TargetFrameHealthBar.TextString:SetText(AbbreviateLargeNumbers(UnitHealth("target")))
	TargetFrameManaBar.TextString:SetText(AbbreviateLargeNumbers(UnitMana("target")))

	FocusFrameHealthBar.TextString:SetText(AbbreviateLargeNumbers(UnitHealth("focus")))
	FocusFrameManaBar.TextString:SetText(AbbreviateLargeNumbers(UnitMana("focus")))
end)

3.7. Hide faction/PvP icon:
PlayerPVPIcon:SetAlpha(0)
TargetFrameTextureFramePVPIcon:SetAlpha(0)
FocusFrameTextureFramePVPIcon:SetAlpha(0)

3.8. Disable the group number frame:
PlayerFrameGroupIndicator.Show = function() return end

3.9. Scaling/moving frames:
framename:SetScale(1.1)
You can find the frame name by using /fstack. Value is in %, i.e. 1.1 is 110%.

Move most frames on the default UI:
/run local f=framename; f:SetMovable(true); f:EnableMouse(true); f:SetUserPlaced(true); f:SetScript("OnMouseDown", f.StartMoving); f:SetScript("OnMouseUp", f.StopMovingOrSizing);
You can find the frame name by using /fstack. Drag the frame where you want it to be, reload. (If it doesn't save, type /console synchronizeSettings 0 and try again.)

I personally recommend to move the TargetFrameToT (target of target) frame at least, because it often overlaps the last debuff. Just move it a little bit to the right. This method works for sure for the ToT frame.

If the above method doesn't work or doesn't save position for the frame you're trying to move (doesn't for pet frame, for example), paste this into your addon:
framename:ClearAllPoints()
framename:SetPoint("CENTER", x, y)
framename.SetPoint = function() end
Also, you can move the player, target and focus frames within the default UI by right clicking on it and unlocking/locking. That's much better than moving it with scripts due to some weird interactions with vehicle UI if you move those frames with scripts.

4. Arena frame scripts

4.1. Show frames outside of arena (macro):
/run LoadAddOn("Blizzard_ArenaUI") ArenaEnemyFrames:Show() ArenaEnemyFrame1:Show() ArenaEnemyFrame2:Show() ArenaEnemyFrame3:Show() ArenaEnemyFrame1CastingBar:Show() ArenaEnemyFrame2CastingBar:Show() ArenaEnemyFrame3CastingBar:Show()
This will display frames 1, 2 and 3 with the cast bars.

4.2. Scaling/moving arenaframes and castbars:
LoadAddOn("Blizzard_ArenaUI") -- You only need to run this once. You can safely delete any copies of this line.

ArenaEnemyFrame1:ClearAllPoints()
ArenaEnemyFrame2:ClearAllPoints()
ArenaEnemyFrame3:ClearAllPoints()
ArenaEnemyFrame4:ClearAllPoints()
ArenaEnemyFrame5:ClearAllPoints()

ArenaEnemyFrame1:SetPoint("CENTER",UIParent,"CENTER",350,50)
ArenaEnemyFrame2:SetPoint("CENTER",UIParent,"CENTER",350,0)
ArenaEnemyFrame3:SetPoint("CENTER",UIParent,"CENTER",350,-50)
ArenaEnemyFrame4:SetPoint("CENTER",UIParent,"CENTER",350,-100)
ArenaEnemyFrame5:SetPoint("CENTER",UIParent,"CENTER",350,-150)

ArenaEnemyFrame1.SetPoint = function() end
ArenaEnemyFrame2.SetPoint = function() end
ArenaEnemyFrame3.SetPoint = function() end
ArenaEnemyFrame4.SetPoint = function() end
ArenaEnemyFrame5.SetPoint = function() end
Frames have to be moved separately now. ClearAllPoints and blanketing the SetPoint method are both mandatory now for it to work properly. The only way to fit this in a macro is to loop it, I'll add this in later.

ArenaEnemyFrames:SetScale(1.3)
This scales up the whole thing, everything in the frames will be scaled up equally. Make sure this is after LoadAddOn("Blizzard_ArenaUI").

for i=1, 5 do
	_G["ArenaEnemyFrame"..i]:SetScale(1.3)
	_G["ArenaEnemyFrame"..i.."CastingBar"]:SetScale(1.3)
	-- _G["ArenaEnemyFrame"..i.."CastingBar"]:SetPoint("RIGHT", 95, 0)
end
This lets you scale things up separately if you want to. First line changes the scale of arena frames themselves. Second line changes the scale of the cast bar. Third line moves the cast bar to the right of the frame - its disabled here, just remove the "--" to enable it (just an example of using comments in code).

4.3. Arena trinkets tracker:

LoadAddOn("Blizzard_ArenaUI") -- You only need to run this once. You can safely delete any copies of this line.

trinkets = {}
local arenaFrame, trinket
for i = 1, 5 do
	arenaFrame = "ArenaEnemyFrame"..i
	trinket = CreateFrame("Cooldown", arenaFrame.."Trinket", ArenaEnemyFrames)
	trinket:SetPoint("TOPRIGHT", arenaFrame, 30, -6)
	trinket:SetSize(24, 24)
	trinket.icon = trinket:CreateTexture(nil, "BACKGROUND")
	trinket.icon:SetAllPoints()
	trinket.icon:SetTexture("Interface\\Icons\\inv_jewelry_trinketpvp_01")
	trinket:Hide()
	trinkets["arena"..i] = trinket
end

local events = CreateFrame("Frame")
function events:UNIT_SPELLCAST_SUCCEEDED(unitID, spell, rank, lineID, spellID)
	if not trinkets[unitID] then
		return
	end
	if spellID == 59752 or spellID == 42292 then
		CooldownFrame_SetTimer(trinkets[unitID], GetTime(), 120, 1)
		SendChatMessage("Trinket used by: "..GetUnitName(unitID, true), "PARTY")
	end
end

function events:PLAYER_ENTERING_WORLD()
	local _, instanceType = IsInInstance()
	if instanceType == "arena" then
		self:RegisterEvent("UNIT_SPELLCAST_SUCCEEDED")
	elseif self:IsEventRegistered("UNIT_SPELLCAST_SUCCEEDED") then
		self:UnregisterEvent("UNIT_SPELLCAST_SUCCEEDED")
		for _, trinket in pairs(trinkets) do
			trinket:SetCooldown(0, 0)
			trinket:Hide()
		end
	end
end
events:SetScript("OnEvent", function(self, event, ...) return self[event](self, ...) end)
events:RegisterEvent("PLAYER_ENTERING_WORLD")
This puts icons to the right of the arena frames. Does not track WotF - it now simply shares 30 seconds CD with trinkets, so it's impossible to track with just 1 icon. Only enables in arenas.

5. Action bar scripts

5.1. Hide graphics:
I will just list all the options in one block, you can choose which you want. You can enter them separately with /run if you want to see each individually.
MainMenuBarLeftEndCap:Hide()
MainMenuBarRightEndCap:Hide() -- hide the gryphons

MainMenuExpBar:Hide()
MainMenuBarMaxLevelBar:SetAlpha(0) -- hide the xp bar

MainMenuBarTexture0:Hide() -- hide all the background textures.
MainMenuBarTexture1:Hide() -- leaving them on looks better,
MainMenuBarTexture2:Hide() -- unless you are going to hide the
MainMenuBarTexture3:Hide() -- micromenu and bag buttons too.

BonusActionBarFrameTexture1:SetAlpha(0)
BonusActionBarFrameTexture2:SetAlpha(0) -- this is for druids/rogues/warriors.
BonusActionBarFrameTexture3:SetAlpha(0) -- their stances cause this to show up
BonusActionBarFrameTexture4:SetAlpha(0) -- over the normal bar.

SlidingActionBarTexture0:SetAlpha(0)
SlidingActionBarTexture1:SetAlpha(0) -- hide pet bar background

-- These hide individual elements of the menu bar. Its easy to figure out what is what.
ActionBarUpButton:Hide()
ActionBarDownButton:Hide()
MainMenuBarPageNumber:SetAlpha(0)

CharacterMicroButton:Hide()
SpellbookMicroButton:Hide()
TalentMicroButton:Hide()
AchievementMicroButton:Hide()
QuestLogMicroButton:Hide()
GuildMicroButton:Hide()
PVPMicroButton:Hide()
LFDMicroButton:Hide()
CompanionsMicroButton:Hide()
EJMicroButton:Hide()
MainMenuMicroButton:Hide()
HelpMicroButton:Hide()

CharacterBag3Slot:Hide()
CharacterBag2Slot:Hide()
CharacterBag1Slot:Hide()
CharacterBag0Slot:Hide()
MainMenuBarBackpackButton:Hide()

5.2. Hide macro labels:
for i=1, 12 do
	_G["ActionButton"..i.."Name"]:SetAlpha(0) -- main bar
	_G["MultiBarBottomRightButton"..i.."Name"]:SetAlpha(0) -- bottom right bar
	_G["MultiBarBottomLeftButton"..i.."Name"]:SetAlpha(0) -- bottom left bar
	_G["MultiBarRightButton"..i.."Name"]:SetAlpha(0) -- right bar
	_G["MultiBarLeftButton"..i.."Name"]:SetAlpha(0) -- left bar
end

5.3. Hide hotkeys:
for i=1, 12 do
	_G["ActionButton"..i.."HotKey"]:SetAlpha(0) -- main bar
	_G["MultiBarBottomRightButton"..i.."HotKey"]:SetAlpha(0) -- bottom right bar
	_G["MultiBarBottomLeftButton"..i.."HotKey"]:SetAlpha(0) -- bottom left bar
	_G["MultiBarRightButton"..i.."HotKey"]:SetAlpha(0) -- right bar
	_G["MultiBarLeftButton"..i.."HotKey"]:SetAlpha(0) -- left bar
end

6. Cast bar scripts

6.1. Text cast timer ("0.8 / 1.5"):
CastingBarFrame.timer = CastingBarFrame:CreateFontString(nil);
CastingBarFrame.timer:SetFont(STANDARD_TEXT_FONT,12,"OUTLINE");
CastingBarFrame.timer:SetPoint("TOP", CastingBarFrame, "BOTTOM", 0, 0);
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)

6.2. Scaling/moving castbars
Player cast bar:
CastingBarFrame:ClearAllPoints()
CastingBarFrame:SetPoint("CENTER",UIParent,"CENTER", 0, -235)
CastingBarFrame.SetPoint = function() end
CastingBarFrame:SetScale(1.0)

Target cast bar. This one is attached to the target unit frame by default, this script will unattach it and place it in the center:
TargetFrameSpellBar:ClearAllPoints()
TargetFrameSpellBar:SetPoint("CENTER", UIParent, "CENTER", 0, -140)
TargetFrameSpellBar.SetPoint = function() end
TargetFrameSpellBar:SetScale(1.0)
Focus cast bar functions the exact same way as the target cast bar, just that the frame is called FocusFrameSpellBar.

Set the cast bar above the frame instead of under the auras:
TargetFrameSpellBar:ClearAllPoints()
TargetFrameSpellBar:SetPoint("BOTTOM", TargetFrame, "TOP", -15, 0)
TargetFrameSpellBar.SetPoint = function() end
It will still remain attached to the target frame if you decide to move the target frame. Change "Target" to "Focus" everywhere and you'll get the same script for focus frame.

Spoiler

7. Quality of life scripts

7.1. Autosell grey trash and repair:
local g = CreateFrame("Frame")
g:RegisterEvent("MERCHANT_SHOW")

g:SetScript("OnEvent", function()  
	local bag, slot
	for bag = 0, 4 do
		for slot = 0, GetContainerNumSlots(bag) do
			local link = GetContainerItemLink(bag, slot)
			if link and (select(3, GetItemInfo(link)) == 0) then
				UseContainerItem(bag, slot)
			end
		end
	end

	if(CanMerchantRepair()) then
		local cost = GetRepairAllCost()
		if cost > 0 then
			local money = GetMoney()
			if IsInGuild() then
				local guildMoney = GetGuildBankWithdrawMoney()
				if guildMoney > GetGuildBankMoney() then
					guildMoney = GetGuildBankMoney()
				end
				if guildMoney > cost and CanGuildBankRepair() then
					RepairAllItems(1)
					print(format("|cfff07100Repair cost covered by G-Bank: %.1fg|r", cost * 0.0001))
					return
				end
			end
			if money > cost then
				RepairAllItems()
				print(format("|cffead000Repair cost: %.1fg|r", cost * 0.0001))
			else
				print("Not enough gold to cover the repair cost.")
			end
		end
	end
end)
Will use guild bank if available.

7.1. Minimap tweaks:
MinimapZoomIn:Hide()
MinimapZoomOut:Hide()
Minimap:EnableMouseWheel(true)
Minimap:SetScript('OnMouseWheel', function(self, delta)
	if delta > 0 then
		Minimap_ZoomIn()
	else
		Minimap_ZoomOut()
	end
end)
MiniMapTracking:ClearAllPoints()
MiniMapTracking:SetPoint("TOPRIGHT", -26, 7)
Hides zoom in/out buttons, enables mousewheel zoom, and moves the tracking button to top right near the calendar button.

7.3. Extra slash commands:
SlashCmdList["CLCE"] = function() CombatLogClearEntries() end
SLASH_CLCE1 = "/clc"

SlashCmdList["TICKET"] = function() ToggleHelpFrame() end
SLASH_TICKET1 = "/gm"

SlashCmdList["READYCHECK"] = function() DoReadyCheck() end
SLASH_READYCHECK1 = '/rc'

SlashCmdList["CHECKROLE"] = function() InitiateRolePoll() end
SLASH_CHECKROLE1 = '/cr'
- /clc to clear combat log
- /gm to open a GM ticket
- /rc for readycheck
- /cr for check role


#3677847 dat mage dmg XP

Posted dreschnuu99 on 04 April 2012 - 11:50 AM

and insta 100% hp again


#3662995 r1 rps

Posted Donald on 15 March 2012 - 05:52 AM






#3662619 THE NEW ROGUE SPEC FOR LEGENDARIES

Posted aeSTATIX on 14 March 2012 - 06:48 PM

not sure if srs thread rofl


#3652824 AMA. Samulex--Current r1 and top 5 Rogue on Nightfall

Posted Conradical on 28 February 2012 - 09:42 PM

View PostPorkz, on 28 February 2012 - 09:27 PM, said:

Why did u go 1-6 at NAO?

lmao


#3652816 AMA. Samulex--Current r1 and top 5 Rogue on Nightfall

Posted Porkz on 28 February 2012 - 09:27 PM

Why did u go 1-6 at NAO?


#3647872 Abni

Posted Zunniyaki on 22 February 2012 - 11:40 AM

halt die klappe


#3615050 Mage Gear Guide (S11)

Posted Pawzz on 15 January 2012 - 11:39 PM

This is Xandyn's guide to gearing a mage using PvE gear.
The other thread was closed due to flaming and spam, if you don't like this gear setup, don't use it. It is very PvE focused and might not be the best option for your playstyle.
This guide was posted again due to popular request.
______________________


Main pieces
4/5 PvP + PvE legs.

Tier 13 HC (Dragon Soul) -> Tier 12 Heroic (Firelands) -> Tier 13 Normal (Dragon Soul) -> Tier 12 Normal (2200 Justice Points) -> Tier 13 Raid finder (Dragon Soul)

You should use 378 Firehawk vs 384 Raid Finder, and 391 Firehawk vs 397 Tier 13 or you lose way too much crit, for 40 intel~ and useless haste.

Trinkets
For Human you want to have a core trinket which will be 'Foul Gift of the Demon Lord' from Well of Eternity Heroic dungeon. No other trinket is better for first slot.

Second trinket would be ideally in order of the following: HC Cunning of the Cruel -> HC Ragnaros trinket -> Cunning of the Cruel-> Soul Casket -> Ragnaros Normal trinket -> Cunning of the Cruel LFR -> PvP on use


For NON-Human the trinket priority is as follows: HC Cunning of the Cruel -> HC Ragnaros Trinket-> Foul Gift of the Demon Lord -> Cunning of the Cruel -> Soul Casket -> Cunning of the Cruel LFR -> PvP on use.

Use the crit medallion reforged to mastery if you have low PvE gear, else use the resilience oneand get more PvE gear to replace.

Well of eternity trinket is the best trinket before heroic trinkets. I won't elaborate on this further, but 20% damage proc, on a very short ICD, and very high proc chance should be convincing enough.

Off-pieces
REQUISITE:
Bracers of Unconquered Power (craftable for 15k~ gold)
Tentacular belt (1650 valor points)

ADDITIONAL
Ring of the Riven(4th boss Dragon Soul, heroic/LFR if you can of course)
Crystal Prison Band Firelands - Shannox HC(378 one not worth to use over 403 PvP rings, unless you have no PvE gear at all).
Wand from Warlord Zon'ozz, 2nd Dragon Soul boss is also good.


Gemming/enchanting
Just follow a very simple rule. 4% Hit -> Intellect(by far) -> Mastery -> Crit -> Resilience -> Haste

Enchant intellect everywhere you can, you should gem Intellect everywhere in your gear, except if you have Dragon Soul legs (30 intel bonus). And the obvious PvE gear that has intel socket bonuses.

The PvP shoulders is the only PvP item worth following the socket bonus, because it has intel as a yellow gem bonus. However, if you use epic gems, it's not worth it. 15 Intellect > 25 mastery.

Notes

You can and you should use as much of the PvE gear from the ADDITIONAL off-pieces listed, the goal is to have around 3400 resilience in arena as ANY COMP that isn't RMP and less if you play RMP. If you are a good mage you should be able to survive just about everything before your team wins.

Even as RMP I am rarely the one dying, and people tunnel me. I would use 2800~ resilience in 3v3 if I had better PvE gear that is worth wearing over 403 PvP (aka something from the off-pieces listed above).

I haven't died a single game of 3v3 while wearing 2800 resilience, vs top Cyclone teams. If you are struggling, it's because you need more experience at avoiding damage, use more resilience when you are less experienced as a mage, then gradually go down as your skill goes up.

You should be aiming at approx. 15 mastery, 10500 spell power as non-human.

This is MY way of gearing mage (which contributes to alot of my damage in arena, most of my damage however is carefully using my cooldowns so I never run out of finger procs in an arena game, therefore never have to cast, max, unstoppable damage).

______________
I only had a copy without the links(had to add them myself), so if a link isn't working just shout.


Thanks to Xandyn for writing this.


#3617868 Advice for a Feral

Posted kannetixx on 18 January 2012 - 09:25 PM

s

View PostXvn, on 18 January 2012 - 08:54 PM, said:

So I just leveled a feral druid, so i can be cool with bleeds and bearform  B)  With most classes I can pick them up relatively fast and understand them and when to use what. But on this feral, I'm pretty lost on when to use what, What rotation should I use, What and when to use Predators Swiftness on, what to use my combo points on, and so on. I was wondering if a good Feral or at least someone with a lot of knowledge on Druids in general could help me out with some tips or what not.

Treat players like pve bosses! :>

Posted Image



#3608357 HK's make you good

Posted deac00r on 07 January 2012 - 08:52 PM

Posted Image

http://i.imgur.com/U6RvN.jpg

but yeah hes a pretty cool guy, doesnt afraid of hks


#3608332 HK's make you good

Posted ApplejackxD on 07 January 2012 - 08:37 PM

View PostJeffylol, on 07 January 2012 - 08:28 PM, said:

Maybe he's legit xP

Posted Image


#3604832 nerf this dam class

Posted Eowynnz on 03 January 2012 - 09:30 AM

Posted Image
:deathknight:


#3593261 Next Swifty! Best warr eu!

Posted yarubi on 20 December 2011 - 03:29 PM

oh my god

so we have UK swifty (ayra) german swifty (this guy)..swifty army is rising


#3565387 Qyzz IV

Posted Alyna on 28 November 2011 - 08:50 PM

shit language cya




<