개인 자료란 (JE)

  서버 커뮤니티

Profile 빛나는토마토 대표칭호 없음

Tomato105 4a7a3e2f6add4cc7bbe412b198b15cbd

Profile

질문하기 스크립트

스크립트 질문

2021.07.23 조회 수 331 추천 수 0
이해도 1.16 
게임버전 (JE) 페이퍼 

1.타겟된 블럭 또는 엔티티의 위치에 특정 파티클 같은것을 소환하려면 어떻게 해야 하나요?

2.마인크래프트 명령어를 스크립트에서 사용하려면 어떻게 해야 하나요?

3.바닥에 드랍된 아이템에 종류에 따라 다른 스크립트가 적용되게 하려면 어떻게 해야 하나요?

+ 4.배열변수 루프문 안에 배열변수 루프문이 있는 경우에는 loop-index 또는 loop-value 뒤에 -1,-2,-3 같이 숫자를 붙여야 한다던데 그 숫자들은 루프문의 순서대로 인가요?

+ 5.변수의 값을 특정 엔티티의 특정 좌표로 설정하려면 어떻게 해야 하나요?




2개의 댓글

스크립터브혼
2021.07.23

1. [SkBee - Particle Spawn] 이펙트를 사용해보세요. 페이지 아래에 View Examples를 눌러보시면 예제도 있습니다.


2. [Command] 이펙트 사용하시면 됩니다.

> execute console command "/say Hello everyone!" 


3. 바닥에 드랍된 아이템은 dropped item으로 받을 수 있고, [Item of an Entity] 익스프레션으로 드랍된 아이템 엔티티에서 아이템을 받을 수 있습니다.

> item of dropped item


4. 네. 중첩된 루프의 순서대로 입니다.

한가지 더 아셔야 할 점은 Loop Value의 패턴에서 숫자이면 loop-integer, 글자면 loop-text 등과 같이 루프한 타입에 따라 지정을 할 수 있습니다. 변수는 모든 타입의 데이터를 저장 할 수 있기 때문에 변수의 타입은 최상위 슈퍼타입인 Object 입니다. loop-value가 바로 이 object 타입의 Loop Value 패턴입니다.

loop "a" and "b", "c":
    loop integer from 0 to 5:
        send "%loop-text% - %loop-integer%"
        send "%loop-value-1% - %loop-value-2%"

이 예시와 같이 loop의 타입이 다른 경우 중첩이라도 숫자를 붙일 필요가 없습니다.

같은 타입의 loop value인 경우에만 숫자를 붙여 타겟 루프를 명시하는 것입니다.


5. 플레이어의 좌표를 변수에 주기적으로 업데이트하려면 다음 패턴을 사용하시면 편리합니다.

on join:
    while player is online:
        wait 1 tick
        set {loc} to location of player

이처럼 어떤 이벤트로부터 엔티티를 특정할 수 있을 때(on spawn 이벤트 같은) [is Online] 컨디션이나 [is Alive] 컨디션을 사용하여 엔티티가 서버에 존재하는 동안 무한이 반복하는 루프를 생성 할수 있습니다.


주의하실 점은 플레이어의 1 tick 보다 짧은 시간동안 로그아웃-로그인 할 수 없기에 괜찮지만,

지연시간을 길게 한 경우에 지연시간 동안 재접속할 시 while이 두번 실행 될 수 있음을 감안하셔야합니다.

빛나는토마토
2021.07.24
@스크립터브혼

답변에 정말 감사드립니다!