радиомастер писал(а):Shutdown = isPlayerLoco это вообще что такое ? ничего в половине постов не понятно , на простой народ это явно не рассчитано
Ну конечно же, то что я пишу, рассчитано на тех, кто имеет общие представления о методике программирования. Иначе мне придется катать простыни по несколько метров - а смысл? Если вдруг в форуме появится интересующийся новичок и что-то не сможет понять, мне проще будет ответить на прямой конкретный вопрос, чем расписывать каждую строку, не имея уверенности, что это вообще кому-то надо. Ну и я в своих постах делаю посыл на то, что это предназначено для тех, кто скриптует локомотивы или сигналку, то есть уже имеет достаточные навыки скриптования
.
По поводу
"Shutdown = isPlayerLoco". Я показываю это присвоение как пример ликвидации ошибки. Это не руководство к действию, а противопоставление идее делать отдельный блюпринт. Я показываю, что значительно проще решить проблему всего лишь заменив одно слово в скрипте.
А вообще это присвоение осуществляется в блоке нажатой кнопки глушения.
Вот как это происходит. Если нажать эту кнопку, запускается несколько процессов, и, в том числе, происходит это присвоение (раньше было "Shutdown = true", что означает "заглушить = да". В функции Update проверяется условие, и если
Shutdown == true, то отрабатывается функция глушения. Когда процесс глушения заканчивается, происходит обратное присвоение -
Shutdown = false, что означает "заглушить = нет" и мы больше не попадаем на функцию глушения, которая нам не нужна. Когда используется
Shutdown = true, двигатель заглушится всегда (если он запущен, естественно). Чтобы бот не мог это сделать, мне пришлось использовать
"Shutdown = isPlayerLoco".
isPlayerLoco - это не мое изобретение, это как бы привычная переменная практически в каждом скрипте локомотива, который чуть круче дефолтного. Эта переменная имеет логический тип и если составом управляет игрок, ей присваивается значение "true", если бот - "false". Подставив эту переменную в присвоение
"Shutdown = isPlayerLoco", мне удалось добиться того, что если игрок жмет кнопку, в переменную "Shutdown" грузится "да", если бот жмет кнопку - "нет". Поэтому под ботом нажатие кнопки ничего не меняет, но зато не пришлось прописывать никаких дополнительных условий.
радиомастер писал(а):Как определить скриптом состояние электрификации на рельсах
Никак, разве что в TS2017 появились новые вызовы.
В дополнениях от АР используется маркер нейтральной вставки на рельсах. Там кривое скриптовое решение, но оно работает. Других вариантов лично мне встречать не приходилось. ИМХО, самый адекватный вариант, позволяющий ещё и напряжение КС устанавливать и передавать на локомотив.
Вот ещё вариант. Установить "Regulator" на 100%, а тягой управлять, рассчитывая параметр Call ("SetPowerProportion", 0, 0). Если "Regulator" не равен 0, значит, ток есть. Но это настолько костыль, что мне даже писать это тяжело. Никогда такое не напишу в своем скрипте