마인크래프트 질문 - 보고있는 대상에게 명령어가 발동되게 해보자

2021. 3. 26. 15:39·마인크래프트 강좌/명령어 강좌
반응형

 

우선 마인크래프트에서는 바라보고 있는 대상을 감지할 수 있는 요소가 존재하지 않습니다.

즉, 우회하는 방법을 사용해야합니다.

 

여기에는 데이터팩의 함수가 꼭 필요합니다. 우선 데이터팩을 만들어주세요. 모른다면 여기로

potangaming.tistory.com/275

 

마인크래프트 데이터팩 강좌 [2] - 데이터 팩 만들기

안녕하세요 Potan입니다. 이번 시간에는 데이터팩을 제작해보겠습니다. 마인크래프트 자바에디션 1.16.4를 바탕으로 제작되었습니다. 마인크래프트 세이브파일의 위치 찾기와 같은 기본적인 요소

potangaming.tistory.com

 

 

우선 함수가 하나 필요합니다.

#제대로 작동하는지 확인하기 위한 파티클입니다. (1)
particle crit ~ ~ ~ 0 0 0 0 1
#함수를 이용하는 이유입니다. (2)
execute if block ~ ~ ~ air positioned ^ ^ ^0.5 run function potan:raycast #이 함수를 다시 실행시켜주세요

(1) 함수가 제대로 작동하는지 확인하기 위한 파티클입니다. 작성이 끝난뒤 지울 예정입니다.

(2) 함수의 작동위치로부터 0.5블럭 이동후 함수를 다시 실행합니다. 이를 통해 계속해서 0.5블럭씩 이동하면서 함수가 실행됩니다.

이제 실행시켜봅시다. 이때 꼭 execute에서 at 과 anchored eyes를 통해 커맨드의 실행위치를 눈으로 조정해주셔야 정확하게 감지할 수 있습니다.

execute as @e[type=minecraft:armor_stand] at @s anchored eyes run function potan:raycast (함수이름은 직접 바꿔주세요)
(보여드리기 위해 아머스탠드를 대상으로 했습니다.)

보시다시피 아머스탠드의 시야로 파티클이 쭉 나가는 모습입니다.

만약 위의 as 부분을 바꾸면 그 사람의 시야에 맞추어 날아갑니다.

또한 if block ~ ~ ~ air 로 인해 벽에 막히면 더 이상 이어지지 않습니다.

 

그러면 이제 엔티티를 맞추면 명령어가 실행되게 해봅시다. 이때 함수가 하나 더 필요합니다.

#감지함수

#제대로 작동하는지 확인하기 위한 파티클입니다.
particle crit ~ ~ ~ 0 0 0 0 1

#해당 함수의 위치에 엔티티가 있다면 그 엔티티에게 공중부양 버프를 부여합니다. #tag=!start로 시전자는 부여되지 않게 바꿉니다.
execute as @e[dx=0,tag=!start] positioned ~-0.99 ~-0.99 ~-0.99 if entity @s[dx=0] run effect give @s levitation 1 1 true

#함수를 이용하는 이유입니다.
execute if block ~ ~ ~ air positioned ^ ^ ^0.5 run function potan:raycast
#시작함수
tag @s add start
function potan:raycast
tag @s remove start

이제는 위의 시작 명령어에서 감지함수를 바로 실행시키는 것이 아닌 시작함수를 통해 시작시키면 됩니다.

우선 시작함수를 통해 대상에게 태그가 부여됩니다. 그후 감지함수가 실행된뒤 태그가 다시 삭제되는데 그때는 이미 감지함수가 플레이어를 떠난 이후이므로 괜찮습니다.

감지함수는 계속 앞으로 이동하며 앞을 체크하는데 그 위치에 엔티티가 있다면 그 엔티티에게 공중부양 버프를 부여합니다.

만약 플레이어만 대상으로 한다면 두번째 명령어의 @e를 @a로 변경해주세요.

만약 엔티티에 닿으면 더이상 진행되지 않게 하고싶다면 unless entity @e[dx=0,tag=!start]를 붙여주세요. (플레이어 대상이면 @a)

 

이제 실행시켜 봅시다. 저의 경우 인벤토리 감지를 통해 ON/OFF가 가능하게 해보았습니다.

execute as @a[nbt={Inventory:[{id:"minecraft:diamond_sword", Slot:-106b}]}] at @s anchored eyes run function potan:start (함수이름은 직접 바꿔주세요)

해당 명령어를 반복 실행시키며 테스트 해보시면 잘됩니다.

 

※ 해당 게시글은 Cloud Wolf님의 유튜브 영상을 바탕으로 제작되었습니다.

www.youtube.com/watch?v=fGlJpli5cYc&ab_channel=CloudWolf

 

반응형
저작자표시 (새창열림)

'마인크래프트 강좌 > 명령어 강좌' 카테고리의 다른 글

마인크래프트 /return 강좌  (0) 2024.06.22
마인크래프트 자바에디션 Item components 강좌  (1) 2024.04.07
distance=1 과 distance=..1의 차이 그리고 ..에 대하여  (8) 2020.04.09
마인크래프트 /data modify 강좌  (6) 2019.10.27
마인크래프트 /forceload 강좌  (4) 2019.10.25
'마인크래프트 강좌/명령어 강좌' 카테고리의 다른 글
  • 마인크래프트 /return 강좌
  • 마인크래프트 자바에디션 Item components 강좌
  • distance=1 과 distance=..1의 차이 그리고 ..에 대하여
  • 마인크래프트 /data modify 강좌
Potan
Potan
안녕하세요 Potan입니다. 다양한 주제를 다루고 싶으나 마인크래프트를 주로 하고있습니다. 프사 : 카미쵸(kyamicho)
    반응형
  • Potan
    Potan의 게임블로그
    Potan
  • 전체
    오늘
    어제
    • 분류 전체보기 (257)
      • Minecraft Display Engine (1)
      • 마인크래프트 강좌 (50)
        • 명령어 강좌 (7)
        • 데이터팩 강좌 (18)
        • 리소스팩 강좌 (0)
        • 업데이트 정리 (22)
        • 블록벤치 강좌 (3)
      • 마인크래프트 (20)
        • 마크관련 잡담 (10)
        • 마인크래프트 맵 (1)
      • 유튜브 관련 (0)
      • 마인크래프트 모드강좌 (18)
        • Extra Utilities 2 (9)
        • 간단한 모드강좌 (0)
        • Refined Storage (4)
        • Thermal Expansion (5)
      • 마인크래프트 생존기 (156)
        • Sky Factory 3[완] (68)
        • Direwolf20[완] (10)
        • FTB Beyond[완] (78)
      • 잡담 (7)
        • 뻘글 (1)
      • 스팀게임 (4)
        • Clone Drone in the danger z.. (3)
      • itch.io (1)
      • 개발일지 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 미디어로그
    • 위치로그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    스카이 블럭
    마인크래프트 데이터팩
    스카이 팩토리
    minecraft
    모드
    FTB Beyond
    1.10.2
    1.13
    데이터팩
    생존기
    Beyond
    명령어
    모드팩
    마인크래프트
    야생
    Sky Factory3
    datapack
    FTB
    강좌
    Sfy Factory 3
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Potan
마인크래프트 질문 - 보고있는 대상에게 명령어가 발동되게 해보자
상단으로

티스토리툴바