CustomGames.ru - Dota 2 пользовательские игры

GetEvasion

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн I_GRIN_I

  • Продвинутый
  • 636
  • Мощь: 11
  • Научиться бы скриптить...
GetEvasion
« : 04-09-2017, 18:30:37 »
Собственно, как получить % шанса на уклонение у героя через апи?

Оффлайн ZLOY

  • Супермодератор
  • 456
  • Мощь: 6
Re: GetEvasion
« Ответ #1 : 04-09-2017, 18:35:04 »
Ты можешь сам посчитать, причем достаточно просто, если используешь модификаторы на луа

Оффлайн I_GRIN_I

  • Продвинутый
  • 636
  • Мощь: 11
  • Научиться бы скриптить...
Re: GetEvasion
« Ответ #2 : 04-09-2017, 19:04:00 »
ZLOY, каким образом?

Оффлайн ZLOY

  • Супермодератор
  • 456
  • Мощь: 6
Re: GetEvasion
« Ответ #3 : 05-09-2017, 08:36:53 »
Как-то так.
Код
function CDOTA_BaseNPC:GetEvasion()
local evasion = 1
local modifiers = self:FindAllModifiers()
for _,mod in pairs(modifiers) do
if mod.GetModifierEvasion_Constant then
evasion = evasion * ( 1 - mod:GetModifierEvasion_Constant()/100 )
end
end
return 1 - evasion
end

Оффлайн I_GRIN_I

  • Продвинутый
  • 636
  • Мощь: 11
  • Научиться бы скриптить...
Re: GetEvasion
« Ответ #4 : 06-09-2017, 06:48:38 »
Дело в том, что мне нужно получить стату для отображения в панораме и нужно иметь инфу и из дд

Оффлайн ZLOY

  • Супермодератор
  • 456
  • Мощь: 6
Re: GetEvasion
« Ответ #5 : 06-09-2017, 07:11:00 »
Дело в том, что мне нужно получить стату для отображения в панораме и нужно иметь инфу и из дд
Ну тут уже сложнее. Можно попробовать вытащить инфу про увороты из стандартного тултипа. Или для каждого конкретного модификатора с уворотами добавлять код в эту функцию) Но это муторно. Легче все увороты на луа переписать).

Оффлайн MahouShoujo

  • Продвинутый
  • 204
  • Мощь: 4
Re: GetEvasion
« Ответ #6 : 06-09-2017, 21:39:01 »
переделываем все модифаеры на луа, добавляем еще один скрытый modifier_total_evasion который тупо суммирует эвейжн в стаки, в панораме выводим стаки этого модифаера.