28

» Администрация XGM / склейка сообщений

ScorpioT1000, xgm.guru/p/wc3/Blokirovka-polucheniya-opyta-wGY
p.s. скрин без условия сравнения юнита (почему то при редактировании вопроса остается старый скрин)
28

» WarCraft 3 / Warcraft III Frozen Throne компании

ZuNkeN, правой кнопкой мыши пробовал по файлу нажать? вот там должна быть надпись Extract
28

» WarCraft 3 / Warcraft III Frozen Throne компании

Оригинальная компания работающая над варом по моему только близзарды. Не уметь запускать карты это конечно пик познания в этом мире. Запускаешь игру - один игрок - сражения - выбираешь карту из списка - начать игру
28

» WarCraft 3 / Как вытащить стандартный загрузочный экран

короче вот
пути ты сам видишь, юзай любую программу способную работать с архивами и открывай вар3.мпк
Загруженные файлы
28

» WarCraft 3 / Триггерный магазин в 1.26

м.. нужно делать бд, сохранять в юнита типы предметов, удалять их и добавлять заново, в моём примере нет оверхеда, и если предметов больше вместимости, они не появятся потом в магазине, но я думаю ты уже понял принцип и сам всё сделаешь
Загруженные файлы
28

» WarCraft 3 / Несколько свойств в одной способности

ну возьми в зависимость конкретную способность из списка, при её изучении/повышении уровня, добавь/меняй уровень всем остальным абилкам

чтобы спрятать абилки, можно либо в спеллбук засунуть, а его заблочить, либо дать им координаты 0, -11, второе может привести к рандомным багам
28

» Блог им. rsfghd / навоз

МрачныйВорон, это навоз, такое говно только я могу высрать)
я и искал алгоритм, это можно по комментариям в коде видеть)
вот основные ссылки которыми я пользовался
28

» WarCraft 3 / Канал, таймер и анимация. Адская смесь

Meddin, что тут сложного, просто в таймер сохрани кастера, таргета и время, периодическим проверяешь что приказ у кастера равен приказу абилки, отнимаешь от времени периодичность таймера, когда оно становится нулевым, взрываешь цель, если приказ сменился, а время нет - значит сбили, опускаешь таргета
28

» WarCraft 3 / Канал, таймер и анимация. Адская смесь

После применения способности, игра просто доходит до ожидания, вызывает его и все. Можно ждать бесконечно, остальной код не будет исполнен.
TriggerSleepAction нельзя вызвать в кондишенах, только в действиях. Либо юзай экзекют, либо не юзай вейт

Результат тот же, до кода, следующего после цикла, исполнение не доходит.
Ты таким образом себе оп лимит сломал, ведь в первую же долю секунды цикл обрабатывает 25к+ действий

Дредлорда как колбасило при касте, так и колбасит, анимацию он отказывается адекватно
Таймером создаёшь нулевую задержку, устанавливаешь нужную анимацию, а дальше уже либо периодиком проверяешь приказ и отменяешь анимацию, либо через время просто отменяешь анимацию. Это основы гуи, не то что джасс)

вот так решается первый вариант
function InitTrig_Annihilation_Conditions takes nothing returns boolean
    if (GetUnitAbilityLevel(GetSpellAbilityUnit(), udg_Annihilation) > 0) then
        call ExecuteFunc( "AnnihilationActions" )
    endif

    return false
endfunction
и так второй
function ExecuteCast takes nothing returns nothing
    local timer spellDurationTimer = GetExpiredTimer()
    local integer timerHandle = GetHandleId(spellDurationTimer)
    local unit target = LoadUnitHandle(udg_Hash, timerHandle, 0)
    local unit caster = LoadUnitHandle(udg_Hash, timerHandle, 1)

    call ResetUnitAnimation(caster)
    call SetUnitExploded(target, true)
    call KillUnit(target)
    call DestroyTimer(spellDurationTimer)
    set spellDurationTimer = null
endfunction

function SetAnim takes nothing returns nothing
    local timer t = GetExpiredTimer( )
    
    call SetUnitAnimation( LoadUnitHandle( H, GetHandleId( t ), 1 ), "channel" )
    call TimerStart(t, 5, false, function ExecuteCast)
    
    set t = null
endfunction

function AnnihilationActions takes nothing returns nothing
    local unit target = GetSpellTargetUnit()
    local unit caster = GetSpellAbilityUnit()
    local timer spellDurationTimer = CreateTimer()
    local integer timerHandle = GetHandleId(spellDurationTimer)

    call SaveUnitHandle(udg_Hash, timerHandle, 0, target)
    call SaveUnitHandle(udg_Hash, timerHandle, 1, caster)
    call SetUnitAnimationByIndex(caster, 11)
    call SetUnitZ(target, 400)
    
	call TimerStart(spellDurationTimer, 0.00, false, function SetAnim)
	
    set target = null
    set caster = null
    set spellDurationTimer = null
endfunction
28

» WarCraft 3 / Как забиндить предметы?

МрачныйВорон, а если сделать кастомный прицел? с отслеживанием юнитов, сменой фрейма мышки и т.д. и т.п.
28

» WarCraft 3 / Как вытащить стандартный загрузочный экран

стандартных загрузочных экранов хоть жопожуй, какой конкретно тебе надо? их можно вытащить само собой, они в виде пазла
28

» gox69 / Статья о джассерах

не хватает джассера-утопленника, он находится на самом дне (или почти), но отчаянно хочет выбраться наружу сквозь тонны существующего контента, каждая его попытка опускает его всё глубже и глубже на дно, он понимает, видит и осознаёт что всё уже есть, всё готово и для него больше нигде нет места
28

» WarCraft 3 / Как сделать циклом открытие ворот

так присвой просто каждому рычагу его номер и создай темповую целочисленную, при активации правильного рычага плюсуй к целочисленной +1, если номер рычага не соответствует темповой целочисленной, значит последовательность нарушена, восстановить все рычаги и обнулить переменную, если переменная больше или равна 2 (отсчёт от нуля), значит все рычаги активированы, загадка решена и можно открывать ворота
банальная логика