MFF

    Minecraft Forge France
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes
    • Forge Events
      • Automatique
      • Foncé
      • Clair
    • S'inscrire
    • Se connecter

    Problème de lit

    Planifier Épinglé Verrouillé Déplacé Résolu 1.8.x
    1.8
    46 Messages 4 Publieurs 8.2k Vues 1 Watching
    Charger plus de messages
    • Du plus ancien au plus récent
    • Du plus récent au plus ancien
    • Les plus votés
    Répondre
    • Répondre à l'aide d'un nouveau sujet
    Se connecter pour répondre
    Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
    • robin4002R Hors-ligne
      robin4002 Moddeurs confirmés Rédacteurs Administrateurs
      dernière édition par

      Utilise if(event.original.getBoolean(“ring”))

      1 réponse Dernière réponse Répondre Citer 0
      • EmotionFoxE Hors-ligne
        EmotionFox
        dernière édition par

        Je sais bien mais ça me parait plus clair comme ça ,) Il sert à ajouter un effet de potion de protection au feu au cas où le joueur est mort dans de la lave (je voulais l’enfermer dans une cage de verre mais il étais téléporté au dessus et puis ça marche très bien comme ça alors ^^), téléporte le joueur à la position de sa mort et initialise la valeur “ring” à false.

        Ps: Le LivingDeathEvent :

        /**
        * LivingDeathEvent is fired when an Entity dies.
        
        * This event is fired whenever an Entity dies in
        * EntityLivingBase#onDeath(DamageSource),
        * EntityPlayer#onDeath(DamageSource), and
        * EntityPlayerMP#onDeath(DamageSource).
        
        *
        
        * This event is fired via the {@link ForgeHooks#onLivingDeath(EntityLivingBase, DamageSource)}.
        
        *
        
        * {@link #source} contains the DamageSource that caused the entity to die.
        
        *
        
        * This event is {@link Cancelable}.
        
        * If this event is canceled, the Entity does not die.
        
        *
        
        * This event does not have a result. {@link HasResult}
        
        *
        
        * This event is fired on the {@link MinecraftForge#EVENT_BUS}.
        **/
        

        Ce déclenche à la mort est non au spawn 😕

        1 réponse Dernière réponse Répondre Citer 0
        • EmotionFoxE Hors-ligne
          EmotionFox
          dernière édition par

          Robin, j’ai utilisé pas mal de System.out.print() tous relativement intéressant. D’une première part la valeur “ring” est égal à false lors du deuxième event, j’ai donc placé un print lors de la condition :

          if(player.inventory.getStackInSlot(i) != null && player.inventory.getStackInSlot(i).getItem() == EmotionItems.purpuraRing)
             {}
          

          Et celle-ci ce lance bien conformément à ce que je lui demande, j’ai ensuite placé un print pour connaitre la valeur “ring” à la fin de cette condition comme ça :

                         if(player.inventory.getStackInSlot(i) != null && player.inventory.getStackInSlot(i).getItem() == EmotionItems.purpuraRing)
                         {
                             player.getEntityData().setBoolean("ring", true);
                             player.getEntityData().setInteger("posX", pos.getX());
                             player.getEntityData().setInteger("posY", pos.getY());
                             player.getEntityData().setInteger("posZ", pos.getZ());
                             System.out.print(player.getEntityData().getBoolean("ring"));
                         }
          

          Mais ce dernier n’apparait pas dans la console, je suppose donc que l’erreur viens de là.

          1 réponse Dernière réponse Répondre Citer 0
          • SCAREXS Hors-ligne
            SCAREX
            dernière édition par

            Je parle pour le premier événement.

            Ce code ne fait absolument rien : supprime la boucle.

            for(int i = 0; i <= 5; ++i) // Tu fais une boucle qui va jusqu'à 5
                           {
                               if(i == 5) // Mais tu veux que ce code soit appelé seulement une fois arrivé à 5 donc la boucle est inutile
                               {
            // De plus tu n'utilises pas la variable i
                                   // Prevent The Lava Death
                                   player.addPotionEffect(new PotionEffect(Potion.fireResistance.getId(), 800, 0, true, false));
                                   player.setPosition(player.getEntityData().getInteger("posX"), player.getEntityData().getInteger("posY"), player.getEntityData().getInteger("posZ"));
                                   player.getEntityData().setBoolean("ring", false);
                               }
                           }
            

            Pour l’événement de spawn, tu devrais utiliser le LivingSpawnEvent ou le EntityJoinWorldEvent.

            Site web contenant mes scripts : http://SCAREXgaming.github.io

            Pas de demandes de support par MP ni par skype SVP.
            Je n'accepte sur skype que l…

            1 réponse Dernière réponse Répondre Citer 0
            • EmotionFoxE Hors-ligne
              EmotionFox
              dernière édition par

              Scarex : Ah oui le premier, justement les deux fonctionnes alors je vais rester comme ça si ça ne pose pas de problème ^^ Ensuite j’ai rajouté ce petit timer car sinon le jeu crashait quand j’essayais de téléporter le joueur en même temps que le monde au point de spawn initiale, ensuite comme je l’ai dis j’ai essayé le “LivingSpawnEvent” et je le remettrais plus tard si ça ne fonctionne pas comme ça mais pour le moment l’erreur ne viens pas de là je le crains 😕

              1 réponse Dernière réponse Répondre Citer 0
              • SCAREXS Hors-ligne
                SCAREX
                dernière édition par

                Renvoi ton code.

                Site web contenant mes scripts : http://SCAREXgaming.github.io

                Pas de demandes de support par MP ni par skype SVP.
                Je n'accepte sur skype que l…

                1 réponse Dernière réponse Répondre Citer 0
                • EmotionFoxE Hors-ligne
                  EmotionFox
                  dernière édition par

                  public class EmotionLifeEvent
                  {
                  @SubscribeEvent
                  public void whenHurt(LivingAttackEvent e)
                  {
                  if(e.entity instanceof EntityPlayer)
                  {
                  EntityPlayer player = (EntityPlayer)e.entity;
                  BlockPos pos = player.getPosition();
                  
                  // Check All Inventory
                  for(int i = 0; i < player.inventory.getSizeInventory(); i++)
                  {
                  if(player.inventory.getStackInSlot(i) != null && player.inventory.getStackInSlot(i).getItem() == EmotionItems.purpuraRing)
                  {
                  player.getEntityData().setBoolean("ring", true);
                  player.getEntityData().setInteger("posX", pos.getX());
                  player.getEntityData().setInteger("posY", pos.getY());
                  player.getEntityData().setInteger("posZ", pos.getZ());
                  System.out.print(player.getEntityData().getBoolean("ring"));
                  }
                  }
                  }
                  }
                  
                  @SubscribeEvent
                  public void whenSpawn(Clone e)
                  {
                  EntityPlayer player = e.original;
                  
                  if(e.wasDeath == true)
                  {
                  if(player.getEntityData().getBoolean("ring"))
                  {
                  for(int i = 0; i <= 5; ++i)
                  {
                  if(i == 5)
                  {
                  // Prevent The Lava Death
                  player.addPotionEffect(new PotionEffect(Potion.fireResistance.getId(), 800, 0, true, false));
                  player.setPosition(player.getEntityData().getInteger("posX"), player.getEntityData().getInteger("posY"), player.getEntityData().getInteger("posZ"));
                  player.getEntityData().setBoolean("ring", false);
                  }
                  }
                  }
                  }
                  }
                  }
                  

                  1 réponse Dernière réponse Répondre Citer 0
                  • SCAREXS Hors-ligne
                    SCAREX
                    dernière édition par

                    Tu n’as pas supprimé la boucle. Regarde jusqu’où le code va et fait une System.out.println du tag compound du joueur.

                    Site web contenant mes scripts : http://SCAREXgaming.github.io

                    Pas de demandes de support par MP ni par skype SVP.
                    Je n'accepte sur skype que l…

                    1 réponse Dernière réponse Répondre Citer 0
                    • EmotionFoxE Hors-ligne
                      EmotionFox
                      dernière édition par

                      Déjà expliqué et déjà fais ,)

                      1 réponse Dernière réponse Répondre Citer 0
                      • DiangleD Hors-ligne
                        Diangle
                        dernière édition par

                        moi, j’ai une question. Si le joueur meurt dans le nether ou l’end ?

                        1 réponse Dernière réponse Répondre Citer 0
                        • EmotionFoxE Hors-ligne
                          EmotionFox
                          dernière édition par

                          Évitons les questions délicates veut tu x) Je ferais une conditions plus tard ça posera aucun problème d’abord il faudrait régler le problème précédemment cité.

                          1 réponse Dernière réponse Répondre Citer 0
                          • SCAREXS Hors-ligne
                            SCAREX
                            dernière édition par

                            Tu as expliqué pourquoi tu mettais un effet de fire resistance, pas pourquoi tu utilises une boucle inutile.

                            Où est placé ton ring ? Est-ce bien l’item purpuraRing et non un item extends purpuraRing ? Rajouter un System.out.println dans ta boucle pour afficher le contenu du slot et son index.

                            Site web contenant mes scripts : http://SCAREXgaming.github.io

                            Pas de demandes de support par MP ni par skype SVP.
                            Je n'accepte sur skype que l…

                            1 réponse Dernière réponse Répondre Citer 0
                            • EmotionFoxE Hors-ligne
                              EmotionFox
                              dernière édition par

                              Si justement j’ai expliqué ça aussi ,) Et ça fonctionne très bien comme je l’ai écris aussi, l’erreur ne viens pas de là. Je vais devoir me citer je crois ^^

                              1 réponse Dernière réponse Répondre Citer 0
                              • robin4002R Hors-ligne
                                robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                                dernière édition par

                                Au lieu de mettre cette boucle tu devrais faire un thread.

                                1 réponse Dernière réponse Répondre Citer 0
                                • EmotionFoxE Hors-ligne
                                  EmotionFox
                                  dernière édition par

                                  J’avais crue voir ça pour faire un timer oui, mais si ça fonctionne comme ça je me suis dis que c’était très bien, je le modifierais à l’occasion.

                                  1 réponse Dernière réponse Répondre Citer 0
                                  • SCAREXS Hors-ligne
                                    SCAREX
                                    dernière édition par

                                    @‘SCAREX’:

                                    Où est placé ton ring ? Est-ce bien l’item purpuraRing et non un item extends purpuraRing ? Rajouter un System.out.println dans ta boucle pour afficher le contenu du slot et son index.

                                    Et pour cette question ?

                                    Site web contenant mes scripts : http://SCAREXgaming.github.io

                                    Pas de demandes de support par MP ni par skype SVP.
                                    Je n'accepte sur skype que l…

                                    1 réponse Dernière réponse Répondre Citer 0
                                    • EmotionFoxE Hors-ligne
                                      EmotionFox
                                      dernière édition par

                                      commentaires six :

                                      “Robin, j’ai utilisé pas mal de System.out.print() tous relativement intéressant. D’une première part la valeur “ring” est égal à false lors du deuxième event, j’ai donc placé un print lors de la condition :”

                                      Bref j’ai placé un print à la fin et l’erreur pour faire court doit venir de :

                                      player.getEntityData().setBoolean("ring", true);
                                      

                                      1 réponse Dernière réponse Répondre Citer 0
                                      • SCAREXS Hors-ligne
                                        SCAREX
                                        dernière édition par

                                        Bon, écoute, si tu ne veux pas que je t’aide, dit le. Je vois pas comment il pourrais y avoir un problème à cet endroit. Le problème vient forcément d’un autre endroit.

                                        Site web contenant mes scripts : http://SCAREXgaming.github.io

                                        Pas de demandes de support par MP ni par skype SVP.
                                        Je n'accepte sur skype que l…

                                        1 réponse Dernière réponse Répondre Citer 0
                                        • EmotionFoxE Hors-ligne
                                          EmotionFox
                                          dernière édition par

                                          Non c’est juste que tu devrais prendre le temps de lire, j’écris correctement français et je prend le temps de tout expliquer alors je vois pas pourquoi il y aurait un problème ^^’

                                          Pourtant si puisque lors du deuxième event “ring” = false et le print ne s’affiche pas dans la console dans le premier event comme si ça n’existais pas or le code du début avec cette même condition fonctionné parfaitement (donc ça ne viens pas de mon code principale).

                                          Ps: Ce print ci :

                                          if(player.inventory.getStackInSlot(i) != null && player.inventory.getStackInSlot(i).getItem() == EmotionItems.purpuraRing)
                                          {
                                          player.getEntityData().setBoolean("ring", true);
                                          player.getEntityData().setInteger("posX", pos.getX());
                                          player.getEntityData().setInteger("posY", pos.getY());
                                          player.getEntityData().setInteger("posZ", pos.getZ());
                                          System.out.print(player.getEntityData().getBoolean("ring"));
                                          }
                                          

                                          1 réponse Dernière réponse Répondre Citer 0
                                          • SCAREXS Hors-ligne
                                            SCAREX
                                            dernière édition par

                                            J’ai trouvé d’où venait le problème : il y a 2 joueurs, l’ancien et le nouveau.

                                            Voici un code qui marche (remplace juste Items.apple par ton item) :

                                            @SubscribeEvent
                                            public void onLivingDeath(LivingDeathEvent event) {
                                            if (event.entityLiving instanceof EntityPlayer) {
                                            EntityPlayer player = (EntityPlayer) event.entityLiving;
                                            
                                            for (int i = 0; i < player.inventory.getSizeInventory(); i++) {
                                            if (player.inventory.getStackInSlot(i) != null && player.inventory.getStackInSlot(i).getItem() == Items.apple) {
                                            BlockPos pos = player.getPosition();
                                            player.getEntityData().setBoolean("ring", true);
                                            player.getEntityData().setInteger("posX", pos.getX());
                                            player.getEntityData().setInteger("posY", pos.getY());
                                            player.getEntityData().setInteger("posZ", pos.getZ());
                                            }
                                            }
                                            }
                                            }
                                            
                                            @SubscribeEvent
                                            public void onEntitySpawn(PlayerEvent.Clone event) {
                                            if (event.wasDeath) {
                                            EntityPlayer player = event.original;
                                            if (player.getEntityData().getBoolean("ring")) {
                                            event.entityPlayer.addPotionEffect(new PotionEffect(Potion.fireResistance.getId(), 800, 0, true, false));
                                            event.entityPlayer.setPosition(player.getEntityData().getInteger("posX"), player.getEntityData().getInteger("posY"), player.getEntityData().getInteger("posZ"));
                                            }
                                            }
                                            }
                                            

                                            Site web contenant mes scripts : http://SCAREXgaming.github.io

                                            Pas de demandes de support par MP ni par skype SVP.
                                            Je n'accepte sur skype que l…

                                            1 réponse Dernière réponse Répondre Citer 0
                                            • 1
                                            • 2
                                            • 3
                                            • 2 / 3
                                            • Premier message
                                              Dernier message
                                            Design by Woryk
                                            ContactMentions Légales

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB