개인 자료란 (JE)

  서버 커뮤니티

Profile 해피 대표칭호 없음
Profile

강좌 자바 에디션(JE) 플러그인 개발

해피의 스크립트 강좌 #8 ( 수리권 )

2019.12.29 조회 수 1511 추천 수 3
분야 스크립트 
게임버전 모든버전 

 

안녕하세요! 해피입니다.

 

이번 해피의 스크립트 강좌 8번째 시간으로는 수리권 스크립트에 대해서 알아보는 시간을 갖도록 하겠습니다.

 

수리권은 일반 수리 스크립트와 다름점은 수리권을 얻어서 그 수리권 갯수가 있어야만 수리를 할 수 있는 시스템입니다.

 

그럼 바로 알아볼까요?

구분선.png

 

 

[ 스크립트 구문 ]

command /수리권 [<text>] [<text>]: 
    trigger:
        if arg 1 is not set:
            send "&f&l========== &e&l수리권 &f&l=========="
            send "{@b} &f&l/수리권 확인 - 자신의 수리권 가능 횟수를 확인 합니다."
            send "{@b} &f&l/수리권 하기 - 자신이 들고 있는 아이템을 수리 합니다."
            send "&f&l========== &e&l수리권 &f&l=========="
            if player has permission "op.op":
                send "{@b} &f&l/수리권 추가 [닉네임] - [닉네임] 에게 수리권을 1 추가 합니다."
                send "{@b} &f&l/수리권 초기화 [닉네임] - [닉네임] 에 수리권을 초기화 합니다."
                
        if arg 1 is "확인":
            send "{@b} &f&l당신이 소유하고 있는 수리권 횟수는 &b&l[ &f&l%{수리권.횟수.%player%}% &b&l] &f&l입니다."
        
        if arg 1 is "하기":
            if {수리권.횟수.%player%} is not set:
                send "{@b} &f&l당신은 수리권을 소유하고 있지 않습니다 !"
                stop
                
            if {수리권.횟수.%player%} is set:
                if player's tool is not air:
                    run player cmd "repair hand" as op
                    send "{@b} &f&l수리를 성공적으로 완료 하였습니다 !"
                    remove 1 from {수리권.횟수.%player%}
                else:
                    send "{@b} 아이템을 들고 있어 주세요 !"
            
            if {수리권.횟수.%player%} is 0:
                delete {수리권.횟수.%player%}
    
        if arg 1 is "추가":
            if arg 2 is set:
                if player has permission "op.op":
                    add 1 to {수리권.횟수.%arg 2%}
                
        if arg 1 is "초기화":
            if arg 2 is set:
                if player has permission "op.op":
                     delete {수리권.횟수.%arg 2%}

 

구분선.png

[ 스크립트 설명 ]

 

command /수리권 [<text>] [<text>]: 
    trigger:
        if arg 1 is not set: # /수리권 아무것도 입력하지 않았을 경우 , /수리권 만 입력했을 경우
            send "&f&l========== &e&l수리권 &f&l=========="
            send "{@b} &f&l/수리권 확인 - 자신의 수리권 가능 횟수를 확인 합니다."
            send "{@b} &f&l/수리권 하기 - 자신이 들고 있는 아이템을 수리 합니다."
            send "&f&l========== &e&l수리권 &f&l==========" # 메세지가 나오게 됩니다.
            if player has permission "op.op": # 명령어를 입력한 유저가 op.op 펼미션이 있을 경우
                send "{@b} &f&l/수리권 추가 [닉네임] - [닉네임] 에게 수리권을 1 추가 합니다."
                send "{@b} &f&l/수리권 초기화 [닉네임] - [닉네임] 에 수리권을 초기화 합니다." # 메세지가 나오게 됩니다.
                
        if arg 1 is "확인": #/수리권 확인 명령어 입력시
            send "{@b} &f&l당신이 소유하고 있는 수리권 횟수는 &b&l[ &f&l%{수리권.횟수.%player%}% &b&l] &f&l입니다." #메세지를 입력합니다.

