t1 = CreateTimer()
cot4 = function buran
if GetUnitAbilityLevel(u1,'A01E') > 0 and attack == normal and damage == d[4] then
call UnitAddAbility(u,'A01G')
call UnitAddAbility(u,'A01F')
call TimerStart(t1,1,true,cot4)
call SaveUnitHandle(Hash,GetHandleId(t1),1,u)
set dummy[3] = CreateUnit(pu1,'u00E',5082.9,8169.9,0)
call UnitApplyTimedLife(dummy[3],'BTLF',3.00)
call IssueTargetOrder(dummy[3],"curse",u)
endif
добавляются способности но вывожу дебагом не стартует таймер что делать

Extremator:
Ельнур:
заработало с даммиком спасибо теперь не буду юзать +1 глобалы в таймерах
Ну просто если у тебя будет использоваться эта же переменная в другом потоке, то будет идти её же перезапись (пишешь в одно место данные из разных источников).
Если хочешь юзать число, то либо бей массив, либо записывай это число в свой хэш (так же, как записываешь юнита).
да я понял что там локальная таймер создается отдельно на каждого вот и глобальная путается
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
7
таймер не так работает чтоли я сделал проверку если глобальная интегер = глобальная интегер + 1 равно 13 то уничтожить таймер, я так понял если поставить галку true он же каждые секунд по 1 должен добавляться? когда убрал глобальная интегер = глобальная интегер +1 то отображает

даже поставил false все равно не отображает если не убрать глобальный интегер
7
Феникс:
Ельнур, где сама функция buran? В ней весь смысл
выше
function buran takes nothing returns nothing
local timer t1 = GetExpiredTimer()
local unit u = LoadUnitHandle(Hash,GetHandleId(t1),1)
local group g = CreateGroup()
local boolexpr filterfaua = Condition(function removebuff)
local code cot = function filterremovebuff
set Buransec = Buransec + 1
if GetUnitAbilityLevel(u,'B006') > 0 then
call SetUnitAbilityLevel(u,'A01G',GetUnitAbilityLevel(u,'A01G')+1)
call SetUnitAbilityLevel(u,'A01F',GetUnitAbilityLevel(u,'A01F')+1)
endif
call DebugMsg("true")
if Buransec == 13 then
call GroupEnumUnitsInRange(g,-139.0,-1811.5,99999999999,filterfaua)
call ForGroup(g,cot)
endif
if GetUnitAbilityLevel(u,'A01G') > 0 then
else
set Buransec = 0
call FlushChildHashtable(Hash,GetHandleId(t1))
call DestroyTimer(t1)
endif
set cot = null
call DestroyBoolExpr(filterfaua)
set filterfaua = null
set u = null
call GroupClear(g)
call DestroyGroup(g)
set g = null
set t1 = null
endfunction
когда я убираю Buransec то все работает

Феникс:
Ельнур, где сама функция buran? В ней весь смысл
даммику дать таймер 13 сек и через него отлавливать?)

вот почему говорят даммики и таймера)

заработало с даммиком спасибо тепер ьне буду юзать +1 глобалы в таймерах
26
Ельнур:
заработало с даммиком спасибо теперь не буду юзать +1 глобалы в таймерах
Ну просто если у тебя будет использоваться эта же переменная в другом потоке, то будет идти её же перезапись (пишешь в одно место данные из разных источников).
Если хочешь юзать число, то либо бей массив, либо записывай это число в свой хэш (так же, как записываешь юнита).
7
Extremator:
Ельнур:
заработало с даммиком спасибо теперь не буду юзать +1 глобалы в таймерах
Ну просто если у тебя будет использоваться эта же переменная в другом потоке, то будет идти её же перезапись (пишешь в одно место данные из разных источников).
Если хочешь юзать число, то либо бей массив, либо записывай это число в свой хэш (так же, как записываешь юнита).
да я понял что там локальная таймер создается отдельно на каждого вот и глобальная путается
Принятый ответ
26
Ельнур:
да я понял что там локальная таймер создается отдельно на каждого вот и глобальная путается
А причём тут тот таймер?
Ты его создаёшь и удаляешь своевременно.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.