• S'inscrire
    • Se connecter
    • Recherche
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes

    Résolu Envoyer des boules de feu

    1.7.x
    1.7.10
    5
    23
    3649
    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.
    • bin4r1s
      bin4r1s dernière édition par

      Bonjour,
      Alors voilà : J’ai créé un système qui permet au joueur de lancer des boules de feu. Il marche assez bien, sauf que son utilisation est assez random :
      Par exemple, pour arriver à lancer une boule de feu qui ne despawn pas au lancer, je suis obligé de me déplacer sur le côté. Ce genre de problème n’étant pas admissible dans un mod public, je m’en remet à vous. Actuellement, je récupère ce qui semble être le regard du joueur, mais je n’en suis pas si sûr (des fois ça part à l’opposé –').

      Mon code :

      
      double d0 = player.getLookVec().xCoord;
      
      double d1 = player.getLookVec().yCoord;
      double d2 = player.getLookVec().zCoord;
      
      EntitySmallFireball esf = new EntitySmallFireball(world, player.posX, player.posY + 1.8, player.posZ, d0, d1, d2);
      world.spawnEntityInWorld(esf);
      

      Mes mods:

      • New Ores
      • More Dragons
      1 réponse Dernière réponse Répondre Citer 0
      • Superloup10
        Superloup10 Modérateurs dernière édition par

        Tu as regardé dans le code du Ghast et du Blaze? Sinon, tu as le mod Genetics ( je crois ) qui permet de faire ça.

        Envoyé de mon Nexus 4 en utilisant Tapatalk

        Si vous souhaitez me faire un don, il vous suffit de cliquer sur le bouton situé en dessous.

        Je suis un membre apprécié et joueur, j'ai déjà obtenu 17 points de réputation.

        1 réponse Dernière réponse Répondre Citer 0
        • bin4r1s
          bin4r1s dernière édition par

          J’ai déjà regardé et j’utilise ça pour mes dragons. Le problème, c’est que l’on connait la position de l’entité ciblée, alors que là, on ne la connait pas.

          Mes mods:

          • New Ores
          • More Dragons
          1 réponse Dernière réponse Répondre Citer 0
          • bin4r1s
            bin4r1s dernière édition par

            Up une idée ? :huh:

            Mes mods:

            • New Ores
            • More Dragons
            1 réponse Dernière réponse Répondre Citer 0
            • sosoh
              sosoh dernière édition par

              Il y a un moyen de get le pos de la ou regarde le joueur ?

              Developpeur d'Hogsmod, un mod implémentant le Monde d'Harry Potter dans Minecraft!

              1 réponse Dernière réponse Répondre Citer 0
              • bin4r1s
                bin4r1s dernière édition par

                1. double d0 = player.getLookVec().xCoord;
                2. double d1 = player.getLookVec().yCoord;
                3. double d2 = player.getLookVec().zCoord;

                Normalement c’est ça mais quand on regarde le ciel, ça récupère le bloc de juste après le joueur.

                Mes mods:

                • New Ores
                • More Dragons
                1 réponse Dernière réponse Répondre Citer 0
                • sosoh
                  sosoh dernière édition par

                  Moi je veux le bloques que le joueur regardes pour viser en gros

                  Developpeur d'Hogsmod, un mod implémentant le Monde d'Harry Potter dans Minecraft!

                  1 réponse Dernière réponse Répondre Citer 0
                  • bin4r1s
                    bin4r1s dernière édition par

                    J’ai trouvé aussi EntityPlayer.getLook(float) mais je ne vois pas trop comment m’en servir. Sinon je ne crois pas qu’il y ait autre chose pour récupérer le regard (bloc visé) du joueur.

                    Mes mods:

                    • New Ores
                    • More Dragons
                    1 réponse Dernière réponse Répondre Citer 0
                    • bin4r1s
                      bin4r1s dernière édition par

                      Up, quelqu’un ?

                      Mes mods:

                      • New Ores
                      • More Dragons
                      1 réponse Dernière réponse Répondre Citer 0
                      • bin4r1s
                        bin4r1s dernière édition par

                        Up, ça marche mais c’est toujours aussi buggué, quelqu’un a une idée, une piste ?

                        Mes mods:

                        • New Ores
                        • More Dragons
                        1 réponse Dernière réponse Répondre Citer 0
                        • robin4002
                          robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

                          Sinon il y a la fonction rayTrace mais elle n’est que disponible côté client.

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

                            Essaie peut être de lui donner un motion, je sais que quand je faisait des commandes pour les command bloc, il fallait rajouter le tag NBT Motion:[0.0,0.0,0.0], il doit bien y avoir une méthode comme ça dans le code du ghast. Je ne peux pas vérifier dans l’immédiat mais est-ce qu’il y a un autre constructeur pour la boule de ghast qui aurait comme paramètre une vélocité ou quelque chose d’autre dans le genre ?

                            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
                            • bin4r1s
                              bin4r1s dernière édition par

                              @robin4002
                              Merci, je teste.
                              De toute façon j’exécute mon code côté client donc ça devrait aller.

                              @SCAREX
                              Je regarde de suite mais il me semble que non (j’avais regardé chez le blaze)

                              EDIT:

                              
                              double d5 = this.targetedEntity.posX - this.posX;
                              double d6 = this.targetedEntity.boundingBox.minY + (double)(this.targetedEntity.height / 2.0F) - (this.posY + (double)(this.height / 2.0F));
                              double d7 = this.targetedEntity.posZ - this.posZ;
                              
                              […]
                              EntityLargeFireball entitylargefireball = new EntityLargeFireball(this.worldObj, this, d5, d6, d7);
                              entitylargefireball.field_92057_e = this.explosionStrength;
                              double d8 = 4.0D;
                              Vec3 vec3 = this.getLook(1.0F);
                              entitylargefireball.posX = this.posX + vec3.xCoord * d8;
                              entitylargefireball.posY = this.posY + (double)(this.height / 2.0F) + 0.5D;
                              entitylargefireball.posZ = this.posZ + vec3.zCoord * d8;
                              this.worldObj.spawnEntityInWorld(entitylargefireball);
                              

                              Donc toujours le même problème de la cible.

                              J’ai regardé rayTrace mais je ne vois pas trop quoi mettre comme paramètres.
                              Comment récupérer une MovingObjectPosition et à quoi correspond-t-elle ?
                              A quoi correspond le float ?

                              Mes mods:

                              • New Ores
                              • More Dragons
                              1 réponse Dernière réponse Répondre Citer 0
                              • robin4002
                                robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

                                Le premier et la distance, le deuxième je ne sais pas du tout ce qu’il fait. Essaye avec 0 ou 1.
                                MovingObjectPosition mop = player.rayTrace(64, 1);
                                Après avec le mop tu peux savoir si le joueur vise un bloc ou une entité, et tu peux avoir les coordonnés.

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

                                  @‘robin4002’:

                                  Le premier et la distance, le deuxième je ne sais pas du tout ce qu’il fait. Essaye avec 0 ou 1.
                                  MovingObjectPosition mop = player.rayTrace(64, 1);
                                  Après avec le mop tu peux savoir si le joueur vise un bloc ou une entité, et tu peux avoir les coordonnés.

                                  Il me semble que j’avais utilisé une fonction similaire mais avec des sinus cosinus etc. et la méthode se trouvait dans la classe world, est-ce la même fonction ?

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

                                    non, rayTrace se trouve dans EntityLivingBase

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

                                      @‘robin4002’:

                                      non, rayTrace se trouve dans EntityLivingBase

                                      Je vérifierai plus tard.

                                      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
                                      • bin4r1s
                                        bin4r1s dernière édition par

                                        Merci, je teste 🙂

                                        EDIT :
                                        Avec ce code, la boule de feu part toujours dans la même direction :

                                        
                                        double d5;
                                        
                                        double d6;
                                        double d7;
                                        
                                        MovingObjectPosition mop = player.rayTrace(128.0D, 1);
                                        
                                        if(mop.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK)
                                        {
                                                    d5 = mop.blockX;
                                                    d6 = mop.blockY;
                                                    d7 = mop.blockZ;
                                        }
                                        else if(mop.typeOfHit == MovingObjectPosition.MovingObjectType.ENTITY)
                                        {
                                                    d5 = mop.entityHit.posX;
                                                    d6 = mop.entityHit.posY;
                                                    d7 = mop.entityHit.posZ;
                                        }
                                        else
                                        {
                                                    d5 = player.getLookVec().xCoord;
                                                    d6 = player.getLookVec().yCoord;
                                                    d7 = player.getLookVec().zCoord;
                                        }
                                        
                                        EntitySmallFireball entitylargefireball = new EntitySmallFireball(player.worldObj, player, d5, d6, d7);
                                        double d8 = 4.0D;
                                        Vec3 vec3 = player.getLook(1.0F);
                                        entitylargefireball.posX = player.posX + vec3.xCoord * d8;
                                        entitylargefireball.posY = player.posY + (double)(player.height / 2.0F) + 0.5D;
                                        entitylargefireball.posZ = player.posZ + vec3.zCoord * d8;
                                        player.worldObj.spawnEntityInWorld(entitylargefireball);
                                        
                                        

                                        J’ai testé avec rayTrace(128, 0) et rayTrace(128, 1), je vais tester d’autres valeurs demain.

                                        Mes mods:

                                        • New Ores
                                        • More Dragons
                                        1 réponse Dernière réponse Répondre Citer 0
                                        • bin4r1s
                                          bin4r1s dernière édition par

                                          Après test, le deuxième argument de rayTrace semble contrôler la direction, sauf qu’il m’est impossible de savoir réellement si la boule de feu va partir dans la bonne direction ou non (c’est assez random semble-t-il).

                                          Quelqu’un a une idée ?

                                          Mes mods:

                                          • New Ores
                                          • More Dragons
                                          1 réponse Dernière réponse Répondre Citer 0
                                          • robin4002
                                            robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

                                            Non désolé 😕

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

                                            MINECRAFT FORGE FRANCE © 2018

                                            Powered by NodeBB