반응형
오늘은 파이터 클래스를 만들었다.
기술 중 대충 더킹이라는 기술과 바디 블로우 기술을 구현해봤다.
먼저 더킹이다.
일단 shift를 누르면 발동하게 되었고, 발동하며 더킹 유지 시에는 공격이 안된다.(나중에 공격이 안 되는 대신 저항 등 방어력을 높일 예정)
이유는 더킹은 공격기술이아니라 방어기술이기 때문이다.
아래는 더킹 코드이다.
public static HashMap<UUID, Boolean> hasSneak = new HashMap<>();
@EventHandler
public void ducking(PlayerToggleSneakEvent e) {
Player player = e.getPlayer();
if (!JobVariable.getPlayerJob(player, "Fighter")) {
return;
}
if (e.isSneaking()) {
hasSneak.put(player.getUniqueId(), true);
Vector vector = new Vector(player.getLocation().getDirection().getX(), 0, player.getLocation().getDirection().getZ());
vector.normalize();
player.setVelocity(vector.multiply(1));
}
else {
hasSneak.replace(player.getUniqueId(), true, false);
}
}
그다음은 바디블로우이다.
테스트 플레이어가 없어 잘 담아내지는 못했지만,
대미지를 주며 구속과 실명을 부여하는 기술이다.
현실에서도 일반인이나 취미로 복싱하는 사람이 맞으면 그냥 쓰러진다고 한다.
아래는 코드이다.
@EventHandler
public void isDucking(EntityDamageByEntityEvent e) {
if (e.getDamager() instanceof Player) {
Player player = (Player) e.getDamager();
if (!JobVariable.getPlayerJob(player, "Fighter")) {
return;
}
if (hasSneak.get(player.getUniqueId())) {
e.setCancelled(true);
}
else {
((Damageable)e.getEntity()).damage(8);
((LivingEntity)e.getEntity()).addPotionEffect(new PotionEffect(PotionEffectType.BLINDNESS, 600, 10));
((LivingEntity)e.getEntity()).addPotionEffect(new PotionEffect(PotionEffectType.SLOW, 600, 10));
}
}
}
다음엔 마법사의 스킬도 만들어 와 보겠다.
반응형
'취미 > 마인크래프트 플러그인' 카테고리의 다른 글
마크 플러그인(#4) (0) | 2021.09.13 |
---|---|
마크 플러그인 (#2) (0) | 2021.09.02 |
마크 플러그인 (#1) (0) | 2021.08.30 |
마크 플러그인 (#0) (0) | 2021.08.26 |