Les sources de dégâts
-
#Sommaire(Sommaire)
Coming soonIntroduction
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
-
this.setFireDamage(); //Aucun effet this.setMagicDamage(); //Idem
S’ils sont là, ils servent à quelque chose, si tu fais un peu de recherche tu tombe sur ça:
Pour le .setFireDamage():
-réduction des dégâts si l’entityLiving est équippé d’une armure avec fire protection.
-explosion du minecart TNT s’il est attaquer avec ce DamageSource.
-annulation des dégâts si l’entitée est sous l’effet de fire resistancePour le .setMagicDamage():
-réduction des dégâts pour la sorcière. -
Merci pour l’info Kevin, je croyais que ces deux là étaient buggés
-
pour la traduction, j’utilise
LanguageRegistry.instance().addStringLocalization("death.attack.nomDuDamage", "en_US", "%1$s was … blabla");
“%1$s” ? correspond à l’affichage du nom du pseudo dans le chat (comme dans un fichier.lang)
Donc je dis ça juste pour évité de modifier les fichiers lang ^^
Après je sais pas si ça marche en 1.6, faudrait tester !
Voilà voilà -
LanguageRegistry est à éviter car il est supprimé en 1.7 et plus utilisé depuis la 1.5
-
Ah ? Donc autant pour moi ! Merci de l’info c’est domage
-
De plus, un fichier .lang est plus pratique si une personne compte faire la traduction d’un mod :3
-
@‘ZeAmateis’:
Donc je dis ça juste pour évité de modifier les fichiers lang ^^
Depuis quand on modifie les fichiers lang ? Normalement si tu as bien suivie les tutoriels tu as ton propre fichier lang dans assets/modid/lang/
-
@‘Gugu42’:
De plus, un fichier .lang est plus pratique si une personne compte faire la traduction d’un mod :3
Effectivement !
@‘robin4002’:
@‘ZeAmateis’:
Donc je dis ça juste pour évité de modifier les fichiers lang ^^
Depuis quand on modifie les fichiers lang ? Normalement si tu as bien suivie les tutoriels tu as ton propre fichier lang dans assets/modid/lang/
Oui, mais pour le modding 1.5, personnellement, j’utilise cette fonction, mais ce n’est qu’une idée personnelle, il est vrai que pour que d’autres personnes fassent les traductions le fichier.lang est requis
Donc autant pour moi !
-
En effet, en 1.5 il faut utiliser le LanguageRegistry car les fichiers de lang custom ne sont pas détectés.
-
Bonjours ce tuto peut-il être utilisé pour mettre des effects sur les items ?
du genre : j’attaque avec mon épé divine et automatiquement ça mes l’ennemis en feu sans avoir l’enchantement fireaspect ? -
C’est possible, mais je crois qu’il faut appliqué l’enchantement sur l’épée (à tester, si besoin).
-
Je finis le topic demain, j’étais absent longtemps
-
Abandonné ?
-
Si le tutoriel ne se fini pas je le reprendrais pour montrer un bon exemple de la fracture, de mon dernier tutoriel qui est à savoir sur le FallingEvent !
Si vous êtes d’accord ?
EDIT: J’assignerai une fonctionnalité spéciale pour les damages sources à coup de:
if (event.entityLiving.isPotionActive(MalusEffect.fracture))
et
SPOILER
event.entityLiving.motionX *= 0.4D; event.entityLiving.motionZ *= 0.4D;
Y’aura une petite partie sur les potion du coup