Виталити

WoWan-SM

Путник
Пользователь
За знание датапака
За знание ядра
Разработчик
Сообщения
119
Розыгрыши
0
Репутация
766
Реакции
321
Баллы
0
Никто случаем с PTS не достал формулу рассчета потребления виталити?
Ибо то что имеется сейчас мне кажется дичайшим бредом:
Код:
double points = ((mob.getExpReward() / (npcLevel * npcLevel)) * 100) / 9;
А у Nextgen так вообще аж два magic number)
Код:
        float points = 25 * target.getExpReward() / (targetLevel * targetLevel * 9);
 
1я почти :)
Зайти на РПГ, снять кол виталити с любого моба, и экспу. Посчитать и сравнить с явой :)
 
Вот еще один вариант формулы. Но тут получается не учитывается множитель HP у моба
Код:
double points = ((noRateExp / (npcLevel * npcLevel)) * 100) / 9;
 
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
такое еще нашел.
Код:
double points = exp / (double) (lvl * lvl) * 100 / 9;
 
такое еще нашел.
Код:
double points = exp / (double) (lvl * lvl) * 100 / 9;
Использую аналогичную формулу, с преобразованием к типу вещественного числа получаем точные данные
Тоже самое что я выше отписал.
Вы в корень не правы!
Вот почему, пример:
Код:
        final long exp = 564364L;
        final int level = 85;
        final double points = exp / (double) (level * level) * 100 / 9;
С преобразованием получим: 867.9184928873511, а вот если не преобразуем тип то получим 866.0, хоть и вещественный но без остатка, так как в момент расчета вещественного типа не было.
 
С преобразованием получим: 867.9184928873511, а вот если не преобразуем тип то получим 866.0, хоть и вещественный но без остатка, так как в момент расчета вещественного типа не было.
А не легче ли просто переменную level поставить, как double и избавиться от явного преобразования типов в формуле?)
 
Использую аналогичную формулу, с преобразованием к типу вещественного числа получаем точные данные

Вы в корень не правы!
Вот почему, пример:
Код:
        final long exp = 564364L;
        final int level = 85;
        final double points = exp / (double) (level * level) * 100 / 9;
С преобразованием получим: 867.9184928873511, а вот если не преобразуем тип то получим 866.0, хоть и вещественный но без остатка, так как в момент расчета вещественного типа не было.
Согласен. Я имел ввиду общую структуру. Координально формула структура не изменила, только приведение добавилось.
Для примера приведу пример, что по такой формуле получаем 28 очков виталити снимается, а по формуле на некстгена 7. Вот тут то уже счет идет не на единицы.
 
Если ГоД+, то там 2 формулы потребления виталити: до 85 уровня и после.
 
А не легче ли просто переменную level поставить, как double и избавиться от явного преобразования типов в формуле?)
Без спорно можно, но есть ли смысл?)
Преобразование все равно произойдет, в вычислении или на входе, но суть остается без изменении (Если ты не говоришь о типе самой переменной _level в модели Player, в чем вообще нету логики :D), нам нужно точное число а не приближенное.
А на счет некстов остается только гадать почему они так сделали.
 
Назад
Сверху Снизу