개인 자료란 (JE)

  서버 커뮤니티

Profile lakunlakun 대표칭호 없음
Profile

질문하기 커맨드

커맨드 질문있어요!

2021.04.18 조회 수 160 추천 수 0

플레이어가 죽었을때 랜덤좌표에서 스폰되는 커맨드를 알고싶습니다!

그리고 플레이어가 플레이어위에 올라타는 방법도 알고싶습ㄴ디ㅏ!

또 플레이어가 고양이나 엔더맨 같은 탈수없는 엔티티에게 타는 방법도 알고싶습니다!

그리고 execute as @e[type=minecraft:snowball,scores={snow=12}] run data merge entity @s {Item:{id:glass,Count:1b}}
여기서 glass가 아니라 플레이어 머리로 바꿔서적용하는 방법도 알고싶습니다!
player_head{SkullOwner:닉네임} 하니깐 안되더라구요! 아시는 분들은 알려주세요!

13개의 댓글

허두
2021.04.19

1. death 스코어보드를 만들고, 해당 스코어보드가 1 이상으로 올라갔을 때 랜덤 값을 3개 구하여 해당 좌표에 아머스탠드를 이동시키고 (Pos NBT값 변경) 플레이어를 아머스탠드에 이동 후 아머스탠드 파괴, 스코어 0으로 초기화

2/3. 커맨드로는 엔티티 위에 타는 것이 불가능합니다. 간접적으로 탈 수 있게 만드는 방법도 해당 몹 위에 Passengers NBT를 이용하여 투명한 몹을 태워 그 몹 위에 올라타는 수밖에 없습니다.

4. {Item:{id:"minecraft:player_head",Count:1b,tag:{SkullOwner:닉네임}}}과 같이 쓰시면 될거에요. 혹시 여기에서 자기 자신의 머리를 원하신다면 데이터팩과 호환하여 사용할 수 있답니다.

lakunlakun
2021.04.20
@허두

1. 랜덤 값을 3개 구하는 것부터 자세하게 알려주실수있나요..?

허두
2021.04.21
@lakunlakun

초기 설정:

/scoreboard objectives add ezc_random dummy

/scoreboard players set -1 ezc_random -1

/scoreboard players set from ezc_random [최대 좌표값]

/scoreboard players set to ezc_random [최소 좌표값]

/gamerule doImmediateRespawn true


execute as @a if score @s death matches 1.. run tag @s add death

(이후 연쇄형)


랜덤 준비

summon minecraft:area_effect_cloud ~ ~ ~ {Duration:100,WaitTime:100,Age:1,Tags:["ezc_random"]}

summon minecraft:armor_stand ~ ~ ~ {Invisible:1b,Invulnerable:1b,Marker:1b,Tags:["random_as"]}


x 랜덤 구하기

execute store result score num ezc_random run data get entity @e[type=minecraft:area_effect_cloud,tag=ezc_random,limit=1] UUID[0]

execute if score num ezc_random matches ..0 run scoreboard players operation num ezc_random *= -1 ezc_random

scoreboard players operation num ezc_random %= to ezc_random

scoreboard players operation num ezc_random += from ezc_random

scoreboard players add num ezc_random 1

execute store result entity @e[type=armor_stand,tag=random_as,limit=1] Pos[0] float 1 run scoreboard players get num ezc_random


y 랜덤 구하기

execute store result score num ezc_random run data get entity @e[type=minecraft:area_effect_cloud,tag=ezc_random,limit=1] UUID[1]

execute if score num ezc_random matches ..0 run scoreboard players operation num ezc_random *= -1 ezc_random

scoreboard players operation num ezc_random %= to ezc_random

scoreboard players operation num ezc_random += from ezc_random

scoreboard players add num ezc_random 1

execute store result entity @e[type=armor_stand,tag=random_as,limit=1] Pos[1] float 1 run scoreboard players get num ezc_random


z 랜덤 구하기

execute store result score num ezc_random run data get entity @e[type=minecraft:area_effect_cloud,tag=ezc_random,limit=1] UUID[2]

execute if score num ezc_random matches ..0 run scoreboard players operation num ezc_random *= -1 ezc_random

scoreboard players operation num ezc_random %= to ezc_random

scoreboard players operation num ezc_random += from ezc_random

scoreboard players add num ezc_random 1

