Potions, Armures pré-enchanté etc..



  • Salut tout le monde,

    I)__________________________________
    Dans le cadre d'un petit projet, comme beaucoup de personnes ici d'ailleurs, je cherche à ajouter des potions,
    plus précisément, je cherche à ajouter des "crafts" dans l'alembic:

    • Potion de Wither
    • Potion de Nausée
      (Je sais que ces effets existent déjà, c'est pour cela que je souhaiterai les utiliser)
      De plus, serait-il possible de créer une potion Instant Damage III?

    II)__________________________________
    Je souhaiterai également ajouter un set d'armure qui soit pré-enchanté, j'avais vu un sujet pour les items mais pour les armures je trouve ça un peu plus dur, j'ai procédé ainsi, est ce la bonne solution ? y aurait il plus simple?

    public static Item RhuniteBoots;
    public static Item RhuniteLeggings;
    public static Item RhuniteChestPlate;
    public static Item RhuniteHelmet;
    public static ItemStack RB2;
    public static ItemStack RH2;
    public static ItemStack RC2;
    public static ItemStack RL2;
    
    RhuniteBoots = new SpecialArmor(4770, Special, 0, 3).setUnlocalizedName("RhuniteBoots").setTextureName("Mineald:RhuniteBoots");
    RhuniteLeggings = new SpecialArmor(4771, Special, 0, 2).setUnlocalizedName("RhuniteLeggings").setTextureName("Mineald:RhuniteLeggins");
    RhuniteChestPlate = new SpecialArmor(4772, Special, 0, 1).setUnlocalizedName("RhuniteChestPlate").setTextureName("Mineald:RhuniteChestPlate");
    RhuniteHelmet = new SpecialArmor(4773, Special, 0, 0).setUnlocalizedName("RhuniteHelmet").setTextureName("Mineald:RhuniteHelmet");
    
    RB2 = new ItemStack(RhuniteBoots);
    RB2.addEnchantment(Enchantment.featherFalling, 10);
    RC2 = new ItemStack(RhuniteChestPlate);
    RC2.addEnchantment(Enchantment.fireProtection, 10);
    RH2 = new ItemStack(RhuniteHelmet);
    RH2.addEnchantment(Enchantment.respiration, 10);
    RL2 = new ItemStack(RhuniteLeggings);
    RL2.addEnchantment(Enchantment.aquaAffinity, 10);
    
    GameRegistry.addRecipe(RH2, "XXX", "X X", 'X', new ItemStack(this.RhuniteIngot));
    GameRegistry.addRecipe(RL2, "XXX", "X X", "X X", 'X', new ItemStack(this.RhuniteIngot));
    GameRegistry.addRecipe(RB2, "X X", "X X", 'X', new ItemStack(this.RhuniteIngot));
    GameRegistry.addRecipe(RC2, "X X", "XXX", "XXX", 'X', new ItemStack(this.RhuniteIngot));
    

    Merci de votre aide 🙂


  • Administrateurs

    I) Je vais voir ça se soir ou demain, j'ai encore jamais rien fait dans ce domaine.

    II) Tu peux également passer par la fonction onArmorTickUpdate et ajouter l'enchantement dans cette fonction.
    Exemple :
    https://github.com/FFMT/nanotech_mod/blob/master/common/fr/mcnanotech/kevin_68/nanotech_mod/ultimateGraviSuite/items/UltimateGraviChestPlate.java#L82-L96



  • Merci pour l'armure, je vais essayer, en plus cela me permet au vu de ton exemple d'ajouter les effets de potion, ce qui convient parfaitement à mon idée. Merci beaucoup, j'essaie et j'édite si j'ai un soucis 🙂

    Quant à la création de potion merci du temps que tu passeras dessus, je n'ai vraiment aucune idée de comment ça peut se faire ^^'



  • Pour les potions, c'est faisable, j'avais même déjà vu une potion "mort dans X temps".

    Si je retrouve le code, je te tiens au courant.



  • Merci beaucoup 🙂

    Après test, j'ai pus modifier mon armure, afin d'avoir les effets de potions, merci 🙂
    j'ai cependant une question, à la fin de la methode tu ajoutes une ligne

    
    this.getArmorTexture(stack, player, 1, 1);
    
    

    A quoi sert elle?


  • Administrateurs

    Elle permet d'actualisé la texture de l'armure à chaque tick, car la texture de l'armure de ce mod peut changer (invisible/visible).
    Donc c'est inutile dans ton cas, seul la parti en jaune va te servir.



  • D'accord, j'ai donc mes 4 pièces d'armures enchanté + effet de potion, merci 🙂
    Si vous trouvez pour les potions, j'en serai ravi 🙂 je vais chercher un peu de mon côté cette nuit.



  • Regarde le code des potions de base, car vu que ça reste dans les effets déjà existant, l'ItemPotion devrait suffire.



  • Je me permets de supprimer mon ancien message et de up car j'ai plusieurs questions à la suite de plusieurs créations dans mon petit projet:

    1. A quoi servent concrétement les 3 INIT dans la classe principal? que vaut il mieux mettre dans l'un ou dans l'autre? Comment présenter au mieux la classe principale?
    2. Après avoir créer un arc et des flèches en copiant exactement le code de l'arc normal, j'ai parfois mes entitées qui restent bloquées dans l'air, quelqu'un sait-il d'où cela pourrait venir?
    3. Je suis toujours à la recherche d'un moyen pour créer les recettes de potions, j'ai trouvé un tutoriel anglais à propos de la création des potions et de leurs effets.
    4. Est il possible de rendre les flèches des squelettes ramassables? j'ai essayé EntityArrow.canBePickUp = 1 mais elle n'est pas en static, je ne peux donc rien faire… autre solution?

    Merci de votre aide,
    un débutant dans le désespoir,
    Grég.


  • Administrateurs

    1. Les 3 INIT permettent de savoir où mettre tel ou tel code (exemple: tu déclares tes blocs et items dans preInit, tes entitées dans init, et la compatibilité entre les mods dans postInit), Si tu souhaites voir un exemple de class principale, un peu complexe, voici la class principale de mon mod ici.
    2. et 4. J'en ai pas la moindre idée.



  • @Superloup10
    1. Merci, cependant concrètement, je mets tout ou je veux? cela me sera réellement utile par exemple si je dois instaurer des priorités? si tel ou tel truc doit être mis avant un autre pour éviter tout plantage? Si non, je peux te montrer mon code? J'ai vraiment l'impression que ma class principale est inutilement lourde



  • Il y a des priorité oui, mais je ne les ai plus en tête.

    Mais souvent, certaines choses qui peuvent créer des conflits sont mises en pré-init 😉



  • Bah en fait j'ai tout mis dans le Pre-init ^^''


  • Administrateurs

    Pour les flèches de squelette, tu peux utiliser la réflexion ou les events de forge.



  • Edit: les flèches, c'est bon, les potions, ça vient, je sais quoi faire, faut juste que je le fasse.
    Sujet est donc résolu 🙂

    Pour ceux qui pourrait vouloir savoir, jglrxavpok m'a aidé, pour les flèches j'ai utilisé un event:

    
    @ForgeSubscribe
    public void onArrowLaunched(EntityJoinWorldEvent event)
    {
    Entity e = event.entity;
    if(e instanceof EntityArrow)
    {
    EntityArrow arrow = (EntityArrow)e;
    if(arrow.shootingEntity instanceof EntitySkeleton)
    {
    arrow.canBePickedUp = 1;
    }
    }
    }
    
    

    Et pour les potions… on a des docs chez les anglais, on fouille on fouille



  • Super !

    Quand tu as trouvé et fait les potions, je t'invite a poster ta solution, et si tu en a l'envie, de faire un tutoriel !
    ( Les tutoriels par les membres c'est bien, ça change de ceux par l'équipe )



  • Oui j'ai trouvé un truc qui me semble très complet, je vais le traduire, le comprendre et j'en ferai surement un tutoriel, mais mon java est quelques peu insuffisant à mon gout, pour expliquer le code.


Log in to reply