본문 바로가기

전체 글96

마크 플러그인 #3 오늘은 파이터 클래스를 만들었다. 기술 중 대충 더킹이라는 기술과 바디 블로우 기술을 구현해봤다. 먼저 더킹이다. 일단 shift를 누르면 발동하게 되었고, 발동하며 더킹 유지 시에는 공격이 안된다.(나중에 공격이 안 되는 대신 저항 등 방어력을 높일 예정) 이유는 더킹은 공격기술이아니라 방어기술이기 때문이다. 아래는 더킹 코드이다. public static HashMap hasSneak = new HashMap(); @EventHandler public void ducking(PlayerToggleSneakEvent e) { Player player = e.getPlayer(); if (!JobVariable.getPlayerJob(player, "Fighter")) { return; } if (e.i.. 2021. 9. 8.
자바 extends와 implements 에 대해 오늘은 extends와 implements에 대해 공부해 보았다. 두 개의 역할이 정확히 어떤지 몰랐는데 이번의 계기로 인해 알게 되었다. 일단 extends는 상속시키는 것인데, 대충 A extends B를 하면 A는 B를 상속해 +a 하는 것이다. (extends는 일반 클래스와 abstract 클래스 상속) 즉 B에 있는 모든 것을 사용할 필요는 없다는 것. 하지만 implements는 B에 있는 기능을 모두 사용해야 한다. (implement는 interface 상속) 예를 들어 보자 extends: public class test { public static void main(String[] args) { testpaper sc = new testpaper(); System.out.println.. 2021. 9. 7.
마크 플러그인 (#2) 오늘 암살자의 액티브 스킬과 패시브 스킬을 개발했고 마법사 이동기도 구현하였다. 첫 번째로 암살자 스킬이다. 패시브 스택(뼛가루)의 개수 따라 피해량이 증가하며 상대 엔티티(몹, 플레이어 등)가 바라보고 있는 방향의 반대로 이동한다.(즉, 뒤로 이동) 패시브인 스택은 플레이어를 제외한 엔티티를 죽일 때 쌓이게 된다. 참고로 피해량이 너무 높아 엔티티를 한 번에 죽일 시 스택은 오르지 않는다.(무한 스택 증식 막기) 또한 플레이어를 죽이거나 자신이 죽게 되었을 때 스택은 초기화가 된다. 암살자 액티브 스킬 코드 @EventHandler public void assassinate(EntityDamageByEntityEvent e) { double rand = Math.random(); // 0.0 ~ 1.0.. 2021. 9. 2.
JAVA 클래스의 개념 *(필자가 이해한 내용을 바탕으로 쓰는 글입니다. 틀린 부분이 있을 수 있고, 미흡한 부분이 있을 수 있습니다.)* 객체지향 언어에 대해 공부를 하다 보니 문득 클래스의 개념이 정확히 무엇인가에 의문을 품어 공부를 해보았다. 일단 클래스는 필드와 메소드로 구성이 된다. *필드 = 클래스에 포함된 변수 *메서드 = 명령문이 모인 집합체 클래스는 이러한 객체들을 정의하는 틀로 쓰인다고 한다. 클래스를 잘 설명하는 사진을 가지고 왔다. 이제 코드로 이해해보자. 일단 클래스를 만든다. package Class; public class Student { } 큰 틀인 클래스 Student를 생성했다. 이제 메인을 추가하자. package Class; public class Student { public static.. 2021. 9. 1.
마크 플러그인 (#1) 오늘 플러그인의 기능 2개를 만들었다. 체력의 값을 가져와 힘을 부여하는 버서커 능력 그리고 위치를 저장하고 그 위치로 이동하는 능력 도주 만들었다. 백번 말로 하는 것보다 보는 것이 빠를 것이다. 먼저 버서커 능력이다. 코드 package com.tistory.workshop; import org.bukkit.entity.EntityType; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.potion.PotionEffect; import org.. 2021. 8. 30.