Добавлен Nekron
Ниже написан триггер, который работал, до перехода с 6-ти до 12-ти игроков, а конкретно он менял надпись для определённого игрока, надпись показывала хп героя соответствующего игрока. Помогите пожалуйста заставить его снова работать.
Life
....Events:
.......Unit - Any Unit Life changes
....Local Variables:
....Conditions:
....Actions:
........Variable - Modify Hp[(Triggering player)]: + (Triggering unit property change)
........Dialog - Set HP[(Triggering player)] text to ("HP " + (Text(Hp[(Triggering player)]))) for Player[(Triggering player)]
........Unit - Set (Triggering unit) Life to Hp[(Triggering player)]
........General - If (Conditions) then do (Actions) else do (Actions)
............If
................Hp[(Owner of (Triggering unit))] <= 0
............Then
................Variable - Set Hp[(Owner of (Triggering unit))] = 0
................Unit - Set (Triggering unit) Life to Hp[(Owner of (Triggering unit))]
................Dialog - Set HP[(Owner of (Triggering unit))] text to ("HP " + (Text(Hp[(Owner of (Triggering unit))]))) for Player[(Owner of (Triggering unit))]
............Else
........General - If (Conditions) then do (Actions) else do (Actions)
............If
................Hp[(Owner of (Triggering unit))] >= 101
............Then
................Variable - Set Hp[(Owner of (Triggering unit))] = 100
................Unit - Set (Triggering unit) Life to Hp[(Owner of (Triggering unit))]
................Dialog - Set HP[(Owner of (Triggering unit))] text to ("HP " + (Text(Hp[(Owner of (Triggering unit))]))) for Player[(Owner of (Triggering unit))]
............Else
Пояснение:
Hp - переменная, которая хранит здоровье юнита.
Элемент диалога HP - переменная, через которую я "ловлю" текст, который надо поменять для показа игроку.
Группа игроков Player - переменная, массив, каждая ячейка массива отвечает за своего игрока.
Life
....Events:
.......Unit - Any Unit Life changes
....Local Variables:
....Conditions:
....Actions:
........Variable - Modify Hp[(Triggering player)]: + (Triggering unit property change)
........Dialog - Set HP[(Triggering player)] text to ("HP " + (Text(Hp[(Triggering player)]))) for Player[(Triggering player)]
........Unit - Set (Triggering unit) Life to Hp[(Triggering player)]
........General - If (Conditions) then do (Actions) else do (Actions)
............If
................Hp[(Owner of (Triggering unit))] <= 0
............Then
................Variable - Set Hp[(Owner of (Triggering unit))] = 0
................Unit - Set (Triggering unit) Life to Hp[(Owner of (Triggering unit))]
................Dialog - Set HP[(Owner of (Triggering unit))] text to ("HP " + (Text(Hp[(Owner of (Triggering unit))]))) for Player[(Owner of (Triggering unit))]
............Else
........General - If (Conditions) then do (Actions) else do (Actions)
............If
................Hp[(Owner of (Triggering unit))] >= 101
............Then
................Variable - Set Hp[(Owner of (Triggering unit))] = 100
................Unit - Set (Triggering unit) Life to Hp[(Owner of (Triggering unit))]
................Dialog - Set HP[(Owner of (Triggering unit))] text to ("HP " + (Text(Hp[(Owner of (Triggering unit))]))) for Player[(Owner of (Triggering unit))]
............Else
Пояснение:
Hp - переменная, которая хранит здоровье юнита.
Элемент диалога HP - переменная, через которую я "ловлю" текст, который надо поменять для показа игроку.
Группа игроков Player - переменная, массив, каждая ячейка массива отвечает за своего игрока.
Что сейчас происходит
Вот, что сейчас происходит в совокупности этого триггера и триггера возрождения.
Работа данного триггера:
Работа данного триггера:
Как вы можете видеть здоровье морпеха ровно 100 (первое число), а урон, который равен 0 должен быть равен отрицательному числу.
А вот скриншот, показывающий действие триггера перерождения.
А вот скриншот, показывающий действие триггера перерождения.
Вот это произошло после небольшого по продолжительности времени нахождения под атакой.
Дополняю: после перехода обратно на 6 игроков через некоторое время стрельбы в голиафа и обратно (он стрелял в меня) триггер начал работать нормально. Высказывайте хоть предположения че за у меня "бардак" такой.
Принятый ответ
prog:
Я пытался так сделать изначально, но не смог, пришлось обходными путями идти.Ну и да, собственно, не понимаю я что мешает просто брать HP юнита напрямую вместо того чтобы записывать каждое изменение в переменную?
Вот строка:
libNtve_gf_CreateDialogItemLabel(DialogLastCreated(), 200, 100, c_anchorCenter, 0, 0, StringExternal("Param/Value/740E5475"), ColorWithAlpha(0,0,0,0), false, 2.0);
Так же мелькала 1017 строка:
gv_hPJangles += EventUnitPropertyChangeInt();
И, чего дальше? Я в этом мало чего понимаю. Но это строки из другого триггера, который отвечает за конкретного юнита.
prog, работает! Это был конфликт между двумя триггерами (тем, который я выложил, и тем, который я упомянул выше). После установки во втором триггере условия, чтоб не срабатывал, когда не надо (он на конкретного юнита забит, а юнита на момент срабатывания в переменной нет).
Короче, УРА!
libNtve_gf_CreateDialogItemLabel(DialogLastCreated(), 200, 100, c_anchorCenter, 0, 0, StringExternal("Param/Value/740E5475"), ColorWithAlpha(0,0,0,0), false, 2.0);
Так же мелькала 1017 строка:
gv_hPJangles += EventUnitPropertyChangeInt();
И, чего дальше? Я в этом мало чего понимаю. Но это строки из другого триггера, который отвечает за конкретного юнита.
prog, работает! Это был конфликт между двумя триггерами (тем, который я выложил, и тем, который я упомянул выше). После установки во втором триггере условия, чтоб не срабатывал, когда не надо (он на конкретного юнита забит, а юнита на момент срабатывания в переменной нет).
Короче, УРА!
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Отредактирован prog
P.S. триггер делает что-то странное, не говоря уже о полном отсутствии локальных переменных и вынесения повторяющегося кода в функции, но ломаться там вроде не чему - беда, скорее всего, в другом месте - в триггере инициализации или в объявлении массива.
P.P.S симптомы "не работания" в следующий раз тоже выкладывай, а то телепатия дорого обходится
Признаки дописал.
Отредактирован prog
Отредактирован Nekron
Я так понимаю вот эта часть относится к моему триггеру.
Проверил на другой карте. Выяснил, что триггер барахлит на действии Variable - Modify Hp[(Triggering player)]: + (Triggering unit property change). Теперь надо придумать как это исправить.
Отредактирован prog
DialogSetVisible - функция смены видимости диалога
triggerDialog - то, что в гуи показывается как Triggering Dialog
Отредактирован Nekron
libNtve_gf_CreateDialogItemLabel(DialogLastCreated(), 200, 100, c_anchorCenter, 0, 0, StringExternal("Param/Value/740E5475"), ColorWithAlpha(0,0,0,0), false, 2.0);
Так же мелькала 1017 строка:
gv_hPJangles += EventUnitPropertyChangeInt();
И, чего дальше? Я в этом мало чего понимаю. Но это строки из другого триггера, который отвечает за конкретного юнита.
prog, работает! Это был конфликт между двумя триггерами (тем, который я выложил, и тем, который я упомянул выше). После установки во втором триггере условия, чтоб не срабатывал, когда не надо (он на конкретного юнита забит, а юнита на момент срабатывания в переменной нет).
Короче, УРА!