개인 자료란 (JE)

  서버 커뮤니티

Profile sdfdsr 대표칭호 없음

bl9ckSapphire 86355e6bbe4b483482de818ff64e62da

Profile

질문하기 스크립트

이중 gui 메뉴 스크립트를 쓰고싶은데..

2020.07.07 조회 수 1475 추천 수 0
이해도 1.15 
게임버전 (JE) 페이퍼 

9a922156bb5c3d01d48200a6e05de2ba.jpg

메뉴화면을 연 후 금 블럭을 클릭하면  "거주구역" 이라는 또 다른 메뉴화면이 열어지는 이중 메뉴화면을 열기 위해 위처럼 구문을

작성해 보았는데   

금 블럭을 클릭하면 그냥 메뉴화면이 닫히고 "거주구역" 이라는 메뉴화면이 열리지 않는데 어떻게 작성해야 하는지

알 수 있을까요?




6개의 댓글

스크립터브혼
2020.07.08

Tuske 애드온인것 같은데, 해당 애드온은 1.10버전까지만 지원합니다.
1.13부터 인벤토리 api가 많이 바뀌어서 호환이 안되는 것일 수 있습니다.
GUI 제작은 애드온 없어도 됩니다.


on load:
    # 메뉴GUI 아이템 세팅
    set {_slot::4} to block of gold named "&a거주구역 메뉴열기"
    set lore of {_slot::4} to "&7거주구역에 대한 메뉴화면입니다"
    loop {_slot::*}:
        set {gui::menu::slot::%loop-index%} to loop-value
    clear {_slot::*}


    # 구역GUI 아이템 세팅
    set {_slot::11} to ender eye named "&2거주지 만들기"
    set lore of {_slot::11} to "&7첫 거주지를 생성합니다"
    set {_slot::13} to oak door named "&2자신의 거주지로 이동"
    set lore of {_slot::13} to "&7자신의 소유자로 이동합니다"
    set {_slot::15} to ender eye named "&2거주지로 이동"
    set lore of {_slot::15} to "&7거주지로 이동합니다"
    loop {_slot::*}:
        set {gui::region::slot::%loop-index%} to loop-value
    clear {_slot::*}


on unload:
    #GUI 아이템 초기화
    delete {gui::*}


command /?:
    trigger:
        # 메뉴GUI 열기
        set {_inv} to chest inventory with 1 rows named "    &1&l메뉴화면"
        loop {gui::menu::slot::*}:
            set {_slot} to loop-index parsed as integer
            set slot {_slot} of {_inv} to loop-value
        open {_inv} to player


on inventory click:
    # 슬롯 판단
    clicked slot is {gui::menu::slot::4}
    cancel event
    
    # 구역GUI 열기
    set {_inv} to chest inventory with 3 rows named "    &2&l거주구역"
    loop {gui::region::slot::*}:
        set {_slot} to loop-index parsed as integer
        set slot {_slot} of {_inv} to loop-value
    open {_inv} to player


sdfdsr
2020.07.08
@스크립터브혼

금 블럭을 클릭하면 다음 메뉴가 열리지않고 오히려 아이템을 인벤토리에 가져올수 있게 되는데 추가로 에드온이 필요한건가요..?

스크립터브혼
2020.07.09
@sdfdsr

Paper 1.15.2 build 171, skript 2.5 alpha3 에서 테스트 된 구문입니다.
skript 2.5 alpha3이 1.15.x 버전의 마지막 스크립트입니다.

sdfdsr
2020.07.30
@스크립터브혼

이중메뉴.sk 

다음 gui 화면이 열렸습니다. 감사합니다!  그런데 두번째 gui 화면을 연 후에 나오는 아이템을클릭하여 명령어를 실행시키는 구문은 어떤식으로 작성해야 하나요? 이 구문은 처음이라 어떻게 작성해야할지 모르겠네요ㅠㅠ 

이 구문에서 스폰으로 가는 명령어를 실행시키는 구문만 예시로 알려주실수 있을까요?

스크립터브혼
2020.07.30
@sdfdsr
on inventory click:
    # 슬롯 판단
    clicked slot is {gui::region::slot::13}
    cancel event
    
    # 스폰이동 (명령어로 실행)
    execute command "/spawn" by player

    # 스폰이동 (스크립트로 실행)
    # teleport player to spawn

oak door named "&2자신의 거주지로 이동"을 클릭하면 이동됩니다.

sdfdsr
2020.07.30
@스크립터브혼

감사합니다 브혼님