Résolu Temps de recharge dans un onRightClickEvent
-
Oui car le for parcourt toute les entitées proches, si tu veux que ça ne soit que la cible, il faut mettre target.setFire(…) en dehors du for le retirer.
-
Quoi??? j’ai pas compris la phrase.
edit:
J’ai fais ça mais c’est pareil:public boolean hitEntity(ItemStack stack, EntityLivingBase target, EntityLivingBase attacker) { EntityPlayer player = Minecraft.getMinecraft().thePlayer; World worldObj = player.worldObj; double posX = attacker.posX; double posY = attacker.posY; double posZ = attacker.posZ; List list = worldObj.getEntitiesWithinAABB(EntityCreature.class, AxisAlignedBB.getBoundingBox(posX, posY, posZ, posX + 1, posY + 1, posZ + 1).expand(6D, 4D, 6D)); target.setFire(1 * 20); for(int i = 0; i< list.size(); i++) { Entity entity = (Entity)list.get(i); if(!list.isEmpty()) { entity.setFire(1 * 20); System.out.println(list); } } return true;
-
@‘floriangabet’:
J’ai un problème pourquoi quand je fais:
target.setFire(1 * 20);
entity.setFire(1 * 20);le target prend feu mais les entity autour normal?
Il manque un “pas” dans la phrase non ?
-
@‘robin4002’:
@‘floriangabet’:
J’ai un problème pourquoi quand je fais:
target.setFire(1 * 20);
entity.setFire(1 * 20);le target prend feu mais les entity autour normal?
Il manque un “pas” dans la phrase non ?
Ah oui mince j’avais pas vus !
-
Du coup vous savez pourquoi le
target.setfire(…) marche
et le entity.setfire(…) se cancelled direct ? -
Ajoutes du debug :
public boolean hitEntity(ItemStack stack, EntityLivingBase target, EntityLivingBase attacker) { EntityPlayer player = Minecraft.getMinecraft().thePlayer; World worldObj = player.worldObj; double posX = attacker.posX; double posY = attacker.posY; double posZ = attacker.posZ; List list = worldObj.getEntitiesWithinAABB(EntityCreature.class, AxisAlignedBB.getBoundingBox(posX, posY, posZ, posX + 1, posY + 1, posZ + 1).expand(6D, 4D, 6D)); target.setFire(1 * 20); System.out.println("taille de la liste : " + list.size()); for(int i = 0; i< list.size(); i++) { Entity entity = (Entity)list.get(i); entity.setFire(1 * 20); System.out.println(entity); } return true; }
-
@‘robin4002’:
Ajoutes du debug :
public boolean hitEntity(ItemStack stack, EntityLivingBase target, EntityLivingBase attacker) { EntityPlayer player = Minecraft.getMinecraft().thePlayer; World worldObj = player.worldObj; double posX = attacker.posX; double posY = attacker.posY; double posZ = attacker.posZ; List list = worldObj.getEntitiesWithinAABB(EntityCreature.class, AxisAlignedBB.getBoundingBox(posX, posY, posZ, posX + 1, posY + 1, posZ + 1).expand(6D, 4D, 6D)); target.setFire(1 * 20); System.out.println("taille de la liste : " + list.size()); for(int i = 0; i< list.size(); i++) { Entity entity = (Entity)list.get(i); entity.setFire(1 * 20); System.out.println(entity); } return true; }
Dans la console j’ai ça:
[13:08:05] [Server thread/INFO] [STDOUT]: [net.legacymod.items.test:hitEntity:108]: taille de la liste : 2
[13:08:05] [Server thread/INFO] [STDOUT]: [net.legacymod.items.test:hitEntity:136]: EntityPig[‘Pig’/19752, l=‘MpServer’, x=38,63, y=80,00, z=78,63]
[13:08:05] [Server thread/INFO] [STDOUT]: [net.legacymod.items.test:hitEntity:108]: taille de la liste : 2
[13:08:05] [Server thread/INFO] [STDOUT]: [net.legacymod.items.test:hitEntity:136]: EntityPig[‘Pig’/20654, l=‘MpServer’, x=37,27, y=80,00, z=77,27]ça détecte bien 2 entity mais le problème c’est que l’autre ne prend pas feu.
-
Ah oui, normal …
EntityPlayer player = Minecraft.getMinecraft().thePlayer;
Pourquoi tu utilises une classe client dans une fonction serveur ?
Supprimes ces deux lignes :
EntityPlayer player = Minecraft.getMinecraft().thePlayer; World worldObj = player.worldObj;
Et remplaces worldObj par attacker.worldObj
-
Merci ça marche je close!