Compteur kill
-
Oui tu as les @SideOnly(Side.CLIENT) c’est mieux.
Fin je préfères à toi de voir.Pour se qui est du crash c’est dans la classe LivingEventCustom visiblement .
Donne nous cette classe
-
package fr.darkvince.proxy; import java.util.Random; import com.ibm.icu.util.Calendar; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.gameevent.TickEvent; import fr.darkvince.ultrav2.Main; import fr.darkvince.ultrav2.casseKnife.EvisererVioletStatTrak; import fr.darkvince.ultrav2.casseKnife.bayonnetfadeStatTrak; import fr.darkvince.ultrav2.casseKnife.dopplerkarambitStatTrak; import fr.darkvince.ultrav2.cassefauchon.Knife; import net.minecraft.block.Block; import net.minecraft.client.Minecraft; import net.minecraft.entity.boss.EntityWither; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.monster.EntityCreeper; import net.minecraft.entity.monster.EntitySkeleton; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.event.entity.living.LivingDeathEvent; import net.minecraftforge.event.entity.living.LivingDropsEvent; import net.minecraftforge.event.entity.player.ItemTooltipEvent; import net.minecraftforge.event.world.BlockEvent.HarvestDropsEvent; public class LivingEventCustom { @SubscribeEvent public void onEntityKilled1(LivingDeathEvent event) { if(event.source.getEntity() instanceof EntityPlayer) { EntityPlayer player = (EntityPlayer)event.source.getEntity(); if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof EvisererVioletStatTrak) // { ItemStack itemstack = Minecraft.getMinecraft().thePlayer.getCurrentEquippedItem(); //on récupère l'itemstack qui nécessairement est l'item voulu int frags = itemstack.getTagCompound().getInteger("frags"); //on récupère ton nbt itemstack.getTagCompound().setInteger("frags", frags + 1); //on ajoute 1 à la valeur de l'integer } } if(event.source.getEntity() instanceof EntityPlayer) { EntityPlayer player = (EntityPlayer)event.source.getEntity(); if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof bayonnetfadeStatTrak) // { ItemStack itemstack = Minecraft.getMinecraft().thePlayer.getCurrentEquippedItem(); //on récupère l'itemstack qui nécessairement est l'item voulu int frags = itemstack.getTagCompound().getInteger("frags"); //on récupère ton nbt itemstack.getTagCompound().setInteger("frags", frags + 1); //on ajoute 1 à la valeur de l'integer } } if(event.source.getEntity() instanceof EntityPlayer) { EntityPlayer player = (EntityPlayer)event.source.getEntity(); if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof dopplerkarambitStatTrak) // { ItemStack itemstack = Minecraft.getMinecraft().thePlayer.getCurrentEquippedItem(); //on récupère l'itemstack qui nécessairement est l'item voulu int frags = itemstack.getTagCompound().getInteger("frags"); //on récupère ton nbt itemstack.getTagCompound().setInteger("frags", frags + 1); //on ajoute 1 à la valeur de l'integer } } } @SubscribeEvent public void onBlockDrop(HarvestDropsEvent event) { if(event.block == Blocks.glass) { event.drops.clear(); event.dropChance = (float) 0.1; event.drops.add(new ItemStack(Main.GemXray)); } } @SubscribeEvent public void onLivingDrops(LivingDropsEvent event) { if ((event.entity instanceof EntityWither)) { EntityItem newdrop = new EntityItem(event.entity.worldObj, event.entity.posX, event.entity.posY, event.entity.posZ, new ItemStack(Main.whiterDrop, 1)); event.drops.add(newdrop); } if(event.entity instanceof EntityCreeper) { for(int i = 0; i < event.drops.size(); i ++) { if(event.drops.get(i).getEntityItem().getItem() == Items.gunpowder && event.source.getDamageType().equals("anvil")) { EntityItem newdrop = new EntityItem(event.entity.worldObj, event.entity.posX, event.entity.posY, event.entity.posZ, new ItemStack(Main.poudredyna, 1)); event.drops.add(newdrop); } } } if ((event.entity instanceof EntitySkeleton)) { EntitySkeleton skeleton = (EntitySkeleton)event.entity; if (skeleton.getSkeletonType() == 1) { EntityItem i = new EntityItem(event.entity.worldObj, event.entity.posX, event.entity.posY, event.entity.posZ, new ItemStack(Items.skull, 1, 1)); event.drops.remove(i); } } } } -
Tien ton event devrait être comme ça:
@SubscribeEvent public void onEntityKilled1(LivingDeathEvent event) { EntityPlayer player = (EntityPlayer)event.source.getEntity(); if(player instanceof EntityPlayer) { if(player.getHeldItem() != null) { if(player.getHeldItem().getItem() instanceof EvisererVioletStatTrak) { ItemStack itemstack = Minecraft.getMinecraft().thePlayer.getCurrentEquippedItem(); //on récupère l'itemstack qui nécessairement est l'item voulu int frags = itemstack.getTagCompound().getInteger("frags"); //on récupère ton nbt itemstack.getTagCompound().setInteger("frags", frags + 1); //on ajoute 1 à la valeur de l'integer } else if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof bayonnetfadeStatTrak) // { ItemStack itemstack = Minecraft.getMinecraft().thePlayer.getCurrentEquippedItem(); //on récupère l'itemstack qui nécessairement est l'item voulu int frags = itemstack.getTagCompound().getInteger("frags"); //on récupère ton nbt itemstack.getTagCompound().setInteger("frags", frags + 1); //on ajoute 1 à la valeur de l'integer } else if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof dopplerkarambitStatTrak) // { ItemStack itemstack = Minecraft.getMinecraft().thePlayer.getCurrentEquippedItem(); //on récupère l'itemstack qui nécessairement est l'item voulu int frags = itemstack.getTagCompound().getInteger("frags"); //on récupère ton nbt itemstack.getTagCompound().setInteger("frags", frags + 1); //on ajoute 1 à la valeur de l'integer } } } }La ligne 84 de cette classe correspond à quoi? (LivingEventCustom)
-
ItemStack itemstack = Minecraft.getMinecraft().thePlayer.getCurrentEquippedItem(); -
Remplaces tous les Minecraft.getMinecraft().thePlayer par player.
Il serait vraiment temps d’arrêter d’utiliser Minecraft.getMinecraft() côté serveur –’
C’est pourtant pas compliquer à comprendre, Minecraft.java = client only = crash côté serveur. -
Ma faute ^^
Par contre il ne me semble pas qu’il y ait besoin de répéter les if, il suffit de mettre les conditions ensemble
if(player.getHeldItem() != null && (player.getHeldItem().getItem() instanceof Item1|| player.getHeldItem().getItem() instanceof Item2|| player.getHeldItem().getItem() instanceof Item3|| player.getHeldItem().getItem() instanceof Item4|| player.getHeldItem().getItem() instanceof Item5|| player.getHeldItem().getItem() instanceof Item6)) { ItemStack itemstack = player.getCurrentEquippedItem(); int frags = itemstack.getTagCompound().getInteger("frags"); itemstack.getTagCompound().setInteger("frags", frags + 1); } -
@‘Toutoune1008’:
Ma faute ^^
Par contre il ne me semble pas qu’il y ait besoin de répéter les if, il suffit de mettre les conditions ensemble
if(player.getHeldItem() != null && (player.getHeldItem().getItem() instanceof Item1|| player.getHeldItem().getItem() instanceof Item2|| player.getHeldItem().getItem() instanceof Item3|| player.getHeldItem().getItem() instanceof Item4|| player.getHeldItem().getItem() instanceof Item5|| player.getHeldItem().getItem() instanceof Item6)) { ItemStack itemstack = player.getCurrentEquippedItem(); int frags = itemstack.getTagCompound().getInteger("frags"); itemstack.getTagCompound().setInteger("frags", frags + 1); }Ah oui exact aussi j’avais pas pensé.
-
Ou alors créer une interface que tu implémentes aux armes auxquelles tu veux un compteur de kill et faire :
if(player.getHeldItem() instanceof TonInterface) { }Ou encore créer une classe mère pour toutes tes armes et faire
if(player.getHeldItem() instanceof TaClasseMere) { } -
Je ne sais pas pour lui mais moi j’apprécie ce conseil qui me recadre en le prenant à mon compte.
-
Merci pour votre aide je vais le modifier pour faire plus propre
Envoyé de mon SM-G928F en utilisant Tapatalk