Problème onUpdate avec mon arc.
-
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. -
@‘floriangabet’:
Pour envoyez les infos de la flèche je peux utilisé quoi ?
String , int … ?Pour invoquer la flèche, tu as plusieurs variable récupérer : le World, l’EntityPlayer, la puissance du tir, la position de l’invocation de la flèche et la direction dans laquelle la flèche vas ce diriger.
Pour le joueurs, tu peut l’avoir a partir du MessageContext le monde, les coordonnés d’invocation et la puissance de la flèche, tu peux les avoir à partir du joueur, donc la seul info que tu vas devoir envoyer est la direction de la flèche que tu peux mettre dans deux float. -
@‘robin4002’:
pour la force, un float.
Et c’est la seule chose que tu as besoin d’envoyer via le paquet.D’accord,
J’ai former déjà la base de mon packet:Est-ce que il manque des choses ?
Et dans mon Handler je dois juste faire spawn ma flèche et c’est bon ?
public class PacketFireArrow implements IMessage { private float f; public PacketFireArrow(){ } public PacketFireArrow(float f) { this.f = f; } @Override public void fromBytes(ByteBuf buf) { f = buf.readFloat(); } @Override public void toBytes(ByteBuf buf) { buf.writeFloat(f); } 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,> -
2.0 tu remplaces par message.f
-
@‘robin4002’:
2.0 tu remplaces par message.f
C’est bon.
Du coup dans ma classe FlameBow j’ai fais sa:
Marche pas.
if (world.isRemote && ClientProxy.keyBindSortG1.isPressed()) { LegacyMod.network.sendToServer(new PacketFireArrow()); System.out.println("flèches feu"); } -
flèches de feu s’affiche dans la console ?
-
@‘robin4002’:
flèches de feu s’affiche dans la console ?
Nan meme pas.
edit:
J’ai rien dis une érreur de touche finalement x) j’essaye je vous dis! -
Testes si à un moment world.isRemote et si ClientProxy.keyBindSortG1.isPressed() valent true séparément et regard celui qui ne marche pas (je crois qu’il faudrait utiliser isKeyDown()). Et aussi, avec que tu fais là, le “f” dans la packet vaudra toujours 0.
-
@‘AymericRed’:
Testes si à un moment world.isRemote et si ClientProxy.keyBindSortG1.isPressed() valent true séparément et regard celui qui ne marche pas (je crois qu’il faudrait utiliser isKeyDown()). Et aussi, avec que tu fais là, le “f” dans la packet vaudra toujours 0.
Finalement c’est bon aymeric merci quand même x) par contre la le soucis c’est que la flèche tombe par terre comme si elle avait punch 0 (je sais si vous avez compris) x) faut que je regarde au niveau de quelle fonction?
En gros: Je tire elle spawn bien mais elle tombe par terre directement. -
Regarde que tu appelles le bon constructeur, si oui, regarde dans le constructeur
-
@‘AymericRed’:
Et aussi, avec que tu fais là, le “f” dans la packet vaudra toujours 0.
Il faut que tu utilises l’autre constructeur du packet afin de spécifier “f”.
-
Nickel merci les gars!