Créer un achievement
-
Ou alors tu check juste si le joueur a déjà l’achievement ou pas, tout simplement.
-
oui robin ca me parait un peut plus simple xD mais comment faire ? :0 ( sachez que je retiens toutes les suggestions et je les teste toutes =D comme ça j’apprends plus
) -
Ah, mais c’est vrai que tu passe par un achievement ( J’suis con )
Dans ce cas, c’est surement .hasAchievement ou .getAchievement il me semble
-
je dois mettre ou ce code ?
-
if(!player.hasAchieved / je sais plus la méthode )){
code pour give les niveau
}
-
celui que j’avais mis au dessus ?
```java
event.entityPlayer.addExperienceLevel(30); -
Yes
-
mas la methode je ne la trouve pas

-
La méthode, c’est celle qui débloque ton achievement.
-
if ( event.entityPlayer != null) ; ``` ? -
C’est pas une méthode, c’est une condition.
Une méthode s’est: ```java@Override
public void notifyPickup(EntityItem item, EntityPlayer player)
{}
-
La l’achievement s’active mais les nv s’acumulent

package bdbladx.common; import cpw.mods.fml.common.network.Player; import net.minecraft.block.Block; import net.minecraft.entity.Entity; import net.minecraft.stats.Achievement; import net.minecraftforge.event.ForgeSubscribe; import net.minecraftforge.event.entity.player.EntityItemPickupEvent; public class PlayerEvent { @ForgeSubscribe public void onBlockPickedUp(EntityItemPickupEvent event) { if(event.item.getEntityItem().itemID == eryliablocks.BlockUranium.blockID) { if(event.entityPlayer != null) event.entityPlayer.triggerAchievement(eryliablocks.achievementUraniumBrut); event.entityPlayer.addExperienceLevel(30); } } }___@‘Gugu42’:
if(!player.hasAchieved / je sais plus la méthode )){
code pour give les niveau
}
sachant que la methode est ```java
@ForgeSubscribe
public void onBlockPickedUp(EntityItemPickupEvent event)
{
if(event.item.getEntityItem().itemID == eryliablocks.BlockUranium.blockID)
{
if(event.entityPlayer != null);et que le code pour give les niveaux ```java event.entityPlayer.addExperienceLevel(30)je dois mettre comment ?
-
Essayes ceci:
package bdbladx.common; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.stats.AchievementList; import cpw.mods.fml.common.IPickupNotifier; public class PickupHandler implements IPickupNotifier { @Override public void notifyPickup(EntityItem item, EntityPlayer player) { if(item.getEntityItem().itemID == eryliablocks.BlockUranium.blockID && !player.hasAchieved(eryliablocks.achievementUraniumBrut)) { player.addStat(eryliablocks.achievementUraniumBrut); player.addExperienceLevel(30); } } }Dans la class principale:
GameRegistry.registerPickupHandler(new PickupHandler()); -
Hm … plutôt cette ligne :
player.addExperienceLevel(30);Dans cette condition :
if(item.getEntityItem().itemID == eryliablocks.BlockUranium.blockID) { player.addStat(eryliablocks.achievementUraniumBrut); }Avec une petite modif :
if(item.getEntityItem().itemID == eryliablocks.BlockUranium.blockID && !player.hasAchieved(eryliablocks.achievementUraniumBrut)) { player.addStat(eryliablocks.achievementUraniumBrut); player.addExperienceLevel(30); }Histoire de faire d’une pierre deux coups

-
Exact, j’avais oublié que je pouvais mettre une condition avec un ET dedans.
-
j’essaye et je vous dit quelque chose =)___
Erreur sur .hasAchieved et .addstat
Edit: j’ai resolu le .addstat en metant ```java
player.addStat(eryliablocks.achievementUraniumBrut, 1);
ajout du 1 =) -
Pour le .hasAchieved, tu as quel erreur exactement?
-
“The method hasAchieved(Achievement) is undefined for the
type EntityPlayer” -
Eclipse te propose de le remplacer? Si oui, par quoi?
-
non pas de proposition
juste le ttruc de create a field ….
