NazarPunk, код простой, есть массив из 24 переменных, который для каждого содержит свою точку на карте. Локальная переменная для перебора 24 игроков, в котором группе юнита игрока приказывается идти в точку
а точка находится в массиве под своим итератором. Не хочется лишний раз плодить глобальные, поэтому и спросил.
это же функция, call GroupPointOrderLocBJ( GetUnitsOfPlayerAll(Player(a-1)), "attack", udg_target_ai[a] ), самостоятельная?
Лучше всего поставить дамми 10 ХП и реген -1 ХП в Редакторе объектов, тип смерти - нельзя поднять, не разлагается. Более гибкий вариант через временную жизнь, как уже показали выше.
Мне это вариант не нравится, есть вера, что на этот "реген" можно непроизвольно повлиять во время написания какого-нибудь сложного триггера
prog, гораздо легче можно решить. Создаем массив отсчета секунд для 24 игроков second[n]. При старте карты запускаем счетчик секунд и по циклу проверяем все 24, как только у одного игрока счетчик доходит до 30секунд (время на стрик), мы обнуляем переменную, отвечающую за его комбо. А при совершнии нового убийства игроком мы просто обнуляем счетчик его таймера. Так норм?
prog, я прислушился. Это получается мне нужно при старте создать счетчик, который каждую секунду отсчитывает по 1 секунде? И такой вопрос можно ли повлияеть на время (знаю есть такая функция: добавить время таймеру), через которое выполнится действие в TimerStart? NazarPunk, ну меня готовое не интересует, все не настроишь в конфиге, надо под себя делать)) тем более так ничему и не научишься
prog, да 24 триггера, но они довольно простые, просто обнуляют переменные. я куда больше боюсь периодических триггеров, тем более (возможно я еще пока мало знаю), как я понимаю для отлова реального времени, мне надо будет переводить игровое время в реальное. в плане реализации 24 триггера гораздо проще и приятнее, в плане оптимизация - я не знаю
NazarPunk, "глупо", а вы бы как сделали?
мне нужно 24 таймера, который поддерживают актуальность стрика убийства дабл-килл, трипл-кил и так далее, соотвественно у каждого игрока свой таймер (это я так думаю) prog, оххх, как трудно на это переходит после c#, ох какие вещи я бы здесь вытворял со списками xDDD
Честно говоря, не совсем понял смысл, но всё, что используешь в обычном GUI доступно на jass+ещё больше.
знаю эти редакторы, но сейчас довольно частые обновления выходят в варкрафте официальном и х обновления для меня более ценные 8gabriel8:
посмотри, пожалуйста, этот фрагмент:
событие лива
function InitTrig_zi1 takes nothing returns nothing
set gg_trg_zi1 = CreateTrigger( )
set a = 1
set b = 24
loop
exitwhen a > b
call TriggerRegisterPlayerEventLeave( gg_trg_zi1, Player(a) )
set a = a + 1
endloop
call TriggerAddAction( gg_trg_zi1, function player_left )
endfunction
Надо проверять, конечно, но какие-то манипуляции проводил с Группой Игроков, так мне по каким-то причинам показалось, что действие создаёт события только для задействованных игроков. Но мне всё равно очень редко требуется такое событие, потому не стал в тот момент внимания обращать.
Ребят, а такой момент. Я решил подключать 24 события (для каждого игрока), но регистрируя события мы можем использовать циклы? (loop от 0 до A), как мы делаем в действиях (actions)
Можно создать триггер без событий, а в триггере инициализации выбрать группу из всех игроков и создать каждому событие в триггере без событий, типа (Picked player) leaves game. Так не придётся 24 события создавать.
с точки зрения оптимизации, сильно ли ваш способ влияет?
» WarCraft 3 / Приказ Группе jass
» WarCraft 3 / Приказ Группе jass
а точка находится в массиве под своим итератором. Не хочется лишний раз плодить глобальные, поэтому и спросил.
это же функция, call GroupPointOrderLocBJ( GetUnitsOfPlayerAll(Player(a-1)), "attack", udg_target_ai[a] ), самостоятельная?
» WarCraft 3 / Создать декорацию гуи или jass
» WarCraft 3 / variable ot is uninitillized
» WarCraft 3 / variable ot is uninitillized
» WarCraft 3 / Локальные переменные и таймер
» WarCraft 3 / Очитстка Dummy
» WarCraft 3 / Очитстка Dummy
8gabriel8, у меня почему-то вбилось в голове, что после смерти юнита, его нужно еще и удалять
» WarCraft 3 / Очитстка Dummy
» WarCraft 3 / Очитстка Dummy
8gabriel8: скапливать на карте их тоже не вариант
» WarCraft 3 / Очитстка Dummy
call PolledWait( 1.00 )
call RemoveUnit(u)
set u = null
))
» WarCraft 3 / Очитстка Dummy
» WarCraft 3 / Очитстка Dummy
» WarCraft 3 / Передача параметра в функции
» WarCraft 3 / Передача параметра в функции
» WarCraft 3 / Передача параметра в функции
NazarPunk, ну меня готовое не интересует, все не настроишь в конфиге, надо под себя делать)) тем более так ничему и не научишься
» WarCraft 3 / Передача параметра в функции
» WarCraft 3 / Передача параметра в функции
мне нужно 24 таймера, который поддерживают актуальность стрика убийства дабл-килл, трипл-кил и так далее, соотвественно у каждого игрока свой таймер (это я так думаю)
prog, оххх, как трудно на это переходит после c#, ох какие вещи я бы здесь вытворял со списками xDDD
» WarCraft 3 / Функция сообщения от игрока
» WarCraft 3 / Локальный массив Jass
» WarCraft 3 / Локальный массив Jass
» WarCraft 3 / Событие - игрок ливает
» WarCraft 3 / Событие - игрок ливает
8gabriel8:
посмотри, пожалуйста, этот фрагмент:
function InitTrig_zi1 takes nothing returns nothing
set gg_trg_zi1 = CreateTrigger( )
set a = 1
set b = 24
loop
exitwhen a > b
call TriggerRegisterPlayerEventLeave( gg_trg_zi1, Player(a) )
set a = a + 1
endloop
call TriggerAddAction( gg_trg_zi1, function player_left )
endfunction
» WarCraft 3 / Событие - игрок ливает
» WarCraft 3 / Событие - игрок ливает