Искал-искал когда-то, не нашёл, может тоже кто-то будет искать, пусть найдёт
Функция сложения или вычитания шансов по Формуле убывающей полезности из Dota 2
phantom_miss_chance - текущий шанс уклонения
Чтобы "Добавить Фантомке Бабочку" нужно ввести RecalculateChance(phantom_miss_chance, 35)
Чтобы "Забрать у…
Алгоритмы, Наработки и Способности
@quq_CCCP: Скопировать в буфер// Evasion // Blur // Drunken Brawler // Butterfly // Halberd // Talisman // Smoke screen - // Whirling Axes - 60% // Crippling Fear - 50% // Drunken Haze - 45, 55, 65, 75 function GT1 takes unit SFI returns nothing // evasion up local real GR1 = 1 local integer GP1 = UnitInventorySize( SFI ) local integer x = 0 local item i local integer SUI = GetUnitAbilityLevel( SFI, 'A03P' ) // blur if SUI > 0 then if SUI == 1 then set GR1 = GR1 * 0.8 elseif SUI == 2 then set GR1 = GR1 * 0.7 elseif SUI == 3 then set GR1 = GR1 * 0.6 elseif SUI == 4 then set GR1 = GR1 * 0.5 endif endif set SUI = GetUnitAbilityLevel( SFI, 'A0MX' ) if SUI > 0 then set GR1 = GR1 * ( 1 - ( 0.05 + 0.05 * SUI ) ) endif loop exitwhen x > GP1 set i = UnitItemInSlot( SFI, x ) if F01( i ) == ButterflyActiveId then set GR1 = GR1 * 0.65 elseif F01( i ) == HN0 or F01( i ) == HeavensHalbertId then set GR1 = GR1 * 0.75 endif set x = x + 1 endloop set SUI = R2I( ( 1 - GR1 ) / 0.05 )* 1 if SUI > 0 then call AddPermanentAbility( SFI, 'A2V3' ) call SetUnitAbilityLevel( SFI, 'A2V3', SUI ) set x = GetUnitAbility( SFI, 'A2V3' ) if x < 1 then call BJDebugMsg("ability not added!") else call SaveInteger( HashData, ExEvasionData, GetHandleId( SFI ), x ) if IsUnitIllusion( SFI ) then if RMem( x + 0x3C ) > 0 then call WMem( x + 0x3C, 0 ) endif endif endif else call UnitRemoveAbility( SFI, 'A2V3' ) call RemoveSavedInteger( HashData, ExEvasionData, GetHandleId( SFI )) endif set i = null endfunction Вот функция сложения шансов промахов из доты, автор IceFrog. GR -это вероятность поп 58 522
`
ОЖИДАНИЕ РЕКЛАМЫ...
Scroll Lock - быстрая модерация