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

    Effet d'une EntityTrowable

    Sans suite
    1.8
    4
    15
    2339
    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.
    • Eryah
      Eryah dernière édition par

      Bonjour a tûs.
      Donc, il y a quelques temps, j’ai fait une bouteille de lava jettable.
      Et je n’ai pas encore fait ses effet
      J’ai tester quelques trucs, mais bon…
      Donc j’aimerai que ma bouteille ait plusieurs effet a son impact

      Si possible dans Algorithme, car je ne sais pas les utiliser ^^’
      Ce n’est pas très important si je ne met pas le feu dans un rayon, au minimum, sur le block de l’impact

      Et j’ai un petit problème…
      La méthode onImpact ne possède pas comme paramètres BlockPos, Entity, etc…

      La méthode onImpact actuelle

      protected void onImpact(MovingObjectPosition p_70184_1_)
      {
      if (!this.worldObj.isRemote)
      {
      this.worldObj.playAuxSFX(2002, new BlockPos(this), 0);
      int i = 3 + this.worldObj.rand.nextInt(5) + this.worldObj.rand.nextInt(5);
      
      this.setDead();
      }
      }
      

      Pour l’instant, a l’impact, sa fait juste disparaitre l’item ( Ce qui est voulu hein ) et fait paraitre des particules semblables a ceux de la Bottle O’Enchantement
      (Normal, mon entity est un copié collé de cet entity)

      Membre fantôme
      Je développe maintenant un jeu sur UnrealEngine4


      Contact :…

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

        As-tu regardé ce qu’était la classe MovingObjectPosition ? Cette classe est utilisée pour contenir soit un block si ton entité a touché un block, sinon si ton entité a touché une autre entité le paramètre contiendra l’entité touchée.

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

          Euh ouais, mais comment je fais poure faire ce que je veut faire ?
          Car p_70184_1_.setFire(10.0F) ne fonctione pas
          Idem pour p_70184_1_.setBlockState(ETC)

          Membre fantôme
          Je développe maintenant un jeu sur UnrealEngine4


          Contact :…

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

            Déjà remplaces
            protected void onImpact(MovingObjectPosition p_70184_1_)
            par
            protected void onImpact(MovingObjectPosition mop)
            Car bon, p_70184_1_ c’est pas très implicite.
            Ensuite tu as mop.typeOfHit il vaut MovingObjectPosition.MovingObjectType.BLOCK si ça a touché à un bloc, MovingObjectPosition.MovingObjectType.ENTITY pour une entité et MovingObjectPosition.MovingObjectType.MISS pour rien.
            Donc à toi de faire des conditions pour les deux premiers cas.
            Pour le premier cas tu as mop.getBlockPos() pour avoir les coordonnées du bloc touché et dans le second cas tu as mop.entityHit pour avoir l’instance de l’entité touché.
            Donc tu peux faire mop.entityHit.setFire(10.0F); mop.entityHit.attackEntityFrom(DamageSource.lava, valeur des dégâts); etc …

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

              Bon voila, après pluseiurs crash, plusieurs test, j’ai enfin ‘réussi’
              ‘Reussi’ car seule l’effet sur les entity est fait.
              Pour les blocs je cale…

              La fonctione onImpact actuelle

              protected void onImpact(MovingObjectPosition mop)
              {
              if (!this.worldObj.isRemote)
              {
              this.worldObj.playAuxSFX(2002, new BlockPos(this), 0);
              int i = 3 + this.worldObj.rand.nextInt(5) + this.worldObj.rand.nextInt(5);
              
              this.setDead();
              if(mop.typeOfHit.ENTITY != null) {
              mop.entityHit.setFire(20);
              mop.entityHit.attackEntityFrom(DamageSource.lava, 5);
              }
              
              if(mop.typeOfHit.BLOCK != null) {
              mop.getBlockPos();
              }
              
              }
              }
              

              Membre fantôme
              Je développe maintenant un jeu sur UnrealEngine4


              Contact :…

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

                Pour les blocks, c’est normal. Tu get juste le BlockPos là… Et dans le vide en plus.

                Mon site | GitHub

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

                  Comment faire pour pouvoir poser un bloc de feu au bloc de l’impact ?
                  J’ia déjà essayer quelques trucs, mais sans succès

                  Membre fantôme
                  Je développe maintenant un jeu sur UnrealEngine4


                  Contact :…

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

                    worldObj.setBlockState(mop.getBlockPos(), Blocks.fire.getDefaultState());

                    (Par exemple)

                    Mon site | GitHub

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

                      if(mop.typeOfHit.ENTITY != null) {
                      Drôle de façon de faire. J’aurai plutôt utilisé if(mop.typeOfHit == MovingObjectPosition.MovingObjectType.ENTITY)

                      Pour le set de bloc faut passer par une boucle for.

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

                        Excusez moi cette répoonse très tardive, mais mon ordi commence a perdre des points de vies a vitesse grand V.
                        J’ai du lancer 3-4 CCleaner d’une dizaine de minutes chacun, avant d’attendre 20 min que mon client se lance…
                        Déja que mon ordi est tout pourri ( Un bon AMD E-1 TMTC ), là, il pu la bouzin de chevreuil couplé avec du fumier qui a pouri 4ans au soleil

                        Pour que vous vous rendez compte

                        Donc efectivement, sa fonctionne mieux avec ta condition robin ^^’
                        Et sinon, c’est bon le bloc ets placé. Mais problème… La bouteille fait preuve d’une énorme violance et puissance, car la flamme REMPLACE le bloc. Tu lance une bouteille sur la bedrock, a pu bedrock
                        Comment faire pour que la flamme soit généré 1 bloc plus haut ?

                        Membre fantôme
                        Je développe maintenant un jeu sur UnrealEngine4


                        Contact :…

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

                          Tu check si c’est de l’air. Si non tu check si le bloc au dessus est de l’air. Si oui tu pose, sinon tu pose pas.

                          Quelle idée d’acheter un pc avec un E1 aussi … Faut prendre un A8 minimum pour Minecraft.

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

                            Perso, je déteste AMD. Je préfère LARGEMENT Nvidia
                            Et je n’ai pas choisis mon PC.
                            Et de toute façon, je n’ai pas l’argent. J’ai même pas 10$…
                            C’est l’ancien PC de ma mère. Elle me l’a donné quand elle en a changé
                            (Intel I7 - Nvidia 780m bave )

                            Bref, on est pas la pour parler PC

                            Donc, j’ia plusieurs problemes, comment mettre la variable block ?
                            j’ai repris le code de ma bouteille et je trouve sa
                            Block block = worldIn.getBlockState(movingobjectposition.getBlockPos()).getBlock();
                            mais je n’ai pas le paramètre World
                            Ensuite, comment faire pour poser sur l’air ?

                            Membre fantôme
                            Je développe maintenant un jeu sur UnrealEngine4


                            Contact :…

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

                              L’air est un bloc comme un autre, pas besoin de savoir comment fonctionne le schmiblik.
                              Pour le world, tu es dans une classe Entity donc tu peux faire this.worldObj.

                              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

                                this.worldObj pour le monde.
                                Pour poser sur de l’air c’est pas compliqué c’est comme pour poser n’importe où. Si ta question était comment savoir si un bloc est de l’air c’est this.worldObj.isAirBlock(pos)

                                Pas étonnant que tu détester AMD si le échantillon que tu as c’est du ultra bas de gamme. Perso je préfère largement AMD, Nvidia a une politique de merde.

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

                                  Donc, enfaite, je coprends pas trop votre logqieu.
                                  Vous regardez si le bloc sur lequel la potion à éclaté…
                                  Or, l’air n’a pas de ‘matière’, de ‘hitbox’, donc je vois pas comment une potion peut exploser sur de l’air…
                                  Sinon je comprend vraiment rien.

                                  Je pensais plus a un truc simple qui génère le bloc, juste 1 bloc plus haut quoi…

                                  Bon, je vais me coucher, je part bientôt en vacances ( Et quand je reviendrais, j’aurais ENFIN fais les tutos Openclassroom !! ), donc faut que j’aide pour le préparatifs, je peut pas me permettre de me coucher a 4h ( Endormisement ~6h )
                                  Vu que je m’endort très tard ( Je regarde des vidéos pour m’endormir, pas d’autres moyens pour moi que de dormir devant mon téléphone ), je serais toujours présent sur le forum via Tapatalk, mais je pourrais donc biensur, pas pouvoir faire du code

                                  Membre fantôme
                                  Je développe maintenant un jeu sur UnrealEngine4


                                  Contact :…

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

                                  MINECRAFT FORGE FRANCE © 2018

                                  Powered by NodeBB