개인 자료란 (JE)

  서버 커뮤니티

Profile 프란델 대표칭호 없음

Peurandel 3d3d482e35a54679a3c22d0f505dc661

Profile

강좌 자바 에디션(JE) 커맨드 꿀팁

[데이터팩 테크닉] 1. 기초

2023.11.10 조회 수 170 추천 수 0
게임버전 1.13.x, 1.14.x, 1.15.x, 1.16.x, 1.17.x, 1.18.x, 1.19.x, 1.20.x 

* 주의 해당 강좌는 초보를 위한 강좌가 아니며, 커맨드의 모든 문법에 대해 숙지하고 있어야합니다.


이번글 목차

- 1. 기본세팅

- 2. 세컨드 @s


1. 기본세팅

당신이 커맨드로 컨텐츠를 제작할때 가장 큰 문제를 하나 손꼽으라고 한다면 여러가지가 있지만 난 렉을 선택할 것이다.

이 글을 읽는 많은 사람도 이 문제를 겪었을 것이다.

커맨드가 렉걸리는 이유는 무엇일까?

말해뭐해 당연히 엔티티다. 

그중에서도. 타겟셀렉터 ( @e, @a, @s 등 )

이 녀석의 원리는 @e를 기준으로 모든 엔티티를 일단 호출한 다음 셀렉터의 조건 인자들에 부합하는 엔티티들을 "하나하나 비교하여" 엔티티를 셀렉팅한다.

이는 커맨드에 타겟셀렉터가 작성될때마다 거치는 과정이며 

설마 당신의 타겟셀렉터가 단 한마리의 엔티티만을 가리키더라도 이 과정은 거치기에 미세한 렉을 발생시킨다.


그렇기에 우리는 @s를 적극 사용하여야한다.


give @e[tag=a] stick 1

execute at @e[tag=a] run fill x y z.....

scoreboard players add @e[tag=a] score 1


우린 이런식의 커맨드를 

execute as @e[tag=a] at @s run function

#give @s stick 1

#fill x y z......

#scoreboard players add @s score 1

로 바꿔 쓸 수 있다. 둘은 정확히 같은 작업을 수행하지만, 타겟셀렉터가 호출되면서 낭비하는 연산들이 유의미하게 줄어들고 @e[tag=a] 를 포함해야하는 커맨드가 늘어날수록 이방식은 더더욱 효과적인 시너지를 일으킨다.

이것은 단순히 최적화의 효과만을 낳진 않는다.

*(중요)각각의 엔티티가 위 커맨드들을 모두 실행한 다음, 다음 엔티티가 실행하기 때문에 기존 커맨드블럭에서 작업하던 방식이 주던 엔티티 오차 현상 ( 정확히 동일 좌표에서 동일 조건의 다른 엔티티가 커맨드를 실행한다던지, 마커와 돼지와 같이 일대일 대응하던 두 종류의 엔티티 집단에서 필연적인 연산 에러가 발생한다던지 )이 완화될 수 있다.


2. 세컨드 @s

만약 당신이 총을 쏜다고 가정하자. 총알은 재귀함수로 앞으로 이동하며 맞은 엔티티에게 대미지를 가한다.

다만 이 총알이 플레이어의 위치에서부터 출발한다면 분명 당신도 총알에 맞을 것이다.

이걸 방지하기 위해 우린 세컨드 @s가 필요하다.


세컨드 @s 실행자를 호출할 수 있는 또다른 셀렉터를 구축하는 작업이다.

우린 tag를 통해 제2의 셀렉터를 구축할 수 있다.

execute as @e[tag=a] at @s run function

#tag @s add this

#summon marker ~ ~ ~ {Tags:[bullet]} //총알

#execute as @e[tag=bullet] at @s run function

##대충 구문들

##damage @e[tag=!this,distance=..0.5] 10 by @s //태그가 this인 엔티티에게 데미지를 가한다.

#kill @e[tag=bullet]

#tag @s remove this


이것 또한 execute의 인자 as가 타겟셀렉터 조건에 부합하는 첫번째 엔티티를 호출하고 run 뒤 명령어를 완벽히 실행한 다음에 그 다음 엔티티가 똑같은 작업을 반복하는 원리를 이용한 것이다.




Warning
댓글이 없습니다.

새로운 댓글을 등록해 주세요!

뉴스 및 창작물
/files/thumbnails/712/796/003/262x150.crop.jpg?20240525085438

레드스톤

마인크래프트 노트블록으로 만든 『 봄을 고하다 (春を告げる) 』

Sonttukk

2024-05-25

0

/files/thumbnails/268/789/003/262x150.crop.jpg?20240515192032

레드스톤

벌레먹은 돌 빠르게 제거하는 법

GlassesFilm

2024-05-15

0

/files/thumbnails/797/788/003/262x150.crop.jpg?20240515090924

건축

마인크래프트로 구현한 카르카손 보드게임

Warak

2024-05-15

1

/files/thumbnails/487/784/003/262x150.crop.jpg?20240508233607

모드

Windows Borderless 모드에서 악성코드 발견 3

학교가기싫다

2024-05-08

1

/files/thumbnails/384/778/003/262x150.crop.jpg?20240512002324

업데이트

마인크래프트 자바 에디션 스냅샷 24w18a

학교가기싫다

2024-05-06

0

/files/thumbnails/855/781/003/262x150.crop.jpg?20240505141129

레드스톤

레이저 클리너

GlassesFilm

2024-05-05

1