MFF

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

    Envoyer des boules de feu

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.10
    23 Messages 5 Publieurs 4.3k 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 fait quelques recherches avec les codes des blaze et voilà le résultat trouvé :

      public class ST18SpawnFireballCommand extends CommandBase
      {
      @Override
      public String getName(){
      return "fireball";
      }
      
      @Override
      public String getCommandUsage(ICommandSender p_71518_1_){
      return null;
      }
      
      @Override
      public void execute(ICommandSender sender, String[] args){
      if (sender instanceof EntityPlayerMP) {
      EntityPlayerMP p = (EntityPlayerMP) sender;
      
      MovingObjectPosition mop = p.rayTrace(128.0D, 1);
      
      double tx = mop.hitVec.xCoord;
      double ty = mop.hitVec.yCoord;
      double tz = mop.hitVec.zCoord;
      sender.addChatMessage(new ChatComponentText(String.format("position trouvée : (%.2f, %.2f, %.2f)", tx, ty, tz)));
      
      double d0 = tx - p.posX;
      double d1 = ty - (p.posY + (double) (p.height / 2.0F));
      double d2 = tz - p.posZ;
      
      EntitySmallFireball entitysmallfireball = new EntitySmallFireball(p.worldObj, p, d0, d1, d2);
      entitysmallfireball.posY = p.posY + (double) (p.height / 2.0F) + 0.5D;
      p.worldObj.spawnEntityInWorld(entitysmallfireball);
      }
      }
      }
      

      chez moi ça marche parfaitement.

      Pour robin : j’ai trouvé la fonction que j’avais utilisé, c’est la fonction rayTrace sauf qu’au moment de l’utiliser elle s’appelée func_147447_a mais se trouvée bien dans World.class

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

        Merci, ça marche !
        Un grand GG car sans toi (et robin) je n’aurais pas réussi !

        Il y a juste un petit problème, c’est que quand le joueur vise trop près de lui, la boule de feu part à l’opposé 😞

        EDIT :
        Plus précisément quand il vise un bloc pas trop loin avec le regard un peu penché vers le bas.

        Mes mods:

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

          @‘MrBlockTNT’:

          Merci, ça marche !
          Un grand GG car sans toi (et robin) je n’aurais pas réussi !

          Il y a juste un petit problème, c’est que quand le joueur vise trop près de lui, la boule de feu part à l’opposé 😞

          EDIT :
          Plus précisément quand il vise un bloc pas trop loin avec le regard un peu penché vers le bas.

          Le problème est que ça vient du code de la fireball, je suis en train de cherche une autre solution.

          EDIT :
          le problème vient de là :

          
          accelX += this.rand.nextGaussian() * 0.4D;
          accelY += this.rand.nextGaussian() * 0.4D;
          accelZ += this.rand.nextGaussian() * 0.4D;
          
          

          Si la différence entre la position visée et la position du joueur est négative et que cette valeur absolue est inférieure à random.nextGaussian() * 0.4D alors la boule pars de l’autre côté, même chose si le accel est supérieure et le random.nextGaussian() * 0.4D inférieure à la valeur absolue.

          Ce que je viens de dire est très confus, voici un example :

          
          //Ici un exemple de distance entre le joueur et la coordonnée visée, ici il y a 0.4 blocs de distance
          accelX = -0.4D;
          //Imaginons maintenant que le random.nextGaussian() * 0.4D donne 0.6D
          accelX += 0.6D //soit 0.2D donc la boule de feu part de l'autre côté
          
          

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

          MINECRAFT FORGE FRANCE © 2024

          Powered by NodeBB