6

» WarCraft 3 / Способность "безумие" и молчанка

OVOgenez, проверил, поставил уровень на 2 и манакост 0 - сало все равно не работает на "безумие". Получается это зависит от манакоста
6

» WarCraft 3 / Как правильно расставить скобки?

nazarpunk, Хм, понятно, получается если я возьму в скобки - это значит уже другой уровень?
Ну тогда все более менее понятно.
Про уровни я вот не знал)))
6

» WarCraft 3 / Как правильно расставить скобки?

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
6

» WarCraft 3 / Как правильно расставить скобки?

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 кажется не красиво)
6

» WarCraft 3 / Как правильно расставить скобки?

Joma, здесь тоже скобки не нужны. Ибо значения a, b, c константны.
Интересно, он мне выдает "NO".
Но если я поставлю скобки, так:
if (a == 0 and b == 0) or c == 1 then
Тогда, выдает "YES"
6

» WarCraft 3 / Как правильно расставить скобки?

Вот другой пример:
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
6

» WarCraft 3 / Глобальный таймер

Extremator, В данном конкретном случае, мне нужно запустить этот таймер через "триггер А", а потом навсегда выключить этот "триггер А". И периодический запускать таймер через другой "триггер Б". Если коротко, "триггер А" первично запускает таймер, а дальше за её повторные запуски берется "триггер Б".

может стоит уйти от события истечения таймера и указать нужнкю выполняемую функцию по его окончанию, мм?
В целом так тоже можно. Тогда все придется сделать одним триггером. И поставить переключатель на входе в триггер (ложь, истина или 1, 0) и который после первого в хода в триггер больше никогда не позволит войти в него снова. А внутри триггера таймер будет играть сам по себе.
В общем, я понял почему изначально мой глобальный таймер не работал. Нужно было создать его при инициализации триггера, чего я не знал)))
Я думал что глобальный таймеры тоже можно как и другие типы, просто объявить и создать где мне удобно и все)))
6

» WarCraft 3 / Глобальный таймер

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()), можно в любом месте?
6

» WarCraft 3 / Глобальный таймер

globals
    timer T = null
endglobals
function TimerGoActions takes nothing returns nothing
    set T = CreateTimer()
    call TimerStart(T, 5, false, null)  //Запускаю таймер
endfunction

function InitTrig_TimerGo takes nothing returns nothing
    set gg_trg_TimerGo = CreateTrigger()
    call TriggerRegisterTimerEventSingle(gg_trg_TimerGo, 0.00)  //Через 0 сек
    call TriggerAddAction(gg_trg_TimerGo, function TimerGoActions)
endfunction

Где-то уже другой триггер:
function TimerEndActions takes nothing returns nothing
    call DisplayTextToForce(GetPlayersAll(), "Hello world!")
endfunction

function InitTrig_TimerEnd takes nothing returns nothing
    set gg_trg_TimerEnd = CreateTrigger()
    call TriggerRegisterTimerExpireEvent(gg_trg_TimerEnd, T)    //Таймер истекает
    call TriggerAddAction(gg_trg_TimerEnd, function TimerEndActions)
endfunction
6

» WarCraft 3 / Глобальный таймер

Extremator, Примерно, вот так пытаюсь сделать как в гуи)
Загруженные файлы
6

» WarCraft 3 / Не разблокируется способность.

Это просто смешно) Нашел ошибку, которую сам же и совершил) 😃
Логическая ошибка. Просто бред.
6

» WarCraft 3 / Не разблокируется способность.

Extremator, В целом так и делаю. Забыл в начале написать.
В целом я блокирую 8 способностей. И разблокирую 4 из них. И одна не отображается. И так с несколькими героями. У некоторых героев все ОК, у некоторых нет.
В общем создаю карту где каждый игрок выбирает 4 способности из 8 возможных.
Загруженные файлы
6

» WarCraft 3 / Не разблокируется способность.

Extremator, Да, способность есть. Проверил через "Level of Ability for Unit > 0" с выводом текста на экран "YES".
Ссылаюсь на своего юнита: массив[Player number of (Triggering player)].
Пробовал ссылаться и на "игрок красный", например.
Я подумал может где-то есть баг?