개인 자료란 (JE)

  서버 커뮤니티

Profile sswind 대표칭호 없음
Profile

질문하기 스크립트

명령어가 작동이 안될때가 있어요 ㅠㅠ

2022.08.31 조회 수 91 추천 수 0
이해도 중급자(필요한 애드온을 찾아서 만들 수 있어요) 
게임버전 (JE) 1.12.2 
게임버전 (BE) 1.12.x 

현재 표지판 명령어 또는 엔피씨를 클릭씨 1회성으로 지급되는 코드를 짜고 있는데 작동이 될때가 있고 안될때가 있네요 ㅠㅠ 해결방법 아시는 분 계신가요?

variables:

    {상자표지판.%player%} = 1

    {그림표지판.%player%} = 1


command /상자방표지판:

    trigger:

        if {상자표지판.%player%} is 1:

            give 1 Sign named "&c상자잠금용표지판 &f(1회용)" to player

            set {상자표지판.%player%} to 0

        else:

            message "이미 표지판을 받았습니다"

            

command /그림방표지판:

    trigger:

        if {그림표지판.%player%} is 1:

            give 1 Sign named "&c문잠금용표지판 &f(1회용)" to player

            set {그림표지판.%player%} to 0

        else:

            message "이미 표지판을 받았습니다"

            

on drop:

    item is Sign:

        cancel event

                

on rightclick:

    if name of player's tool is "&c문잠금용표지판(1회용)":

        if block is not Iron Door:

            send "철문에만 사용 가능합니다."

            cancel event

            

    if name of player's tool is "&c상자잠금용표지판(1회용)":

        if block is not Chest:

            send "상자에만 사용 가능합니다."

            cancel event

    


command /표지판초기화:

    trigger:

        if player is op:

            set {상자표지판.%player%} to 1

            set {그림표지판.%player%} to 1 

            send "초기화되었습니다."

            

on rightclick on entity:

    if entity's name is "&b상자방 표지판 지급":

        execute player command "/상자방표지판"




5개의 댓글

qsef1256
2022.08.31

variables: 은 이름은 변수이지만 실제로는 상수를 정의하는 공간입니다. 저기다가 변수 써놓은거 요즘 보이기 시작하는데, 전부 틀렸고 작동 안합니다.

sswind
2022.08.31
@qsef1256

그러면 처음 코드작성을 할때 변수를 선언하면 안되는건가요? 그러면 어떻게 해야 1회성 명령어를 만들 수 있나요??

qsef1256
2022.08.31
@sswind

2가지 방법이 있습니다.

첫 번째는 on join/on first join, 그러니까 플레이어가 들어올 때 값 초기화(할당)을 해 주는 거고, 두 번째는 처음부터 is set 으로 구분 하는 겁니다. 처음에 호출할 때 set 되어 있을 리가 없으니까 is not set 은 무조건 true 거든요.

qsef1256
2022.08.31
@sswind

근데 is set 으로 구분하는 게 안전하다고 한 이유는, 수동 초기화는 실수 가능성이 있기 때문입니다. 다만 취향 차이일 수는 있어요, 들어올 때 직접 초기화 시키는 게 맞는 사람은 그냥 그렇게 하기도 합니다

qsef1256
2022.08.31

그리고 그런 용도라면 1,0으로 구분하는 것 보다는 is set/is not set으로 구분하는게 안전합니다.

뉴스 및 창작물
/files/thumbnails/268/789/003/262x150.crop.jpg?20240515192032

레드스톤

벌레먹은 돌 빠르게 제거하는 법

GlassesFilm

2024-05-15

0

/files/thumbnails/797/788/003/262x150.crop.jpg?20240515090924

건축

마인크래프트로 구현한 카르카손 보드게임

Warak

2024-05-15

1

/files/thumbnails/487/784/003/262x150.crop.jpg?20240508233607

모드

Windows Borderless 모드에서 악성코드 발견

학교가기싫다

2024-05-08

1

/files/thumbnails/384/778/003/262x150.crop.jpg?20240512002324

업데이트

마인크래프트 자바 에디션 스냅샷 24w18a

학교가기싫다

2024-05-06

0

/files/thumbnails/855/781/003/262x150.crop.jpg?20240505141129

레드스톤

레이저 클리너

GlassesFilm

2024-05-05

1