Language:
Lua     Change language:
Pastebin: 132676
Author: Anonymous
Subject: Untitled
Created: 2010-02-08 21:23:51
Download and save
Toggle line numbers
1-- *~E~M置信~A,~O| ~M~\~@~A~[~T~O~B~U 
2local showRaid = false          -- true ~X示~[~X~_~F~S, false ~Z~P~W~O 
3local showPlayerPartyNum = true -- true ~X示~N家~O~X~_~V~O, false ~Z~P~W~O 
4-- local showPVPStatus = false      -- true ~X示~N家PVP~J~@~A, false ~Z~P~W~O 
5local showCastBar = true        -- true ~X示~V~U~], false ~Z~P~W~O 
6 
7-- *~E~M置~]~P质~R~L~W~S,~B~M~E~Z请~K~Z~O~D~O~T~J 
8local statusbar = 'Interface\\Addons\\oUF\\layouts\\media\\statusTex' 
9local buttonbar = 'Interface\\Addons\\oUF\\layouts\\media\\buttonTex' 
10local fontNumber = 'Interface\\AddOns\\oUF\\layouts\\media\\number.ttf' 
11 
12local fontNormal = 'Fonts\\FRIZQT__.ttf' 
13if GetLocale() == "zhCN" then 
14    fontNormal = 'Fonts\\ZYKai_T.ttf' 
15elseif GetLocale() == "zhTW" then 
16    fontNormal = 'Fonts\\bLEI00D.ttf' 
17end 
18 
19local backdrop = { 
20    bgFile = 'Interface\\ChatFrame\\ChatFrameBackground', tile = true, tileSize = 16
21    edgeFile = 'Interface\\AddOns\\oUF\\layouts\\media\\borderTex', edgeSize = 8
22    insets = {top = 4, left = 4, bottom = 4, right = 4}
23} 
24 
25local backdropPlugin = { 
26    bgFile = 'Interface\\Tooltips\\UI-Tooltip-Background'
27    insets = {top = -1, left = -1, bottom = -1, right = -1} 
28} 
29 
30-- *以~K信~A请~K~Z~O~D~O~T~J 
31local units = {} 
32local _, class = UnitClass('player'
33 
34--local runeloadcolors = { 
35--  [1] = {.69,.31,.31}, 
36--  [2] = {.69,.31,.31}, 
37--  [3] = {.33,.59,.33}, 
38--  [4] = {.33,.59,.33}, 
39--  [5] = {.31,.45,.63}, 
40--  [6] = {.31,.45,.63}, 
41--} 
42 
43local function PRINT(msg, r, g, b) 
44    DEFAULT_CHAT_FRAME:AddMessage(msg, r, g, b) 
45end 
46 
47local UpdateDruidMana = function(self) 
48    if self.unit ~= 'player' then return end 
49 
50    local num, str = UnitPowerType('player'
51    if(num and num ~= 0) then 
52        local min = UnitPower('player', 0
53        local max = UnitPowerMax('player', 0
54        self.DruidMana:SetFormattedText('%d%%', (min/max)*100
55        self.DruidMana:SetAlpha(min == max and 0 or 1
56    else 
57        self.DruidMana:SetAlpha(0
58    end 
59end 
60 
61-- ~W~I~H代| ~A ~@~P~X~_~O~K~O~T~O~\~M~U >> 
62local menu = function(self) 
63    local unit = string.gsub(self.unit, '(.)', string.upper, 1
64    if(_G[unit..'FrameDropDown']) then 
65        ToggleDropDownMenu(1, nil, _G[unit..'FrameDropDown'], 'cursor'
66    elseif(self.unit:match('party')) then 
67        ToggleDropDownMenu(1, nil, _G['PartyMemberFrame'..self.id..'DropDown'], 'cursor'
68    else 
69        FriendsDropDown.unit = self.unit 
70        FriendsDropDown.id = self.id 
71        FriendsDropDown.initialize = RaidFrameDropDown_Initialize 
72        ToggleDropDownMenu(1, nil, FriendsDropDown, 'cursor'
73    end 
74end 
75-- ~W~I~H代| ~A ~@~P~X~_~O~K~O~T~O~\~M~U << 
76 
77local fontString = function(parent, name, height, style) 
78    local fs = parent:CreateFontString(nil, 'OVERLAY'
79    fs:SetFont(name, height, style) 
80    fs:SetJustifyH('LEFT'
81    fs:SetShadowColor(0,0,0
82    fs:SetShadowOffset(1.25, -1.25
83    return fs 
84end 
85 
86local PostCreateAuraIcon = function(self, button, icons, index, debuff) 
87    icons.showDebuffType = true 
88    button.cd:SetReverse() 
89    button.icon:SetTexCoord(.07, .93, .07, .93
90 
91    button.overlay:SetTexture("Interface\\AddOns\\oUF\\layouts\\media\\buttonTex"
92    button.overlay:SetPoint("TOPLEFT", button, "TOPLEFT", -1, 1
93    button.overlay:SetPoint("BOTTOMRIGHT", button, "BOTTOMRIGHT", 1, -1
94    button.overlay:SetTexCoord(0, 1, 0.02, 1
95 
96    if (not debuff) then 
97        button:SetScript('OnMouseUp', function(self, mouseButton) 
98            if mouseButton == 'RightButton' then 
99                CancelUnitBuff('player', index) 
100            end 
101        end
102    end 
103 
104    self.ButtonOverlay = button:CreateTexture(nil, 'OVERLAY'
105    self.ButtonOverlay:SetPoint('TOPLEFT', -1, 1
106    self.ButtonOverlay:SetPoint('BOTTOMRIGHT', 1, -1
107    self.ButtonOverlay:SetTexture('Interface\\AddOns\\oUF\\layouts\\media\\buttonTex'
108    self.ButtonOverlay:SetVertexColor(.5,.5,.5
109end 
110 
111local PostUpdateAuraIcon = function(self, icons, unit, icon, index) 
112    local caster = select(8, UnitAura(unit, index, icon.filter)) 
113    if UnitCanAttack("player", unit) and icon.debuff and caster ~= "player" then 
114        icon.icon:SetDesaturated(true
115        icon.cd:Hide() 
116    else 
117        icon.icon:SetDesaturated(false
118    end 
119end 
120 
121units['player'] = function(self, unit) 
122    self.PortraitOverlay:SetPoint('TOPLEFT', self, 'TOPLEFT', 5, -5
123    self.PortraitOverlay:SetPoint('BOTTOMRIGHT', self, 'BOTTOMLEFT', 50, 5
124 
125    self.Health:SetHeight(33
126    self.Health:SetPoint('TOPRIGHT', self,'TOPRIGHT', -5, -5
127    self.Health:SetPoint('BOTTOMLEFT', self.Portrait, 'BOTTOMRIGHT', 1, 22
128    self:Tag(self.Health.value, '[UnitHealth]'
129 
130    self.Power:SetPoint('BOTTOMRIGHT', self, 'BOTTOMRIGHT',-5, 5
131    self.Power:SetPoint('TOPLEFT', self.Health, 'BOTTOMLEFT', 0, -1
132    self.Power.value.frequentUpdates = 0.1 
133    self:Tag(self.Power.value, '[UnitPower]'
134 
135    self:Tag(self.Info, ' [UnitLevel] [UnitClass] [UnitRace]'
136 
137    self.PvP:SetPoint('TOPLEFT', self, 'TOPLEFT', -10, 2
138    self.PvP:SetHeight(40
139    self.PvP:SetWidth(40
140 
141--[[    self.CombatFeedbackText = fontString(self.Health, fontNormal, 18, 'OUTLINE') 
142    self.CombatFeedbackText:SetPoint('CENTER', 0, 0) 
143 
144    self.Castbar:SetPoint('BOTTOMLEFT', self.Health, 'TOPLEFT', 1, 3) 
145    self.Castbar:SetPoint('TOPRIGHT', self, 'TOPRIGHT', -5, 16) 
146    self.Castbar.SafeZone = self.Castbar:CreateTexture(nil,'ARTWORK') 
147    self.Castbar.SafeZone:SetTexture(statusbar) 
148    self.Castbar.SafeZone:SetVertexColor(.69,.31,.31) 
149    self.Castbar.Icon:SetPoint('LEFT', -21, 0) ]] 
150 
151    if UnitLevel('player') ~= MAX_PLAYER_LEVEL then 
152        self.Resting = self.Power:CreateTexture(nil, 'OVERLAY'
153        self.Resting:SetHeight(17
154        self.Resting:SetWidth(19
155        self.Resting:SetPoint('BOTTOMLEFT', -8.5, -8.5
156        self.Resting:SetTexture('Interface\\CharacterFrame\\UI-StateIcon'
157        self.Resting:SetTexCoord(0,0.5,0,0.421875
158 
159        self.Experience = CreateFrame('StatusBar', nil, self) 
160        self.Experience:SetStatusBarTexture(statusbar) 
161        self.Experience:SetStatusBarColor(.55,.57,.61
162        self.Experience:SetBackdrop(backdropPlugin) 
163        self.Experience:SetBackdropColor(.15,.15,.15
164        if (class == 'DEATHKNIGHT' or class == "SHAMAN") then 
165            self.Experience:SetPoint('TOPLEFT', self, 'BOTTOMLEFT', 5, -6
166            self.Experience:SetPoint('BOTTOMRIGHT', self, 'BOTTOMRIGHT', -5, -12
167        else 
168            self.Experience:SetPoint('TOPLEFT', self, 'BOTTOMLEFT', 5, 2
169            self.Experience:SetPoint('BOTTOMRIGHT', self, 'BOTTOMRIGHT', -5, -4
170        end 
171 
172 
173        self.Experience.bg = self.Experience:CreateTexture(nil, 'BORDER'
174        self.Experience.bg:SetAllPoints(self.Experience) 
175        self.Experience.bg:SetTexture(statusbar) 
176        self.Experience.bg:SetVertexColor(.15,.15,.15
177 
178        self.Experience.Tooltip = true 
179        self.Experience.MouseOver = true 
180    end 
181 
182    self.Combat = self.Power:CreateTexture(nil, 'OVERLAY'
183    self.Combat:SetHeight(14
184    self.Combat:SetWidth(14
185    self.Combat:SetPoint('BOTTOMLEFT', -8.5, -7.5
186    self.Combat:SetTexture('Interface\\CharacterFrame\\UI-StateIcon'
187    self.Combat:SetTexCoord(0.58, 0.90, 0.08, 0.41
188 
189    if (class == 'DRUID') then 
190        CreateFrame('Frame'):SetScript('OnUpdate', function() UpdateDruidMana(self) end
191        self.DruidMana = fontString(self.Power, fontNumber, 11
192        self.DruidMana:SetPoint('LEFT', self.Power, 'RIGHT', 5, 1
193        self.DruidMana:SetTextColor(1, .49, .04
194    elseif (class == 'DEATHKNIGHT') then 
195        self.RuneBar = {} 
196        for i = 1, 6 do 
197            self.RuneBar[i] = CreateFrame('StatusBar', nil, self) 
198            self.RuneBar[i]:SetHeight(7
199            self.RuneBar[i]:SetWidth(220/6 - .6
200            if(i == 1) then 
201                self.RuneBar[i]:SetPoint('TOPLEFT', self, 'BOTTOMLEFT', 5, 2
202            else 
203                self.RuneBar[i]:SetPoint('TOPLEFT', self.RuneBar[i-1], 'TOPRIGHT', 1, 0
204            end 
205            self.RuneBar[i]:SetStatusBarTexture(statusbar) 
206            --self.RuneBar[i]:SetStatusBarColor(unpack(runeloadcolors[i])) 
207            self.RuneBar[i]:SetBackdrop(backdropPlugin) 
208            self.RuneBar[i]:SetBackdropColor(.15,.15,.15
209            self.RuneBar[i]:SetMinMaxValues(0, 1
210 
211            self.RuneBar[i].bg = self.RuneBar[i]:CreateTexture(nil, 'BORDER'
212            self.RuneBar[i].bg:SetAllPoints(self.RuneBar[i]) 
213            self.RuneBar[i].bg:SetTexture(statusbar) 
214            self.RuneBar[i].bg:SetVertexColor(.15,.15,.15
215        end 
216    elseif (class == 'SHAMAN') then 
217        self.TotemBar = {} 
218        for i = 1, 4 do 
219            self.TotemBar[i] = CreateFrame("StatusBar", nil, self) 
220            self.TotemBar[i]:SetHeight(7
221            self.TotemBar[i]:SetWidth(220/4 - .6
222            if (i == 1) then 
223                self.TotemBar[i]:SetPoint("TOPLEFT", self, "BOTTOMLEFT", 5, 2
224            else 
225                self.TotemBar[i]:SetPoint("TOPLEFT", self.TotemBar[i-1], "TOPRIGHT", 1, 0
226            end 
227            self.TotemBar[i]:SetStatusBarTexture(statusbar) 
228            self.TotemBar[i]:SetBackdrop(backdropPlugin) 
229            self.TotemBar[i]:SetBackdropColor(.15,.15,.15
230            self.TotemBar[i]:SetMinMaxValues(0, 1
231 
232            self.TotemBar[i].bg = self.TotemBar[i]:CreateTexture(nil, "BORDER"
233            self.TotemBar[i].bg:SetAllPoints(self.TotemBar[i]) 
234            self.TotemBar[i].bg:SetTexture(statusbar) 
235            self.TotemBar[i].bg:SetVertexColor(.15,.15,.15
236        end 
237    end 
238 
239--[[    self.Swing = CreateFrame('StatusBar', nil, self) 
240    self.Swing:SetPoint('TOPLEFT', self.Health, 'TOPLEFT', 0, 65) 
241    self.Swing:SetPoint('BOTTOMRIGHT', self.Health, 'TOPRIGHT', 0, 60) 
242    self.Swing:SetStatusBarTexture(statusbar) 
243    self.Swing:SetStatusBarColor(.55,.57,.61) 
244    self.Swing:SetBackdrop(backdropPlugin) 
245    self.Swing:SetBackdropColor(.15,.15,.15) 
246 
247    self.Swing.Text = fontString(self.Swing, fontNumber, 9) 
248    self.Swing.Text:SetPoint('CENTER', 0, 1) 
249    self.Swing.Text:SetTextColor(.84,.75,.65)  
250 
251    self.Swing.bg = self.Swing:CreateTexture(nil, 'BORDER') 
252    self.Swing.bg:SetAllPoints(self.Swing) 
253    self.Swing.bg:SetTexture(statusbar) 
254    self.Swing.bg:SetVertexColor(.15,.15,.15) ]] 
255 
256    --Player Threat 
257    self.ThreatValue = fontString(self, fontNormal, 12
258    self.ThreatValue:SetPoint('LEFT', self.Health, 'RIGHT', 5, 0
259    self.ThreatValue.frequentUpdates = 0.3 
260    self:Tag(self.ThreatValue, '[PlayerThreat]'
261 
262    --Player's Party Number 
263    if showPlayerPartyNum == true then 
264        self.PartyNumber = fontString(self, fontNormal, 11
265        self.PartyNumber:SetPoint('BOTTOM', self.PortraitOverlay, 'TOP', 0, 5
266        self.PartyNumber.frequentUpdates = 3 
267        self:Tag(self.PartyNumber, '[PlayerParty]'
268    end 
269 
270    --Player's PVP Status 
271--  if showPVPStatus == true then 
272--      self:Tag(self.Name, '[UnitName] [pvp]') 
273--  end 
274 
275    if kGenius then 
276 
277    end 
278 
279    self:SetAttribute('initial-width', 230
280    self:SetAttribute('initial-height', 65
281end 
282 
283units['target'] = function(self, unit) 
284    self.PortraitOverlay:SetPoint('TOPRIGHT', self, 'TOPRIGHT', -5, -5
285    self.PortraitOverlay:SetPoint('BOTTOMLEFT', self, 'BOTTOMRIGHT', -50, 7) -- ~N~_为-50, 5 
286 
287    self.PvP:SetPoint('TOPRIGHT', self, 'TOPRIGHT', 22, 5
288    self.PvP:SetHeight(45) -- PVP| ~G~W~T大~H45 ~N~_为40 
289    self.PvP:SetWidth(45) -- ~N~_为40 
290 
291    self.Health:SetHeight(33
292    self.Health:SetPoint('TOPLEFT', self,'TOPLEFT', 5, -5
293    self.Health:SetPoint('BOTTOMRIGHT', self.Portrait, 'BOTTOMLEFT', -1, 22
294    self:Tag(self.Health.value, '[UnitHealth]'
295 
296    self.Power:SetPoint('BOTTOMLEFT', self, 'BOTTOMLEFT',5, 5
297    self.Power:SetPoint('TOPRIGHT', self.Health, 'BOTTOMRIGHT', 0, -1
298    self:Tag(self.Power.value, '[UnitPower]'
299 
300    self:Tag(self.Info, '[UnitType] [UnitLevel] [UnitClass] [UnitRace]'
301 
302    self.Buffs = CreateFrame('Frame', nil, self) 
303    self.Buffs.spacing = 5.3 
304    self.Buffs:SetHeight(18.5
305    self.Buffs:SetWidth(self.Buffs:GetHeight() * 8 + self.Buffs.spacing * 7
306    self.Buffs.size = math.floor(self.Buffs:GetHeight()) 
307    self.Buffs:SetPoint('TOPLEFT', self.PortraitOverlay, 'TOPRIGHT', 3, 0
308    self.Buffs.initialAnchor = 'TOPLEFT' 
309    self.Buffs['growth-y'] = 'DOWN' 
310 
311    self.Debuffs:SetPoint('TOPLEFT', self.Power, 'BOTTOMLEFT', 0, -5) -- ~N~_为0, -3 
312    self.Debuffs.initialAnchor = 'TOPLEFT' 
313    self.Debuffs['growth-y'] = 'DOWN' 
314 
315--  self.CombatFeedbackText = fontString(self.Health, fontNormal, 18, 'OUTLINE') 
316--  self.CombatFeedbackText:SetPoint('CENTER', 0, 0) 
317 
318    self.Castbar:SetPoint('BOTTOMRIGHT', self.Health, 'TOPRIGHT', -1, 3
319    self.Castbar:SetPoint('TOPLEFT', self, 'TOPLEFT', 5, 16
320    self.Castbar.Icon:SetPoint('RIGHT', 21, 0
321 
322    if(class == 'ROGUE' or class == 'DRUID') then 
323        self.CPoints = {} 
324        self.CPoints.unit = 'player' 
325        for i = 1, 5 do 
326            self.CPoints[i] = self:CreateTexture(nil, 'OVERLAY'
327            self.CPoints[i]:SetHeight(12
328            self.CPoints[i]:SetWidth(12
329            self.CPoints[i]:SetTexture('Interface\\Addons\\oUF\\layouts\\media\\comboTex'
330            if(i==1) then 
331                self.CPoints[i]:SetPoint('BOTTOMRIGHT', self, 'BOTTOMRIGHT', 0, 0
332            else 
333                self.CPoints[i]:SetPoint('RIGHT', self.CPoints[i-1], 'LEFT', 1
334            end 
335        end 
336    end 
337 
338    self:SetAttribute('initial-width', 255) -- ~F~S宽度~I~G255 ~N~_为230 
339    self:SetAttribute('initial-height', 70) -- ~F~S~X度~I~G70 ~N~_为65 
340end 
341 
342units['pet'] = function(self, unit) 
343    self.Health:SetHeight(22
344    self.Health:SetPoint('TOPLEFT', 5, -5
345    self.Health:SetPoint('BOTTOMRIGHT', -5, 11
346    self.Health.colorClassPet = true 
347    self:Tag(self.Health.value, '[UnitHealthPerc]'
348 
349    self.Power:SetHeight(5
350    self.Power:SetPoint('TOPLEFT', self.Health, 'BOTTOMLEFT', 0, -1
351    self.Power:SetPoint('BOTTOMRIGHT', -5, 5
352    self.Power.colorHappiness = true 
353 
354    self.Auras = CreateFrame('Frame', nil, self) 
355    self.Auras:SetHeight(18.5
356    self.Auras:SetWidth(18.5 * 8
357    self.Auras:SetPoint('TOPLEFT', self.Health, 'BOTTOMLEFT', 0, -10) -- ~E~I~N~M置~T~O~X 
358    self.Auras.size = 18.5 
359    self.Auras.spacing = 1 
360    self.Auras.visibleBuffs = 8 
361    self.Auras.Debuffs = 8 
362    self.Auras.gap = true 
363    self.Auras.initialAnchor = 'TOPLEFT' -- ~N~R~H~W~V~P~Q~T~O~X 
364    self.Auras['growth-y'] = 'DOWN' -- ~^~U~V~P~Q~T~O~X 
365 
366    self:SetAttribute('initial-height', 38
367    self:SetAttribute('initial-width', 130
368end 
369 
370units['party'] = function(self, unit) 
371-- ~E~W头~C~O 
372--  self.PortraitOverlay:SetPoint('TOPLEFT', self, 'TOPLEFT', 5, -5) 
373--  self.PortraitOverlay:SetPoint('BOTTOMRIGHT', self, 'BOTTOMLEFT', 45, 5) 
374 
375    self.PvP:SetPoint('TOPLEFT', self, 'TOPLEFT', -10, 2
376    self.PvP:SetHeight(35
377    self.PvP:SetWidth(35
378 
379-- ~G~M~Z~I~T~_~Q~]/~U~J~[~]~F~S~T~K 
380    self.Health:SetHeight(15
381    self.Health:SetPoint('TOPLEFT', 5, -5
382    self.Health:SetPoint('BOTTOMRIGHT', -5, 20
383    self:Tag(self.Health.value, '[UnitHealth]'
384 
385    self.Power:SetHeight(8
386    self.Power:SetPoint('TOPLEFT', self.Health, 'BOTTOMLEFT', 0, -1
387    self.Power:SetPoint('BOTTOMRIGHT', -5, 5
388    self:Tag(self.Power.value, '[UnitPower]'
389 
390    self:Tag(self.Info, '[UnitType][UnitLevel] [UnitClass] [UnitRace]'
391 
392    self.Debuffs:SetPoint('BOTTOMRIGHT', self.Health, 'TOPRIGHT', 0, 3
393    self.Debuffs.initialAnchor = 'BOTTOMRIGHT' 
394    self.Debuffs['growth-x'] = 'LEFT' 
395    self.Debuffs['growth-y'] = 'UP' 
396 
397    self.Castbar:SetPoint('TOPLEFT', self.Power, 'BOTTOMLEFT', 1, -3
398    self.Castbar:SetPoint('BOTTOMRIGHT', self, 'BOTTOMRIGHT', -5, -13
399    self.Castbar.Icon:SetPoint('LEFT', -18, 0
400 
401    self.Castbar.Icon:SetHeight(15
402    self.Castbar.Icon:SetWidth(15
403 
404    self.ReadyCheck:SetPoint('TOPRIGHT', 7, 7
405 
406    self:SetAttribute('initial-width', 155) --~N~_为205 
407    self:SetAttribute('initial-height', 50) -- ~N~_为60 
408end 
409 
410units['focus'] = function(self, unit) 
411    units['party'](self, unit) 
412end 
413 
414units['raid'] = function(self, unit) 
415    self.Health:SetHeight(33
416    self.Health:SetPoint('TOPLEFT', 5, -5
417    self.Health:SetPoint('BOTTOMRIGHT', -5, 12
418 
419    self.Health.value:SetFont(fontNumber, 10
420    self.Health.value:ClearAllPoints() 
421    self.Health.value:SetPoint('BOTTOMRIGHT', -1, 2
422    self:Tag(self.Health.value, '[UnitHealthPerc]'
423 
424    self.Power:SetHeight(5
425    self.Power:SetPoint('TOPLEFT', self.Health, 'BOTTOMLEFT', 0, -1
426    self.Power:SetPoint('BOTTOMRIGHT', -5, 5
427 
428    self.Name:SetFont(fontNormal, 10
429    self.Name:ClearAllPoints() 
430    self.Name:SetPoint('TOPLEFT', 1, 0
431    self:Tag(self.Name, '[UnitNameShort]'
432 
433    self.RaidIcon:ClearAllPoints() 
434    self.RaidIcon:SetPoint('LEFT', 2, 1
435    self.ReadyCheck:SetPoint('CENTER', 0, 1
436    self.Leader:ClearAllPoints() 
437    self.Leader:SetPoint('TOPLEFT', 0, 9
438    self.MasterLooter:ClearAllPoints() 
439    self.MasterLooter:SetPoint('RIGHT', -2, 1
440 
441    self:SetAttribute('initial-height', 50
442    self:SetAttribute('initial-width', 75
443end 
444 
445units['others'] = function(self, unit) 
446    self.Health:SetHeight(17.5
447    self.Health:SetPoint('TOPLEFT', 5, -5
448    self.Health:SetPoint('BOTTOMRIGHT', -5, 11
449    self:Tag(self.Health.value, '[UnitHealthPerc]'
450 
451    self.Power:SetHeight(5
452    self.Power:SetPoint('TOPLEFT', self.Health, 'BOTTOMLEFT', 0, -1
453    self.Power:SetPoint('BOTTOMRIGHT', -5, 5
454 
455    self.ignoreHealComm = true 
456 
457    self:SetAttribute('initial-height', 38
458    self:SetAttribute('initial-width', 110) -- ~N~_为130 
459end 
460 
461local style = function(self, unit) 
462    local frameName = self:GetParent():GetName() 
463 
464--  if unit == "player" or unit == "target" then 
465        self.menu = menu 
466        self:RegisterForClicks('AnyUp'
467        self:SetAttribute('type2', 'menu'
468--  end 
469 
470    self:SetScript('OnEnter', UnitFrame_OnEnter) 
471    self:SetScript('OnLeave', UnitFrame_OnLeave) 
472    self:SetBackdrop(backdrop) 
473    self:SetBackdropColor(0, 0, 0, .5
474    self:SetBackdropBorderColor(.47, .28, .31, 1
475 
476    self.Health = CreateFrame('StatusBar', nil, self) 
477    self.Health:SetStatusBarTexture(statusbar) 
478    self.Health:SetFrameLevel(unit and 1 or 2
479    self.Health.colorClass = true 
480    self.Health.colorReaction = true 
481    self.Health.colorTapping = true 
482    self.Health.colorDisconnected = true 
483--  self.Health.colorSmooth = true 
484    self.Health.frequentUpdates = true 
485 
486    self.Health.bg = self.Health:CreateTexture(nil, 'BORDER'
487    self.Health.bg:SetAllPoints(self.Health) 
488    self.Health.bg:SetTexture(statusbar) 
489    self.Health.bg:SetAlpha(.7
490    self.Health.bg.multiplier = .33 
491 
492    self.Health.value = fontString(self.Health, fontNumber, 11
493    self.Health.value:SetPoint('RIGHT', -2, 1
494 
495    self.Power = CreateFrame('StatusBar', nil, self) 
496    self.Power:SetStatusBarTexture(statusbar) 
497    self.Power:SetFrameLevel(unit and 1 or 2
498    self.Power.colorClassNPC = true 
499    self.Power.colorReaction = true 
500    self.Power.colorPower = true 
501    self.Power.frequentUpdates = true 
502 
503    self.Power.bg = self.Power:CreateTexture(nil, 'BORDER'
504    self.Power.bg:SetAllPoints(self.Power) 
505    self.Power.bg:SetTexture(statusbar) 
506    self.Power.bg:SetAlpha(.7
507    self.Power.bg.multiplier = .33 
508 
509    self.Power.value = fontString(self.Power, fontNumber, 10
510    self.Power.value:SetPoint('RIGHT', -2, 1
511 
512    self.Name = fontString(self.Health, fontNormal, 11
513    self.Name:SetPoint('LEFT', 2, 1
514    self:Tag(self.Name, '[UnitName]'
515 
516    self.Info = fontString(self.Power, fontNormal, 11
517    self.Info:SetPoint('LEFT', 2, 1
518 
519    self.RaidIcon = self.Health:CreateTexture(nil, 'OVERLAY'
520    self.RaidIcon:SetHeight(18) --~N~_为12 
521    self.RaidIcon:SetWidth(18) --~N~_为12 
522    self.RaidIcon:SetPoint('TOP', 0, 8
523 
524    self.Highlight = self:CreateTexture(nil, 'HIGHLIGHT'
525    self.Highlight:SetAllPoints(self.Health) 
526    self.Highlight:SetBlendMode('ADD'
527    self.Highlight:SetTexture(statusbar) 
528    self.Highlight:SetAlpha(.25
529 
530    self.DebuffHighlight = self.Health:CreateTexture(nil, 'OVERLAY'
531    self.DebuffHighlight:SetAllPoints(self.Health) 
532    self.DebuffHighlight:SetTexture('Interface\\Addons\\oUF\\layouts\\media\\highlightTex'
533    self.DebuffHighlight:SetVertexColor(0, 0, 0, 0
534    self.DebuffHighlight:SetBlendMode('ADD'
535    self.DebuffHighlightAlpha = 1 
536    self.DebuffHighlightFilter = false 
537 
538    if unit ~= 'player' then 
539        self.Threat = self.Health:CreateTexture(nil, 'OVERLAY'
540        self.Threat:SetHeight(12
541        self.Threat:SetWidth(12
542        self.Threat:SetPoint('CENTER'
543        self.Threat:SetTexture('Interface\\Addons\\oUF\\layouts\\media\\bubbleTex'
544    end 
545 
546    self.disallowVehicleSwap = true 
547 
548    if(unit == 'player' or unit == 'target' or unit == 'focus' or frameName:match('oUF_Party')) then 
549        self.PvP = self.Power:CreateTexture(nil, 'OVERLAY') --PVP 
550 
551        self.PortraitOverlay = self:CreateTexture(nil, 'ARTWORK'
552        self.PortraitOverlay:SetTexture(0, 0, 0, .6
553 
554        self.Portrait = CreateFrame('PlayerModel', nil, self) 
555        self.Portrait:SetAllPoints(self.PortraitOverlay) 
556 
557        self.Debuffs = CreateFrame('Frame', nil, self) 
558        self.Debuffs.spacing = 4.45 
559        self.Debuffs:SetHeight(24
560        self.Debuffs:SetWidth(230
561        self.Debuffs.size = math.floor(self.Debuffs:GetHeight()) 
562    end 
563 
564-- 修~T~V~U~]~O~N~[| ~G/~D~B/~X~_~O~K~D~X示 
565    if(unit == 'target' or unit == 'focus' or frameName:match('oUF_Party')) then 
566        if showCastBar then 
567            self.Castbar = CreateFrame('StatusBar', nil, self) 
568            self.Castbar:SetBackdrop(backdropPlugin) 
569            self.Castbar:SetBackdropColor(.15, .15, .15
570            self.Castbar:SetStatusBarTexture(statusbar) 
571            self.Castbar:SetStatusBarColor(.31,.45,.63,.7
572 
573            self.Castbar.bg = self.Castbar:CreateTexture(nil, 'BORDER'
574            self.Castbar.bg:SetAllPoints(self.Castbar) 
575            self.Castbar.bg:SetTexture(statusbar) 
576            self.Castbar.bg:SetVertexColor(.15,.15,.15
577 
578            self.Castbar.Text = fontString(self.Castbar, fontNormal, 11
579            self.Castbar.Text:SetPoint('LEFT', 1, 1
580            self.Castbar.Text:SetTextColor(.84,.75,.65
581 
582            self.Castbar.Time = fontString(self.Castbar, fontNumber, 11
583            self.Castbar.Time:SetPoint('RIGHT', -1, 1
584            self.Castbar.Time:SetTextColor(.84,.75,.65
585            self.Castbar.Time:SetJustifyH('RIGHT'
586 
587            self.Castbar.Icon = self.Castbar:CreateTexture(nil, 'ARTWORK'
588            self.Castbar.Icon:SetHeight(18
589            self.Castbar.Icon:SetWidth(18
590 
591            self.IconOverlay = self.Castbar:CreateTexture(nil, 'OVERLAY'
592            self.IconOverlay:SetPoint('TOPLEFT', self.Castbar.Icon, 'TOPLEFT', -1, 1
593            self.IconOverlay:SetPoint('BOTTOMRIGHT', self.Castbar.Icon, 'BOTTOMRIGHT', 1, -1
594            self.IconOverlay:SetTexture(buttonbar) 
595            self.IconOverlay:SetVertexColor(.5,.5,.5
596        end 
597    end 
598 
599    if(not unit or unit == 'player') then 
600        self.Leader = self.Health:CreateTexture(nil, 'OVERLAY'
601        self.Leader:SetHeight(16
602        self.Leader:SetWidth(16
603        self.Leader:SetPoint('TOPLEFT', 0, 10
604 
605        self.MasterLooter = self.Health:CreateTexture(nil, 'OVERLAY'
606        self.MasterLooter:SetHeight(12
607        self.MasterLooter:SetWidth(12
608        self.MasterLooter:SetPoint('TOPRIGHT', 0, 8.5
609    end 
610 
611    self.ReadyCheck = self.Health:CreateTexture(nil, 'OVERLAY'
612    self.ReadyCheck:SetHeight(13
613    self.ReadyCheck:SetWidth(13
614 
615    if(not unit or unit == 'pet') then 
616        self.outsideRangeAlpha = .35 
617        self.inRangeAlpha = 1 
618        self.Range = true 
619    end 
620 
621    if(unit and units[unit]) then 
622        units[unit](self, unit) 
623    elseif(frameName:match'oUF_Party') then 
624        units['party'](self, unit) 
625    elseif(frameName:match'oUF_Raid') then 
626        units['raid'](self, unit) 
627    else 
628        units['others'](self, unit) 
629    end 
630 
631    self.PostCreateAuraIcon = PostCreateAuraIcon 
632    self.PostUpdateAuraIcon = PostUpdateAuraIcon 
633    self.PostUpdateThreat = PostUpdateThreat 
634    return self 
635end 
636 
637oUF:RegisterStyle("oUF_Kinmeic", style) 
638oUF:SetActiveStyle("oUF_Kinmeic"
639 
640-- ~P~D~F~S~]~P| ~G设置~D 
641oUF:Spawn('player'):SetPoint('TOPLEFT', UIParent, 10, -40
642oUF:Spawn('target'):SetPoint('TOPLEFT', UIParent, 272, -38
643 
644oUF:Spawn('pet'):SetPoint('BOTTOMLEFT', oUF.units.player, 'BOTTOMLEFT', 45, -35
645oUF:Spawn('targettarget'):SetPoint('BOTTOMRIGHT', oUF.units.target, 'BOTTOMRIGHT', 107, -25
646-- 添~J| ~[| ~G~Z~D~[| ~G~Z~D~[| ~G(TOTOT) 
647oUF:Spawn('targettargettarget'):SetPoint('BOTTOMLEFT', oUF.units.targettarget, 'BOTTOMRIGHT', 0, 0
648 
649oUF:Spawn('focus'):SetPoint('TOPLEFT', UIParent, 15, -515
650oUF:Spawn('focustarget'):SetPoint('TOPLEFT', oUF.units.focus, 'TOPRIGHT', 0, 0
651 
652local party = oUF:Spawn('header', 'oUF_Party'
653party:SetPoint('TOPLEFT', UIParent, 'TOPLEFT', 5, -200
654party:SetManyAttributes('yOffset', -22, 'showParty', true
655 
656local partytarget = {} 
657partytarget[1] = oUF:Spawn('party1target', 'oUF_Party1Target'
658partytarget[1]:SetPoint('TOPLEFT', party, 'TOPRIGHT', 0, 0
659for i = 2, 4 do 
660    partytarget[i] = oUF:Spawn('party'..i..'target', 'oUF_Party'..i..'Target'
661    partytarget[i]:SetPoint('TOP', partytarget[i-1], 'BOTTOM', 0, -34
662end 
663 
664local raid = {} 
665for i = 1, 5 do 
666    local raidgroup = oUF:Spawn('header', 'oUF_Raid'..i) 
667    raidgroup:SetManyAttributes('groupFilter', tostring(i), 'showRaid', true, 'yOffSet', 3
668    table.insert(raid, raidgroup) 
669    if i == 1 then 
670        raidgroup:SetPoint('TOPLEFT', UIParent, 'TOPLEFT', 10, -230
671    else 
672        raidgroup:SetPoint('TOPLEFT', raid[i-1], 'TOPRIGHT', -3, 0
673    end 
674end 
675 
676local partyToggle = CreateFrame("Frame"
677partyToggle:RegisterEvent('PLAYER_LOGIN'
678partyToggle:RegisterEvent('RAID_ROSTER_UPDATE'
679partyToggle:RegisterEvent('PARTY_LEADER_CHANGED'
680partyToggle:RegisterEvent('PARTY_MEMBERS_CHANGED'
681partyToggle:SetScript('OnEvent', function(self) 
682    if InCombatLockdown() then 
683        self:RegisterEvent('PLAYER_REGEN_ENABLED'
684    else 
685        self:UnregisterEvent('PLAYER_REGEN_ENABLED'
686        if(GetNumRaidMembers() > 0 and showRaid == true) then 
687            party:Hide() 
688            for i,v in ipairs(raid) do v:Show() end 
689            for i,v in ipairs(partytarget) do v:Disable() end 
690        else 
691            party:Show() 
692            for i,v in ipairs(raid) do v:Hide() end 
693            for i,v in ipairs(partytarget) do v:Enable() end 
694        end 
695    end 
696end
697 
Download and save
Toggle line numbers
Thread:
[132676] Untitled by Anonymous at 2010-02-08 21:23:51
Tip: Click the line numbers to toggle highliting on that line.

Paste followup:

Language:
Author:
Subject:


    Tabstop:     bigger biggest
Note: You can prefix a line with "@@@" to highlight it.