переписать скилл Body To Mind

11111111

Знаменитый
Участник
Сообщения
73
Розыгрыши
0
Репутация
13
Реакции
16
Баллы
1 260
Хроники
  1. Interlude
Сборка
pw
Сборка pw.
Скилл Body To Mind (1157).
Нужно сделать чтоб он нажатием сливал Нр до 10%.
Готов заплатить.

Код:
<skill id="1157" levels="5" name="Body To Mind">
  <table name="#hpConsume"> 131 209 280 318 366 </table>
  <table name="#power"> 22.0 35.0 47.0 53.0 61.0 </table>
  <table name="#aggro"> 243 379 495 549 611 </table>
  <set name="hpConsume" val="#hpConsume"/>
  <set name="power" val="#power"/>
  <set name="target" val="TARGET_SELF"/>
  <set name="reuseDelay" val="2000"/>
  <set name="hitTime" val="4000"/>
  <set name="skillType" val="MANAHEAL"/>
  <set name="isMagic" val="true"/>
  <set name="operateType" val="OP_ACTIVE"/>
  <set name="castRange" val="-1"/>
  <set name="effectRange" val="-1"/>
  <set name="aggroPoints" val="#aggro"/>
  <for>
  </for>
</skill>
 
В общем пообщались с человеком.
Сливать процентом ему не подойдет, так как чар имеет много буста на статику HP, а процент считает только процент :)
Из вариантов нормального релиза - остается только делать специальный эффект который будет считать хп глобально и от него уже вычитать как это сделано в хронах гф+. Где есть тот же оверзебоди)
 

Кстати а если стату лимита хп заюзать так же в кратковременном баффе?
Я правда не помню уже, были ли уже скиллы типа Seal of Limit в интерлюде, как раз на время срезающие макс. хп
XML:
    <skill id="1509" levels="9" name="Печать Предела" pts_name="[s_seal_of_limit1]" enchant_levels="20">
        <table name="#val1">0</table>
        <table name="#val2">0</table>
        <stat name="icon" value="icon.skill1509" />
        <stat name="magicType" value="magic" />
        <stat name="magicLevel" value="{81 83 85 90 95 99 101 103 105}" />
        <stat name="activateRate" value="{90}" />
        <stat name="effectPoint" value="679" />
        <stat name="mpConsume1" value="{20 30 50 56 61 66 71 76 81}" />
        <stat name="mpConsume2" value="{70 100 202 222 245 266 287 308 329}" />
        <stat name="hitTime" value="2.11" />
        <stat name="coolTime" value="0.5" />
        <stat name="reuseDelay" value="120" />
        <stat name="castRange" value="900" />
        <stat name="effectiveRange" value="1300" />
        <stat name="affectRange" value="200" />
        <stat name="target" value="AURA" />
        <stat name="skillType" value="DEBUFF" />
        <stat name="operateType" value="ACTIVE" />
        <stat name="abnormalType" value="limit" />
        <stat name="abnormalLevel" value="{1 2 3 4 5 6 5 5 6}" />
        <stat name="abnormalTime" value="30" />
        <stat name="nextAction" value="none" />
        <stat name="debuff" value="1" />
        <enchant route="1" name="Шанс" levels="5+">
            <table name="#activateRate" type="ADD">{enchantLevel}</table>
        </enchant>
        <enchant route="2" name="Сглаз" levels="5+">
            <table name="#val1" type="SUB">{0.6 + enchantLevel * 0.4}</table>
        </enchant>
        <enchant route="3" name="Разум" levels="5+">
            <table name="#val2" type="SUB">{0.6 + enchantLevel * 0.4}</table>
        </enchant>
        <for>
            <pvp_effect name="p_effect">
                <mul order="0x30" stat="hpLimit" value="{80 70 60 50 40 30 40 40 30};per" />
                <mul order="0x30" stat="mpLimit" value="{80 70 60 50 40 30 40 40 30};per" />
                <mul order="0x30" stat="cpLimit" value="{80 70 60 50 40 30 40 40 30};per" />
            </pvp_effect>
            <effect name="p_effect">
                <mul order="0x30" stat="hpGain" value="-25;per" />
                <mul order="0x30" stat="pDef" value="#val1;per" subLevels="2001:2020" />
                <mul order="0x30" stat="mDef" value="#val2;per" subLevels="3001:3020" />
            </effect>
        </for>
    </skill>
 
