Lua
-- StatusColour --

local ORG_UnitFrameHealthBar_Update = UnitFrameHealthBar_Update
function UnitFrameHealthBar_Update(statusbar, unit)
    ORG_UnitFrameHealthBar_Update(statusbar, unit)
    if unit == statusbar.unit and UnitIsPlayer(unit) and UnitIsConnected(unit) and UnitClass(unit) then
        local _, class = UnitClass(unit)
        local color = RAID_CLASS_COLORS[class]
        statusbar:SetStatusBarColor(color.r, color.g, color.b, 1)
    end
end

-- Sonic_BarTexture --
SBT_Frame = {
    "PlayerFrameHealthBar",
    "PlayerFrameManaBar",
    "TargetFrameHealthBar",
    "TargetFrameManaBar",
    "PetFrameHealthBar",
    "PetFrameManaBar",
    "PartyMemberFrame1HealthBar",
    "PartyMemberFrame1ManaBar",
    "PartyMemberFrame2HealthBar",
    "PartyMemberFrame2ManaBar",
    "PartyMemberFrame3HealthBar",
    "PartyMemberFrame3ManaBar",
    "PartyMemberFrame4HealthBar",
    "PartyMemberFrame4ManaBar",
    "PartyMemberFrame1PetFrameHealthBar",
    "PartyMemberFrame2PetFrameHealthBar",
    "PartyMemberFrame3PetFrameHealthBar",
    "PartyMemberFrame4PetFrameHealthBar",
};

function SBT_SetTexture()
    local tempBar;
    local k,v;
    for k,v in pairs(SBT_Frame) do
        tempBar = getglobal(v);
        if (tempBar) then
            tempBar:SetStatusBarTexture("Interface\\AddOns\\IUnitBars\\StatusBar")
        end;
    end;
end

local azmeoFrame = CreateFrame("frame")
azmeoFrame:RegisterEvent("VARIABLES_LOADED")
azmeoFrame:SetScript("OnEvent", function() SBT_SetTexture() end)

-- V键美化 --
local addon = CreateFrame("Frame", nil, UIParent)
local tex = "Interface\\AddOns\\IUnitBars\\Cilo"
local time = 0

local function IsNamePlateFrame(frame)
    if frame:GetName() then
        return false
    end

    local overlayRegion = frame:GetRegions()
    if not overlayRegion or overlayRegion:GetObjectType() ~= "Texture" or overlayRegion:GetTexture() ~= "Interface\\Tooltips\\Nameplate-Border" then
        return false
    end
    return true
end

local frame
function addon:onUpdate(elapsed)
    time = time + elapsed

    if time > 1 then
        time = 0
        for i = 1, select("#", WorldFrame:GetChildren()) do
            frame = select(i, WorldFrame:GetChildren())

            if not frame.background and IsNamePlateFrame(frame) then
                addon:setupNamePlate(frame)
            end
        end  
    end
end

local healthBar, castBar
local overlayRegion, highlightRegion, nameTextRegion, bossIconRegion, levelTextRegion, raidIconRegion
function addon:setupNamePlate(frame)
    healthBar, castBar = frame:GetChildren()
    overlayRegion, _, _, highlightRegion, nameTextRegion, levelTextRegion, bossIconRegion, raidIconRegion = frame:GetRegions()

    overlayRegion:Hide()
    bossIconRegion:Hide()
    highlightRegion:Hide()
    highlightRegion.Show = function() end

    nameTextRegion:ClearAllPoints()
    nameTextRegion:SetPoint("LEFT", healthBar, "LEFT", 2, 11)
    nameTextRegion:SetFont(NAMEPLATE_FONT, 9)

    levelTextRegion:ClearAllPoints()
    levelTextRegion:SetPoint("RIGHT", healthBar, "RIGHT", 11, 0)
    levelTextRegion:SetFont(NAMEPLATE_FONT, 9)

    healthBar:SetStatusBarTexture(tex)
    healthBar:SetHeight(12)

    background = healthBar:CreateTexture(nil, "BORDER")
    background:SetPoint("TOP", healthBar, 0, 1)
    background:SetPoint("BOTTOM", healthBar, 0, -1)
    background:SetPoint("LEFT", healthBar, -1, 0)
    background:SetPoint("RIGHT", healthBar, 1, 0)
    background:SetTexture(tex)
    background:SetVertexColor(.1, .1, .1, .6)
 
    frame.background = background
end

addon:SetScript("OnUpdate", addon.onUpdate)

-- Target --
TargetFrameHealthBarText:SetPoint("CENTER", TargetFrame, "CENTER", -5, 37)
TargetFrameManaBarText:SetFontObject(NumberFontNormal)

-- TargetofTargetFrame --
TargetofTargetFrame:CreateFontString("TargetofTargetHPPct", "ARTWORK", "NumberFontNormal")
TargetofTargetHPPct:SetPoint("BOTTOMLEFT", TargetofTargetHealthBar, "TOPRIGHT", -50, -42)
    if (UnitIsUnit("player", "targettarget") and UnitCanAttack("target", "player")) or (UnitIsUnit("player", "targettargettarget") and UnitCanAttack("targettarget", "player")) then
        PlaySoundFile("Sound\\Doodad\\BellTollNightElf.wav");
    end
