|
|
Модератор форума: Dimitro |
Форум TrinityCore [TrinityCore] Help Кап крита |
Кап крита |
Код // Modify crit from weapon skill and maximized defense skill of same level victim difference value += (int32(GetMaxSkillValueForLevel()) - int32(GetMaxSkillValueForLevel())) * 0.04f; if (sWorld->getBoolConfig(CONFIG_STATS_LIMITS_ENABLE)) value = value > sWorld->getFloatConfig(CONFIG_STATS_LIMITS_CRIT) ? sWorld->getFloatConfig(CONFIG_STATS_LIMITS_CRIT) : value; value = value < 0.0f ? 0.0f : value; SetStatFloatValue(index, value); SetStatFloatValue(index, value); и будет твоим конечным значением крита, то есть капа крита нет. А если изменишь строку примерно так: Код SetStatFloatValue(index, value > 89.0f ? 89.0f : value); |
то значение капа крита будет 89%, ну там на твоё усмотрение уже. Это в StatSystem.cpp если что. Более разумным, однако, было бы обратить внимание на код обработчика (ужасный) парой строк выше и сделать вывод, что ограничения под каждый тип характеристик можно задать в конфигурационном файле мира (worldserver.conf) и не добавлять хардкодных нелепостей, к тому же дублирующих существующий функционал, в сам бинарник. На будущее: лучше использовать шаблонную функцию ::std::min или ::std::max, определенную в заголовке <algorithm>. |
Funtomas, Нет ты меня не понял, прочитай вопрос)Во первых в конфиге просто кап крита, и далеко не всем классам, а только миликам, а во вторых мне нужно чтобы агила не давала крита, тоесть такой параметр как ловкость добавляет бонус крита и уклона, а мне нужно это убрать
Сообщение # 4 написано 14.04.2017 в 03:55
|
Более разумным, однако, было бы обратить внимание на код обработчика (ужасный) парой строк выше и сделать вывод, что ограничения под каждый тип характеристик можно задать в конфигурационном файле мира (worldserver.conf) и не добавлять хардкодных нелепостей, к тому же дублирующих существующий функционал, в сам бинарник. На будущее: лучше использовать шаблонную функцию ::std::min или ::std::max, определенную в заголовке <algorithm>. Код set(scripts_STAT_SRCS ${scripts_STAT_SRCS}
Сообщение # 6 написано 14.04.2017 в 04:52
|
В предоставленном сниппете я не вижу таких ограничений. а во вторых мне нужно чтобы агила не давала крита, тоесть такой параметр как ловкость добавляет бонус крита и уклона, а мне нужно это убрать Тогда возможно так и следовало написать в первом сообщении, потому что кап здесь не при чем. А разумней переписать формулу и не нужно ни каких капов, ибо кап - это не профессионально Формула взята не с потолка. Изменять ее - не следовать близзлайку. Разумеется, разницы в результирующем коде не будет (разве что вес файла незначительно вырастет, вероятно), однако стороннему читателю будет легче поддерживать ::std::min(x, 42), нежели x > 42 ? 42 : x, не говоря уже о том, что в ряде случаев здесь может понадобиться еще и пара скобок, задающая приоритет вычислению этого выражения при условии наличия внешнего контекста.
Сообщение # 7 написано 14.04.2017 в 18:34
|
На данный момент я, к сожалению, не могу просматривать исходники в комфортной обстановке IDE, так что мог что-то пропустить (в этом случае мне необходимо сообщить о получении нежелательных результатов). Возможное решение: StatSystem.cpp, void Player::UpdateAllCritPercentages(void): закомментировать первые четыре значащие строчки тела метода. |
| |||
| |||