Сейчас 16:29:36 Понедельник, 25 ноября, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Выбор каждого юнита в отряде по очереди
Scorp10nДата: Четверг, 02 Декабря 2010, 08:55:01 | Сообщение # 1
9 уровень
Группа: Заблокированные
Сообщений: 873
Награды: 1
Репутация: 173
Блокировки:
Вот допустим у меня есть способность, которая выбирает юнита, наносит ему урон, и если он умер - выбирает всех юнитов в области 300, производит над ними действие и наносит урон. Выглядит она примерно так:

Установить Destroi - первый юнит, которому наносим урон 70.
Иф дестрой умер
то выбрать всех юнитов, которые были рядом с ним в области 300 и сделать несколько действий:
1. Создать над каждым спецэффект
2. Занести прошлый созданный спецэффект в переменную _spec
3. Всех выбранных юнитов занести в переменную OT

Затем через 2 секунды выбираем отряд OT:
1. Нанести им урон 100
2. Удалить _spec

Вот типо так все выглядит. Конкретно не работает спецэффект. Т.е. заносится в переменную только один последний, и получается удаляется тоже только один, а остальные остаются на карте.
Частичное решение сделал такое:
Перед триггером создал переменную Chis (целочисленная) = 0.
Затем второе действие изменил на:
2. Установить _spec = Chis + 1

Но, тут предполагается, что будет выбран каждый юнит по очереди, но так как выбираются сразу все - то удаляется только что-то одно.
Надеюсь вы меня поняли)


Мой новый акк - [Scorp]
 

FkoFFДата: Четверг, 02 Декабря 2010, 08:58:25 | Сообщение # 2
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
Зачем ты заносишь спецэффект в массив скажи мне? Удаляй его сразу после создания.

А вообще подобные конструкции, если уж тебе надо - делаются следующим образом

set X = X+1
set FX[X] = GetLastCreatetEffect()
set UT[X] = GetEnumUnit()
set UV[X] = GetTriggerUnit()
потом по циклу Y От 1 до X
call DestroyEffect(FX[Y])
call DamageUnit(UV[X] нанести N урона юниту UT[X])




Сообщение отредактировал FkoFF - Четверг, 02 Декабря 2010, 09:10:27
 

Scorp10nДата: Четверг, 02 Декабря 2010, 09:11:41 | Сообщение # 3
9 уровень
Группа: Заблокированные
Сообщений: 873
Награды: 1
Репутация: 173
Блокировки:
FkoFF, попозже попробую конструкцию. Сейчас надо алгебру сделать)

Хотя постой. Но ведь выделяются то они тоже все разом, а не по очереди, т.е. занесется только один эффект


Мой новый акк - [Scorp]
 

FkoFFДата: Четверг, 02 Декабря 2010, 09:14:07 | Сообщение # 4
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
Scorp10n, действия в любом случае имеют очередь и созданный эффект надо мгновенно заносить в переменную как "Последний созданный эффект". А вообще, повторюсь - эффект надо удалять сразу после создания, визуально эффект не удалиться до окончания анимации Birth

 

Scorp10nДата: Четверг, 02 Декабря 2010, 09:20:28 | Сообщение # 5
9 уровень
Группа: Заблокированные
Сообщений: 873
Награды: 1
Репутация: 173
Блокировки:
Quote (FkoFF)
А вообще, повторюсь - эффект надо удалять сразу после создания, визуально эффект не удалиться до окончания анимации Birth

у меня эффект не такой попался. он сразу удаляется. Даже не заметно, что он был


Мой новый акк - [Scorp]
 

FkoFFДата: Четверг, 02 Декабря 2010, 09:31:15 | Сообщение # 6
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
Scorp10n, скинь эффект, подправим )

 

  • Страница 1 из 1
  • 1
Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz