Предлагаю Вам свой вариант функции подачи звуковых сигналов, исполняемых через триггер инструкции в расписании сценария, с учётом имеющихся на данный момент названий контролов и их значений.
function OnEvent( event )
if string.sub (event,1,6) == "signal" then
SignMode = tonumber(string.sub(event,7,7));
DurSign = tonumber(string.sub(event,8,9)) / 10;
NumberRV = string.sub (event,10,13);
Mode = {{"Horn", "Houkacka"},{"Whistle", "Pistala" ,"Bell"}};
if SysCall(NumberRV..":ControlExists", Mode[SignMode][1], 0) == 1 then
VarMode = 1;
elseif SysCall(NumberRV..":ControlExists", Mode[SignMode][2], 0) == 1 then
VarMode = 2;
elseif SysCall(NumberRV..":ControlExists", Mode[SignMode][3], 0) == 1 then
VarMode = 3;
else VarMode = 0;
end
if VarMode ~= 0 then
SysCall (NumberRV..":SetControlValue", Mode[SignMode][VarMode], 0, 1);
SysCall ("ScenarioManager:TriggerDeferredEvent", "OffSignal", DurSign );
end
end
if event == "OffSignal" then
SysCall (NumberRV..":SetControlValue", Mode[SignMode][VarMode], 0, 0);
end
end
Активация функции представляется выражением вида:
signalxyyzzzz - где:
signal - проверяемое кодовое слово активации функции;
х - принимает значения: 1 - для тифона, 2 - для свистка;
yy - величина продолжительности звукового сигнала/10;
zzzz - номер локомотива, присвоенный в ниспадающем меню с правой стороны экрана, вызванном двойным щелчком левой кнопки мыши по нему.
Пример: signal1203248 - активация тифона (1) на 2 секунды (20) локомотивом с номером 3248;
signal2054301 - активация свистка (2) на 0,5 секунды (05) локомотивом с номером 4301.
К сожалению, пока что не найдено решение для возможности активации определенного количества звуковых сигналов, поэтому данный вопрос решается последовательным указанием соответствующим количеством триггеров инструкций в расписании сценария. Использование данной функции накладывает ограничение на одновременную подачу сигнала одним ботом, которое решается копированием тела функции с заменой имен переменных (достаточно изменить регистр в названии переменной, к примеру, signal заменить на Signal, и т.д.). Полагаю, этого будет достаточно, если, конечно, Вы не собрались создать "Локомотивный хор"
Из недостатков, замеченных мной, могу отметить, что при присвоении номера локомотивам ТЭМ-2 пропадают надписи номера локомотива на боковых поверхностях кабины
За помощь в освоении LUA и "работе над ошибками" огромную благодарность выражаю Свете!