1.7.x 1.8.x Utiliser les événements



  • J'ai pas d'idée pourquoi sa fait sa j'ai eu le même problème en 1.7.2, 1.6.4 et en 1.6.2 aussi et j'ai jamais trouvé d'ou venait le problème et je suis pas seul a avoir se problème je connait plusieurs de mes amis qui on eu se problème.


  • Moddeurs confirmés Rédacteurs Administrateurs

    Ah je crois avoir compris le problème. Tu veux dire que lorsque la barre est à moitié l'armure se détruit ? Tu as mit combien en durabilité ?



  • Oui en plein sa, comme durabilité j'ai mis sa

    ​ public static ArmorMaterial ASL = EnumHelper.addArmorMaterial("ASL", 43, new int[] {4, 8, 5, 4}, 20);
    


  • Au pire je vais créer un poste ou je poserai toute mes question et mes problème.


  • Moddeurs confirmés Rédacteurs Administrateurs

    À mon avis il faudrait contourner le problème avec un ISpecialArmor.



  • Ok, je vais surement le poste aujourd'hui, si tu veux tu m'expliquera sa plus en détails.



  • Bonjour,
    J'aurais une chtiote question au sujet des évents…
    Juste pour savoir si j'ai bien saisis leurs utilisation...

    De ce que j'ai compris, ils ne s'utilisent que pour modifier une classe déjà existante ?!
    Suis-je dans le vrai ?!
    Ou complètement à côté ?

    Est ce que les évent sont utile...
    disons dans le cadre d'un Block qui changerai d'état en fonction de l'alimentation ?


  • Moddeurs confirmés Rédacteurs Administrateurs

    Les événements sont utilisé pour ajouter des actions a quelque chose que tu ne peux pas directement modifier. (ils ne modifient pas une classe déjà existante).

    Pour ton exemple, si c'est ton propre bloc tu peux tout géré par la fonction onNeighborBlockChange de ton bloc. (donc pas besoin d'event).



  • Ok merci robin !
    Donc un block custom, j'peut lui faire faire un peu ce que je veux sans
    Avoir à me soucier des évent ,
    Set block, sons, tp, effet, etc etc ?!

    Par contre si je veux modif le gui d'accueil les évent seront obligatoire ?

    Merci pour ta réponse.


  • Moddeurs confirmés Rédacteurs Administrateurs

    Le gui d'accueil ?



  • Le main menu je pense ^^



  • Re.
    Oui lol j'ai pas les src sous les yeux 🙂
    Le menu une fois que minecraft s'est chargé quoi ^^
    GuiMainMenu si je me rappel bien.
    A +


  • Moddeurs confirmés Rédacteurs Administrateurs

    Pour ça oui il faut passer par un événement.



  • Bien le merci



  • Bonjour je cherche a faire que l’osque un joueur meurt sa clear son inventaire avant de loot les objets qu'il a sur lui avec l'event "[size=x-smallLivingDeathEvent]"


  • Moddeurs confirmés Rédacteurs Administrateurs

    Suffit de mettre tout les items de l'inventaire à null.
    Ou alors il me semble que tu peux cancel l'event de drop.



  • d'acc alors se que j'ai fais a l'air de marcher par contre j'ai une erreur^^ a chaque fois que je meur.

    Code:

    @SubscribeEvent
    
    public void PlayerDeathEvent2(LivingDeathEvent event){
    if (event.entity instanceof EntityPlayer){
    EntityPlayer player = (EntityPlayer) event.entity;
    //ligne 65 player.inventory.getItemStack().equals(null);
    }
    }
    

    Erreur:

    [12:45:49] [Server thread/ERROR] [FML]: Index: 1 Listeners:
    [12:45:49] [Server thread/ERROR] [FML]: 0: NORMAL
    [12:45:49] [Server thread/ERROR] [FML]: 1: ASM: com.AltisMine.mod.EntityEvent@fd83ac PlayerDeathEvent2(Lnet/minecraftforge/event/entity/living/LivingDeathEvent;)V
    [12:45:49] [Server thread/ERROR] [FML]: 2: ASM: com.AltisMine.mod.EntityEvent@fd83ac PlayerDeathEvent(Lnet/minecraftforge/event/entity/living/LivingDeathEvent;)V
    [12:45:49] [Server thread/ERROR]: Couldn't process command: 'kill'
    java.lang.NullPointerException
    at com.AltisMine.mod.EntityEvent.PlayerDeathEvent2(EntityEvent.java:65) ~[EntityEvent.class:?]
    at cpw.mods.fml.common.eventhandler.ASMEventHandler_13_EntityEvent_PlayerDeathEvent2_LivingDeathEvent.invoke(.dynamic) ~[?:?]
    at cpw.mods.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:54) ~[ASMEventHandler.class:?]
    at cpw.mods.fml.common.eventhandler.EventBus.post(EventBus.java:138) ~[EventBus.class:?]
    at net.minecraftforge.common.ForgeHooks.onLivingDeath(ForgeHooks.java:305) ~[ForgeHooks.class:?]
    at net.minecraft.entity.player.EntityPlayerMP.onDeath(EntityPlayerMP.java:443) ~[EntityPlayerMP.class:?]
    at net.minecraft.entity.EntityLivingBase.attackEntityFrom(EntityLivingBase.java:940) ~[EntityLivingBase.class:?]
    at net.minecraft.entity.player.EntityPlayer.attackEntityFrom(EntityPlayer.java:1161) ~[EntityPlayer.class:?]
    at net.minecraft.entity.player.EntityPlayerMP.attackEntityFrom(EntityPlayerMP.java:532) ~[EntityPlayerMP.class:?]
    at net.minecraft.command.CommandKill.processCommand(CommandKill.java:32) ~[CommandKill.class:?]
    at net.minecraft.command.CommandHandler.executeCommand(CommandHandler.java:96) [CommandHandler.class:?]
    at net.minecraft.network.NetHandlerPlayServer.handleSlashCommand(NetHandlerPlayServer.java:788) [NetHandlerPlayServer.class:?]
    at net.minecraft.network.NetHandlerPlayServer.processChatMessage(NetHandlerPlayServer.java:764) [NetHandlerPlayServer.class:?]
    at net.minecraft.network.play.client.C01PacketChatMessage.processPacket(C01PacketChatMessage.java:47) [C01PacketChatMessage.class:?]
    at net.minecraft.network.play.client.C01PacketChatMessage.processPacket(C01PacketChatMessage.java:68) [C01PacketChatMessage.class:?]
    at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:241) [NetworkManager.class:?]
    at net.minecraft.network.NetworkSystem.networkTick(NetworkSystem.java:182) [NetworkSystem.class:?]
    at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:726) [MinecraftServer.class:?]
    at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:614) [MinecraftServer.class:?]
    at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:118) [IntegratedServer.class:?]
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:485) [MinecraftServer.class:?]
    at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:752) [MinecraftServer$2.class:?]
    [12:45:49] [Client thread/INFO]: [CHAT] Cette commande a échoué suite à une erreur inconnue
    

  • Moddeurs confirmés Rédacteurs Administrateurs

    equals est une fonction qui renvoie true si le contenue de deux objets sont identiques.
    Donc ce n'est pas vraiment la bonne fonction.

    for(int i = 0; i < player.inventory.mainInventory.length; i++)
    {
    player.inventory.mainInventory* = null;
    }
    for(int i = 0; i < player.inventory.armorInventory.length; i++)
    {
    player.inventory.armorInventory* = null;
    }
    


  • quel event permet de donner un effet a un mob quand il vs tape ? (dans la classe du mob)


Log in to reply