if name == "DoorsOpenRightBtn" then
if (Call("*:GetControlValue", "DoorsOpenRightBtn", 0) >0.5) then
if (Call("*:GetControlValue", "DoorsOpenCloseRight", 0) == 0) then
Call( "*:SetControlValue", "DoorsOpenCloseRight", 0, 1 )
end
end
end
if name == "DoorsOpenLeftBtn" then
if (Call("*:GetControlValue", "DoorsOpenLeftBtn", 0) >0.5) then
if (Call("*:GetControlValue", "DoorsOpenCloseLeft", 0) == 0) then
Call( "*:SetControlValue", "DoorsOpenCloseLeft", 0, 1 )
end
end
end
if name == "DoorsCloseRightLeftBtn" then
if (Call("*:GetControlValue", "DoorsCloseRightLeftBtn", 0) >0.5) then
if (Call("*:GetControlValue", "DoorsOpenCloseLeft", 0) == 1) then
Call( "*:SetControlValue", "DoorsOpenCloseLeft", 0, 0 )
end
if (Call("*:GetControlValue", "DoorsOpenCloseRight", 0) == 1) then
Call( "*:SetControlValue", "DoorsOpenCloseRight", 0, 0 )
end
end
end
Mr. Angelo писал(а):Чтобы закрывать двери самостоятельно можно сделать такой принцип: анимация дверей не привязываются к игровой переменной (которая содержит статус открытия дверей и изменяется движком игры), а привязываются к своей переменной. В любой момент можем открывать/закрывать эти двери тумблером в кабине/кнопкой с клавы. А в скрипте дополнительно еще делаем привязку чтобы при изменении игровой переменной статуса дверей с 0 на 1 (открылись в начале посадки) - скрипт сам включал тумблер открытия наших дверей. По окончании посадки пассажиров игровая переменная статуса дверей сменится с 1 на 0, но при этом скриптом уже не закрываем наши двери.
Короче говоря реально сделать так:
- двери можно открыть и закрыть самому в любой момент времени с тумблера в кабине/кнопкой на клаве, но посадка/высадка пассажиров производиться не будет
- при нажатии кнопки Т на клаве (общая кнопка для погрузки/разгрузки) автоматически откроются двери (если не были открыты) и будет произведена посадка/высадка пассажиров
- по окончании посадки/высадки двери останутся открытыми, закрываем их самостоятельно тумблером в кабине/кнопкой на клаве
There is to real way to do that to a default loco to be honest. If you were to make your own TS2012 loco however it would be possible to do by making appropriate blueprints.
ista011 писал(а):Я понял в чем фишка: то, что я делаю через скрипт отражается на всех вагонах только если это прописано при старте вагона, но отражается только на головном если я что-то делаю уже после старта.
Как отправить команду через скрипт всему поезду, а не первому вагону в отдельности?
function Initialise ()
L_DOOR_MSGID = 237482;--сообщение для оповещения состояния левых дверей
R_DOOR_MSGID = 237483;--сообщение для оповещения состояния правых дверей
end
function Update(time)
IsEngineWithKey = Call ( "GetIsEngineWithKey" ) ~= 0;
if ( IsEngineWithKey ) then --если локом управляет игрок, а не AI, то...
Call( "SendConsistMessage", L_DOOR_MSGID, "Znachenie, 1 );--в моём случае для Left_Door и Right_Door-> Znachenie=1 либо Znachenie=0
Call( "SendConsistMessage", L_DOOR_MSGID, "Znachenie, 0 );
Call( "SendConsistMessage", R_DOOR_MSGID, "Znachenie, 1 );
Call( "SendConsistMessage", R_DOOR_MSGID, "Znachenie, 0 );
end
end
function OnConsistMessage ( msg, argument, direction )
IsEngineWithKey = Call ( "GetIsEngineWithKey" ) ~= 0;
if( msg == L_DOOR_MSGID) then
param1=argument;
Call( "*:SetControlValue", "Left_Door", 0, param1 );--контроллер левых дверей
elseif (msg==R_DOOR_MSGID) then
param2=argument;
Call( "*:SetControlValue", "Right_Door", 0, param2 );--контроллер правых дверей
else
Call( "SendConsistMessage", msg, argument, direction );
end
end
function Update(time)
if(Call("*:GetControlValue", "Right_Door", 0) == 1) then
Call( "*:Reset", "r_door" );
Call( "*:AddTime", "r_door", time );--анимация правых дверей
else
Call( "*:Reset", "r_door" );
Call( "*:AddTime", "r_door", -time );
end
if(Call("*:GetControlValue", "Left_Door", 0) == 1) then
Call( "*:Reset", "l_door" );--сброс анимации в 0
Call( "*:AddTime", "l_door", time );--анимация левых дверей
else
Call( "*:Reset", "l_door" );
Call( "*:AddTime", "l_door", -time );--если двери закрываются, то анимаиц я идёт в обратную сторону
end
end
ista011 писал(а):Что-то двери таким образом не заработали, ну и что ж поделать, копаю дальше, может просто ошибся где-то. Зато сделал пантограф
Вернуться в [RW] Подвижной состав
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0