30 nov. 2013, 19:17

#Sommaire(Sommaire)
Coming soon

Introduction

Les sources de dégâts sont les principaux indicateurs pour dire “De quoi est mort ce joueur ?”
Ils sont particulièrement pratiques pour avoir vos propres morts (comme “machin was stuck in a piston” ou “truc was destroyed by a Jetpack Explosion”)

#Dans la class principale :(Dans la class principale 🙂
On ajoute juste avant les public static Block :

public static DamageSource tutoSource;

(La position n’a pas vraiment d’importance, chacun s’organise comme il veut)

On ajoute après les items :

tutoSource = new TutoDamageSource("sacrifice");

tutoSource => Le nom de votre source
TutoDamageSource => Class du damage source, vous allez avoir une erreur dessus, c’est normal
“sacrifice” => Le nom de votre source

#La class de la source de dégâts(La class de la source de dégâts)
Vous avez normalement une erreur sur TutoDamageSource, passez le curseur dessus et choisissez de créer une nouvelle class.
Faites un extends DamageSource, importez DamageSource puis ajoutez le constructeur !

Nous avons donc :

import net.minecraft.util.DamageSource;

public class TutoDamageSource extends DamageSource {

protected SacrificeDamageSource(String par1Str) {
super(par1Str);
}

}

Il est possible de peronnaliser votre source en ajoutant les codes suivant :

this.setDamageBypassesArmor(); //A mettre si les armures n'ont pas d'influence sur les dégâts
this.setDamageAllowedInCreativeMode(); //A mettre si votre source de dégâts peut être appliquée en créatif
this.setDifficultyScaled(); //A mettre si les dégâts dépendent de la diffficulté
this.setFireDamage(); //Aucun effet
this.setMagicDamage(); //Idem

#Utilisation de la source(Utilisation de la source)

C’est tout simple!
Après un event comme onItemRightclicked, ajoutez :

par1EntityPlayer.attackEntityFrom(ClassPrincipale.tutoSource, 1.0F);

Le 1.0F correspond au nombre de cœurs enlevés

#Le fichier lang(Le fichier lang)
C’est bientôt fini!
Il ne reste plus qu’à ajouter cette ligne dans le fichier lang :

Coming soon