carly42
대표칭호 없음
carly42 299bd61f88574c809cc2ac860725ee43
이해도 | 초보자 |
---|---|
게임버전 (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만 올라가도록 해결 방법이 있나요?
yusin12
2023.08.05limit의 뜻은 가장 마지막에 태어난 순서대로에요!
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아직 execute에 대하여 많이 알지 못해서 해결 방법을 몰랐는데 알려주셔서 감사합니다. 역시 execute는 파고들수록 할 수 있는 것이 많아지네요.
yusin12
2023.08.05헉! 그러타면 조금 강의를..ㅎㅎ
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뒤에 명령어를 실행한다!