ScorpioT1000, Получается, я могу использовать одну глобальную переменную, условно "Кастер". И допустим, примерно в одно и тоже время разные игроки применят свои способности, в которых запустятся периодические таймеры. И в каждой способности каждого игрока будут прогонять поочередно эту переменную "Кастер"? И никаких нестыковок же не будет?
вообще-то я спрашивал про то, что если например у меня будет 1 фильтр (пусть будет 1 булэкспр) и 1 глобальная переменная условно "Кастер". И если её будут использовать все игроки для фильтра юнитов (не враг ли этот фильтруемый юнит к нам) в многократном таймере - то не будет ли каких либо проблем, вроде в одно и тоже время 2 и более игроков будут использовать эту самую переменную "кастер". Грубо говоря из MUI, не превратиться ли это в "Не MUI"?
ScorpioT1000, Не дописал свой вопрос более точно)
Если примерно такой:
globals
unit Caster = null //Эту переменную используют все
endglobals
function My_Filter takes nothing return boolean
return IsUnitEnemy(GetFilterUnit(), GetOwningPlayer(Caster)) //Вот она!
endfunction
function Two takes nothing return nothing
local timer t = GetExpiredTimer()
local integer id = GetHandleId(t)
local unit caster = LoadUnitHandle(Hash, id, 1)
set Caster = caster //Вот она!
//Тут какие-то действия с группой
set t = null
set caster = null
endfunction
function One takes nothing return nothing
local unit caster = GetTriggerUnit()
local timer t = CreateTimer()
local integer id = GetHandleId(t)
call SaveUnitHandle(Hash, id, 1, caster)
call TimerStart(t, 0.035, true, function Two)
set caster = null
set t = null
endfunction
ScorpioT1000, Получается, я могу использовать одну глобальную переменную, условно "Кастер". И допустим, примерно в одно и тоже время разные игроки применят свои способности, в которых запустятся периодические таймеры. И в каждой способности каждого игрока будут прогонять поочередно эту переменную "Кастер"? И никаких нестыковок же не будет?
nazarpunk, Хм, понятно, получается если я возьму в скобки - это значит уже другой уровень?
Ну тогда все более менее понятно.
Про уровни я вот не знал)))
MpW, Знаете, тоже так пробовал, выдает "NO" без скобок ))
local integer a = 1
local integer b = 1
local integer c = 1
if c == 1 or a == 0 and b == 0 then
call BJDebugMsg("YES")
else
call BJDebugMsg("NO")
endif
nazarpunk, Если не совмещать And и Or, то нужно делать вот так:
local integer a = 1
local integer b = 1
local integer c = 1
if a == 0 and b == 0 then
call BJDebugMsg("YES")
elseif c == 1 then
call BJDebugMsg("YES")
else
call BJDebugMsg("NO")
endif
? Или как?
Просто у меня вместо call BJDebugMsg("YES") может стоят очень много действии и все это копипастить на elseif кажется не красиво)
function Trig_One_Actions takes nothing returns nothing
local integer a = 1
local integer b = 1
local integer c = 1
if a == 0 and b == 0 or c == 1 then
call BJDebugMsg("YES")
else
call BJDebugMsg("NO")
endif
endfunction
Extremator, В данном конкретном случае, мне нужно запустить этот таймер через "триггер А", а потом навсегда выключить этот "триггер А". И периодический запускать таймер через другой "триггер Б". Если коротко, "триггер А" первично запускает таймер, а дальше за её повторные запуски берется "триггер Б".
может стоит уйти от события истечения таймера и указать нужнкю выполняемую функцию по его окончанию, мм?
В целом так тоже можно. Тогда все придется сделать одним триггером. И поставить переключатель на входе в триггер (ложь, истина или 1, 0) и который после первого в хода в триггер больше никогда не позволит войти в него снова. А внутри триггера таймер будет играть сам по себе.
В общем, я понял почему изначально мой глобальный таймер не работал. Нужно было создать его при инициализации триггера, чего я не знал)))
Я думал что глобальный таймеры тоже можно как и другие типы, просто объявить и создать где мне удобно и все)))
Hate, Поразительно) все работает, если начать так:
function TimerGoActions takes nothing returns nothing
call TimerStart(T, 5, false, null) //Запускаю таймер
endfunction
function InitTrig_TimerGo takes nothing returns nothing
set gg_trg_TimerGo = CreateTrigger()
set T = CreateTimer()
call TriggerRegisterTimerEventSingle(gg_trg_TimerGo, 0.00) //Через 0 сек
call TriggerAddAction(gg_trg_TimerGo, function TimerGoActions)
endfunction
Хмм. Получается, глобальный таймер нужно создавать только при инициализации триггера? А другие типы, например группы (CreateGroup()), можно в любом месте?
Ред. Joma
» WarCraft 3 / Как правильно использовать boolexpr?
» WarCraft 3 / Как правильно использовать boolexpr?
Если примерно такой:
» WarCraft 3 / Как правильно использовать boolexpr?
» WarCraft 3 / Как правильно использовать boolexpr?
» WarCraft 3 / Как правильно использовать boolexpr?
Ред. Joma
» WarCraft 3 / Как правильно использовать boolexpr?
» WarCraft 3 / Как правильно использовать boolexpr?
Ред. Joma
» WarCraft 3 / Как изменить максимальное здоровье юниту?
Ред. Joma
» WarCraft 3 / Как изменить максимальное здоровье юниту?
» WarCraft 3 / Как удалить последнюю созданную точку?
» WarCraft 3 / поомогите разобраться с тригером для ауры
» WarCraft 3 / Способность "безумие" и молчанка
» WarCraft 3 / Способность "безумие" и молчанка
» WarCraft 3 / Как правильно расставить скобки?
Ну тогда все более менее понятно.
Про уровни я вот не знал)))
» WarCraft 3 / Как правильно расставить скобки?
» WarCraft 3 / Как правильно расставить скобки?
Просто у меня вместо call BJDebugMsg("YES") может стоят очень много действии и все это копипастить на elseif кажется не красиво)
» WarCraft 3 / Как правильно расставить скобки?
Но если я поставлю скобки, так:
» WarCraft 3 / Как правильно расставить скобки?
Ред. Joma
» WarCraft 3 / Глобальный таймер
Я думал что глобальный таймеры тоже можно как и другие типы, просто объявить и создать где мне удобно и все)))
» WarCraft 3 / Глобальный таймер
» WarCraft 3 / Глобальный таймер
Хмм. Получается, глобальный таймер нужно создавать только при инициализации триггера? А другие типы, например группы (CreateGroup()), можно в любом месте?
» WarCraft 3 / Глобальный таймер
Где-то уже другой триггер:
Ред. Joma
» WarCraft 3 / Глобальный таймер
» Castle Revival / Полный цикл создания RPG персонажа на уровне Diablo и POE
» WarCraft 3 / Не разблокируется способность.
Логическая ошибка. Просто бред.