Страница 20 из 42
Re: Патчи для ПС, мини правки, замена сценариев на стандарт
Добавлено: 07 авг 2015, 19:22
Cross
Света
да, нужно рассинхронизировать управление между движковыми и виртуальными функциями, чтобы движковые выставлялись в ноль и никак не активировались, когда управляем виртуальными. Дальше условие, что если отключим педалью пищалку И переведём ручку тормоза в положение "экстремальный", тогда снова произойдёт синхронизация движковых функций и виртуальных
Re: Патчи для ПС, мини правки, замена сценариев на стандарт
Добавлено: 07 авг 2015, 19:25
pROssO
Света, главная проблема DVD - сделать эту рассинхронизацию.
Идею про тифон я с
Cross уже обсуждал достаточно давно, но пока её реализацию решено отложить.
Моё предложение в создании двух триггеров (начало + конец тифона), с защитным таймером на случай, если второй триггер забыли установить (чтобы AI не сигналил без остановки до портала).
Re: Патчи для ПС, мини правки, замена сценариев на стандарт
Добавлено: 07 авг 2015, 19:29
Cross
pROssO
да там конечный триггер делать не нужно. Можно сделать проще, звучание сигнала по заданному времени, кстати не без math.random, чтобы не было одинакового времени звучания.
Re: Патчи для ПС, мини правки, замена сценариев на стандарт
Добавлено: 07 авг 2015, 19:39
Света
Значит, я понимаю ситуацию так: мы прохлопали DSD, сработала блокировка, виртуальные контролы остались на старых местах, а реальные сбросились. Поезд остановился. Теперь надо сбросить DSD, и мы упираемся в проблему разного положения контролов. Если я правильно понимаю ситуацию, вопрос - если мы меняем кабину, не происходит ли сброс контролов? И если да, то не не получится ли решить проблему, если при сбросе DSD скрипт симитирует нажатие кнопки "смена кабины", а спустя короткое время "возврат кабины"?
Re: Патчи для ПС, мини правки, замена сценариев на стандарт
Добавлено: 07 авг 2015, 19:45
pROssO
Cross, а как насчёт двухтонального тифона (второй тон начинается после окончания первого)? А про рандом, здесь можно совместить приятное с полезным, и оставить второй триггер как конец обязательного фрагмента, а затем AI подолжит "дудеть" ещё некоторое рандомное время.
Света, здесь задача такова: нужно сделать так, чтобы контроллы в кабине не работали, пока не станут в то же положение, в каком реально находится поезд.
Re: Патчи для ПС, мини правки, замена сценариев на стандарт
Добавлено: 07 авг 2015, 19:47
Cross
Света
проблем с положением контролов нет, там ситуация в том, что поезд остановился из-за срабатывания аварийного тормоза. Это происходит, но управление не блокируется, из-за чего в момент работы сигналки можно спокойно отпустить тормоз и снова ехать. А нужно сделать так, чтобы когда сработало аварийное, то блокировались движковые тяга, тормоз и реверс (забыл о нём). Дальше условие, чтобы разблокировать управление, нам нужно выполнить 3 действия - поставить ручку тормоза в экстренное, выключить педалью DSD и перевести реверс в нейтраль. Всё управление осуществляется виртуальными функциями.
pROssO
давай позже этот момент обсудим, а то говорим обо всём сразу, это сбивает с толку

Re: Патчи для ПС, мини правки, замена сценариев на стандарт
Добавлено: 07 авг 2015, 19:51
Света
pROssO
"Пока не станут в то же положение" - вручную или "сами"? Это должен сделать игрок?
Re: Патчи для ПС, мини правки, замена сценариев на стандарт
Добавлено: 07 авг 2015, 19:55
Cross
Света
ну естественно мы управляем процессом, значит игрок должен переместить рукоятки в соответствии с особенностями управления. Условие я описал, вот по такому принципу и нужно сделать
Re: Патчи для ПС, мини правки, замена сценариев на стандарт
Добавлено: 07 авг 2015, 19:57
Света
Cross писал(а):управление не блокируется, из-за чего в момент работы сигналки можно спокойно отпустить тормоз и снова ехать. А нужно сделать так, чтобы когда сработало аварийное, то блокировались движковые тяга, тормоз и реверс
Это ведь уже используется на локомотивах, где надо вставить ключик для разблокировки

