Hisop
2022-03-22 05:59
조회: 13,803
추천: 13
애드온, 위크오라 제작 가이드 - 기초 api*잠이 안오고 할일하기 싫어서 작성 시작
애드온, 위크오라 제작 가이드1 - API와 EVENT 당장 쉽게 만드는 방법은 가이드가 많기에 이 글은 위크오라에서 사용할 사용자 함수, 애드온 제작 및 수정에 쓰일 LUA코드를 주로 다룰겁니다. 위크오라와 애드온의 동작이 궁금하고, 직접 뜯어보고, 만들어 보고 싶은 분들이 보셨으면 합니다. 준비물 : Notepad++ - lua코드를 편하게 편집하기 위한 툴 정도로 보시면 됩니다. 메모장을 열어서 코드작성하셔도 전혀 문제되지 않습니다. https://wowpedia.fandom.com/wiki/World_of_Warcraft_API - 와우의 API들이 정리되어있는 페이지입니다. 코드를 작성하며 계속 참고하게 될거에요. https://wowwiki-archive.fandom.com/wiki/Events_A-Z_(full_list) - 와우의 이벤트들이 정리되어 있습니다. 특정 동작을 실행하는 트리거로 쓰입니다. - API의 역할 코드를 작성하기에 앞서 API가 무슨 역할을 하는지 알았으면 합니다. 우리가 만들고자 하는 애드온(위크오라)은 결국 게임 내의 데이터를 가공하여 보기 좋게 만드는겁니다. 일단 데이터를 받아올 수 있어야 무언가 가공할 수 있겠죠. 처리 과정 중 첫번째인 데이터 받아오기를 이 API가 도와줄겁니다. 이 API는 블리자드에서 이미 만들어 놓았어요. 우리는 필요한 데이터를 리턴시켜줄 API명을 찾아서 골라쓰기만 하면 됩니다. 혹시 게임 내 채팅창에서 /dump로 시작하는 명령어를 쳐보신 적 있으신가요? 없다면 지금 쳐보세요. /dump GetTime() --현재 시간을 리턴합니다. /dump UnitAura("player", 1) -- 플레이어의 첫번째 Aura를 리턴합니다. /dump AuraUtil.FindAuraByName("속박 풀린 변신수", "player") --플레이어의 버프 중 '속박 풀린 변신수'를 리턴합니다. 현재는 dump로 불러왔기에 채팅창에 위에서 불러온 리턴값들이 차례대로 출력되는걸 확인하실 수 있을겁니다. 실제로 애드온을 만들때는 우리가 선언한 변수에 필요한 리턴값을 넣고 가공하게 될겁니다. ex) 제가 작성한 애드온 중 일부입니다. 리턴값을 변수에 저장한 후 사용합니다. name7, image7, _, _, duration7, time7 = AuraUtil.FindAuraByName("속박 풀린 변신수", "player") if name7 == "속박 풀린 변신수" then ?? end (lua의 문법은 구글링 하시는것을 추천드립니다. 저도 주로 쓰는 언어가 아니기에 애매한 부분은 매번 구글링하여 작성합니다.) - Event의 역할 lua와 toc파일을 작성하고 명령어를 넣는다고 해서 특정 이벤트가 발생했을 때 해당 코드가 자동으로 뿅하고 실행되는 일은 없을거에요. 프로그램은 최초 로딩시에만 명령어들을 실행시킬거에요. 단순 인터페이스 변경이라면 최초 한번만 실행되어도 문제가 없겠죠? (매크로로 인터페이스 바꾸기 가이드 글 https://www.inven.co.kr/board/wow/17/36985) 이벤트는 일반적으로 우리가 작성한 코드를 실행하는 트리거로 쓰이게 될거에요. (플레이어가 특정 스킬을 사용했을 때 실행시키고 싶어요, 전투 로그를 감시하고 싶어요 등) local Partyupdate = CreateFrame("Frame") Partyupdate:RegisterEvent("GROUP_ROSTER_UPDATE") Partyupdate:SetScript("OnEvent", function(self,event,...) ??? end) 위 코드는 파티의 인원이 변경될때마다 ??를 실행시킬거에요. 이벤트는 보통 이런식으로 쓰입니다. 저는 이런 이벤트들을 주로 써요. "COMBAT_LOG_EVENT_UNFILTERED" --전투 기록이 발생할 때 "PLAYER_ENTERING_WORLD" -- 로딩 화면이 나타날 때 "GROUP_ROSTER_UPDATE" -- 파티 구성이 변경되었을 때 "UNIT_AURA" -- 버프나 디버프를 얻거나 잃을 때 "PLAYER_REGEN_DISABLED" -- 전투 시작 "PLAYER_REGEN_ENABLED" -- 전투 종료 이제 API로 받아온 데이터를 특정 상황에 꺼내서 사용할 수 있습니다.
EXP
143,964
(35%)
/ 160,001
Hisop
|
인벤 공식 앱
댓글 알람 기능 장착! 최신 게임뉴스를 한 눈에 보자