개인 자료란 (JE)

  서버 커뮤니티


Profile ph2 대표칭호 없음

P0rnhub_com 8437300efbf74ddd9848e87807f731ea

Profile

강좌 및 개발 개발자란 개발 질문 Java

특정 플레이어의 방어 수치를 무시하고 고정대미지가 들어가게끔 하는방법이있을까요.

2022.01.25 조회 수 43 추천 수 0
분야 플러그인 

event.setDamage(EntityDamageEvent.DamageModifier.HARD_HAT, 0.0D);
event.setDamage(EntityDamageEvent.DamageModifier.ARMOR, 0.0D);
event.setDamage(EntityDamageEvent.DamageModifier.MAGIC, 0.0D);
event.setDamage(EntityDamageEvent.DamageModifier.RESISTANCE, 0.0D);
event.setDamage(EntityDamageEvent.DamageModifier.ABSORPTION, 0.0D);

이거는

Deprecated.

This API is responsible for a large number of implementation problems and is in general unsustainable to maintain. It is likely to be removed very soon in a subsequent release. Please see https://www.spigotmc.org/threads/194446/ for more information. 이거때문인지 작동이잘안되는거같고요.


player.setHealth(player.getHealth() - (double)damage);

이거를넣고 이벤트캔슬시키면 그나마 제가원하는대로구현이되는데

피가좀 까이고 체력이 0이하가 되면 죽어야될텐데
플레이어체력이 0이하가 될 수 없다면서 그냥 체력수정에서 에러가나버려요

그래서지금제가궁금한게 이거를 다른방법으로 구현이가능한가
아니면 체력수정에서 에러날때 플레이어를 죽일방법이있는가. 뭐어떻게든 어떤방식 야매로라도

저 고정대미지(모든 방어수치 무시)를 작동시킬방법이 있는지알려주시면 감사하겟습니다.



3개의 댓글

명이
2022.01.25

if (player.getHealth() - (double) damage <= 0) {

// 플레이어 죽이기

} else {

// 체력 깎기

}

ph2
2022.01.25
@명이

if (event.getCause() == DamageCause.ENTITY_ATTACK) {

player = (Player)event.getEntity();

damage = (int)event.getDamage();

if (player.getHealth() - damage <= 0) {

event.setDamage(99);}

else {

player.setHealth(player.getHealth() - damage + 0.1);

event.setDamage(0.1);}

 

이런식으로 하면될까요

 

ph2
2022.01.25
@ph2

(EntityDamageEvent event) {

Player player;

int damage;