32

» WarCraft 3 / Перезарядка способности

Никак, кулдаун индикатор не умеет отображать кулдауны выше 300 секунд. То что вы называете кулдауном, на самом деле отдельный обьект - кулдаун индикатор, записать способности время перезарядки то можно любое, а вот кулдаун индикатор это отдельная модель, которая рисует визуальный кулдаун на иконке, из за жлобства близардов, только 300 сек.
32

» WarCraft 3 / Помогите вытащить файл war3map.w3u

Деслк оптимизацию нужно проводить, нет там ничего в твоем w3u, и в целом зачем?? У тебя там будут ошибки и дота фрога посыпется, так что работай с слк таблицами.
32

» WarCraft 3 / Помогите вытащить файл war3map.w3u

w3u - в редакторе и правится, но в доте этой версии давно слк оптимизация и все с слк таблицах, включая пути к моделям.
32

» WarCraft 3 / Как реализовать перебор группы в площади треугольника ? - [Jass]

Если это абилка по типу волны, просто строем биссектрису и движем по ней перебор в радиусе, радиус увеличиваем с каждым шагом.
32

» WarCraft 3 / Звуки и музыка через триггеры в синематеках WarCraft III

Ну так разбирай стандартные синематики, те же конфетные войны, там есть опция отключить стандартные звуки и проигрывать свои, кодом в определенный момент.
32

» WarCraft 3 / Альтернатива москитам

А чем стандартный AFRZ ледяных змеев не подходит, если настроить то работает и на юнитов, не только здания.
32

» WarCraft 3 / Слияние двух war3map.j в один

Вопрос зачем? Это скрипт, их априори сливать нелья, тебе не смущает наличие обьектов в каждой карте и их связь со скриптом. Не говоря про то что, а как будет работать спавн юнитов, работа триггерных заклинаний если они на 1 и тоже ID будут срабатывать?
32

» WarCraft 3 / Превышение лимита скорости

Не так не получится, + ты забываешь про обзор, туман войны обновляется раз в 0.4 сек, у тебя юнит убежит и в темноте потеряется, прежде чем вокруг него появится обзор.
Не говоря про просчеты пути. Так что никак, только как инвалид - подталкивать юнита по понемногу .
32

» WarCraft 3 / рестарт карты

Darkmen500, просто апгрейды делаем кастомные, продаем юнитов в здании с описанием и иконкой апгрейда, как только он построиться - тут же удаляем его, делаем недоступным для найма, а сам апгрейд делаем вручением способностей.
32

» WarCraft 3 / Небольшой вопрос касательно хэш-таблиц

nazarpunk, Оптимизаторы вроде давно умеют StringHash заменять на уникальный ключ, при оптимизации карты. Не вижу проблемы.
32

» WarCraft 3 / Ищу карту

Случаем не в виде буквы Х были лайны, помню такую карту...
32

» WarCraft 3 / Насколько быстро выполняется if ? - [Jass]

Зачем, почему не взять просто GetHandleId от истекшего таймера, и судя по названию муи - то таймеров может быть много, хендл ты вернешь первого сработавшего. Какая то несусветная хрень, напиши сразу че делать собрался, то не понимаю подобных решений.
32

» WarCraft 3 / Про перенос warhammer 40000: Horus heresy в warcraft III

Эх были раньше норм такие карты с импортом, с кодом, прям огонь по вахе, щяс не найдешь уже, очень бы было неплохо оттуда взяь наработки.
32

» WarCraft 3 / Способности и алгоритмы на заказ

Chongoyuto, блин тебе мб из доты дать код, он примитивный, весь эффект дает soulburn файрлорда, а урон отдельный триггер, просто себе скопировал и можно не вникать.
32

» WarCraft 3 / Проседает фпс. Как лечить?

Ну просадки фпс будут на любом патче если ты вдруг увидишь кучу обьектов которых до этого не видел, т.к движок начнет подгружать их в память, т.к игра однопоток - побоку скока там у вас ядер и прочего дерьма, для игры всегда есть 1 ядро и 512мб озу, и точка. Реальный рост фпс будет зависить лишь от частоты ядра, больше - быстрее. Разумеется карты сделанные кривыми руками подлагивают, иногда так конкретно, если вспомнить всякие гринт тд или тот же легион тд. Ну и в целом игра заточена под виндовс и директ их, на котором она вышла. Близарды так и не переписали рендер движка по нормальному, и поэтому в рефаунде даже усугубилось всё.
Все стандартные стомп способности вызывают просадку фпс, причем чем больше карта - тем сильнее, это баг - т.к один из кодеров решил что шибко долго искать все декрации в радиусе, лучше целиком в цикле перебрать весь их класс чтобы пересчитать им высоту над рельефом, когда деформируется земля - пересчитываются высоты всех стоящих на ней обьектов - чтобы они не висели в воздухе. Подобное было и в сравнительно современных играх.
32

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

// 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 -это вероятность попасть по юниту, перечисляются всё источники, после идёт округление до 5, т.у у пассивки шаг промахов 5%, добивать до 1% смысла нет.