개인 자료란 (JE)

  서버 커뮤니티

Profile mjwonbin06 대표칭호 없음
Profile

질문하기 스크립트

마인크래프트 커스텀gui 스크립트 오류

2022.07.19 조회 수 470 추천 수 0
이해도 입문자(아무것도 몰라요) 
게임버전 (JE) 1.12.2 
게임버전 (BE) 관련없음 

유월님의 커스텀 gui 스크립트를 쓰고 있는데 gui스크립트안에 아이템을 넣어놓으면 증발합니다 명령어도 없어지구요 해결방법이 뭔가요?

# 이 스크립트는 오류가 있을 수 있습니다.


# 1인 개발이다보니 실험에 한계가 있습니다.

# 2차 수정은 가능하나 2차 배포는 불가능합니다.

# 2차 배포를 원하시는 경우 저에게 먼저 " 허락 " 을 받아주세요.


options:

    c: &e[ &f유월&c블로그 &e]

    

variables:

    {gui.list} = 0

    

command /GUI [<text>] [<text>] [<integer>] [<text>]:

    permission: op.op

    trigger:

        if arg 1 is not set:

            message ""

            message "{@c} &f/GUI &e목록 &f- GUI &e목록&f을 &e확인&f합니다."

            message "{@c} &f/GUI &e열기 &c[&f이름&c] &f- &c[&f이름&c] &f(이)라는 GUI(을)를 &e오픈 &f합니다."

            message "{@c} &f/GUI &e생성 &c[&f이름&c] &c[&f줄 수&c] &f- &c[&f이름&c] &f(이)라는 GUI(을)를 &e생성 &f합니다."

            message "{@c} &f/GUI &e제거 &c[&f이름&c] &f- &c[&f이름&c] &f(이)라는 GUI(을)를 &e제거 &f합니다."

            message ""

            message "{@c} &f/GUI &e슬롯설정 &c[&f이름&c] &f- &c[&f이름&c] &f(이)라는 GUI의 &e슬롯&f을 &e설정 &f합니다."

            message "{@c} &f/GUI &e명령어설정 &c[&f이름&c] [&f슬롯&c] [&c&f명령어&c] &f- &c[&f이름&c] &f(이)라는 GUI 각 슬롯에 &e명령어&f를 &e설정 &f합니다."

            message "{@c} &f/GUI &e명령어초기화 &c[&f이름&c] &f- &c[&f이름&c] &f(이)라는 GUI의 &e명령어&f를 &e초기화 &f합니다."

            message ""

            stop

            

        if arg 1 is "목록":

            message ""

            if {gui.list} is 0:

                message "{@c} &f생성된 &eGUI&f(이)가 없습니다."

                

            else:

                loop {gui.list} times:

                    add 1 to {_숫자}

                    message "{@c} &a[ &f%{_숫자}% &a] &c%{gui::%{_숫자}%}%"

                

            if {gui.list} is not set:

                message "{@c} &f생성된 &eGUI&f(이)가 없습니다."

                

            else:

                loop {gui.list} times:

                    add 1 to {_숫자}

                    message "{@c} &a[ &f%{_숫자}% &a] &c%{gui::%{_숫자}%}%"

            message ""

            

        if arg 1 is "열기":

            if arg 2 is set:

                if "%{gui::*}%" contains "%arg-2%":

                    open chest with {guiline.%arg 2%} row named "&e[ &fGUI &e] &c%arg 2%" to player

                    wait 1 tick

                    loop {guiline.%arg-2%}*9 times:

                        add 1 to {_슬롯}

                        set slot {_슬롯}-1 of current inventory of player to {guislot.%arg-2%::%{_슬롯}%}

                        

            else:

                message ""

                message "{@c} &f/GUI &e열기 &c[&f이름&c] &f- &c[&f이름&c] &f(이)라는 GUI(을)를 &e오픈 &f합니다."

                message ""

                stop

                

        

        if arg 1 is "생성":

            if arg 2 is set:

                if arg 3 is set:

                    if "%{gui::*}%" contains "%arg-2%":

                        message ""

                        message "{@c} &f당신이 이미 &c%arg-2% &f(이)라는 GUI(을)를 &e생성 &f했습니다."

                        message ""

                        stop

                        

                    else:

                        add 1 to {gui.list}

                        add "%arg-2%" to {gui::*}

                        add arg-3 to {guiline.%arg-2%}

                        message ""

                        message "{@c} &f당신은 &c%arg-2% &f(이)라는 이름의 GUI(을)를 &e생성 &f하였습니다."

                        message ""

                        stop

                        

                else:

                    message ""

                    message "{@c} &f/GUI &e생성 &c[&f이름&c] &c[&f줄 수&c] &f- &c[&f이름&c] &f(이)라는 GUI(을)를 &e생성 &f합니다."

                    message ""

                    stop

                    

            else:

                message ""

                message "{@c} &f/GUI &e생성 &c[&f이름&c] &c[&f줄 수&c] &f- &c[&f이름&c] &f(이)라는 GUI(을)를 &e생성 &f합니다."

                message ""

                stop

                        

        if arg 1 is "제거":

            if arg 2 is set:

                if "%{gui::*}%" contains "%arg-2%":

                    remove "%arg-2%" from {gui::*}

                    set {gui::*} to {gui::*}

                    delete {guiline.%arg-2%}

                    delete {guislot.%arg-2%::*}

                    delete {guicommand.%arg-2%::*}

                    remove 1 from {gui.list}

                    message ""

                    message "{@c} &f당신은 &c%arg-2% &f(이)라는 이름의 GUI(을)를 &e제거 &f하였습니다."

                    message ""

                    stop

                    

                else:

                    message ""

                    message "{@c} &f생성되지 않거나 이미 &e제거&f된 &eGUI&f입니다."

                    message ""

                    stop

                    

            else:

                message ""

                message "{@c} &f/GUI &e제거 &c[&f이름&c] &f- &c[&f이름&c] &f(이)라는 GUI(을)를 &e제거 &f합니다."

                message ""

                stop

                    

        if arg 1 is "슬롯설정":

            if arg 2 is set:

                if "%{gui::*}%" contains "%arg-2%":

                    wait 1 tick

                    open chest with {guiline.%arg 2%} row named "&e[ &fGUI설정 &e] &c%arg 2%" to player

                    wait 1 tick

                    loop {guiline.%arg-2%}*9 times:

                        add 1 to {_슬롯}

                        set slot {_슬롯}-1 of current inventory of player to {guislot.%arg-2%::%{_슬롯}%}

                    

                else:

                    message ""

                    message "{@c} &f생성되지 않은 &eGUI&f입니다."

                    message ""

                    stop

                    

            else:

                message ""

                message "{@c} &f/GUI &e슬롯설정 &c[&f이름&c] &f- &c[&f이름&c] &f(이)라는 GUI의 &e슬롯&f을 &e설정 &f합니다."

                message ""

                stop

                            

        if arg 1 is "명령어설정":

            if arg 2 is set:

                if arg 3 is set:

                    if arg 4 is set:

                        if "%{gui::*}%" contains "%arg-2%":

                            set {guicommand.%arg-2%::%arg-3%} to arg-4

                            message ""

                            message "{@c} &c%arg-2% &f(이)라는 GUI의 &e%arg-3%&f번 슬롯&f을 &c[ &f/%{guicommand.%arg 2%::%arg 3%}% &c] &f(으)로 &e설정 &f하였습니다."

                            message ""

                            stop

                            

                        else:

                            message ""

                            message "{@c} &f생성되지 않은 &eGUI&f입니다."

                            message ""

                            stop

                            

                    else:

                        message ""

                        message "{@c} &f/GUI &e명령어설정 &c[&f이름&c] [&f슬롯&c] [&c&f명령어&c] &f- &c[&f이름&c] &f(이)라는 GUI 각 슬롯에 &e명령어&f를 &e설정 &f합니다."

                        message ""

                        stop

                else:

                    message ""

                    message "{@c} &f/GUI &e명령어설정 &c[&f이름&c] [&f슬롯&c] [&c&f명령어&c] &f- &c[&f이름&c] &f(이)라는 GUI 각 슬롯에 &e명령어&f를 &e설정 &f합니다."

                    message ""

                    stop

                    

            else:

                message ""

                message "{@c} &f/GUI &e명령어설정 &c[&f이름&c] [&f슬롯&c] [&c&f명령어&c] &f- &c[&f이름&c] &f(이)라는 GUI 각 슬롯에 &e명령어&f를 &e설정 &f합니다."

                message ""

                stop

                                

        if arg 1 is "명령어초기화":

            if arg 2 is set:

                if "%{gui::*}%" contains "%arg-2%":

                    delete {guicommand.%arg 2%::*}

                    message ""

                    message "{@c} &f당신은 성공적으로 &c%arg-2%&f의 &e명령어&f를 &e초기화 &f하였습니다."

                    message ""

                    stop

                    

                else:

                    message ""

                    message "{@c} &f생성되지 않은 &eGUI&f입니다."

                    message ""

                    stop

                    

            else:

                message ""

                message "{@c} &f/GUI &e명령어초기화 &c[&f이름&c] &f- &c[&f이름&c] &f(이)라는 GUI의 &e명령어&f를 &e초기화 &f합니다."

                message ""

                stop

                            

                    

on inventory click:

    if inventory name of current inventory of player contains "&e[ &fGUI &e]":

        cancel event

        set {_인벤토리} to inventory name of player's current inventory

        replace all "[" and "GUI" and "]" and " " with "" in {_인벤토리}

        set {_인벤토리} to uncolored {_인벤토리} parsed as text

        if {guicommand.%{_인벤토리}%::%clicked slot+1%} is not set:

            exit

        set {_command} to {guicommand.%{_인벤토리}%::%clicked slot+1%}

        run player cmd "/%{_command}%" as op

                        

on inventory close:

    if uncolored inventory name of event-inventory contains "GUI설정":

        set {_인벤토리} to inventory name of player's current inventory

        replace all "[" and "GUI설정" and "]" and " " with "" in {_인벤토리}

        set {_인벤토리} to uncolored {_인벤토리} parsed as text

        clear {guislot.%{_인벤토리}%::*}

        message ""

        message "{@c} &f성공적으로 &eGUI&f(을)를 &c설정&f하셨습니다."

        message ""

        loop {guiline.%{_인벤토리}%}*9 times:

            set {guislot.%{_인벤토리}%::%loop-num%} to slot loop-num -1 of current inventory of player

        execute console command "/fly %player% off"

        execute console command "/플라이"

            

        

            

