Explosion

Версия Minecraft
1.12.2

sk9zist :l

Исправился
981
18
157
как создать взрыв при ударе по мобу? я планирую это делать в эвенте а ещё чтобы у игрока в инвентаре был спец.предмет
 

sk9zist :l

Исправился
981
18
157
идти урон от взрыва.
оо даже так! До чего продуманная система
мне это нравиться
и при ударе мной этим мечом будет писать что это я убил того кто умер от моего взрыва прямо как мне и надо
 

sk9zist :l

Исправился
981
18
157
а, понятно там уже используються нужные ентити и можно посмотреть какие это и как оно работает

начал доделывать идею, а потом бам бам и крашиться и крашиться и почти всё обыскал и поудалял всякое ненужное и перепроверил и всё равно крашиться я всё думал памяти не хватает скомпилировал быстро и запустил в обычном майне но и там бац и краш я так удивился и, видимо в этом виноват мой предмет хотя у меня в моде есть и второй
---- Minecraft Crash Report ----
// Everything's going to plan. No, really, that was supposed to happen.

Time: 3/22/20 6:32 PM
Description: Ticking entity

java.lang.NullPointerException: Ticking entity
at nosok.bb.events.ExplosEvent.onAttackEvent(ExplosEvent.java:15)
at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_13_ExplosEvent_onAttackEvent_LivingAttackEvent.invoke(.dynamic)
at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90)
at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:182)
at net.minecraftforge.common.ForgeHooks.onLivingAttack(ForgeHooks.java:586)
at net.minecraft.entity.EntityLivingBase.func_70097_a(EntityLivingBase.java:857)
at net.minecraft.entity.EntityLivingBase.func_180430_e(EntityLivingBase.java:1325)
at net.minecraft.block.Block.func_180658_a(Block.java:821)
at net.minecraft.entity.Entity.func_184231_a(Entity.java:1132)
at net.minecraft.entity.EntityLivingBase.func_184231_a(EntityLivingBase.java:215)
at net.minecraft.entity.Entity.func_70091_d(Entity.java:896)
at net.minecraft.entity.EntityLivingBase.func_191986_a(EntityLivingBase.java:1958)
at net.minecraft.entity.EntityLivingBase.func_70636_d(EntityLivingBase.java:2393)
at net.minecraft.entity.EntityLiving.func_70636_d(EntityLiving.java:577)
at net.minecraft.entity.EntityLivingBase.func_70071_h_(EntityLivingBase.java:2179)
at net.minecraft.entity.EntityLiving.func_70071_h_(EntityLiving.java:295)
at net.minecraft.entity.monster.EntitySlime.func_70071_h_(EntitySlime.java:135)
at net.minecraft.world.World.func_72866_a(World.java:1996)
at net.minecraft.world.WorldServer.func_72866_a(WorldServer.java:832)
at net.minecraft.world.World.func_72870_g(World.java:1958)
at net.minecraft.world.World.func_72939_s(World.java:1762)
at net.minecraft.world.WorldServer.func_72939_s(WorldServer.java:613)
at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:767)
at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:668)
at net.minecraft.server.integrated.IntegratedServer.func_71217_p(IntegratedServer.java:185)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:526)
at java.lang.Thread.run(Thread.java:748)
вот второй (в среде)
я изменил два раза последнее убирал но всё равно:
-- Head --
Thread: Client thread
Stacktrace:
at nosok.bb.events.ExplosEvent.onAttackEvent(ExplosEvent.java:15)
at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_13_ExplosEvent_onAttackEvent_LivingAttackEvent.invoke(.dynamic)
at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90)
at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:182)
at net.minecraftforge.common.ForgeHooks.onLivingAttack(ForgeHooks.java:580)
at net.minecraft.entity.EntityLivingBase.attackEntityFrom(EntityLivingBase.java:970)
at net.minecraft.entity.EntityLivingBase.outOfWorld(EntityLivingBase.java:1757)
at net.minecraft.entity.Entity.onEntityUpdate(Entity.java:583)
at net.minecraft.entity.EntityLivingBase.onEntityUpdate(EntityLivingBase.java:279)
at net.minecraft.entity.EntityLiving.onEntityUpdate(EntityLiving.java:247)
at net.minecraft.entity.Entity.onUpdate(Entity.java:466)
at net.minecraft.entity.EntityLivingBase.onUpdate(EntityLivingBase.java:2322)
at net.minecraft.entity.EntityLiving.onUpdate(EntityLiving.java:346)
at net.minecraft.entity.monster.EntitySlime.onUpdate(EntitySlime.java:147)
at net.minecraft.world.World.updateEntityWithOptionalForce(World.java:2171)
at net.minecraft.world.WorldServer.updateEntityWithOptionalForce(WorldServer.java:871)
at net.minecraft.world.World.updateEntity(World.java:2130)
ExplosEvent.java:
    @SubscribeEvent
    public void onAttackEvent(LivingAttackEvent e)
    {
        EntityPlayer pl = (EntityPlayer) e.getSource().getImmediateSource();
        if (pl.getHeldItemMainhand().getItem() instanceof pbb)
        {
            if (e.getSource().getImmediateSource() instanceof EntityPlayer)
            {
                if(!pl.world.isRemote)
                {
                    e.getEntity().world.createExplosion(e.getSource().getImmediateSource(), e.getEntity().posX, e.getEntity().posY, e.getEntity().posZ, 4.0F, true);
                }
            }
        }
    }
