13 mars 2014, 17:48

Sommaire

Introduction

Yellow tout le monde !
Second tutoriel pour la section Event.
Quel event allons nous voir ? Le LivingDeathEvent, quand une entitée meurt !

#pré-requis(Pré-requis)

Avoir vu mon précédent tutoriel sur le FallingEvent, car il vous faudra avoir la classe EventRegroupment (ou pas si vous savez où placer les events !)

Code

EventRegroupment.java


package fr.tutomff.zeamateis;

public class LivingEventManager
{

}

Je ne vais pas passer par quatre chemin je vous donne et explique les lignes de code !

    @ForgeSubscribe
    public void onLivingDeath(LivingDeathEvent event)
    {

    }

Cette fonction appelle l’event LivingDeathEvent !

        Entity source = event.source.getSourceOfDamage();

        if (source != null)
        {
            if (source instanceof EntityZombie)
            {

            }
        }

Ce bout de code quant à lui, va faire en sorte que: Si la source de dégât n’est pas nulle et que la source de dégât correspond à un Zombie alors…

-Alors quoi ?
-Commence pas…

Donc si je me fait tuer par un zombie…

Ca peut très bien être le joueur ! Dans ce cas là on instancie **EntityPlayer **!

-Hummm ? Qu’est-ce que je peux mettre comme exemple concret ?
-Bah je sais pas moi, t’a qu’a faire en sorte que si le joueur meurt par un zombie, bah il fasse spawn un zombie !
-Hey ! Pas bête ! Tu vois quand tu veux !
-Je sais… Je sais…
-Non mais te la pète pas trop non plus !

Le code qu’il faut rajouter pour cet exemple est:

                ```java
EntityZombie spawningZombie = new EntityZombie(event.entityLiving.worldObj);
                    spawningZombie.setLocationAndAngles(event.entityLiving.posX, event.entityLiving.posY, event.entityLiving.posZ, event.entityLiving.rotationYaw, event.entityLiving.rotationPitch);
                    event.entityLiving.worldObj.spawnEntityInWorld(spawningZombie);

Je vais juste vous expliquer une seule ligne, la plus importante !

```java
spawningZombie.setLocationAndAngles(event.entityLiving.posX, event.entityLiving.posY, event.entityLiving.posZ, event.entityLiving.rotationYaw, event.entityLiving.rotationPitch);

Cette ligne sert à faire en sorte que notre zombie qui apparaîtra lors de notre mort spawn exactement sur le bloc où vous êtes mort !

Voilà voilà ! Merci de m’avoir lu encore une fois !!!

Résultat

Je n’ai pas de screen sous le bras, mais je vous laisse découvrir le résultat par vous même !( Il y aura un zombie qui spawnera là où vous êtes mort !

Je vous donne le code complet !
Attention ! Pas de triche hein ?

:::

    @ForgeSubscribe
    public void onLivingDeath(LivingDeathEvent event)
    {
        Entity source = event.source.getSourceOfDamage();
        if (source != null)
        {
            if (source instanceof EntityZombie)
            {
                if(event.entityLiving.worldObj.isAirBlock((int)(event.entityLiving.posX - 1), (int)event.entityLiving.posY, (int)event.entityLiving.posZ))
                {
                    EntityZombie spawningZombie = new EntityZombie(event.entityLiving.worldObj);
                    spawningZombie.setLocationAndAngles(event.entityLiving.posX, event.entityLiving.posY, event.entityLiving.posZ, event.entityLiving.rotationYaw, event.entityLiving.rotationPitch);
                    event.entityLiving.worldObj.spawnEntityInWorld(spawningZombie);

                }
            }
        }
    }

:::

Crédits

Mod Nanotech de Kevin, je crois ?
Edit: Pour la fonction de l’azote liquide, me semble-t-il, qui pose deux blocs de glace si on tombe dedans !

Retour vers le sommaire des tutoriels