불성 클래식에서 광고를 한다.
광고 한지 얼마나 됬는지는 파티찾기 애드온에만 나온다.
어차피 매크로 클릭하긴 하는데, 얼마나 지났는지 알고싶다.
1. 언제 발동? 채널에 채팅 칠때
발동할 수 있는 조건이 있는지 확인하는건 매우 중요하며 첫 시작이다.
활성조건-다른이벤트-대화메시지 로는 설정이 힘들다. (본인이 특정채널에 썼을때만 발동해야됨)
그래서 찾은 이벤트
CHAT_MSG_CHANNEL
우리가 쓸거는 playerName, channelName 정도이다.
2. 발동되었을 때 이름, 채널이 일치하는지 검사
api를 죤나게 구글링한다.
function(event,msg,sender,_,chan,...)
if sender==UnitName("player").."-"..GetRealmName("player") and string.gsub(chan,"%d+. ","")=="파티찾기" then
UnitName은 이름을 반환한다.
이벤트에서 반환되는 playerName은 이름-서버 형식이기 때문에
GetRealName으로 서버까지 검사한다.
channelName 채널이름은 채널번호도 나오기 때문에 (5. 파티찾기)
숫자.공백 을 검색한 뒤 ""으로 변환한 것(순수 한글) 을 파티찾기와 비교하였다.
3. 현재 시간을 변수에 저장
aura_env.time =GetTime()
aura_env.time이라는 변수를 대충 지정해주었다.
aura_env.변수이름 은 local을 선언하지 않고 그냥 쓸수 있고, 한 위크오라 내에서 돌려먹을 수 있다.
이걸 활성조건에 묶었기 때문에, 채팅 칠때마다 시간이 저장된다.
4. 디스플레이에서 저장된 변수를 이용.
function()
local combatTime = GetTime() - aura_env.time
return string.format("%02d:%02d", combatTime/60, combatTime%60)
end
combatTime변수를 지정해서 진짜 흘러가는 시간에서 저장된 시간을 빼주면,
저장된 시간에서 몇초가 흘렀는지 알수있다.
%02d 는 해부해보면
%: 명령의 시작
0: 채워질 문자
2: 총 자리수
d: 10진수(정수)
2자리 10진수 정수의 형식 이라는 뜻.
combatTime을 60으로 나누면 분이,
combatTime을 60으로 나눈 나머지는 초가 된다.
(lua에서 %연산자는 나머지임)
대충 이렇게 완성.
ㅋ 컴전공도 아닌데 왤케 잘하지 싶다.
공유
'WOW〃Classic > 매크로,LUA〃' 카테고리의 다른 글
마흡토 위크오라 완성하다 (0) | 2021.08.07 |
---|---|
[위크오라] [던전] 경험치 평판 몹개체수 시간 (0) | 2021.08.03 |
불성 인던 설명충 위크오라 완성하다 (2) | 2021.07.30 |
[LUA] 마그 특임 만들기 (공대장용) (0) | 2021.07.05 |
[위크오라] 트리거를 다른 위크오라에서 관리 (4) | 2021.06.27 |