Compatibilité serveur
-
mais si j’ai forge pour faire les mods, mais que j’ai également cauldron, il y a pas de soucis non ?
-
Cauldron existe seulement côté serveur mais y’a pas mal de problèmes de compatibilité et c’est pas très optimisé. C’est mieux d’utiliser soit l’un, soit l’autre.
-
Mais sans pouvoir mettre de plugins s’est compliqué quand même ^^ mais les mods c’est l’âme du serveur que e veux faire
Mais dans cauldron, il y a pas forge ??
-
Cauldron réunit bukkit et forge mais comme dit précédemment, il n’est pas compatible avec tout et présente des problèmes de performances et si tu veux le faire en 1.8, il te faudra Sponge car Cauldron n’est plus mis à jour en 1.8.
-
je reste en 1.7.10 et autre petite question, comment on rajoute des crafts ? car bon j’aimerais bien pouvoir les faire les armures

-
Les recettes, toujours valable en 1.7.
-
nouvelle question, ça concerne pas vraiment le titre mais bon, pour éviter de faire 50 sujets, est-ce normal que je ne trouve pas les escaliers dans la texture de minecraft ?
et la fonction suivant : public static void addSmeltingRecipe() {
GameRegistry.addSmelting(Blocks.obsidian, new ItemStack(obsiingot, 1), 20.0f);
}et sensé faire fondre un blocks d’obsi pour donner un obsiingot non ???
car j’aimerais faire des escaliers en obsidienne avec cela.
et également rien à voir mais comment gérer la distance de la flèche avec les différents temps de chargement ? car c’est genre trop loin ^^
-
Pour les escaliers Minecraft utilise la même texture que les blocs, c’est pour ça que tu ne trouve pas la texture.
Pour ta fonction gameregistry, mets là dans la classe principale ou vérifies que ta fonction addSmeltingRecipe est bien appelé dans la classe principale.Et pour la flèche, je ne peux pas regarder maintenant je suis sur mon portable.
-
Si tu parles de la flèche de chargement pour le four, tu ne peux pas la changer, certains avaient déjà proposé des commits pour changer çà mais çà n’a jamais été accepté.
EDIT : regarde peut être avec un tick event pour changer si c’est ton item à l’intérieur la vitesse.
-
non je parlais de la flèche d’un arc, il est vrai que j’étais pas clair ensuite j’ai réussi à résoudre le problème du four mais tu dis que c’est la même texture pour l’escalier que celui du bloc, mais comment on peut voir l’escalier alors si ça ressemble à un bloc ?
-
L’escalier utilise un model, comme la barrière et les fence gate auquel tu appliques la texture du block. J’ai pas compris ton histoire de flèche par contre.
-
bah sur les arcs, quand je charge a peine ma flèche, elle part a l’autre bout du monde
-
avec le code ce serait mieux
-
package fr.craftesys.items.common; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.enchantment.Enchantment; import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.projectile.EntityArrow; import net.minecraft.init.Items; import net.minecraft.item.EnumAction; import net.minecraft.item.ItemBow; import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; import net.minecraft.world.World; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.entity.player.ArrowLooseEvent; import net.minecraftforge.event.entity.player.ArrowNockEvent; public class BowItem extends ItemBow { private IIcon[] iconbuffer; private static String[] rubisbow = new String[] {"_pull_0", "_pull_1", "_pull_2"}; public BowItem() { super(); this.maxStackSize = 1; this.setMaxDamage(1000); } @Override public void registerIcons(IIconRegister iconregister) { iconbuffer = new IIcon[rubisbow.length]; itemIcon = iconregister.registerIcon(this.getIconString()); for(int i = 0; i < rubisbow.length; i++) { iconbuffer* = iconregister.registerIcon(this.getIconString() + rubisbow*); } } @Override public IIcon getIcon(ItemStack stack, int renderPass, EntityPlayer player, ItemStack usingItem, int useRemaining) { if(usingItem != null && usingItem.getItem().equals(ModItems.rubisbow)) { int k = usingItem.getMaxItemUseDuration() - useRemaining; if(k >= 18) return iconbuffer[2]; if(k > 13) return iconbuffer[1]; if(k > 0) return iconbuffer[0]; } return getIconIndex(stack); } @Override public void onPlayerStoppedUsing(ItemStack stack, World world, EntityPlayer player, int itemInUseCount) { int charge = this.getMaxItemUseDuration(stack) - itemInUseCount; ArrowLooseEvent event = new ArrowLooseEvent(player, stack, charge); MinecraftForge.EVENT_BUS.post(event); if(event.isCanceled()) { return; } charge = event.charge; boolean creativeOrInfinity = player.capabilities.isCreativeMode || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, stack) > 0; if(creativeOrInfinity || player.inventory.hasItem(Items.arrow)) { float power = 1000000000000000000F; if((double)power < 1.0D) { return; } if(power > 1.0F) { power = 1.0F; } EntityArrow arrow = new EntityArrow(world, player, power * 1.0F); if(power == 1.0F) { arrow.setIsCritical(true); } int var9 = EnchantmentHelper.getEnchantmentLevel(Enchantment.power.effectId, stack); if(var9 > 0) { arrow.setDamage(arrow.getDamage() + (double)var9 * 0.9D + 0.5D); } int var10 = EnchantmentHelper.getEnchantmentLevel(Enchantment.punch.effectId, stack); if(var10 > 0) { arrow.setKnockbackStrength(var10); } if(EnchantmentHelper.getEnchantmentLevel(Enchantment.flame.effectId, stack) > 0) { arrow.setFire(100); } stack.damageItem(1, player); world.playSoundAtEntity(player, "random.rubisbow", 1.0F, 1.0F / (itemRand.nextFloat() * 0.4F + 1.2F) + power * 0.5F); if(creativeOrInfinity) { arrow.canBePickedUp = 2; } else { player.inventory.consumeInventoryItem(Items.arrow); } if(!world.isRemote) { world.spawnEntityInWorld(arrow); } } } @Override public ItemStack onEaten(ItemStack stack, World world, EntityPlayer player) { return stack; } @Override public int getMaxItemUseDuration(ItemStack stack) { return 1000; } @Override public EnumAction getItemUseAction(ItemStack stack) { return EnumAction.bow; } @Override public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { if(player.capabilities.isCreativeMode || player.inventory.hasItem(Items.arrow)) { player.setItemInUse(stack, this.getMaxItemUseDuration(stack)); } return stack; } @Override public int getItemEnchantability() { return 1; } } -
Apprends à coder avant, je comprends pas l’utilité de faire çà :
float power = 1000000000000000000F; if((double)power < 1.0D) { return; } if(power > 1.0F) { power = 1.0F; } -
a donner une valeur au power pour faire la suite ?
le probleme en faite, c’est qu’il n’y a pas de différence de portées entre le fait de tendre l’arc ou pas, elle reste a la valeur a laquelle l’arc n’est pas tendu.
et l’histoire de model que prend le bloc pour l’escalier et une texture de bloc, j’ai pas trop compris
(j’ai jamais fait de java avant, c’est mon premier mod donc c’est normal que je demande beaucoup de truc ^^ ) -
Un peu normal qu’il n’y a pas de différence entre l’arc chargé ou pas puisque ta valeur power prend toujours la même valeur sans dépendre en compte de la valeur de la variable charge …
-
si je fais ça :
charge = event.charge; boolean creativeOrInfinity = player.capabilities.isCreativeMode || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, stack) > 0; if(creativeOrInfinity || player.inventory.hasItem(Items.arrow)) { float power = 1F; if((double)charge < 1.0F) { power = 1.5F; } if(charge > 1.0F) { power = 1.7F; }je devrais avoir une différence non ?
-
Tu n’appelles jamais la méthode du joueur pour savoir à quel point l’arc est chargé, regarde le code de minecraft.
-
problème réglé ::)