• Register
    • Login
    • Search
    • Recent
    • Tags
    • Popular
    • Users
    • Groups

    Solved Mob qui lorsqu'il attaque met en feu

    1.8.x
    1.8
    3
    4
    1031
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Jerem_Tech
      Jerem_Tech last edited by

      Bonjour !

      Je suis nouveau sur le forum , et je souhaiterais savoir comment mettre un joueur en feu lorsque le joueur est attaquer/toucher par le mob .
      -> Comme le zombie quand il est en feu mais là ce serais pas en fonction de l’heure , ni si le mob est en feu … Le mob n’est pas en feu mais metle joueur en feu .

      Merci d’avance !

      Cordialement ,

      JEREMY60800

      1 Reply Last reply Reply Quote 0
      • Deleted
        Deleted last edited by

        Rajoute ça dans la classe de ton entity

        
        public boolean attackEntityAsMob(Entity entity)
           {
               if (super.attackEntityAsMob(entity))
               {
                    entity.setFire(5 * 20);//5 est le nombre de secondes souhaitées durant laquelle l'entity brûlera
                   return true;
               }
               return false;
           }
        
        
        1 Reply Last reply Reply Quote 0
        • robin4002
          robin4002 Moddeurs confirmés Rédacteurs Administrateurs last edited by

          Salut,
          Il suffit de reprendre le code du zombie et de le modifier :

             public boolean attackEntityAsMob(Entity entityIn)
             {
                 boolean flag = super.attackEntityAsMob(entityIn); // obtient le résultat de la valeur de EntityMob.attackEntityAsMob(entity) comme EntityZombie est extends EntityMob. Cette fonction renvoie true si l'entité a été attaqué.
          
                 if (flag) // si l'entité a bien été attaqué.
                 {
                     int i = this.worldObj.getDifficulty().getDifficultyId(); // on récupère la difficulté
          
                     if (this.getHeldItem() == null && this.isBurning() && this.rand.nextFloat() < (float)i * 0.3F) // si le zombie n'a pas de casque, qu'il brule et qu'un nombre compris entre 0 et 1 (exclut) est inférieur à 0,3* la difficulté
                     {
                         entityIn.setFire(2 * i); // on brule l'entité touché pendant 2* la difficulté secondes.
                     }
                 }
          
                 return flag;
             }
          

          Version modifié :

             public boolean attackEntityAsMob(Entity entityIn)
             {
                 boolean flag = super.attackEntityAsMob(entityIn); // ton entité doit être extends EntityMob
          
                 if (flag) // si l'entité a bien été attaqué.
                 {
                         entityIn.setFire(3); // à toi de mettre ce que tu veux ici
                 }
                 return flag;
             }
          

          Rien de compliqué.

          EDIT : Plaigon a été plus rapide que moi, par contre il s’est planté, dans la fonction setFire(int time) time est en seconde et non en tick donc il ne faut pas multiplier par 20.

          1 Reply Last reply Reply Quote 0
          • Jerem_Tech
            Jerem_Tech last edited by

            Re ,

            Merci !
            Cela fonctionne parfaitement !

            Cordialement ,

            JEREMY60800

            1 Reply Last reply Reply Quote 0
            • 1 / 1
            • First post
              Last post
            Design by Woryk
            Contact / Mentions Légales

            MINECRAFT FORGE FRANCE © 2018

            Powered by NodeBB