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

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

 
НЕзаяЦ

offline
Опыт: 3,574
Активность:
Техника с экипажем
Ищу подсказки как осуществить работу техники(танка к примеру) при наличии экипажа. Стоит нейтральная техника, в нее могут сесть определенные юниты любого игрока.
  • Техника принимает цвет и принадлежность игрока чьи юниты внутри, выходят - техника снова нейтральная.
  • Чем меньше юнитов внутри тем медленнее работает эта техника.
  • Не знаю как посадить внутрь юнитов(техника то нейтральная)
  • Догадываюсь как сделать ускорение работы с каждым дополнительным юнитом внутри, не знаю как правильно это прикрепить.
Второй вариант техники это что бы юниты которые в нее сели остались снаружи(к примеру пушка второй мировой).
Совсем нет идей как это сделать.
Работаю только с ПО, вариант триггера может появиться только при смене принадлежности техники.
Если кто знает как осуществить хотя бы один из пунктов, помогите пожалуйста.
Старый 19.09.2013, 02:11
Duke911

offline
Опыт: 3,907
Активность:
ускорение работы - самое простое:
-делаешь behavior c periodic эффектом search area очень маленького радиуса(например 0.1) - тогда в эту область будут попадать только юниты находящиеся на одной точке( а это как раз наш случай). Вешаешь этот бехавиор на пилота который будет садиться внутрь. Ну и эта search area соответственно будет вешать другой behavior, который и будет ускорять нашего юнита.
Старый 19.09.2013, 11:08
НЕзаяЦ

offline
Опыт: 3,574
Активность:
Что именно вешать на пилота? И почему на пилота а не на технику?
Старый 19.09.2013, 17:35
Duke911

offline
Опыт: 3,907
Активность:
Постараюсь объяснить более подробно:
-Создаём бехавиор PilotAura(Caster) типа Buff и бехавиор PilotAura(target) типа Buff, поле Duration последнего устанавливаем на 1, а поле MaximumStackCount(могу ошибаться в точном названии поля) на 256(ну или на сколько пилотов макс влезит в транспорт).
-Создаём эффект PilotAura(ApplyBehavior) типа ApplyBehavior. В поле Behavior этого эффекта устанавливаем наш бехавиор PilotAura(target). Также можно воспользоваться и полем Validators только что созданного эффекта - здесь можно выбрать уже существующие валидаторы или даже создать свой в одноименной закладке DataEditora.
-Создаем эффект PilotAura(SearchArea) типа SearchArea, открываем поле Area и там создаём новую область с маленьким радиусом(0.1) и эффектом PilotAura(ApplyBehavior). В настройках Targets делаем чтобы эффект находил только своих.
-В поле PeriodicEffects нашего бехавиора PilotAura(Caster) вносим PilotAura(SearchArea), поле Period устанавливаем на 1. Теперь этот бехавиор PilotAura(Caster) можно добавить нашему юниту-пилоту в поле Behaviors.
-Теперь нам осталось лишь выбрать что будет делать наш бехавиор PilotAura(target). Это делается через поле Modifications этого бехавиора. Там на выбор всё что угодно, думаю разберёшься сам.
Как это работает:
На юните-пилоте постоянно висит бафф который каждую секунду запускает нашу SearchArea которая в случае если находит кого то в радиусе 0.1(а кроме как до нашего транспорта она не до кого и не дотянется) то вешает на него бафф PilotAura(Target) который и ускоряет юнита-транспорт. Если юниты вылазят то через секунду бафф спадает и больше не обновляется.
Старый 19.09.2013, 19:22
НЕзаяЦ

offline
Опыт: 3,574
Активность:
а можно как то заморозить работу юнита-технику в котором нет пилотов? А как быть если вся техника нейтральная изначально?
Старый 19.09.2013, 23:42
Duke911

offline
Опыт: 3,907
Активность:
заморозка работы юнита без пилотов:
-Создаем бехавиор TransportDisabler типа buff, открываем у него поле Modifications там залазим в Abilities и в Abilities Disabled ставим галочки возле типов способностей которые не будут работать без пилотов(move, attack и т.д.)
-Создаем Requirement, назовем UseTransportDisabler. В поле (Basic) Basic: Requirement + переключаемся на Expression и прописываем "CountBehavior(PilotAuratarget,CompleteOnlyAtUnit) < 1". (теперь этот реквайрмент отслеживает наличие нашего вышезоданного бафа PilotAura(target) на юните)
-Добавляем в поле Behavior:Requirements нашему TransportDisabler только что созданный реквайрмент UseTransportDisabler.
-Добавляем нашему юниту-транспорту в поле Behaviors наш TransportDisabler.
Теперь на юните транспорте постоянно висит бафф который выключает ненужные нам способности. Как только требования для него перестают выполняться(тоесть кол-во PilotAura(target) на юните больше 0) то этот бафф отключается, но продолжает висеть, чтобы включиться когда юниты вылезут.
Старый 20.09.2013, 08:40

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

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

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

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



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