• Страница 1 из 1
  • 1
Архив - только для чтения
Модератор форума: andycrowz  
Постепенное набирание хаста, уклона и т.д
Funtomas
Рыцарь
Доброго времени суток, столкнулся с небольшими проблемами. Суть проблемы такова: Мне нужно сделать в исходниках так чтоб когда люди одеваясь с рис. шмот постепенно набирали хаст, додж и т.д (Если не привильно выразился - поправьте)
Если делать кап на все, то в любом случае все будет набиратся максимально быстро....
( советы типа баланс шмота не смотрю )
Кто знает как сделать отпишитесь плз
Сообщение # 1 написано 25.09.2012 в 22:18
The_Guard
Центурион
Знаем как делать,в исходниках указывай влияние агилы\инты\силы на вторичные характеристики
к примеру у меня сделано ограничение на статы в 33% при условии что у меня каждая шмотка даёт минимум 5к всего что только возможо (дерзайте)

33% уклона
33% крита
33% блока
33% парирования
33% спелл крита
33% ренж крита
33% ресайленса
33% меткости
и т.д. (всего что захочется)

соотведственно добавляешь формулу на максимальное значение

и меняешь влияние стат на вторичные статы

делов 10 минут с опытом в этом деле=))

Решение не дам,дерзайте сами...
т.к. я сам не без помощи конечно но справился=)))
Большее спасибо:
Dinoza
SergeySV

Мой серв

можешь зайти првоерить=))
---Коплю Минусы---
Сообщение # 2 отредактировано The_Guard - Вторник, 25.09.2012, 22:52
Funtomas
Рыцарь
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
The_Guard
Центурион
А при чем тут срез?
внимательнее прочитайте что я написал выше!
максимальное значение вам нужно установить
у меня установлено 33% и чтобы вы не сделали у вас не будет больше чем 33%

Добавлено (25.09.2012, 23:06)
---------------------------------------------
тоесть объясню подробнее
у вас есть влияние агилити на додж его можно поставить 0.1 и так при стате на шмотке 500к агилы вам даст N кол-во доджа
к примеру вам это даст 8% доджа
но если одеть фул шмот тогда додж зашкалит за 100% с этим боротся проще простого устанавливаете максимальное граничение доджа и уменьшаете процент влиянию до 0.03 напрмиер и того у вас 5 вещей к примеру дают 15% доджа а фул шмот даёт 35% доджа а т.к. у вас максимально его может быть 33% то у вас и будет его 33% несмотря на всё остальное!

---Коплю Минусы---
Сообщение # 4 написано 25.09.2012 в 23:06
Funtomas
Рыцарь
The_Guard, макс значение
Code
if(value  > 100.0f) value = 100.0f;
, но мне надо постепенно набирать это дело епт
Сообщение # 5 написано 25.09.2012 в 23:07
Funtomas
Рыцарь
The_Guard, вы тугой? Я ясно написал
Quote
чтоб постепенно набирали хаст, додж и т.д
, а с этими значениями и так все ясно

Добавлено (25.09.2012, 23:27)
---------------------------------------------
Я неоднократно делал так, но толку ноль.... Хотя можно кое-что провернуть, но не факт что будет работать

Сообщение # 6 написано 25.09.2012 в 23:27
The_Guard
Центурион
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
Funtomas
Рыцарь
Прадмур, извеняй но я еще не гуру с++, если бы хорошо знал бы, сюда не писал бы
Сообщение # 9 написано 26.09.2012 в 17:12
Прадмур
~
Quote (Funtomas)
Извиняй, но я еще не гуру с++. Если бы хорошо знал, то сюда не писал.

Тогда ты ошибся разделом. Тебе в раздел платных услуг, чтобы там за тебя всё написали.
А здесь раздел помощи, а не готовых решений. Так что, могу только подтолкнуть к решению, и помочь с трудными местами в реализации. Но писать за тебя не собираюсь.
Сообщение # 10 отредактировано Прадмур - Среда, 26.09.2012, 21:27
Funtomas
Рыцарь
Прадмур, дак а кто сказал что кто-то будет что-то делать за меня?!
Мне нужно нормальное начало, а дальше дело моих рук
Сообщение # 11 написано 26.09.2012 в 22:07
The_Guard
Центурион
Прадмур, Абсолютно прав.Есть 2 варинта решения этой проблемы уменьшить модификатор вторичной статы в нашем случае уклонение.
К примеру если у тебя 1 ловкости это 1% уклонения.
Что мешает этот модификатор поменять?
к примеру на 0.1 и радуйтесь у вас 1 ловкости даёт 0.1 уклона.
если же у вас совмес заоблочные статы огда выставить модификатор 0.1 и установите максимальное значение к примеру 40%
итого мы получаем не только постепенный набор уклонения но еще и ограничение за которое он не может перевалить.
---Коплю Минусы---
Сообщение # 12 написано 01.10.2012 в 12:49
Ma_aelKoT
Скаут
А лучше - учись делать баланс шмот.

Шлаковых недосерверов с over9000 статами - хоть попой жуй... mellow
Сообщение # 13 отредактировано Ma_aelKoT - Понедельник, 01.10.2012, 14:15
Funtomas
Рыцарь
Ma_aelKoT,
Quote (Funtomas)
( советы типа баланс шмота не смотрю )

А ваще я уже разобрался как все это сделать biggrin
Сообщение # 14 написано 01.10.2012 в 19:27
  • Страница 1 из 1
  • 1
Поиск: