Mettre des effets sur des armes et mettre des armes plus grandes



  • Bonjour, je souhaite mettre un effet sur une arme, je m'explique :
    Pour faire plus réaliste je souhaite qu'une personne utilisant une massue (exemple) objet lourd par excellence, soit doté d'une faiblesse de frappe soit l'effet fatigue (ID=4) mais juste quand celui ci tient la massue en main. Je voulais tout d'abord savoir si c'était possible et savoir comment le faire, j'ai un petit doute sur le fait qu'il fasse utiliser les events de forge ? si oui le quel ?
    Autre question, je souhaite faire des armes plus grande (qui dépasse les 16X16 du joueur habituel) du genre une lance ou une grosse hache (ce qui revient a la question une ^^) je sais qu'il y a déja eu un sujet de ce type mais pour la 1.6 je souhaite donc le faire en 1.7.
    Merci de votre futur aide,
    cordialement
    azatom


  • Administrateurs

    Pour checker si le joueur a une masse en main :

    
    Itemstack masse = event.entityLiving.getEquipementInSlot(0);
    
    if(masse != null && masse.getItem() == /*TaClasse.TonItem*/)
    {
    //Ton code a appliquer au joueur
    }
    
    

    Pour l'event, regarde dans le package net.minecraftforge.event.entity.living


  • Administrateurs

    Plus simple, dans la classe de l'item :

    public void onUpdate(ItemStack stack, World world, Entity entity, int slot, boolean isCurrentItem)
    {
    if(isCurrentItem)
    {
    entity.motionX *= 0.5D;
    entity.motionZ *= 0.5D;
    }
    }
    

    Pour la deuxième question, à mon avis ça n'a pas trop changé avec la 1.7



  • Oui mais je n'arrive pas a retrouver le sujet ^^


  • Administrateurs



  • Ce tutoriel permet t'il de gérer la porté de l'item ?
    EDIT : la class render est a faire une seul fois pour tout les models ou elle dois être refaite a chaque model ?


  • Administrateurs

    Non, je ne crois pas.
    Qu'est-ce que tu entends pas portée?



  • J'entend le fait que le joueurs puisse frapper de plus loin un monstre ou un joueur
    a et question pour ma masse :
    Pour la méthode de robin : Je ne veux pas que mon joueur aille moins vite en marchand je veux qu'il frappe moins vite, cette effet la :
    Fatigue
    Les bras se balancent plus lentement
    Et pour ta méthode superloup :
    je dois enregistrer ton code dans ma classe principal dans la section event, ou dans la class de l'item ou encore dans la classe des event du tutoriel sur les event de robin ?


  • Administrateurs

    Comme ça alors :

    public void onUpdate(ItemStack stack, World world, Entity entity, int slot, boolean isCurrentItem)
    {
    if(isCurrentItem && entity instanceof EntityPlayer)
    {
    EntityPlayer player = (EntityPlayer)entity;
    player.addPotionEffect(new PotionEffect(Potion.nom de la potion, temps en tick, amplificateur);
    }
    }
    

    ou un truc semblable.



  • Merci ça marche 🙂 !