Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Статы Reflect Damage и Vampiric
#1
Я так и не понял в каком разделе задать такой вопрос, извиняюсь...

Вот не могу разобраться с некоторыми статами, а именно:

Так правильно?

Код:
<add val='0.05' order='0x40' stat="reflectDam"/> <!-- Reflect Damage +5% -->

<add val='0.05' order='0x40' stat='absorbDam'/> <!-- Vampiric+5% -->

Или так правильно?

Код:
<add val='5' order='0x40' stat="reflectDam"/> <!-- Reflect Damage +5% -->

<add val='5' order='0x40' stat='absorbDam'/> <!-- Vampiric+5% -->

Или вот так?

Код:
<mul val='0.05' order='0x40' stat="reflectDam"/> <!-- Reflect Damage +5% -->

<mul val='0.05' order='0x40' stat='absorbDam'/> <!-- Vampiric+5% -->
Ответ
#2
mul/div мы используем в основном с 0x30, 0x50.
add/sub мы используем в основном с 0x40, 0x10.
set чаще всего 0x08 но лично я, имею право использовать его и с 0x10.

Мастер класс:
ваши примеры были всегда правильными если бы вы понимали что делаете и как это реализовано в коде.

Так давайте разберём это говнецо:
То что вы редактируете в xml тесно связано с калькулятором. Хрень вида mul/div/add/sub отвечает за операцию в калькуляторе умножение/деление/сложение/вычитание.

Теперь вы стали чуточку умнее, и мы продолжаем.

Чтобы узнать где что использовать правильно, надо найти стат reflectDam в ядре, а точнее, где он используется и как. Приведу пример своего ядра.

double reflectPercent = target.getStat().calcStat(Stats.REFLECT_DAMAGE_PERCENT, 0);

Я обоъявил переменную reflectPercent и присвоил ей стат рефлекта с базовым значением 0.

дальше по вычислениям в ядре видно:
reflectPercent / 100. * damage

что моя переменная reflectPercent делится на 100 и умножается на другую переменную.

Давайте вставим цифры: 25 / 100 * 112 = 28 - то что получили, = 25% от нанесённого урона. Т.е. в моём случае в xml выставлено
<add order="0x40" stat="reflectDam" val="25"/>

А вот если бы изначально стат был:
double reflectPercent = target.getStat().calcStat(Stats.REFLECT_DAMAGE_PERCENT, damage);

то <add order="0x40" stat="reflectDam" val="25"/> в xml просто возвращало бы не % а полное значение т.е. при нанесении урона я бы отражал 25 едениц.
Если бы поставил <mul order="0x30" stat="reflectDam" val="1.25"/> то я бы возвращал 125% урона атакующему.
Если бы поставил <mul order="0x40" stat="reflectDam" val="0.75"/> то я бы возвращал лишь 75% урона атакующему из 100% его нанесённых: 122 * 0.75 = 91 ед. урона я бы вернул.

с остальными по аналогии, главное понять, что когда нужное нам значение стоит внутри калькулятор calcStats, то ваши действия <add/mul/div/sub будут применяться к нему сразу и лично я считаю это хорошим и правильным тоном, так мы можем использовать его на все 100% предназначения.

В первом же случае, я просто вставляю туда 25 и дальше это число начинает само делится на други значения, т.е. формулу я выбрал сам, а это значит, если я попробую поставить туда 1.25, я получу член в виде 1.25 / 100 * 122 = 1,525 (округляем до близлежащего и получаем 2). Т.е. я как бы хотел возвращать 125% урона назад, но вместо 125 вписал 1.25 потому что все статы в л2 сборке сделаны через жопу и анальное отверстие.

Ещё короче!: Значение выставленное в xml конкретно к reflectDam будет возвращать всегда % и НИКОГДА не будет возвращать АБСОЛЮТНОЕ (единицы), пока вы сами разумеется не поправите код.

ОТВЕТ НА ВАШ ВОПРОС: в вашем случае, если вы хотите отражать 5% урона вам надо ставить <add order="0x40" stat="reflectDam" val="5"/>
Ответ
#3
Фигасе ответ! Спасибо огромное!

Добавлено через 2 минуты
Правда я не понял откуда число 112 взялось, но это уже не важно)
Ответ
#4
FilipMorris Написал:Фигасе ответ! Спасибо огромное!

Добавлено через 2 минуты
Правда я не понял откуда число 112 взялось, но это уже не важно)

Число 122 это я просто поставил с потолка якобы такой урон по нам наносят.
Ответ
#5
finfan Написал:Хрень вида mul/div/add/sub отвечает за операцию в калькуляторе умножение/деление/сложение/вычитание.
у меня кстати на 2 операции больше - вводил для кой каких своих нужд еще max/min Big Grin
по названиям уже понятно что делают, max - выбирает самое большое значение у статы из всех вариантов в пассивках/баффах персонажа, min - самое меньшее соотвественно.
Ответ


Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)