XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
B100D E1F
Scarecrow
offline
Опыт: 4,719
Активность:
Пара вопросов.
У меня вот вопросы есть:
1)Как замутить несколько рокет (missile) чтоб они летели (управление полетом триггером - вопрос не об этом) и коцали всех врагов на пути на опр. дмж НО - максимум каждого врага один раз!
2)Как узнать, что юнит погиб от такого-то спелла, но не от руки спеллкастера вообще, а конкретно от спелла? причем нанесение дмж может быть и триггером.
Старый 21.07.2006, 20:02
Olorin

offline
Опыт: 11,841
Активность:
1)хз
  1. А разве это вообще принципиально?
Старый 21.07.2006, 20:08
Elianth
Черный Кот
offline
Опыт: 2,636
Активность:
Т.к. я нахожусь в маразме, мое предложение:

1/Делать спелл на основе Волны Силы, а ракеты и все остальное делать триггерно.
2/Смерть юнита есть состояние его life меньше или равно 0, т.е. после триггерного повреждения можно отследить уровень жизни юнита, и, к примеру, внести нужную информацию в переменную.

Elianth добавил:
Или сделать ракеты отдельными юнитами, которые самоубийцы-комикадзе без сплэш-атаки.
Старый 21.07.2006, 20:46
DioD

offline
Опыт: 45,134
Активность:
http://xgm.guru/forum/showthread.php?p=125123

Тему веду я, тут явно вопрос по джаз
Старый 22.07.2006, 06:46
XFaNT
Злобный Модер
offline
Опыт: 4,328
Активность:
B100D E1F
1) создаёшь две группы g1 и g2, создаешь триггер с периодическим событием, ставишь туда действия
Отряд - Add all units of (Units within 200.00 of (Position of (Ракета)) matching (((Matching unit) is in g1) равно Нет)) to g2
For each (Integer A) from 1 to (Number of units in g2), do (Actions)
Цикл - Действия
Set unit = (Random unit from g2)
Боевая единица - Cause (Рокета) to damage unit, dealing 100.00 damage of attack type Заклинание and damage type Обычное
Отряд - Remove unit from g2
Отряд - Add unit to g1
в итоге, у тебя все юниты вокруг рокеты выбираются в группу 2, с условием, что они не в группе 1, затем выбираем случайного юнита из группы 2, дамачим его, выкидываем из 2 и пихаем в 1. И так с каждым юнитом из 2. При следующем выборе, все продемаченные юниты будут в группе 1, и триггер их отсеит.
Старый 22.07.2006, 10:50
Elianth
Черный Кот
offline
Опыт: 2,636
Активность:
XFaNT, хитро придумано, хороший метод, я его у себя поюзаю.
Старый 22.07.2006, 11:18
B100D E1F
Scarecrow
offline
Опыт: 4,719
Активность:
Пасиба, XFaNT - за 1), а Элиант - за 2). Все так и сделаю. Тока вот трабла. В первом. У меня там спелл до 10(!) таких рокет. И что, мутить 20 групп?
Старый 22.07.2006, 17:45
DioD

offline
Опыт: 45,134
Активность:
Зачем 20 групп? Отдельный тригер для каждой рокеты...
Старый 22.07.2006, 18:04
B100D E1F
Scarecrow
offline
Опыт: 4,719
Активность:
Гы, а если они одновременно летают? Если я чо-то не понял, то разъясни поподробнее.
Старый 22.07.2006, 18:15
DioD

offline
Опыт: 45,134
Активность:
Создаёшь луп по рокетам и для каждой вызываешь функцию запуска
loop
exitwhen
set 1= 1+1
call CreateRocet(Target,sourse,damager,damage speed)
endloop
Вот таким образом это может быть сделано иначе никак, каждая рокета в отдельном тригере, если заинтересовало прошу в джаз роздел для дальнейшего обсуждения...
Старый 22.07.2006, 18:20
XFaNT
Злобный Модер
offline
Опыт: 4,328
Активность:
DioD ты неправ
B100D E1F создаешь группы с массивом и ракеты тоже в массив, и если ракет определённое число, то пишешь цикл:
для каждого А от 1 до *число ракет* ду актионс
Отряд - Add all units of (Units within 200.00 of (Position of (Ракета[A])) matching (((Matching unit) is in g1[A]) равно Нет)) to g2[A]
For each (Integer B) from 1 to (Number of units in g2[A]), do (Actions)
Цикл - Действия
Set unit = (Random unit from g2[A])
Боевая единица - Cause (Рокета[A]) to damage unit, dealing 100.00 damage of attack type Заклинание and damage type Обычное
Отряд - Remove unit from g2[A]
Отряд - Add unit to g1[A]
unit"а можно не массивить,он может быть во многих группах сразу.
НО!! после окончания действия спела надо вводить фильтр,
для каждого А от 1 до *число ракет* ду актионс
Отряд - Remove all units of g1[A] from g1[A]
Отряд - Remove all units of g2[A] from g2[A]
это очистит группы
это нужно чтобы при следующем касте атаковались юниты, атакованные в предыдущем.
Старый 22.07.2006, 20:51
Korneliy
DMF
offline
Опыт: 23,443
Активность:
А че не использовать "Стадо ящериц"???
Старый 23.07.2006, 05:46
DioD

offline
Опыт: 45,134
Активность:
Для одно инстантного спелла сойдёт, хотя то что тут было гениально написано работать будет очень сомнительно
Старый 23.07.2006, 08:46
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 07:55.