Способ реализации:
Наработка для тех кто хочет мазаться гуями не вникая в страшный жасс.
Вставьте этот код в шапку карты и замените переменную хеша в функции HASH() на свой.
function HASH takes nothing returns hashtable
    return udg_HASH //замените переменную на ваш хеш
endfunction 

function RemoveEffect takes nothing returns nothing
    local timer t = GetExpiredTimer()
    call DestroyEffect(LoadEffectHandle(HASH(), GetHandleId(t),'efct'))
    call FlushChildHashtable(HASH(), GetHandleId(t))
    call DestroyTimer(t)
    set t = null
endfunction
function TimerRemoveEffect takes effect ef, real duration returns nothing  
    local timer t = CreateTimer()
    call SaveEffectHandle(HASH(), GetHandleId(t),'efct', ef)
    call TimerStart(t, duration, false, function RemoveEffect)
    set t = null
endfunction
После создания эффекта в гуях пропишите личный сценарий с кодом call TimerRemoveEffect(bj_lastCreatedEffect,5), где "5" - задержка перед удалением эффекта.
`
ОЖИДАНИЕ РЕКЛАМЫ...
4
Нет, ну использовать функцию, которая возвращает переменную хэш-таблицы, вместо того, чтобы использовать непосредственно саму переменную, может только настоящий гений мысли и отец демократии.
13
MACOH, Дааа как классно все же менять кучу раз переменную хеша на свою, особенно в больших наработках, это намного лучше чем изменить ОДНУ строчку в одной функции
4
IzobretatelBoom, нет, просто в инструкции по установке написать: "Откройте вкладку с триггерами и зайдите в раздел "Переменные" (иконка - жёлтый крестик сверху). Создайте новую переменную типа хэш-таблица и назовите её HASH. Это лучше, чем утекающие гуи карты нагружать мусорной функцией и двумя обращениями к ней.
Ну и по-хорошему такая система делается на одном таймере.
13
jasonrus96, Ну так у меня в одну строчку и получилось, покажи свой способ
1
В былые времена использовали отдельный триггер DestroyEffect с действиями:
local effect e=bj_lastCreatedEffect
call WaitActions(udg_TIME)
call DestroyEffect(e)
set e=null
А вызывали так:
call AddSpecialEffect(...)
set udg_TIME=5.
call ExecuteTrigger(gg_trg_DestoyEffect)
Одна бяда была - функция ждать. Он не точный и при паузе продолжал работать. Но пользователю GUI было на это плевать.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.