Donate with PayPal button New New

+ Ответить в теме
Страница 180 из 253 ПерваяПервая ... 80 130 170 178 179 180 181 182 190 230 ... ПоследняяПоследняя
Показано с 1,791 по 1,800 из 2529

Тема: Создание сессий. Идеи, проблемы, решения.

  1. #1
    Администратор Аватар для OlegKhim
    Регистрация
    19.09.2009
    Страна
    Адрес
    Киев
    Возраст
    55
    Сообщений
    4,407

    Rule Создание сессий. Идеи, проблемы, решения.

    Правило перевода стрелок в определенное время (работает с правилом UZ Timecheck)
    Вложения

  2. Сказали спасибо: (7)


  3. #Trainz
    Реклама
    Регистрация
    Постоянная
    Адрес
    Весь мир
    Возраст
    2010
    Сообщений
    Много

    Donate with PayPal button N3v New New

     

  4. #1791
    Пользователь Аватар для Volaner
    Регистрация
    19.04.2017
    Страна
    Адрес
    Москва
    Возраст
    40
    Сообщений
    2,195

    По умолчанию

    Цитата Сообщение от RZD29RUS Посмотреть сообщение
    Цитата Сообщение от Volaner Посмотреть сообщение
    отцепить один вагон с конца поезда
    Это как? Есть отдельные кастомные команды отцепки?
    Вот эти команды:
    Открыть

    Но только с помощью них, задачу не решить, прицепившийся маневровый становится вагоном, если в другом локомотиве есть машинист. Можно тем машинистом отцепить последний вагон, это и будет маневровый, и только после этого маневровый начнёт выполнять команды. Это наверно можно сделать через систему сообщений между машинистами, передать сообщение после сцепки от машиниста маневрового машинисту головного, после получения которого, тот отцепит последний вагон и пошлёт сообщение обратно маневровому, после получения которого, тот в свою очередь поедет куда-нибудь дальше по своим делам. Но я не понял как пользоваться этот системой сообщений между машинистами, нагуглить ничего не получилось, возможно, у меня чего то не хватает для её работы.

    Поэтому, придётся таки высаживать машиниста головного на момент сцепки и возвращать его обратно после.

    Итак, задача:



    Локомотив, к которому надо прицепить вагоны, прибывает на станцию. Если им управляет игрок, то в командах у Басти пусто, если бот, тогда там "авто-машинист" или "движение до красного". В маневровом у Чарли пусто, ну или тоже "движение до красного", если он откуда-нибудь приехал. Стоят два триггера, обратите внимание где. Нам нужно, когда Басти доведёт состав до светофора, и наедет на Триггер-1, создать список команд у Чарли, на манёвр, сцепку и расцепку, после чего Чарли куда-нибудь уедет, например на тот же путь вернётся, откуда начинал манёвр. А Басти высадить в другой локомотив. А дальше, когда Чарли прицепит вагоны и сам отцепится, надо будет по наезду им на Триггер-2, вернуть Басти в его локомотив, построить маршрут на выход, активировать "авто-машинист", если состав ведёт бот а не игрок, ну и показать сообщение от диспетчера, если состав ведёт игрок. Но вот засада, Чарли будет дважды проезжать через Тригер-2, и возвращать Басти к себе в локомотив надо будет только по второму проезду. Пришлось поломать голову, может быть и есть какой-нибудь счётчик, который активирует дочерние роли, только после второго вызова, но я такой не нашёл. Сделал через систему переменных.

    Решение:

    1) Роль активирующая дочерние роли при наезде на Триггер-1

    Открыть

    Выбираем локомотив, триггер и обязательно ставим галку, чтоб только один раз сработало. Потому как, локомотив долго будет стоять на триггере, и если в этот момент игрок сохранится/загрузится роль сработает повторно и собьёт команды у Чарли, и будет у вас сценарий который - "сохранения не поддерживаются, проходите за один раз".

    2) Дочерние роли для Триггер-1. Используем роль "Driver Shedule Rule", которая задаёт команды машинистам. Обратите внимание на настройку "Killer style", с ней добавляемые команды будут заменять уже существующие, что нам и надо.

    Басти пересаживаем в другой локомотив командой move to locomotive, а Чарли задаём всю цепочку манёвра. Обратите внимание на команду "Random" после расцепки, чуть позже объясню что это и зачем.

    Открыть

    3) Нам надо будет как то отличить первый наезд на триггер от второго. Создаём переменную и присваиваем ей значение 0, используем для этого роль "Variable setup", жмём add, вводим имя и значение, переменная будет создаваться в начале сессии. Добавляем в команды машиниста "Variable random"

    Открыть

    У Чарли команда с иконкой "random" это и есть Variable random. Суть в чём, в начале сессии наша переменная равна 0, а после того, как Чарли отцепится от состава, он меняет её на рандомное значение больше одного. Зачем нужен рандом? Вообще там есть команда sVariables, задающая значение переменной, но у меня она почему то не работает.

    4) Остаётся вернуть Басти в его локомотив по повторному наезду Чарли на Триггер-2. Создаём роль проверки триггера, выбираем локомотив, триггер, галку однократного срабатывания не ставим, оно дважды должно отработать! Добавляем дочернюю роль Variable Check, которая занимается проверкой переменных, как не трудно догадаться по её названию. Вписываем руками название нашей переменной, которую мы создали в пункте 3, и выбираем условие проверки - is not equal to 0(не равно нулю)

    Открыть

    Ещё раз, когда в начале сессии создаётся наша переменная её значение - 0, Чарли её меняет, после того, как отцепится от состава. Соответственно, когда он первый раз проезжает по Триггер-2, переменная равна нулю, проверку она не пройдёт и дочерние правила не сработают.

    Ну и создаём роль, которая добавит Басти команды возвращающую его в локомотив, создающую маршрут на выход и авто-машинист, если это бот.

    Открыть

    Будьте внимательны, роль Variable Check дочерняя по отношению к Trigger Check, а Driver Shedule Rule дочерняя к Variable Check. Driver Shedule Rule сработает только когда проверка в Variable Check завершится успешно.

    Ну и в конце MakeDSPSpeach с сообщением игроку от диспетчера.

    Итого:

    Басти привёл локомотив на станцию, у Чарли очередь команд пуста.

    Открыть

    Басти наехал на Триггер-1. У Чарли появилась очередь команд со всеми манёврами. Басти пересел в другой локомотив.

    Открыть

    Чарли маневрирует, Басти тусуется в 2ТЭ10М

    Открыть

    Чарли идёт на сцепку, в локомотиве состава машиниста нет!

    Открыть

    Чарли отцепился и сейчас повторно наедет на Триггер-2. Обратите внимание, в локомотиве осталась часть команд Чарли, но мы используем Killer mode в Driver Shedule Rule, и всё это будет благополучно убито.

    Открыть

    Чарли наезжает на Триггер-2, Басти возвращается в родной локомотив и начинает вытягивать состав на перегон.

    Открыть

    Вместо системы переменных, можно добавить третий триггер и нагородить огород с последовательной их проверкой. Но на мой взгляд использование переменных элегантней и надёжней. Вообще хорошая вещь, можно делать вариативность в сценариях за счёт генерирования рандомного числа, и выпускать на встречу игроку разные составы, в зависимости от сгенерированного значения переменной. К переменным ещё прилагается система для отладки, роли Display Custom HUD и Show variable, которые могут выводить текущие значения переменных в сессии.

  5. #1792
    Пользователь Аватар для RZD29RUS
    Регистрация
    30.11.2014
    Страна
    Адрес
    Ст. Плесецкая, Сев ЖД.
    Возраст
    30
    Сообщений
    903

    По умолчанию

    Цитата Сообщение от Volaner Посмотреть сообщение
    Вот эти команды:
    Открыть
    Можно найти по названию на DLS или ссылку дадите? С переменными вообще не знаком, попробую их в другом сценарии. Из этого уберу тогда эту сцену.

  6. #1793
    Пользователь Аватар для Rock-sett
    Регистрация
    28.12.2010
    Страна
    Адрес
    Самара но это временно
    Возраст
    53
    Сообщений
    1,974

    По умолчанию

    Цитата Сообщение от RZD29RUS Посмотреть сообщение
    на DLS или ссылку дадите?
    Тут скачайте:
    http://kuid.trainz-mp.ru/search/182725

    Цитата Сообщение от RZD29RUS Посмотреть сообщение
    С переменными вообще не знаком
    Есть тема посвящённая им:
    https://forum.trainzup.net/showthread.php?t=3430&p=308675&viewfull=1#post308675

  7. #1794
    Пользователь Аватар для RZD29RUS
    Регистрация
    30.11.2014
    Страна
    Адрес
    Ст. Плесецкая, Сев ЖД.
    Возраст
    30
    Сообщений
    903

    По умолчанию

    Добрый вечер. Подскажите пожалуйста, есть ли команда для открытия дверей ботами - электричками? И если есть, киньте ссылку.

  8. #1795
    Пользователь Аватар для TRam_
    Регистрация
    22.09.2009
    Возраст
    33
    Сообщений
    16,432

    По умолчанию

    Код:
    <kuid:57344:1015>
    например. http://kuid.trainz-mp.ru/search/185060

  9. #1796
    Пользователь Аватар для NickLon
    Регистрация
    23.09.2009
    Страна
    Адрес
    Москва
    Возраст
    50
    Сообщений
    2,427

    По умолчанию

    Volaner, м-да, огород знатный нагорожен. Есть система БОК Эрендира (https://forum.trainzup.net/showthread.php?t=1407). Там проще и понятнее решается такая задача. А машиниста не надо никуда пересаживать, достаточно отцепиться от состава, отъехать от состава на >= 50 метров (к примеру, до красного от маркера остановки состава) и ждать активации команд на сцепку с составом и продолжение движения.

  10. #1797
    Пользователь Аватар для TRam_
    Регистрация
    22.09.2009
    Возраст
    33
    Сообщений
    16,432

    По умолчанию

    NickLon, в реале никто не отцепляется, если ему только прицепляют вагоны.

  11. #1798
    Пользователь Аватар для NickLon
    Регистрация
    23.09.2009
    Страна
    Адрес
    Москва
    Возраст
    50
    Сообщений
    2,427

    По умолчанию

    TRam_, ага. Зато в реале локомотивная бригада перед прицепкой эвакуируется в какой-то отстойный локомотив, прикидывается там ветошью и не отсвечивает, пока ей не дадут разрешения вернуться в свой локомотив, да?
    Иногда мы принимаем такие решения, которым тараканы в голове аплодируют стоя.

  12. #1799
    Пользователь Аватар для TRam_
    Регистрация
    22.09.2009
    Возраст
    33
    Сообщений
    16,432

    По умолчанию

    В реале прицепляющийся локомотив не оказывается отнесённым к тому же поезду. Но в trainz при сцеплении всегда образуется единственный объект "поезд" (второй удаляется), а у поезда может быть один единственный набор команд,

  13. #1800
    Пользователь Аватар для NickLon
    Регистрация
    23.09.2009
    Страна
    Адрес
    Москва
    Возраст
    50
    Сообщений
    2,427

    По умолчанию

    Блин, Вов, так а я с какой точки зрения говорю о каких-то там расцепках-сцепках? Прекрасно я знаю, что происходит в реале. Но Trainz наносит свои ограничения и условия.

+ Ответить в теме

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения