마인크래프트 눈덩이[롤] 스크립트
진공이
·2023. 8. 4. 09:04
안녕하세요. 진공이입니다.
리그오브레전드 게임에 있는 스펠 중 하나인 눈덩이를 스크립트로 구현하였습니다.
코드 설명과 스크립트 파일이 포함되어 있습니다.
command /눈덩이받기:
permission: op
trigger:
give snowball named "&b눈덩이" to player
우선 따라가기 기능이 있는 눈덩이를 명령어를 통해 받을 수 있게 합니다.
on shoot:
shooter is player
set name of event-projectile to name of shooter's tool
투사체를 발사했을 때,
던진 사람이 플래이어라면.
투사체의 이름을 플래이어가 손에 들고 있는 아이템(눈덩이)으로 변경합니다.
on projectile hit:
event-projectile is snowball
victim is entity
name of event-projectile is "&b눈덩이"
set metadata value "snowball" of (shooter of event-projectile) to victim
hitSnowBall(shooter)
on projectile hit 이벤트가 발생했을 때,
투사체가 눈덩이이고,
맞은 대상이 엔티티이며,
투사체의 이름이 앞서 받은 눈덩이와 동일하다면
눈덩이를 던진 플래이어의 메타데이터의 "snowball" 항목을 맞은 엔티티로 설정합니다.
그리고 hitSnowBall 함수를 호출합니다.
function hitSnowBall(p:player):
set {_s} to 4
loop 4 times:
if metadata value "snowball" of {_p} is not set:
send action bar "" to {_p}
stop
send action bar "눈덩이 명중! F를 눌러 이동하세요! (%{_s}%)" to {_p}
subtract 1 from {_s}
wait 1 second
delete metadata value "snowball" of {_p}
send action bar "" to {_p}
함수가 호출될 때,
매개변수로 p(플래이어 타입)을 받아옵니다. (눈덩이를 던진 플래이어를 받음)
4초의 시간을 주기 위해 {_s}라는 임시변수를 만듭니다.
루프와 wait 구문을 통해 4초를 기다립니다.
루프중에 눈덩이를 던진 플래이어에게 할당한 메타데이터(snowball) 값이 사라졌다면 즉시 함수를 종료합니다.
4초가 지났다면 플래이어에게 할당한 메타데이터를 삭제합니다.
on swap hand items:
if metadata value "snowball" of event-player is set:
cancel event
play sound "entity.enderman.teleport" to player
teleport event-player to metadata value "snowball" of event-player
delete metadata value "snowball" of event-player
F키(양손 아이템 바꾸기)를 눌렀을 때,
플래이어의 메타데이터 "snowball"이 존재한다면,
이벤트를 캔슬합니다.
플래이어를 메타데이터 "snowball"의 값(눈덩이를 맞은 대상)의 위치로 순간이동시킵니다.
메타데이터를 삭제합니다.
코드설명이 끝났습니다.
대략적인 매커니즘만 작성하였고 혹시 모르시는 구문이 있다면 댓글로 질문해주시기 바랍니다.
[ 스크립트 플러그인 버전: 2.6.4 ]
'Minecraft > Skript' 카테고리의 다른 글
마인크래프트 점화 스크립트 (0) | 2023.08.04 |
---|---|
마인크래프트 스크립트 기초 강좌 #5 [ 반복문 Loop ] (0) | 2023.02.15 |
마인크래프트 검 강화하기 스크립트 (0) | 2022.06.05 |
마인크래프트 점프 스크립트 (1) | 2022.06.01 |
마인크래프트 스크립트 오류,구문 참고 사이트 (3) | 2022.02.23 |