개인 자료란 (JE)

  서버 커뮤니티

Profile killgta 대표칭호 없음
Profile

질문하기 커맨드

커맨드만으로 총만드는법 (버전:1.13.2)

2019.02.24 조회 수 3528 추천 수 0

커맨드 따로 질문하는 곳이 없길레 원커맨드 관련으로 질문 넣습니다.

리퍼 원커맨드 같은거  보면  당근낚시대로  총쏘던데  그냥 바라보는 시선앞 범위에 있는 적에게 데미지 주고 파티클로 표현만 한건가요? 
아니면 summon 으로 화염구처럼  일직선으로 나가는게 따로 있는건가요?  
 

6개의 댓글

꿀돼지
2019.02.25

화염구를 소환해서 그걸 그대로 보고있는방향으로 "화염구"엔티티를 텔레포트시키는건데 그걸 빠르게 하면 날라가는것처럼

보이는거지 진짜 처음부터 날아가는 화염구는 없어요. 화염구를 소환햇을때는 가만히 있는데 그걸 텔레포트 시키거나 때려야만 앞으로가지기 때문에 원커맨드로 엄청나게 커맨드를 짜서 한거에요. 그냥 날라가는 명령어는 없습니다.

kdhwmanse
2020.03.20
@꿀돼지

그냥 날라가는 명령어도 당연히 있습니다.

summon fireball ~ ~ ~ {Direction:[0.0,1.0,0.0]} 이런식이면 화염구가 위로 날라간답니다 :/

서재형
2020.06.01
@kdhwmanse

그렇게하면 일정 좌표로만 날아가요. 그리고 위에분 엄청나게까진 아닙니다. 1.15.2 기준 10개쯤이면 끝이죠. 그리고 원커맨드는 많은 커맨드를 압축해서 한개의 커맨드로 만든건데 압축도 아니죠. 커맨드블럭 설치 기계랄까?

서재형
2020.06.01

일단 여러 방법이 있는데 f키를 눌렀을 때 가게 할건가, 당근 낚싯대를 우클릭했을때 가게 할건가를 정해야 해요.

일단 당근낚싯대:

일단 /scoreboard objectives add use minecraft.used:minecraft.carrot_on_a_stick 라는 명령어를 명령어 창에 한번만 쳐주세요. 우클릭 감지하는거예요.

그리고 /scoreboard objectives add life dummy 로 life라는 스코어보드를 만들어줍니다.

이제부턴 반복/연쇄에 넣으세요

 

execute as @a[scores={use=1..}] at @s run summon armor_stand ^ ^ ^1 {Marker:1b,Invisible:1b,Tags:["bullet","spawned"]}

 

execute as @e[tag=spawned] at @s facing entity @a[scores={use=1..}] feet run tp ~ ~ ~

 

scoreboard players set @e[tag=spawned] life 500

 

tag @e remove spawned

 

execute at @e[tag=bullet] run 원하는 파티클 명령어 넣으세요. 추천하는건 particle crit ~ ~ ~ 0 0 0 0.5 10

 

이제 데미지 시스템 시작

1.15:

