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 codepublic 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 cooldownint 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 codeVotez 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
-
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 fonctionEntityPlayer#heal
pour lui ajouter/soustraire de la vieheal(float)
, si le nombre est positif alors ca lui ajoute de la vieheal(5.0F)
la ton player va obtenir 5hp en plus soit 2.5 , si tu faitheal(-5.0F)
ton player va perdre 5hp soit 2.5et 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