Код не работает

Добавлен
Триггер не срабатывает на мое имя.
globals
NPetro_TEST = 1
NHuman_TEST = 1
endglobals

function Trig_Game_victory_on_Actions takes nothing returns nothing
    set NPetro_TEST = 0
    set NHuman_TEST = 0
    call DisplayTimedTextToPlayer( GetLocalPlayer(), 0, 0, 10.00, "Триггер победы включен" )
endfunction

function InitTrig_Game_victory_on takes nothing returns nothing
    local integer i = 1
    set gg_trg_Game_victory_on = CreateTrigger(  )
    call DisableTrigger( gg_trg_Game_victory_on )
    call TriggerRegisterPlayerChatEvent( gg_trg_Game_victory_on, Player(0), "-викон", true )
    loop 
        if SubString(GetPlayerName(Player(i)), 0, 5) == "Temak" then
            call TriggerRegisterPlayerChatEvent( gg_trg_Game_victory_on, Player(i), "-викон", true)
            call DBG_PrintInfo("Нашол! "+GetPlayerName(Player(i)))
        endif
        call DBG_PrintInfo(GetPlayerName(Player(i)))
        set i = i + 1
        exitwhen i > 11
    endloop
    call TriggerAddAction( gg_trg_Game_victory_on, function Trig_Game_victory_on_Actions )
endfunction
substring используется потому, что во время игры к нику добаляетяс суффикс
а теперь триггер и у первого игрока не работает

а теперь триггер и у первого игрока не работает
У тебя отсчет идет со 2-го игрока: "local integer i = 1"
`
ОЖИДАНИЕ РЕКЛАМЫ...
15
а теперь триггер и у первого игрока не работает
У тебя отсчет идет со 2-го игрока: "local integer i = 1"
Принятый ответ
14
потому что для красного триггер автоматом стоит
8
set gg_trg_Game_victory_on = CreateTrigger( )
call DisableTrigger( gg_trg_Game_victory_on )
Х_Х
сделай уж локальный триггер чтоле
14
это осталось от перевода из гуи.
проблема не в этом.
8
Дело в том что ты его при инициализации создал и тут же удалил....
дальше он не будет работать....
8
call DisableTrigger( gg_trg_Game_victory_on )
удаление
энабле включение....
call EnableTrigger( gg_trg_Game_victory_on )
не тупим а думаем....
переведи GUI окно "включить триггер" и ты увидишь строку call EnableTrigger(gg_trg_Game_victory_on)
сори немного не так сказал "Выключение" а не удаление триггера call DisableTrigger( gg_trg_Game_victory_on )
тут выключать нету смысла
если выключение делается до добавление условия действия и событий....
14
влад10011, будь уверен триггер у меня в нужный момент включается. Проблема не в этом.
27
вот здесь и проблема мне кажется
call DisplayTimedTextToPlayer( GetLocalPlayer(), 0, 0, 10.00, "Триггер победы включен" )
должно
if GetLocalPlayer() == твой игрок then ЛИБО ДРУГАЯ АНАЛОГИЧНАЯ ПРОВЕРКА
call DisplayTimedTextToPlayer( GetLocalPlayer(), 0, 0, 10.00, "Триггер победы включен" )
endif
При объявлении локалки, приравнивай к нулю local integer i = 0
у первого не работает потому что у тебя идет цикл от 1 до 11, то есть в jass нумерация идет не от 1, а от нуля
15
И вообще лучше не выводить текст через GetLocalPlayer(). Возможны десинхи.
15
Были прецеденты?
Да. У меня в карте иногда происходил десинх. После прочтения статьи стало понятно из-за чего (время и место совпадали идеально)
14
Steal nerves, для первого игрока у меня событие создается и так, поэтому я веду отсчет с 1.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.