Сообщений: 1,058
Тем: 129
Зарегистрирован: May 2009
Репутация:
11,626
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"/>
Сообщений: 102
Тем: 33
Зарегистрирован: Sep 2011
Репутация:
-83
02-03-2016, 03:50 PM
(Сообщение последний раз редактировалось: 02-03-2016, 03:53 PM FilipMorris.)
Фигасе ответ! Спасибо огромное!
Добавлено через 2 минуты
Правда я не понял откуда число 112 взялось, но это уже не важно)