|
2022-03-27 21:52
조회: 13,208
추천: 9
위크오라에 단축키 찾아서 표시하기 (api 추적기능 활용)안녕하세요~
어느 분께서 아래 그림과 같이 내 액션바에 등록된 단축키를 자동으로 찾아서 표시하게 할 수 있는가 여쭤보셔서.. 한번 내용을 정리해 봅니다. ![]() 사진 예시는 성기사의 스킬, '헌신적인 수호자' 예시입니다. 1번 액션바에 스킬이 있고, "F3"단축키를 등록해 놓으면.. 위크오라가 위와 같이 단축키 정보를 끌어왔어요. 일단 방법을 정리해드리기 전에 몇가지 고려해보면.. 1. 일단, 단축키는 잘 외워서 쓰면 됩니다. 이 위크오라가 꼭 필요할까.. 만들면서도 계속 의문이 들긴 하더군요ㅋㅋㅋ 2. 복잡하게 만들기 싫다거나, 아이템, 탈것 등 주문과 관련없는 내용의 단축키를 넣고 싶으실때는.. 과감하게 아래 그림과 같이 ![]() 수동으로 텍스트를 넣어주시면 됩니다. 물론.. 단축키가 바뀌면 매번 수정해 주어야 하지만.. 나름 좋은 방법이라 생각합니다. (복잡하게 루아 구문 들여다 볼 필요 없잖아요?ㅎ) 3. 그럼에도 불구하고.. 단축키를 자동으로 찾아야 될 경우가 있긴 있을듯 합니다. 저 같은 경우에도 주로 플레이하는 캐릭들은 통합 위크오라만 띄워놓고, 스킬 액션바는 아얘 없어버리곤 합니다. (액션바는 막상 없애버렸는데.. 머릿속이 꼬이면 가끔 단축키가 했갈릴 때가 있긴해요ㅋㅋ) 또, 유틸 기능의 위크오라를 제작하시고 버튼 설명을 준다거나, 애드온에 활용하는 용도도 가능하지 싶습니다. 3과 같은 경우에 활용하기 위해, API C_ActionBar.FindSpellActionButtons() 를 활용해서 사용자 설정 함수를 짜고, 자동으로 액션바의 단축키를 끌어와서 표시하는 내용을 정리해드리겠습니다. 루아 구문을 통해 사용자 설정 함수를 건드리지만.. 그냥 복사해서 붙여넣기만 하면 되니 천천히 아래 스텝을 따라와 주세요! STEP1. 활성 조건에 아래와 같이 넣고 싶은 '주문' 이름을 넣어주세요. ![]() 'Cooldown/Charges/Count' 여도 되고, '효과-플레이어-강화효과' 도 되고.. 아무튼 '주문'이 들어가면 됩니다. * 아이템, 탈것에는 작동하지 않습니다. STEP2. 디스플레이에 사용자 설정 문자 (%c) 만들기 ![]() STEP2-1. 먼저 문자 추가를 통해 별도의 디스 플레이 문자를 만들고 설정해 주세요. - 보통 문자 추가를 하면 %s 혹은 %p가 생성되는데, 이것을 %c로 바꿔주세요. 그러면, 위와 같이 사용자 설정 Lua 함수를 넣을 수 있는 별도의 창이 생성됩니다. - 글꼴, 표시 특성, 위치 등은 원하시는 대로 수정하시면 됩니다. (저는 아이콘 왼쪽 위에 표시하기 위해 위와같이 설정했습니다.) STEP2-1. 그리고, 사용자 설정 함수 창에 아래 Lua 구문을 그대로 복사해서 넣어주세요. function() local _, _, _, _, _, _, spellID = GetSpellInfo(aura_env.state.name) if spellID == nil then return end local slots, _ = C_ActionBar.FindSpellActionButtons(spellID) if slots == nil then return end local slot = slots[1] local s = aura_env.state s.slot = slot s.modi = 1+(slot-1)%12 if slot <= 24 or slot > 73 then s.bind = 'ACTIONBUTTON' .. s.modi -- 주1) 참고 elseif slot <= 36 then s.bind = 'MULTIACTIONBAR3BUTTON' .. s.modi elseif slot <= 48 then s.bind = 'MULTIACTIONBAR4BUTTON' .. s.modi elseif slot <= 60 then s.bind = 'MULTIACTIONBAR2BUTTON' .. s.modi elseif slot <= 72 then s.bind = 'MULTIACTIONBAR1BUTTON' .. s.modi end s.keyBind = GetBindingKey(s.bind) if s.keyBind == nil then return end s.keyBind = s.keyBind:gsub("-","") s.keyBind = s.keyBind:gsub("ALT","A") s.keyBind = s.keyBind:gsub("CTRL","C") s.keyBind = s.keyBind:gsub("SHIFT","S") s.keyBind = s.keyBind:gsub("DELETE","DEL") s.keyBind = s.keyBind:gsub("INSERT","INS") s.keyBind = s.keyBind:gsub("NUMPAD","N") s.keyBind = s.keyBind:gsub("MINUS","-") s.keyBind = s.keyBind:gsub("PLUS","+") return s.keyBind end 그리고, 위크오라 닫아주면 끝입니다. 했갈리실까봐 별도로 예시용 위크오라를 만들어 놨습니다. WAGO Link : https://wago.io/JvVEwYa90 예시 위크오라에는 주석으로 대략적인 구문의 의미를 적어놨습니다.사용시 주의할 점 1. '주문'에만 반응합니다. 아이템, 탈것은 고려하지 않았습니다. 2. 기본바, 첫번째, 두번째 우측바, 좌/우측 하단 바의 주문만 정확히 끌어옵니다. (총 60개) 기본바에 종속된 드루이드 숨김바 등은 기본바와 함께 작동합니다. (별도 구분 불가) ELV UI, Tabu Bar 등 추가적인 액션바를 제공하는 경우는 고려하지 않았습니다. 추가적인 액션바를 적용하기 시작하면.. Lua 구문이 너무 복잡해지기 시작할 것 같네요ㅎ (개인적으로 ELV를 전혀 사용하지 않기도 해서.. 앞으로도 수정 계획은 전혀 없습니다.) 3. 단축키가 여럿인 경우가 있습니다. (한개 아이콘에 여러개 or 여러개의 중복적인 아이콘) 블리자드에서 적용하는 첫번째 단축키를 액션바 순서에 우선해서 1개만 가져옵니다. * 액션바 순서는.. 기본바 > 첫번째 우측바 > 두번째 우측바 > 우측 하단바 > 좌측 하단바 4. 도미노, 바텐더 같은 애드온과 무관하게 잘 작동됩니다. (저도 도미노를 씁니다.) 다만, 액션바 slot 번호 순서는 블리자드가 정해놓은 순서를 그대로 적용했습니다. 이상입니다. 관련된 질문은 댓글이나 쪽지로 해주세요! --------------------
EXP
2,868
(17%)
/ 3,201
|




고무반지