Môj skript:
Kód: Vybrat vše
gLastInConsist = false;
gFirstInConsist = false;
function Initialise()
Call( "BeginUpdate" )
Call( "ActivateNode", "PozickaP1", 0 ); --PozickaXX su nodey v modeli vagona so svietiacou texturou
Call( "ActivateNode", "PozickaP2", 0 );
Call( "ActivateNode", "PozickaZ1", 0 );
Call( "ActivateNode", "PozickaZ2", 0 );
Call( "PozickaPredna1:Activate", 0); --tento vagon ma aj svetla pridane v blueprinte, ktore treba tiez ovladat
Call( "PozickaPredna2:Activate", 0);
Call( "PozickaZadna1:Activate", 0);
Call( "PozickaZadna2:Activate", 0);
end
function Update(time)
IsOnEdge(); --funkcia, ktora zistuje, ktory koniec vagonu nie je pripojeny na iny dalsi vagon
if Call("GetControlValue", "Headlights", 0) == 1 then --v blueprinte je pridana ControlValue s nazvom Headlights, ktora kopiruje
--hodnotu nastavenia lokomotivy, ktora ma tento ControlValue nastaveny v
--blueprinte ako "ApplyToConsist"
if gFirstInConsist then
Call( "ActivateNode", "PozickaP1", 1 );
Call( "ActivateNode", "PozickaP2", 1 );
Call( "PozickaPredna1:Activate", 1);
Call( "PozickaPredna2:Activate", 1);
else
Call( "ActivateNode", "PozickaP1", 0 );
Call( "ActivateNode", "PozickaP2", 0 );
Call( "PozickaPredna1:Activate", 0);
Call( "PozickaPredna2:Activate", 0);
end
if gLastInConsist then
Call( "ActivateNode", "PozickaZ1", 1 );
Call( "ActivateNode", "PozickaZ2", 1 );
Call( "PozickaZadna1:Activate", 1);
Call( "PozickaZadna2:Activate", 1);
else
Call( "ActivateNode", "PozickaZ1", 0 );
Call( "ActivateNode", "PozickaZ2", 0 );
Call( "PozickaZadna1:Activate", 0);
Call( "PozickaZadna2:Activate", 0);
end
elseif Call("GetControlValue", "Headlights", 0) == 0 or Call("GetControlValue", "Headlights", 0) == 2 then
--je potrebne zohladnit moznost, kedy nie su pozicky
Call( "ActivateNode", "PozickaP1", 0 ); --lokomotivy nastavene na predok (2 biele), teda
Call( "ActivateNode", "PozickaP2", 0 ); --vypnut koncove svetla vagonu v tomto pripade
Call( "ActivateNode", "PozickaZ1", 0 );
Call( "ActivateNode", "PozickaZ2", 0 );
Call( "PozickaPredna1:Activate", 0);
Call( "PozickaPredna2:Activate", 0);
Call( "PozickaZadna1:Activate", 0);
Call( "PozickaZadna2:Activate", 0);
end
end
function IsOnEdge()
if Call( "SendConsistMessage", 545366, 0, 0 ) == 1 then
gFirstInConsist = false;
else
gFirstInConsist = true;
end
if Call( "SendConsistMessage", 545366, 0, 1 ) == 1 then
gLastInConsist = false;
else
gLastInConsist = true;
end
end
Tento skript funguje len s rušňami, ktoré majú ControlValue s názvom "Headlights" s hodnotami 0, 1 a 2, pričom musí byť pri nej vybratá možnosť "ApplyToConsist". Blueprint vozňa potom obsahuje rovnomennú ControlValue, s min. hodnotou 0 a max. hodnotou 2, ApplyToConsist je false. Táto ControlValue potom kopíruje nastavenie rušňa. Takto to majú všetky cz-sk rušne, preto by tento skript mal fungovať so všetkými cz-sk rušňami.