World of Warcraft/[WoW] Plater

와우 애드온 Plater 도트 30% 리필 스크립트 (3월 4일)

레임3D 2021. 3. 4.

Update 2021.03.04

위 이미지처럼 스킬이 흰색으로 반짝이다보니 스킬이 잘안보여서

반짝임을 제외하고 도트 테두리만 빛나도록 수정했습니다.


ElvUI는 도트 리필이 반짝임을 지원하지 않아 최근 Plater를 만져보고 있습니다.

엘브의 쉽고 편한 스타일필터를 사용하지 못해 너무 아쉽다보니

Plater로 완전히 갈아탈지는 고심중에 있습니다.

 

와우라는 게임의 도트는 총 지속시간 중 남은시간 30%에 리필해주면

기존시간+새로운 지속시간으로 계속 유지되는 개념이 있습니다.

 

예를들어 흑마법사의 고통 스킬은 18초 지속시간을 가지고 있는데

몹에게 고통을 걸고, 30%인 5.4초 남았을때 도트를 리필해주면

5.4초 + 18초 = 23.4초로 도트가 갱신됩니다.


기존에 wago.io에서 받았던 스크립트 중 하나는

스크립트마다 남은시간을 입력해야했기 때문에

총 지속시간이 다른 스킬들마다 스크립트를 만들어줘야 했습니다.

 

장점은 반짝임 컬러, 생명력바 색상을 변경하거나

남은 도트 시간에 따라 남은시간 폰트 색상을 바꿔줄 수 있습니다만

화려할수록 도트 리필에 집중하지 못할 것 같아서 사용하지 않기로 했습니다.

이제 여러개의 스크립트를 관리할 필요가 없을것 같습니다.

 

아래 문자열을 공유하니 필요하신분은 스크립트에 적용하시면 됩니다.

더불어 저는 스크립트 언어에 대해 전혀 모르는 까막눈이니 질문은 받지 않겠습니다! ㅎㅎ

하지만 문제점이 발견되면 댓글 남겨주세요. 혹시나 수정 가능하면 해볼게요.

 

추후 레임 통합애드온에는 사용하지 않는 스크립트까지 모두 포함될 예정이니 취향에 따라 사용하셔도 됩니다.

 

▼ 문자열 보기

더보기

9IXwRTTv4)lggXEeRi5BXjDTqw6nx6mLP8wPksw6y7dt6C0KoUPjJjAxZdBRdg7HcDW6OWG19WEOpv2VPf3)d77iDSSS9rs2nHHWrNlF3VRyOzCKHo1NHPKqyjZqNrTFmkieoWO)EQQQnm0TCCGD6pW1IHcm01m6RbWDQpYqp0oa7dy1eqUp)IwD2T5Eg9Bal70QRg8UjStTL2E7A0VLr)on1u7y0VnC)EAT7ch2raABo3bUPfzEXpF(h(X)jYSP6NaB(Z)(dV8CdDoknB3vBxd9wjIkSQ3zypQdQ(bNfy5YfYog6Jzm)W93zNae2luHHdz0GtvSPE70Sbi4ATm0hoHyZ15iZQHi3HBhzoHGz9CelUDGLhcwJip(iRbUOAr3lYu8KUA2LkdCXKV6i0tytcq7RJy64ZqccV)Ds2wT2cKarCGTWdinTxuAITNlZ061XKqualY0gu2iZXOa0s0ZqhS6TvbtsxU9uRvxWrO2fyqZlJ6UOsEab7zXj0(qyIF1ALzmUl2bv9YqTrU0tU1WHiB2kWKenYT33MsyhsDPbc1t5qk11HEcr5iShky7zWQ4mqXpGoede2AsG1Xm(1hZaH9yBo(1w0ZaXIr3BdnDWs5UWSoZqeJHjJcbAgG(6jyWzAAfzcbSUulhy9qqAbA6G5Gb7jNcKnbPmK0HMH8PehsyE3RM(2xp93ppYC6l(T)9DNdc10N)dtF(ZGfx8D)10x)0KZHDV)Px8EoCV9ztFZVaV)(xn9nVeE)RNFXF8tRs(uhZNZDG3IWxdc81JmhA5gIkaH7W9KzGNfmPiW5EU7JgYoIgZPyusV84BcEpUt5tvvAETYKsDFKGNQknkfArGeaDLtgJzOkLIXxy9KdC9hBfJKMI61Y6Sx19p3t5cvMImPdbFRpY1T3nHacgnYepIqdkY40lgah9eSI573iHLINhQ14rPM8T5mEsysaxi2Z3fXlQ45zTsvLvitZSKzf4(2SPVoYc8ZMc4hGFmKtwwWmgmoeklN6lGSmgrkWqTiWxpTOXHbi4DppRrO551vQa)rt8RcfAc6ADALARj55fIEaftazT6w2icWMTa6OY)T20y56L5h94sTTCHGhcOrNMKakkujf)IL8X0taSm3q8uSttvKLcjrLDkqp4L3VK6HW6j1EjL550oA1iL0RU7KbG)vk73EM3y7zQJefqovxHKP3WJep4(p4Uhml2uAPTDImBiI1KxA6QwsAuIKixkYjvOEDPoNcCxZNkyXOVSNZJmJhgqKiNCIyqar(VnLWBljkbKJOTH88QGdPzKYVT8QelvaoDOM0rB024zcxJbBe5YmrR7L6z)LiplmbMGH3AxEtb7XiBOvpVOpuypTTiCsizlGEdqXJdL0FmJgYrOAUDhF4CzqC2JQLxNJaeKktkTtwQOglMCfg0(yv2cqWmKzfmlemUSwmydsgKXAEUwmWWCtqp)Lv9S0edZfCJiZZqb0L05Q5mpgNZYM8QMGNZDr3ioNmhRrmpMd7NL3iy5sG52lHYJsYuYfWf9KzvQs5XcKqYmdZ)AJEH8Y0qOe)RYwtQw2xWWPyrDSkSp0ADz96JIRKSzMWfD(RNUwqfPpwrNaft85vg5dBkD6GSFatzk1HJTiJq9NrZdt(2TsJblsNfLTHH4wKSaBLvnuzzMVHSv(4is)cQlzo0vqS)6(v7))golkLjlyTxipCL8XOIRtB2IhP0PO2WqRxv()NmMHX)9d

