Bạn hiểu nhầm ý mình rùi, mình nói cam kết ở đây là mình cam kết với người mua là mình sẽ không share plugin dưới bất kì hình thức nào, chứ không phải là người mua không dc share Plugin này (mình hơi ghi tắt sr bạn)
Đúng bạn
Ib facebook mình đi
Bên lề : Tình hình là dự án sv mình đã bị hủy do thiếu kinh phí cũng như time, và trong lúc đang cần tiền nên mình quyết định bán 1 plugin của sv mình...
nó nổ mạnh là do bạn chỉ setType thành Tnt thôi mà k set bán kính vụ nổ của nó lại
mình nghĩ là bạn nên spawn Tnt ra rồi set yield lại
TNTPrimed tnt = #Location.getWorld().spawn(location, TNTPrimed.class);
tnt.setYield(2f /*bán kính vụ nổ*/);
tnt.setFuseTicks(20*1...
à tại do cái này là bạn cancel event luôn rồi, nếu muốn bật ra mà k có sát thương thì bạn setDamage(0) là dc rồi
còn cái kia thì mình nghĩ dùng setFuseTicks(time) cho cái tnt đó đó
((TNTPrimed)#TNT).setFuseTicks(time);
mới đọc trên mạng thui chứ mình chưa test nữa
@EventHandler
public void exposionDamage(EntityDamageEvent e){
if(e.getCause().equals(DamageCause.ENTITY_EXPLOSION)
|| e.getCause().equals(DamageCause.BLOCK_EXPLOSION)) {
e.setCancelled(true);
return;
}
}
thử đi bạn xem có dc k
Bạn thử dùng cách getEntityNearby tại location của entity đã chết, kiểm tra nó có phải item ko chắc là được rồi đó, có thể dính vào mấy item xung quanh nhưng mình nghĩ cách đó cũng tốt rồi
Nếu như dùng .damage(double) thì khi giết entity mình ko get killer được
Chắc mình nên dùng mảng để cho thằng Entity vừa damage vào mảng khoảng 1/20 (s) rồi khi lặp lại thì hỏi xem có trong mảng đó không rồi return liền luôn, phải không bạn ?
Đúng r bạn, mình để nó trong EntityDamageByEntityEvent, ban đầu mình dùng .damage(double) thì không xảy ra lỗi gì nên mình tưởng là nó cũng có thể dùng với cái kia
Thế giờ mình có thể fix sao bạn ?
Tình hình là khi mà mình dùng .damage(double,damager) thì sẽ gây ra 1 lỗi spam console cực kì dài, và .damage đó dc call rất nhìu lần rồi mới kết thúc, giống như là vòng lặp cho đến khi entity chết vậy
Bạn nào có thể giúp mình được k ?