[1.11.x] Problème armure effets
Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
#11
J'utilise cela snapshot_20161111
Répondre
#12
Met ceux-la 20170612
Répondre
#13
J'ai mis les bons mappings et je n'ai plus d'erreurs mais je n'arrive toujours pas a avoir des effets quand l'armure est entierement équipée maintenant je n'ai absolument aucun effet
j'ai essayer le code de AymerciRed
 @Override
public void onArmorTick(World world, EntityPlayer player, ItemStack itemStack){
if(itemStack.getItem().equals(SimpleoresItems.AMNETHYSTE_HELMET) && !player.inventory.armorInventory.get(1).isEmpty() && !player.inventory.armorInventory.get(2).isEmpty() && !player.inventory.armorInventory.get(3).isEmpty()) // Si tout ces slots d'armure sont remplies
{
if(player.inventory.armorInventory.get(1).getItem().equals(SimpleoresItems.AMNETHYSTE_CHESTPLATE) && player.inventory.armorInventory.get(2).getItem().equals(SimpleoresItems.AMNETHYSTE_LEGGINGS) && player.inventory.armorInventory.get(3).getItem().equals(SimpleoresItems.AMNETHYSTE_BOOTS)) // Si tout ces slots comprennent bien ta bonne armure d'obsidienne
{
player.addPotionEffect(new PotionEffect(MobEffects.SPEED, 100, 2));
}}
ainsi qu'une variante que j'ai essayer de bidouiller pour que ça fonctionne sans succès
@Override
public void onArmorTick(World world, EntityPlayer player, ItemStack itemStack){
if(player.inventory.armorInventory.get(0).getItem().equals(SimpleoresItems.AMNETHYSTE_HELMET) && !player.inventory.armorInventory.get(1).isEmpty() && !player.inventory.armorInventory.get(2).isEmpty() && !player.inventory.armorInventory.get(3).isEmpty()) // Si tout ces slots d'armure sont remplies
{
if(player.inventory.armorInventory.get(1).getItem().equals(SimpleoresItems.AMNETHYSTE_CHESTPLATE) && player.inventory.armorInventory.get(2).getItem().equals(SimpleoresItems.AMNETHYSTE_LEGGINGS) && player.inventory.armorInventory.get(3).getItem().equals(SimpleoresItems.AMNETHYSTE_BOOTS)) // Si tout ces slots comprennent bien ta bonne armure d'obsidienne
{
player.addPotionEffect(new PotionEffect(MobEffects.SPEED, 100, 2));
}}


}
Répondre
#14
Je te conseilles de faire du debug (soit avec des System.out.println() soit avec eclipse) pour voir où est-ce que ça bloque.
Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.
N'hésitez pas à m'envoyer des idées de tuto, je compte en faire 1 un de ces jours.

Mes tutos : Table de craft, plugin NEI, plugin JEI
Je suis un membre apprécié et joueur, j'ai déjà obtenu 4 points de réputation.
Répondre
#15
Je viens de faire du debug eclipse lit bien la première condition c'est la deuxième qui pose problème (quand on vérifie que soit bien la bonne armure qui est dans les slots)
EDIT: j'ai remarqué que la première condition (celle des slots) était valide même quand le joueur n'avait pas équipé ses bottes jevais essayer d'arranger ça
AymerciRed si tu as une idée pour la deuxième condition je suis preneuse
Répondre
#16
Alors je te prpose de mettre ça juste avant la deuxième condition :
System.out.println(player.inventory.armorInventory.get(1).getItem() + " " + player.inventory.armorInventory.get(2).getItem() + " " + player.inventory.armorInventory.get(3).getItem());
et voir ce qui ne va pas (tu peux faire un print SimpleoresItems.AMNETHYSTE_CHESTPLATE etc pour comparer).
Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.
N'hésitez pas à m'envoyer des idées de tuto, je compte en faire 1 un de ces jours.

Mes tutos : Table de craft, plugin NEI, plugin JEI
Je suis un membre apprécié et joueur, j'ai déjà obtenu 4 points de réputation.
Répondre
#17
Code :
[22:16:08] [Server thread/INFO]: [STDOUT]: fr.priya.simpleores.items.armor.AmnethysteArmor@45e931a9 fr.priya.simpleores.items.armor.AmnethysteArmor@238fcafa fr.priya.simpleores.items.armor.AmnethysteArmor@250c5892
voici ce que ça donne j'avoue que je suis incapable d'interpréter ce logs si toi tu sais je suis preneuse
Répondre
#18
(20-06-2017, 18:06)AymericRed a écrit : Alors je te prpose de mettre ça juste avant la deuxième condition :
System.out.println(player.inventory.armorInventory.get(1).getItem() + " " + player.inventory.armorInventory.get(2).getItem() + " " + player.inventory.armorInventory.get(3).getItem());
et voir ce qui ne va pas (tu peux faire un print SimpleoresItems.AMNETHYSTE_CHESTPLATE etc pour comparer).

Il faut faire un print des SimpleoresItems.AMNETHYSTE_"piece d'armure" et comparer les numéros aprés le @, comme là dit AymericRed. Si les numéros sont les mêmes c'est le même item. Cette ligne toute seule n'est pas trés utile ^^ Enfin je crois Sourire
Répondre
#19
"Enfin je crois"
Si toute seule elle est utile, là ça indique que le joueur a bien l'armure sur lui. Mais pas assez utile oui ^^
Il va donc falloir que tu fasses ce que Timmypote a dit aypristile.
Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.
N'hésitez pas à m'envoyer des idées de tuto, je compte en faire 1 un de ces jours.

Mes tutos : Table de craft, plugin NEI, plugin JEI
Je suis un membre apprécié et joueur, j'ai déjà obtenu 4 points de réputation.
Répondre
#20
C'est bon mon armure fonctionne ! un grand merci à vous @AymericRed et @Timmypoyte. Le problème venait de la numérotation des items en 1.11 maintenant la numérotation ce fait de bas en haut (0 = bottes, 1= pantalon, 2= plastron et 3=casque) 
Je met le code qui fonctionne pour ceux que ça intéresse et je clôture le sujet.
 @Override

public void onArmorTick(World world, EntityPlayer player, ItemStack itemStack){

if(itemStack.getItem().equals(SimpleoresItems.AMNETHYSTE_HELMET) && !player.inventory.armorInventory.get(1).isEmpty() && !player.inventory.armorInventory.get(2).isEmpty() && !player.inventory.armorInventory.get(0).isEmpty()) // Si tout ces slots d'armure sont remplies



if(player.inventory.armorInventory.get(1).getItem().equals(SimpleoresItems.AMNETHYSTE_LEGGINGS)&& player.inventory.armorInventory.get(2).getItem().equals(SimpleoresItems.AMNETHYSTE_CHESTPLATE) && player.inventory.armorInventory.get(0).getItem().equals(SimpleoresItems.AMNETHYSTE_BOOTS)) // Si tout ces slots comprennent bien ta bonne armure d'obsidienne





{

player.addPotionEffect(new PotionEffect(MobEffects.SPEED, 100, 2));
}}
 
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)