마인크래프트 데미지 계산 방식 바꾸기 (1)
게시글 주소: https://orbi.kr/00072035357
마인크래프트의 데미지 계산은 아주 복잡하다.
(DA: 실제 피해, D: 들어오는 피해, A: 방어, T: 방어 강도)
여기에 인챈트까지 고려하면 정말 머리가 아프다.
나무위키 피셜 다이아풀셋은 80% 정도 데미지를 막아준다고 함.
마인크래프트의 데미지 계산을 좀 더 RPG스럽게 바꿔보자
public class CustomDamagePlugin extends JavaPlugin {
private static CustomDamagePlugin instance;
CustomDamagePlugin 클래스를 만들고 JavaPlugin을 상속받는다.
private static -> 다른 클래스에서 접근 불가능하고 한번만 생성되는
CustomDamagePlugin 자료형을 가진 instance라는 이름으로 만든다.
여기서 CustomDamagePlugin의 자료형이란건 그냥 이 클래스 자체를 말한다.
@Override
public void onEnable()
여기서 override는 부모 클래스에 이미 존재하는 메서드를 재정의할 때 쓴다.
앞에서 "CustomDamagePlugin 클래스를 만들고 JavaPlugin을 상속받는다."라고 설명했다.
마인크래프트에서 Bukkit api를 사용하는 모든 플러그인은 JavaPlugin을 상속받아야 한다.
상속이란 단어의 뜻처럼 부모가 가진걸 모두 가져오는 것이다.
즉, JavaPlugin이라는 클래스는 이미 틀이 잡혀있는 상태이다. 거기에는 당연히 onEnable()이라는 메서드 (c언어의 함수와 비슷)
가 이미 정의되어 있다. 우리는 그 함수를 다시 정의하겠다는 것이다.
onEnable()이라는 이름처럼 플러그인이 활성화 됐을 때 아래의 구문이 실행된다.
instance = this;
saveDefaultConfig();
instance는 아까 선언한 변수이다. 그리고 자료형은 이 플러그인 클래스 자체를 의미한다고 말했다. 그 자료형을 가진 변수안에 이 클래스의 인스턴스를 넣는다. 뭔가 말이 굉장히 헷갈린다. 그냥 앞으로 instance는 실행중이 이 플러그인 자체를 의미한다고 보면된다.
saveDefaultConfig()도 아까 onEnable()과 같이 JavaPlugin의 메서드이다. 자세한건 나중에 설명하겠다.
damageConfig = new DamageConfig(this);
Bukkit.getPluginManager().registerEvents(new DamageListener(damageConfig), this);
getLogger().info("CustomDamagePlugin has been enabled!");
damageConfig = new DamageConfig(this) 이 부분도 나중에 다시 설명하겠지만 config 파일을 불러오는 클래스이다.
Bukkit.getPluginManager().registerEvents(new DamageListener(damageConfig), this) 이 부분이 핵심적인 부분이다. 플러그인 매니저에서 이밴트를 등록하는데 DamageListner에 아까 불러온 Config값과 현재 실행중인 플러그인을 넣고 실행시킨다
마지막줄은 정상적으로 플러그인이 실행됐다고 서버에 로그를 띄우는 문장이다.
lck를 봐야하는 관계로 여기까지 쓰고
다음에는 DamageListener 클래스가 어떻게 구성되어 있는지 살펴보도록 하겠다.
0 XDK (+0)
유익한 글을 읽었다면 작성자에게 XDK를 선물하세요.
-
온세상신들다소환할듯 걱정마요붙을거에요
-
언제나 그랬듯이 선착 맞팔 10명은 500덕
-
기분 째지네요 여러분도 합격하시길...
-
삼떨삼수 0
이정도면 나라 팔아먹은거 아닐까..
-
아마 73점 282930 손도 못댐 확통은 노베임 1등급 목푠디..
-
뱃지 확인 겸 쓰는 글 34
아이민으로도 아시겠지만 길고 긴 수험생활 끝에 드디어 의대 갑니다 꽤나 오래...
-
정말 최악인 습관이지만 귀찮으면 암산하는 버릇이 있어서 작수 미적 29번 정도...
-
요즘 1
졸리다
-
이거 동국대 맞나요? 아따 전화 왐ㅅ었는데 한번더 확인하고 샢어요 입학처에는 딱히...
-
화생 노베데스
-
점수가 너무낮아서
-
힛
-
옯창빙고 ㅇㅈ 6
-
누가 요즘 메타에 저딴..저딴 밴픽을 여기에 그냥 못한건데 부터 선수의 개인기량...
-
자취하면 2
한달에 돈 얼마나 쓸라나 월세 제외 100정도?
-
예비 몇본까지 돌았는지 확인좀...
-
살기싫다 13
씨발
-
드릴드 1 드릴드 2 안 사도 됨 ㄹㅇㅋㅋ
-
대충 오는 발소리들리길래 걍 잇엇는데 가는소리가 안들려서 뭐지하고 옆에 답지확인하러...
-
당당하게 숭컴 간다고 거절했음 오루비에 경희 기계 문닫을 사람이 있을지는 모르겠는데...
-
ㅈㄱㄴ
-
내가 지금 03년생 23살이고 학교1학기다니다가 군대와서 이번 25수능을 봤습니다...
-
햔양 인터칼 0
한양 인터칼 오늘 왤케 안 돈 느낌이지…
-
합격했네
-
무섭다
-
씨발
-
오르비 화력 좃망했네 10
다들 공부하러 친구 사귀러 간 건가... 나 배신감 들어
-
문과 설경 5
문과는 설경 못가나요
-
올해 본4 올라가는 20학번 화석입니다 ㅎㅎ 치대, 치의예과 대학생활이나 입시 등등...
-
메디키넷 0
일주일 처방받은 약으로 실험해보는 중인데 콘서타 27 + 메디 10 or 메디 30...
-
삼수생이 뱃지가 1..
-
군 여러개 모집한다면 반영비를 서로 꽤 다르게 가져가야함 반영비 같게 하면 그...
-
추가모집 빼면
-
루미큐브하실붖 0
저빡고수임
-
30분남았다…ㅠ 0
진쩌 딱 4명만 빠져주세요 제발요
-
고학부 래퍼 2명초빙했냐 말 안된다 다군 이런 운영이 가능한건가 진짜ㅋㅋㅋ 현재...
-
ㅈㄱㄴ 0
투표 ㄱㄱ
-
외대 버렸습니다 8
전화추합이라 합격증안나옴 과는 영어대학임(신설)
-
Y=1-(A*B) NAND게이트를 수의 연산으로 나타낸것
-
하…예비1번인데 16
전화가 안와서 돌아버리겠네요 제발 제발
-
저메추좀 1
ㄱ
-
서울대 높공 6
과탐 투과목을 하지 않는 이상은 서울대 높공은 가기 힘들다 봐야 하나요? 지금...
-
이게 팩트면 내가 검토위원들보다 공부 잘하는거 맞음? 15
아무리 집에서 풀었어도 난 저거 맞췄는데 진짜 교사 실력저하 너무 심한거 아닌가
-
물리1 지구1 50 50 맞았었는데 이번에 수능다시보면서 과탐할지 사탐할지...
-
언매 미적 생지 작년 시대에서 재수해서 24213 - 12121 받고 가군 질렀는데...
-
옷삿다 2
스키파카인데 너무 이뻐서 데일리 패딩 대용으로 입으려고 시켰다 으흐흐
논문을 쓰셨네 읽기귀찮으니까 지피티한테 3줄요약시켜도 ㄱㅊ?
저 공부하려고 쓴거라 상관없읍니다. . .