command /변수초기화:

    permission: op.op

    trigger:

        delete {gui.list}

        delete {gui::*}

        delete {guicommand.유월::*}

        delete {guislot.유월::*}

        delete {guiline.유월::*}

            밑에는 오류 구문입니다.

Can't understand this condition: 'inventory name of current inventory of player contains "&e[ &fGUI &e]"' (커스텀.sk, line 199: if inventory name of current inventory of player contains "&e[ &fGUI &e]":')

[19:18:59] [Server thread/ERROR]: [Skript] event-inventory is neither an item stack, an item type nor an entity type (커스텀.sk, line 210: if uncolored inventory name of event-inventory contains "GUI설정":')

[20:28:29] [Server thread/ERROR]: [Skript] Parsing as text is useless as only things that are already text may be parsed (커스텀.sk, line 203: set {_인벤토리} to uncolored {_인벤토리} parsed as text')

[20:28:29] [Server thread/ERROR]: [Skript] the clicked slot is not a number (커스텀.sk, line 204: if {guicommand.%{_인벤토리}%::%clicked slot+1%} is not set:')

[20:28:29] [Server thread/ERROR]: [Skript] the clicked slot is not a number (커스텀.sk, line 206: set {_command} to {guicommand.%{_인벤토리}%::%clicked slot+1%}')

[20:28:29] [Server thread/ERROR]: [Skript] Parsing as text is useless as only things that are already text may be parsed (커스텀.sk, line 213: set {_인벤토리} to uncolored {_인벤토리} parsed as text')




5개의 댓글

qsef1256
2022.07.19

display name of event-inventory

display name of current inventory

mjwonbin06
2022.07.19
@qsef1256

이런게 처음이라서 죄송하지만 무슨말인지 못알아 듣겠어요. 이런게 처음이라서

qsef1256
2022.07.19
@mjwonbin06

답만 알려드리자면

inventory name of event-inventory -> display name of event-inventory

Parsing as text -> parsed as text 때기

clicked slot -> 애드온 기능 삭제 되었으므로 대신 index of clicked slot 쓰기


테스트 안 해봤습니다, 작동 안 하면 다시 달아주세요

qsef1256
2022.07.19
@mjwonbin06

커스텀, 구버전 스크립트를 쓴다는 건 어느 정도 리스크도 진단 소리입니다. 코딩 실력이 없으면 스크립트를 갖다 쓸게 아니라 검증된, 업데이트 되고 있는 플러그인을 가져다 쓰는 게 맞습니다.

qsef1256
2022.07.19
@mjwonbin06

스크립트가 쉽다고 접근하는데, 쉽지 않아요. 프로그래머들 입장에서나 좀 쉽고 간편한거지 일반인 입장에서 쉬운 게 아닙니다