Перестали работать триггеры связанные с регионами такие как юнит вошел в область, даже те которые работали до этого.
Заметил что они перестают работать по мере добавления новых триггеров (Не только связанные с регионами)
Есть ли предел размера карты или количество триггеров? Такие ощущения что я достиг макс - предела, карта весит 470кб
Еще заметил что после теста карты (КАРТА НЕ ЗАВИСАЕТ) я не могу выйти из варкрафта 3(Варкрафт не отвечает).. приходится выключать вар в диспетчере, а стоит удалить ЛЮБЫЕ(АБСОЛЮТНО ЛЮБЫЕ) триггеры из карты так всё прекрасно работает! (Словно я освободил место)
Как то так
Итог.. Триггеры все рабочие.. но с добавлением новых триггеров перестают работать старые триггеры связанные с регионами даже такие как
Юнит Вошел В зону
Игра показать текст: Бла бла бла
PS Использую GUI NewGen WE

Я думаю, все дело в лимите потока, ибо 193 триггера - это много.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
30
Мой внутренний экстрасенс подсказывает, что вы где-то накосячили.
20
Отключаешь все триггеры, поочередно включаешь по 2-5 триггеров и тестишь, так и найдешь проблему.
А вообще скинь карту, мы же не экстрасенсы.
26
Неоднократно о таком спрашивают. Причина проблемы пока определённо не выявлена, потому просто создают новую карту и переносят туда всё. В последний раз помню, что исправляли заголовок карты, но у тебя иная ситуация.
И да, для наглядности приложи карту.
2
KaneThaumaturge:
Отключаешь все триггеры, поочередно включаешь по 2-5 триггеров и тестишь, так и найдешь проблему.
А вообще скинь карту, мы же не экстрасенсы.
Я могу удалить любой триггер на угад.. просто тыкнуть пальцем в небо и те триггеры которые не работали начинают работать.. я сам впервые с таким сталкиваюсь и ни разу такого не видал)
18
Попробуй объединить триггеры с одинаковым событием в один с несколькими условиями. Только при входе в область сложно отловить эту область - проверка "Входящий юнит в области Х = да" не всегда работает. Но есть одна хитрость: создать область в том же месте, но большего размера, и проверять наличие входящего юнита уже в этой области. Может, есть способ попроще, но этот помог мне в своё время.
2
PT153:
А сколько триггеров?
Триггеров 193
Есть как массивные так и обычные
KaneThaumaturge:
Отключаешь все триггеры, поочередно включаешь по 2-5 триггеров и тестишь, так и найдешь проблему.
А вообще скинь карту, мы же не экстрасенсы.
Врятли касяк в триггерах.. они до этого работали) а стоит написать любой обычный триггер хоть( юнит идти до точки) так триггеры перестают работать) именно перестают работать сами регионы.. словно они исчезают.. а триггеров с перемещением и удалением регионов у меня нет)
Maniac_91:
Попробуй объединить триггеры с одинаковым событием в один с несколькими условиями. Только при входе в область сложно отловить эту область - проверка "Входящий юнит в области Х = да" не всегда работает. Но есть одна хитрость: создать область в том же месте, но большего размера, и проверять наличие входящего юнита уже в этой области. Может, есть способ попроще, но этот помог мне в своё время.
Попробую найти одинаковые триггеры.. и объединить в один.. может действительно есть какой то придел в количество триггерах)
28
Я думаю, все дело в лимите потока, ибо 193 триггера - это много.
Принятый ответ
2
PT153:
Я думаю, все дело в лимите потока, ибо 193 триггера - это много.
Скорей всего вы правы.. дело даже не в регионах.. а просто сам триггер был отключен из за лимита потока.. а как бороться с лимитом? Будет ли 1 триггер с 10 действиями лучше чем 10 триггеров с 1 действием? Или это не так работает?
28
KlounDoink, как показывает практика большинство триггеров можно без проблем объединить
кроме того если изначально не делать кучу триггеров, а делать более универсальные системы то это экономит кучу времени т.к. немного подумать и написать триггер на 20 строк намного быстрее чем написать 10 триггеров по 10 строк каждый
хотя выигрыш во времени сильно зависит от скорости мышления

по поводу лимита потока
при загрузке карты стартует поток main в котором устанавливается большинство начальных параметров карты (расставляются юниты по карте, создаются триггеры и прочее)
каждая строка кода вызывающаяся в пределах этого потока (создание триггера, добавление к нему условий и действий, создание юнита и т.д.) занимает некоторое количество операций
как только количество выполненных операций в потоке достигает определённого количества (лимит потока) то поток обрывается и все последующие строки не выполняются
при срабатывании триггера (например юнит вошёл в регион, прошло 10 секунд с начала игры и прочее) для действия этого триггера создаётся новый поток
таким образом объединять стоит лишь схожие по смыслу триггеры т.к. триггер с большим количеством строк и вложенными циклами также может достичь лимита потока

самый простой пример объединения триггеров это крафт предметов
большинство новичков делают его по принципу: 1 рецепт - 1 триггер
что очень плохо как с точки зрения затраченного времени на создание этих триггеров
так и с точки зрения ресурсов компьютера (компьютеру необходимо пройтись по всем триггерам и проверить условие каждого из них)
в то время как правильно продуманная система позволяет обойтись лишь 1 триггером
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.