Форум Trainsim  

Вернуться   Форум Trainsim > Auran TrainZ > TrainZ - Маршруты и сценарии

Ответ
 
Опции темы Опции просмотра
Старый 28.08.2009, 13:08   #1
NickLon
Матёрый пользователь
 
Регистрация: 27.03.2008
Адрес: Мск
Сообщений: 603
Вы сказали Спасибо: 9
Поблагодарили 7 раз(а) в 6 сообщениях
NickLon стоит на развилке (репутация по умолчанию)
Отправить сообщение для NickLon с помощью ICQ
По умолчанию Выстраивание правил в настройках сессии. Косяк не детский!

Всем привет!.. Долго думал, как объяснить мою ситуацию и подумал, что лучшим способом будет нарисовать блок схему здесь. Итак, это в настройках сессии, правила. Используется правило ChekTrackside. Страбатыват по триггерам. (для наглядности в одну ступень ставлю две точки; в ТРС - одна ступень). Четное направление.
CheckTrackside Trigger1;
..CheckTrackside Trigger2;
....Var1 = Var1+1;
// до сей поры фиксируется факт для возможного встречного, что перегон занят
CheckTrackside Trigger3;
..CheckTrackside Trigger4;
....Var1 = Var1-1;
//здесь, перед тем, как поезду зайти на станцию прибытия, освобождается перегон
....If Var2 > 0 Then
......сборка прибытия на один из боковых;
....If Var2 = 0 Then
......сборка прибытия на любой, включая главный первым;
//Var2 - это переменная встречной, нечетной схемы.
Так вот, поезд выходит со станции1 на станцию2 в четном направлении, Четный поезд. Проходит Trigger1 и Trigger2, срабатывает правило и переменная Var1 принимает значение 1. Потом он проходит перед станцией2 Trigger3 и Trigger4, срабатывает правило и переменная Var1 принимает значение 0.
В то время, когда он вышел со станции1, со станции3 на станцию2 в нечетном направлении тоже вышел поезд, Нечетный. Нечетный позже прибывает на станцию, следовательно Четный заходит на боковой и ждёт проследования по главному Нечетного.
Нечетный проходит станцию, дальше начинает в обратном порядке проходить четные триггеры. Правила не должны срабатывать и переменная Var1 не должна меняться. В первом случае, когда Нечетный проходит сначала Trigger4 потом Trigger3 переменная Var1 не меняется. А вот во втором случае, когда он проходит сначала Trigger2, а потом Trigger3 переменная Var1... увеличивается на 1.
Более того, уже как и на что я эту схему не тестировал и выяснил, что увеличение переменной Var1, когда это делать не надо, происходит в момент, когда поезд проезжает Trigger2! И ещё более того, в процессе теста, я сделал такую конструкцию:
CheckTrackside Trigger1;
..Тест = Тест + 1;
..CheckTrackside Trigger2;
....Var1 = Var1+1;
....Тест1 = Тест1 + 1;
Все переменные увеличиваются на 1 после проследования Нечетным поездом Trigger2! Во кино!!! Повторяю, Нечетный сначала наезжает на Trigger2? а потом на Trigger1!
Всё бы ничего, если бы и на уменьшение была бы такая же картина, я бы плюнул и подумал бы, что такая конструкция в TRS2006 не работает в принципе, или я сам накосячил. Так нет же! Там работает как надо, а тут горбатого лепит к стенке.
Мож кто-нить чё подскажет, а?
NickLon вне форума   Ответить с цитированием
Старый 01.01.2007, 12:00  
Яndex
Спонсор
 
 
Регистрация: 01.01.2007
Сообщения: 500


Реклама показывается изредка по случайному принципу
По умолчанию РЕКЛАМА

 
Старый 28.08.2009, 14:05   #2
genesis
Матёрый пользователь
 
Регистрация: 31.07.2007
Адрес: Ульяновск
Сообщений: 2,584
Вы сказали Спасибо: 245
Поблагодарили 174 раз(а) в 76 сообщениях
genesis стоит на развилке (репутация по умолчанию)
Отправить сообщение для genesis с помощью ICQ Отправить сообщение для genesis с помощью Skype™
По умолчанию

Я бы предложил не городить схемы с последовательным проследованием триггеров, а дал бы четным поездам одних машинистов, а нечетным - других.
genesis вне форума   Ответить с цитированием
Старый 28.08.2009, 14:24   #3
Damien Zhar
Матёрый пользователь
 
