개인 자료란 (JE)

  서버 커뮤니티

Profile 프란델 대표칭호 없음

Peurandel 3d3d482e35a54679a3c22d0f505dc661

Profile

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

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

2023.11.10 조회 수 152 추천 수 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/576/775/003/262x150.crop.jpg?20240426232553

아티클

이달의 블록: 단단한 진흙

학교가기싫다

2024-04-26

0

/files/thumbnails/115/774/003/262x150.crop.jpg?20240428135129

업데이트

마인크래프트 1.20.5 정식 업데이트

학교가기싫다

2024-04-24

0

/files/thumbnails/762/770/003/262x150.crop.jpg?20240418073724

레드스톤

T.B.H (고민중독) | 노트블럭 버전 | NoteBlock Cover [한국어 영어 중국어 가사 추가]

노트블럭전문가

2024-04-18

0

/files/thumbnails/218/767/003/262x150.crop.jpg?20240412130213

레드스톤

우리의 꿈 - 원피스 오프닝

노트블럭전문가

2024-04-12

0

/files/thumbnails/505/766/003/262x150.crop.jpg?20240411122306

레드스톤

기동전사 건담 수성의 마녀 | 노트블럭 커버 1

노트블럭전문가

2024-04-11

1

/files/thumbnails/932/765/003/262x150.crop.jpg?20240410124459

레드스톤

마인크래프트 노트블록으로 만든 『 밤양갱 (Bam Yang Gang) 』

노트블럭전문가

2024-04-10

0