잡다한 개발/마크플러그인

마크 플러그인 만들기 (#3)

오잎 클로버 2021. 9. 1. 21:00
728x90

오늘 구현할 기능은 버서커의 패시브 능력인 무모한 공격을 만들어보고자 합니다.

무모한 공격은 우클릭 시, 바라보는 방향으로 빠르게 이동하는 능력입니다.

 

이전에 마법사와 별다른 코드는 없으나, 다른 점이 있다면 특정 블럭을 선택 후, 이동이 아닌

말그대로 바라보는 방향이라는 점입니다.

그리고 테스트용으로 깃털을 들고있을 때 작동하도록 하였습니다.

@EventHandler
public void rush(PlayerInteractEvent e) {
    Player player = e.getPlayer();
    Action action = e.getAction();

    // 우 클릭시, 돌진함
    if ((action == Action.RIGHT_CLICK_BLOCK || action == Action.RIGHT_CLICK_AIR)) {
        Vector playerVector = new Vector(player.getLocation().getDirection().getX(), 0, player.getLocation().getDirection().getZ());
         player.setVelocity(playerVector.multiply(2));
    }
}

그리고 머스킷티어의 수류탄 능력 역시 구현하였습니다.

수류탄 기능은 세상 단순하게 계란을 던져서 땅에 닿았다면 터지도록 하였습니다.

@EventHandler
public void throwGrenade(PlayerEggThrowEvent e) {

    Egg egg = e.getEgg();

    Location explosionLocation = egg.getLocation();

    egg.getWorld().createExplosion(explosionLocation, 2, false, false);

}

PlayerEggThrowEvent는 플레이어가 계란을 던졌을 때, 해당 달걀이 땅에 닿았을 때에만 작동하는 이벤트입니다.

마법사 코드와는 달리 getWorld().createExplosion을 사용하여 폭발을 일으키도록 하였습니다.

첫 번째 인자값은 위치, 두 번째 인자값은 폭발크기, 세 번째 인자값은 폭발이 일어났을 때, 불이 생기는 지 여부를 묻는 인자값입니다. 네 번째 인자값은 폭발이 일어났을 때, 폭발로 인한 블럭 파괴의 여부를 묻는 인자값입니다.

계란이 땅에닿자마자 폭파를 한다.

현재 명령어 추가와 함께 암살자의 능력들을 구현 중에 있습니다.

'잡다한 개발 > 마크플러그인' 카테고리의 다른 글

마크 가챠 1편  (0) 2021.11.20
마크 가챠 0편  (0) 2021.11.19
마크 플러그인 만들기 (#2)  (0) 2021.08.31
마크 플러그인 만들기 (#1)  (0) 2021.08.30
마크 플러그인 만들기 (#0)  (0) 2021.08.26