Baton et item de reparation et GUI
-
Le chemin que tu as indiqué dans ta classe principale pour le common proxy est invalide.
-
ah oui au lieu d’un ‘P’ j’ai mis un ‘p’
-
Yo les gens ,
Je me permet de revenir sur se sujet car je me suis rendu compte que ma machine ne prenait pas en compte les métadata donc une fois de plusse je me tourne vers vous (ce seras la dernier aprés vous ne me donerais plus de code promi
) -
J’ai remarqué il y a peu qu’il y avait des erreurs dans le tutoriel, envoi ta classe avec les recettes et la TileEntity si tu veux que je le corrige

-
MachineRecipes
public class MachineRecipes { public MachineRecipes() { smeltingList = new HashMap(); addRecipe(ModPaladium.PaladiumOre, ModPaladium.Paladiumbloc, ModPaladium.Paladiumbloc, ModPaladium.Paladiumbloc, ModPaladium.Paladiumbloc, new ItemStack(ModPaladium.smallring, 1)); addRecipe(ModPaladium.smallring, ModPaladium.CompressPaladium, ModPaladium.CompressPaladium, ModPaladium.CompressPaladium, ModPaladium.CompressPaladium, new ItemStack(ModPaladium.mediumring, 1)); addRecipe(ModPaladium.mediumring, ModPaladium.CompressPaladium, ModPaladium.CompressPaladium, ModPaladium.CompressPaladium, ModPaladium.CompressPaladium, new ItemStack(ModPaladium.bigring, 1)); addRecipe(ModPaladium.smallring, ModPaladium.PaladiumOre, ModPaladium.PaladiumOre, ModPaladium.PaladiumOre, ModPaladium.PaladiumOre, new ItemStack(ModPaladium.smallring, 1)); addRecipe(ModPaladium.mediumring, ModPaladium.PaladiumOre, ModPaladium.PaladiumOre, ModPaladium.PaladiumOre, ModPaladium.PaladiumOre, new ItemStack(ModPaladium.mediumring, 1)); addRecipe(ModPaladium.bigring, ModPaladium.PaladiumOre, ModPaladium.PaladiumOre, ModPaladium.PaladiumOre, ModPaladium.PaladiumOre, new ItemStack(ModPaladium.bigring, 1)); addRecipe(ModPaladium.orbeheal, ModPaladium.stickpala, ModPaladium.PaladiumOre, ModPaladium.stickpala, ModPaladium.PaladiumOre, new ItemStack(ModPaladium.healstick, 1)); addRecipe(ModPaladium.orbeheal, ModPaladium.orbeheal, ModPaladium.orbeheal, ModPaladium.orbeheal, ModPaladium.orbeheal, new ItemStack(ModPaladium.superhealstick, 1)); addRecipe(ModPaladium.orbespeed, ModPaladium.stickpala, ModPaladium.PaladiumOre, ModPaladium.stickpala, ModPaladium.PaladiumOre, new ItemStack(ModPaladium.speedstick, 1)); addRecipe(ModPaladium.orbestrength, ModPaladium.stickpala, ModPaladium.PaladiumOre, ModPaladium.stickpala, ModPaladium.PaladiumOre, new ItemStack(ModPaladium.strengthstick, 1)); addRecipe(ModPaladium.orbejump, ModPaladium.stickpala, ModPaladium.PaladiumOre, ModPaladium.stickpala, ModPaladium.PaladiumOre, new ItemStack(ModPaladium.jumpstick, 1)); addRecipe(ModPaladium.CompressPaladium, ModPaladium.strengthstick, ModPaladium.speedstick, ModPaladium.healstick, ModPaladium.findium, new ItemStack(ModPaladium.StickOfGod, 1)); } public void addRecipe(ItemStack stack1, ItemStack stack2, ItemStack stack3, ItemStack stack4, ItemStack stack5, ItemStack stack) { ItemStack stackList[] = { stack1, stack2, stack3, stack4, stack5 }; smeltingList.put(stackList, stack); } public void addRecipe(Item item1, Block item2, Item item3, Block item4, Item item5, ItemStack stack) { addRecipe(new ItemStack(item1), new ItemStack(item2), new ItemStack(item3), new ItemStack(item4), new ItemStack(item5), stack); } public void addRecipe(Item item1, Item item2, Item item3, Item item4, Item item5, ItemStack stack) { addRecipe(new ItemStack(item1), new ItemStack(item2), new ItemStack(item3), new ItemStack(item4), new ItemStack(item5), stack); } public void addRecipe(Block item1, Block item2, Item item3, Block item4, Block item5, ItemStack stack) { addRecipe(new ItemStack(item1), new ItemStack(item2), new ItemStack(item3), new ItemStack(item4), new ItemStack(item5), stack); } public void addRecipe(Item item1, Block item2, Block item3, Block item4, Block item5, ItemStack stack) { addRecipe(new ItemStack(item1), new ItemStack(item2), new ItemStack(item3), new ItemStack(item4), new ItemStack(item5), stack); } public ItemStack getSmeltingResult(ItemStack stack[]) { Iterator iterator = smeltingList.entrySet().iterator(); java.util.Map.Entry entry; do { if(!iterator.hasNext()) return null; entry = (java.util.Map.Entry)iterator.next(); } while(!isSameKey(stack, (ItemStack[])(ItemStack[])entry.getKey())); return (ItemStack)entry.getValue(); } private boolean isSameKey(ItemStack stackList[], ItemStack stackList2[]) { boolean isSame = false; for(int i = 0; i <= 4; i++) if(stackList*.getItem() == stackList2*.getItem()) isSame = true; else return false; return isSame; } public Map getSmeltingList() { return smeltingList; } public static MachineRecipes smelting() { return smeltingBase; } private static final MachineRecipes smeltingBase = new MachineRecipes(); private Map smeltingList;**TileEntityMachinePala **
public class TileEntityMachinePala extends TileEntity implements IInventory { public TileEntityMachinePala() { contents = new ItemStack[6]; workingTime = 0; workingTimeNeeded = 200; } @Override public void writeToNBT(NBTTagCompound compound) { super.writeToNBT(compound); NBTTagList nbttaglist = new NBTTagList(); for(int i = 0; i < contents.length; i++) if(contents* != null) { NBTTagCompound nbttagcompound1 = new NBTTagCompound(); nbttagcompound1.setByte("Slot", (byte)i); contents*.writeToNBT(nbttagcompound1); nbttaglist.appendTag(nbttagcompound1); } compound.setTag("Items", nbttaglist); compound.setShort("workingTime", (short)workingTime); compound.setShort("workingTimeNeeded", (short)workingTimeNeeded); } public int getCookProgress() { return (workingTime * 16) / workingTimeNeeded; } @Override public void readFromNBT(NBTTagCompound compound) { super.readFromNBT(compound); NBTTagList nbttaglist = compound.getTagList("Items", 10); contents = new ItemStack[getSizeInventory()]; for(int i = 0; i < nbttaglist.tagCount(); i++) { NBTTagCompound nbttagcompound1 = nbttaglist.getCompoundTagAt(i); int j = nbttagcompound1.getByte("Slot"); if(j >= 0 && j < contents.length) contents[j] = ItemStack.loadItemStackFromNBT(nbttagcompound1); } workingTime = compound.getShort("workingTime"); workingTimeNeeded = compound.getShort("workingTimeNeeded"); } @Override public int getSizeInventory() { return contents.length; } @Override public ItemStack getStackInSlot(int slotIndex) { return contents[slotIndex]; } @Override public ItemStack decrStackSize(int slotIndex, int amount) { if(contents[slotIndex] != null) { ItemStack itemstack; if(contents[slotIndex].stackSize <= amount) { itemstack = contents[slotIndex]; contents[slotIndex] = null; markDirty(); return itemstack; } itemstack = contents[slotIndex].splitStack(amount); if(contents[slotIndex].stackSize == 0) contents[slotIndex] = null; markDirty(); return itemstack; } else { return null; } } @Override public ItemStack getStackInSlotOnClosing(int slotIndex) { if(contents[slotIndex] != null) { ItemStack itemstack = contents[slotIndex]; contents[slotIndex] = null; return itemstack; } else { return null; } } @Override public void setInventorySlotContents(int slotIndex, ItemStack stack) { contents[slotIndex] = stack; if(stack != null && stack.stackSize > getInventoryStackLimit()) stack.stackSize = getInventoryStackLimit(); markDirty(); } @Override public String getInventoryName() { return "tile.Machinetuto"; } @Override public boolean hasCustomInventoryName() { return false; } @Override public int getInventoryStackLimit() { return 64; } @Override public boolean isUseableByPlayer(EntityPlayer player) { return worldObj.getTileEntity(xCoord, yCoord, zCoord) == this ? player.getDistanceSq((double)xCoord + 0.5D, (double)yCoord + 0.5D, (double)zCoord + 0.5D) <= 64D : false; } @Override public void openInventory() { } @Override public void closeInventory() { } @Override public boolean isItemValidForSlot(int slot, ItemStack stack) { return slot != 5; } public boolean isBurning() { return workingTime > 0; } private boolean canSmelt() { if(contents[0] == null || contents[1] == null || contents[2] == null || contents[3] == null || contents[4] == null) return false; ItemStack itemstack = MachineRecipes.smelting().getSmeltingResult(new ItemStack[] { contents[0], contents[1], contents[2], contents[3], contents[4] }); if(itemstack == null) return false; if(contents[5] == null) return true; if(!contents[5].isItemEqual(itemstack)) { return false; } else { int result = contents[5].stackSize + itemstack.stackSize; return result <= getInventoryStackLimit() && result <= contents[5].getMaxStackSize(); } } public void updateEntity() { if(isBurning() && canSmelt()) workingTime++; if(canSmelt() && !isBurning()) workingTime = 1; if(canSmelt() && workingTime == workingTimeNeeded) { smeltItem(); workingTime = 0; } if(!canSmelt()) workingTime = 0; } public void smeltItem() { if(canSmelt()) { ItemStack itemstack = MachineRecipes.smelting().getSmeltingResult(new ItemStack[] { contents[0], contents[1], contents[2], contents[3], contents[4] }); if(contents[5] == null) contents[5] = itemstack.copy(); else if(contents[5].getItem() == itemstack.getItem()) contents[5].stackSize += itemstack.stackSize; contents[0].stackSize–; contents[1].stackSize–; contents[2].stackSize–; contents[3].stackSize–; contents[4].stackSize–; if(contents[0].stackSize <= 0) contents[0] = null; if(contents[1].stackSize <= 0) contents[1] = null; if(contents[2].stackSize <= 0) contents[2] = null; if(contents[3].stackSize <= 0) contents[3] = null; if(contents[4].stackSize <= 0) contents[4] = null; } } private ItemStack contents[]; private int workingTime; private int workingTimeNeeded; } -
Voilà les classes corrigées :
public class MachineRecipes { public MachineRecipes() { smeltingList = new HashMap<itemstack[], itemstack="">(); addRecipe(ModPaladium.PaladiumOre, ModPaladium.Paladiumbloc, ModPaladium.Paladiumbloc, ModPaladium.Paladiumbloc, ModPaladium.Paladiumbloc, new ItemStack(ModPaladium.smallring, 1)); addRecipe(ModPaladium.smallring, ModPaladium.CompressPaladium, ModPaladium.CompressPaladium, ModPaladium.CompressPaladium, ModPaladium.CompressPaladium, new ItemStack(ModPaladium.mediumring, 1)); addRecipe(ModPaladium.mediumring, ModPaladium.CompressPaladium, ModPaladium.CompressPaladium, ModPaladium.CompressPaladium, ModPaladium.CompressPaladium, new ItemStack(ModPaladium.bigring, 1)); addRecipe(ModPaladium.smallring, ModPaladium.PaladiumOre, ModPaladium.PaladiumOre, ModPaladium.PaladiumOre, ModPaladium.PaladiumOre, new ItemStack(ModPaladium.smallring, 1)); addRecipe(ModPaladium.mediumring, ModPaladium.PaladiumOre, ModPaladium.PaladiumOre, ModPaladium.PaladiumOre, ModPaladium.PaladiumOre, new ItemStack(ModPaladium.mediumring, 1)); addRecipe(ModPaladium.bigring, ModPaladium.PaladiumOre, ModPaladium.PaladiumOre, ModPaladium.PaladiumOre, ModPaladium.PaladiumOre, new ItemStack(ModPaladium.bigring, 1)); addRecipe(ModPaladium.orbeheal, ModPaladium.stickpala, ModPaladium.PaladiumOre, ModPaladium.stickpala, ModPaladium.PaladiumOre, new ItemStack(ModPaladium.healstick, 1)); addRecipe(ModPaladium.orbeheal, ModPaladium.orbeheal, ModPaladium.orbeheal, ModPaladium.orbeheal, ModPaladium.orbeheal, new ItemStack(ModPaladium.superhealstick, 1)); addRecipe(ModPaladium.orbespeed, ModPaladium.stickpala, ModPaladium.PaladiumOre, ModPaladium.stickpala, ModPaladium.PaladiumOre, new ItemStack(ModPaladium.speedstick, 1)); addRecipe(ModPaladium.orbestrength, ModPaladium.stickpala, ModPaladium.PaladiumOre, ModPaladium.stickpala, ModPaladium.PaladiumOre, new ItemStack(ModPaladium.strengthstick, 1)); addRecipe(ModPaladium.orbejump, ModPaladium.stickpala, ModPaladium.PaladiumOre, ModPaladium.stickpala, ModPaladium.PaladiumOre, new ItemStack(ModPaladium.jumpstick, 1)); addRecipe(ModPaladium.CompressPaladium, ModPaladium.strengthstick, ModPaladium.speedstick, ModPaladium.healstick, ModPaladium.findium, new ItemStack(ModPaladium.StickOfGod, 1)); } public void addRecipe(ItemStack stack1, ItemStack stack2, ItemStack stack3, ItemStack stack4, ItemStack stack5, ItemStack stack) { ItemStack stackList[] = { stack1, stack2, stack3, stack4, stack5 }; smeltingList.put(stackList, stack); } public void addRecipe(Item item1, Block item2, Item item3, Block item4, Item item5, ItemStack stack) { addRecipe(new ItemStack(item1), new ItemStack(item2), new ItemStack(item3), new ItemStack(item4), new ItemStack(item5), stack); } public void addRecipe(Item item1, Item item2, Item item3, Item item4, Item item5, ItemStack stack) { addRecipe(new ItemStack(item1), new ItemStack(item2), new ItemStack(item3), new ItemStack(item4), new ItemStack(item5), stack); } public void addRecipe(Block item1, Block item2, Item item3, Block item4, Block item5, ItemStack stack) { addRecipe(new ItemStack(item1), new ItemStack(item2), new ItemStack(item3), new ItemStack(item4), new ItemStack(item5), stack); } public void addRecipe(Item item1, Block item2, Block item3, Block item4, Block item5, ItemStack stack) { addRecipe(new ItemStack(item1), new ItemStack(item2), new ItemStack(item3), new ItemStack(item4), new ItemStack(item5), stack); } public ItemStack getSmeltingResult(ItemStack stack[]) { Iterator iterator = smeltingList.entrySet().iterator(); java.util.Map.Entry entry; do { if(!iterator.hasNext()) return null; entry = (java.util.Map.Entry)iterator.next(); } while(!isSameKey(stack, (ItemStack[])entry.getKey())); return (ItemStack)entry.getValue(); } private boolean isSameKey(ItemStack stackList[], ItemStack stackList2[]) { for(int i = 0; i <= 4; i++) { if (!stackList*.isItemEqual(stackList2*)) return false; } return true; } public Map <itemstack[], itemstack="">getSmeltingList() { return smeltingList; } public static MachineRecipes smelting() { return smeltingBase; } private static final MachineRecipes smeltingBase = new MachineRecipes(); private Map <itemstack[], itemstack="">smeltingList; }public class TileEntityMachinePala extends TileEntity implements IInventory { public TileEntityMachinePala() { contents = new ItemStack[6]; workingTime = 0; workingTimeNeeded = 200; } @Override public void writeToNBT(NBTTagCompound compound) { super.writeToNBT(compound); NBTTagList nbttaglist = new NBTTagList(); for(int i = 0; i < contents.length; i++) if(contents* != null) { NBTTagCompound nbttagcompound1 = new NBTTagCompound(); nbttagcompound1.setByte("Slot", (byte)i); contents*.writeToNBT(nbttagcompound1); nbttaglist.appendTag(nbttagcompound1); } compound.setTag("Items", nbttaglist); compound.setShort("workingTime", (short)workingTime); compound.setShort("workingTimeNeeded", (short)workingTimeNeeded); } public int getCookProgress() { return (workingTime * 16) / workingTimeNeeded; } @Override public void readFromNBT(NBTTagCompound compound) { super.readFromNBT(compound); NBTTagList nbttaglist = compound.getTagList("Items", 10); contents = new ItemStack[getSizeInventory()]; for(int i = 0; i < nbttaglist.tagCount(); i++) { NBTTagCompound nbttagcompound1 = nbttaglist.getCompoundTagAt(i); int j = nbttagcompound1.getByte("Slot"); if(j >= 0 && j < contents.length) contents[j] = ItemStack.loadItemStackFromNBT(nbttagcompound1); } workingTime = compound.getShort("workingTime"); workingTimeNeeded = compound.getShort("workingTimeNeeded"); } @Override public int getSizeInventory() { return contents.length; } @Override public ItemStack getStackInSlot(int slotIndex) { return contents[slotIndex]; } @Override public ItemStack decrStackSize(int slotIndex, int amount) { if(contents[slotIndex] != null) { ItemStack itemstack; if(contents[slotIndex].stackSize <= amount) { itemstack = contents[slotIndex]; contents[slotIndex] = null; markDirty(); return itemstack; } itemstack = contents[slotIndex].splitStack(amount); if(contents[slotIndex].stackSize == 0) contents[slotIndex] = null; markDirty(); return itemstack; } else { return null; } } @Override public ItemStack getStackInSlotOnClosing(int slotIndex) { if(contents[slotIndex] != null) { ItemStack itemstack = contents[slotIndex]; contents[slotIndex] = null; return itemstack; } else { return null; } } @Override public void setInventorySlotContents(int slotIndex, ItemStack stack) { contents[slotIndex] = stack; if(stack != null && stack.stackSize > getInventoryStackLimit()) stack.stackSize = getInventoryStackLimit(); markDirty(); } @Override public String getInventoryName() { return "tile.Machinetuto"; } @Override public boolean hasCustomInventoryName() { return false; } @Override public int getInventoryStackLimit() { return 64; } @Override public boolean isUseableByPlayer(EntityPlayer player) { return worldObj.getTileEntity(xCoord, yCoord, zCoord) == this ? player.getDistanceSq((double)xCoord + 0.5D, (double)yCoord + 0.5D, (double)zCoord + 0.5D) <= 64D : false; } @Override public void openInventory() { } @Override public void closeInventory() { } @Override public boolean isItemValidForSlot(int slot, ItemStack stack) { return slot != 5; } public boolean isBurning() { return workingTime > 0; } private boolean canSmelt() { if(contents[0] == null || contents[1] == null || contents[2] == null || contents[3] == null || contents[4] == null) return false; ItemStack itemstack = MachineRecipes.smelting().getSmeltingResult(new ItemStack[] { contents[0], contents[1], contents[2], contents[3], contents[4] }); if(itemstack == null) return false; if(contents[5] == null) return true; if(!contents[5].isItemEqual(itemstack)) { return false; } else { int result = contents[5].stackSize + itemstack.stackSize; return result <= getInventoryStackLimit() && result <= contents[5].getMaxStackSize(); } } public void updateEntity() { if(isBurning() && canSmelt()) workingTime++; if(canSmelt() && !isBurning()) workingTime = 1; if(canSmelt() && workingTime == workingTimeNeeded) { smeltItem(); workingTime = 0; } if(!canSmelt()) workingTime = 0; } public void smeltItem() { if(canSmelt()) { ItemStack itemstack = MachineRecipes.smelting().getSmeltingResult(new ItemStack[] { contents[0], contents[1], contents[2], contents[3], contents[4] }); if(contents[5] == null) contents[5] = itemstack.copy(); else if(contents[5].isItemEqual(itemstack)) contents[5].stackSize += itemstack.stackSize; contents[0].stackSize–; contents[1].stackSize–; contents[2].stackSize–; contents[3].stackSize–; contents[4].stackSize–; if(contents[0].stackSize <= 0) contents[0] = null; if(contents[1].stackSize <= 0) contents[1] = null; if(contents[2].stackSize <= 0) contents[2] = null; if(contents[3].stackSize <= 0) contents[3] = null; if(contents[4].stackSize <= 0) contents[4] = null; } } private ItemStack contents[]; private int workingTime; private int workingTimeNeeded; }Maintenant, ce que tu as à faire c’est changer les items en ItemStack dans le constructeur et indiquer le metadata de ton item.</itemstack[],></itemstack[],></itemstack[],>
-
encore un petit soucis ici"public boolean hitEntity(ItemStack stack, EntityLivingBase attackedLiving, EntityLivingBase attackerLiving) " ca me dit “Illegal modifier for parameter hitEntity; only final is permitted”
public boolean hitEntity(ItemStack stack, EntityLivingBase attackedLiving, EntityLivingBase attackerLiving) //<–-----juste avant ;D { if(!stack.hasTagCompound()) { stack.setTagCompound(new NBTTagCompound()); } IEntitySelector filter; filter = new IEntitySelector() { @Override public boolean isEntityApplicable(Entity entity) { if(entity instanceof EntityPlayer) // mon sélecteur prend tout les joueurs { return true; } return false; } }; filter = new IEntitySelector() { @Override public boolean isEntityApplicable(Entity entity) { if(entity instanceof EntityMob)// mon sélecteur prend tous les monstres { return true; } return false; } }; filter = new IEntitySelector() { @Override public boolean isEntityApplicable(Entity entity) { if(entity instanceof EntityAnimal) // mon sélecteur prend tous les animaux { return true; } return false; } }; } List entityTargetList = attackedLiving.worldObj.selectEntitiesWithinAABB(EntityLivingBase.class, attackedLiving.boundingBox.expand(8.0D, 2.0D, 8.0D), filter); for(Object entity : entityTargetList) { net.minecraft.entity.EntityLivingBase living = (EntityLivingBase)entity; living.attackEntityFrom(DamageSource.generic, 10.0F); } -
Indique la ligne dans le commentaires du code, car je vois pas où c’est (peut-être la fatigue qui arrive ^^).
-
Vérifies que tes accolades sont bien fermées comme il faut, il semblerait que le compileur trouve que ton code est dans une autre méthode, et donc n’accepte pas l’utilisation de ‘public’
-
Je viens de vérifier l’accolade est bien fermé
-
Non, une partie du code est en-dehors de la fonction. Formater le code permet de le voir tout de suite.
Franchement formatez votre code, sinon c’est illisible.public boolean hitEntity(ItemStack stack, EntityLivingBase attackedLiving, EntityLivingBase attackerLiving) // <–-----juste avant ;D { if(!stack.hasTagCompound()) { stack.setTagCompound(new NBTTagCompound()); } IEntitySelector filter; filter = new IEntitySelector() { @Override public boolean isEntityApplicable(Entity entity) { if(entity instanceof EntityPlayer) // mon sélecteur prend tout les joueurs { return true; } return false; } }; filter = new IEntitySelector() { @Override public boolean isEntityApplicable(Entity entity) { if(entity instanceof EntityMob)// mon sélecteur prend tous les monstres { return true; } return false; } }; filter = new IEntitySelector() { @Override public boolean isEntityApplicable(Entity entity) { if(entity instanceof EntityAnimal) // mon sélecteur prend tous les animaux { return true; } return false; } }; List entityTargetList = attackedLiving.worldObj.selectEntitiesWithinAABB(EntityLivingBase.class, attackedLiving.boundingBox.expand(8.0D, 2.0D, 8.0D), filter); for(Object entity : entityTargetList) { net.minecraft.entity.EntityLivingBase living = (EntityLivingBase)entity; living.attackEntityFrom(DamageSource.generic, 10.0F); } return true; }Par contre tu cherches à faire quoi exactement ? Car là tu mets un tab nbt qui ne sert à rien et tu as filtre que tu réinitialises 2 fois …
Ceci deviendrait au même :public boolean hitEntity(ItemStack stack, EntityLivingBase attackedLiving, EntityLivingBase attackerLiving) { IEntitySelector filter = new IEntitySelector() { @Override public boolean isEntityApplicable(Entity entity) { if(entity instanceof EntityAnimal) // mon sélecteur prend tous les animaux { return true; } return false; } }; List entityTargetList = attackedLiving.worldObj.selectEntitiesWithinAABB(EntityLivingBase.class, attackedLiving.boundingBox.expand(8.0D, 2.0D, 8.0D), filter); for(Object entity : entityTargetList) { net.minecraft.entity.EntityLivingBase living = (EntityLivingBase)entity; living.attackEntityFrom(DamageSource.generic, 10.0F); } return true; }mais en moins lourd à exécuter.
-
enfaîte j’ai pris la même fonction que toi bonus “effet sur epée”
-
petit up
(j’ai toujours la même erreur)
