По поводу скрипта уточнение.
Функция OnSignalMessage (message, parameter, direction, linkIndex) должна быть немного усложненной, так как сообщения с идентификаторами 0 и 4 являются особенными - 0 не пересылается, а 4 надо "отзеркаливать" в случае, если оно движковое. Также нельзя пересылать сообщения с параметром "DoNotForward" (этим параметром движок снабжает сообщения занятости, если их не требуется пересылать). Поэтому минимально эта функция должна выглядеть так:
- Код: Выделить всё
function OnSignalMessage (message, parameter, direction, linkIndex)
if message == 0 then
Initialise ()
elseif message == 4 then
Call ("SendSignalMessage", 4, parameter, 1, 1, linkIndex)
else
if parameter ~= "DoNotForward" then
Call ("SendSignalMessage", message, parameter, -direction, 1, linkIndex)
end
end
end
Также любой линковый юнит должен иметь в своем скрипте функцию GetSignalState () - эта функция вызывается движком для определения статуса сигнала. Её отсутствие вызывает ошибку и ломает работу системы запросов через tab. В минимальном виде эта функция выглядит так:
- Код: Выделить всё
function GetSignalState ()
return Call ("GetNextSignalState", "", 1, 1, 0)
end
Ещё одна обязательная функция - OnConsistPass (prevFrontDist, prevBackDist, frontDist, backDist, linkIndex). Её отсутсвие также вызывает ошибку. Даже если сигнал не отслеживает перемещение составов, эта функция должна быть:
- Код: Выделить всё
function OnConsistPass (prevFrontDist, prevBackDist, frontDist, backDist, linkIndex)
end