Только начинаю писать на jass.
Данное событие в ГУИ срабатывает на каждого игрока по своему событию (для 24 игроков - 24 триггера). То есть мне нужно удалять войска ливнувшего игрока, но я не хочу создавать 24 триггера. В теории это должно выглядеть так:
событие: игрок ливает событие, которое я не знаю как сделать
действия: local n = Номер игрока
call func_left (n) функция которую проблем написать не составит
можно ли как-то такое реализовать на jass? если нет, то как лучше поступить? Буду очень благодарен!

Можно, создаёте все 24 события лива для одного тригоера. А в действии триггера узнаете ливнувшего игрока с помощью функций: GetTriggeringPlayer(), GetLeavingPlayer().
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
26
Надо проверять, конечно, но какие-то манипуляции проводил с Группой Игроков, так мне по каким-то причинам показалось, что действие создаёт события только для задействованных игроков. Но мне всё равно очень редко требуется такое событие, потому не стал в тот момент внимания обращать.
17
8gabriel8:
Надо проверять, конечно, но какие-то манипуляции проводил с Группой Игроков, так мне по каким-то причинам показалось, что действие создаёт события только для задействованных игроков. Но мне всё равно очень редко требуется такое событие, потому не стал в тот момент внимания обращать.
Ребят, а такой момент. Я решил подключать 24 события (для каждого игрока), но регистрируя события мы можем использовать циклы? (loop от 0 до A), как мы делаем в действиях (actions)
Этот комментарий удален
17
8gabriel8:
Честно говоря, не совсем понял смысл, но всё, что используешь в обычном 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
28
событие лива
function InitTrig_zi1 takes nothing returns nothing
    local integer a = 0
    set gg_trg_zi1 = CreateTrigger( )
    call TriggerAddAction( gg_trg_zi1, function player_left )
    loop
        call TriggerRegisterPlayerEventLeave( gg_trg_zi1, Player(a) )
        set a = a + 1
        exitwhen a == bj_MAX_PLAYERS
    endloop
endfunction
17
PT153, спасибо, я упрощено написал, главная суть - что такая структура и при инициализации триггера возможна
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.