И вновь продолжается бой…
…Или как сделать бесконечные подкрепления.
http://forum.cnews.ru/index.php?showtopic=25856&st=0
Вступление.
В этом мануале будет описано как сделать бесконечные подкрепления. Так же будут задеты в рассмотрении чуть-чуть триггеры, зоны и юниты.
В итоге получаться две стороны – русские и немцы, сражающиеся друг с другом до потери крови у процессора
И ещё. В этом мануале я уже надеюсь, читатель – знает как переключаться между игроками в редакторе, основные горячие клавиши и т.д.
Часть 1. Создание оформления.
Прежде всего создадим какое-то окружение для места боя – иначе смотреть на выходки ИИ будет не очень интересно. Можно сделать все что угодно – переправу через реку, просто взятие холма с двух сторон, поставить несколько домиков в поле и т.д.
Главное что б им было где укрываться и прятаться на территории.
Мне вот захотелось сделать холмик, посередине церквушку и пусть вокруг неё сражаются.
[attachment=4555:attachment]
Часть 2. Подготовка к сражению.
После того как поле боя создано, надо заняться войсками. Я не буду очень сильно мучится с войсками, поэтому буду сражаться русские автоматчики против немецких автоматчиков.
Итак, поставьте на карту (где угодно – это неважно) двух автоматчиков, разных сторон. Например одного русского за сторону 0 (серую), а второго немецкого за 1 (красную).
Теперь чуть-чуть подредактируем их. Сначала выберем и перезарядим им оружие. Дальше залезем в инвентарь (выделите автоматчика, когда находитесь в режиме редактирования параметров юнитов и нажмите последовательно на клавиатуре кнопки W и 7). Добавим патронов им чуть-чуть и чего ещё душе угодно.
Теперь поменяем сами параметры этих героев. В первую очередь добавляем каждому из них пара тагов (щелкаем в поле tags на кнопку с тремя точками). Каждый из солдат должен получить таг template, плюс русский награждается тагом rus_aft, а немее ger_aft.
Ещё увеличим move_radius ну скажем до 15 или 20, а advance_ratio сделаем равным 0.
С редактированием Солдатов закончили.
Часть 3. Первый, но не последний триггер.
Настало время превратить двух бойцов в заготовку для армий. Для этого сделаем триггер, срабатывающий при запуске миссии.
Открываем вкладку triggers и создаем новый триггер (я назвал его init, но можно как угодно). В поле conditions (условия) ничего не делаем, зато создаем новое поле в commands. И выбираем в меню следующее: entity->entity_state. И вот в commands появилась первая команда, жмем на неё два раза и ставим следующие параметры:
- жмем selector и в строке tags выбираем таг template и больше ничего не меняем в селекторе.
- параметр inactive – переключаем на ON.
Жмем Ок. Команда отредактирована – теперь все юниты с тагом template при срабатывнии триггера (а он срабатывает при запуске) будут становится неактивными и исчезать с карты, при этом их можно будет копировать.
Добавим ещё одну команду – event. Поле mode=set, delay=0, а в event – добавим новый event под название ”warnow” и выберем его.
Часть 4. Настройка вейпоинтов.
Теперь надо определится с местами появления солдат и путем их передвижения. Для автоматического передвижения солдат используются вейпоинты, которые можно связывать друг с другом. Переключимся на вкладку waypoints.
В ней в поле groups выберем default. А в части Waypoints нажмем кнопку Add. Теперь у нас в мышке появился вейпоинт, который надо добавить на карту. Расставьте вейпоинты так, что б они вели с двух сторон к полю боя. У меня это выглядит так –
[attachment=4556:attachment]
(ну на рисунке что б понятней было стоят вейпонинты тока для одной стороны)
Теперь выделим все вейпонты одного пути по порядку по мере приближения к полю сражения, зажав SHIFT. Например на моем рисунке я выделял по порядку 0, 1, 2, 3 и 4. Выделив их – жмем кнопку link. Теперь от одного к другому ведут стрелочки прямо до церкви
[attachment=4557:attachment]
Осталось настроить первый (самый дальний от будущего сражения вепоинт). Выбираем его одного и в поле commands добавляем новую команду – actor_state. Настраиваем эту команду следующим образом:
- movement/speed=fast
- movement/kind=fast
Аналогичные действия делаем с вейпоинтами противоположенной стороны.
Часть 5. Не забудем подкрепления.
Теперь сделаем зону вокруг церкви. Переключимся в режим Zone и нажмем New Circle. Назовем зону, например, war_zone. Теперь поставим зону где-нибудь в центре будущего сражения. И растянем (тянуть за дугу) эту зону до довольного большого размера.
В итоге вышло что-то такое –
[attachment=4558:attachment]
Часть 6. В бой!
Осталось теперь сделать генерацию армии (всего ничего).
Теперь делаем ещё два триггера (rus-gen и ger-gen). Я опишу настройки только одного из них, второй настраивается точно так же (не забывайте тока меня таги на противоположенные и стороны с 0 на 1 заменять).
Сначала поставим в триггерах условия. Жмем на поле conditions в созданном триггере правой кнопкой мышки и из предложенных вариантов выбираем +event. Тыкаем на появившуюся строчку условия и настраиваем её так: mode=work, а в id выбираем ”warnow” event.
Первую команду, которую ставим в триггере – это delay с параметром time=1.
Следующая команда – это while. В её параметрах указываем: type=event, mode=work и в id выбираем ранее созданный Event – ”warnow”.
И вот мы получили бесконечный цикл. Осталось его использовать для создания солдат.
Жмем в таблице Commands на команде while правой кнопкой мышке и в менюшке выбираем add inside. И создаем следующую команду – if. Её настраиваем следующим образом:
- type=entities
- zone=war_zone
- mode=work
- player=player 0 (для немцев это сторона 1)
- count = <
- value = 6
И жмем Ок. Теперь тыкаем на IF и жмем там add inside – и выбираем там waypoint, настройки которого должны быть такими:
- who = actor
- tag = rus_aft (для немцев это ger_aft)
- waypoint = 0 (это номер самого дальнего вейпоинта – того самого, в котором писали команды, ну и для немцев номер будет какой-то другой)
- clone – ставим галку
- approache = teleport
Жмем окей.
Теперь делаем add inside для while и добавляем команду delay с time=2;
В итоге у меня получились команды вот в таком виде –
[attachment=4559:attachment]
Делаем почти тоже самое для другой стороны.
И на это все готово – можете смотреть за войной русских и немцев за церквушку на горке (ну или где сами сделали)
Только есть тут один недочет, который мне не нравится. Хотелось бы что б не было while, а условие if было б в conditions, а не как if. Тогда просто при включенном event’е и недостатке солдат включался бы и линейно проигрывался бы триггер – генерирующий очередного солдата – это было б проще. И думаю это не сложно сделать. Но только что-то я не сообразил как перезапускать триггер к моменту написания этого мануала ) Так что здесь описан такой вариант.
Часть 7. И вновь продолжается бой…
Это лишь самый просто пример. На самом деле можно использовать всякие случайности. Можно использовать не один тип солдат, а много – скока захочется. Можно сделать условия окончания этих подкреплений (выключить по какому-то условию event "warnow" каким-нить триггером). Добавить танки. Сделать кучу каких-то других наворотов. В общем что б было интересней, полезней и веселей ).
И сделайте побольше укрытий для ИИ, разбросанных по карте (у меня это пеньки там всякие) – он их просто обожает и играет с ними получше :D
В общем удачных вам карт и модов
[attachment=4560:attachment]
---------
Комментарии и исправления к данному материалу принимаются и приветствуются. Если есть что добавить - не молчите, говорите!
---------
И ах да. То, что я натворил, прилагается.
[attachment=4561:attachment]
---------------------
------------------------
Вариант тутора от BloodSmith'а
-----------------------
-----------------------
Для тех кто в танке... КЛОНИРОВАНИЕ. (Дубль N)
Суть: Создать ситуацию при которой солдат появляется с края карты, бежит до определенной точки (назовем ее точкой - "0"), затем погибает и появляется вновь с краю карты... бежит до определенной точки "0" ... и т.д. до бесконечности.
Рассмотрим вкратце поэтапно, что нужно сделать:
1. Создание новой карты. (F2) - New. Сохраняем. В принципе, можно воспользоватся любой картой.
2. Создание миссии. (F3)
2.1. Сначала установим примерно по центру карты точку "0". (Вейпоинт 0)
2.1. Ставим юниты противника (player 2) рядом с точкой прибытия нашего юнита (точка "0").
2.2. С краю карты ставим одного нашего юнита (которого будем клонировать). Устанавливаем ему player 1. Тут же на вкладке тэги (tags) прописываем два тега:
hidden
rus1
, где "hidden" - служебный тэг, указывающий, что наш юнит будет скрыт вначале миссии.
"rus1" - тэг принадлежности к группе (имя группы). Можно задавать произвольно.
[attachment=7419:attachment]
2.3. Создадим прямоугольную зону. Назовем ее allmap и растянем ее по всей карте.
[attachment=7420:attachment]
Теперь самое главное - запускающий триггер.
3. Создадим триггер с названием rusclone. Сразу в нем установим галочку Autoreset (перезапускающийся).
3.1. В условии Condition прописываем entities с параметрами:
tag rus1
zone allmap
type human
state not dead
count <
value 1
[attachment=7421:attachment]
Это условие будет звучать так:
Условие сработает, если в зоне allmap не будет ниодного живого человека с тэгом rus1.
Теперь нужно написать что же произойдет при выполнении условия.
3.2. В окне Commands пишем waypoint c параметрами:
who actors
tag rus1
waypoint 0
clone - ставим галочку.
[attachment=7422:attachment]
Описание команды:
Клонируем юнита с тэгом rus1 и отправить его в точку "0".
Если мы в команде waypoint также укажем approach teleport , то юнит переместиться в точку мгновенно.
3.3. Для автоматического перезапуска в триггер еще добавим новую команду trigger c параметрами:
trigger rusclone
on ставим галочку
[attachment=7425:attachment]
Все, запускаем!
[attachment=7426:attachment]
StalkerXey писал:
Dmirog
Не совсем понятно, как сделать чтобы появлялось определенное количество юнитов или техники, из тумана.
Скажем когда надо выжидать колонну из танков в определенном месте.
Подскажите плиз.
Не совсем понятно как сделать так чтобы в ходе боя в группе добовлялось определенное количество
юнитов взамен убитых. Может где-то надо в условиях прописать допустим колличество допустимых потерь
Ну с одиночными то понятно, а вот как сделать тоже самое с отрядом, вот это пока не получается
Ну как я не пытался заставить появляться определенное колличество солдат, пока не вышло. AI - засранец выпкает всегда больше чем нужно, я под конец решил затратить час драгоценного времени чтобы понаблюдать сколько их накопится - как говорится "что не хотел, то и получил"
Может тогда зону надо попросту расширить до точки респавнов.............
Убрал зону к черту, расставил разных солдат, вроде теперь нормально, но все же чего-то не хватает . Просматривал миссию за амереканцев (Авранш) - там тоже есть вначале момент с респавном, тригеры на солдат нашел быстро, а вот общий тригеры пока несообразил, хотя я так понимаю они должны быть среди тригеров task
По поводу бесконечного боя я, допустим, хочу, чтобы у меня солдаты появлялись только десять минут как мне это сделать?
А как подключить к заварушке танки?
Забудь, не тот вопрос задад Я хотел спросить как сделать чтобы через какое то время (или кол-во повторений цикла) генерация прекартилась?
З.Ы. никто не знает, можно ли сделать чтобы юнит генерился случайно из 2-3 вариатов? :no:
Для тех кто в танке... КЛОНИРОВАНИЕ. (Дубль N)
Суть: Создать ситуацию при которой солдат появляется с края карты, бежит до определенной точки (назовем ее точкой - "0"), затем погибает и появляется вновь с краю карты... бежит до определенной точки "0" ... и т.д. до бесконечности.
Рассмотрим вкратце поэтапно, что нужно сделать:
1. Создание новой карты. (F2) - New. Сохраняем. В принципе, можно воспользоватся любой картой.
2. Создание миссии. (F3)
2.1. Сначала установим примерно по центру карты точку "0". (Вейпоинт 0)
2.1. Ставим юниты противника (player 2) рядом с точкой прибытия нашего юнита (точка "0").
2.2. С краю карты ставим одного нашего юнита (которого будем клонировать). Устанавливаем ему player 1. Тут же на вкладке тэги (tags) прописываем два тега:
hidden
rus1
, где "hidden" - служебный тэг, указывающий, что наш юнит будет скрыт вначале миссии.
"rus1" - тэг принадлежности к группе (имя группы). Можно задавать произвольно.
[attachment=7419:attachment]
2.3. Создадим прямоугольную зону. Назовем ее allmap и растянем ее по всей карте.
[attachment=7420:attachment]
Теперь самое главное - запускающий триггер.
3. Создадим триггер с названием rusclone. Сразу в нем установим галочку Autoreset (перезапускающийся).
3.1. В условии Condition прописываем entities с параметрами:
tag rus1
zone allmap
type human
state not dead
count <
value 1
[attachment=7421:attachment]
Это условие будет звучать так:
Условие сработает, если в зоне allmap не будет ниодного живого человека с тэгом rus1.
Теперь нужно написать что же произойдет при выполнении условия.
3.2. В окне Commands пишем waypoint c параметрами:
who actors
tag rus1
waypoint 0
clone - ставим галочку.
[attachment=7422:attachment]
Описание команды:
Клонируем юнита с тэгом rus1 и отправить его в точку "0".
Если мы в команде waypoint также укажем approach teleport , то юнит переместиться в точку мгновенно.
3.3. Для автоматического перезапуска в триггер еще добавим новую команду trigger c параметрами:
trigger rusclone
on ставим галочку
[attachment=7425:attachment]
Все, запускаем!
[attachment=7426:attachment]
Я сделал все ровно так, как было предложено, но они почему-то не воюют.
Просто скапливаются в кучи и стоят.
хехе, сделал всё по инструкции, НО! все танки и пехотинци спавнятся за1 секунду (хотя время появления в идеале 25сек) и через 3.5 минуты на поле около 1000 солдат, 500 танков и очень сильные тормоза изза их кол-ва! Подскажите где может быть ошибка, а то я уже всё изрыл.
И ещё вопрос: вот сделал я команду :Pz4 + 2 автоматчика +2 стрелка, задал появление по инструкции, но ничего не происходит, подскажите пожалуйста, может им особые настройки нужны?
Попробовал оба варианта, после запуска, клонируемые(ый) не телепортируются(ется), а просто исчезают(ет).
Короче не получается. (ЛП-1.17.5(1.11.5)).
Подскажите, пожалуйста, почему в данном примере я не могу управлять во время игры советскими солдатами, а в http://xn----8sbbemc3a7aecex.xn--p1ai/forum/index.php?act=ST&f=323&t=38656 - могу? Заранее, спасибо!
У меня солдаты не идут по вейпоинтам (сначала от 0 до 1, потом от 1 до 2 и так далее...), а сразу же спавнятся на самом последнем - четвертом. Создастся шесть человек - спавн прекратился. Если увести их с точки метров на пять - спавн включается, еще шестеро появляются. Делал все точно как написано. У меня цель не бесконечный бой, а сделать так, чтоб солдаты шли "косяками" (:D) по 4 человека. Поэтому я не делал второй стороны. И еще: какая команда отвечает за время спавна? Просто мне нужно чтобы солдаты появлялись не каждую секунду, а хоть через 30-40 секунд.
PDA3452 время delay или wait. По поводу вейпоинтов, может ты ошибся не тот вписал.
СПасибо большое всё очень понятно благодаря вам сделал такую феньку в моде))!!! :+:
У меня такой вопрос, я как то видел такой пример
comands:
waypoint
delay
triger
и с помощью
condition: entities
никто не подскажет как с помошью команды entities сделать чтобы в зоне было ограниченное количество солдат. я по примеру делал давно все работало, но щяс пример не могу найти.
Форум Invision Power Board (http://nulled.cc)
© Invision Power Services (http://nulled.cc)