- 플레이어가 위치한 좌표를 사용한 좌표 단위 판단 (각 좌표를 저장 할 다수의 변수 필요)
- 직육면체 공간의 두 대각 꼭지점의 x, y, z 성분으로 플레이어의 위치가 중첩되는지 판단 ( 대각꼭지점을 저장할 변수 두개 필요)
- 구 공간의 원점 좌표와 플레이어 사이의 거리를 측정하여 판단 (원점 좌표 변수 한개 필요)
... 등등
구성하기 나름입니다.
2. 마찬가지로 엔티티를 특정하는 것도 다양하게 구성될 수 있겠죠.
3. 엔티티가 범위에 포함되는지 확인하려면 반복시행이 필요합니다.
보통 Periodical 이벤트를 사용하는데, 이것보다는 on move 이벤트나 on Join - while 패턴을 사용하는 것이 좋다고 생각합니다.
반복시행에서 플레이어가 범위에 포함되는지 계속 확인하면서, 포함된다면 원하는 코드를 실행하도록 구성하면 됩니다.
# Periodical Event
every 1 tick:
<condition>
# code
# on Move Event
on player move:
<condition>
# code
# on Join - While Pattern
on join:
while player is online:
wait 1 tick
<condition>
# code
4. 1에서 설명했듯이 범위를 정의하는 방식에 따라 데이터가 달라지므로 랜덤한 좌표를 구하는 방식도 달라집니다.
청크의 경우 청크의 x, y를 좌표로 변환하여 해당 영역의 x, y ,z 성분의 범위에서 랜덤한 각각의 값을 구하여 생성합니다.
좌표의 경우 좌표 리스트에서 랜덤 추출하는 것으로 구할 수 있고
직육면체는 [Blocks] 익스프레션의 within 패턴으로 영역의 블록을 받아서 랜덤 추출 하면 됩니다.
구는 [Block Sphere] 익스프레션으로 영역의 블록을 받아서 랜덤 추출하면 됩니다.
엔티티의 생성은 [Spawn] 이펙트, 블록의 생성은 [Set] 이펙트를 사용하면 됩니다.
# ex. spawn
spawn 3 creepers at the targeted block
# ex. set
set block at location of player to stone
스크립터브혼
2021.07.261. 범위를 특정하는 방법은 다양합니다.
- 플레이어가 위치한 청크를 사용한 청크 단위 판단 (청크 정보를 저장할 변수 필요)
- 플레이어가 위치한 좌표를 사용한 좌표 단위 판단 (각 좌표를 저장 할 다수의 변수 필요)
- 직육면체 공간의 두 대각 꼭지점의 x, y, z 성분으로 플레이어의 위치가 중첩되는지 판단 ( 대각꼭지점을 저장할 변수 두개 필요)
- 구 공간의 원점 좌표와 플레이어 사이의 거리를 측정하여 판단 (원점 좌표 변수 한개 필요)
... 등등
구성하기 나름입니다.
2. 마찬가지로 엔티티를 특정하는 것도 다양하게 구성될 수 있겠죠.
3. 엔티티가 범위에 포함되는지 확인하려면 반복시행이 필요합니다.
보통 Periodical 이벤트를 사용하는데, 이것보다는 on move 이벤트나 on Join - while 패턴을 사용하는 것이 좋다고 생각합니다.
반복시행에서 플레이어가 범위에 포함되는지 계속 확인하면서, 포함된다면 원하는 코드를 실행하도록 구성하면 됩니다.
4. 1에서 설명했듯이 범위를 정의하는 방식에 따라 데이터가 달라지므로 랜덤한 좌표를 구하는 방식도 달라집니다.
청크의 경우 청크의 x, y를 좌표로 변환하여 해당 영역의 x, y ,z 성분의 범위에서 랜덤한 각각의 값을 구하여 생성합니다.
좌표의 경우 좌표 리스트에서 랜덤 추출하는 것으로 구할 수 있고
직육면체는 [Blocks] 익스프레션의 within 패턴으로 영역의 블록을 받아서 랜덤 추출 하면 됩니다.
구는 [Block Sphere] 익스프레션으로 영역의 블록을 받아서 랜덤 추출하면 됩니다.
엔티티의 생성은 [Spawn] 이펙트, 블록의 생성은 [Set] 이펙트를 사용하면 됩니다.
빛나는토마토
2021.07.27답변 감사드립니다.!