[Constructor]

핵심은 "envTable._Duration*0.3" 이 문구를 넣어주면 대부분 스크립트에 적용 가능

function (self, unitId, unitFrame, envTable, scriptTable)
    
    --settings (require a /reload after editing any setting)
    do
        -- 반짝임 시간, 색상, 남은시간 부분 직접 수정 완료
        envTable.BlinkEnabled = false -- true로 바꾸면 흰색으로 반짝여서 잘 안보입니다
        envTable.GlowEnabled = true
        envTable.TimeLeftToBlink = envTable._Duration*0.3;
        envTable.BlinkSpeed = 0.2;
        envTable.BlinkColor = "white";
        envTable.BlinkMaxAlpha = 1.0; 
        
        --list of spellIDs to ignore
        envTable.IgnoredSpellID = {
            [12] = true, --use a simple comma here
            [13] = true,
        }
    end
    
    
    --private
    do
        --if not envTable.blinkTexture then
        envTable.blinkTexture = Plater:CreateImage (self, "", 1, 1, "overlay")
        envTable.blinkTexture:SetPoint ('center', 0, 0)
        envTable.blinkTexture:Hide()
        
        local onPlay = function()
            envTable.blinkTexture:Show() 
            envTable.blinkTexture.color = envTable.BlinkColor
        end
        local onStop = function()
            envTable.blinkTexture:Hide()  
        end
        envTable.blinkAnimation = Plater:CreateAnimationHub (envTable.blinkTexture, onPlay, onStop)
        Plater:CreateAnimation (envTable.blinkAnimation, "ALPHA", 1, envTable.BlinkSpeed / 2, 0, envTable.BlinkMaxAlpha)
        Plater:CreateAnimation (envTable.blinkAnimation, "ALPHA", 2, envTable.BlinkSpeed / 2, envTable.BlinkMaxAlpha, 0)
        --end
        
        envTable.glowEffect = envTable.glowEffect or self.overlay or Plater.CreateIconGlow (self)
        --envTable.glowEffect = envTable.glowEffect or Plater.CreateIconGlow (self)
        --envTable.glowEffect:Show() --envTable.glowEffect:Hide()
        
    end
    
end





[On Update]

function (self, unitId, unitFrame, envTable, scriptTable)
    
    local timeLeft = envTable._RemainingTime
    
    --check if the spellID isn't being ignored
    if (envTable.IgnoredSpellID [envTable._SpellID]) then
        return
    end
    
    --check the time left and start or stop the blink animation and also check if the time left is > zero
    if ((envTable.BlinkEnabled or envTable.GlowEnabled) and timeLeft > 0) then
        if (timeLeft < envTable._Duration*0.3) then
            --blink effect
            if (envTable.BlinkEnabled) then
                if (not envTable.blinkAnimation:IsPlaying()) then
                    envTable.blinkAnimation:Play()
                end
            end
            --glow effect
            if (envTable.GlowEnabled) then
                envTable.glowEffect:Show()
            end
            --nameplate color
            if (envTable.ChangeNameplateColor) then
                Plater.SetNameplateColor (unitFrame, envTable.NameplateColor)
            end
        else
            --blink effect
            if (envTable.blinkAnimation:IsPlaying()) then
                envTable.blinkAnimation:Stop()
            end
            --glow effect
            if (envTable.GlowEnabled and envTable.glowEffect:IsShown()) then
                envTable.glowEffect:Hide()
            end
        end
    end
    
end

💲 추천 글