Non résolu Code qui fonctionne plus
-
Bonjour,
Comme dans le titre j’ai un probleme mon code fonctionné y a pas très longtemps est du jours au l’endemain il fonctionne plus
package fr.darkvince.ultrav2; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; import net.minecraft.stats.StatList; import net.minecraft.util.MathHelper; import net.minecraftforge.event.entity.EntityJoinWorldEvent; import net.minecraftforge.event.entity.living.LivingDeathEvent; import cpw.mods.fml.common.eventhandler.SubscribeEvent; public class PlayerEventHandler { @SubscribeEvent public void onLivingDeath(LivingDeathEvent event) { if(event.entity instanceof EntityPlayer) { EntityPlayer player = (EntityPlayer)event.entity; if(player.inventory.hasItem(Main.bayonnetfadeuse) && player.inventory.hasItem(Main.bayonnetfade) && player.inventory.hasItem(Main.bayonnetfadetest) && player.inventory.hasItem(Main.dopplerkarambitmauvais ) && player.inventory.hasItem(Main.dopplerkarambitusee) && player.inventory.hasItem(Main.dopplerkarambit) && player.inventory.hasItem(Main.dopplerkarambittest) && player.inventory.hasItem(Main.dopplerkarambitmauvais ) && player.inventory.hasItem(Main.bayonnetfadeStatTrak) && player.inventory.hasItem(Main.dopplerkarambitStatTrak) && player.inventory.hasItem(Main.EvisererVioletStatTrak)) { this.dropInventory(player.inventory); player.worldObj.getGameRules().setOrCreateGameRule("keepInventory", "true"); } } } @SubscribeEvent public void onEntityJointWorld(EntityJoinWorldEvent event) { if(event.entity instanceof EntityPlayer) { event.world.getGameRules().setOrCreateGameRule("keepInventory", "false"); } } private void dropInventory(InventoryPlayer inventory) { int i; for(i = 0; i < inventory.mainInventory.length; ++i) { if(inventory.mainInventory* != null) { if(inventory.mainInventory*.getItem() != Main.bayonnetfadeStatTrak && inventory.mainInventory*.getItem() != Main.dopplerkarambitStatTrak && inventory.mainInventory*.getItem() != Main.EvisererVioletStatTrak && inventory.mainInventory*.getItem() != Main.bayonnetfade && inventory.mainInventory*.getItem() != Main.bayonnetfadeuse && inventory.mainInventory*.getItem() != Main.bayonnetfadetest && inventory.mainInventory*.getItem() != Main.dopplerkarambitmauvais && inventory.mainInventory*.getItem() != Main.dopplerkarambit && inventory.mainInventory*.getItem() != Main.dopplerkarambitusee && inventory.mainInventory*.getItem() != Main.dopplerkarambittest && inventory.mainInventory*.getItem() != Main.dopplerkarambitmauvais) { inventory.player.func_146097_a(inventory.mainInventory*, true, false); inventory.mainInventory* = null; } } } for(i = 0; i < inventory.armorInventory.length; ++i) { if(inventory.armorInventory* != null) { inventory.player.func_146097_a(inventory.armorInventory*, true, false); inventory.armorInventory* = null; } } } }
-
Salut,
Je te conseil de refaire ton copier/coller, car là c’est juste illisible.Et ça serait bien de détailler un peu plus, par exemple expliquer quel est le comportement attendu et ce que tu as actuellement.
-
En gros quand je meurt Il ne doit pas perdre tous les items que j’ai mis
Parcontre le code java quand je le mais sa enleve les espaces
Car normalment le code est comme sa
-
Pas normal que l’indentation saute.
Veries que ta classe d’event est bien enregistrée. -
Je pence que le problème, si ce n’est pas que la class est mal enregistrée, c’est ta longue condition dans “onLivingDeath”. ça me parait plus logique de remplacer les " && " par des " || " car avec ton code, il faut avoir tous les items que tu as mis, dans l’inventaire pour pouvoir les garder.
-
MinecraftForge.EVENT_BUS.register(new PlayerEventHandler());
Bien enregistré
et remplacent sa change rien
Edit:
J’ai modifié avec un code pas très jolie mais sa fonctionne
package fr.darkvince.ultrav2; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; import net.minecraft.stats.StatList; import net.minecraft.util.MathHelper; import net.minecraftforge.event.entity.EntityJoinWorldEvent; import net.minecraftforge.event.entity.living.LivingDeathEvent; import cpw.mods.fml.common.eventhandler.SubscribeEvent; public class PlayerEventHandler { @SubscribeEvent public void onLivingDeath(LivingDeathEvent event) { if(event.entity instanceof EntityPlayer) { EntityPlayer player = (EntityPlayer)event.entity; if(player.inventory.hasItem(Main.EvisererVioletStatTrak) || player.inventory.hasItem(Main.dopplerkarambit) || player.inventory.hasItem(Main.dopplerkarambitmauvais) || player.inventory.hasItem(Main.dopplerkarambitStatTrak) || player.inventory.hasItem(Main.dopplerkarambittest) || player.inventory.hasItem(Main.dopplerkarambitusee) || player.inventory.hasItem(Main.bayonnetfade) || player.inventory.hasItem(Main.bayonnetfademauvais)) { this.dropInventory(player.inventory); player.worldObj.getGameRules().setOrCreateGameRule("keepInventory", "true"); } } } @SubscribeEvent public void onEntityJointWorld(EntityJoinWorldEvent event) { if(event.entity instanceof EntityPlayer) { event.world.getGameRules().setOrCreateGameRule("keepInventory", "false"); } } private void dropInventory(InventoryPlayer inventory) { int i; for(i = 0; i < inventory.mainInventory.length; ++i) { if(inventory.mainInventory* != null) { if(inventory.mainInventory*.getItem() != Main.EvisererVioletStatTrak) if(inventory.mainInventory*.getItem() != Main.dopplerkarambit) if(inventory.mainInventory*.getItem() != Main.dopplerkarambitmauvais) if(inventory.mainInventory*.getItem() != Main.dopplerkarambitStatTrak) if(inventory.mainInventory*.getItem() != Main.dopplerkarambittest) if(inventory.mainInventory*.getItem() != Main.dopplerkarambitusee) if(inventory.mainInventory*.getItem() != Main.bayonnetfade) if(inventory.mainInventory*.getItem() != Main.bayonnetfademauvais) if(inventory.mainInventory*.getItem() != Main.bayonnetfadeStatTrak) if(inventory.mainInventory*.getItem() != Main.bayonnetfadetest) if(inventory.mainInventory*.getItem() != Main.bayonnetfadeuse) { inventory.player.func_146097_a(inventory.mainInventory*, true, false); inventory.mainInventory* = null; } } } for(i = 0; i < inventory.armorInventory.length; ++i) { if(inventory.armorInventory* != null) { inventory.player.func_146097_a(inventory.armorInventory*, true, false); inventory.armorInventory* = null; } } } }
-
Balise Résolu ?
PS : pour avoir un code plus propre, dans la fonction onLivingDeath tu peux par exemple, pour avoir des “inventory” au lieu des “player.inventory” faire une variable InventoryPlayer inventory = player.inventory.