execute store result entity @e[type=armor_stand,tag=random_as,limit=1] Pos[2] float 1 run scoreboard players get num ezc_random


랜덤 정리

kill @e[type=minecraft:area_effect_cloud,tag=ezc_random]

tp @a[tag=death] @[type=minecraft:armor_stand,tag=random_as,limit=1]

kill @e[type=minecraft:armor_stand,tag=random_as,limit=1]

lakunlakun
2021.04.21
@허두

와! 감사합니다! 그런데.. 최대최소 좌표값 스코어보드에서 문제가 생겼습니다..

최대좌표 최소좌표적는 곳이 빨간색으로 뜹니다..

허두
2021.04.21
@lakunlakun

혹시 뭐라고 적으셨는지 써주실 수 있으실까요?

lakunlakun
2021.04.21
@허두

최대,최소에 그대로 좌표를 적었습니다..

허두
2021.04.21
@lakunlakun

아, 혹시 x,y,z를 따로 하시고 싶으신건가요?

그러면 명령어 자체를 분리해야겠네요.

위의 커맨드 가지고 응용 가능하실까요? 아니면 고쳐서 다시 써드릴까요?

lakunlakun
2021.04.21
@허두

고쳐서 써주시면 감사드리겠습니다..ㅠㅠ

그리고 괜찮으시다면 저 스코어보드를 어떻게 사용하고랜덤좌표를

어떻게 구하는지 이해하기 쉽게 알려주시면 감사드리겠습니다ㅠㅠ

허두
2021.04.21
@lakunlakun

ㅇ어어... 죄송합니다ㅠ 쉬운 길을 빙글빙글 돌아가고 있었네요ㅜㅜ 아주 좋은 명령어가 있었는데...

 

초기 설정: /gamerule doImmediateRespawn true

 

execute as @a if score @s death matches 1.. run tag @s add death

spreadplayers 0 0 10 100 false @a[tag=death]

tag @a[tag=death] remove death

 

이렇게 3개 반복으로 돌려주시면 됩니다.

0 0 부분은 플레이어를 흩뿌릴 범위의 중심입니다. (x,z좌표)

10 부분은 0.05초 안에 죽은 플레이어가 둘 이상일 때 플레이어간의 거리이고

100 부분은 중심으로부터의 반지름을 적어주시면 됩니다. 해당 거리까지가 범위가 됩니다.

 

기본적으로 /spreadplayers는 해당 좌표에서 가장 높이 있는 블록으로 플레이어를 이동시킵니다.

lakunlakun
2021.04.24
@허두

안되네용..ㅠㅠ

허두
2021.04.24
@lakunlakun

테스트 결과 잘 되는데요?

 

아래 초기설정 둘다 하셨는지 한번 확인해보세요

/scoreboard objectives add death deathCount

/gamerule doImmediateRespawn true

그리고 반복으로 계속 돌리고 계셨던거 맞으셨나요?

 

아, 그리고 점수 초기화를 안해줬네요ㅠ

spreadplayers 명령어와 tag 명령어 사이에 아래 명령어 넣어주세요!

scoreboard players reset @a[tag=death] death

lakunlakun
2021.04.24
@허두

scoreboard players reset @a[tag=death] death 붙이고나서 부터 잘되네요!!

붙이기 전에는 이상한데로 계속 이동되고.. 감사합니다!!

허두
2021.04.24
@lakunlakun

아하... 초기화 명령어 안알려드린 제 잘못이었군요ㅠ 죄송합니다

해결되셨다니 다행입니다! :)

뉴스 및 창작물
/files/thumbnails/761/908/003/262x150.crop.jpg?20241025153749

건축

서울 숭례문(崇禮門) 4

KHC

2024-10-25

2

/files/thumbnails/578/899/003/262x150.crop.jpg?20241010142350

건축

경주 월정교 1

KHC

2024-10-10

2

/files/thumbnails/219/899/003/262x150.crop.jpg?20241009200950

건축

송전탑+도시 2

dbasd12

2024-10-09

2

/files/thumbnails/246/898/003/262x150.crop.jpg?20241008102328

레드스톤

단다단 - 오토노케(オトノケ) | 마인크래프트 노트블럭 커버

노트블럭전문가

2024-10-08

1

/files/thumbnails/348/896/003/262x150.crop.jpg?20241006103035

디도스/봇테러등등을 낚는 방법 4

물귀신

2024-10-06

3