Хочу написать кастомное воспроизведение звуков стука колес для вагонов. Тобишь сейчас имею полностью бесстыковой звук телег, а все удары колес об стыки будут воспроизводиться скриптом.
Вылавливаю стрелки с помощью хендлеров, получаю от них сообщения, все вроде бы хорошо, но есть одна проблема - как только я хочу воспроизвести звук удара, он воспроизводится на телегах всего состава, а не конкретного вагона, который попал в радиус стрелки. Кроме того, после прохождения первого вагона следующие вагоны игнорируются и звук не воспроизводится вообще.
Короче говоря, вопрос, как обратится с сообщением от стрелки только к конкретному вагону, находящемуся в ее радиусе?
как только я хочу воспроизвести звук удара, он воспроизводится на телегах всего состава
Покажи, как ты его воспроизводишь. Потому что может он воспроизводится не на всех телегах, а вообще по всей карте. Определить вагоны, входящие в радиус стрелки нельзя, можно определить только поезд в радиусе стрелки. Но можно запустить поиск траксайдовых объектов, он сможет найти вагоны. В своё время делал триггер звука колёс, на основе которого потом были сделаны триггеры звуков для метро ("MM zvuk", https://kuid.trainz-mp.ru/index.php?...M+zvuk&s_dsid=)
Вопрос сразу, как такое счастье на производительности будет сказываться? Если так в перспективе, у каждого вагона на карте будет отдельный обработчик сообщений, Трейнз как, норм работать будет?
Поковырял твой и еще несколько подобных триггеров, везде применяется перебор вагонов и воспроизведение звуков с некоторой плавающей задержкой в зависимости от скорости, длины вагона и расстояния между колпарами. Посему применил такой же метод, вроде бы работает достаточно хорошо, но есть несущественные огрехи, которые мне лень решать
Доброго времени суток. Подскажите пожалуйста, как сделать, что бы скрипт сохранял несколько положений тумблеров. Положение включен\выключен проблем нет, все сохраняет, а вот больше двух - никак. На примере тумблера освещения кабины. Тумблер в положении тусклого освещения - перехожу в другой ПС, обратно - в кабине горит тусклый свет. Тумблер в положении яркого освещения - перехожу в другой ПС, обратно - свет выключен. Вот кусок кода из скрипта кабины.
Код:
else if (p_control == switch5) {
if (p_value>0.5)
cd.osvc=true;
else if (p_value>-0.5)
cd.osvc=true;
else
cd.osvc=false;
loco.SetCabinData(cd);
}
Всем хали-гали. Ребят, вопрос на засыпку. Есть правило, которое при инициализации создаются определенные данные (soup). Вопрос, как теперь эти данные получить в меню команды машиниста? Если быть точнее, то в функции создания меню есть примерно такая конструкция:
Config.txt/Scripts.gs Code:
ScenarioBehavior SB_MAIN;
publicvoid Init(Asset asset)
{
inherited(asset);
AddHandler(me, "wfs_gr", null, "wfs");
// Добавление хэндов
}
publicvoid AddCommandMenuItem(DriverCharacter driver, Menu menu){
Суть в том, что компилится без ошибок, но в редакторе, при добавлении команды без жука вылазит эта ошибка:
ВНИМАНИЕ
WorldState::WarnObsolete> TrainzGameObject.GetAsset> invalid call to GetAsset() prior to Init(Asset) being inherited
Понимаю, что скорее всего дело в GetAsset в функции добавлении менюшки. Вопрос, как еще можно задействовать правило, чтоб его данные выдавали в меню данные?