FallingEvent, gare aux chutes !



  • Sommaire

    Introduction

    Bonjour/Bonsoir et Bonne année !!

    Pour mon second tutoriel je vais parler un peu des events, la section "Les events" est un peu vide, et c'est en vous montrant un des multiples autre events qui existent, que je vais la remplir ! Libre à vous d'aller trifouiller pour trouver d'autres events !

    Pré-requis

    -Écouter de la musique (facultatif)
    -Avoir un bon gros verre de coca ou de bière (facultatif)(Attention l'abus d’alcool est dangereux pour la santé !)
    -Avoir un classe principale et les proxys, toussa toussa...

    Code

    Classe de regroupement :

    -Mais qu'est-ce qu'il raconte ?
    -Aller ! Il fallait que tu vienne tout gacher toi !
    -Non mai...
    -Tais-toi et laisse moi bosser, ok ?
    -Ok...

    Donc, pour vous expliquer le comment du comment,

    -Non, le comment du pou...
    -NON MAIS C'EST UNE BLAGUE !
    -Ah ok !

    La classe que j'appelle de regroupement sera la classe où nous mettrons tous nos events !

    Appelons la...

    package fr.tutomff.zeamateis;
    
    public class EventRegroupment
    {
    

    C'est sympa non ?

    -Non c'est nul, t'es nul comme gars, t'a pas d'idées !
    -...

    [Problèmes techniques en cours...]

    Re,

    Nous allons donc déclarer cette classe dans la classe principale grâce à un EVENT_BUS:

    -Non mais c'est faux y'a pas de b...
    -Ne continue même pas cette blague !
    -Rhooo ! Mais si on peut plus rigoler !
    -Tu n'est pas drôle !

    Mettez:

    MinecraftForge.EVENT_BUS.register(new EventRegroupment());
    

    Dans la fonction init ou comme vous voulez (un fonction d'initialisation dans tout les cas)

    Vous devriez donc avoir ceci:

    @EventHandler
        public void Init(FMLInitializationEvent event)
        {
            //proxy.[...]; Pour les Rendus
    
            MinecraftForge.EVENT_BUS.register(new LivingEventManager());
    
        }
    

    Pour cette partie nous avons terminé !
    Joignez-vous à la seconde partie ! Téléportation

    Notre event :

    Vous avez fait bon voyage ?

    -Non mais ton voyage il sert à rien !
    -Pourquoi ?! HEIN ?!
    -Ben, c'est juste en dessous...
    -Euhhhh...

    Donc !

    Nous allons maintenant créer notre fameux event de quand on tombe !

    -Tu parle bien français toi !
    -Oui et alors ?
    -Bah je sais pas mais... en parlant de classe ... tu ferais mieux d'y retourner !
    1 - 0, balle de match

    Pour reprendre...

    Dans la classe précédemment créée:

    package fr.tutomff.zeamateis;
    
    public class EventRegroupment
    {
    

    Ajoutons ceci:

        @ForgeSubscribe
        public void livingFallEvent(LivingFallEvent event)
        {
    
        }
    

    Pour le livingFallEvent vous choisissez le nom que vous voulez, mais après si vous ne voulez pas rester un minimum LOGIQUE C'EST VOTRE PROBLEME !

    Excusez-moi j'ai été me chercher un gâtea...

    -MAIS QU'EST-CE QUE TU AS FAIT ?
    -Bah j'ai juste dit qu'ils étaient pas logiques...
    -MAIS TU LE DIS PAS COMME CA ! Les pauvres !
    -Rhooo ! C'était une blague !
    -OUI MAIS PAS DRÔLE ! ENCORE UNE FOIS !
    -Pardon...

    Excusez-moi chers lecteurs ! Je ne m'absenterais plus !

    Pour le livingFallEvent vous choisissez le nom que vous voulez, mais le plus pratique c'est de prendre le même nom de l'event que vous utilisez, MAIS ! De lui mettre une minuscule en début de fonction !

    **public void %(#FF0000)[l]%(#32CD32)[ivingFallEvent](%(#32CD32)[LivingFallEvent] event)**
    

    Vous voyez la différence ?

    Continuons,

    Je vous donne le code pour une fracture (qui est un bon exemple quand on chute):

    Mais copiez pas bêtement le code ! Attention !

    Ah ! Tu aller copier le code n'est-ce pas ?
    AH ! AH ! Ne le copie pas ! C'est pas très éducatif sinon !
    Bon aller... Tu m'a l'air sympatique quand même, je te le donne:

        if (event.entityLiving instanceof EntityPlayer)
                {
                    if (event.entityLiving.worldObj.rand.nextInt(10) == 0)
                    {
                    if(event.entityLiving.fallDistance > 4)
                    {
                        event.entityLiving.addPotionEffect(new PotionEffect(Potion.weakness.getId(), 24000, 1));
                    }
                }
            }
    

    Je vais vous expliquer le code ligne par lig...

    **-T'es fier de toi ?! HEIN ?!
    -Tu me coupe dans mon tutoriel là !
    -Non mais tu viens de perdre les 3/4 de tes lecteurs !
    -Ah bon ?!
    -Bah oui ! Avec t'es spoiler tu nous casse le cube !
    -Bah si t'es pas content part aussi !
    -Mais c'est ce que je fait !
    **
    [Quelques secondes plus tard...]

    -En fait je peux pas partir je suis dans ta tête
    -...

    Allez vous pouvez faire une pause à ce stade ! Buvez votre coca ou votre bière !

    if (event.entityLiving instanceof EntityPlayer)
    

    • Tout simplement: si(notre event.entitéeVivante est égale au joueur)

    if (event.entityLiving.worldObj.rand.nextInt(10) == 0)
    

    • Là nous faisons un random grâce au monde

    if(event.entityLiving.fallDistance > 4)
    

    si(notre event.entitéeVivante.chuteDuneHauteur > à 4)
    Donc en jeu, de 5 cubes soustrayez 1 à chaque fois ! (exemple: pour une chute de minimum 8 cubes on met > 7)

    event.entityLiving.addPotionEffect(new PotionEffect(Potion.weakness.getId(), 24000, 1));
    

    •Grâce à notre event.entitéeVivante nous lui ajoutons un effet Weakness, pour une durée de 20 minutes, de puissance 2
    Pour la puissance soustrayez 1 à chaque fois (exemple: pour une puissance de 3 on met 2)

    PS: J'ai moi même créer un damage source du nom de "fracture" je ne l'ai pas mis dans ce tutoriel pour ne pas que vous soyez perdu à le chercher sans le trouver ! C'est pour ça que j'ai mis Weakness

    Nous avons donc bel est bien:

    package fr.tutomff.zeamateis;
    
    public class EventRegroupment
    {
        @ForgeSubscribe
        public void livingFallEvent(LivingFallEvent event)
        {
            if (event.entityLiving instanceof EntityPlayer)
            {
                if (event.entityLiving.worldObj.rand.nextInt(10) == 0)
                {
                    if(event.entityLiving.fallDistance > 4)
                    {
                        event.entityLiving.addPotionEffect(new PotionEffect(Potion.weakness.getId(), 24000, 1));
                    }
                }
            }
        }
    }
    

    Voilà voilà c'est tout pour ce tutoriel !
    Je suis désolé si le personnage dans ma tête vous a embêté !
    J'espère que vous aurez rigolé un minimum

    **-Ou pas !
    **
    Si c'est le cas faites me le savoir !

    **-Ou pas !
    **
    Sinon j'arrêterai de faire le skyzophrène !

    -Ou p... AH mais non ! continue s'il te plait ! J'arrêterai d'intervenir !
    -Ah ! ah ! Ou pas !

    Résultat

    Vous aurez un effet de potion weekness si vous tombez de 5 cubes !

    Encore merci de m'avoir lu !

    retourRetour vers le sommaire des tutoriels


  • Modérateurs

    Le tutoriel m'a l'air pas mal.
    (Les dialogues sont marrants mais n'en abuse pas ;))



  • ok je le saurais à l'avenir !


  • Administrateurs

    Excellent tutoriel, j'ai juste changé le bouton retour vers le sommaire sur l'ancien sommaire.
    Il est vraiment génial, les dialogues sont drôles, mais comme l'a dit xavpok, évite d'en abuser. Ça va permettre d'avoir encore quelques tutoriels 1.7, d'ailleurs j'ai parlé de cette event dans le tutoriel d'aujourd'hui.
    Ça me fait penser qu'il faudrait aussi que je fasse un tutoriel général sur le event.



  • je suis le seule a remarquer une erreur??

    il dit de mettre sa dans la fonction init:

    
    MinecraftForge.EVENT_BUS.register(new EventRegroupment());
    
    

    et il dit que que cela doit donner sa:

    
    @EventHandler
    public void Init(FMLInitializationEvent event)
    {
    //proxy.[…]; Pour les Rendus
    
    MinecraftForge.EVENT_BUS.register(new LivingEventManager());
    
    }
    
    

    il ya une erreur car EventRegroupment n'est pas pareil que LivingEventManager.

    –------------------------------------------------------------
    et ici il manque un crochet a la fin

    
    package fr.tutomff.zeamateis;
    
    public class EventRegroupment
    {
    
    @ForgeSubscribe
    public void livingFallEvent(LivingFallEvent event)
    {
    if (event.entityLiving instanceof EntityPlayer)
    {
    if (event.entityLiving.worldObj.rand.nextInt(10) == 0)
    {
    if(event.entityLiving.fallDistance > 4)
    {
    event.entityLiving.addPotionEffect(new PotionEffect(Potion.weakness.getId(), 24000, 1));
    }
    }
    }
    }
    
    

  • Administrateurs

    EventRegroupment est un exemple, tu peux mettre n'importe quel nom.



  • ok merci