개인 자료란 (JE)

  서버 커뮤니티

Profile carly42 대표칭호 없음

carly42 299bd61f88574c809cc2ac860725ee43

Profile

질문하기 커맨드

인터랙션 관련 질문

2023.08.05 조회 수 126 추천 수 0
이해도 초보자 
게임버전 (JE) 1.19.4, 1.20, 1.20.1 
게임버전 (BE) 관련없음 

/scoreboard objectives add interaction_test dummy

먼저 아무 이름의 스코어보드를 만들어주고


/summon interaction ~ ~ ~ {width:1f,height:1f,Tags:["test"]}

"test" 라는 tag를 가진 인터랙션을 2개 소환하고


/execute as @e[tag=test] on target run scoreboard players add @a interaction_test 1 (반복)

/data remove entity @e[tag=test,limit=1] interaction (연쇄)

인터랙션을 우클릭 했을 때 스코어보드 점수를 1씩 주는 커맨드를 만들었을 때


아무 인터랙션 1개를 우클릭하면 점수가 1만 올라가는게 아니라 계속 올라가는데

아무 인터랙션 1개를 우클릭해도 점수가 1만 올라가도록 해결 방법이 있나요?



3개의 댓글

yusin12
2023.08.05

limit의 뜻은 가장 마지막에 태어난 순서대로에요!

 

limit=1 가장 마지막에 태어난 녀석!

limit=2 가장 마지막에 태어난 녀석과 그 다음에 태어난 녀석!

 

이런 식이기 때문에

 

데이터를 초기화가 안될 수도 있어요!

A를 소환하고 B를 소환하고 limit=1을 쓰면 B만 감지되니깐요!!

 

해결 법은 execute!!

 

1. execute as @e[tag=test] on target at @s run scoreboard players add @s interaction_test 1

 

2. execute as @e[tag=test] at @s run data remove entity @s interaction

 

이렇게요!

carly42
2023.08.05
@yusin12

아직 execute에 대하여 많이 알지 못해서 해결 방법을 몰랐는데 알려주셔서 감사합니다. 역시 execute는 파고들수록 할 수 있는 것이 많아지네요.

yusin12
2023.08.05
@carly42

헉! 그러타면 조금 강의를..ㅎㅎ

 

as는 대상을 정해줘요!

 

execute as @e[type=husk] run particle ~ ~

이라고 쓰면 허스크라는 대상이있으면 run 뒤에 파티클이 실행하라~ 이런 뜻이에요!

그래서 제 강의에서는 만약 선탠인자가 존재한다면~~ 이라고 해석하라고 했어요!

 

 

at은 대상을 정해주는 친구에요!

execute at @e[type=husk] run particle ~ ~

이라고 하면 모든 허스크가 위치가 되요!

 

네? 위치가 안정해지면요?

 

execute as @e[type=husk] run particle ~ ~ 이 명령어에서! 대상만 정해주고 위치는 안정해줬죠?

그럼 자동으로 커맨드 블록이 위치가 되요!(명령어를 실행하는 장소가 곧 위치, 그래서 플레이어가 파티클 명령어를 써도 자신의 위치에서 나옴./플레이어가 give @s diamond 1을 친걸 execute로 바꾸면 execute as @p at @s run give @s diamond 1)

 

이기 때문에!

 

execuet as @e[tag=test] at @s run data ~ ~ 라고 한다면...

태그가 'test'인 모든 엔티티가 존재한다면...

그 대상을 기준으로...

run뒤에 명령어를 실행한다!