Аватар для Damien Zhar
 
Регистрация: 05.04.2009
Адрес: Между Савёловским и Лобней.
Сообщений: 1,537
Вы сказали Спасибо: 0
Поблагодарили 2 раз(а) в 2 сообщениях
Damien Zhar стоит на развилке (репутация по умолчанию)
Отправить сообщение для Damien Zhar с помощью ICQ Отправить сообщение для Damien Zhar с помощью AIM Отправить сообщение для Damien Zhar с помощью MSN Отправить сообщение для Damien Zhar с помощью Yahoo
По умолчанию

Отрапортовать баг в Ауран!
__________________
Мышцу потянул, купил в аптеке мазь.. Каждый раз когда читаю название "Вольтарен Эмульгель" мне кажется, что если произнести его громко и с правильной интонацией, то можно кастануть файрболл..
Damien Zhar вне форума   Ответить с цитированием
Старый 28.08.2009, 14:24   #4
NickLon
Матёрый пользователь
 
Регистрация: 27.03.2008
Адрес: Мск
Сообщений: 603
Вы сказали Спасибо: 9
Поблагодарили 7 раз(а) в 6 сообщениях
NickLon стоит на развилке (репутация по умолчанию)
Отправить сообщение для NickLon с помощью ICQ
По умолчанию

genesis, И? Ты имеешь ввду дальше использовать что? z7 DSP Rule?
(это был первый вариант вопроса). А вот второй:
Так у меня он сейчас четный, а обратно будет ехать - уже нечётный.
Damien Zhar, да погодь пока. Я ещё на 100% не уверен, что это не баг пользователя...

Последний раз редактировалось NickLon; 28.08.2009 в 14:28.
NickLon вне форума   Ответить с цитированием
Старый 28.08.2009, 16:26   #5
genesis
Матёрый пользователь
 
Регистрация: 31.07.2007
Адрес: Ульяновск
Сообщений: 2,584
Вы сказали Спасибо: 245
Поблагодарили 174 раз(а) в 76 сообщениях
genesis стоит на развилке (репутация по умолчанию)
Отправить сообщение для genesis с помощью ICQ Отправить сообщение для genesis с помощью Skype™
По умолчанию

Цитата:
Сообщение от NickLon Посмотреть сообщение
genesis, И? Ты имеешь ввду дальше использовать что? z7 DSP Rule?
Можно и твою схему с одним триггером.
Цитата:
Сообщение от NickLon Посмотреть сообщение
Так у меня он сейчас четный, а обратно будет ехать - уже нечётный.
И что, пусть меняют поезда тогда.
genesis вне форума   Ответить с цитированием
Старый 28.08.2009, 17:16   #6
NickLon
Матёрый пользователь
 
Регистрация: 27.03.2008
Адрес: Мск
Сообщений: 603
Вы сказали Спасибо: 9
Поблагодарили 7 раз(а) в 6 сообщениях
NickLon стоит на развилке (репутация по умолчанию)
Отправить сообщение для NickLon с помощью ICQ
По умолчанию

Цитата:
Сообщение от genesis Посмотреть сообщение
Можно и твою схему с одним триггером.

И что, пусть меняют поезда тогда.
Ну с одним триггером не получится. Там же нужно указать направление, что вот именно в четном направлении он едет, тогда меняем чётную переменную. А если один триггер, он и туда и сюда будет её менять.
А по поводу замены поездов - гы, ты ещё не знаешь, мою схему перевозки угля. Машинисты даже не знают имени вагона, когда цепляются к груженному составу после маневрового, который их на шахте загрузил. И также и на разгрузке. Откуда я узнаю, какой именно лок в данный момент подошёл к грежёному составу, и наоборот. Не, это явно не взлетит!
А по поводу этой проблемы. Уже второй день бьюсь и прихожу к выводу, что именно + глючит. - он не трогает, а + - в обе стороны. Явный глюк движка. буду тогда придумывать что-нибудь другое. Без этих переменных.
NickLon вне форума   Ответить с цитированием
Старый 29.08.2009, 20:50   #7
genesis
Матёрый пользователь
 
