• Chào bạn, hãy đăng ký hoặc đăng nhập để tham gia cùng bọn mình và sử dụng được đầy đủ chức năng của diễn đàn :).
T

Hỏi về code plugin Lỗi loop khi dùng damage

Trạng thái
Không mở trả lời sau này.

TieuMinh

THÀNH VIÊN
Tham gia
23/05/2017
Bài viết
58
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 ?
 
bạn phải đưa thêm code thì mới biết bị gì được chứ nói thế chẳng ai hiểu đâu
tuy nhiên mình đoán là do bạn .damage(double,damager) bên trong EntityDamageByEntityEvent hoặc các event tương tự. vì .damage(double,damager) sẽ gọi tiếp 1 cái EntityDamageByEntityEvent khác rồi gọi lại chính nó trong event đó nên cứ thế ...
 
bạn phải đưa thêm code thì mới biết bị gì được chứ nói thế chẳng ai hiểu đâu
tuy nhiên mình đoán là do bạn .damage(double,damager) bên trong EntityDamageByEntityEvent hoặc các event tương tự. vì .damage(double,damager) sẽ gọi tiếp 1 cái EntityDamageByEntityEvent khác rồi gọi lại chính nó trong event đó nên cứ thế ...
Đú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 ?
 
Đú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 ?
damager có thể = null? (Chắc ko phải đâu)
Đăng stacktrace với code của bạn lên xem
 