execute at @e[tag=bullet] run effect @e[type=!#skeleton] instant_damage 1 1 true

execute at @e[tag=bullet] run effect @e[type=#skeleton] instant_health 1 1 true

 

1.13:

tag @e[type=skeleton] skeleton

tag @e[type=stray] skeleton

tag @e[type=wither_skeleton] skeleton

tag @e[type=zombie] skeleton

tag @e[type=husk] skeleton

tag @e[type=zombie_villager] skeleton

tag @e[type=zombie_pigman] skeleton

tag @e[type=drowned] skeleton

tag @e[type=zombie_horse] skeleton

tag @e[type=skeleton_horse] skeleton

tag @e[type=phantom] skeleton

execute at @e[tag=bullet] run effect @e[tag=!skeleton] instant_damage 1 1 true

execute at @e[tag=bullet] run effect @e[tag=skeleton] instant_health 1 1 true

 

데미지 시스템 끝! 참고로 데미지 시스템은 위더나 엔더드래곤에겐 소용이 없습니다

 

execute as @e[tag=bullet] at @s run tp ^ ^ ^-1

 

scoreboard players remove @e[tag=bullet] life 1

 

kill @e[tag=bullet,scores={life=..1}]

 

scoreboard players reset @a use

 

완성!!! 그리고 f키 방법이 궁금하시거나 설명이 필요하시거나 오류가 나시면 댓글로 물어보세요

서재형
2020.06.01
@서재형

여기에 쿨타임을 추가하시려면 /scoreboard objectives add cool dummy 로 하나 생성 하고,

커맨드 맨처음에:

scoreboard players reset @a[scores={cool=1..}] use

 

커맨드 맨끝(scoreboard players reset @a use 랑 kill @e[tag=bullet,scores={life=..1}] 사이)에:

scoreboard players set @a[scores={use=1..}] cool 쿨타임(20은 1초)

scoreboard players remove @a[scores={cool=1..}] cool 1

scoreboard players reset @a[scores={cool=..2}] cool

Ba_koD
2020.08.24

일단 다인용을 염두해서 만들긴 했는데 플레이어간의 거리가 너무 가까울 경우 문제를 일으킬 수 있습니다. 또한 총알의 사거리를 안정해놨음. 당근 낚시대 우클릭시 실행되도록 함.

설정해야하는 커맨드

/scoreboard objectives add trigger minecraft.used:minecraft.carrot_on_a_stick

/scoreboard objectives add x dummy

/scoreboard objectives add y dummy

/scoreboard objectives add z dummy

 

execute as @a[scores={trigger=1..}] at @s anchored eyes run summon minecraft:snowball ^ ^ ^1 {NoGravity:1b,Tags:["bullet"],Item:{id:"minecraft:iron_block",Count:1b}}

execute at @a[scores={trigger1..}] as @e[type=snowball,tag=bullet,sort=nearest,limit=1] store result score @s x run data get entity @s Pos[0] 50

execute at @a[scores={trigger1..}] as @e[type=snowball,tag=bullet,sort=nearest,limit=1] store result score @s y run data get entity @s Pos[1] 50

execute at @a[scores={trigger1..}] as @e[type=snowball,tag=bullet,sort=nearest,limit=1] store result score @s z run data get entity @s Pos[2] 50

execute as @a[scores={trigger1..}] store result score @s x run data get entity @s Pos[0] 50

execute as @a[scores={trigger1..}] store result score @s y run data get entity @s Pos[1] 50

execute as @a[scores={trigger1..}] store result score @s z run data get entity @s Pos[2] 50

execute as @a[scores={trigger1..}] at @s run scoreboard players operation @e[type=snowball,tag=bullet,sort=nearest,limit=1] x -= @s x

execute as @a[scores={trigger1..}] at @s run scoreboard players operation @e[type=snowball,tag=bullet,sort=nearest,limit=1] y -= @s y

execute at @a[scores={trigger1..}] as @e[type=snowball,tag=bullet,sort=nearest,limit=1] scoreboard players remove @s y 80

execute as @a[scores={trigger1..}] at @s run scoreboard players operation @e[type=snowball,tag=bullet,sort=nearest,limit=1] z -= @s z

execute at @a[scores={trigger1..}] as @e[type=snowball,tag=bullet,sort=nearest,limit=1] store result entity @s Motion[0] double 0.02 run scoreboard players get @s x

execute at @a[scores={trigger1..}] as @e[type=snowball,tag=bullet,sort=nearest,limit=1] store result entity @s Motion[1] double 0.02 run scoreboard players get @s y

execute at @a[scores={trigger1..}] as @e[type=snowball,tag=bullet,sort=nearest,limit=1] store result entity @s Motion[2] double 0.02 run scoreboard players get @s z

scoreboard players set @a[scores={trigger=1..}] trigger 0

 

맨처음에 명령어부터 순서대로 쭉이으시면되는데 아마 보정을 제대로 안해서 뭔가 이상할 수 있는데 그건 그때가서 생각하죠