Лично я картодел не очень хороший, но один очень умный в этом деле человек посоветовал мне все однотипные по ивенту триггеры загонять (как скот в один хлев) в один многоэтажный триггер с одним ивентом. И ввиду того, что я делаю крупную мили-РПГ карту, мне теперь важна каждая такая мелочь, ибо в совокупности по итогу оно люто скажется, я думаю.
Вопрос вот в чём - юзает юнит спелл, и пошла вся эта шобла этажная искать, а какой же спелл юзнулся. Нашла, сделала, что надо, и пошла дальше, хотя уже вроде как сделала, что нужно, но дальше всё равно поискала (вроде как это так работает, поправьте меня, если я ошибаюсь). А это же лишние силы триггерные. К чему их тратить впустую? И мне вот что сделать захотелось - заставлять триггер сбрасываться после каждой "своей" находки нужного. Я начал пихать в каждую "находку" вот это:
Подскажите, пожалуйста, я дичь делаю, или всё чётко-ровно и так и нужно?

Принятый ответ

Не такой уж и умный, если посоветовал такую глупость.
Оптимизировать надо когда это надо, а не когда это лучше. В твоем случае даже появляется угроза превышения лимита операций, что приведет к прерыванию работы триггера, не говоря уже о невозможности поддержки такой гигантской лестницы условий.
Подскажите, пожалуйста, я дичь делаю, или всё чётко-ровно и так и нужно?
Это так называемый оператор возврата из функции return, который завершает работу функции. Тебе это мало о чем скажет, но например такая конструкция
не завершит работу всего триггера, а лишь цикла, вернее, текущей итерации цикла. При этом цикла группы юнитов или группы игроков, но не цикла целочисленных "от A до B", который может быть как внутри триггера, так и внутри цикла группы юнитов/игроков.
В общем, от такого хорошего совета ты сразу влез в океан условностей которые предусмотреть не сумеешь. В итоге такая "оптимизация" лишь породит кучу новых ошибок.
Загруженные файлы
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
6
17
3 года назад
Отредактирован GetLocalPlayer
6
Не такой уж и умный, если посоветовал такую глупость.
Оптимизировать надо когда это надо, а не когда это лучше. В твоем случае даже появляется угроза превышения лимита операций, что приведет к прерыванию работы триггера, не говоря уже о невозможности поддержки такой гигантской лестницы условий.
Подскажите, пожалуйста, я дичь делаю, или всё чётко-ровно и так и нужно?
Это так называемый оператор возврата из функции return, который завершает работу функции. Тебе это мало о чем скажет, но например такая конструкция
не завершит работу всего триггера, а лишь цикла, вернее, текущей итерации цикла. При этом цикла группы юнитов или группы игроков, но не цикла целочисленных "от A до B", который может быть как внутри триггера, так и внутри цикла группы юнитов/игроков.
В общем, от такого хорошего совета ты сразу влез в океан условностей которые предусмотреть не сумеешь. В итоге такая "оптимизация" лишь породит кучу новых ошибок.
Загруженные файлы
Принятый ответ
2
22
3 года назад
Отредактирован PROSHELDOTU
2
GetLocalPlayer, советовал ему я
но не скипать действия, как ты не правильно понял, а не плодить кучу однотипных триггеров
типа в одном триггере событие умирает юнит такой-то, то делать то то
а другой триггер с таким же событием, но на другого юнита, например
И я сказал ему, что это можно как бы в одном триггере всё отслеживать и т.д. по аналогии с другими событиями
2
27
3 года назад
2
Proshel_Doty, о, я то же самое людям говорил. Никогда не делал 2 триггера с одинаковым событием, если можно пихнуть в один, но всегда волновало "прохождение" по условиям и функциям триггера, поэтому я даже хз как лучше
4
32
3 года назад
4
Если любите гуи переходи в старкрафт, там это всё нормально реализовано и не надо как то ухищряться, как бы ты не делал будет из коробки "нормально", и не придётся выслушивать советчиков и гуру оптимизаций: все заклинания в 1 триггер или по отдельному триггеру на заклинание
1
9
3 года назад
Отредактирован dmgr
1
Отвечая на твой вопрос по поводу пропуска других действий.
-да, ты делаешь дичь.
Открой любую старую компанию близавскую, и посмотри как они в 10 тригеров вмещают часовую компанию с заданиями.
У них используются тригеры с одним событием, а дальше куча условий и действий для них. это никак не ломает и не тормозит игру, если не сидеть в ней по 10 часов.
-поэтому да, совет использовать тригеры с общими событиями полезен. но это нужно делать с умом.
Оптимизируй лучше вес карты, выкидывай тригерные способности которые можно заменить обычными правками в ПО, следи за моделями, некоторые действительно способны тормозить и даже крашить игру. Это лучшее что ты сделаешь для ускорения игры на карте.
ps. поддержу NazarPunk, он прав, в 1.26 лучше все делать на jass.
3
29
3 года назад
3
Открой любую старую компанию близавскую, и посмотри как они в 10 тригеров вмещают часовую компанию с заданиями.
Так у них же все способности стандартные.
У них используются тригеры с одним событием, а дальше куча условий и действий для них. это никак не ломает и не тормозит игру, если не сидеть в ней по 10 часов.
Каждый случай нужно разбирать отдельно, вот например в отлове урона на 1.26 используется один триггер и для каждого юнита вешается событие.
Оптимизируй лучше вес карты, выкидывай тригерные способности которые можно заменить обычными правками в ПО
Зааачем? Если все способности триггерные, то к ним легче добавить нестандартное поведение. Например столкновение снарядов.
в 1.26 лучше все делать на jass.
Не просто jass, а vjass / zinc.
3
17
3 года назад
3
Не просто jass, а vjass / zinc.
Wurst
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.