개인 자료란 (JE)

  서버 커뮤니티

Profile 해피 대표칭호 없음
Profile

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

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

2019.12.29 조회 수 1615 추천 수 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/477/930/003/262x150.crop.jpg?20241201030912

레드스톤

뉴진스 - Super Shy | 마크 노트블럭 커버

노트블럭전문가

2024-12-01

0

/files/thumbnails/483/916/003/262x150.crop.jpg?20241127115329

레드스톤

[노트블럭 커버] 뉴진스 - ETA 3

노트블럭전문가

2024-11-27

1

/files/thumbnails/150/925/003/262x150.crop.jpg?20241123005717

건축

응답하라 1988 ? 1

팀뉴일리시

2024-11-23

5

/files/thumbnails/761/908/003/262x150.crop.jpg?20241025153749

건축

서울 숭례문(崇禮門) 6

KHC

2024-10-25

2

/files/thumbnails/578/899/003/262x150.crop.jpg?20241010142350

건축

경주 월정교 1

KHC

2024-10-10

2

/files/thumbnails/219/899/003/262x150.crop.jpg?20241009200950

건축

송전탑+도시 2

dbasd12

2024-10-09

2

/files/thumbnails/246/898/003/262x150.crop.jpg?20241008102328

레드스톤

단다단 - 오토노케(オトノケ) | 마인크래프트 노트블럭 커버

노트블럭전문가

2024-10-08

1