Problème onUpdate avec mon arc.
-
Non, sinon envoies un zip de ton dossier src.
-
Tien le src
-
@‘floriangabet’:
Tien le src
extends ta class a ItemBow sinon tu auras des problèmes niveaux enchantement

-
@‘Yeyvo’:
@‘floriangabet’:
Tien le src
extends ta class a ItemBow sinon tu auras des problèmes niveaux enchantement

D’acc

merci de l’info! -
Je viens de formater le code et j’ai tout de suite vu le problème :
@Override// Prob ici public IIcon getIcon(ItemStack stack, int renderPass, EntityPlayer player, ItemStack usingItem, int useRemaining) { if(usingItem != null && usingItem.getItem() == LegacyMod.FlameBow) ; { int k = usingItem.getMaxItemUseDuration() - useRemaining; if(k >= 18) return iconArray[2]; if(k > 13) return iconArray[1]; if(k > 0) return iconArray[0]; } return getIconIndex(stack); }Pourquoi il y a un ; après la condition ? C’est lui qui cause problème.
-
@‘robin4002’:
Je viens de formater le code et j’ai tout de suite vu le problème :
@Override// Prob ici public IIcon getIcon(ItemStack stack, int renderPass, EntityPlayer player, ItemStack usingItem, int useRemaining) { if(usingItem != null && usingItem.getItem() == LegacyMod.FlameBow) ; { int k = usingItem.getMaxItemUseDuration() - useRemaining; if(k >= 18) return iconArray[2]; if(k > 13) return iconArray[1]; if(k > 0) return iconArray[0]; } return getIconIndex(stack); }Pourquoi il y a un ; après la condition ? C’est lui qui cause problème.
Whatttt ??? x) j’avais pas vus j’ai dus le mettre sans faire exprès merci

-
Résolu ?
-
Oui, Juste dernière petit question:
Je fais ça:if (ClientProxy.keyBindSortG1.isPressed() && !world.isRemote) { entityarrow.setFire(1 * 10); world.spawnEntityInWorld(entityarrow); System.out.println("flèches feu"); }else if(!world.isRemote){ world.spawnEntityInWorld(entityarrow); System.out.println("flèches normale"); }En gros quand je joueur presse une touche et que il tire avec l’arc la flemme est enflammé et sinon c’est une flèches normale.
Le problème est que je dois appuyer deux fois sur la touche pour la flèches soit enflammer normal? -
“!world.isRemote” c’est ça le problème, si tu aurais essayé sur serveur, ça aurait crash, il faut mettre le “world.isRemote” avant le test de la touche car on ne peut pas presser de touche sur serveur (et enlève bien le ! devant). Maintenant, le problème c’est que les flammes n’apparraîtront que côté client.
-
@‘AymericRed’:
“!world.isRemote” c’est ça le problème, si tu aurais essayé sur serveur, ça aurait crash, il faut mettre le “world.isRemote” avant le test de la touche car on ne peut pas presser de touche sur serveur (et enlève bien le ! devant). Maintenant, le problème c’est que les flammes n’apparraîtront que côté client.
J’ai fais sa quand j’appuie sur la touche dans la console y’a pas flèche feu et la flèche n’est pas en feu
if (world.isRemote && ClientProxy.keyBindSortG1.isPressed()) { entityarrow.setFire(1 * 10); world.spawnEntityInWorld(entityarrow); System.out.println("flèches feu"); }Quand tu dis côté client c’est que le mec qui lance la flèche qui la voit en feu c’est ça?
Mais après quand la flèche touche l’entity est-ce que elle prend feu et tout le monde le vois ? -
Oui, seul le client la voit en feu et lesautres ne pourront pas le voir. Et si le serveur envoie une update, il est possible (je ne sais pas du tout) qu’elle perde les flammes. Je pense qu’il faudrait un packet.
-
En effet il faut un paquet, les touches n’existent que côté client et la flèche doit être lancé côté serveur.
-
Ok merci de l’info je vais essayer de former le packet vous avez un peu plus d’info concernant le packet?
-
@‘floriangabet’:
Ok merci de l’info je vais essayer de former le packet vous avez un peu plus d’info concernant le packet?
C’est à dire ? C’est à toi de le faire
-
Le packet devra contenir les valeurs que tu passes au constructeur de la flèche, et lorsque que tu recevras ce packet, tu devras faire spawn la flèche à partir de ces infos.
-
@‘AymericRed’:
contenir les valeurs que tu passes au constructeur de la flèche
C’est à dire ?
-
Tu devras envoyer les informations de la flèche (vitesse, puissance, direction…) via le packet et instancier puis spawn la flèche à la réception du packet, côté serveur.
-
@‘AymericRed’:
Tu devras envoyer les informations de la flèche (vitesse, puissance, direction…) via le packet et instancier puis spawn la flèche à la réception du packet, côté serveur.
J’ai fais ça.
Je vois pas du tout comment faire pour envoyer les infos .public class PacketFireArrow implements IMessage { //Pour envoyer les infos de la flèche j'utilise des int ? public PacketFireArrow(){ } public PacketFireArrow(EntityArrow arrow) { } @Override public void fromBytes(ByteBuf buf) { } @Override public void toBytes(ByteBuf buf) { } public static class Handler implements IMessageHandler <packetfirearrow, imessage="">{ @Override public IMessage onMessage(PacketFireArrow message, MessageContext ctx) { EntityArrow entityarrow = new EntityArrow(ctx.getServerHandler().playerEntity.worldObj, ctx.getServerHandler().playerEntity, 2.0F); ctx.getServerHandler().playerEntity.worldObj.spawnEntityInWorld(entityarrow); return null; } } ```</packetfirearrow,> -
Pour envoyez les infos de la flèche je peux utilisé quoi ?
String , int … ? -
pour la force, un float.
Et c’est la seule chose que tu as besoin d’envoyer via le paquet.
