게임/마인크래프트

트리거 명령어

미친사람 2018. 4. 29. 03:17
반응형

[] : 반드시 써야 하는 것

<> : 써도 되고안 써도 되는 것

 

클릭/바닥/에리어 위치 설정 뼈다귀

 

-일반 명령어-

 

/VT 일반 명령어에 대한 헬프 창을 연다.

/VT SETLOC [오브젝트명] [변수명] 현재의 위치와 방향의 값을 가진 변수를 생성한다.

/VT DELOBJ [오브젝트명] 오브젝트를 지운다.

/VT RUN [파일명]:[스크립트명] <플레이어명> 플러그인 폴더에 저장된 스크립트를 작동시킨다.

플레이어명 생략시자기 자신이 타겟으로 결정된다.

(스크립트가 적용되는 위치 플레이어가 서 있는 위치)

/VT SAVETRIGGERS 현재까지 지정했던 모든 트리거들의 정보를 저장한다.

/VT RELOADTRIGGERS :트리거 플러그인을 재시작 시킨다.

/VT AUTOSAVE 트리거 플러그인의 정보가 매 시간마다 저장되도록 한다.

시간 설정은 따로 YML파일 수정을 통해 할 수 있다.

/VT DELVAR [i/s/b] [오브젝트명] [변수명] 변수를 지운다.

앞에 위치한 isb는 각각 integer[정수]string[문자열]boolean[이진수]를 나타낸다.

 

 

 

 

 

-클릭/바닥 명령어-

 

우클릭을 한 번만 할 경우 트리거 생성 위치

우클릭을 두 번 할 겅우 첫 번째 우 클릭 스크립트 작동 위치 두 번째 우클릭 트리거 생성 위치

 

 

[클릭 명령어]

 

/VTC [스크립트] 해당 위치를 건드릴 때 작동되는 트리거의 스크립트를 추가한다.

/VTCV <페이지> 해당 위치의 트리거가 어떤 것인지 확인한다.

/VTCR 해당 위치의 트리거를 제거한다.

/VTCE [수정할 스크립트 번호] [스크립트] 해당 위치의 트리거가 가진 스크립트를 수정한다.

 

 

 

[바닥 명령어]

 

/VTW [스크립트] 해당 위치를 밟았을 때 작동하는 트리거의 스크립트를 추가한다.

/VTWV <페이지> 해당 위치의 트리거가 어떤 것인지 확인한다.

/VTWR 해당 위치의 워크트리거를 제거한다.

/VTWE [수정할 스크립트 번호] [스크립트] 해당 위치의 트리거가 가진 스크립트를 수정한다.

 

 

 

-에리어 명령어-

 

/VT SETAREA 에리어의 범위를 지정한다.

/VT DEFINEAREA [에리어명] 뼈다귀로 지정한 공간을 에리어 이름을 가진 트리거로 설정한다.

/VT GETAREA 현재 자신이 있는 지역에 어떤 트리거가 있는지 확인한다.

