Проблемка с циклом.Смысл в том,что при задействовании триггера,появляются не 2 юнита,а около десятка.Как исправить?

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

TAHK90:
убери действие for integer B
заведи себе переменную типа integer с именем count
далее выбираешь всех юнитов в группе
с каждым действием count увеличивай на 1
делаешь нужные действия если count меньше 2
если равен или больше - устаналивай на 0 и очищай группу
1
18
8 лет назад
1
Отправь скрин триггера, пожалуйста.
2
20
8 лет назад
2
выложить код, или отложить эдитор в сторону и заняться чем другим. книжку там почитать. а завтра снова взглянуть на свой код. не поверишь, но это помогает
танк, ты что-то в последнее время совсем свихнулся =\
0
15
8 лет назад
0
если с условием выхода из цикла- окей, то значит триггер срабатывает неоднократно.
0
8
8 лет назад
0
Maniac_91:
Отправь скрин триггера, пожалуйста.
ssbbssc:
выложить код, или отложить эдитор в сторону и заняться чем другим. книжку там почитать. а завтра снова взглянуть на свой код. не поверишь, но это помогает
танк, ты что-то в последнее время совсем свихнулся =\
В каком плане?
Загруженные файлы
0
20
8 лет назад
0
Я не профи в тригерах, но может у тебя в области выделения был не 1 юнит, а несколько, поэтому он для каждого юнита делает по 2 целителя, вот и получается десяток.
0
18
8 лет назад
0
TAHK90, ещё предположение. А может триггер срабатывает на каждую волну способности? Ведь Буран идёт волнами. Если их, например, 5, то триггер срабатывает 5 раз, и получаем 10 Целителей.
Попробуй поменять в событии применяет способность на другие (приводит в действие, направляет способность, завершает применение).
0
12
8 лет назад
Отредактирован Astra
0
  1. Сколько юнитов пинул - столько и создал для каждого по 2 боевые еденицы. Решение - не "пикать" юнитов в области, а просто создать 2 дамми (целитель) в указанной точке.
  2. Кроме этого в функции создания боевой единицы находится потенциальный десинх (Игрок 1)! Нужно заменить на Triggering Player.
  3. Изменить событие на "Приводит способность в действие".
0
8
8 лет назад
0
Astra:
  1. Сколько юнитов пинул - столько и создал для каждого по 2 боевые еденицы. Решение - не "пикать" юнитов в области, а просто создать 2 дамми (целитель) в указанной точке.
  2. Кроме этого в функции создания боевой единицы находится потенциальный десинх (Игрок 1)! Нужно заменить на Triggering Player.
  3. Изменить событие на "Приводит способность в действие".
Тогда на кого дамми будут использовать умение?
0
28
8 лет назад
Отредактирован nvc123
0
TAHK90, для начала ты должен определится с тем что конкретно должен делать твой триггер
поверь как только ты нормально поставишь задачу то с лёгкостью сможешь пофиксить триггер
0
24
8 лет назад
0
TAHK90, "выбрать все юниты" - это такой же цикл как и "for each integer a 1 to 2 ..."
опиши способность, тогда поможем.
0
20
8 лет назад
0
а на кой черт тебе тут цикл вообще? выноси эти действия в полоску действий с отрядом и живи счастливо
и да, у тебя утекают точки
0
8
8 лет назад
0
Melissa:
TAHK90, "выбрать все юниты" - это такой же цикл как и "for each integer a 1 to 2 ..."
опиши способность, тогда поможем.
Юнит использует способность(АоЕ,тот же буран) и 2 юнита,попавших в область действия,меняют владельца на того,чей юнит использовал способность.
nvc123:
TAHK90, для начала ты должен определится с тем что конкретно должен делать твой триггер
поверь как только ты нормально поставишь задачу то с лёгкостью сможешь пофиксить триггер
Я уже это сделал,и триггер работал хорошо,я выделял всех юнитов и менял ихнего владельца через триггеры,с определёнными условиями,но нашёл недочёт и поэтому нужно сделать так,что-бы изменение юнита было через способность,а не триггерной командой.
ssbbssc:
а на кой черт тебе тут цикл вообще? выноси эти действия в полоску действий с отрядом и живи счастливо
и да, у тебя утекают точки
Про утечки знаю,я щас пытаюсь добиться того,что бы сам триггер работал.
0
28
8 лет назад
0
TAHK90, давай подумаем над тем что ты написал
тебе нужно перебрать всех юнитов в области и выбрать из них 2 юнита
после чего надо делать действия с этими 2
тут тебе поможет функция "первый юнит из группы"
берём группу с живыми врагами(нам ведь враги нужны) в области бурана
далее идёт цикл от 1 до 2
в цикле {
заносим в переменную first первого юнита в этой группе
проверяем что он существует (не равен null)
если он не существует значит наша группу пуста и триггер завершает выполнение
иначе делаем для юнита first нужные действия (создаём дамми и прочее)
удаляем юнита first из группы
} конец цикла
0
8
8 лет назад
0
nvc123:
TAHK90, давай подумаем над тем что ты написал
тебе нужно перебрать всех юнитов в области и выбрать из них 2 юнита
после чего надо делать действия с этими 2
тут тебе поможет функция "первый юнит из группы"
берём группу с живыми врагами(нам ведь враги нужны) в области бурана
далее идёт цикл от 1 до 2
в цикле {
заносим в переменную first первого юнита в этой группе
проверяем что он существует (не равен null)
если он не существует значит наша группу пуста и триггер завершает выполнение
иначе делаем для юнита first нужные действия (создаём дамми и прочее)
удаляем юнита first из группы
} конец цикла
Всё равно создаётся по 10 чтук.
0
20
8 лет назад
Отредактирован ssbbssc
0
TAHK90:
убери действие for integer B
заведи себе переменную типа integer с именем count
далее выбираешь всех юнитов в группе
с каждым действием count увеличивай на 1
делаешь нужные действия если count меньше 2
если равен или больше - устаналивай на 0 и очищай группу
Принятый ответ
0
28
8 лет назад
0
TAHK90, значит ты криво сделал
сделай всё точно по описанному мной алгоритму и всё будет нормально работать
0
8
8 лет назад
0
Ребят, я видимо отупел,но я не могу это сделать...
Всё спасибо,разобрался.
0
20
8 лет назад
0
Модераторы, измените лучший ответ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.