Скрипт сценария
|
|
kuka | Дата: Суббота, 11.01.2014, 05:53 | Сообщение # 16 |
Группа: модераторы
Сообщений: 1791
Статус: Offline
| Получается так... Я хочу сделать маленький сценарий на карте Mosty - Balezino - Solnechnaya и установил на первый путь ст. Мосты электровоз и несколько пассажирских вагонов. Задача, движение до ст. Балезино со всеми остановками со сменой электровоза на тепловоз и движение до ст. Солнечная и так в обратном направлении. Вопрос, с чего начинать написание сценария? Есть ли какая то последовательность написания... .
|
|
| |
Добрый | Дата: Суббота, 11.01.2014, 10:25 | Сообщение # 17 |
Чеширский кот
Группа: администраторы
Сообщений: 3531
Статус: Offline
| Для начала надо пронумеровать станции и создать массивы, содержащие обозначения находящихся на них входных и выходных стрелок. string [] stan = new string [0]; Затем создать массивы триггеров, на которых будут создаваться встречные string [] mar = new string [0]; если на карте не соблюдено единообразие в нумерации стрелок и триггеров, их названия в строгой последовательности надо заносить в эти массивы (буквы и цифры). Затем надо нарисовать схему всех стрелок, чтобы можно было их автоматически переводить и сообразно нумерации путей на станциях расписать это в нити JunThread().
|
|
| |
TRam_ | Дата: Суббота, 11.01.2014, 21:12 | Сообщение # 18 |
Группа: проверенные
Сообщений: 22
Статус: Offline
| Цитата начала надо пронумеровать станции и создать массивы, содержащие обозначения находящихся на них входных и выходных стрелок а можно поменять светофоры на sU, настроить маршрутизацию zxPath, и пользоваться её командами и правилами. Для отцепки есть мои команды, для движения ботов - ботомашинист. Для задания маневровых маршрутов игроку (боту) надо указывать в правиле (команде) только светофор окончания маршрутов.
|
|
| |
toltek | Дата: Суббота, 11.01.2014, 22:38 | Сообщение # 19 |
Группа: участники
Сообщений: 73
Статус: Offline
| TRam_, да, ты прав, но мы же тут учимся скриптовым сценариям на примере крыма. Лично меня больше всего привлекает в таких сценариях возможность создания и удаления трафиковых и мебельных составов, не пользуясь при этом порталами, что облегчает карту. А на счёт SU, можно ли эти светофоры открывать или вообще строить маршруты из скриптового сценария?
Если тело пердит, значит оно живое! Trainz 2019 build 117026
|
|
| |
TRam_ | Дата: Воскресенье, 12.01.2014, 01:37 | Сообщение # 20 |
Группа: проверенные
Сообщений: 22
Статус: Offline
| Цитата А на счёт SU, можно ли эти светофоры открывать или вообще строить маршруты из скриптового сценария? да конечно, точно так же как и z7 (сообщения те же самые). Только для изменения направления перегонов нужно посылать сообщения входным светофорам (а не станционным контроллерам как z7).
Но например zxPath работает с вызовами функций светофоров - в этом случае получается гарантия того, что не произойдёт никаких процессов, как например в промежуток времени между отправлением сообщения и его обработкой . И соответственно экономятся ресурсы скриптового роутера (маршрутизатора сообщений).
Естественно zxPath может строить маршруты и из скрипта сценария. Даётся команда "построить маршрут по станции *** от светофора № 43 маршрут №2" и маршрутизация его построит. Или послать сообщение построения маневрового маршрута по станции А от светофора М2 до светофора М8 и браузер маневровых маршрутов соберёт маршрут и ответит что маршрут собрался (или не соберёт и не ответит). Всё это можно посмотреть в тех же правилах и командах - их скрипты открыты, так же как и скрипт самой маршрутизации.
Цитата возможность создания и удаления трафиковых и мебельных составов а команды и правила поддерживают сохранения прохождения (правда некоторые требуют коррекции), а сделать сохранение скриптового сценария намного сложнее (и у Крыма такое пока не предполагается).
Сообщение отредактировал TRam_ - Воскресенье, 12.01.2014, 01:46 |
|
| |
toltek | Дата: Воскресенье, 12.01.2014, 14:34 | Сообщение # 21 |
Группа: участники
Сообщений: 73
Статус: Offline
| Цитата сделать сохранение скриптового сценария намного сложнее (и у Крыма такое пока не предполагается). А вот это действительно огромный минус. Из-за этого не хочется делать какой-нибудь действительно длинный и сложный сценарий для грузового поезда. Почему не работает функция string Save() { return Interface.Save(); } ? Может её нужно вставлять внутри каждого используемого в скрипте потока, и подключить include "SaveGame.gs"?.. Цитата zxPath может строить маршруты А для неё тоже нужно играться с леверами стрелок, как было в z7 xPath?
Если тело пердит, значит оно живое! Trainz 2019 build 117026
|
|
| |
TRam_ | Дата: Понедельник, 13.01.2014, 12:49 | Сообщение # 22 |
Группа: проверенные
Сообщений: 22
Статус: Offline
| Цитата Почему не работает функция потому что той функции что ты указал, нет. Есть функция Soup GetProperties() в которой ты должен прописать сохранение в этот возвращаемый Soup значения всех своих переменных, и функция SetProperties(Soup sp) которая должна из запоменного с помощью GetProperties Soup'а восстановить все значения переменных.
Потоки и их локальные переменные, а так же посланные сообщения при этом теряются, так что с потоками надо что-то мудрить так, чтоб все их переменные были сохранены в GetProperties, а сами они перезапущены в SetProperties.
Да, если поприсано ожидание времени в потоке, то можешь считать что это ожидание сохранить не удастся никак. Цитата А для неё тоже нужно играться с леверами стрелок нужно. Но зато появился гораздо более удобный отчёт об ошибках, показывающий какие стрелки не видят объектов вокруг себя, и какие именно они видят.
Сообщение отредактировал TRam_ - Понедельник, 13.01.2014, 12:53 |
|
| |
toltek | Дата: Понедельник, 13.01.2014, 14:25 | Сообщение # 23 |
Группа: участники
Сообщений: 73
Статус: Offline
| TRam_, Большое спасибо за простое и понятное разъяснение! Конечно, не всё я понял, тк программированию начал учиться месяца три-четыре назад на скрипте Доброго, но основной смысл ясен. Поковыряюсь в твоих скриптах, так что скоро расчехлю что и как. Про string Save( ) я узннал у вас на треинзапе в теме скриптования, где-то в первых страницах была ссылка на сайт с простейшим обучающим скриптом сценария, правда для какого-то старого треинза, то ли 2004, то ли 2006. Наверно, в более поздних версиях аурановцы решили от неё избавиться, тк она не смогла наверно охватить всех аспектов скрипта.
SU скачал, буду юзать. То что она более оптимизирована чем z7 и меньше нагружает карту, это действительно большой плюс.
Цитата если поприсано ожидание времени в потоке, то можешь считать что это ожидание сохранить не удастся никак. Вот тут только уточни пожалуйста, это относится к ожиданию игрового времени, или к Sleep'у, или и к тому, и к другому? И только к потоку?
Если тело пердит, значит оно живое! Trainz 2019 build 117026
|
|
| |
TRam_ | Дата: Понедельник, 13.01.2014, 14:29 | Сообщение # 24 |
Группа: проверенные
Сообщений: 22
Статус: Offline
| к Sleep'у
|
|
| |
23ivan75 | Дата: Среда, 15.01.2014, 18:17 | Сообщение # 25 |
Группа: проверенные
Сообщений: 139
Статус: Offline
| еще вопрос--увеличить кол-во вагонов возможно ? или номер пути поменять ? где бы посмотреть можно ? про сценарий идет речь Добавлено (15.01.2014, 18:17) --------------------------------------------- напримере поезда № 8
|
|
| |
Добрый | Дата: Среда, 15.01.2014, 19:57 | Сообщение # 26 |
Чеширский кот
Группа: администраторы
Сообщений: 3531
Статус: Offline
| 23ivan75, в строке 1103: else if (np==8 or np==12 or np==18 or np==82 or np==142 or np==144 or np==342) mark="SSS8", pu=4; pu=4 - это номер пути Симферополя, на котором будет стоять любой из поездов, номера которых указаны в скобках. Для того, чтобы изменить номер пути, надо поменять цифру, однако ещё надо будет поменять и цифру в имени маркера этого пути mark="SSS8", для третьего пути это будет SSS6, второго - SSS4 и т.д. Количество вагонов в пассажирских поездах (8-го в частности) прописано в строке 1122 else if (np!=68) {for (is; is<17; ++is) sostav[is]=GetAsset().LookupKUIDTable(Math.Rand(204,211));} где 17 - число вагонов. Это для электрифицированного участка.
|
|
| |
23ivan75 | Дата: Четверг, 16.01.2014, 13:01 | Сообщение # 27 |
Группа: проверенные
Сообщений: 139
Статус: Offline
| ага понятно---спс Добавлено (16.01.2014, 13:01) --------------------------------------------- день добрый--а насчет поезда 28-48 (создаем наш поезд) что-то там не нашел--он как-то отдельно создан ?
|
|
| |
Добрый | Дата: Четверг, 16.01.2014, 14:39 | Сообщение # 28 |
Чеширский кот
Группа: администраторы
Сообщений: 3531
Статус: Offline
| Все поезда, номера которых не указаны в строках 1110-1121, создаются в строке 1122.
|
|
| |
Игорёха | Дата: Воскресенье, 19.01.2014, 12:11 | Сообщение # 29 |
Группа: проверенные
Сообщений: 82
Статус: Offline
| Добрый, можешь выложить для примера написание скрипта? Простое.
|
|
| |
Добрый | Дата: Воскресенье, 19.01.2014, 14:03 | Сообщение # 30 |
Чеширский кот
Группа: администраторы
Сообщений: 3531
Статус: Offline
| Игорёха, насколько простое? Если речь идёт о скрипте сценария, то более-менее простой (просто других нет) - это к Абхазии. Если скрипт вообще - то вот мой скрипт в электричке, он всего лишь меняет меш дневной на ночной, но во всех вагонах поезда последовательно и включает хвостовые огни.
|
|
| |