Item Heal 1.7.x?(1.7.10)



  • Attention

    Ceci est mon premier tuto et je ne verif pas souvent.Ceci est la raison il y a écrit 1.7.x avec un ? car j'ai verif qu'en 1.7.10 donc si ceci ne marche pas dites la moi

    Pré-Requis

    Créeer un item simple
    Apprendre les variables(Les int sont recommandé)

    Modifier l'item

    Sur la classe de l'item ajoutez moi ceci

      public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player)
        {
         
            if(!world.isRemote)//verifie que le monde est en serveur et non en client sinon ca sait n'importe quoi
            {
                  player.addPotionEffect(new PotionEffect(Potion.heal.id, 2, 3));//Vous Heal apres si vous avez suivi le tuto sur les armures vous comprenez
            }
            
            if(!world.isRemote)// verif si le monde est en serv {
                stack.stackSize--;//retire 1 a l'item
    //D'autres conditions
            }
            return stack;//retourne L'itemStack simple
        }
    

    N'oubliez pas le crtl+shift+o et c'est fini😃
    encore plus compressé si vous voulez que le mod ne fasse pas 1to😏 mettez a la place ce code

    public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) {
    		
    	if(!world.isRemote) {
    		player.addPotionEffect(new PotionEffect(Potion.heal.id, 2, 3));
    		stack.stackSize--;
    	}
    	return stack;
    }
    

    Encore mieux

    public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) {
    		
    	if(!world.isRemote) {
    		player.heal(0.5F);
    		stack.stackSize--;
    	}
    	return stack;
    }
    

    le code est moins lourd comme ceci

    CoolDown

    Bon votre item helant fonctionne mais le spam est beaucoup trop ENORME(voir cheat!)
    donc nous allons faire un cooldown.
    Créons uns variable de type Integer se nommant cooldown

    int cooldown = 1000000;
    

    Pourquoi cette int a une valeur énorme!Car on va la baisser et ca va bien sur baisser vite.Mettons une boucle de type while de manière qu'elle ressemble a cela

    
    while(cooldown != 1000000)//Un tant que pour augmenter le cooldown
    {
    while(cooldown != 0)//verifie que le cooldown n'est pas zero 
    {
    ++cooldown;
    }
    }
    
    

    Le timer étant fait ajoutons une condition qui englobe le !world.isRemote qui ressenble a cela

    if(cooldown == 0)
    {
    //Le !world is remote 
    }
    else
    {
    System.out.println("Le cooldown n'est pas fini! \n La valeur du cooldown est a "+cooldown);
    );
    

    La ca fonctionne!MAIS!On n'aurait pas oublie un truc. Alors le truc c'est de le reset donc a la methode detectant les Right Click!
    Je ne vais pas vous dire comment faire j'ai donné trop de choses!
    mais si vous voulez d'autres résultas a votre item prenez l'ancien code

    Votez ici pour que je vois si mes tutos simples vous interesse

    Q ET R
    Q:Le tuto fonctionne il sur d'autres versions?
    R:Oui il fonctionne avec quelques différences et pas qu'en 1.7.x



  • @Daich_ a dit dans Item Heal 1.7.x?(1.7.10) :

    sur la classe de l'item ajoutez moi ceci

    Pourquoi faire deux conditions qui check la même chose ?

    fait plutôt :

    public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) {
    		
    	if(!world.isRemote) {
    		player.addPotionEffect(new PotionEffect(Potion.heal.id, 2, 3));
    		stack.stackSize--;
    	}
    	return stack;
    }
    


  • ah oui mais c mon 1er tuto


  • Administrateurs

    Donc tu peux prendre compte des suggestions pour l'améliorer 😉



  • ok dac



  • plutot que mettre un effet de potion pour heal le player, dans la class EntityPlayer ya une fonction EntityPlayer#heal pour lui ajouter/soustraire de la vie heal(float), si le nombre est positif alors ca lui ajoute de la vie heal(5.0F) la ton player va obtenir 5hp en plus soit 2.5 ❤ , si tu fait heal(-5.0F) ton player va perdre 5hp soit 2.5 ❤

    et puis tant qu'a faire fait le tuto pour des versions plus recente aussi, comme pour la 1.12.2 ou 1.13 par exemple x)
    c'est quasiment la mm chose en plus niveau code


Log in to reply