не работает метод вампирика

Grekk

Выдающийся
Участник
Старожил I степени
Сообщения
247
Розыгрыши
0
Репутация
85
Реакции
237
Баллы
1 395
Все изображения и файлы загружайте только на наш сервер! Для этого используйте кнопку "Загрузить файл", расположенную ниже или просто перетащите необходимые файлы/изображения со своего компьютера в окно редактора.
Хроники
  1. Salvation
Сборка
L2J_Mobius
Надеваем допустим серьгу закена у нее там в писивке есть вампирик, если бить простой атакой то вампирик работает все ок, но если начать бить скилом то вампирик не работает, как подсказали знающие люди "сделай проверку "тригер он аттак"и "и одним из условий поставь "скилл - тру" проблема в том что не могу сделать эту проверку не понимаю как вообще сделать правильно.
Вот сам VampiricAttack.java
/*
* This file is part of the L2J Mobius project.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see < >.
*/
package handlers.effecthandlers;

import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Stat;

/**
* @author Sdw
*/
public class VampiricAttack extends AbstractEffect
{
private final double _amount;
private final double _sum;

public VampiricAttack(StatSet params)
{
_amount = params.getDouble("amount");
_sum = _amount * params.getDouble("chance");
}

@Override
public void pump(Creature effected, Skill skill)
{
effected.getStat().mergeAdd(Stat.ABSORB_DAMAGE_PERCENT, _amount / 100);
effected.getStat().addToVampiricSum(_sum);
}
@Override

public void pump(Creature effected, Skill skill)
{
target.getStat().getValue(Stat.ABSORB_DAMAGE_DEFENCE, 1);
stat.getValue(Stat.ABSORB_DAMAGE_CHANCE)))
}
}

Вот условия с Creature.java

если все правильно понимаю надо написать проверку для этой части Creature.java - и вставить ее в VampiricAttack.java
 
Вампир к никогда не регенил от атак скилом, только атакой руки
 
Вампир к никогда не регенил от атак скилом, только атакой руки
не должно на ессенсе допустим бью виндстрайком, 9000 урона мне возвращается 2% в хп из этих 9000 урона, кто может сделать отблагодарю
 
В статье скилла нет с какого да ага регенить? Я на яве не помню уже.
 
вампирик от всего урона работает начиная с год хроник так же как и возможность указания шанса , не важно ява это или птс так было сделано корейцами . Если в данной сборке нету тогда только реализовать.
 
вампирик от всего урона работает начиная с год хроник так же как и возможность указания шанса , не важно ява это или птс так было сделано корейцами . Если в данной сборке нету тогда только реализовать.
/delete
 
вкину свои полторы копейки)) пост набить, может кому пригодится
Код:
    // Absorb HP from the damage inflicted
            final boolean isPvP = isPlayable() && target.isPlayable();
            if (!isPvP || Config.VAMPIRIC_ATTACK_AFFECTS_PVP)
            {
                if (skill == null) // Удаляем это условие, если хотим вампирить от скиллов.
                {
                    final double absorbHpPercent = getStat().getValue(Stat.ABSORB_DAMAGE_PERCENT, 0) * target.getStat().getValue(Stat.ABSORB_DAMAGE_DEFENCE, 1);
                    if ((absorbHpPercent > 0) && (Rnd.nextDouble() < _stat.getValue(Stat.ABSORB_DAMAGE_CHANCE)))
                    {
                        int absorbDamage = (int) Math.min(absorbHpPercent * damage, stat.getMaxRecoverableHp() - status.getCurrentHp());
                        absorbDamage = Math.min(absorbDamage, (int) target.getCurrentHp());
                        if (absorbDamage > 0)
                        {
                            setCurrentHp(_status.getCurrentHp() + absorbDamage);
                        }
                    }
                }
            }
 
Назад
Сверху Снизу