5

» WarCraft 3 / вирусная моделька?

Это reforged? Ты не менял lua на jass случайно в настройках карты?
Нет, такое не делал)
5

» WarCraft 3 / Вместить 8 абилок

EugeAl, не подскажешь, где найти этот файл command func txt? В MPQ архивах особо не шарю. Открыл карту с помощью Ladik MPQ Editor, но что-то не нашел такого файла.
5

» WarCraft 3 / Naruto Wild Hurricane Chronicles

Ландшафт именно красивый на версии 0.3, где используется основа "затонувший город"
5

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

nazarpunk, Вообще-то я ни это имел в виду.
ScorpioT1000, Получается, я могу использовать одну глобальную переменную, условно "Кастер". И допустим, примерно в одно и тоже время разные игроки применят свои способности, в которых запустятся периодические таймеры. И в каждой способности каждого игрока будут прогонять поочередно эту переменную "Кастер"? И никаких нестыковок же не будет?
вообще-то я спрашивал про то, что если например у меня будет 1 фильтр (пусть будет 1 булэкспр) и 1 глобальная переменная условно "Кастер". И если её будут использовать все игроки для фильтра юнитов (не враг ли этот фильтруемый юнит к нам) в многократном таймере - то не будет ли каких либо проблем, вроде в одно и тоже время 2 и более игроков будут использовать эту самую переменную "кастер". Грубо говоря из MUI, не превратиться ли это в "Не MUI"?
5

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

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
То, не проканает?
5

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

ScorpioT1000, Получается, я могу использовать одну глобальную переменную, условно "Кастер". И допустим, примерно в одно и тоже время разные игроки применят свои способности, в которых запустятся периодические таймеры. И в каждой способности каждого игрока будут прогонять поочередно эту переменную "Кастер"? И никаких нестыковок же не будет?
5

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

Или вообще не дай боже гуй-муй.
Разве на ГУИ можно использовать boolexpr? Нет же, ведь.
5

» WarCraft 3 / Как изменить максимальное здоровье юниту?

Joma, а если юнит-здание?
Также, дать здании способность. Ведь здание это тоже юнит)
5

» WarCraft 3 / Как изменить максимальное здоровье юниту?

Принятый ответ
Думаю, дать юниту способность "Предмет: увеличение запаса здоровья".
5

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

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

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

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

» 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
5

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

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

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

» 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
5

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

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

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

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

» 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