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

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

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
28
KlounDoink, как показывает практика большинство триггеров можно без проблем объединить
кроме того если изначально не делать кучу триггеров, а делать более универсальные системы то это экономит кучу времени т.к. немного подумать и написать триггер на 20 строк намного быстрее чем написать 10 триггеров по 10 строк каждый
хотя выигрыш во времени сильно зависит от скорости мышления

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

самый простой пример объединения триггеров это крафт предметов
большинство новичков делают его по принципу: 1 рецепт - 1 триггер
что очень плохо как с точки зрения затраченного времени на создание этих триггеров
так и с точки зрения ресурсов компьютера (компьютеру необходимо пройтись по всем триггерам и проверить условие каждого из них)
в то время как правильно продуманная система позволяет обойтись лишь 1 триггером
26
KlounDoink, несколько раз тебя попросили приложить карту, тебе религия не позволяет этого чтоли?)
28
8gabriel8, 11 заповедь - не прикладывай карту к вопросу)
2
nvc123:
8gabriel8, 11 заповедь - не прикладывай карту к вопросу)
Да ну.. засмеют))
28
KlounDoink, ты можешь просто кинуть скрипт карты. Редактор ландшафта -> Файл -> Экспортировать скрипт. Сохрани как файл с расширением .j.
2
Спасибо всем за помощь.. я разобрался с проблемой.. дело было в лимите потока.. сейчас объединяю схожие триггеры. Конечно каша получается но всё же работает... кому интересно скидываю скрипт.. кстати а что за скрипт? что в нем?
Еще вопрос.. условно 1 триггер занимает 1 поток.. а если в один триггер добавить 3 условия.. то триггер будет занимать как один поток или как 3 ? Надеюсь понятно написал.. у меня просто много регионов и для каждого не хочется писать отдельный триггер... если что я пишу триггеры НЕ на jass)
Загруженные файлы
28
кстати а что за скрипт? что в нем?
Код карты. Все триггеры на GUI конвертируются в JASS.
15к строк кода, капец, даже в моей карте 9к строк vJass.

Еще вопрос.. условно 1 триггер занимает 1 поток.. а если в один триггер добавить 3 условия.. то триггер будет занимать как один поток или как 3 ?
Не совсем так.
При срабатывании события создаётся "поток" для функции, где находятся все условия триггера. Если все условия выполнены, то создаётся "поток" для функции, где находятся все действия. Про лимит потока тебе уже сказали выше.
Ещё поток обрывается, если делаешь какую-то дичь, вроде деления на 9 или взятие значения переменной, у которой этого значения нет.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.