~[spigot.jar:git-Spigot-de459a2-51263e9]
at org.bukkit.craftbukkit.v1_10_R1.event.CraftEventFactory.callEntityDamageEvent(CraftEventFactory.java:572) ~[spigot.jar:git-Spigot-de459a2-51263e9]
at org.bukkit.craftbukkit.v1_10_R1.event.CraftEventFactory.handleEntityDamageEvent(CraftEventFactory.java:479) ~[spigot.jar:git-Spigot-de459a2-51263e9]
at org.bukkit.craftbukkit.v1_10_R1.event.CraftEventFactory.handleLivingEntityDamageEvent(CraftEventFactory.java:604) ~[spigot.jar:git-Spigot-de459a2-51263e9]
at net.minecraft.server.v1_10_R1.EntityLiving.damageEntity0(EntityLiving.java:1238) ~[spigot.jar:git-Spigot-de459a2-51263e9]
at net.minecraft.server.v1_10_R1.EntityLiving.damageEntity(EntityLiving.java:834) ~[spigot.jar:git-Spigot-de459a2-51263e9]
at net.minecraft.server.v1_10_R1.EntityMonster.damageEntity(EntityMonster.java:48) ~[spigot.jar:git-Spigot-de459a2-51263e9]
at net.minecraft.server.v1_10_R1.EntityZombie.damageEntity(EntityZombie.java:180) ~[spigot.jar:git-Spigot-de459a2-51263e9]
at org.bukkit.craftbukkit.v1_10_R1.entity.CraftLivingEntity.damage(CraftLivingEntity.java:238) ~[spigot.jar:git-Spigot-de459a2-51263e9]
at me.neo.Blader.DamagerisPlayer(Blader.java:379) ~[?:?]
at me.neo.Blader.Attack(Blader.java:319) ~[?:?]
at sun.reflect.GeneratedMethodAccessor12.invoke(Unknown Source) ~[?:?]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_144]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_144]
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:302) ~[spigot.jar:git-Spigot-de459a2-51263e9]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[spigot.jar:git-Spigot-de459a2-51263e9]
at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) ~[spigot.jar:git-Spigot-de459a2-51263e9]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) ~[spigot.jar:git-Spigot-de459a2-51263e9]
at org.bukkit.craftbukkit.v1_10_R1.event.CraftEventFactory.callEvent(CraftEventFactory.java:89) ~[spigot.jar:git-Spigot-de459a2-51263e9]
at org.bukkit.craftbukkit.v1_10_R1.event.CraftEventFactory.callEntityDamageEvent(CraftEventFactory.java:572) ~[spigot.jar:git-Spigot-de459a2-51263e9]
at org.bukkit.craftbukkit.v1_10_R1.event.CraftEventFactory.handleEntityDamageEvent(CraftEventFactory.java:479) ~[spigot.jar:git-Spigot-de459a2-51263e9]
at org.bukkit.craftbukkit.v1_10_R1.event.CraftEventFactory.handleLivingEntityDamageEvent(CraftEventFactory.java:604) ~[spigot.jar:git-Spigot-de459a2-51263e9]
at net.minecraft.server.v1_10_R1.EntityLiving.damageEntity0(EntityLiving.java:1238) ~[spigot.jar:git-Spigot-de459a2-51263e9]
at net.minecraft.server.v1_10_R1.EntityLiving.damageEntity(EntityLiving.java:834) ~[spigot.jar:git-Spigot-de459a2-51263e9]
at net.minecraft.server.v1_10_R1.EntityMonster.damageEntity(EntityMonster.java:48) ~[spigot.jar:git-Spigot-de459a2-51263e9]
at net.minecraft.server.v1_10_R1.EntityZombie.damageEntity(EntityZombie.java:180) ~[spigot.jar:git-Spigot-de459a2-51263e9]
at org.bukkit.craftbukkit.v1_10_R1.entity.CraftLivingEntity.damage(CraftLivingEntity.java:238) ~[spigot.jar:git-Spigot-de459a2-51263e9]
at me.neo.Blader.DamagerisPlayer(Blader.java:379) ~[?:?]
at me.neo.Blader.Attack(Blader.java:319) ~[?:?]
at sun.reflect.GeneratedMethodAccessor12.invoke(Unknown Source) ~[?:?]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_144]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_144]
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:302) ~[spigot.jar:git-Spigot-de459a2-51263e9]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[spigot.jar:git-Spigot-de459a2-51263e9]
at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) ~[spigot.jar:git-Spigot-de459a2-51263e9]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) ~[spigot.jar:git-Spigot-de459a2-51263e9]
at org.bukkit.craftbukkit.v1_10_R1.event.CraftEventFactory.callEvent(CraftEventFactory.java:89) ~[spigot.jar:git-Spigot-de459a2-51263e9]
at org.bukkit.craftbukkit.v1_10_R1.event.CraftEventFactory.callEntityDamageEvent(CraftEventFactory.java:572) ~[spigot.jar:git-Spigot-de459a2-51263e9]
at org.bukkit.craftbukkit.v1_10_R1.event.CraftEventFactory.handleEntityDamageEvent(CraftEventFactory.java:479) ~[spigot.jar:git-Spigot-de459a2-51263e9]
at org.bukkit.craftbukkit.v1_10_R1.event.CraftEventFactory.handleLivingEntityDamageEvent(CraftEventFactory.java:604) ~[spigot.jar:git-Spigot-de459a2-51263e9]
at net.minecraft.server.v1_10_R1.EntityLiving.damageEntity0(EntityLiving.java:1238) ~[spigot.jar:git-Spigot-de459a2-51263e9]
at net.minecraft.server.v1_10_R1.EntityLiving.damageEntity(EntityLiving.java:834) ~[spigot.jar:git-Spigot-de459a2-51263e9]
at net.minecraft.server.v1_10_R1.EntityMonster.damageEntity(EntityMonster.java:48) ~[spigot.jar:git-Spigot-de459a2-51263e9]
at net.minecraft.server.v1_10_R1.EntityZombie.damageEntity(EntityZombie.java:180) ~[spigot.jar:git-Spigot-de459a2-51263e9]
at org.bukkit.craftbukkit.v1_10_R1.entity.CraftLivingEntity.damage(CraftLivingEntity.java:238) ~[spigot.jar:git-Spigot-de459a2-51263e9]
at me.neo.Blader.DamagerisPlayer(Blader.java:379) ~[?:?]
at me.neo.Blader.Attack(Blader.java:319) ~[?:?]
at sun.reflect.GeneratedMethodAccessor12.invoke(Unknown Source) ~[?:?]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_144]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_144]
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:302) ~[spigot.jar:git-Spigot-de459a2-51263e9]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[spigot.jar:git-Spigot-de459a2-51263e9]
at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) ~[spigot.jar:git-Spigot-de459a2-51263e9]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) ~[spigot.jar:git-Spigot-de459a2-51263e9]
at org.bukkit.craftbukkit.v1_10_R1.event.CraftEventFactory.callEvent(CraftEventFactory.java:89) ~[spigot.jar:git-Spigot-de459a2-51263e9]
at org.bukkit.craftbukkit.v1_10_R1.event.CraftEventFactory.callEntityDamageEvent(CraftEventFactory.java:572) ~[spigot.jar:git-Spigot-de459a2-51263e9]
at org.bukkit.craftbukkit.v1_10_R1.event.CraftEventFactory.handleEntityDamageEvent(CraftEventFactory.java:479) ~[spigot.jar:git-Spigot-de459a2-51263e9]
at org.bukkit.craftbukkit.v1_10_R1.event.CraftEventFactory.handleLivingEntityDamageEvent(CraftEventFactory.java:604) ~[spigot.jar:git-Spigot-de459a2-51263e9]
at net.minecraft.server.v1_10_R1.EntityLiving.damageEntity0(EntityLiving.java:1238) ~[spigot.jar:git-Spigot-de459a2-51263e9]
at net.minecraft.server.v1_10_R1.EntityLiving.damageEntity(EntityLiving.java:834) ~[spigot.jar:git-Spigot-de459a2-51263e9]
at net.minecraft.server.v1_10_R1.EntityMonster.damageEntity(EntityMonster.java:48) ~[spigot.jar:git-Spigot-de459a2-51263e9]
at net.minecraft.server.v1_10_R1.EntityZombie.damageEntity(EntityZombie.java:180) ~[spigot.jar:git-Spigot-de459a2-51263e9]
1 đoạn lỗi trong đó đó bạn, nó lặp hơn 200 lần đận
Mình không nghĩ là damager = null đâu mà do nó gọi lại event như bạn kichvn nói đó 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 ?
.damage(double) nó không gọi lại cái event trong khi cái kia thì có
cách giải quyết thì cách 1 bạn có thể xài .damage(double) nhưng vì cái này nó trừ thẳng vào máu chứ không tính giáp các kiểu nên bạn phải tự tính lượng damage đúng sau khi qua giáp
ngoài ra thì cách 2 có thể đánh dấu vào mảng/map để khi event đó gọi lại mà có trong mảng/map thì bỏ qua ko gọi tiếp .damage lần nữa
 
.damage(double) nó không gọi lại cái event trong khi cái kia thì có
cách giải quyết thì cách 1 bạn có thể xài .damage(double) nhưng vì cái này nó trừ thẳng vào máu chứ không tính giáp các kiểu nên bạn phải tự tính lượng damage đúng sau khi qua giáp
ngoài ra thì cách 2 có thể đánh dấu vào mảng/map để khi event đó gọi lại mà có trong mảng/map thì bỏ qua ko gọi tiếp .damage lần nữa
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 ?
 
Trạng thái
Không mở trả lời sau này.
Similar content Most view Xem thêm
Back
Top Bottom