검색을 통해서
/run c="발차기"t="target"b=UnitCastingInfo(t) or UnitChannelInfo(t);a=UnitName(t)if a and GetSpellCooldown(c)==0 and UnitPower("player",19)>0 then s="<<"if b then s=s..b..">> 차단"else s=s.."차단 실패>>"end;SendChatMessage(s)end;
/시전 발차기
이렇게 매크로를 만들었습니다.
이건 정상적으로 작동하더군요..
성공시 "<<스킬명>> 차단"
실패시 "<<차단 실패>>"
여기서 한단계만 업그레이드 해서 타겟의 스킬명을 링크로 하면 더 예쁘겠다 싶어서 여러 방법을 시도해 봤는데 계속 안되네요..
처음엔 첫줄의 b의 정의를 아예 치환하는 방법을 써봤습니다.
b=GetSpellLink(UnitCastingInfo(t) or UnitChannelInfo(t))
이렇게 하니 차단을 성공하든 실패하든 "<<차단실패>>"라는 글이 출력됩니다..
그래서 구문을 자세히 보니 중간의 if 구문에도 b라는 조건이 들어가 있는 것을 발견해서..
첫줄은 원래대로 복구하고, 중간의 if b then s=s..b.. 이부분을 if b then s=s..GetSpellLink(b) 이렇게 바꿔봤는데,
실패시 문구는 정상적으로 출력이 되었지만, 성공시에는 아무 문자열도 출력이 되질 않았습니다.
구글링을 조금 더 하여 찾아간 해외 포럼에서 GetSpellLink(select(1,UnitCastingInfo("target")) 이런식으로 바꿔보라는 글을 발견했습니다. 그런데 매크로 255자를 초과하게 되어서.. 위의 if 구문을 if b then s=s..GetSpellLink(select(1,b)) 이렇게 바꿔봤는데 역시나 성공시 출력되는 문자열이 전혀 없었습니다.
애드온을 사용하지 않고는 적 타겟의 스킬명을 링크하는 차단 매크로는 불가능한 걸까요?