.
Cross писал(а):нам нужно выполнить 3 действия - поставить ручку тормоза в экстренное, выключить педалью DSD и перевести реверс в нейтраль.
Важно отследить очередность выполнения этих операций?
--- добавлено позже в 07 авг 2015, 20:00 ---
Может такой вариант: для блокировки использовать часть начальной установки локомотива с ключиком (например, class 20), только вместо переменной, описывающей, вставлен ключик или нет, использовать переменную, которая примет правильное значение после выполнения всех 3 действий в правильном порядке?
Re: Патчи для ПС, мини правки, замена сценариев на стандарт
Добавлено: 07 авг 2015, 20:04
pROssO
Света, здесь опять есть недопонимание. Поясню на простом примере: тяга. Допустим, мы разгоняли поезд, когда сработал экстренный тормоз. Защита сразу же отключила ТЭДы, а рукоять осталась в своём положении 4. Поезд остановился, и мы хотим ехать дальше. Задача машиниста (что нам нужно реализовать): перевести рукоять тяги в 0, а только потом уже хоть в 3, хоть в 4. И пока мы не переведём в 0, ТЭДы отзываться не будут.
Re: Патчи для ПС, мини правки, замена сценариев на стандарт
Добавлено: 07 авг 2015, 20:10
Cross
Света
как бы этот процесс получше описать, ходим где-то рядом, осталось правильно донести мыслю
В общем можно даже так. Пока работает DSD сигналка, управление тяги, реверса и тормоза заблокировано. Выключаем пищалку педалью, затем в любом порядке проделываем 3 действия с ручкой реверса, тяги и тормоза (они виртуальные функции, помним). И вот когда соблюдены условия, что виртуальная тяга на нуле, виртуальный реверс на Engine Only, виртуальный тормоз на экстренном, вот тогда должна произойти синхронизация виртуальных функций с движковыми, чтобы мы снова могли управлять локомотивом (разгоняться, тормозить, ехать вперёд-назад)
Re: Патчи для ПС, мини правки, замена сценариев на стандарт
Добавлено: 07 авг 2015, 20:17
Света
Значит, нужно, чтобы при срабатывании DSD устанавливался флаг-переменная, при которой работа ТЭДов запрещена. И этот флаг должен сбрасываться только при выполнении условия "сбросить DSD"; А ПОТОМ "виртуальная тяга на нуле, виртуальный реверс на Engine Only, виртуальный тормоз на экстренном"?
Re: Патчи для ПС, мини правки, замена сценариев на стандарт
Добавлено: 07 авг 2015, 20:26
Cross
да, как-то так это представляется. А уж ставить ли флаги, или задать функцию проверки там, если DSD == 1 и т.д, тогда управление движковыми функциями рассинхронизируется. Ещё если сделать 3 действия, главное, чтобы 3 были выполнены, то есть через операнд AND их перечислить, тогда вернуть синхронизацию.
Любопытно взглянуть на код, там не должно быть сложно в реализации
Re: Патчи для ПС, мини правки, замена сценариев на стандарт
Добавлено: 07 авг 2015, 20:31
Света
А если так: при срабатывании DSD устанавливался флаг-переменная, при которой работа ТЭДов запрещена и тормоза на екстренном. Флаг-переменная подключает фрагмент скрипта от начальной установки локомотива с ключиком, (только без команд установки контролов в начальное положение) Рукоятки при этом заблокированы. Если теперь сбросить DSD, флаг-переменная принимает значение, которое соответствует вставленному ключику, что разблокирует рукоятки. Теперь движок ждет установки рукояток в нужное положение. После того, как это будет сделано, флаг-переменная сбросится и работа ТЭДов будет разрешена.
Re: Патчи для ПС, мини правки, замена сценариев на стандарт
Добавлено: 07 авг 2015, 20:38
Cross
Света
сложно, так не нужно делать. И физическое управление не блокируется, блокируются только движковые функции, выставляясь на указанные позиции. Реверс на ноль, тяга на ноль, тормоз на 1 (экстренный). Здесь задача установить базовые контроллы в указанные позиции и отвязать их от виртуальных (чем мы можем действовать на рукоятки), а затем условие, сначала выключить DSD, потом поставить виртуальные в те же положения, что и движковые
Re: Патчи для ПС, мини правки, замена сценариев на стандарт
Добавлено: 07 авг 2015, 20:42
Света
Задачу можно разделить на две части, верно?
--- добавлено позже в 07 авг 2015, 20:43 ---
"Реверс на ноль, тяга на ноль, тормоз на 1 (экстренный). Здесь задача установить базовые контроллы в указанные позиции и отвязать их от виртуальных" - ведь это происходит при начальной загрузке локомотива? Если в функцию вставить это:
gReverserState = 0
gRegulator = 0
gBrakeState = 0
и пройти этот список 1 раз, это прокатит?
Re: Патчи для ПС, мини правки, замена сценариев на стандарт
Добавлено: 07 авг 2015, 20:47
Cross
Света
ну как бы изначально виртуальные и движковые функции связаны, иначе бы мы не смогли управлять локомотивом. Там вся задача в том, что сработала DSD, мы ничего не сделали и по истечении таймера происходит экстренное торможение. Так вот с этого условия управление движковыми фунциями блокируется, переведя их в заданные положения. И пока звучит DSD, мы ничего сделать не сможем. Отключаем DSD и после выполняем 3 действия с рукоятками. Я уже не знаю как объяснить всё это
Re: Патчи для ПС, мини правки, замена сценариев на стандарт
Добавлено: 07 авг 2015, 20:49
Света
Cross
Давайте просто пойдем по-порядку

.
Значит первое:
"сработала DSD, мы ничего не сделали и по истечении таймера происходит экстренное торможение." - с этим проблем нет?
Re: Патчи для ПС, мини правки, замена сценариев на стандарт
Добавлено: 07 авг 2015, 20:55
Cross
проблем нет, всё это работает. Просто когда поезд на ходу, тогда работает движковая функция экстренного тормоза, которая так же может быть активирована кнопкой BackSpace. Но вот когда поезд останавливается, тогда тормоз можно сбросить как обычно, а этого не должно происходить, пока не выполним процедуру, описанную выше. Щас управление не блокируется никак.
Re: Патчи для ПС, мини правки, замена сценариев на стандарт
Добавлено: 07 авг 2015, 20:59
Света
Если теперь поставить выковырянный кусок кода из локомотива с ключиком, это подойдет? Там ведь тоже все заблокировано, пока не вставить ключик, можно взять фрагмент, который отвечает именно за этот тормоз. Или нет? Если нет, то почему?