/VTA[에리어명] [ENTER/EXIT] [스크립트에리어에 들어오고 나갈 때 작동하는 트리거의 스크립트를 추가한다.

/VTAV [에리어명] [ENTER/EXIT] <페이지> 에리어 트리거의 정보를 확인한다.

/VTAE [에리어명] [ENTER/EXIT] [수정할 스크립트 번호] [스크립트] 해당 에리어 트리거의 스크립트를 수정한다.

/VTAR [에리어명] [ENTER/EXIT] 에리어 트리거를 제거한다.

, enter과 exit 모두 제거해야만 에리어가 완전히 제거된다.

/VT AREALIST <월드명> <에리어명> 에리어 트리거 목록을 본다.

 

 

 

 

-이벤트 명령어-

 

/VTE [이벤트명] [스크립트] 이벤트가 발생할 경우에 작동하는 트리거의 스크립트를 추가한다.

/VTEV [이벤트명] <페이지> 설정한 이벤트 트리거의 정보를 확인한다.

/VTEE [이벤트명] [수정할 스크립트 번호] [스크립트] 해당 이벤트의 스크립트를 수정한다.

/VTER [이벤트명해당 이벤트 트리거를 제거한다.

/VTCLEAR 모든 이벤트 트리거를 제거한다.

 

PlayerDeath 플레이어가 죽었을때 스크립트를 실행합니다.

EntityDeath 엔티티가 죽었을때 스크립트를 실행합니다.

BlockBreak 블록이 부서졌을때 스크립트를 실행합니다.

BlockPlaced 블록이 설치되었을때 스크립트를 실행합니다.

Respawn 플레이어가 리스폰 하였을때 스크립트를 실행합니다.

Join 플레이어가 로그인 하였을때 스크립트를 실행합니다.

Quit 플레이어가 로그아웃 하였을때 스크립트를 실행합니다.

Interact 플레이어나몬스터심지어 Citizen 플러그인으로 생성한 NPC를 우클릭하였을때스크립트를 실행합니다.

EntitySpawn 엔티티가 스폰되었을때 스크립트를 실행합니다.

Chat 채팅을 할 때 스크립트를 실행합니다.

Timer 지정된 타이머가 돌아가면스크립트가 작동이 됩니다.

 

 

 

-커맨드 명령어-

 

/VTCMD [커맨드명] [스크립트] 커맨드 트리거의 스크립트를 추가한다.

/VTCMDO [커맨드명] [TRUE/FALSE] 기존에 있던 명령어를 대체할 지 말 지 설정한다.

대체(TRUE)하게 되면, Unknown Command 라고 뜨지 않게 된다.

ture 기존에 있던 커맨드를 커맨드 트리거로 대체한다.

false 커맨드 트리거로 대체하지 않는다.

/VTCMDP [커맨드명] [펄미션.노드/REMOVE] 펄미션 노드가 있어야 커맨드를 칠 수 있다.

(펄미션 노드를 공백으로 입력하면 아무나 사용할 수 있다.)

) /VTCMDP TEST Tigger.cmd

=> Tigger.cmd노드가 있는 사람만 TEST 커맨드를 칠 수 있다.

/VTCMDR [커맨드명] 커맨드 트리거를 제거한다.

/VTMDV [커맨드명] <페이지> 커맨드 트리거의 정보를 본다.

/VTCMDE [커맨드명] [수정할 스크립트 번호] [스크립트] 커맨드 트리거를 수정한다.

/VTCMDLIST <필터링 할 단어> 커맨드 트리거의 리스트를 본다.

 

 

-플러그인 노드-

vtriggers.admin 이 플러그인의 모든 것을 창작이용할 수 있는 권한

vtriggers.player 이 플러그인의 모든것을 이용할 수 있는 권한

 

 

-Config 설명-

AutoSaveInterval : 18

자동 플러그인 세이브가 되는 시간 (초 단위)

AutoSaveDisplay : true

자동 플러그인 세이브를 할 때 세이브 메시지 표시 여부(true/false)

MaxBackups : 30

백업의 최대 수 (최대 수를 넘어가면 이전 백업은 사라짐)

OnlyUseBukkitSuperPerms : false

버킷 슈퍼 펄미션을 가진 사람만 사용 가능 여부 (true/false)

TeleportOp : true

텔레포트를 사용할 때 OP권한으로 사용 여부 (true/false)

-스크립트 커맨드-

 

@QUITE [플레이어명] [시간초]

플레이어를 해당 시간동안 아무런 채팅도 보이지 않게 한다.

지속시간은 소수 첫 번째 단위까지 가능하다.

@BROADCAST [메시지]

서버 전체에 메시지를 보낸다.

@PLAYER [메시지]

트리거를 작동시킨 사람에게만 메시지를 보낸다.

@TELL [플레이어명] [메시지]

[플레이어명]에게 메시지를 보낸다.

@EXIT

진행중인 트리거를 종료하여 다음 구문으로 넘어가지 않게 한다.

@PAUSE [시간초]

다음 스크립트로 가기까지의 시간을 설정한다.

@CALL [파일명]:[스크립트명]

플러그인 폴더에 저장한 스크립트를 불러온다.

@COOLDOWN [시간초]

트리거가 끝난 후한번 더 실행 시키는데 걸리는 시간을 설정한다.

@CMD [커맨드]

현재 플레이어의 등급으로 사용할 수 있는 커맨드를 작동시킨다.(커맨드에 /는 붙이지 않는다.)

@CMDOP[커맨드]

사용자의 권한이 OP로 승격된 후 커맨드를 작동 시킨다.

작동 후 다시 원래 등급으로 돌아온다.

@CMDCON [커맨드]

해당 커맨드를 사용하는 사람이 콘솔로 바뀐다.

@TOGGLEBLOCK [블럭ID] <장소>

블럭을 나타나게 하거나없어지게 한다.

@SETBLOCK [블럭ID] <장소>

블럭을 나타나게 하고없어지지는 않는다.

@GETBLOCK [변수명] <장소>

해당 장소에 위치한 블록 ID를 변수에 담는다.

@SMOKE [사이즈] <장소>

입력한 사이즈의 연기를 피운다.

@FLAMES [사이즈] <장소>

불을 피운다.

@POOF [사이즈] [장소]

연기를 퍼지게 한다.

@TP <장소>

해당 장소로 텔레포트 시킨다.

@LIGHTNING [데미지여부 TRUE/FALSE] <장소>

번개를 내린다.

@ENTITY [ENTITY이름] [] <장소>

ENTITY를 정해진 수만큼 소환한다.

@DROPITEM [아이템이름] [갯수] <인첸트> <장소>

아이템을 출현시킨다.

EX) @DROPITEM Iron_Sword 1 Sharpness:2,BaneOfArthropods:1 <triggerloc>

