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

Résolu Problème de projectile

1.7.x
1.7.2
4
10
1.8k
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.
  • P
    Portuar dernière édition par 20 juin 2014, 12:01

    Mon projectile est créer, peux se lancer mais aucune collision. Voila la fonction concerné :

    /**
        * Called when this EntityFireball hits a block or entity.
        */
       protected void onImpact(MovingObjectPosition par1MovingObjectPosition)
       {
           if (!this.worldObj.isRemote)
           {
               if (par1MovingObjectPosition.entityHit != null)
               {
                   par1MovingObjectPosition.entityHit.attackEntityFrom(DamageSource.causeFireballDamage(this, this.shootingEntity), 6.0F);
               }
               this.worldObj.setBlock((int)this.posX, (int)this.posY, (int)this.posZ, Block.getBlockById(87));
               this.worldObj.newExplosion((Entity)null, this.posX, this.posY, this.posZ, (float)this.field_92057_e, true, this.worldObj.getGameRules().getGameRuleBooleanValue("mobGriefing"));
               this.setDead();
           }
       }
    1 réponse Dernière réponse Répondre Citer 0
    • P
      Portuar dernière édition par 21 juin 2014, 10:03

      Bon, j’ai un peu avancé en réalité le bug ne vient pas de la sa vient encore une fois de ceci :

      final Minecraft minecraft = FMLClientHandler.instance().getClient();
      final EntityPlayer player = minecraft.thePlayer;

      Mias je ne vois pas comment le remplacé dans cette event :

      @SubscribeEvent
      public void keyinput(KeyInputEvent event)
      {
      }
      1 réponse Dernière réponse Répondre Citer 0
      • robin4002
        robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par 21 juin 2014, 10:35

        KeyInputEvent n’est que déclenché en client, si tu veux faire des actions côtés serveur avec, il faut envoyer un paquet.

        1 réponse Dernière réponse Répondre Citer 0
        • P
          Portuar dernière édition par 21 juin 2014, 10:40

          Encore c’est packet, il n’y as pas d’event autre que celui la qui effectue la même chose ?

          1 réponse Dernière réponse Répondre Citer 0
          • Gugu
            Gugu dernière édition par 21 juin 2014, 11:19

            L’input de touches, c’est uniquement côté Client, donc oui, les packets sont obligatoires ^^

            "If you have a comprehensive explanation for everything then it decreases uncertainty and anxiety and reduces your cognitive load. And if you can use that simplifying algorithm to put yourself on the side of moral virtue then you’re constantly a good person with a minimum of effort."
            ― Jordan B. Peterson

            1 réponse Dernière réponse Répondre Citer 0
            • P
              Portuar dernière édition par 21 juin 2014, 11:40

              Et je doit faire quoi donc ?

              1 réponse Dernière réponse Répondre Citer 0
              • Gugu
                Gugu dernière édition par 21 juin 2014, 15:43

                Quand la touche voulue est pressée, tu envoies un packet. Je te conseille de prendre les classes de l’API FFMT qui gèrent les packets ( Juste a donner les crédits dans ton mod ) pour avoir un système de packet efficace.

                "If you have a comprehensive explanation for everything then it decreases uncertainty and anxiety and reduces your cognitive load. And if you can use that simplifying algorithm to put yourself on the side of moral virtue then you’re constantly a good person with a minimum of effort."
                ― Jordan B. Peterson

                1 réponse Dernière réponse Répondre Citer 0
                • P
                  Portuar dernière édition par 21 juin 2014, 15:52

                  au pire j’ai une autre idée j’ai juste a faire en sort que quand j’appuie sur la touche un boolean devient true et après je récupéré cette variable dans un autre event no ?___Bon je up pour dire que j’avance sa à l’air de marcher le problème c’est que quand j’appuie sur ma touche la valeur n’a pas le temps d’être envoyer a mon event player avant d’être retourner 0, voila mais deux event :

                  @SubscribeEvent
                  public void alterationPower_1(PlayerEvent event)
                  {
                  ExtendedEntityPropAlteration props = ExtendedEntityPropAlteration.get(event.entityPlayer);
                  if(props.projectile == 1)
                  {
                  Vec3 look = event.entityPlayer.getLookVec();
                  EntityFireProjectile entityfireball = new EntityFireProjectile(event.entityPlayer.worldObj, event.entityPlayer, 1, 1, 1);
                  entityfireball.setPosition(event.entityPlayer.posX + look.xCoord * 2, event.entityPlayer.posY + look.yCoord * 2, event.entityPlayer.posZ + look.zCoord * 2);
                  entityfireball.accelerationX = look.xCoord * 0.1;
                  entityfireball.accelerationY = look.yCoord * 0.1;
                  entityfireball.accelerationZ = look.zCoord * 0.1;
                  event.entityPlayer.worldObj.playSoundAtEntity(event.entityPlayer, "fire.ignite", 0.5F, 0.4F);
                  event.entityPlayer.swingItem();
                  event.entityPlayer.worldObj.spawnEntityInWorld(entityfireball);
                  System.out.println("aga");
                  }
                  }
                  @SubscribeEvent
                  public void keyAlteration(KeyInputEvent event)
                  {
                  final Minecraft minecraft = FMLClientHandler.instance().getClient();
                  final EntityPlayer player = minecraft.thePlayer;
                  ExtendedEntityPropAlteration props = ExtendedEntityPropAlteration.get(player);
                  if(this.spell_1.isPressed() && props.getAlterationLvl() > 2 && props.getAlteration() == 0)
                  {
                  props.setBooleanProjectile(1);
                  System.out.println("" + props.getBooleanProjectile());
                  }
                  else
                  {
                  props.setBooleanProjectile(0);
                  }
                  }

                  PS : j’ai testé les boules s’envoyent bien le problème ne vient pas de la.

                  1 réponse Dernière réponse Répondre Citer 0
                  • mindany2
                    mindany2 dernière édition par 21 juin 2014, 17:27

                    24h avant un up ……
                    De plus si tu ne fais pas de packet ça marcheras peut-être en solo mais pas en multi …

                    ^^

                    1 réponse Dernière réponse Répondre Citer 0
                    • P
                      Portuar dernière édition par 21 juin 2014, 17:32

                      Non mais c’etait pas un up dans le sens “up”, j’ai avancer, le problème avance et donc je ne cherche pas à avoir la même réponse. Et pour les packet faut que je me renseigne mais les properties utilise les packets hors j’utilise les properties donc logiquement j’utilise les packet.


                      Okay j’ai réussi enfète c’était vraiment VRAIMENT tout bête et je suis désolé d’avoir déranger pour si peu voila je pensai que l’event KeyInputEvent était obligatoire pour récupéré si le joueur tape sur la touche ou non mais enfete rien du tout donc j’ai juste rajouté isPressed dans l’event playerEvent.

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

                      MINECRAFT FORGE FRANCE © 2018

                      Powered by NodeBB