Donate with PayPal button New New

+ Ответить в теме
Страница 1 из 10 1 2 3 ... ПоследняяПоследняя
Показано с 1 по 10 из 96

Тема: Переменные в правилах и командах

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

    Rule Переменные в правилах и командах

    Пак недефолтных правил и команд с переменными - https://yadi.sk/d/vlfqnKNO4w-yuw



    Правило "Variable Check Rev 1" отличается от дефолтного тем, что может срабатывать будет сколько угодно раз . Также, если выставить "проверять условие каждые 5 секунд", правило будет дожидаться выполнения условия, после этого выполнит зависимые правила и завершится. Суть конструкции на скрине заключается в том, что первому подъехавшему поезду мы собираем только один маршрут, а всем остальным - два. Для этого:

    1) начальное значение переменной выставлено как 0 (см. предыдущий скрин)
    2) по проезду поезда происходит срабатывание правила AddVariable, оно прибавляет 1 к переменной
    3) когда проходит следующий поезд, он активирует правило сравнения (так как там стоит условие - переменная x1 >= 1 , которое выполнено, когда x1 =1), которое, в свою очередь активирует правило сборки второго маршрута

    Ограничение на переменную можно было не ставить - оно "для красоты". Триггеры Add AnyPath стоят последовательно один за другим.



    Правило Variable Random задаёт переменной случайное значение из выбранного диапазона.

    Команда VariableIfElse создана уже давно, нужна, чтобы пропускать либо следующую, либо послеследующую команды (в зависимости от выполнения условия переменной). Её обсуждение есть тут - https://forum.trainzup.net/showthrea...l=1#post217037 .

    Остальные две команды (ChangeSVariables и WaitUntilSVariable) используются соответственно для изменения переменных и для ожидания условия на переменную. Правда для этого нужно предварительно в правиле InputTable записать все операции со своими переменными:



    означают они:

    (приравнять) x1= 8
    y = y + 2
    z = z - 10

    (сравнить) a == 0
    c > 5
    temp < 12
    etr >= -1
    x1 <= 2


    Складывать и вычитать друг из друга переменные напрямую нельзя. Но, как правило, это и не нужно - посчитать поезда, свободные пути, количество заработанных игроком очков можно и так .

    Новое правило для выставления переменных при нажатии на ссылки в HTML-правиле
    https://yadi.sk/d/XAnMZ4AkFF6n2w
    В паке также тестовая карта и тестовый HTML.

    Последний раз редактировалось TRam_; 07.08.2019 в 00:15.


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

    Donate with PayPal button N3v New New

     

  3. #2
    Пользователь Аватар для Ant.taranish
    Регистрация
    21.03.2011
    Страна
    Возраст
    33
    Сообщений
    582

    По умолчанию

    TRam_, в паке нет правила Variable Setup, команды ChangeSVariables и WaitUntilSVariable более старые, чем те что есть в дефолте и на DLS, при этом идут под другим куидом.
    Поясни, пожалуйста, пример на скриншоте: какое условие проверяется с помощью переменной, и какие маршруты собираются?

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

    По умолчанию

    Цитата Сообщение от Ant.taranish Посмотреть сообщение
    в паке нет правила Variable Setup
    удали AddVariable - правило установится вместо него.
    Цитата Сообщение от Ant.taranish Посмотреть сообщение
    команды ChangeSVariables и WaitUntilSVariable более старые
    удалил их, оставил только "новую" ChangeSVariables (WaitUntilSVariable и InputTable дефолтные).

    ---------- Сообщение добавлено в 17:47 ---------- Предыдущее сообщение размещено в 15:48 ----------

    ссылку обновил.

    ---------- Сообщение добавлено в 20:00 ---------- Предыдущее сообщение размещено в 17:47 ----------

    И добавил последнюю важную команду серии - "Задать случайное значение переменной".

  5. Сказали спасибо: (3)


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

    По умолчанию

    TRam_, а разве связка
    Variable Check
    -AddAnyPath
    работает? Хм, странно. У меня - ни в какую.
    Иногда мы принимаем такие решения, которым тараканы в голове аплодируют стоя.

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

    По умолчанию

    NickLon, это не "Variable Check" а "Variable Check Rev 1". Ты скачай из шапки, они все там. Естественно переделанные.

  8. #6
    Пользователь Аватар для Sandrilyon
    Регистрация
    25.05.2010
    Страна
    Адрес
    Борисов
    Сообщений
    1,759

    По умолчанию

    TRam_, я как-то спрашивал у тебя насчет команды, в которой можно задать рэндомное значение для переменной. Раз уж тема заведена про переменные, можешь такую команду склепать? Например, задать значение от 0 до 10 (хотя бы) или до 100.

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

    По умолчанию

    Команды нет, а вот правило уже есть. В шапке ссылка.

  10. #8
    Пользователь Аватар для Sandrilyon
    Регистрация
    25.05.2010
    Страна
    Адрес
    Борисов
    Сообщений
    1,759

    По умолчанию

    Лучше бы команду, конечно...

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

    По умолчанию

    Цитата Сообщение от Sandrilyon Посмотреть сообщение
    Лучше бы команду, конечно...
    ну если лучше, держи - http://yadi.sk/d/5ZcdTftl9dBG5

    ---------- Сообщение добавлено в 03:28 ---------- Предыдущее сообщение размещено в 03:26 ----------

    рандомизирует внутри диапазона от 0 до 10

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


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

    По умолчанию

    Небольшой апдейт для Variable Setup

    http://yadi.sk/d/R7SJXyimA4WHb


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


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

Ваши права

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