Регистрация: 31.07.2007
Адрес: Ульяновск
Сообщений: 2,584
Вы сказали Спасибо: 245
Поблагодарили 174 раз(а) в 76 сообщениях
genesis стоит на развилке (репутация по умолчанию)
Отправить сообщение для genesis с помощью ICQ Отправить сообщение для genesis с помощью Skype™
По умолчанию

Цитата:
Сообщение от NickLon Посмотреть сообщение
Ну с одним триггером не получится. Там же нужно указать направление, что вот именно в четном направлении он едет, тогда меняем чётную переменную. А если один триггер, он и туда и сюда будет её менять.
Разные машинисты!
Цитата:
Сообщение от NickLon Посмотреть сообщение
А по поводу замены поездов - гы, ты ещё не знаешь, мою схему перевозки угля. Машинисты даже не знают имени вагона, когда цепляются к груженному составу после маневрового, который их на шахте загрузил. И также и на разгрузке. Откуда я узнаю, какой именно лок в данный момент подошёл к грежёному составу, и наоборот. Не, это явно не взлетит!
Уж маркеры то знаешь?
Цитата:
Сообщение от NickLon Посмотреть сообщение
А по поводу этой проблемы. Уже второй день бьюсь и прихожу к выводу, что именно + глючит. - он не трогает, а + - в обе стороны. Явный глюк движка. буду тогда придумывать что-нибудь другое. Без этих переменных.
Это не глюк движка, а глюк правила. Скорее всего переменная имеет только неотрицательные значения, потому и - работает.
genesis вне форума   Ответить с цитированием
Старый 31.08.2009, 11:27   #8
NickLon
Матёрый пользователь
 
Регистрация: 27.03.2008
Адрес: Мск
Сообщений: 603
Вы сказали Спасибо: 9
Поблагодарили 7 раз(а) в 6 сообщениях
NickLon стоит на развилке (репутация по умолчанию)
Отправить сообщение для NickLon с помощью ICQ
По умолчанию

[QUOTE=genesis;109636]Разные машинисты!
[/QOUTE]
В правиле CheckTrackmark можно указать, для какого ПС оно будет срабатывать, а вовсе не машиниста!
Цитата:
Уж маркеры то знаешь?
Знаю, конечно. Но как ты себе это представляешь, может быть я чего-то
не понимаю? Давай разберём блок-схему такой ситуации. Состав груженый углем пришёл на станцию разгрузки, от дал отцеп маневровому под разгрузку, а магистральный лок встал в тупик для ожидания дальнейших команд. И вот под згарузку, на противоположной стороне маршрута триггер прошёл магистральный локомотив, только что отцепившийся от порожняка. Дальнейшие команды?
1) оба локомотива заняты. Это, правда, не очень то и большая проблема. Можно "уволить" машинистов на маневровых и сажать туда тех, кто только что был на магистральном. Но простои магистральных будут ещё те. Можно, конечно, где-нить в депо поставить локомотив-посредник;
2) и самое главное. Как я определю какой именно локомотив только что прошёл триггер? Ведь в команде Move to train нужно указать конкретный лок! Хотя, по-моему, есть правило MoveToTrainAtTrackMarkList. Хотя по-моему это уже гемор. Не стоит "не искать лёгких путей". Итак список правил перегружен настолько, что даже при 12-15 fps всё равно показывает диафильмы!
Цитата:
Это не глюк движка, а глюк правила. Скорее всего переменная имеет только неотрицательные значения, потому и - работает.
Ну, хрен редьки не слаще. А переменная может принимать любые значения. Эта мысль меня тоже посещала. И есть состав идёт по правилу, как задумано изначально, только вместо + ставил - переменная принимала и отрицательное значение.
Резюме: как я понял, решения этого вопроса в том виде, в котором уже всё создано не существует. Ну что ж, "будем искать, такого же, но без крыльев" (с) Спасибо всем, кто отклинулся.
P.S. Это, конечно, не значит, что вопрос закрыт. Решения то как не было, так и нет. Просто нужно двигаться дальше, а то уже три дня, как остановилась разработка. Скорее всего, откажусь я от этих правил (пока по крайней мере) и пущу составы по тем путям на станциях, которые они себе сами соберут.
NickLon вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 10:25. Часовой пояс GMT +4.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd. Перевод: zCarot
© 2001-2012, Администраторы и разработчики Клуба Trainsim
TopList Нажми для появления дома Trainsim на карте Intermap
Что это?