Créer un achievement
-
Tu as enregistré la classe d’event ?
-
Oui dans le init :
MinecraftForge.EVENT_BUS.register(new EventAch());
-
Il s’agit d’un évent FML pas d’un évent Forge, enregistre le avec : ```java
FMLCommonHandler.instance().bus().register(new EventAch());
-
Non, c’est bien un event forge :
import net.minecraftforge.event.entity.player.EntityItemPickupEvent;Je ne vois pas d’où vient le problème
-
Remplace event.item.getEntityItem … par event.item peut être?
-
Est-ce que ton achievement apparait dans le gui des achievements ?
Comme l’à dit utybo, tu devrais faire plutôt comme ça : event.item instanceof tonitem
Limite t’es pas obligé de check si le joueur est null ou pas puisque c’est le joueur qui pick donc il n’est forcement pas null. -
J’aurais une question,
Si exemple je veut ajouter des “récompenses” quand quelqu’un fait l’achievements, exemple je mine un block de dirt et sa me mes l’Achievements et sa me donne 10 bois en récompense, est-ce que sa se fait ?
Sinon est-ce que le code est pareil pour la 1.7 ?
-
Quand on achievement est obtenue, il me semble qu’un event est déclencher donc oui
-
Ce que tu peux faire aussi et de donner les récompenses en même temps que l’achievement
-
Ouais, mais y,a t’il un tuto pour sa ?
-
Vraiment besoin d’un tuto pour un ```java
player.inventory.tryAdd(new ItemStack(objet, nombre));? Sent from my GT-I9000 using Tapatalk 2
-
Question :
Quelqu’un connaîtrait la classe qui remplace ICraftingHandler en 1.7.2 ?
Voire même une alternative car la méthode registerCraftingHandler n’existe plus… -
ça passe maintenant par les event de fml (regarde le package cpw.mod.fml.common.gameevent)
-
Merci ça marche :).
(petit détail : cpw.modS.fml.common.gameevent)EDIT :
J’ai parlé trop vite. Peut-être est-ce que j’ai fait une bourde ?PlayerEvent.java qui est enregistré dans Basic.java
@SubscribeEvent public void onCrafting(ItemCraftedEvent event) { if(event.crafting.getItem() == Item.getItemFromBlock(Basic.crusher)) { event.player.triggerAchievement(Basic.getCrusher); } if(event.crafting.getItem() == Item.getItemFromBlock(Basic.compressor)) { event.player.triggerAchievement(Basic.getCompressor); } }
-
Non c’est bien ça, je pense que tu as mal enregistré l’event, c’est un event fml donc il faut enregistrer la classe avec FMLCommonHandler.instance().bus().register(new NomDeLaClasse());
-
Ah d’accord, c’est pour ça.
On est bien d’accord qu’une classe d’event peut être enregistrée de 2 façons différentes et en même temps ? -
oui, c’est écrit dans le tutoriel sur les event.
-
Merci, ça marche
-
Salut les gars,
J’ai une question concernant l’icône de l’achievement.
Comment peux-t-on déclarer un certain metadata d’un item comme icône?
Je ne sais pas comment déclarer ça dans la fonction init.(En 1.7, sais-t-on jamais)
-
package net.minecraft.stats.Achievement;
public Achievement(String nom, String nomPourLaTraduction, int colonne, int ligne, ItemStack itemStackAvecMetadata, Achievement parent)