마인크래프트에서 서버를 운영하다보면, 여러가지 명령어들 중에서 특정 명령어들을 사용 금지시키고 싶을 때가 있습니다. 예를 들어보자면, /stop 이나 /deop 같은 원래는 오피만 있다면 사용할 수 있었던 명령어들을, 테러를 방지하기 위해서 콘솔에서만 사용할 수 있도록 설정하고 싶을 수 있습니다. 또는, /msg 와 같은 원래라면 일반 유저들도 사용할 수 있는 명령어를 콘솔 또는 오피만 사용하도록 설정하고 싶을 수 있습니다. 그럴 때를 위해서, 이번 시간에는 금지 명령어를 지정해서, 원래 기본 권한대로 사용할 수 있게 설정하거나, 콘솔만 사용할 수 있게하거나, 오피가 있다면 사용할 수 있도록 설정하는 스크립트를 가져왔습니다.
사용방법은 /금지명령어 [초기화/콘솔/오피] [명령어] 입니다.
ex) /금지명령어 콘솔 /stop
ex) /금지명령어 오피 /msg
초기화는 기존에 콘솔 또는 오피로 금지명령어를 설정해두었던 명령어를 기본 상태로 초기화시킬 수 있습니다.
자 그럼 이제 구문을 전체적으로 분석해보는 시간을 가져보도록 하겠습니다.
command /금지명령어 [<text>] [<text>]: permission: * trigger: if "%the 2nd argument%" is "<none>": send "&c[ &r사용방법 &c]" send "&c[ &r/금지명령어 [콘솔/오피/초기화] [금지할 명령어] &c]" exit if arg 1 is "콘솔": set {금지명령어::%arg 2%} to "console" send "명령어 %arg 2%(이)가 콘솔만 사용할 수 있도록 설정되었습니다" else if arg 1 is "오피": set {금지명령어::%arg 2%} to "op" send "명령어 %arg 2%(이)가 오피만 사용할 수 있도록 설정되었습니다" else if arg 1 is "초기화": clear {금지명령어::%arg 2%} send "명령어 %arg 2%(이)가 초기화되었습니다" else: send "&c[ &r사용방법 &c]" send "&c[ &r/금지명령어 [콘솔/오피/초기화] [금지할 명령어] &c]" on command: set {_c} to "/%command%" if {금지명령어::%{_c}%} is set: if {금지명령어::%{_c}%} is "console": if sender is not console: cancel event send "&c콘솔만 사용이 가능한 명령어입니다" if {금지명령어::%{_c}%} is "op": if sender is not op: cancel event send "&c오피만 사용이 가능한 명령어입니다"
이번 스크립트에는 커멘드 구문과 이벤트 구문이 둘 다 들어갔습니다.
우선 커멘드 구문만 분리해서 분석해보도록 하겠습니다. 기본적인 원리는, arg 1이 콘솔, 오피, 초기화 중 하나가 아니거나 arg 2의 값을 입력하지 않았을 시에 도움말 메시지를 출력하고, 그렇지 않을 경우에는 {금지명령어::[명령어]}에 콘솔이면 "console", 오피일 시 "op"로 설정하고, 초기화 일 시에는 그 값을 삭제합니다.
이제 이벤트 구문을 보도록 하겠습니다. 기본적인 원리는 우선 on command 이벤트문에서는 명령어를 쳤을 때 발동하는 이벤트문이고, %command%로 입력한 커멘드를 받아 올 수 있습니다. 다만 친 명령어에서 /는 빠진 값이 리턴됩니다. 예를 들어 /stop을 쳤다고 가정해보면, stop 이라는 값을 command로 받아올 수 있습니다. 따라서 {_c} 라는 임시변수에 /를 더한 명령어를 설정해줍니다. 그 뒤, 금지명령어 배열변수에서 해당하는 명령어의 값을 가져와서 만약 그 값이 "console" 이라면 콘솔만 사용이 가능하도록 cancel event 구문으로 금지하고, "op"라면 오피만 사용이 가능하도록 합니다.
4번째 줄에 있는 %the 2nd argument%는 %arg 2%와 동일합니다. 그냥 이렇게도 사용이 가능하다는것을 알려드리고 싶었습니다. 이번 시간의 스크립트에는 특별히 어려운 구문이나 모를만한 구문은 없었습니다.
다음 시간에는 어떻게 보면 금지명령어도 그 일부라고 할 수 있는 테러방지 스크립트에 대해서 배워보도록 하겠습니다.
질문이 있으시다면 이 글의 댓글에 적어주시면 답변해드리도록 하겠습니다.
아래는 스크립트 파일들입니다
주석 미포함
주석 포함
'마인크래프트 > Skript 기초 활용편' 카테고리의 다른 글
스크립트 기초 활용 6편(장비) (0) | 2022.02.22 |
---|---|
스크립트 기초 활용 5편(테러방지) (0) | 2022.02.21 |
스크립트 기초 활용 3편(상점 ver.1.0) (2) | 2022.02.21 |
스크립트 기초 활용 2편(가방) (0) | 2022.02.20 |
스크립트 기초 활용 1편(칭호) (1) | 2022.02.20 |
댓글