|
2013-11-24 02:16
조회: 745
추천: 0
룬버튼 쿨타임 숫자 표시 코딩에 관한 질문입니다.간단한 자작 룬프레임 애드온 스크립트를 짜는 중입니다.
사용중인 컴퓨터 사양이 그리 좋지 않은 관계로, 최대한 이벤트의 호출을 줄이고, CPU부하를 줄이는 방향으로 가닥을 잡고 있습니다. (얼마전 프레임렉이 걸리는 원인이, 애드온의 램사용량보다 CPU사용량이라는 걸 알게 되고 나름 충격을 받았습니다.ㅎㅎ) 룬버튼은 색상별로 사각형으로 표시를 하고, 버튼의 변화는 전혀 없이, 단지 룬버튼이 비활성화 ㅤㄷㅚㅆ을때의 쿨타임을 표시하는 숫자만 넣을 예정입니다. 코딩의 다른 부분은 문제가 없는데, 별도로 제작된 6가지 룬버튼에 각각 쿨타임 숫자를 표시하는 부분에서, 방법을 찾지 못해 질문을 올려봅니다. 일단 문제가 되는 코드 부분은 아래와 같습니다. ---------------------------------------------------------------- function LBJ_Rune_Power_Update(self, runeIndex) --self:룬쿨타임 표시 프레임(fontstring), runeIndex:룬 번호 local start, duration, runeReady = GetRuneCooldown(runeIndex); local currenttime = GetTime(); if not runeReady then if start then self:Show(); local durationleft = max(start+duration-GetTime(),0); local durationleft_f = ""; if durationleft >= 10 then durationleft_f = "-"; -- 쿨이 10초 이상이면 -로 표시 else durationleft_f = string.sub(durationleft, 1,1); end self:SetText(durationleft_f); LBJ_Rune_Cooldown();-- (여기에 코드나 함수를 삽입 예정) end else self:Hide(); end end ---------------------------------------------------------------- LBJ_Rune_Power_Update 함수는 "RUNE_POWER_UPDATE" 이벤트가 발생했을때 호출됩니다. 호출된 순간 쿨타임 숫자가 표시되는 것까지는 완성했는데, 그것 뿐이네요. 쿨타임이 점점 줄어드는 숫자가 지속적으로 표시되어야 하는데, 그 방법을 모르겠습니다. 여러가지 쿨타임 애드온의 코딩을 살펴봐도 당최 모르겠고, OnUpdat 이벤트를 설정해서 사용하는 것 같기는 한데, 구체적으로 어떤 방식으로 사용하는지는 잘 모르겠습니다. 대체로 다른 쿨타임 애드온은, 특정한 프레임(Bar,Icon, Button 등등) 을 생성시키고, 쿨타임 변화에 따라 그것들을 변형시켜가면서, 그 프레임에서 OnUpadat를 사용하여 프레임모양이 바뀔때마다 쿨타임 숫자를 표시하는 방법인듯 합니다만, 제가 구상중인것과는 차이가 있어서, 차용하기가 대단히 힘들더군요.(제가 구상중인 룬버튼은 모양이 바뀌지 않고, 단지 숫자만 표시되도록 구상중입니다.) 차라리 와우 기본프레임에서 RuneButton에서 발생하는 OnUpdat 를 후킹해서 해볼까도 했는데, 안타깝게도 와우 기본 FrameXML에서 선언된 RuneFrame.xml, RuneFrame.lua 파일들을 살펴봐도 OnUpdet 는 사용을 하지 않더군요. 고수님들의 좋은 답변 부탁드립니다.
EXP
70,812
(76%)
/ 72,001
|
metacat