여기서 %{수리권.횟수.%player%}% 는 아래에서 수리권을 우클릭시 추가되는 변수 갯수가 몆개인지 알려주는 구문입니다. 아마 플레이어가 {수리권.횟수} 라는 구문이 3 있으면 '당신이 소유하고 있는 수리권 횟수는 [ 3 ] 입니다.' 
        
        if arg 1 is "하기": #/수리권 하기 입력시
            if {수리권.횟수.%player%} is not set: #변수가 하나도 없을 경우
                send "{@b} &f&l당신은 수리권을 소유하고 있지 않습니다 !" # 메세지 전송
                stop
                
            if {수리권.횟수.%player%} is set: #1 이라도 가지고 있을 경우
                if player's tool is not air: #손에 든 아이템이 공기가 아니라면
                    run player cmd "repair hand" as op #수리 명령어 입력
                    send "{@b} &f&l수리를 성공적으로 완료 하였습니다 !" #수리됐다고 메세지 전송
                    remove 1 from {수리권.횟수.%player%} #수리권 변수 1 제거
                else: # 만약 손에 든 아이템이 공기가 있다면
                    send "{@b} 아이템을 들고 있어 주세요 !" # 아이템을  들어달라는 메세지 전송
            
            if {수리권.횟수.%player%} is 0: # 수리권 횟수가 0 일경우
                delete {수리권.횟수.%player%} # 수리권 변수 초가화
    
        if arg 1 is "추가": #/수리권 추가 입력시
            if arg 2 is set: #/수리권 추가 닉네임 을 입력시
                if player has permission "op.op": #op,op 펼미션이 있을 경우
                    add 1 to {수리권.횟수.%arg 2%} #닉네임 입력한 유저에게 1 의 수리권 지급
                
        if arg 1 is "초기화": #/수리권 초기화 입력시
            if arg 2 is set: #/수리권 초기화 닉네임 입력시
                if player has permission "op.op": #op.op 펼미션이 있을 경우
                    delete {수리권.횟수.%arg 2%} #닉넹미 입력한 유저 변수 삭제
구분선.png

 

[ 이미지 설명 및 다운로드 ]

 

https://blog.naver.com/shwns0504/221345879702 ]




8개의 댓글

아이스틴
2019.12.29

수리수리 마아수리(??)!!

해피
2019.12.30
@아이스틴

문열려라 참깨!

흔호
2020.01.04

오 찾던 기능인데 감사합니다!

DDang_
2020.01.12

추천입니다

이칠봉
2020.02.25

혹시 실례가 안된다면 쪽지로 스크립트 관련 질문 드려도 될까요?

우섭
2020.03.09

혹시 다음 강좌 gui될까요

마크러버
2020.03.30

option undefined 이라고 뜨면서 리로드가 안되는데

제 생각에는 {@b} 이거 같은데 이 오류 어떻게 해결 해요???

gjo173
2020.06.01

안되네요

뉴스 및 창작물
/files/thumbnails/288/791/003/262x150.crop.jpg?20240602150002

아티클

《까다로운 시련》 업데이트 날짜 공개 및 정보

학교가기싫다

2024-06-02

0

/files/thumbnails/841/773/003/262x150.crop.jpg?20240526120908

레드스톤

마인크래프트 노트블록버전 『 봄을 고하다 (春を告げる) 』 [더블옥타브 버전]

노트블럭전문가

2024-05-26

0

/files/thumbnails/712/796/003/262x150.crop.jpg?20240525085438

레드스톤

마인크래프트 노트블록으로 만든 『 봄을 고하다 (春を告げる) 』 1

Sonttukk

2024-05-25

0

/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 모드에서 악성코드 발견 3

학교가기싫다

2024-05-08

1

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

업데이트

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

학교가기싫다

2024-05-06

0