Бесконечный Бой (Вариант N1), о том как респить солдат и заставить их бежать на войнц |
|
Здравствуйте, гость ( Вход | Регистрация )
Бесконечный Бой (Вариант N1), о том как респить солдат и заставить их бежать на войнц |
20.12.2006, 23:16
Сообщение
#1
|
|
Группа: Сообщений: 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] |
|
|
22.12.2006, 9:11
Сообщение
#2
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
StalkerXey писал:
Цитата Но только что-то я не сообразил как перезапускать триггер к моменту написания этого мануала ) Так что здесь описан такой вариант. Триггер,который сработал,надо сбросить.Описывать какие кнопки в редакторе нажимать не буду.Пример,что должно получиться: Код {"russian/freemen/oppod" {condition } {actions {"actor_to_waypoint" {selector {mids 1} } {waypoint "1"} {clone} } {"delay" {time 30} } {"trigger"-сброс триггера на повторное исполнение через 30 секунд. {name "russian/freemen/oppod"} } } } Все проверил-работает.Юнита mid 1-ставил как hidden(не видимый). Сообщение отредактировал StalkerXey - 11.12.2007, 20:06 |
|
|
22.12.2006, 13:20
Сообщение
#3
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
Триггер,который сработал,надо сбросить.Описывать какие кнопки в редакторе нажимать не буду.Пример,что должно получиться: Код ............ {"trigger"-сброс триггера на повторное исполнение через 30 секунд. {name "russian/freemen/oppod"} } ............ Все проверил-работает.Юнита mid 1-ставил как hidden(не видимый). Понял. Спасибо. В редакторе это просто будет комманда trigger - там выбираем нужный триггер и не ставим галочку в строке ON - настройки этой команды. Вроде тоже работает Подскажи плиз как в эти карты можно играть?? Загружать их как мод или как то еще??? вот тут в основном F.A.Q.`е написано как запускать в игре карты: http://forum.cnews.ru/index.php?showtopic=25660 - вопрос "Q: Как подключить созданную миссию/карту к игре?", прям в первом сообщении глянь |
|
|
22.12.2006, 20:42
Сообщение
#4
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
Dmirog
Цитата Описывать какие кнопки в редакторе нажимать не буду.Пример,что должно получиться: А вот это зря Напишите, многим будет полезно и включат в мануал обязательно! |
|
|
5.1.2007, 14:49
Сообщение
#5
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
Не совсем понятно, как сделать чтобы появлялось определенное количество юнитов или техники, из тумана.
Скажем когда надо выжидать колонну из танков в определенном месте. Подскажите плиз. |
|
|
5.1.2007, 15:49
Сообщение
#6
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
Не совсем понятно, как сделать чтобы появлялось определенное количество юнитов или техники, из тумана. Это даже не совсем про бесконечный бой.Скажем когда надо выжидать колонну из танков в определенном месте. Подскажите плиз. Можно сделать например такой вариант. Поставить заранее всех в туман. Затем при старте миссии командой через триггер какой-нить поставить им inactive - ON. А затем в нужный момент переключить incative на OFF и отправить всю эту технику по вейпоинтам... |
|
|
5.1.2007, 16:00
Сообщение
#7
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
Не совсем понятно, как сделать чтобы появлялось определенное количество юнитов или техники, из тумана. Скажем когда надо выжидать колонну из танков в определенном месте. Подскажите плиз. Можно сделать например такой вариант. Поставить заранее всех в туман. Затем при старте миссии командой через триггер какой-нить поставить им inactive - ON. А затем в нужный момент переключить incative на OFF и отправить всю эту технику по вейпоинтам... Ок. Спасибо. А таймер при этом выставляется? И потом в туман поставить...а у меня он будет с самого края карты, ну так уж нарисовал и смасштабировал... как быть тут? за край карты ж технику не поставишь... |
|
|
5.1.2007, 21:22
Сообщение
#8
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
Ок. Спасибо. А таймер при этом выставляется? И потом в туман поставить...а у меня он будет с самого края карты, ну так уж нарисовал и смасштабировал... как быть тут? за край карты ж технику не поставишь... Ну почему не поставишь - взял, да и нарастил там территории. Вроде разработчики там где надо так и делают, - на дорогах например.На вкладке Poligons как раз и наращиваются полигоны. Либо можно ещё и границы двигать. Тока если будешь ставить солдат и технику вне фиолетовых границ - она будет убегать внутрь пытаться. Даже в редакторе =) P.S. причем тут таймер - я не понял. |
|
|
6.1.2007, 8:08
Сообщение
#9
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
Не совсем понятно, как сделать чтобы появлялось определенное количество юнитов или техники, из тумана. Скажем когда надо выжидать колонну из танков в определенном месте. Подскажите плиз. Можно сделать например такой вариант. Поставить заранее всех в туман. Затем при старте миссии командой через триггер какой-нить поставить им inactive - ON. А затем в нужный момент переключить incative на OFF и отправить всю эту технику по вейпоинтам... :+:Можно ставить где угодно,только чтобы сделать юнита невидимым до определенного времени нужно в свойствах юнита (tags) прописать hidden (невидимый).После срабатывания event (или другого события) прописать триггер где юнит привязан к вэйпоинту (в свойствах вэйпоинта поставить какое-нибудь действие,например атаковать).После срабатывания триггера юниты появятся и начнут действие прописанное в вэйпоинте.Это для атаки или какого-нибудь движения,а если просто чтобы появился на карте (можно использовать не только юнитов,но и технику,конструкции,инвентарь и т.д.),тогда как ты написал.Но чтобы не ставить туман придется прописывать как hidden.Кстати триггер клонов не работает пока не пропишешь юнитов невидимыми. Сообщение отредактировал Dmirog - 6.1.2007, 8:11 |
|
|
6.1.2007, 12:31
Сообщение
#10
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
Ок. Спасибо. А таймер при этом выставляется? И потом в туман поставить...а у меня он будет с самого края карты, ну так уж нарисовал и смасштабировал... как быть тут? за край карты ж технику не поставишь... На вкладке Poligons как раз и наращиваются полигоны. Либо можно ещё и границы двигать. Тока если будешь ставить солдат и технику вне фиолетовых границ - она будет убегать внутрь пытаться. Даже в редакторе =) P.S. причем тут таймер - я не понял. Про таймер я всмысле что выставить время через какое время они должны появиться...и еще таймер я имел ввиду ну в Диверсантах 2 или в последней миссии за гансов в ВТВ 2 - допустим продержаться 10 минут до подхода подкрепления. Про наращивание полигона спасибо - не дотумкал. |
|
|
6.1.2007, 19:53
Сообщение
#11
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
Про таймер я всмысле что выставить время через какое время они должны появиться...и еще таймер я имел ввиду ну в Диверсантах 2 или в последней миссии за гансов в ВТВ 2 - допустим продержаться 10 минут до подхода подкрепления. Про наращивание полигона спасибо - не дотумкал. Так для общего сведения. Полигон в данном случае - эт не место сражения, а единица поверхности. Самый маленький кусочек, который можно нарастить или добавить... В командах в scenario - есть команда timer кажется. Вот он высвечивает окошко отсчета времени. |
|
|
8.1.2007, 2:32
Сообщение
#12
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
Не совсем понятно как сделать так чтобы в ходе боя в группе добовлялось определенное количество
юнитов взамен убитых. Может где-то надо в условиях прописать допустим колличество допустимых потерь |
|
|
8.1.2007, 11:44
Сообщение
#13
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
Не совсем понятно как сделать так чтобы в ходе боя в группе добовлялось определенное количество юнитов взамен убитых. Может где-то надо в условиях прописать допустим колличество допустимых потерь в примере когда число солдат за какую-то сторону в зоне боя становится меньшим 6-и (conditions триггера такие просто), тогда и срабатывает триггер появления нового солдата. |
|
|
8.1.2007, 13:57
Сообщение
#14
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
Ну с одиночными то понятно, а вот как сделать тоже самое с отрядом, вот это пока не получается
|
|
|
8.1.2007, 14:28
Сообщение
#15
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
Ну с одиночными то понятно, а вот как сделать тоже самое с отрядом, вот это пока не получается ну если надо просто одновременно несколько солдат - то поставить несколько команд, которые респят (waypoint) солдат и все. Если нужно разных солдат, но всех в установленном количестве (то вроде б тоже не проблема) - тоже несколько команд, но разных солдат использовать. Если же надо ещё и что-то вроде - что б респилось 6 человек да случайного типа... это уже мне надо с мыслями собраться и написать как в игре случайные события применять. Ну или просто разобраться с командой loop и switch. С помощью команды loop можно вызвать нужное количество раз команду внутри неё. А с помощью switch осуществить появление случайного солдата. |
|
|
8.1.2007, 15:45
Сообщение
#16
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
|
|
|
11.1.2007, 22:30
Сообщение
#17
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
Ну как я не пытался заставить появляться определенное колличество солдат, пока не вышло. AI - засранец выпкает всегда больше чем нужно, я под конец решил затратить час драгоценного времени чтобы понаблюдать сколько их накопится - как говорится "что не хотел, то и получил"
|
|
|
12.1.2007, 15:32
Сообщение
#18
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
Ну как я не пытался заставить появляться определенное колличество солдат, пока не вышло. AI - засранец выпкает всегда больше чем нужно, я под конец решил затратить час драгоценного времени чтобы понаблюдать сколько их накопится - как говорится "что не хотел, то и получил" в моем примере их получается больше чем 6 - т.к. респяться они вне зоны проверки на количество шести человек. Поэтому пока там окажется больше 6 - нареспится может и больше.
|
|
|
12.1.2007, 21:58
Сообщение
#19
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
в моем примере их получается больше чем 6 - т.к. респяться они вне зоны проверки на количество шести человек. Поэтому пока там окажется больше 6 - нареспится может и больше. Угу, я тоже не сразу понял, почему их появляется >6 человек . Пока не вник в логическое условие срабатывания триггера. А т.к. я твои скрипты повторял на своей карте, со своими размерами зоны и граница зоны была довольно далеко от стартовых вейпоинтов, то у меня народ ну просто косяками по карте ходил. Может имеет смысл немного изменить описание примера и обратить внимание на такой эффект? Хотя с другой стороны, самостоятельное изучение причины это вовсе даже не пустое занятее, а скорее наоборот. Сообщение отредактировал IngvarNSK - 12.1.2007, 22:04 |
|
|
12.1.2007, 22:18
Сообщение
#20
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
в моем примере их получается больше чем 6 - т.к. респяться они вне зоны проверки на количество шести человек. Поэтому пока там окажется больше 6 - нареспится может и больше. Угу, я тоже не сразу понял, почему их появляется >6 человек . Пока не вник в логическое условие срабатывания триггера. А т.к. я твои скрипты повторял на своей карте, со своими размерами зоны и граница зоны была довольно далеко от стартовых вейпоинтов, то у меня народ ну просто косяками по карте ходил. Может имеет смысл немного изменить описание примера и обратить внимание на такой эффект? Хотя с другой стороны, самостоятельное изучение причины это вовсе даже не пустое занятее, а скорее наоборот. для меня это само собой вроде б даже подразумевающееся ) Просто сделал так ещё для того - если кого-то сильно теснят - что прям уж из зоны выбивают прям к точке респа - то система будет таким образом респить очень много солдат и зарвавшихся атакующих ставить на место ) Сообщение отредактировал StalkerXey - 12.1.2007, 22:19 |
|
|
Текстовая версия | Сейчас: 26.4.2024, 6:39 |