Пак недефолтных правил и команд с переменными - 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_; 06.08.2019 в 23:15.
TRam_, в паке нет правила Variable Setup, команды ChangeSVariables и WaitUntilSVariable более старые, чем те что есть в дефолте и на DLS, при этом идут под другим куидом.
Поясни, пожалуйста, пример на скриншоте: какое условие проверяется с помощью переменной, и какие маршруты собираются?
TRam_, я как-то спрашивал у тебя насчет команды, в которой можно задать рэндомное значение для переменной. Раз уж тема заведена про переменные, можешь такую команду склепать? Например, задать значение от 0 до 10 (хотя бы) или до 100.