아이템 출현 철검 한개 날카로움2, 살충트리거위치

@DROPITEM Dirt 1 NONE 231,65,-122

아이템 출현 흙 한개 인챈없이 231,65,-122 장소에 출현

@GETENTITYCOUNT [변수명] [ENTITY이름] [범위]

변수에 범위 내에 있는 ENTITY들의 수를 기록한다.

@GETLIGHT [변수명] <장소>

변수에 밝기를 기록한다.

@SIGNTEXT <장소> [수정할 라인의 숫자] [메시지]

표지판의 내용을 수정한다.

@LOOP

반복 시작

@ENDLOOP

반복의 끝점. (끝나면 다시 처음으로)

@BREAKLOOP

반복 종료

@SOUND [소리] <장소>

소리를 출력시킨다.

@SOUNDEX [소리[소리크기] [소리빠르기] <장소>

옵션 설정을 가능한 소리를 낸다소리크기는 0.0 ~ 1.0 소리빠르기는 0.5 ~ 2.0

(소리가 너무 많아서, SOUND와 SOUNDEX 소리는따로 부록에 소리 목록이 나와있습니다.)

@WHILE [i, b, s, si] [변수] [=, !=, >, <, >=, <=] [변수]

만일 할때 란 뜻을 나타냅니다.

@ENDWHILE

WHILE구문을 종료합니다.

@TELL [플레이어 이름] [할말]

플레이어에게 귓속말을 합니다[1.7.2]

@FIREWORK [색깔] [타입] <장소>

  폭죽을 터뜨립니다[1.7.2]

색 redblueaqua, black, fuchsiagraygreenlimemaroon, navy, olive, orangepurplesilvertealwhiteyellowrandom

타입 : ball(구형) ball_large(큰 구형) burst(반짝이) creeper(크리퍼) star(별모양) random(랜덤)

EX) @FIREWORK red burst <playerloc>

폭죽발사 빨강 폭발형 플레이어의 위치

@PARTICLE [물질] <장소>

파티클 이펙트를 나타냅니다[1.7.4]

EX) @PARTICLE cobblestone <playerloc>

파티클형성 코블스톤 플레이어의 위치

@FALLINGBLOCK [블록] <장소>

모래처럼 중력을 가진 블록을 지정 장소에 만들어 냅니다[1.7.4]

EX) @FALLINGBLOCK cobblestone <relativeloc:<playerloc>:0,5,0>

블록 강하 조약돌 플레이어의 위치로부터 5높이 위에

@SETBLOCKSAFE [블록] <장소>

이것은 단순히 Spigot유저(공기 유저(블럭을 통과하는 유저))들에게의 SETBLOCK이라고 보면 됩니다.. [1.7.4]

@WORLDTP [플레이어이름] [월드이름]

해당 플레이어를 다른 월드로 이동 시킵니다[1.7.4]

@CLEARCHAT [플레이어이름]

해당 플레이어의 대화창만 지워버립니다[1.7.4]

@PRINT [단어]

콘솔에게 해당 명령을 내립니다[1.7.4]

@PARTICLE [물질] <장소>

파티클 이펙트를 나타냅니다[1.7.4]

@SWITCH [i/s/b] [변수]

IF와 비슷하지만,

해당 변수 속에 @CASE안의 것이 있는가 확인합니다.

IF문처럼끝에는 @ENDSWITCH가 반드시 써 져야 합니다[1.7.4]

@CASE [바꿀 단어]

@SWITCH의 표적이 된 변수 속에 @CASE안에 있는 단어가 들어 있다면아래 구문으로 넘어갑니다[1.7.4]

EX)

@SWITCH s $TEST.test

만일 $TEST.test라는 문자열 변수안에

@CASE 떡볶이

떡볶이라는 값이 저장되어 있을 때,

@PLAYER 변수값은 떡볶이 입니다!

떡볶이라고 말해 줍시다.

@CASE 만두 순대 호빵 떡

만두 혹은 순대 혹은 호빵 혹은 떡 중 하나가 저장되어 있다면,

@PLAYER 변수값은 만두/순대/호빵/떡 중 하나입니다!

4가지 경우라고 말해 줍시다.

@ENDSWITCH

SWITCH구문을 종료합니다.

 

@MODIFYPLAYER [플레이어이름] [권한 종류] []

이번 패치의 꽃모디피 플레이어플레이어에게 많은 제한을 겁니다[1.7.4]

[권한 종류]

HEALTH 플레이어의 생명력. (정수값 표현)

FOOD 플레이어의 배고픔. (정수값 표현)

SATURATION number

EXP and XP 플레이어의 XP(인챈트 경험치) (정수값 표현)

