WOW〃retail/매크로,LUA〃
[LUA] 글자에 무지개 이펙트 추가
토실스
2022. 4. 14. 20:00
반응형
많은 사람들이 문의해줬고 나또한 궁금해하고 있었다가 해결되어 공유한다.
동작 - 초기실행시 - 사용자 설정 에 넣기.
if not aura_env.region.HSV then
aura_env.region.HSV=CreateFrame("colorselect")
end
aura_env.rainbow=function(str)
local curt,hue,step,r,g,b
curt=GetTime()
hue=360*(curt-floor(curt))
step=360/#str
str=str:gsub("[%z\1-\127\194-\244][\128-\191]*",function(c)
aura_env.region.HSV:SetColorHSV(hue,1,1)
r,g,b=aura_env.region.HSV:GetColorRGB()
r,g,b=format("%.2x",r*255),format("%.2x",g*255),format("%.2x",b*255)
hue=(hue+step)>360 and (hue+step)-360 or hue+step
return "|cff"..r..g..b..c.."|r"
end)
return str
end
기존 askawa가 공유했던 rainbow 는 영어 이외는 적용불가였다.
utf-8 에 적용가능한 검색 code는
[%z\1-\127\194-\244][\128-\191]* 이다.
이후 디스플레이 - %c 로 설정, 매프레임으로 해놓고 아래 코드 입력.
살덩이창조 - 를 쓰고싶음 말로 설정.
function()
return aura_env.rainbow("살덩이창조")
end
활성조건에 매 프레임이 또 들어있으면, 프레임체크가 2배로 되서 nil오류가 날 것이다.
결과물 :
만약 속도를 줄이고 싶다면, hue와 step의 360을 작게 하면 된다.
글자수 상관없이 내가 원하는 속도 : 다 지우고 고정된 숫자로 조절.
프레임 먹는거 싫어. 그냥 무지개색만 표현할래
동작 - 초기실행시 - 사용자 설정 에 넣기.
if not aura_env.region.colFrame then
aura_env.region.colFrame = CreateFrame("Colorselect")
end
local col
aura_env.rainbow = function(str)
local hue = 0
str = str:gsub("[%z\1-\127\194-\244][\128-\191]*", function(char)
aura_env.region.colFrame:SetColorHSV(hue,1,1)
col = CreateColor(aura_env.region.colFrame:GetColorRGB())
hue = hue + 360 / #str
return col:WrapTextInColorCode(char)
end
)
return str
end
hue값을 증가함수 말고 고정으로 설정했다.
결과물 :
askawa 기존버전
if not aura_env.region.colFrame then
aura_env.region.colFrame = CreateFrame("Colorselect")
end
local colFrame = aura_env.region.colFrame
local col
local pos = 0
aura_env.rainbow = function(str)
local step = 360 / (#str-1)
local hue = pos
str = str:gsub("[%z\1-\127\194-\244][\128-\191]*", function(char)
colFrame:SetColorHSV(hue,1,1)
col = CreateColor(colFrame:GetColorRGB())
hue = (hue+step) > 360 and (hue+step)-360 or hue+step
return col:WrapTextInColorCode(char)
end
)
pos = (pos+1) > 360 and 0 or pos + 1
return str
end
step변수는 여기서 pos인데 360 아래에서 1씩 증가 (360/360)으로 느리게 설정했음.
맨위 거에서 step을 1로 설정한 것과 같다.
결과물 :
반응형