마인크래프트 눈덩이[롤] 스크립트

진공이

·

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 ]

눈덩이.sk
0.00MB

 

 

반응형