|
Архив - только для чтения |
Модератор форума: andycrowz |
Форум Корзина форума Корзина Постепенное набирание хаста, уклона и т.д |
Постепенное набирание хаста, уклона и т.д |
Доброго времени суток, столкнулся с небольшими проблемами. Суть проблемы такова: Мне нужно сделать в исходниках так чтоб когда люди одеваясь с рис. шмот постепенно набирали хаст, додж и т.д (Если не привильно выразился - поправьте)
Если делать кап на все, то в любом случае все будет набиратся максимально быстро.... ( советы типа баланс шмота не смотрю ) Кто знает как сделать отпишитесь плз
Сообщение # 1 написано 25.09.2012 в 22:18
|
Знаем как делать,в исходниках указывай влияние агилы\инты\силы на вторичные характеристики
к примеру у меня сделано ограничение на статы в 33% при условии что у меня каждая шмотка даёт минимум 5к всего что только возможо (дерзайте) 33% уклона 33% крита 33% блока 33% парирования 33% спелл крита 33% ренж крита 33% ресайленса 33% меткости и т.д. (всего что захочется) соотведственно добавляешь формулу на максимальное значение и меняешь влияние стат на вторичные статы делов 10 минут с опытом в этом деле=)) Решение не дам,дерзайте сами... т.к. я сам не без помощи конечно но справился=))) Большее спасибо: Dinoza SergeySV Мой серв можешь зайти првоерить=)) |
The_Guard, ну у меня только на додж стоит,
Code void Player::UpdateDodgePercentage() { const float dodge_cap[MAX_CLASSES] = { 88.129021f, // Warrior 88.129021f, // Paladin 145.560408f, // Hunter 145.560408f, // Rogue 150.375940f, // Priest 88.129021f, // DK 145.560408f, // Shaman 150.375940f, // Mage 150.375940f, // Warlock 0.0f, // ?? 116.890707f // Druid }; float diminishing = 0.0f, nondiminishing = 0.0f; GetDodgeFromAgility(diminishing, nondiminishing); // Modify value from defense skill (only bonus from defense rating diminishes) nondiminishing += (GetSkillValue(SKILL_DEFENSE) - GetMaxSkillValueForLevel()) * 0.04f; diminishing += (int32(GetRatingBonusValue(CR_DEFENSE_SKILL))) * 0.04f; // Dodge from SPELL_AURA_MOD_DODGE_PERCENT aura nondiminishing += GetTotalAuraModifier(SPELL_AURA_MOD_DODGE_PERCENT); // Dodge from rating diminishing += GetRatingBonusValue(CR_DODGE); // apply diminishing formula to diminishing dodge chance uint32 pclass = getClass()-1; float value = nondiminishing + (diminishing * dodge_cap[pclass] / (diminishing + dodge_cap[pclass] * m_diminishing_k[pclass])); value = value < 0.0f ? 0.0f : value; if(value > 100.0f) value = 100.0f; SetStatFloatValue(PLAYER_DODGE_PERCENTAGE, value); } ну а мне надо постепенное, а не тупо срез. Добавлено (25.09.2012, 22:52)
Сообщение # 3 написано 25.09.2012 в 22:52
|
А при чем тут срез?
внимательнее прочитайте что я написал выше! максимальное значение вам нужно установить у меня установлено 33% и чтобы вы не сделали у вас не будет больше чем 33% Добавлено (25.09.2012, 23:06)
Сообщение # 4 написано 25.09.2012 в 23:06
|
Сообщение # 6 написано 25.09.2012 в 23:27
|
Quote (Funtomas) The_Guard, вы тугой? Я ясно написал Quoteчтоб постепенно набирали хаст, додж и т.д, а с этими значениями и так все ясно Выражайтесь коректнее я вас понял таким образом: Вещь даёт 15% доджа 23 вещи итого у нас 345% доджа как вы выразились (постепенно) тоесть одел вещь дала 15% доджа одел еще одну еще 15% доджа итого 30% доджа если я вас так понял то моё решение вам поможет если не так понял выражайтесь коректнее!
Сообщение # 7 написано 25.09.2012 в 23:58
|
Quote (Funtomas) if(value > 100.0f) value = 100.0f; , но мне надо постепенно набирать это дело епт А что мешает изменить алгоритм вычисления, результат которого и заносится в value? Уменьшить коэффициенты или придумать другой алгоритм который будет подходить под твои статы, и который не будет превышать определённого значения. Ведь там ясно написано откуда и какие данные берутся, и как вычисляются. По ним можно высчитать результат. Так измени формулу, ёпт. Внатуре. Без б.
Сообщение # 8 написано 26.09.2012 в 02:47
|
Quote (Funtomas) Извиняй, но я еще не гуру с++. Если бы хорошо знал, то сюда не писал. Тогда ты ошибся разделом. Тебе в раздел платных услуг, чтобы там за тебя всё написали. А здесь раздел помощи, а не готовых решений. Так что, могу только подтолкнуть к решению, и помочь с трудными местами в реализации. Но писать за тебя не собираюсь. |
Прадмур, Абсолютно прав.Есть 2 варинта решения этой проблемы уменьшить модификатор вторичной статы в нашем случае уклонение.
К примеру если у тебя 1 ловкости это 1% уклонения. Что мешает этот модификатор поменять? к примеру на 0.1 и радуйтесь у вас 1 ловкости даёт 0.1 уклона. если же у вас совмес заоблочные статы огда выставить модификатор 0.1 и установите максимальное значение к примеру 40% итого мы получаем не только постепенный набор уклонения но еще и ограничение за которое он не может перевалить.
Сообщение # 12 написано 01.10.2012 в 12:49
|
| |||
| |||