Форум создан в 2008 году
[ Главная ] [ Скрипт сценария - Страница 2 - FORUM ] [ Регистрация ] [ Вход ]
· Суббота, 21.12.2024, 19:43 · Вы вошли как Гость Новые сообщения · Участники · Правила форума · Поиск ·
Скрипт сценария
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_, да, ты прав, но мы же тут учимся скриптовым сценариям на примере крыма. smile
Лично меня больше всего привлекает в таких сценариях возможность создания и удаления трафиковых и мебельных составов, не пользуясь при этом порталами, что облегчает карту.
А на счёт 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( smile ) я узннал у вас на треинзапе в теме  скриптования, где-то в первых страницах была ссылка на сайт с простейшим обучающим скриптом сценария, правда для какого-то старого треинза, то ли 2004, то ли 2006. Наверно, в более поздних версиях аурановцы решили от неё избавиться, тк она не смогла наверно охватить всех аспектов скрипта. lol

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
Игорёха,  насколько простое? Если речь идёт о скрипте сценария, то более-менее простой (просто других нет) - это к Абхазии.
Если скрипт вообще - то вот мой скрипт в электричке, он всего лишь меняет меш дневной на ночной, но во всех вагонах поезда последовательно и включает хвостовые огни.
Прикрепления: nightscript.gs (1.8 Kb)
 
Поиск:

Copyright Dobryi © 2024