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

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

Ответ
 
GRIN

offline
Опыт: 107
Активность:
Проблемы с заклинанием...
Вобщем надо сделать такое заклинание, которое рэндомно выбирает 5 ближайших юнитов(вражеских) и делает их дружественными(не твоими, тоесть ты не можешь ими управлять, но они атакуют врага).
Пытался сделать его.....заклинание подчинение не подходит для основы т.к. действует на 1 юнита(которого надо выбрать, а мне надо чтоб нажал на заклинание и всё), затем решил взять за основу громовую поступь сделал массив размером 5 и записал в него 5 юнитов-целей заклинания....оказалось что у этого заклинания цель-герой....тоесть после применения заклинания герой становился другого цвета а затем через некоторое время умирал(как и предпологалось в заклинании) затем взял за основу звездопад, оказалось что у звездопада вообще нету цели заклинания...Вот вобщем и всё, больше заклинаний не нашёл нужных.
Может кто знает как осуществить это?
Старый 12.02.2006, 17:34
MapMan
Corey 8 Taylor
offline
Опыт: 21,554
Активность:
ХЗ, пробуй триггерно!
Старый 12.02.2006, 17:54
GRIN

offline
Опыт: 107
Активность:
MapMan
Так а я как написал?...разве обжект эдиторе можно создавать массивы?
Старый 12.02.2006, 18:08
MapMan
Corey 8 Taylor
offline
Опыт: 21,554
Активность:
GRIN балин извеняюсь, невнимательно читал:)
Старый 12.02.2006, 18:10
exploder
iOS zealot
offline
Опыт: 19,394
Активность:
GRIN массивы фтопку. Делай группой. А потом крутишь группу и меняешь плаера, хозяина юнитов(на союзника).
Старый 12.02.2006, 18:13
GRIN

offline
Опыт: 107
Активность:
exploder
Сорри но не мог бы ты написать пример кода?
Заранее спасибо..
Старый 12.02.2006, 18:21
Mozes
Green Street!
offline
Опыт: 5,034
Активность:
А сделал бы леденящим криком?
Или например ревом.
Старый 12.02.2006, 18:59
GRIN

offline
Опыт: 107
Активность:
Mozes
Рёв кастуется на дружественные войска, а крик щас попробую...

GRIN добавил:
Mozes
Блин.....таже история что и с звездопадом...

GRIN добавил:
Вот код может в нём всё дело...

События
Боевая единица - unit Начинает применять способность
Условия
(Ability beging cast) равно Леденящий крик
Действия
For each (Ineger A) from i to 5, do (Actions)
Цикл - Действия
Set u[i] = (Target unit of ability beging cast)
Боевая единица - Change color of u[i] to Жёлтый
Set i = (i + 1)



Wait 10 seconds
Set i = 0
For each (Ineger A) from i to 5, do (Actions)
Цикл - Действия
Боевая единица - Kill u[i]
Set i = (i + 1)
Старый 12.02.2006, 19:48
0pJl9lTa

offline
Опыт: 3,397
Активность:
GRIN массивы чушь... вернее не чушь, но для этого случая чушь
час вышлю пример.

0pJl9lTa добавил:
балин... начал читать спел ужаснылся
ВОБЩЕМ
в заклинании (любом) есть графа на кого оно действует. Идем туда, жмем. И ставим галочки на того кого нада.
тебе нада след.
Англ:
Enemy,Air,Ground,Non Hero, Not Self,Organic
Рус:
Враги, воздушные,наземные,не героя, не сам воин, органические
Старый 12.02.2006, 21:30
NETRAT

offline
Опыт: 83,712
Активность:
GRIN вот как раз то что у тебя жирным выделено это и неправильно. Видишь, ли, в триггерах у любой абилы может быть не более одной цели - то есть абилы, которые кастуются на цель, возвращают функцией (Target unit of ability beging cast) юнита, на которого кастуется абила, однако, этот юнит всего ОДИН (подчинение вернет тебе одного юнита). Абилы, которые кастуются на землю, вообще не имеют цели - то есть эта функция тебе ничего не вернет. Таким образом, сложность спеллов, которые действуют на группы юнитов(читай на землю) в том, что ты не знаешь как получить этих юнитов. То есть этот спелл тебе нужно делать абсолютно по-другому.
Выбираем дамми-абилу. Сходу на ум приходит Dispell Priest'a - он действует на землю.
В событии все как у тебя
События
Боевая единица - Unit Finishes casting an ability
Условия
(Ability beging cast) равно Dispell
А вот в действиях нам нужно получить координаты точки на земле, в которую попадает спелл и уже от нее плясать. Пускай, целевых юнитов мы выберем юнитов, находящихся на расстоянии не более 300 единиц от этой точки, тогда
Действия
set p = (Target Point of Ability Being Cast)
Group - Pick Every Unit in group (Units In Range 300 of (p) (здесь твои условия - каких юнитов нужно выбирать))
А далее делаешь с выбранным юнитом то что тебе нужно - меняешь игрока
Старый 13.02.2006, 00:31
GRIN

offline
Опыт: 107
Активность:
NETRAT сенкс
Старый 13.02.2006, 18:50
GRIN

offline
Опыт: 107
Активность:
NETRAT
Сорри за тупой вопрос, но как из группы юнитов(которая теоретически может быть в 1000 юнитов и больше..), выделить 5?
Старый 13.02.2006, 23:35
NETRAT

offline
Опыт: 83,712
Активность:
GRIN оптимально - использовать жасс такую хорошую функцию GroupEnumUnitsInRangeCounted
неоптимально - можно использовать группу Random (количество юнитов) units from Group (Группа)

NETRAT добавил:
Flasher да без разницы, просто первое что в голову пришло - я не сразу понял что за леденящий крик
Старый 14.02.2006, 01:57
Iron
Листовой
offline
Опыт: 24,427
Активность:
Цитата:
set p = (Target Point of Ability Being Cast)
Group - Pick Every Unit in group (Units In Range 300 of (p) (здесь твои условия - каких юнитов нужно выбирать))

Выпей йаду, лучше : Group - Pick Every Unit in group (Units In Range 300 of ((Target Point of Ability Being Cast)) (здесь твои условия - каких юнитов нужно выбирать))
Старый 14.02.2006, 19:20
Ответ

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

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

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

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



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