"Улучшенные" удары

Итак, сразу к делу. У меня в моде есть несколько возможность... улучшить удар, что ль? Например, удар, который будет отравлять (может, даже и с некой вероятностью, но об этом не сейчас). Таким образом, я хочу сделать, чтоб ударив ЛЮБЫМ предметом, или мечом, топором, луком, мотыгой, мясом - чем угодно - будет накладываться эффект, например, отравления. Каким образом это сделать?

P. S.: Думал сделать через эвент, не совсем понял как.

P. P. S: Хотел сделать через LivingHurtEvent, но нужно проверять, кто ударил - игрок иль нет?
 
Это все, конечно, чудесно.

Назревает другой вопрос: я собираюсь сделать большое кол-во умений, например, для игрока. Не знаю, например... ну, скажем, тот же отравляющий удар. И таких умений будет много. Каждое умение имеет, ну, например 3 уровня (с каждым уровнем все сильнее). Как реализовать все эти умения?

Возможно, сделать класс Skill, а все умения будут что-то вроде public class Название_Умения extends Skill?...

P. S.: и у каждого игрока ведь разный уровень умения - есть те, у кого это умение даже не вкачано, например, а есть те, у кого до макс. уровня. Нужно сделать что-то, чтоб узнавать уровень умения конкретного игрока...
 
608
5
15
Ставишь Extended Entity Proporties, записываешь туда массив с твоими SkillInfo (id, уровень). Потом где надо проверяешь на то что у игрока есть этот скилл, получаешь уровень и делаешь действия.

Если ты не понял что я сказал, то тебе никто помогать не будет (я надеюсь)
 
svk2140 написал(а):
Если ты не понял что я сказал, то тебе никто помогать не будет (я надеюсь)
Какие мы злые!

По счастью, я понял (и уже начал делать так)
[merge_posts_bbcode]Добавлено: 30.06.2016 15:47:00[/merge_posts_bbcode]

svk2140 написал(а):
Ставишь Extended Entity Proporties
А разве не IExtendedEntityProperties?
 
Код:
public void attackEntity(AttackEntityEvent event)
{
    EntityPlayer player = event.entityPlayer;
    Entity target = event.target;

    if (PlayerData.get(player).Skills[0].getLevel() > 0)
    {
        ((EntityLiving)target).addPotionEffect(new PotionEffect(19, PlayerData.get(player).Skills[0].getLevel() + 1, PlayerData.get(player).Skills[0].getLevel()));
    }
}
[merge_posts_bbcode]Добавлено: 05.07.2016 14:52:35[/merge_posts_bbcode]

Код:
public class PlayerData implements IExtendedEntityProperties
{
    private static final String identifier = "tutorialPlayerData";

    // PROPERTIES =============================================================

    private final EntityPlayer player;
    public Skill[] Skills;

    // CONSTRUCTOR, GETTER, REGISTER ==========================================

    public PlayerData(EntityPlayer player)
    {
        this.player = player;
        Skills[0] = IMBase.PoisonHit;
    }
...

[merge_posts_bbcode]Добавлено: 05.07.2016 14:54:16[/merge_posts_bbcode]

Первое - удар по сущности, проверка уровня игрока в этом скилле, и, если достаточно, то наложит отравление.
Второе - PlayerData (я с туториала копировал, все возможные и невозможные говнокоды тут - не мои), в котором я заделал массив со всеми (пока что только одним) скиллами

[merge_posts_bbcode]Добавлено: 05.07.2016 14:54:47[/merge_posts_bbcode]

Но вот только беда - если у меня нет уровня в этом скилле, то я ВООБЩЕ не могу ударить энтити.

[merge_posts_bbcode]Добавлено: 05.07.2016 14:55:10[/merge_posts_bbcode]

Да и если есть, то крашится

[merge_posts_bbcode]Добавлено: 05.07.2016 14:59:18[/merge_posts_bbcode]

Упс, забыл @SubscribeEvent
[merge_posts_bbcode]Добавлено: 05.07.2016 14:59:42[/merge_posts_bbcode]

Но он там есть (теперь)
 
Сверху