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 
    Merci

    Cordialement 😉

    (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)


  • Correcteurs

       @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 😉


  • Correcteurs

    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


  • Rédacteurs

    
    @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)


  • Rédacteurs

    C'est à dire, genre à chaque fois que l'on va couper du bois le code s'exécute ?


  • Correcteurs

    @'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));

    }
     }


  • Rédacteurs

    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 😕


  • Rédacteurs

    Je fait des tests de mon côté et je te dis ce que j'ai trouvé


  • Correcteurs

    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é  😉


Log in to reply