트리거 리액터 커뮤니티

 

공식위키

강좌

2. 하이픽셀 같은 로비 메뉴 만들기

wysohn 18 일 전 조회 수 45 추천 수 0

버킷 버전: *

트리거 버전: 2.2.1 에서 테스트

 

심화적인 내용이므로 위키를 충분히 숙지 하셔야 합니다. (https://github.com/wysohn/TriggerReactor/wiki/Home_kr)

 

요구 지식: 인벤토리 트리거, 네임드 트리거, 조건문, 변수, 등.

 

1. 메뉴 디자인



이제 이전 강좌에서 메뉴는 생성을 했는데 인벤토리와 11번 슬롯을 클릭했을때 메시지가 나올 뿐 인벤토리 안에는 아무것도 들어있지가 않습니다! 이래가지고는 하이픽셀은 커녕 일반적인 메뉴만도 못합니다. 이 인벤토리에 아이템을 넣어서 메뉴를 디자인 해봅시다.

 

1.1 손에 들고있는 아이템을 이용하기


이 방법은 손에 들고있는 아이템을 직접 인벤토리에 등록 하는 방법입니다. 코드 작성 없이 아이템을 넣고 싶다면 이 방법이 유용합니다.

 

/trg i <이름> item <슬롯>

 

예를들어 /trg i MyMenu item 3 이라고 친다면 현재 들고있는 아이템이 MyMenu 라는 인벤토리의 4번 슬롯 (0부터 시작합니다. 기억하시죠?) 에 등록됩니다. 다만, 아이템을 들고있지 않다면 해당 위치에 이미 아이템이 있는 경우 삭제됩니다.

 

1.2 코드로 직접 넣기


이 방법은 코드 내에서 직접 아이템을 관리하는 방법으로 위의 방법보다는 조금 복잡 할 수 있지만 더 많은 범위의 활용이 가능합니다.

 

먼저 이전 강좌에서 처럼 인벤토리 트리거 내에는 inventory 라는 내부 변수가 존재 합니다. 이 inventory 가 일종의 메뉴 인벤토리를 직접 관리 할 수 있게 해주는 매개체 역할을 합니다.

 

모든 작업을 편리하기 위해 메소드를 사용 할 것인데 이는 심화 내용중 하나에 속합니다. 어려운 내용은 아니니 한번 읽어보시기 바랍니다. https://github.com/wysohn/TriggerReactor/wiki/Methods_kr

 

inventory 에는 여러가지 사용가능한 메소드가 있지만 그중에서 필요한 부분만 나열 하겠습니다.

  • inventory.setItem(정수형 숫자, ItemStack) - 현재 인벤토리 트리거의 '정수형 숫자' 에 해당 아이템을 넣습니다.
    • inventory.setItem(0, item("DIAMOND_SWORD", 1)) - 첫번째 슬롯에 다이아 검 설정
    • inventory.setItem(0, null) - 해당 칸의 아이템을 삭제하는것과 동일한 효과 입니다. 아래의 clear() 와 사실상 같습니다.
  • inventory.clear(정수형 숫자) - 현재 인벤토리 트리거의 '정수형 숫자' 에 들어있는 아이템을 제거 합니다.
    • inventory.clear(8) - 9번째 슬롯에 있는 아이템 삭제

 

2. 코드


이제 이전 강좌에서 비워뒀던 IF trigger == "open" 파트를 마저 제작합시다. 하이픽셀 같은 메뉴를 구현하기 위해서 1.2 의 코드로 직접 아이템을 넣는 방법을 사용 하도록 하겠습니다.

 

코드:


IF trigger == "open"
    inventory.setItem(0, item("DIAMOND_SWORD", 1)) 
    inventory.setItem(1, {"myItem"}) 
ENDIF 


 

아이템을 집어넣을때는 "open" 일 때, 즉 인벤토리가 방금 막 열렸을때 설정하는것이 이치에 맞겠지요? 물론 클릭했을때나 인벤토리가 닫힐때도 가능하지만 특별히 의미는 없을 것 입니다. (인벤토리가 닫혔는데 아이템을 넣어봐야 소용이 없겠죠?)

 

1. 위의 코드 예제의 두번째 줄은 첫번째 칸에 다이아몬드 칼을 넣으라는것이고

 

2. 세번째 줄은 두번째 칸에 {"myItem"} 즉 광역번수에 저장해둔 아이템으로 설정 하라는 것 입니다.

 

setItem()의 두번째 인자가 ItemStack 인것은 나와있죠? 이것이 아이템을 넣는 위치를 나타내는것인데 item() 은 이 ItemStack 을 제작해주는 메소드 입니다.

 

3. 테스트


수정이 끝났다면 코드를 저장하시고 /trg reload 를 이용해서 인벤토리 트리거를 다시 불러 오신 뒤 이전 강좌에서 했던 것 처럼 /trg i <이름> open 으로 해당 인벤토리를 확인 해 보세요.

 

제대로 작동한다면 인벤토리의 첫번째 칸이 다이아몬드 칼로 설정 될 것 입니다. 물론 두번째칸은 비어있게 될것인데 이는 {"myItem"} 에 아직 우리가 저장을 해둔게 없기 때문이니 나오지 않는다고 해도 정상입니다.

 

 


 

다음 강좌에서는 이 추가한 다이아몬드 검의 이름과 로어를 실시간으로 하이픽셀의 메뉴처럼 바꿀 수 있도록 해봅시다.

Profile
9
Lv

4개의 댓글

Profile
아이스틴
18 일 전

오늘도 좋은강좌 감사합니다!

Profile
묘단
18 일 전

다음 강좌가 기대 됩니당!

Profile
슈가스
16 일 전

기대되네요ㅕ!

Profile
DC
1 일 전

기대가 됩니당

번호 제목 글쓴이 날짜 조회 수
공지 [강좌] 강좌 양식 wysohn 29 일 전 43
공지 [구문 공유] 구문 공유 양식 wysohn 29 일 전 35
[강좌] 2. 하이픽셀 같은 로비 메뉴 만들기 4 wysohn 18 일 전 45
1 [강좌] 1. 하이픽셀 같은 로비 메뉴 만들기 5 wysohn 20 일 전 114

 

 

게임스킨
https://www.koreaminecraft.net/files/thumbnails/915/046/001/262x150.crop.jpg

한마포 창작자

♪겨울왕국2 엘사 - 나이트가운(잠옷) 버전 (1.8ver.↑ ) 1

SIRI

2019-12-14

0

https://www.koreaminecraft.net/files/thumbnails/639/040/001/262x150.crop.jpg

한마포 창작자

♪겨울왕국2 안나 - 여행 드레스 버전 (1.8ver.↑ ) 11

SIRI

2019-12-11

2