Ailes,Monture,item qui permet de spawn une entity,MultiTool
-
@‘leo01418’:
Nn j’avais mis sa dans ma classe de l’armure
Le code pour toi c’est ça :
private long temp; @SubscribeEvent public void fly(LivingUpdateEvent e) { if(e.entity instanceof EntityPlayer) { EntityPlayer player = (EntityPlayer)e.entity; this.temp = !(player.inventory.armorInventory[1].getItem() == enderdeath.FeatherChestplate) ? 0 : this.temp == 0 ? Clock.systemDefaultZone().millis() : Clock.systemDefaultZone().millis() - temp >= 5000 ? -1 : this.temp; player.capabilities.allowFlying = this.temp > 0; if(!player.capabilities.allowFlying) player.capabilities.isFlying = false; } }Cependant tu dois le mettre dans une classe qui enregistre tes évènements, y’a pleins de tutos pour ça.
-
j’ai mis sa ```java
private long temp;@SubscribeEvent
public void fly(LivingUpdateEvent e) {
if(e.entity instanceof EntityPlayer) {
EntityPlayer player = (EntityPlayer)e.entity;
player.capabilities.allowFlying = player.inventory.hasItem(enderdeath.FeatherChestplate) && this.temp > 0;
this.temp = !player.inventory.hasItem(enderdeath.FeatherChestplate) ? 0 : this.temp == 0 ? Clock.systemDefaultZone().millis() : Clock.systemDefaultZone().millis() - temp >= 5000 ? -1 : this.temp;
if(!player.capabilities.allowFlying)
player.capabilities.isFlying = false;
}
}Sa marche mais j'arrive pas à revolé -
essaie de jeter l’item et de le reprendre et la tu pourras revoler, c’est pas ce que tu voulais ?
PS: Je vais pas te faire tout ton code à chaque fois, essaie de suivre un tuto java
-
Au faite je peux volé quand je met le plastron et que je l’enlevé je peux volé un certain temps,le codage sert à rechargé le temps de vol?
Ps:Excuse-Moi j’essaierais de me débrouillé tout seul
-
N’oublie pas le player.sendPlayerAbilities()
-
@‘Snowy_1803’:
N’oublie pas le player.sendPlayerAbilities()
chez moi ça marche sans.
[size=smallAu faite je peux volé quand je met le plastron et que je l’enlevé je peux volé un certain temps,le codage sert à rechargé le temps de vol?]
Si t’as copié mon dernier code normalement quand tu l’enlèves tu tombes, mais il faut que tu vérifies que l’ItemStack est pas null dans la première condition ternaire.
-
Au faite quand je met le plastron je peux volé une fois et ensuite je peux l’avoir pendant 10 minutes je peux pas revolée donc je dois enlevée le plastron le remettre et la je n’arrive plus à revolé et je dois enlevé le plastron pour revolé et j’ai mis sa dans ma classe d’évent
-
@‘leo01418’:
Au faite quand je met le plastron je peux volé une fois et ensuite je peux l’avoir pendant 10 minutes je peux pas revolée donc je dois enlevée le plastron le remettre et la je n’arrive plus à revolé et je dois enlevé le plastron pour revoler
Oui, c’est ce que le code fait. Si tu veux qu’après 5 autres secondes tu puisse revoler y’a pas grand chose à changer, je te laisse le deviner par toi-même je suis au taff la.
-
Ok Excuse x)
-
Le problème avec le code de @Dylem, c’est que la variable temp est commune à tous les joueurs. Essaie ton code en multi, tu verras que tous les joueurs partagent la même valeur. Essaie soit d’adapter ton code sans utiliser de variable, soit de te servir de world.getTotalWorldTime() (genre if (world.getTotalWorldTime % 5 * 20 == 0)) ou encore soit d’enregistrer ta variable temp dans les tags du joueur.
-
Oui j’ai testé et tout les joueur partage la même valeur
Mais je ne vois pas comme faire -
Comme Sa
private long temp; private World world; @SubscribeEvent public void fly(LivingUpdateEvent e) { if(e.entity instanceof EntityPlayer) { if(world.getTotalWorldTime() % 5 * 20 == 0); { EntityPlayer player = (EntityPlayer)e.entity; player.capabilities.allowFlying = player.inventory.hasItem(enderdeath.StickFly) && this.temp > 0; this.temp = !player.inventory.hasItem(enderdeath.StickFly) ? 0 : this.temp == 0 ? Clock.systemDefaultZone().millis() : Clock.systemDefaultZone().millis() - temp >= 5000 ? -1 : this.temp; if(!player.capabilities.allowFlying) player.capabilities.isFlying = false; } } } -
-> tag nbt.
Et non, pas comme ça, la world est null, tu vas te manger un npe. -
Il faut que je mette quoi à???
%(#666600)[[font=monospace].]%(#000000)[[font=monospace]getTotalWorldTime]%(#666600)[[font=monospace]()] -
Il faudrait surtout que t’apprennes le Java, car là franchement en + de ne respecter aucune convention, tu ne comprends rien du code. Écoute ce n’est pas à nous de te pondre le code tout bien, tout fait. C’est à toi de posséder une base et seulement après on pourra te venir en aide. La méthode getTotalWorldTime() est à utiliser comme ceci si tu souhaites savoir lorsque 5 secondes viennent d’être écoulées : if(player.worldObj.getTotalWorldTime() % 5 * 20 == 0)
-
J’ai à profondi mes peu connaissance en java grâce à ceci j’ai su faire le codage des ailes merci beaucoup

-
Bonjour je reviens sur ce sujet parce que mon problème de monture qui ne peux pas sauté et que je souhaite modifié le render n’est pas résolu je l’avais oublié

alors mon code na pas changé depuis longtempspackage ed.enderdeath.mod.entity; import net.minecraft.entity.EntityAgeable; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.passive.EntityHorse; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.util.StatCollector; import net.minecraft.world.World; public class EntityDragonDindeSauvage extends EntityHorse { public EntityDragonDindeSauvage(World model) { super(model); } public void applyEntityAttributes() { super.applyEntityAttributes(); this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(3D); this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.5D); } public boolean canBeSteered() { return true; } public boolean isHorseSaddled() { return true; } public boolean isHorseJumping() { return true; } public boolean isTame() { return true; } public boolean isChested() { return false; } public boolean interact(EntityPlayer par1EntityPlayer) { if (super.interact(par1EntityPlayer)) { par1EntityPlayer.mountEntity(this); return true; } for (int i = 0; i < 2; ++i) { this.worldObj.spawnParticle("largesmoke", this.posX + (this.rand.nextDouble() - 0.5D) * (double)this.width, this.posY + this.rand.nextDouble() * (double)this.height, this.posZ + (this.rand.nextDouble() - 0.5D) * (double)this.width, 0.0D, 0.0D, 0.0D); } return false; } public boolean jumpRearingCounter() { return true; } public boolean jumpPower() { return true; } public boolean horsejumping() { return true; } public boolean isEatingHaystack() { return true; } public boolean isRearing() { return true; } @Override public EntityAgeable createChild(EntityAgeable p_90011_1_) { return null; } }