Казалось бы, вопрос элементарный, а меня можно задизлайкать за непонимание очевиднейших вещей. Но всё не так просто, как кажется.
Ситуация такая. Есть триггер (а вернее их три разных, выполняющихся в разных местах и в разное время, друг другу они не мешают совершенно), который срабатывает после завершения таймера. Там происходит много всяких действий, одно из которых - повышение переменной Fountain на 1 (при запуске карты она обнуляется конечно же).
Сам триггер (как и другие два) выглядит вот так:
Ситуация такая. Есть триггер (а вернее их три разных, выполняющихся в разных местах и в разное время, друг другу они не мешают совершенно), который срабатывает после завершения таймера. Там происходит много всяких действий, одно из которых - повышение переменной Fountain на 1 (при запуске карты она обнуляется конечно же).
Сам триггер (как и другие два) выглядит вот так:
Беда в том, что триггер выполняется абсолютно весь. Окно таймера сворачивается, анимации пропадают, юнит, который должен замениться, заменяется и т.д. Всё работает. Кроме увеличения переменной Fountain на 1. Мной было использовано 3 различных способа.
Первый (самый очевидный) через оператор set variable. То есть
Set Fountain = Fountain +1
Казалось бы, должно работать. И да, в самый первый раз наша нулевая переменная становится равной 1. А вот во второй раз становиться двойкой, а в третий раз тройкой она почему-то не хочет. И потому в каждый из трёх раз мне проигрывается действие с условием "if Fountain == 1".
Далее я всё поменял. Разбил действие на три, а именно:
If Fountain == 2 then set Fountain = 3
If Fountain == 1 then set Fountain = 2
If Fountain == 0 then set Fountain = 1
Именно в этом порядке. Каков результат? От прошлого не отличается он ничем совершенно.
Ну а последний способ можете посмотреть на картинке.
По сути, тот же второй, но всё умещено в одно условие. Исход, как вы понимаете, снова печальный и нерабочий.
Собственно, вопрос мой таков: если я всё же ошибся, то в чём именно? А если не ошибся и делал верно, то какие ещё способы существуют для увеличения значения переменной на 1 (оператор Inc() я искал, безуспешно).
Я действительно не понимаю, это у меня голова не работает совершенно, или в редакторе какие-то баги
П.С. JASS и его разновидности не знаю совершенно, огромная просьба объяснять и советовать исключительно с использованием стандартных триггеров.
П.П.С. Если что, у меня версия игры 1.26
Принятый ответ
8gabriel8,
PT153,
8gabriel8,
Беда в том, что эта карта из кампании, там всё очень много весит, потому не буду.Если что, скидывай карту.
PT153,
Пока никак, ибо из-за сессии отложил редактор в сторону (собственно, даже сюда времени зайти не было, к сожалению)ну как там дела?
Рад, что ты предложил выход, но я, боюсь, твой код себе никак не перенесу, ибо, как писал в вопросе, лишь на GUI могу работать.
8gabriel8,
Триггер, запускающий таймер, вряд ли многое испортить можетмне кажется, проблема не в этом триггере, а в другом, который запускает триггеры и таймеры.
Мдаааа... Я свою ошибку таки нашёл. Она была в самом тупом месте из всех возможных.
Так вот, это я дурак полный.
Запихнул обнуление своей переменной ВНИМАНИЕ! в триггер, который игрокам-компьютерам каждые 2 секунды обновляет ресурсы. А вместе с этим и обнуляет снова и снова мою переменную. Обнаружил ли я это через дебаги? Нет, просто от скуки и безнадёжности положения начал прокручивать и листать все триггеры.
Цитата из вопроса, у меня не работает голова.Я действительно не понимаю, это у меня голова не работает совершенно, или в редакторе какие-то баги
Так вот, это я дурак полный.
Запихнул обнуление своей переменной ВНИМАНИЕ! в триггер, который игрокам-компьютерам каждые 2 секунды обновляет ресурсы. А вместе с этим и обнуляет снова и снова мою переменную. Обнаружил ли я это через дебаги? Нет, просто от скуки и безнадёжности положения начал прокручивать и листать все триггеры.
Спасибо всем, кто пытался помочь, это было очень приятно) Мне жаль, что вы ломали голову и тратили время впустую по моей глупости и невнимательности.
Загруженные файлы
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Ред. PT153
Если так, то нужно убрать у всех трансляций паузу (Не ждать) и сделать так.
Ред. PT153
PT153:
Ред. N1ghtSiren
Вообще можно прикрутить это всё на один таймер.
эээ кодировка, вернись
Если что, скидывай карту.
Ред. PT153
PT153, Пока никак, ибо из-за сессии отложил редактор в сторону (собственно, даже сюда времени зайти не было, к сожалению) Рад, что ты предложил выход, но я, боюсь, твой код себе никак не перенесу, ибо, как писал в вопросе, лишь на GUI могу работать.
8gabriel8, Триггер, запускающий таймер, вряд ли многое испортить может
Так вот, это я дурак полный.
Запихнул обнуление своей переменной ВНИМАНИЕ! в триггер, который игрокам-компьютерам каждые 2 секунды обновляет ресурсы. А вместе с этим и обнуляет снова и снова мою переменную. Обнаружил ли я это через дебаги? Нет, просто от скуки и безнадёжности положения начал прокручивать и листать все триггеры.
Ред. PT153