я тут много чего изменил, в чём же ошибка?
 
Последнее редактирование:

sk9zist :l

Исправился
981
18
157
Неужели так сложно отдебажить?
Не сложно но даже если бы я узнал причину ошибки я бы не смог решить потому что не заметил бы насток простого
кароче вот сделал проверку всё равно крашит:
вот:
    @SubscribeEvent
    public void onAttackEvent(LivingAttackEvent e)
    {
        if(e.getSource().getImmediateSource() instanceof EntityPlayer)
        {
            EntityPlayer pl = (EntityPlayer) e.getSource().getImmediateSource();
            if (pl.getHeldItemOffhand().getItem() instanceof pbb)
            {
                if (e.getSource().getImmediateSource() instanceof EntityPlayer)
                {
                    if(!pl.world.isRemote)
                    {
                        e.getEntity().world.createExplosion(e.getSource().getImmediateSource(), e.getEntity().posX, e.getEntity().posY, e.getEntity().posZ, 4.0F, true);
                    }
                }
            }
        }
    }
---- Minecraft Crash Report ----
// Hi. I'm Minecraft, and I'm a crashaholic.

Time: 3/24/20 8:59 PM
Description: Unexpected error

java.lang.NullPointerException: Unexpected error
at net.minecraft.world.World.getSkyColorBody(World.java:1629)
at net.minecraft.world.WorldProvider.getSkyColor(WorldProvider.java:515)
at net.minecraft.world.World.getSkyColor(World.java:1620)
at net.minecraft.client.renderer.EntityRenderer.updateFogColor(EntityRenderer.java:1785)
at net.minecraft.client.renderer.EntityRenderer.renderWorldPass(EntityRenderer.java:1326)
at net.minecraft.client.renderer.EntityRenderer.renderWorld(EntityRenderer.java:1312)
at net.minecraft.client.renderer.EntityRenderer.updateCameraAndRender(EntityRenderer.java:1115)
at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1209)
at net.minecraft.client.Minecraft.run(Minecraft.java:442)
at net.minecraft.client.main.Main.main(Main.java:118)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97)
at GradleStart.main(GradleStart.java:25)
 

sk9zist :l

Исправился
981
18
157
где проверка на null?
извини уже исправил
теперь когда я бью зомби например
микрофриз и в консоли спам с какими-то ошибками в строке с созданием взрыва, так и знал что нельзя там ничего менять связанное с ентити. Вообщем вот: (он повторялся много раз)
at nosok.bb.events.ExplosEvent.onAttackEvent(ExplosEvent.java:25) ~[ExplosEvent.class:?]
at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_15_ExplosEvent_onAttackEvent_LivingAttackEvent.invoke(.dynamic) ~[?:?]
at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90) ~[ASMEventHandler.class:?]
at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:182) ~[EventBus.class:?]
at net.minecraftforge.common.ForgeHooks.onLivingAttack(ForgeHooks.java:580) ~[ForgeHooks.class:?]
at net.minecraft.entity.EntityLivingBase.attackEntityFrom(EntityLivingBase.java:970) ~[EntityLivingBase.class:?]
at net.minecraft.entity.monster.EntityMob.attackEntityFrom(EntityMob.java:80) ~[EntityMob.class:?]
at net.minecraft.entity.monster.EntityZombie.attackEntityFrom(EntityZombie.java:259) ~[EntityZombie.class:?]
at net.minecraft.world.Explosion.doExplosionA(Explosion.java:166) ~[Explosion.class:?]
at net.minecraft.world.WorldServer.newExplosion(WorldServer.java:1244) ~[WorldServer.class:?]
at net.minecraft.world.World.createExplosion(World.java:2499) ~[World.class:?]
естественно пропадает если убрать ентити который создаёт взрыв (т.e. игрока) и поставить обратно курицу
но как жить дальше
 
Последнее редактирование:
Сверху