개인 자료란 (JE)

  서버 커뮤니티

Profile 사랑에냐핫 대표칭호 없음
Profile

질문하기 스크립트

스크립트중에 특정아이템 인벤토리 인식하는거 없나요?

2020.09.10 조회 수 1072 추천 수 0
이해도 1.16 
게임버전 (JE) 스피곳 
게임버전 (BE) 감도 안잡혀서 모르겠슴 
스크립트 애드온 1.16 버전 이상 2.3 이상인걸로 기억 

마인크래프트 인벤토리에서 특정 아이템을 가지고 있으면 자기가 그 아이템을 들지 않아도  버프 주는거 하고싶은데 이벤트 트리거 모아둔 사이트나 아무리 봐도 인벤토리 아이템 감지하는걸 찾기가 어려워서 영어로 작성하는법을 알아도 이벤트나 그런거 때문에 아직까진 감이 안잡히네요


예) 인벤토리에 [아이템] 이라는 이름이 있으면

그 플레이어 에게 신속 버프 1을 준다


대충 요런식이에요

1개의 댓글

스크립터브혼
2020.09.11

본문에서도 쓰셧듯이 "~이면"이라고 하는것은 조건에 해당합니다.
조건은 스크립트 문법 중 조건문에 해당됩니다.

어느 "상황"에 인벤토리를 감지하여 해당 조건을 확인할지 정의하셔야합니다.
상황은 스크립트 요소 중 이벤트에 해당됩니다.

인벤토리 내에 아이템이 있는 "동안" 버프가 지속적으로 유지 되야한다면
반복적으로 인벤토리를 감지하여 조건을 확인해야 겠죠.
반복은 스크립트 문법 중 반복문에 해당됩니다.


스크립트는 이벤트로부터 코드가 시작됩니다.
조건, 반복은 문법일 뿐 이벤트가 아닙니다.



첫번째로 체크할 것은 "언제 인벤토리가 수정되는가?" 입니다.
Q키로 아이템을 드랍할 때, 내구도가 닳아서 파괴될 때, 인벤토리의 아이템을 클릭할 때, 죽어서 아이템을 드랍할 때, 음식을 먹을 때, 땅에 떨어진 아이템을 습득할 때 등등...
이러한 모든 상황 중에 언제 조건을 확인할 것인가를 결정하고 조건이 만족 될 경우 반복문을 실행해야합니다.

두번째로 체크할 것은 "반복문은 반드시 한번만 실행되야한다"는 겁니다.
이벤트는 특정 상황이면 실행됩니다. 같은 상황이 오면 또 실행되죠.
당연히 조건도 반복적으로 확인하게 됩니다. 반복문이 중첩되어 실행되는거죠.
이런 경우 보통 반복문이 실행되었는가를 확인하는 변수를 하나 생성해두고
실행되지 않았으면 반복문을 실행하고 실행되었음을 기록합니다.
그리고 반복문이 끝날 때 실행되지않음으로 값을 수정하죠.

이 두가지를 염두하고 코드를 작성하셔야합니다.



조건문, 반복문, 이벤트 등이 뭔지 모른다면 지금 만드려고하는 기능은 아직 도전할 단계가 아닙니다.
스크립트를 서버에 처음 설치하면 예제파일이 여러개 생성됩니다.
먼저 예제파일을 읽고, 해석하고, 수정할 수 있는 기초스킬부터 쌓으시길바랍니다.