TargetofTargetHealthBar:SetScript("OnValueChanged", function()
    HealthBar_OnValueChanged(arg1, true)
    TargetofTargetHealthCheck()
    local _, valueMax = this:GetMinMaxValues()
    local valuePct = math.floor(100* this:GetValue() / valueMax)
    if valuePct > 0 and valuePct < 100 then
        TargetofTargetHPPct:SetText(valuePct.."%")
    else
        TargetofTargetHPPct:SetText("")
    end
    TargetofTargetHPPct:SetTextColor(this:GetStatusBarColor())
end)

-- Party De Buff --
for i = 1, 4 do
    local str = "PartyMemberFrame"..i
    -- buff
    for j = 1, 16 do
        buff = CreateFrame("Button", str.."Buff"..j, getglobal(str), "TargetBuffButtonTemplate")
        buff:SetID(j)
        buff:SetWidth(15)
        buff:SetHeight(15)
        buff:SetScript("OnEnter",function()
            GameTooltip:SetOwner(this, "ANCHOR_BOTTOMRIGHT", 15, -25)
            GameTooltip:SetUnitBuff("party"..this:GetParent():GetID(), this:GetID())
        end)
        
        buff:SetScript("OnUpdate",function()
            

        end)

        buff:SetScript("OnLeave",function()
            GameTooltip:Hide()
        end)


        if j == 1 then
            buff:SetPoint("TOPLEFT", str, "TOPLEFT", 47, -32)
        else
            buff:SetPoint("LEFT", str.."Buff"..j-1, "RIGHT", 2, 0)
        end
    end
    -- debuff
    local debuffbutton1 = getglobal(str.."Debuff1")
    debuffbutton1:ClearAllPoints()
    debuffbutton1:SetPoint("TOPLEFT", str, "RIGHT", -2, 13)
    for j = 5, 10 do
        buff = CreateFrame("Button", str.."Debuff"..j, getglobal(str), "PartyBuffButtonTemplate")
        buff:SetPoint("LEFT", str.."Debuff"..j-1, "RIGHT", 2, 0)
    end
end


-- Pet Buffs/Debuffs --
local buff
for i = 1, 10 do
    buff = CreateFrame("Button", "PetFrameBuff"..i, PetFrame, "TargetBuffButtonTemplate")
    buff:SetID(i)
    buff:SetWidth(15)
    buff:SetHeight(15)    
    buff:SetScript("OnEnter",function()
        GameTooltip:SetOwner(this, "ANCHOR_RIGHT")
        GameTooltip:SetUnitBuff("pet", this:GetID())
    end)

    buff:SetScript("OnUpdate",function()
        

    end)

    buff:SetScript("OnLeave",function()
        GameTooltip:Hide()
    end)

    if i == 1 then
        buff:SetPoint("TOPLEFT", PetFrame, "TOPLEFT", 48, -42)
    else
        buff:SetPoint("LEFT", "PetFrameBuff"..i-1, "RIGHT", 2, 0)
    end
    buff = CreateFrame("Button", "PetFrameDebuff"..i, PetFrame, "PartyPetBuffButtonTemplate")
end


function PartyMemberBuffTooltip_Update(isPet)
end

local ORG_RefreshBuffs = RefreshBuffs
function RefreshBuffs(button, showBuffs, unit)
    local tmp = MAX_PARTY_DEBUFFS
    if string.find(unit, "party") and string.len(unit) == 6 then
        MAX_PARTY_DEBUFFS = 10
        for i = 1, 16 do
            _, _, buff = UnitBuff(unit, i)
            if buff then
                getglobal(button:GetName().."Buff"..i.."Icon"):SetTexture(buff)
                getglobal(button:GetName().."Buff"..i):Show()
            else
                getglobal(button:GetName().."Buff"..i):Hide()
            end
        end
    elseif unit == "pet" then
        return PetFrame_RefreshBuffs()
    end
    ORG_RefreshBuffs(button, showBuffs, unit)
    MAX_PARTY_DEBUFFS = tmp
end

function PetFrame_RefreshBuffs()
    for i = 1, 10 do
        _, _, buff = UnitBuff("pet", i)
        if buff then
            getglobal("PetFrameBuff"..i.."Icon"):SetTexture(buff)
            getglobal("PetFrameBuff"..i):Show()
        else
            getglobal("PetFrameBuff"..i):Hide()
        end
    end
    for i = 1, 10 do
        getglobal("PetFrameDebuff"..i):ClearAllPoints()
        getglobal("PetFrameDebuff"..i):SetPoint("TOP", "PetFrameBuff"..i, "BOTTOM", 0, -2)
        _, _, buff = UnitDebuff("pet", i)
        if buff then
            getglobal("PetFrameDebuff"..i.."Icon"):SetTexture(buff)
            getglobal("PetFrameDebuff"..i):Show()
        else
            getglobal("PetFrameDebuff"..i):Hide()
        end
    end
end

by 세월낚시 | 2008/07/22 16:17 | 트랙백 | 덧글(0)
전뇌코일【電腦コイル】
간만에 괜찮은 애니메이션을 건진듯 하다.
적절한 반전과 음모론 거기에 스릴러까지
탄탄한 스토리....
일본 NHK에서 어린이 만화로 방영하던건데
후반부로 갈수록 대사도 난해지지고
아무튼 2007년 최고의 애니이다.
하지만 아쉽게도 국내랑 일본에서 그다지 인기를
얻지 못했다. 그림체가 어린이 스럽다는게 이유.
거유에 10등신 꽃미남이 나와야 인기를 끄는 시대가 되버리다니
by 세월낚시 | 2007/12/28 19:37 | animation | 트랙백 | 덧글(2)


< 이전페이지 다음페이지 >