Achivement Give
-
@‘BrokenSwing’:
C’est à dire, genre à chaque fois que l’on va couper du bois le code s’exécute ?
Je crois qu’il veut dire que le code s’exécute à chaque fois, même si l’achievement est déjà gagné.
-
Voila et il faut que l’achivement sa fait une fois je vais essayé un truc
-
@SubscribeEvent
public void onAchievement(AchievementEvent event)
{if(event.achievement == AchievementList.mineWood)
{
for(int i = 0 ; i < 1 ; i++)
{
System.out.println(“Test Achievement”);
event.entityPlayer.inventory.addItemStackToInventory(new ItemStack(Items.apple));
}}
}
j’ai essayé sa mais marche pas ou sa@SubscribeEvent
public void onAchievement(AchievementEvent event)
{
for(int i = 0 ; i < 5 ; i++)
{
if(event.achievement == AchievementList.mineWood)
{System.out.println(“Test Achievement”);
event.entityPlayer.inventory.addItemStackToInventory(new ItemStack(Items.apple));}
} -
Dans le premier code tu lui donne 1 pommes et dans le second tu lui en donne 5, ça résoud pas ton problème
-
oui j’avais pas testé et j’ai mis 5

-
Je fait des tests de mon côté et je te dis ce que j’ai trouvé
-
Je sais qu’il y a une fonction pour vérifier si le joueur a un achievement, je crois que c’est quelque chose comme hasAchievementUnlocked dans le joueur.
EDIT: En 1.7, c’était player.funcxxx.hasAchievementUnlocked(achievement)
-
Ok merci je vais essayé

-
if(e.achievement == AchievementList.mineWood && !((EntityPlayerMP)e.entityPlayer).func_147099_x().hasAchievementUnlocked(AchievementList.mineWood)) { e.entityPlayer.addExperience(200); } -
@SubscribeEvent
public void onAchievement(AchievementEvent e)
{if(e.achievement == AchievementList.mineWood)
{System.out.println(“Test Achievement1”);
if(e.achievement == AchievementList.mineWood && !((EntityPlayer)e.entityPlayer).func_147099_x().hasAchievementUnlocked(AchievementList.mineWood))
{
e.entityPlayer.addExperience(200);
e.entityPlayer.inventory.addItemStackToInventory(new ItemStack(Items.apple));
}}
Le petit problème c’est que le func_147099_x() fait une error
-
J’ai mis EntityPlayerMP pas EntityPlayer pour le cast
-
Oui mais il veut le changer en entityPlayer
-
Ça dit quoi ? Est-ce que tu a importé la classe ?
import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.stats.AchievementList; import net.minecraftforge.event.entity.player.AchievementEvent; import cpw.mods.fml.common.eventhandler.SubscribeEvent; public class Event { @SubscribeEvent public void onEvent(AchievementEvent e) { if(e.achievement == AchievementList.mineWood && !((EntityPlayerMP)e.entityPlayer).func_147099_x().hasAchievementUnlocked(AchievementList.mineWood)) { e.entityPlayer.addExperience(200); } } } -
Sa marche merci beaucoup

-
Balises résolue ?
-
C’est bon sa marche méme en serveur
-
N’oublie pas la balise si c’est résolu