11

» WarCraft 3 / Вывод сообщения на экран о количестве юнитов (I2S не работает в ИИ)

Svintus, Я сейчас посмотрел на этом сайте твоём, под функцией I2C2 есть функция I2S2, вот она то тебе скорее всего и нужна
11

» WarCraft 3 / Вывод сообщения на экран о количестве юнитов (I2S не работает в ИИ)

Svintus, плохая альтернатива, эта функция может выводить только числа от 0 до 9, если твоих рабочих будет например 14, она выведет return ""
11

» WarCraft 3 / Есть ли возможность развернуть юнита вокруг своей оси?

Принятый ответ
Да, но только в редакторе объектов, максимальной угол крена и максимальный угол поворота нужно установить в отрицательные значения, функции
SetWidgetYaw()
SetWidgetPitch()
SetWidgetRoll()
SetUnitYaw()
SetUnitPitch()
SetUnitRoll() из UjAPI - НЕ РАБОТАЮТ, проверял сейчас
И функции из мемхака не работали (проверял давно)
Загруженные файлы
11

» WarCraft 3 / В какие моменты имя функции конвертируется в число?

Принятый ответ
В любые моменты где другая функция, пытается принять имя функции как число
11

» WarCraft 3 / Функция сложения или вычитания шансов по Формуле убывающей полезности из Dota 2

quq_CCCP, Тут я так понял шансы считаются,
set GR1 = GR1 * ( 1 - ( 0.05 + 0.05 * SUI ) ) 
но это какая-то узконаправленная функция, чё с ней делать то
11

» WarCraft 3 / Функция сложения или вычитания шансов по Формуле убывающей полезности из Dota 2

Makeba, Отрицательные вероятности нужны, чтобы юнит с вероятностями ничего не получил, при получении предмета/баффа/способности, добавляющие ему вероятности
11

» WarCraft 3 / Функция сложения или вычитания шансов по Формуле убывающей полезности из Dota 2

nazarpunk, Нету такого в интернете (скорее всего есть, но я незнаю где), я сам вывел эти формулы и написал по ним код
11

» WarCraft 3 / Функция сложения или вычитания шансов по Формуле убывающей полезности из Dota 2

nazarpunk, не, это просто пример с неудачными числами...
Есть герой со способностью "Снижает шанс уклонения врага на 75% на 20 секунд", допустим он применил её на врага
У врага станет -75% Уклонения, если враг в течении этих 20 секунд решит, например закупить предмет, дающий ему 50% уклонения, то уклонение врага станет равно = -50% и враг всё ещё не сможет уклоняться
Есть герой со способностью "Снижает шанс уклонения врага на 75% на 20 секунд", допустим он применил её на врага
У врага станет -75% Уклонения, если враг в течении этих 20 секунд решит, например закупить предмет, дающий ему 90% уклонения, то уклонение врага станет равно = 60% и враг будет уклоняться гораздо меньше, чем должен
Вот такое у меня тут
11

» WarCraft 3 / Функция сложения или вычитания шансов по Формуле убывающей полезности из Dota 2

Makeba, Да всё просто, типо...
Есть герой со способностью "Снижает шанс уклонения врага на 75% на 20 секунд", допустим он применил её на врага
У врага станет -75% Уклонения, если враг в течении этих 20 секунд решит, например закупить предмет, дающий ему 75% уклонения, то уклонение врага станет равно = 0 и враг всё ещё не сможет уклоняться
11

» WarCraft 3 / Функция сложения или вычитания шансов по Формуле убывающей полезности из Dota 2

Makeba, Так одна формула это если их просто складывать, а если нужно вычитать или тем более чтобы оно в минус нормально уходило, нужно несколько формул (по крайней мере я не знаю как это сделать одной)
Вот там это всё и проверяется
11

» WarCraft 3 / Что вообще делает в триггере Initially on?

TeX13, EnableTrigger включает Триггер, может включить как минимум тот что был выключен функцией DisableTrigger
На счёт изначально выключенныъ в редакторе, я не знаю, врядтли, их же даже на ошибки не проверяет перед стартом
11

» WarCraft 3 / Функция сложения или вычитания шансов по Формуле убывающей полезности из Dota 2

Makeba, changing_chance это текущий шанс (например у нас сейчас шанс уклонения 50%)
change это насколько изменить шанс (например если у нас сейчас шанс уклонения 50% и change = 50%, то 50% + 50% = 75%)
Эти 75% и вернуться
function RecalculateChance takes real changing_chance, real change returns real
        local real new_changing_chance = 0
        if change >= 0 then //+ Шансы
            if changing_chance >= 0 and changing_chance >= change
                new_changing_chance = changing_chance+((100 - changing_chance)/100*change)
                //60+((100 - 60)/100*50 = 80
                //80+((100 - 80)/100*80 = 96
            elseif changing_chance >= 0 and changing_chance < change
                new_changing_chance = changing_chance+((100 - changing_chance)/100*change)
                //50+((100 - 50)/100*60 = 80
                
            elseif changing_chance < 0 and -changing_chance >= change
                changing_chance = -changing_chance
                new_changing_chance = -(100 - ((100 - changing_chance) / (1-(change/100))))
                //100 - (100 - 80) / (1 - 50/100) = 60
            elseif changing_chance < 0 and -changing_chance < change
                changing_chance = -changing_chance
                new_changing_chance = 100 - (100 - change) / (1 - changing_chance/100)                
                //-(100 - ((100 - 80) / (1-(50/100)))) = -60
            endif
        else //Минус шансы
            change = -change
            if changing_chance >= 0 and changing_chance >= change
                new_changing_chance = 100 - ((100 - changing_chance) / (1-(change/100)))
                //100 - ((100 - 80) / (1-(50/100))) = 60
            elseif changing_chance >= 0 and changing_chance < change
                new_changing_chance = -(100 - (100 - change) / (1 - changing_chance/100)) 
                //-(100 - (100 - 80) / (1 - 50/100)) = -60
                
            elseif changing_chance < 0 and -changing_chance >= change
                changing_chance = -changing_chance
                new_changing_chance = -(changing_chance -((100-changing_chance) * (1/(1-(change/100))) - (100-changing_chance)))
                //80-((100 - 80)/100*60 = 50
                
                //1-(60/100) = 0.4 = 80 -((100-80) * (1/0.4) - (100-80))
                //(1-(60/100)) = 0.4 = 80 -((100-80) * (1/(1-(60/100))) - (100-80))
                //-(90 -((100-90) * (1/(1-(50/100))) - (100-90))) = -80
            elseif changing_chance < 0 and -changing_chance < change
                changing_chance = -changing_chance
                new_changing_chance = 100 - (100 - change) / (1 - changing_chance/100)
                //100 - (100 - 80) / (1 - 50/100) = 60
            endif
        endif
        
        return new_changing_chance
    endfunction
11

» WarCraft 3 / Функция сложения или вычитания шансов по Формуле убывающей полезности из Dota 2

ScorpioT1000, Ну блин, ставить значения >= 100 Бессмысленно, нужна ли тут проверка или дописать комментай типа не ставите значния >= 100?
11

» WarCraft 3 / Что вообще делает в триггере Initially on?

Принятый ответ
Действия данного Триггера произойдут во время инициализации карты