개인 자료란 (JE)

  서버 커뮤니티

Profile TRB 대표칭호 없음

TrB_03_ a91ddd438ae0484d8f06219af30d4486

Profile

질문하기 커맨드

마인크래프트 1.15.2 execute 엔티티 반경 범위 감지 > 실행

2020.04.09 조회 수 2344 추천 수 0

마인크래프트에서 주로 건축이나 간단한 커맨드 (tp나 setblock 등)만 깨작거리다,
최근 커맨드를 통해 친구들끼리 하고자 하는 것을 개발하려고 하는 execute 명령어 입문자입니다.

사용하는 마인크래프트 버전은 1.15.2 버전입니다.

일단 지금 만들고 있는 건 터렛? 이라고 해야하나... 그런 건데, execute 명령어를 어떤 식으로 작동시켜야 한다는 정도는
대충 계획이 잡히는데, 정작 그 작동시키는 방법을 몰라 질문을 올립니다...

지금 친구들과 하고 있는 반야생 서버(포트포워딩을 통한 공개 서버가 아니라 친구들끼리만 하는 하마치 서버)에서
쓰게 될 터렛인데, 필요한 것은 터렛으로 등록된 엔티티의 주변에 특정 몬스터가 오면 자동으로 공격해주는 그런 기능을
구현해보고자 하고 있습니다.

왼손감지 명령어를 통해 서바이벌 플레이어가 특정 아이템으로 AI가 없는 터렛으로 쓰일 엔티티를 스폰하는 것 까진
어떻게든 구현했습니다만, 이제 터렛 엔티티(현재는 주민으로 했습니다)가 가장 가까운 특정 몬스터(지금은 크리퍼)를
공격하는(run effect를 통해 디버프를 걸거나, 화살 혹은 화염구 등을 날려 공격하는 등) 명령어에서 막혔습니다...

/execute if entity @e[type=minecraft:creeper] at ....
이런 식으로 이어나가지 않을까 대략 예상만 하고 있습니다.

혹시 커맨드나 명령어, 특히 execute 구문 능력자분들이 친절히 알려주셨으면 합니다...

1. 주민이 반경 x블록 이내로 다가온 크리퍼를 감지하는 명령어
2. 크리퍼가 감지되면, 그 크리퍼에게 투사체를(화살, 화염구, 눈덩이, 블록 등 어떤 것이든 무관합니다.) 날리거나,
소환사 우민의 마법 공격(집게발..?)을 소환해 공격하는 등 데미지를 줄 수단이 포함된 예제
3. 만약 여러 마리의 크리퍼가 감지될 경우, 주민으로부터 가장 가까운 크리퍼를 타겟으로 하는 방법

3가지 모두 가능한지 여부와, 가능하다면 예제 구문 한 줄씩이라도 부탁드립니다...
연쇄 커맨드블록 등을 사용해야 구현 가능해 매우 길어지게 될 것 같은데... 수고스러우시겠지만 커맨드 뉴비 하나
가르친다는 생각으로... 꼭 좀 부탁드리겠습니다.


6개의 댓글

허두
2020.04.09

주민에게 마우스 포인터(십자가)를 두고 먼저 turret 태그를 붙여줍시다.

/tag 주민UUID(십자가를 갖다댄 채로 채팅창을 키면 영어,숫자, 기호로 이루어진UUID가 나옵니다) add turret


대충 3개의 질문을 요약하면,

가장 가까운 크리퍼 1마리에게 공격을 가하는(마법을 거는) 커멘드를 말씀하시는 것 같은데..

투사체를 발사하는 커멘드는 조금 어려운 관계로..(마크를 켜서 실험해봐야 하는데 지금 그럴 여건이 안되어.. 양해바랍니다ㅜㅜ)

독 효과를 거는 커멘드로 대체하도록 하겠습니다.


독 효과를 거는 커멘드:

/execute at @e[type=villager,tag=turret] as @e[type=creeper,limit=1,sort=nearest] run effect @s poison 1 1 true


부연 설명


at @e[type=villager,tag=turret]

turret 태그가 분은 주민의 위치에서 (위치 지정, 이 이후의 커멘드들은 모두 이 위치에서 실행되게 됩니다.)

as @e[type=creeper,limit=1,sort=nearest]

한 마리의 가장 가까운 크리퍼가 (실행자 지정, 이 이후의 커멘드들은 모두 해당 크리퍼에게서 실행되게 됩니다.)

@s

자기 자신에게 (현재 실행자는 크리퍼로, 크리퍼가 자기 자신에게 걸게 됩니다.)

poison 1 1 true

1초동안(앞의 1) 1만큼(뒤의 1) 효과 입자는 보이지 않는(true) 독(poison) 효과


혹시라도 투사체를 쏘거나, 더 강한 데미지를 원하신다면 답글달아주세요!

여러가지 실험을 해본 후 가장 쉬운 커멘드로 다시 도움드리겠습니다 :D

허두
2020.04.09
@허두

+ EZCommand 게시판에서 1.13+ execute 커멘드에 관한 강좌를 진행하고 있습니다.

아직 많이 없지만, 점점 많이 늘려나갈 계획이니 관심있으시다면 들려주시면 감사하겠습니다 :)

http://ezcommand.kro.kr

TRB
2020.04.09
@허두

답변 댓글 정말 감사드립니다..! 꼭 한번 테스트 해 보고 열심히 노력해보겠습니다..!

강좌도 언제 한번 시간 나면 들려봐야지요! 감사합니다!

+ 혹시 투사체를 발사하는 커맨드는 어떤 식으로 이루어지는지 알려주실 수 있을까요...?
    일단 알려주시는대로 라도 만드는 김에 테스트해보려고 합니다..!

허두
2020.04.10
@TRB

아, 그리고 특정 범위를 까먹었네요

as 뒤에 @e[type=creeper,limit=1,sort=nearest,distance=..n] 로 바꿔주시면 됩니다.

(distance=..n에서 n에는 범위의 정수값을 적어주시면 된답니다)

허두
2020.04.10
@허두

https://www.koreaminecraft.net/ezcommand/1553461

 

댓글로 달기에는 좀 분량이 길어서;;

이곳에 투사체를 이용한 방법을 설명해놓았습니다!

TRB
2020.04.11
@허두

늦게 확인했네요... 감사합니다!