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.
    • 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
      • EmotionFoxE Hors-ligne
        EmotionFox
        dernière édition par

        D’accord merci beaucoup Scarex, bon du coup pour le problème online c’est réglé reste plus qu’à trouver comment téléporter le joueur même si il a un point de spawn grâce au lit 😕

        Ps: J’ai essayé avec l’event “LivingSpawnEvent” pour le respawn mais marche pas :C

        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

          Utilise un thread pour tp au bout de une seconde.

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

            Dans le code que je t’ai donné, le joueur est téléporté quand il spawn même s’il a un lit.

            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

              Robin : Malheureusement le thread ne fait que retarder le spawn d’une seconde 😕 Et même avec l’autre event ça ne fonctionne pas :C

              Scarex : Chez moi ça ne fonctionne toujours pas 😕

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

                Tu as bien mis exactement le même 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

                  Oui Scarex, complétement identique 😕

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

                    Tu as bien pensé à mettre event.entityPlayer pour le setPosition, tu as l’effet de fire resistance ?

                    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

                      Oui tout fonctionne très bien, la téléportation sans le lit et le fire resistance dans tous les cas. J’ai pris le temps aussi de rajouter cette condition pour pallier au problème éventuelle et ça fonctionne parfaitement :

                      if(player.worldObj.provider.getDimensionId() == 0){}
                      

                      Dans le pire des cas sinon on vas pas débattre pendant une heure pour un petit problème comme ça et puis tempi.

                      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

                        Vérifier la version de Forge que vous utilisez chacun.

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

                          “forge-1.8-11.14.3.1449”

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

                            1.8 11.14.1.1336 : je l’ai mis sur mon mod de test que je ne mets pas à jour souvent. Je mets à jour mon workspace.

                            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
                            • robin4002R Hors-ligne
                              robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                              dernière édition par

                              Dans ce cas faut check s’il n’y a pas eu un changement du côté de Forge.

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

                                1.8 11.14.3.1450 : fonctionne, le problème vient de toi. As-tu bien enregistré l’événement avec MinecraftForge et non FMLComonHandler ?

                                Je te renvois le code utilisé :

                                @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
                                • EmotionFoxE Hors-ligne
                                  EmotionFox
                                  dernière édition par

                                  Oui heureusement que oui ^^’ Et j’ai fais du copier coller, mais vraiment, pourtant quand on définie un point de spawn avec le lit et qu’ensuite on essaye de ce suicider avec la bague dans l’inventaire rien à faire la téléportation ne fonctionne pas :C

                                  Ps: J’ai update vers la dernière version de forge mais même dans l’autre aussi ça ne marchais pas alors il doit vraiment y avoir un problème quelque pars.

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

                                    Effectivement, j’ai regardé un peu le code, et en fait le clone est appelé après la téléportation au spawn mais avant la téléportation au lit.

                                    La seule solution que j’ai pu trouvé c’est d’utiliser le PlayerRespawnEvent de fml qui est appelé après, le seul problème c’est que les NBT tags ne sont pas clonés avec, il faut donc utiliser le clone event pour copier les NBT dans les tags du nouveau joueur pour ensuite les utiliser dans le PlayerRespawnEvent.

                                    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
                                    • robin4002R Hors-ligne
                                      robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                                      dernière édition par

                                      PlayerRespawnEvent vient aussi de Forge non ?

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

                                        Euh en tout cas il est dans le package de fml.

                                        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

                                          Alors du coup j’ai essayé ça :

                                          public class EmotionLifeEvent
                                          {
                                          @SubscribeEvent
                                          public void onLivingDeath(LivingDeathEvent e)
                                          {
                                          if(e.entityLiving instanceof EntityPlayer)
                                          {
                                          EntityPlayer player = (EntityPlayer)e.entityLiving;
                                          
                                          for(int i = 0; i < player.inventory.getSizeInventory(); i++)
                                          {
                                          if(player.inventory.getStackInSlot(i) != null && player.inventory.getStackInSlot(i).getItem() == EmotionItems.purpuraRing)
                                          {
                                          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 e)
                                          {
                                          if(e.wasDeath)
                                          {
                                          EntityPlayer player = e.original;
                                          
                                          if(player.getEntityData().getBoolean("ring"))
                                          {
                                          e.entityPlayer.getEntityData().setBoolean("ring", player.getEntityData().getBoolean("ring"));
                                          e.entityPlayer.getEntityData().setInteger("posX", player.getEntityData().getInteger("posX"));
                                          e.entityPlayer.getEntityData().setInteger("posY", player.getEntityData().getInteger("posY"));
                                          e.entityPlayer.getEntityData().setInteger("posZ", player.getEntityData().getInteger("posZ"));
                                          }
                                          }
                                          }
                                          
                                          @SubscribeEvent
                                          public void onEntityWake(PlayerRespawnEvent e)
                                          {
                                          EntityPlayer player = e.player;
                                          
                                          if(player.getEntityData().getBoolean("ring"))
                                          {
                                          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"));
                                          }
                                          }
                                          }
                                          

                                          Mais le dernier événement “PlayerRespawnEvent” n’est pas appelé du tout je suppose donc qu’il s’enregistre avec :

                                          FMLCommonHandler.instance().bus().register();
                                          

                                          Et non pas :

                                          MinecraftForge.EVENT_BUS.register();
                                          

                                          Bref sinon c’est pas grave dans le pire des cas la bague ne fonctionnera que si le spawn point est indéfinie et puis tempi un.

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

                                            Il faut l’enregistrer avec FMLCommonHandler et faire attention à ne pas confondre les 2 classes qui s’appellent PlayerEvent.

                                            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
                                            • 1 / 3
                                            • Premier message
                                              Dernier message
                                            Design by Woryk
                                            ContactMentions Légales

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB