안녕하세요 오랜만에 뵙게된 스크립트 1타강사 참치입니다.
이번시간에는 기본템 스크립트를 만들어볼건데요. 기본템 스크립트는
저번시간에 알려줬던 배열을 응용해서 만드는 시스템이기도 합니다.
그럼바로 ㄱㄱ!
set {_inv} to chest inventory with 3 row named "~~" 는 인벤토리를 변수에 담는 코드입니다 .
loop {기본템배열::*} 는 기본템 배열을 루프로 로드하는 코드입니다.
set slot (loop-index parsed as integer -1) of {_inv} to loop-value 는 loop-index에서 1을 뺀값에 있는 슬롯에 루프값을 등록하는 코드입니다.
wait 1 tick 1틱을 기다립니다.
open {_inv} to player {_inv} 변수에 담은 인벤토리를 플레이어에게 오픈합니다.
on inventory close: 인벤토리를 닫았을때 실행되는 이벤트입니다.
if uncolored name of event-inventory contains "기본템" and "설정하기" 이벤트로 실행된 색깔을뺀 인벤토리의 이름에 "기본템" 과 "설정하기" 가 포함되어 있다면
loop 27 times: 27번을 반복한다.
set {기본템배열::%loop-number%} to slot (loop-number-1) of player's current inventory 기본템배열의 loop-number번째에 슬롯 loop-number에서 1뺀값의 슬롯에 있는 아이템을 등록한다.
send "기본템이 등록됨" 출력문
if number of air in player's inventory < amount of {기본템배열::*}:
만약 플레이어 인벤토리의 빈 공간이 기본템배열의 크기보다 작다면 (<= 이 아니라 < 인데 실수함)
send "공간이 부족함" 출력문
stop 코드를 멈춤
give 기본템배열 to player 기본템배열의 값을 플레이어게 지급함 만약 위의 if문이 실행되었을경우 stop으로 코드가 멈춰줬기때문에 여기까지 안옴
send "기본템이 지급됨'" 출력문
자 슬롯 인식할때 쓰던 loop-index나 loop-number에 -1을 한 이유가 뭘까요?
슬롯은 0부터 시작하지만 loop-index, loop-number은 1부터 시작하기때문입니다.
그러므로 호환을 하기위해서는 -1을 해야하죠
https://discord.gg/2gxSqWu - 마인크래프트 개발자 디스코드
김슬우
2020.03.03글에 아쉬운점이나 보충할점이 있다면 댓글로 알려주세요.
윈초
2020.03.04? 전 스크립트 너무 어려운거 같아여
(특히 배열)
마크충
2020.03.05오 신기해요!
삼냥이네
2020.05.18선생님 이렇게 작성하면
/기본템 을 칠 때 마다 받을 수 있는 거 아닌가요?
준이_
2020.09.02테마쫌 알려주세요!