Résolu Achivement Give
-
Bonjour hier j’ai u une idée que les achievement te donnerais une récompense quand tu les réaliseras .Mais en cherchant comment faire je ne trouvais pas alors me mis à commencé a cherché sur le forum j’ai rien trouvé
Pourriez-vous m’aider
MerciCordialement
(excusez moi des fautes)
-
AchievementEvent à enregistrer sur le bus forge. Ensuite tu check avec le field event.achievement, lequel a été accompli, au quel cas tu fourniras ta réponse prédéfinie.
-
Tu pourrais me montré comment sa rend?
(je ne voit vraiment pas comment sa peux rendre) -
@SubscribeEvent public void onAchievement(AchievementEvent event) { if(event.achievement == AchievementList.spawnWither) { System.out.println("Achievement"); } }
-
Merci
je vais essayer -
Merci sa marche quand on va faire l’achivement sa faire affiché un message dans la console
Mais Juste une dernière chose comment on va faire pour giffé un item -
player.inventory.addItemstackToInventory(new ItemStack(tonitem));
Je ne sais pas si la méthode est client side only, à toi de tester
-
Au contraire, elle doit être utilisée côté serveur, sauf erreur de ma part.
-
@SubscribeEvent
public void onAchievement(AchievementEvent event,EntityPlayer Player)
{
if(event.achievement == AchievementList.openInventory)
{
System.out.println(“Test Achievement”);
Player.inventory.addItemStackToInventory(new ItemStack(Items.apple));
}J’ai essayé sa mais ne marche pas
-
@SubscribeEvent public void onAchievement(AchievementEvent event) { if(event.achievement == AchievementList.openInventory) { System.out.println("Test Achievement"); event.player.inventory.addItemStackToInventory(new ItemStack(Items.apple)); }
Change pas les arguments de la méthode tu récupère le joueur dans la variable event, je suis pas sûr du code fait “event.” puis CTRL + ESPACE et cherche si ya un truc qui correspond au joueur
-
J’ai fait as mais il à un problème c’est quand on va faire l’action de l’achievement il va redonné l’item
(j’ai essayé avec d’autre achievement et sa le fait toujours) -
C’est à dire, genre à chaque fois que l’on va couper du bois le code s’exécute ?
-
@‘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é