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

Добавлен
Триггер не срабатывает на мое имя.
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"
`
ОЖИДАНИЕ РЕКЛАМЫ...
1
15
12 лет назад
1
а теперь триггер и у первого игрока не работает
У тебя отсчет идет со 2-го игрока: "local integer i = 1"
Принятый ответ
1
14
12 лет назад
Отредактирован Темак
1
потому что для красного триггер автоматом стоит
1
8
12 лет назад
1
set gg_trg_Game_victory_on = CreateTrigger( )
call DisableTrigger( gg_trg_Game_victory_on )
Х_Х
сделай уж локальный триггер чтоле
0
14
12 лет назад
0
это осталось от перевода из гуи.
проблема не в этом.
0
8
12 лет назад
0
Дело в том что ты его при инициализации создал и тут же удалил....
дальше он не будет работать....
1
15
12 лет назад
1
тут же удалил
Не удалил, а выключил!
0
8
12 лет назад
0
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 )
тут выключать нету смысла
если выключение делается до добавление условия действия и событий....
0
14
12 лет назад
0
влад10011, будь уверен триггер у меня в нужный момент включается. Проблема не в этом.
0
27
12 лет назад
0
вот здесь и проблема мне кажется
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, а от нуля
0
15
12 лет назад
0
И вообще лучше не выводить текст через GetLocalPlayer(). Возможны десинхи.
0
22
12 лет назад
0
Были прецеденты?
0
15
12 лет назад
0
Были прецеденты?
Да. У меня в карте иногда происходил десинх. После прочтения статьи стало понятно из-за чего (время и место совпадали идеально)
0
14
12 лет назад
0
Steal nerves, для первого игрока у меня событие создается и так, поэтому я веду отсчет с 1.
0
29
12 лет назад
0
bladget, были были.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.