Получение урона с шансом.

Версия Minecraft
1.7.10
459
13
35
Доброго времени суток.
Как сделать так, что бы при получение урона с шансом 30% активировалось зелье отравления.
Я что-то сложил подобное, но это от падения.
Вот кодик:
Java:
package com.darkdays.breakleg;

import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraftforge.event.entity.living.LivingFallEvent;

public class TakeDamage
    {
        @SubscribeEvent
        public void PlayerFall(LivingFallEvent event) {
        if(event.entity instanceof EntityPlayer) {
        EntityPlayer player = (EntityPlayer)event.entity;
        if(!player.capabilities.isCreativeMode) {
        if(event.distance > 6.0F) {
        player.addPotionEffect(new PotionEffect(Potion.poison.id, 600*20, 4, true));
        }
        }
        }
        }
    }


Прошу чуть подсказать.
 
Решение
Тебе надо использовать LivingHurtEvent, проверить есть ли энтити, которое получает урон, игроком(e.entity instanceof EntityPlayer), затем чекнуть рандом, к примеру random.nextInt(100) < 30 ну и после этого наложить эффект

timaxa007

Модератор
5,831
409
672
LivingFallEvent на LivingHurtEvent
А условие на event.distance заменяешь на условия с рандомом на Float с проверкой на его рандомность меньше или равно 0.3F.
---
Java:
@SubscribeEvent
public void damege(LivingHurtEvent event) {
    if(event.entity instanceof EntityPlayer) {
        EntityPlayer player = (EntityPlayer)event.entity;
        if(!player.capabilities.isCreativeMode) {
            if(event.entity.worldObj.rand.nextFloat() <= 0.3F) {
                player.addPotionEffect(new PotionEffect(Potion.poison.id, 600*20, 4, true));
            }
        }
    }
}
 
1,057
50
234
Код:
if(player.getEntityWorld().rand.nextInt(CHANCE) == 0) 
player.addPotionEffect(new PotionEffect(Potion.poison.id, 600*20, 4, true));
 

Eifel

Модератор
1,623
78
608
Тебе надо использовать LivingHurtEvent, проверить есть ли энтити, которое получает урон, игроком(e.entity instanceof EntityPlayer), затем чекнуть рандом, к примеру random.nextInt(100) < 30 ну и после этого наложить эффект
 
Последнее редактирование:
Сверху