1. Si vous venez d'arriver sur le forum et que vous êtes un peu perdus, cliquez ici !
    Rejeter la notice

Résolu Comment fait-il ?, et problème bizzare

Discussion dans 'Aide à la création de mod' créé par Nocturne123, 29 Juin 2015.

  1. Nocturne123

    Nocturne123 Mineur de Fer

    Inscrit:
    24 Déc 2012
    Messages:
    678
    Points:
    128
    Sexe:
    Homme
    Yop, en regardant des vidéos de tutorial, cette personne a fait un truc qui m’intéresse beaucoup et je voudrais savoir comment il fait :

    (à 0.53)

    Ensuite, quand je donne un effet de potion au joueur pendant 2secs et quand le temps tombe à 0, l'effet de potion reste ! Es un bug ou je suis nul ?
    Code (java):

    package fr.alexandre1156.SECRET.ItemRA;

    import net.minecraft.client.Minecraft;
    import net.minecraft.entity.Entity;
    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraft.item.Item;
    import net.minecraft.item.ItemStack;
    import net.minecraft.potion.Potion;
    import net.minecraft.potion.PotionEffect;
    import net.minecraft.util.ChatComponentText;
    import net.minecraft.util.IChatComponent;
    import net.minecraft.world.World;

    public class ItemRA extends Item {
     
        public void onUpdate(ItemStack itemstack, World world, Entity entity, int par4, boolean isCurrentItem){  
                   EntityPlayer playerIn = Minecraft.getMinecraft().thePlayer;
                   if(playerIn.inventory.hasItem(SECRETItem.SECRET)){
                      if(playerIn.getHealth() <= 4){
                          playerIn.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 50, 0));
                          playerIn.addPotionEffect(new PotionEffect(Potion.jump.id, 50, 1));}}
        }
    }
    Et voici un screenshot pour vous montrez :
    [​IMG]

    Merci !
     
  2. pifou92000

    pifou92000 Mineur de Diamants

    Inscrit:
    23 Juin 2011
    Messages:
    2 689
    Points:
    195
    Sexe:
    Homme
    Salut, pour ta première question, je ne sais pas, c'est sûrement un raccourci clavier d'Eclipse.
    Pour le problème des potions, je pense que c'est parce que tu ajoutes l'effet côté client et serveur. Il reste affiché côté client. Essaie donc d'appliquer l'effet seulement côté serveur : if(!world.isRemote).
     
    • J'aime J'aime x 1
    • J'approuve J'approuve x 1
    #2 pifou92000, 29 Juin 2015
    Dernière édition: 29 Juin 2015
  3. robin4002

    robin4002 Support Technique
    Staff

    Inscrit:
    17 Août 2012
    Messages:
    5 066
    Points:
    229
    Sexe:
    Homme
    ctrl + espace le raccourci.
    Pour l'effet, j'approuve ce que @pifou92000 a dit.
     
    • J'aime J'aime x 1
    • Informatif Informatif x 1
  4. Nocturne123

    Nocturne123 Mineur de Fer

    Inscrit:
    24 Déc 2012
    Messages:
    678
    Points:
    128
    Sexe:
    Homme
    Merci pour le raccourci, je pense qu'il va beaucoup m'aider !

    Pour ce qui est de if(!world.isRemote), ou faut-il que je le place ?
    Je l'ai mis avant le premier, entre et après les if mais aucune ne marche.

    Sinon, je profite pour que vous m'expliquez un truc : à quoi sert le ! devant world ? à exprimer l'opposé ?

    Et merci encore ^^
     
  5. robin4002

    robin4002 Support Technique
    Staff

    Inscrit:
    17 Août 2012
    Messages:
    5 066
    Points:
    229
    Sexe:
    Homme
    Fait comme ça :
    Code (cpp):
    package fr.alexandre1156.SECRET.ItemRA;

    import net.minecraft.client.Minecraft;
    import net.minecraft.entity.Entity;
    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraft.item.Item;
    import net.minecraft.item.ItemStack;
    import net.minecraft.potion.Potion;
    import net.minecraft.potion.PotionEffect;
    import net.minecraft.util.ChatComponentText;
    import net.minecraft.util.IChatComponent;
    import net.minecraft.world.World;

    public class ItemRA extends Item {
        public void onUpdate(ItemStack itemstack, World world, Entity entity, int par4, boolean isCurrentItem){  
                   if(entity instanceof EntityPlayer)
                   {
                      EntityPlayer playerIn = (EntityPlayer)entity;
                      if(playerIn.inventory.hasItem(SECRETItem.SECRET))
                      {
                          if(playerIn.getHealth() <= 4 && !world.isRemote){
                              playerIn.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 50, 0));
                              playerIn.addPotionEffect(new PotionEffect(Potion.jump.id, 50, 1));
                        }
                  }
        }
    }
    Et oui, world.isRemote = monde côté client.
    Donc !world.isRemote = monde côté serveur.
     
    • J'aime J'aime x 1
    • J'approuve J'approuve x 1
  6. Nocturne123

    Nocturne123 Mineur de Fer

    Inscrit:
    24 Déc 2012
    Messages:
    678
    Points:
    128
    Sexe:
    Homme
    Merciii :love:
    C'est vrai que j'ai pas pensé à utiliser le instanceof (faut pas dire que je l'utilise beaucoup ^^)
     

Partager cette page