Оригинальная компания работающая над варом по моему только близзарды. Не уметь запускать карты это конечно пик познания в этом мире. Запускаешь игру - один игрок - сражения - выбираешь карту из списка - начать игру
м.. нужно делать бд, сохранять в юнита типы предметов, удалять их и добавлять заново, в моём примере нет оверхеда, и если предметов больше вместимости, они не появятся потом в магазине, но я думаю ты уже понял принцип и сам всё сделаешь
МрачныйВорон, это навоз, такое говно только я могу высрать)
я и искал алгоритм, это можно по комментариям в коде видеть)
вот основные ссылки которыми я пользовался
Meddin, что тут сложного, просто в таймер сохрани кастера, таргета и время, периодическим проверяешь что приказ у кастера равен приказу абилки, отнимаешь от времени периодичность таймера, когда оно становится нулевым, взрываешь цель, если приказ сменился, а время нет - значит сбили, опускаешь таргета
После применения способности, игра просто доходит до ожидания, вызывает его и все. Можно ждать бесконечно, остальной код не будет исполнен.
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
не хватает джассера-утопленника, он находится на самом дне (или почти), но отчаянно хочет выбраться наружу сквозь тонны существующего контента, каждая его попытка опускает его всё глубже и глубже на дно, он понимает, видит и осознаёт что всё уже есть, всё готово и для него больше нигде нет места
так присвой просто каждому рычагу его номер и создай темповую целочисленную, при активации правильного рычага плюсуй к целочисленной +1, если номер рычага не соответствует темповой целочисленной, значит последовательность нарушена, восстановить все рычаги и обнулить переменную, если переменная больше или равна 2 (отсчёт от нуля), значит все рычаги активированы, загадка решена и можно открывать ворота
банальная логика
» WarCraft 3 / Блокировка получения опыта
» Администрация XGM / склейка сообщений
» WarCraft 3 / Канал, таймер и анимация. Адская смесь
» WarCraft 3 / Warcraft III Frozen Throne компании
» WarCraft 3 / Warcraft III Frozen Throne компании
» WarCraft 3 / Warcraft III Frozen Throne компании
» WarCraft 3 / Несколько свойств в одной способности
» WarCraft 3 / Как вытащить стандартный загрузочный экран
» WarCraft 3 / Триггерный магазин в 1.26
» WarCraft 3 / Несколько свойств в одной способности
» Блог им. rsfghd / навоз
я и искал алгоритм, это можно по комментариям в коде видеть)
вот основные ссылки которыми я пользовался
» WarCraft 3 / Канал, таймер и анимация. Адская смесь
» Блог им. rsfghd / навоз
» WarCraft 3 / Изменения процесса сборки предмета в Moo Moo
» WarCraft 3 / Канал, таймер и анимация. Адская смесь
» WarCraft 3 / Как забиндить предметы?
» WarCraft 3 / Как забиндить предметы?
» WarCraft 3 / Как сделать юнита неубиваемым?
» WarCraft 3 / Как вытащить стандартный загрузочный экран
» WarCraft 3 / Как сделать циклом открытие ворот
» gox69 / Статья о джассерах
» WarCraft 3 / Как сделать циклом открытие ворот
банальная логика
» Администрация XGM / непросматриваемый ресурс
» Администрация XGM / непросматриваемый ресурс