C & C Generals World Builder

Содержание:
Урок №3:Основы скриптостроения


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

Внимание: Если вы используете стиль сайта с темным фоном, то рекомендую поставить белый. Это ни на что не влияет: просто у отдельных скриншотов будет белый фон.

Маршрут поезда.

• Запуск поезда является одним из самых простых способов внесения движений на карту.
Для начала зададим будущий маршрут движения. Для этого потребуется воспользоваться инструментом Waypoint Tool.

С помошью перетаскивания с зажатой ЛКМ расставим будущий маршрут нашего поезда.
При этом следует учесть, что поезд будет следовать строго по указанным точкам. Старайтесь не делать резких поворотов — поезд не сможет их преодолеть, а повороты по дуге выставляйте несколькими (5-7) точками.

Если вы вдруг промахнулись с установкой точки, её можно переместить, предварительно переключившись в режим курсора Select and Move.
Кроме того, маршрут поезда должен быть замкнутым, иначе, доехав до последней точки, он просто исчезнет.

Чтобы поезд точно знал свой путь, нужно все точки на его маршруте переименовать по шаблону Railroad <№_точки>, например, ”Railroad 1”, “Railroad 2” и т.д. Переименовать точку можно, сперва выделив её, а потом изменив верхнюю строку в открывшемся окне Waypoint Options.
Чтобы поезд не сваливался в реку при проезде через мост, допишем Tunnel к названию последней точки перед въездом на мост.
Кстати, все точки маршрута поезда желательно размещать на одном уровне, потому, что поезд некорректно преодолевает неровности рельефа. Теперь зададим поезду станцию, приписав нужной точке метку Station.

Обратный маршрут прокладывайте подальше от границы, иначе поезд будет слышен игроку, поднёсшему камеру к краю карты.
Я немного прогадал с местом станции, поэтому придётся подвинуть остановк чуть на север (наверх от исходного положения камеры).


Несложные скрипты

Теперь добавим на карту движущийся автомобиль (Place Object > Civilian > VEHICLE).
Пусть это будет фургончик. Он понадобится нам в дальнейшем.

Чтобы привязать скрипт к какому-либо объекту, нужно, чтобы он либо состоял в какой-либо группе (команде), либо имел собственное имя.
Фургон у нас один, группа ему не нужна. А потому назовём наш фургончик, например, Van_01 и пропишем это славное имя в графе Name окна Object Properties.
Вэйпоинтами, как и поезду, зададим маршрут движения нашего фургона. Расставим точки маршрута, и замкнём их. В графе Waypoint Path Lables пропишем общее имя маршрута, например, Van_01_Road. Все точки маршрута подсветятся новым именем.

Кстати, разницей между прокладкой маршрута для поезда и, например, автомобиля, является то, что поезд сразу ставится на маршрут, даже если вы поставили его в отдалении, а автомобилю нужно будет сперва доехать до пункта отправления.
Исходные объекты созданы - переходим к окну редактирования сценариев (Edit > Scripts). Дабы не путаться потом в собственном быдлокоде, сразу создадим папочку скриптов для нашего фургончика. Тыкаем на кнопку New Folder и сразу попадаем в окно настроек группы сценариев.
Group is Subroutine – все скрипты в папке — подпрограммы.
Groub is Active – по умолчанию группа включена.
Group Name – название папки.
Создадим сценарий для нашего фургончика. Нажмём New Script, откроется окно, в котором можно задать заличные параметры сценария.
Во вкладке Script Conditions содержатся условия выполнения сценария, во вкладке Actions if True (=AifT) – действия при верности условий, а во вкладке Action if False (= AifF) – действия при неверности условий.
Deactive upon success – выключить после выполнения.
Actine in - уровни сложности, на которых будет выполняться данный скрипт.
Evaluate script – частота проверки условий (Script Conditions).
Во вкладке AifT нажимаем Edit, а затем из вывалившегося списка выбираем следующее условие:

Кликаем по ссылкам вида ???#@??? , а потом в ???unit??? из выпадающего списка выбираем название нашего фургона, а из ???waypoint path??? - метку маршрута, которую мы ему прописали.
В общем-то, теперь фургон будет нарезать круги по заданному маршруту.
• Теперь добавим на карту автобус, который будет высаживать пассажиров.
Сам по себе редактор содержит кучу багов и недоделок. Некоторые скрипты несовместимы между собой, непонятен порядок проверки условий выполнения сценариев и т. п.
По заданной команде наш фургончик будет носиться по карте, как угорелый, и дрифтовать в поворотах, а нам нужно,чтобы он не торопясь ехал по своей дороге.
Задание неторопливого перемещения (Set to follow a waypoint path – wander) доступно только для команд. Поэтому придётся создать несколько команд для каждого из наших объектов. Кнопкой Edit Player List создадим нового игрока под именем People. И передадим управление компьютеру, поставив галочку напротив Is Player computer-controlled?.
В этом же окне можено будет задать имя игрока в игре и действительное имя игрока. Новый игрок нужен в связи с корявостью работы многих скриптов с игроком plyrCivian.
Игроку People создадим по команде для чабзика, который будет «выходить из автобуса», для черезчур торопливого фургончика и для самого
автобуса.
Теперь приставим фургончик к команде Van, автобус к Bus, а людей к команде по
умолчанию teamPeople. Сделать это можно в меню объекта.

Заставим всех их двигаться по своим маршрутам, задав параметры скриптам [Team] Set to follow a waypoint path – wander по отдельности для каждой команды.
Создадим пассаажира, который будет выходить из автобуса. Поскольку автобус с точки зрения игры не являетсмя транспортом, то погрузить в него человечка никак нельзя.
Сделаем немного по-другому: нарисуем зону остановки, по прибытию автобуса на которую в точке Man Spawn point (разумеется, можно задать ей любое другое имя) будет появляться объект типа Female02. Для этого создадим скрипт, в условие которого пропишем данное требование.

Большая проблема WB заключается в слабой приспособленности к координации действий объектов, управляемых скриптами. Некорректно обрабатываются условия скриптов.
Если бы мы, например, задали в условии появления человечка приезд автобуса к концу маршрута, то автобус просто начал бы крутиться вокруг точки отправления.
Таким образом получается, что на практике одно и то же действие невозможно реализовать различными методами.

В следующих выпусках мы научимся создавать карты для скримиша, делая их сбалансированными и разнообразными.
Успехов, Генерал!

0
1
6 лет назад
0
Как включить всем игрокам радар со старта игры?
0
9
6 лет назад
Отредактирован AsagiriGen
0
Anton77:
Как включить всем игрокам радар со старта игры?
Понятия не имею. Сам в редакторе Генералов не разбираюсь, автор статей не я, лишь оформитель их сюда.
0
1
6 лет назад
0
GeneralElConsul:
Anton77:
Как включить всем игрокам радар со старта игры?
Понятия не имею. Сам в редакторе Генералов не разбираюсь, автор статей не я, лишь оформитель их сюда.
Я уже сам разобрался. Но это довольно просто, куда сложнее проделать более сложные скрипты, типо добавления новых способностей генерала и т.п.
0
9
6 лет назад
Отредактирован AsagiriGen
0
Я уже сам разобрался. Но это довольно просто, куда сложнее проделать более сложные скрипты, типо добавления новых способностей генерала и т.п.
Дерзай)
Кто-то же сделал такие замечательные моды, как, к примеру, Contra 007, где это есть, так что это реально.
0
1
6 лет назад
0
GeneralElConsul:
Я уже сам разобрался. Но это довольно просто, куда сложнее проделать более сложные скрипты, типо добавления новых способностей генерала и т.п.
Дерзай)
Кто-то же сделал такие замечательные моды, как, к примеру, Contra 007, где это есть, так что это реально.
Не соглашусь с тем, что это замечательный мод. По мне так NProject замечательный мод, остальное в целом дисбалансные аттракционы.
0
9
6 лет назад
0
Не соглашусь с тем, что это замечательный мод. По мне так NProject замечательный мод, остальное в целом дисбалансные аттракционы.
NProject посмотрю, спасибо.
Anton77:
в целом дисбалансные аттракционы.
Ну да, в этом и суть, весело в них поиграть по сети)
Это просто единственный мод, который я хорошу знаю, т.к. много в него играл по сети.
Знаю еще есть мод Rise of Reds. Какие еще посоветуешь?
Чтобы оставить комментарий, пожалуйста, войдите на сайт.