본문

월드 오브 워크래프트: 격전의 아제로스

평점 :
10 더보기 +

최근방문 게시판

[매크로] KGPANEL로 전문기술팝업 판넬 작업중....오류해결요청 [2]





[광고]

제가 kgpanel로 접속시 자동으로 전문기술을 표시하고 클릭시 창이 뜨도록 만들고 있습니다.

거의 90% 완성된 상태인데, 마지막으로 해결되지 않는 문제가 있어 여기에 질문 드립니다.



위와 같이 작동되는데 두가지 해결되지 않는 문제점이 있습니다.
현재 사용하는 코드는 
1. on Load
<1번 전문기술> --- 2번전문기술은 prof2로 사용
self:RegisterEvent("PLAYER_ENTERING_WORLD")
self:RegisterEvent("SKILL_LINES_CHANGED")
self:RegisterEvent("TRADE_SKILL_UPDATE")
self:RegisterEvent("CRAFT_UPDATE")
local prof1, prof2 = GetProfessions("player")
local name = GetProfessionInfo(prof1)

if name == "전문기술이름" then self:Show() else self:Hide() end;

2. on Click
if pressed then CastSpellByName("전문기술이름") end

<문제점1>
우선 위 동영상에서도 볼 수 있듯이, 전문기술을 바꾸면 바로 적용되지 않고 꼭 reload하거나 재접해야만 전문기술변화가 반영됩니다. 이걸 어떻게 해결해야할지 모르겠습니다.

<문제점2>
전문기술 두개를 다 배웠을때는 오류가 나지 않지만, 전문기술을 하나만 배우거나 둘다 배우지 않았으면 오류가 발생합니다.
제가 GetProfessionInfo()를 사용해서 오류가 나는 것으로 확인되었는데, 만약 전문기술을 하나만 배웠거나 둘다 안배웠다면 값을 어떻게 줘야 오류가 발생하지 않는지 알고 싶습니다.

1x [string "전문기술2-주각2-1_on__load"]:6: Usage: GetProfessionInfo(index)
[C]: in function `GetProfessionInfo'
[string "전문기술2-주각2-1_on__load"]:6: in function `y'
kgPanelskgPanels-r448.lua:1124: in function `Setupsc__ript'
kgPanelskgPanels-r448.lua:816: in function `Initsc__ripts'
kgPanelskgPanels-r448.lua:802: in function `PlaceFrame'
kgPanelskgPanels-r448.lua:709: in function `ApplyLayout'
kgPanelskgPanels-r448.lua:507: in function <kgPanelskgPanels.lua:503>
(tail call): ?
[C]: ?
[string "safecall Dispatcher[1]"]:9: in function <[string "safecall Dispatcher[1]"]:5>
(tail call): ?
...aceMasqueLibsAceAddon-3.0AceAddon-3.0-12.lua:558: in function `EnableAddon'
...aceMasqueLibsAceAddon-3.0AceAddon-3.0-12.lua:651: in function <...aceMasqueLibsAceAddon-3.0AceAddon-3.0.lua:636>
[C]: in function `LoadAddOn'
FrameXMLUIParent.lua:429: in function `UIParentLoadAddOn'
FrameXMLUIParent.lua:456: in function `CombatLog_LoadUI'
FrameXMLUIParent.lua:1116: in function <FrameXMLUIParent.lua:1011>

Locals:
nil
위에 코드가 오류내용입니다.

GetProfessionInfo()를 어떻게 무효화 시키는지 궁금합니다. 아님 다르게 우회하는 방법이라도 알고 싶습니다.
감사합니다.


댓글 | 2
1


(765442)

121.130.***.***

1) on__load는 이름 그대로 프레임 최초 로드 시 한번만 호출되기 때문에, 전문 기술 변경시 그 EVENT를 검출하여 작동하는 OnEvent 핸들러를 추가로 작성하셔야 할듯 합니다. 2) GetProfessionInfo에 prof1 ,prof2를 넣기 전에 각각의 nil 검사를 해주면 될듯 합니다 if prof1 then local name = GetProfessionInfo(prof1) .... end
18.07.10 00:59
(5041586)

182.221.***.***

Alkaid_sp
감사합니다 ^^ 이걸로 며칠을 혼자 머리싸메다 못했는데....한방에 해결했습니다. 다시한번 정말 감사합니다. | 18.07.10 13:23 | | |


1


댓글은 로그인 후 이용 가능합니다.




글쓰기
공지
스킨
ID 구분 제목 글쓴이 추천 조회 날짜
10 전체공지 디스코드, 오픈채팅 홍보글 금지 8[RULIWEB] 2018.07.18
11 전체공지 [WOW] 격전의 아제로스 8[RULIWEB] 2018.07.18
89 전체공지 [LOL] 2018 롤챔스 코리아 8[RULIWEB] 2018.07.11
11 전체공지 [히오스] HGC 페이즈 2 8[RULIWEB] 2018.07.04
9334383 공략/팁 '루리웹 넘어온 분들을 위한 가이드' ver 0.6 (99) 나돌 122 33382 2018.06.04
9333043 애드온 트위치로 에드온 업데이트 및 다운을 알아보자 (39) 에티리얼 49 14538 2018.06.02
9340281 매크로 Alkaid_sp 3 249 2018.07.19
9340228 매크로 야난 후작 0 127 2018.07.19
9340227 매크로 은단은맛있어 0 179 2018.07.19
9339540 매크로 야난 후작 0 187 2018.07.14
9339271 매크로 오쓰 0 566 2018.07.11
9339232 매크로 Griiy 0 298 2018.07.11
9339091 매크로 핏빛날개 0 196 2018.07.09
9338446 매크로 쪼개기작렬 0 192 2018.07.02
9338425 매크로 野獸 0 218 2018.07.02
9337877 매크로 대전인간 0 305 2018.06.25
9337345 매크로 겜정보ㄱㄱ 0 357 2018.06.19
9336607 매크로 닥공님 0 401 2018.06.12
9336398 매크로 야난 후작 0 660 2018.06.11
9336227 매크로 지구인697호 3 579 2018.06.10
9336120 매크로 겜정보ㄱㄱ 0 439 2018.06.09
9336077 매크로 야난 후작 0 299 2018.06.09
9336056 매크로 화석인 0 340 2018.06.09
9335485 매크로 오디디 2 1343 2018.06.06
9335139 매크로 성빛 4 1102 2018.06.05
9335071 매크로 핏빛날개 4 1230 2018.06.05
9334869 매크로 루리웹-0422434852 0 551 2018.06.05
9334731 매크로 라시르 5 638 2018.06.05
9333748 매크로 흑잔폭사 8 1673 2018.06.03
9333534 매크로 율군 2 738 2018.06.03
9333497 매크로 양파링과새우깡 3 564 2018.06.03
9333356 매크로 바실리크스 1 840 2018.06.03

글쓰기 26개의 글이 있습니다.


1

X