WALKSPEED 플레이어의 이동 속도. (1을 넘어가면 무지무지 단무지 빨라짐고로 약간 빠르게 걷게 하려면 0.2의 값이 적당하다.) (정수값 표현)

FLYSPEED 플레이어의 나는 속도. (1을 넘어가면 무우구웅화 사암처언리이 빨라짐고로 약간 빠르게 날게 하려면 0.2의 값이 적당하다.) (정수값 표현)

DISPLAYNAME 플레이어의 보여지는(채팅창)이름을 수정 가능하며칼라코드를 사용할 수 있다. (문자열 표현)

LISTNAME 플레이어의 보여지는(TAB눌렸을 때 뜨는 리스트창)이름을 수정 가능하며칼라코드를 사용할 수 있다. (문자열 표현)

FLYING 날기 여부 (이진수 표현)

GAMEMODE 게임모드를 변경한다. (문자열 표현) (creative, survival, adventure)

MAXHEALTH 플레이어의 최대 체력 (정수값 표현)

HELDITEM 플레이어가 잡고있는 아이템 이름. (문자열 표현)

HELDITEM:MATERIAL 플레이어가 잡고있는 아이템의 타입 (문자열 표현) (ID와 DATA값이 뜬다.)

HELDITEM:ID 플레이어가 잡고있는 아이템의 ID값 (문자열 표현)

HELDITEM:META 플레이어가 잡고있는 아이템의 DATA값 (정수값 표현)

HELDITEM:AMOUNT 플레이어가 잡고있는 아이템의 개수값 (정수값 표현)

HELDITEM:ENCHANT 플레이어가 잡고있는 아이템에 발린 인챈트 이름 (문자열 표현) (이것은 항상 레벨 인챈트로 인식 될것입니다.)

HELDITEM:DISPLAYNAME 플레이어가 잡고있는 아이템의 보여지는 이름 (문자열 표현) (NBTE로 바꾼 이름 같은것)

HELDITEM:LORE:SET 플레이어가 잡고있는 아이템의 설명을 수정합니다. (문자열 표현)

HELDITEM:LORE:ADD 플레이어가 잡고있는 아이템의 설명을 추가합니다. (문자열 표현)

HELDITEM:LORE:REMOVE 플레이어가 잡고있는 아이템의 설명을 모두 지웁니다. (문자열 표현)

HIDDEN 플레이어가 투명포션을 먹었거나, TAB키를 눌려도 안나오는 숨은 상태 여부를 따집니다. (이진수 표현)

BANNED 밴처리 여부를 따지며어드밴스드 모드가 필요합니다. (이진수 표현)

OPERATOR 콘솔에 메시지를 넣었는지 여부를 따지며어드밴스드 모드가 필요합니다. (이진수 표현)

 

@FORK

Lex에게 이 스크립트가 있다는 사실을 알리지 마[1.7.4]

@SETVELOCITY [플레이어 이름] [X] [Y] [Z]

플레이어를 공중이 띄워버립니다[1.7.4]

EX) @SETVELOCITY <playername> 0 2 0

트리거를 작동시킨 플레이어를 띄운다.

 

@OPENINV [InventoryTriggers.yml파일 속의 스크립트 이름]

플레이어에게 해당 인벤토리창을 열어줍니다.(ChestCommandsGUI같은 것 일겁니다.) [1.7.4]

@CLOSEINV [플레이어 이름]

플레이어의 인벤토리를 강제로 닫습니다[1.7.4]

-플레이스 홀더-

 

 

일반 플레이스 홀더

 

<this>