Кстати а если стату лимита хп заюзать так же в кратковременном баффе?
Я правда не помню уже, были ли уже скиллы типа Seal of Limit в интерлюде, как раз на время срезающие макс. хп
Нету. Такие эффекты появились в гф только.
 
Добавляем в L2Skill.java
100 - это не берем хп по дефолту. 10 поставить, опустит хп до 10ти%
Java:
    private final int _hpConsumePercent;
    _hpConsumePercent = set.getInteger("hpConsumePercent", 100);


    public final int getHpConsumePercent() {
        return _hpConsumePercent;
    }

это закидываем в L2Character.java / Creature.java
можно там где итемы забирает и идет последний возврат чтобы каст скила был 100%
либо там где дефолтная проверка на хп (пример точ оф дез)
также тут проверка на то чтобы не хилили хп если хп ниже указанного уровня
Java:
        if (skill.getHpConsumePercent() < 100) {
            if (getCurrentHp()<(getMaxHp()*skill.getHpConsumePercent()/100))
                return false;  //or return
            setCurrentHp(getMaxHp()*skill.getHpConsumePercent()/100);
        }
 
В общем пообщались с человеком.
Сливать процентом ему не подойдет, так как чар имеет много буста на статику HP, а процент считает только процент :)
Из вариантов нормального релиза - остается только делать специальный эффект который будет считать хп глобально и от него уже вычитать как это сделано в хронах гф+. Где есть тот же оверзебоди)

а что, исходников у него нету?
если есть, то в чем конкретная проблема? в любом случае в ядре есть рассчет итогового количества хп с бустами. от этого значения и считать процент.
или ваще психануть, и пойти от обратного - зачем ему сливаться до 10%? может проще повысить процент заюза скилов, для которых он это делает? ну это совсем наркомания, но под его концепт может и пойдет
 
а что, исходников у него нету?
если есть, то в чем конкретная проблема? в любом случае в ядре есть рассчет итогового количества хп с бустами. от этого значения и считать процент.
или ваще психануть, и пойти от обратного - зачем ему сливаться до 10%? может проще повысить процент заюза скилов, для которых он это делает? ну это совсем наркомания, но под его концепт может и пойдет
Если бы были исходы у него лично, то мы бы не вели разговор о том что нужно как-то изъебнуться в дп для релиза.
У него есть кодер с исходами вроде - он сказал что даст ему уже заказ в будущем.

Быстрый слив ему нужен для кдл.
И на данный момент чел костылями уже сделал, что хотел.
 
Если бы были исходы у него лично, то мы бы не вели разговор о том что нужно как-то изъебнуться в дп для релиза.
У него есть кодер с исходами вроде - он сказал что даст ему уже заказ в будущем.

Быстрый слив ему нужен для кдл.
И на данный момент чел костылями уже сделал, что хотел.

ПВ без исходов? это сильно) ну расскажите, каким костылем сделали, может кому в будущем пригодится
 
Добавляем в L2Skill.java
100 - это не берем хп по дефолту. 10 поставить, опустит хп до 10ти%
Java:
    private final int _hpConsumePercent;
    _hpConsumePercent = set.getInteger("hpConsumePercent", 100);


    public final int getHpConsumePercent() {
        return _hpConsumePercent;
    }

это закидываем в L2Character.java / Creature.java
можно там где итемы забирает и идет последний возврат чтобы каст скила был 100%
либо там где дефолтная проверка на хп (пример точ оф дез)
также тут проверка на то чтобы не хилили хп если хп ниже указанного уровня
Java:
        if (skill.getHpConsumePercent() < 100) {
            if (getCurrentHp()<(getMaxHp()*skill.getHpConsumePercent()/100))
                return false;  //or return
            setCurrentHp(getMaxHp()*skill.getHpConsumePercent()/100);
        }
Судя по неймингу, дефолтное значение у параметра который отнимает хп в процентах должно быть 0, 100 - суицид.
В методе отнимания хп лучше зафиксировать значение которое проверяется в условии и передается в значении setCurrentHp (рейс кондишн может быть)
 

Похожие темы

Назад
Сверху Снизу