: [문자열트리거의 이름이다.

<playername>

: [문자열트리거를 작동하는 사람의 이름

<itemid>

: [정수손에 들고있는 아이템 ID

아이템 ID의 Data는 제외된다.

<playerloc>

: [장소트리거를 작동하는 사람의 위치

<triggerloc>

: [장소트리거의 위치

타이머 이벤트 트리거의 경우 위치값이 없기 때문에 사용하면 위험하다.

<issneaking>

: [이진수트리거를 작동하는 사람이 Shift 키를 누르고 있는 경우 true, 아닐 경우 false

<issprinting>

: [이진수트리거를 작동하는 사람이 달리는 중일 경우 true, 아닐경우 false

<health>

: [정수트리거를 작동하는 사람의 체력

<worldname>

: [문자열트리거를 작동하는 사람이 있는 월드

<biome>

: [문자열트리거를 작동하는 사람이 있는 바이옴

<gamemode>

: [정수트리거를 작동하는 사람의 게임 모드

0-서바이벌 1-크리에이티브 3-어드벤쳐

커맨드 트리거 전용 플레이스 홀더

 

<cmdname>

: [문자열커맨드 트리거의 이름

<cmdargcount>

: [정수커맨드 뒤에 입력하는 정수나 문자열의 갯수

스페이스 바로 띄어쓰기를 할 때마다 하나씩 늘어난다.

<cmdline>

: [문자열텍스트 라인을 대체

<cmdarg:[숫자]>

: /도움말 마인크래프트 철광석

이라고 쳤을시, <cmdarg:1>은 마인크래프트 가 될 것이며, <cmdarg:2>는 철광석 이 될 것이다커맨드 이후스페이스바 친 후 오는 단어라고 보면 된다.

 

 

Player Death / Entity Death 이벤트 트리거 전용 플레이스 홀더

 

<whodied>

: [문자열죽은 사람의 이름

<killedbyplayer>

: [이진수죽은사람이 플레이어에게 죽은거라면 true, 아니면 false

<killername>

: [문자열죽인 사람이나 entity의 이름이다.

 

 

 

 

Block Break / Block Placed 이벤트 트리거 전용 플레이스 홀더

 

<blockid>

: [정수설치파괴한 블럭의 ID

파란 양모가 35:11이라는 ID, Data값을 가지고 잇다면, 35를 나타낸다.

<blockdata>

: [정수설치파괴한 블럭의 데이터 값.

파란 양모가 35:11이라는 ID, Data값을 가지고 있다면, 11을 나타낸다.

<blocktype>

: [문자열설치파괴한 블록의 타입 값.

파란 양모가 35:11이라는 ID, Data값을 가지고 잇다면, 35:11을 전부 나타낸다.

Interact / Entity Spawn 이벤트 트리거 전용 플레이스 홀더

 

<entitytype>

: [문자열상호작용 하거나스폰한 entity의 이름을 뜻한다.

<entityname>

: [문자열상호작용한 entity의 직업이나 이름을 뜻한다.

플레이어의 경우 아이디가주민들의 경우 FARMER같은 직업이 뜬다.

 

 

 

Chat 이벤트 트리거 전용 플레이스 홀더

 

<chatline>

: [문자열채팅을 쳤을 때 모든 줄을 반영한다.

<chatwordcount>

: [정수채팅을 쳤을 때 단어들의 수를 반영한다.

나는 지금 컴퓨터를 하고 있다. => <chatwordcount> = 5

 

 

 

에리어 트리거 전용 플레이스 홀더

 

<areaentered>

: [문자열에리어 트리거의 이름을 뜻한다.

에리어로 들어갈 때만 이름값이 지정된다.

<areaexited>

: [문자열에리어에서 나갈 때만 이름값이 지정된다.

 

 

 

일반기능 플레이스 홀더

<haspermission:펼미션노드>

: [이진수해당 노드를 가지고 있는 지의 여부

있으면 true, 없으면 false

<haspotioneffect:포션이펙트>

: [이진수해당 포션 이펙트를 가지고 있는 지의 여부

있으면 true, 없으면 faslse

<currentloc:플레이어이름>

: [좌표 or 문자열해당 플레이어의 좌표를 조사한다.

플레이어가 오프라인이면 null

<random0to:정수>

: 0부터 정수까지의 수 중 임의의 하나를 지정한다.

<random1to:정수>

: 1부터 정수까지의 수 중 임의의 하나를 지정한다.

<health:>

: [정수플레이어의 현재 체력을 나타낸다.

<issneaking:>

: [이진수트리거를 작동하는 사람이 Shift 키를 누르는 중일경우 true, 아닐경우 false

<issprinting:>

: [이진수트리거를 작동하는 사람이 달리는 중일 경우 true, 아닐 경우 false

<totalexp:플레이어명>

: [정수플레이어의 경험치를 나타낸다.

이름을 안 쓰면 트리거를 작동한 사람을 대상으로 지정된다.

<relativeloc:좌표1:좌표2>

: [좌표좌표1과 좌표2의 사잇값을 나타낸다.

<distance:좌표1:좌표2>

: [정수좌표1과 좌표2의 거리를 나타낸다.

<direction:방향>

: [정수 or 문자열방향 값을 나타낸다.

방향 값에 정수를 쓰면 정수로 입력되고문자열을 쓰면 문자열로 입력된다.

방향은 0~15가지의 수 중 하나를 선택 할 수 있다.

<secondticks:시간초>

: [정수] 1970년 1월 1일부터 현재까지 얼마만큼의 시간초가 흘렀는지 나타낸다.

시간초에는 음수나 양수, 0을 적을 수 있는데 그만큼 시간초가 감산되어 적용된다.

<getarea:좌표>

: [문자열좌표에 있는 에리어 커맨드의 이름을 알아낸다.

<hour:>

: [정수마인크래프트 시간

<min:>

: [정수마인크래프트 분

<var:변수명>

: [정수 or 이진수 or 문자열변수명을 나타낸다.

<hasitem:플레이어명:아이템ID>

플레이어의 인벤토리 안에 있는 아이템 ID를 찾는다. (총 수량까지)

만약 아이템이 없다면 return 0.

(예 : @IF i <hasitem:<playername>:1> >= 5)

 

<takeitem:플레이어명:아이템ID:수량>

플레이어의 인벤토리 안에 있는 아이템에 수량이 있다면수량만큼 제거한다.

만약플레이어가 충분히 가지고 있지 않다면, false로 적용된다.

<giveitem:플레이어명:아이템ID:수량>

플레이어에게 아이템을 수량만큼 준다.

<getblocklos:[기능]:[최대거리]>

해당 기능을 가지고제한된 거리 내에 마우스가 가르키는 블록을 조사한다.

[기능]

LOC : 해당 블록의 좌표값을 출력합니다.

NAME : 해당 블록의 이름을 출력합니다.

TYPE : 해당 블록의 타입을 출력합니다. (ID:DATA)

ID : 해당 블록의 ID값만 출력합니다.

DATA : 해당 블록의 DATA값만 출력합니다.

 

<helditemname>

들고있는 아이템의 기본이름 (CobbleStone/Iron Sword) [1.7.2]

<helditemdisplayname>

들고있는 아이템의 보여지는 이름(NBT로 수정한 이름[1.7.2]

<playersuffix>

플레이어의 접미사 [1.7.2]

<playerlistname>

: TAB키를 눌렸을 때 나타나는 플레이어의 이름 [1.7.2]

<playerdisplayname>

채팅창에 나타나는 플레이어의 이름 [1.7.2]

<holdingitem:[플레이어이름]:[물건이름]>

플레이어가 잡고있는 물건을 판단합니다[1.7.4]

EX) @IF b <holdingitem:<playername>:cobblestone> = true

만일 플레이어가 조약돌을 들고 있다면

 

 

 

플레이스 홀더 볼트와 이코노미 플러그인 연동

 

<hasmoney:플레이어명:>

플레이어가 가지고 있는 돈을 확인한다.

<givemoney:플레이어명:>

플레이어에게 돈을 준다.

<takemoney:플레이어명:>

플레이어에게 돈을 뺏는다뺏을 만큼 충분한 돈이 있다면 TRUE, 아니라면 FALSE가 된다.

-변수-

 

변수는 '언제든지 변할 수 있는 수이다.

하지만 숫자가 스스로 바뀌면 곤란하기 때문에

$<오브젝트명>.<변수명>

이라는 틀을 정해 주었다.

오브젝트면 전체적인 틀

변수 명 틀 안의 부가적인 것

이라고 생각하면 쉬울 것 같다.

 

 

i = Integer = 정수변수 (기본 값은 0)

b = Boolean = 이진수 변수 (변수값이 True, False 두 개 밖에 없다.)

s = String = 문자열 변수 (문자열 변수는 안에 텍스트 값을 저장한다.)

 

 

변수전용 커맨드

 

@SETINT [변수명] [상수] 해당 변수명에 상수값을 적용시킨다.

다른수가 있었다면 삭제된다.

@ADDINT [변수명] [상수] 해당 변수명에 상수값을 더한다.

@SUBINT [변수명] [상수] 해당 변수명에 상수값을 뺀다.

@MULINT [변수명] [상수] 해당 변수명에 상수값을 곱한다.

@DIVINT [변수명] [상수] 해당 변수명에 상수값을 나눈다.

@SETBOOL [변수명] [이진수] 해당 변수명에 이진수 값을 적용시킨다.

True와 False가 있다.

@SETSTR [변수명] [문자열] 해당 변수명에 문자열을 적용한다.

@ADDSTR [변수명] [문자열] 해당 변수명에 문자열을 추가한다.

@GETSTRLEN [변수명] [문자열] 변수명이 가진 문자열의 길이를 숫자로 변환시켜 저장한다.

@DELVAR [i/s/b] [변수명] 해당 변수를 제거한다.

 

 

명령어 EX)

/VTC @SETINT $integer.i 500

/VTC @SETSTR $string.s 독드립

/VTC @PLAYER '<var:$integer.i>명의 <var:$string.s>'

 

'500명의 독드립'이라고 자신에게만 보이는 메시지가 출력되면 제대로 입력한 것이다.

-조건문-

 

조건문이란 말 그대로 '조건'을 거는 것이다.

대표적으로 IF가 있으며이것을 중심으로 네 개의 스크립트 커맨드가 더 있다.

IF는 '만약'이라는 뜻을 가지고 있고스크립트 커맨드의 사용법은 아래와 같다.

 

@IF [i/s/b] [변수명/문자열/정수/True/False] [=/!=/</>/<=/>=] [변수명/문자열/정수/True/False]

'만약 [i/s/b]의 직업을 가진 [변수값()]가 [변수값()]와의 [부등호]가 일치할 때밑에잇는 스크립트를 실행한다.'

 

[i/s/b] : 변수의 직업

[변수명/문자열/정수/True/False] : 변수값

변수의 직업에 따라 입력하는 게 다름.

i : 정수 or 변수

s : 문자열 or 변수

b : True or False or 변수

 

[=,!=,<,>,<=,>=,?] : 부등호

= : 같음

!= : 다름

< : 오른쪽 큼

> : 왼쪽 큼

<= : 오른쪽이 왼쪽보다 크거나 같음

>= : 왼쪽이 오른쪽보다 크거나 같음

? 무엇을 담고있는가 체크합니다[1.7.4]

EX) @IF s $TEST.test ?= 고춧가루

만일 이 변수값에 고춧가루 라는 단어가 들어있다면

 

IF조건문이 일치한다면 다음 스크립트로 진행하고,

일치하지 않는다면 @ELSE나 @ENDIF 뒤의 스크립트로 넘어간다.

 

-적용예시-

@SETINT $Dogdripz.var 10

@IF i $Dogdirpz.var = 10

@PLAYER 독드립!!!

@ELSE 캣드립!!!

@ENDIF

 

이걸 실행해보면 '독드립!!!'가 뜬다.

하지만 여기서 두 번째 줄의 IF조건문을

@IF s $Dogdripz var = 10

으로 바꾼다면 IF 조건문 아래의 스크립트를 실행하지 않고

@ELSE 스크립트를 실행하여 '캣드립!!!'가 뜬다.

이유는,

두 번째 줄의 IF조건문에서는 '문자열'값을 10으로 조건이 걸린 것인데,

첫 번째 줄은 $Dogdripz.var 변수의 '정수'값을 10으로 설정한 것이기 때문이다.

(변수의 정수 값이 10인거지문자열 값은 10이 아님)

 

 

조건식 추가 커맨드

 

@IF [i/s/b] [변수명/문자열/정수/True/False] [=/!=/</>/<=/>=] [변수명/문자열/정수/True/False]만약

@OR [i/s/b] [변수명/문자열/정수/True/False] [=/!=/</>/<=/>=] [변수명/문자열/정수/True/False]또는

IF, OR은 둘 중 하나의 조건만 해당되면 통과

@AND [i/s/b] [변수명/문자열/정수/True/False] [=/!=/</>/<=/>=] [변수명/문자열/정수/True/False]그리고

IF, AND는 두 조건이 모두 해당되어야 통과

@ELSE 나머지

IF, OR, AND 조건에 해당되지 않아서 통과하지 못 할 경우 ELSE 아래의 스크립트를 돌림

@ENDIF 조건식을 끝냄

주의! @OR과 @AND는 @IF와 사용법이 똑같지만, IF없이는 쓸 수 없다.

 

 

적용예시

 

1.@SETINT $Dogdirpz.A 10

정수 변수의 설정

2.@SETINT $Dogdripz.B 20

정수 변수의 설정

3.@IF i $Dogdripz.A = $Dogdripz.B

첫번째 조건식. A와 B가 같아야 다음 스크립트로 넘어간다.

4.@OR i $Dogdripz.A =5

두번째 조건식. '또는'이란 의미로, A의 변수가 5일 경우에도 다음으로 넘어간다.

5.@PLAYER 카드뮴 짱

조건이 맞을경우 실행한다.

6.@ELSE

조건이 맞지 않을 경우아래 스크립트를 실행한다.

7.@PLAYER 독드립 짱

조건이 맞지 않을 경우 실행한다.

8.@ENDIF

조건식을 끝낸다아래 부터는 조건식에 구애받지 않고무조건 순차적으로 실행된다.

9.@PLAYER 좋다!

조건식의 영향을 받지 않았으므로 무조건 실행한다.

INVENTORY EVENT

인벤토리 이벤트 트리거 추가 설명

인벤토리 클릭 이벤트 트리거는 첫 번째로당신이 기본적인 인벤토리 창이 아닌다른 인벤토리 창 안에서무언가를 클릭하였을 때월드 내에 해당 스크립트가 실행되는 것으로 보면 된다.

(ChestCommandGUI와 기능이 같다고 생각하면 된다.)

해당 내용은 EventTriggers콘피그 파일 속에 저장된다.

 

world:

Inventory:

CoolDown: 0

Script:

- '@IF s <inventorytitle> ?= TELEPORTS'

만일 인벤토리 타이틀 안에 TELEPORTS라는 단어가 포함 되어 있다면

- '@SWITCH i <clickedslot>'

클릭한 슬롯 넘버를 체크합니다.

- '@CASE 0'

0일 경우

- '@CMDOP spawn'

스폰으로 갑니다.

- '@CASE 1'

1일 경우

- '@CMDOP warp <playername> pvp'

해당 플레이어를 PVP장으로 워프 합니다.

- '@CASE 2'

2일 경우

- '@CMDOP warp <playername> minigames'

미니게임장으로 워프 시킵니다.

- '@ENDSWITCH'

SWITCH구문을 종료합니다.

- '@ENDIF'

IF구문을 종료합니다.

 

인벤토리 만드는 방법 (InventroyTriggers콘피그 내에서)

 

teleportInventory:

인벤토리 그룹 이름

- 'cancelled: true'

닫기 가능 여부(true/false)

- 'title: TELEPORTS'

해당 인벤토리의 제목(인벤토리 GUI 왼편 위에 뜹니다.)

- 'slots: 9'

인벤토리 칸 수

- 'item: wool, meta: 1, amount: 1, name: 스폰, lore: &a&o스폰으로 갑니다., enchant:

durability, slot: 0'

0번 슬롯에 주황색 양모가 1개 들어 있으며아이템의 이름은 스폰이고설명은 스폰으로 갑니다라고 적혀 잇으며인챈트는 되어있지 않는 슬롯이 생성 된다.

- 'item: wool, meta: 0, amount: 1, name: PVP, lore: &4&oPVP장으로!, enchant: durability,

slot: 1'

1번 슬롯에 흰색 양모가 1개 들어 있으며아이템의 이름은 ‘PVP’이고설명은 PVP장으로라고 적혀 잇으며인챈트는 되어있지 않는 슬롯이 생성 된다.

- 'item: wool, meta: 7, amount: 1, name: 미니게임장, &3&o게임 한판 하실래예?

enchant: durability, slot: 2'

2번 슬롯에 회색 양모가 1개 들어 있으며아이템의 이름은 미니게임장이고설명은 게임 한판 하실래예라고 적혀 잇으며인챈트는 되어있지 않는 슬롯이 생성 된다.

 

 

[추가 설명]

cancelled : (true/false) - 슬롯 클릭 시자동으로 꺼질지 여부를 선택합니다. (FALSE일시, ESC나 E키를 눌려 끔)

title : (문자열) - 인벤토리의 타이틀을 정합니다.(색 코드 적용 가능!)

slots : (정수) - 얼마나 많은 슬롯을 열지 정합니다.(1줄당 9칸이므로 9의 배수로만 써야 합니다. 7, 15치면 에러!)

item : [물건이름], meta: [DATA], name: [보여질 이름], lore: [보여질 설명(%는 한줄 띄우기)], enchant: [인챈트 이름], slot: [슬롯 번호]

 

<name, enchant, 그리고 lore 는 옵션이기 때문에 안쳐도 됩니다.>

 

@SWITCH [i/s/b] [변수]

IF와 비슷하지만,

해당 변수 속에 @CASE안의 것이 있는가 확인합니다.

IF문처럼끝에는 @ENDSWITCH가 반드시 써 져야 합니다[1.7.4]

@CASE [바꿀 단어]

@SWITCH의 표적이 된 변수 속에 @CASE안에 있는 단어가 들어 있다면아래 구문으로 넘어갑니다[1.7.4]

EX)

@SWITCH s $TEST.test

만일 $TEST.test라는 문자열 변수안에

@CASE 떡볶이

떡볶이라는 값이 저장되어 있을 때,

@PLAYER 변수값은 떡볶이 입니다!

떡볶이라고 말해 줍시다.

@CASE 만두 순대 호빵 떡

만두 혹은 순대 혹은 호빵 혹은 떡 중 하나가 저장되어 있다면,

@PLAYER 변수값은 만두/순대/호빵/떡 중 하나입니다!

4가지 경우라고 말해 줍시다.

@ENDSWITCH

SWITCH구문을 종료합니다.

@OPENINV [InventoryTriggers.yml파일 속의 스크립트 이름]

플레이어에게 해당 인벤토리창을 열어줍니다.(ChestCommandsGUI같은 것 일겁니다.) [1.7.4]

 

 

Inventory 이벤트 트리거 전용 플레이스 홀더[1.7.4]

 

<clickedslot>

인벤토리 이벤트 발생 시클릭한 슬롯의 번호를 나타냅니다.

<clickeditem>

인벤토리 이벤트 발생시클릭한 슬롯의 아이템 절대이름(영어이름)을 나타냅니다.

<clickeditemname>

인벤토리 이벤트 발생시클릭한 슬롯의 보여지는 아이템의 이름을 나타냅니다.

<inventorytitle>

인벤토리 이벤트 발생시해당 인벤토리의 제목을 나타냅니다. (스페이스바는 _를 사용하세요.)

<clickeditemlore:줄 번호>

인벤토리 이벤트 발생시클릭한 아이템의 설명을 나타냅니다.

EX) <clickeditemlore:0>는 아이템에 달린 첫 번째 줄의 설명을 나타냅니다.


반응형