Donate with PayPal button New New

Результаты опроса: Что вы можете сказать об обновлении до 2.0

Голосовавшие
205. Вы ещё не голосовали в этом опросе
  • Стало гораздо лучше, чем предыдущий вариант

    113 55.12%
  • По моему, всё тоже самое. В чём был смысл обновлять?

    7 3.41%
  • Фигня какая-то. Не нужно было обновлять и портить достойный набор

    1 0.49%
  • Как можно было додуматься не сделать совместимость с предыдущей версией?

    7 3.41%
  • Опять только для 3.7? Надоело!

    43 20.98%
  • Я не пользуюсь бото-машинистом

    40 19.51%
Опрос с выбором нескольких вариантов ответа.
+ Ответить в теме
Страница 246 из 263 ПерваяПервая ... 146 196 236 244 245 246 247 248 256 ... ПоследняяПоследняя
Показано с 2,451 по 2,460 из 2621

Тема: Бото-машинист

  1. #1
    Пользователь Аватар для Эрендир
    Регистрация
    13.01.2010
    Страна
    Адрес
    Я Бот, живу в сети :)
    Возраст
    39
    Сообщений
    6,303

    Script Бото-машинист

    Бото-машинист
    версия 2.0

    Весь набор
    hotfix 1
    БОК 2.1
    КДСП hotfix1

    В комплект вошли:
    Открыть

    Исправления:
    Открыть

    БОК 2.1
    Открыть

    Автор: Эрендир
    Тестеры: Ant.Taranish, Tram_, NickLon
    Некоторые идеи: Tram_, NickLon

    Большое спасибо всем, кто внёс тот или иной вклад в развитие этой системы.

    Совет
    Контроллеры свободного пути станции и депо должны быть установлены в слое сессии

    Совет
    Новая версия по ряду причин не совместима с предыдущей, потому на старых сессиях требует повторной перенастройки.


    ВНИМАНИЕ
    Система Бота-машиниста будет работать только в Trainz Simulator 2012 3.7 build 58414 и выше. Задавшие вопрос о работе в более низких билдах автоматически получат бан на 3е суток. Не засоряйте не нужным форум и избавьте себя и администрацию от ненужных проблем.
    Последний раз редактировалось Эрендир; 30.11.2014 в 08:18.


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

    Donate with PayPal button N3v New New

     

  3. #2451
    Пользователь Аватар для Avrora
    Регистрация
    27.08.2018
    Страна
    Адрес
    Санкт-Петербург
    Возраст
    51
    Сообщений
    196

    По умолчанию

    Помнится что как то обсуждалась команда "сцепка с составом", а именно что бот мог не рассчитать расстояние до состава, когда накатывался назад вагонами к прицепляемому составу(вагонам), происходила сцепка без остановки и соответственно ваш бот стоял и тупил, т.к команда оставалась не выполненной. После многочисленных тестов разными маневровыми локомотивами и вагонами с нормальными тяговыми характеристиками и скриптами известными вам всеми авторов, выявлено следующее, растяжка сцепок всех ваших вагонов которые используются в данном маневре не должна превышать значения 0.02 Тестировалось в 2019 SP2 Auran Standard, на различных уклонах пути, с разной массой поезда, с разной длиной вагонов в количестве до 20 штук в накатываемом составе при движении назад.
    Последний раз редактировалось Avrora; 14.03.2021 в 21:55.
    К качеству они стремились... Нужно думать, нужно разбираться!

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


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

    По умолчанию

    Отлаживаю под создание сценариев карту "Степная Даль", но обратил внимание вот на что:


    Из портала у меня выезжает товарный под, древним как мамонт, ВЛ60К, дефолт старый:




    Команды у него простые - поднять второй токоприёмник, автомашинист - активировать.
    Но локомотив этот почему-то выезжает из портала с обеими поднятыми пантографами, как постоянник.

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

    По умолчанию

    Проверил несколько разных электровозов, насколько понял многое зависит от скрипта. Этот ВЛ60К, выезжает из портала сразу с одним поднятым ТП, без команд, но помнится, что встречал и такого бота, который не поедет, пока командой ТП не поднимешь.

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

    По умолчанию

    Цитата Сообщение от RZD29RUS Посмотреть сообщение
    Команды у него простые - поднять второй токоприёмник, автомашинист - активировать.
    Но локомотив этот почему-то выезжает из портала с обеими поднятыми пантографами, как постоянник.
    Поезда, выходящие из портала, автоматически поднимают первый пантограф.
    Если ему дать еще команду "поднять второй пантограф", то будут подняты оба.
    Поэтому команду пантографа лучше вообще не задавать, либо после выхода из портала давать команду "опустить оба пантографа", а потом поднять нужный.
    Все зависит от того, в каком порядке пантографы прописаны в конкретном локомотиве.
    Из-за того, что портал поднимает 1-ый пантограф, то целесообразно в локомотиве первым прописывать задний пантограф. Важно понимать, что слово "первый" не значит первый от машиниста, а "первый" как вообще порядковый, т.е. задний. "Второй" - значит, второй по порядку, т.е. передний. Так проще. К тому же не приходится использовать лишнюю команду. Но для тройников своя история.
    Уроки по Trainz: https://www.youtube.com/c/TeamoftheTrainz

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


  9. #2455
    Пользователь Аватар для DmitryKz
    Регистрация
    02.07.2019
    Страна
    Адрес
    Сергиев Посад
    Возраст
    50
    Сообщений
    469

    По умолчанию

    При осаживании состава (пассажирские вагоны осаждаются ботом-чмухой к платформе под посадку пассажиров) движение происходит вот такими рывками:


    Можно ли это как-то починить?
    Решаем проблемы по мере поступления

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

    По умолчанию

    DmitryKz, к сожалению, нет, если речь идет о командах из БОК. Здесь неправильный алгоритм в скрипте. Нужно, чтобы обратная связь регулирования тяги осуществлялась по скорости локомотива, а не первого вагона.
    Уроки по Trainz: https://www.youtube.com/c/TeamoftheTrainz

  11. Сказал спасибо:


  12. #2457
    Пользователь Аватар для DmitryKz
    Регистрация
    02.07.2019
    Страна
    Адрес
    Сергиев Посад
    Возраст
    50
    Сообщений
    469

    По умолчанию

    Цитата Сообщение от Sandrilyon Посмотреть сообщение
    если речь идет о командах из БОК
    Вот сейчас попробовал Autodrive к маркеру — движение при осаживании прошло без рывков. А в видео использовалась zxPath ShuntTo. Спросил у Володи TRam_'а — может, прояснит что...
    Решаем проблемы по мере поступления

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

    По умолчанию

    Принципиален ли для ботомашиниста слой, в котором будут находиться стоп-маркеры? Критично ли, зашить их сразу в карту, для удобства создания сессий самому или будущим пользователям.

  14. #2459
    Пользователь Аватар для Тёмыч
    Регистрация
    22.04.2015
    Страна
    Адрес
    Архангельск
    Возраст
    43
    Сообщений
    450

    По умолчанию

    Цитата Сообщение от RZD29RUS Посмотреть сообщение
    Принципиален ли для ботомашиниста слой, в котором будут находиться стоп-маркеры?
    RZD29RUS, у меня они все в слое карты (Печорка). Всё нормально работает.

  15. Сказал спасибо:


  16. #2460
    Пользователь Аватар для ArGrigorov
    Регистрация
    10.11.2020
    Страна
    Адрес
    Нижний Тагил
    Возраст
    47
    Сообщений
    72

    По умолчанию

    Цитата Сообщение от Sandrilyon Посмотреть сообщение
    Нужно, чтобы обратная связь регулирования тяги осуществлялась по скорости локомотива, а не первого вагона.
    Там дело, скорее всего не в том, от какого вагона приходит обратная связь, а в том, что регулировка скорости делается так: для разгона постепенно увеличивается параметр DCCThrottle (аналог того, если вручную повернуть ручку мощности в режиме DCC) - состав разгоняется до тех пор, пока скорость не превысит лимит скорости. После того, как скорость превысила лимит, DCCThrottle сбрасывается на определенное значение, и это значение слишком большое, а в режиме DCC состав довольно резко реагирует на все изменения мощности тяги, поэтому скорость резко падает, и получается рывок. Затем, скрипт видит, что скорость упала ниже лимита, и снова начинает разгонять состав увеличивая DCCThrottle.
    Я смотрел команду "Couple with train", у которой скрипт не был зашифрован - там есть отдельный файл скрипта ctdrivingwithspeed.gs - в нём прописан алгоритм движения с заданной скоростью. На сколько я понимаю - в команде, которую использует DmitryKz используется примерно тот же скрипт.

    ---------- Сообщение добавлено в 16:08 ---------- Предыдущее сообщение размещено в 16:01 ----------

    Цитата Сообщение от Avrora Посмотреть сообщение
    Помнится что как то обсуждалась команда "сцепка с составом", а именно что бот мог не рассчитать расстояние до состава, когда накатывался назад вагонами к прицепляемому составу(вагонам), происходила сцепка без остановки и соответственно ваш бот стоял и тупил, т.к команда оставалась не выполненной. После многочисленных тестов разными маневровыми локомотивами и вагонами с нормальными тяговыми характеристиками и скриптами известными вам всеми авторов, выявлено следующее, растяжка сцепок всех ваших вагонов которые используются в данном маневре не должна превышать значения 0.02 Тестировалось в 2019 SP2 Auran Standard, на различных уклонах пути, с разной массой поезда, с разной длиной вагонов в количестве до 20 штук в накатываемом составе при движении назад.
    Как я уже писал выше - я нашёл на DLS версию команды сцепки с составом, в которой скрипты не зашифрованы, и поправил её - сделал, чтобы при приближении к составу ближе чем на 100 метров, скорость движения ограничивается до 5км/ч, и проблема въезда в состав на большой скорости решилась. Проблему сцепки без остановки тоже решил тем, что сделал, чтобы после сцепки подавалась команда остановки и скрипт ждал полной остановки состава, и только потом команда завершалась. Изначально проверка делалась по количеству вагонов в составе - команда запоминала - сколько было вагонов в составе при начале движения и постоянно проверяла - не увеличилось ли количество вагонов - если количество вагонов увеличилось - значит, произошла сцепка, и команда завершалась сразу же после увеличения количества вагонов, а нужно было сперва остановиться, и только потом завершаться.

    ---------- Сообщение добавлено в 16:12 ---------- Предыдущее сообщение размещено в 16:08 ----------

    Вот место в файле ctdrivingwithspeed.gs, в которое я внёс правку на ограничение скорости при приближении к составу ближе, чем на 100м:

    в методе Update(void) класса CTDriveToTrain изменил следующее

    Код:
    		...
    		float ns = Math.Fmin(nsnsb, Math.Fmin(nsrs, nsv)); //Определяем минимальную требуемую скорость движения (эта строка была изначально)
    
    		// начало моей вставки
    		if(VehDist <= 100){
    			if(ns > 5){
    				//Interface.Print(train.GetActiveDriver().GetLocalisedName() + " dist to train <=100m - speed down to 5kph");
    				ns = 5;
    			}
    			if(me.MaxThrottle > 1)
    				me.MaxThrottle = 1;
    		}else{
    		// конец моей вставки
    			if(ns > me.ControlSpeed)
    				me.MaxThrottle = -1;
    		// начало моей вставки
    		}
    		// конец моей вставки
    
    		me.ControlSpeed = ns; //Назначаем новую скорость на контроль
    
    		float speed = train.GetVelocity();
    		...
    ---------- Сообщение добавлено в 16:20 ---------- Предыдущее сообщение размещено в 16:12 ----------

    В файле ctcoupleshedulecommand.gs в методе HandleCoupleCommand() класса CTCoupleCustomCommand внёс следующие правки:

    Код:
    		bool Coupled = false; //  объявил переменную вначале функции
    		
    		...
    		
    			on "CTCoupleCustomCommand", "Update": {
    				if(!Coupled){ // обернул код, который был изначально в это условие
    					if(Couple)
    						Controller.UpdateNoBasedTrackside();
    					else
    						r = Controller.Update();
    
    					if(r == CTDriveToTrain.STATUS_TRAIN_NOT_FOUND and !TrainNorFound){
    						Interface.Print(driver.GetLocalisedName() + " - " + strTable.GetString("trainnotfound"));
    						TrainNorFound = true;
    					}else if(r == CTDriveToTrain.STATUS_COMPLETE and !Couple){
    						Controller.Stop();
    						train.Sleep(3);
    						if(Sound == ST_HORN)
    							train.SoundHorn();
    						else if(Sound == ST_WHISTLE){
    							train.SendMessage(train, "loco", "bell");
    							train.Sleep(1);
    							train.SendMessage(train, "loco", "bell");
    						}
    						Controller.SetMaxSpeed(1);
    						Couple=true;
    					}else if(Couple){
    						int cvehCount = train.GetVehicles().size();
    						if(vehCount != cvehCount){
    							//Interface.Print(driver.GetLocalisedName() + " coupled");
    							Coupled = true; // устанавливаю переменную в true, если сцепка была произведена (если количество вагонов в составе изменилось)
    							Controller.Stop(); // не помню - была ли эта строчка изначально, или нет
    						}
    					}else{
    						TrainNorFound = false;
    					}
    				// начало моей вставки (далее идёт полностью мой код
    				}else{
    					// ожидаем полной остановки после сцепки
    					if(train.IsStopped()){
    						//Interface.Print(driver.GetLocalisedName() + " coupling ended");
    						break;
    					}//else{
    					//	Interface.Print(driver.GetLocalisedName() + " waiting for stop (vel = " + train.GetVelocity() + ")");
    					//}
    				}
    				// конец моей вставки
    				train.PostMessage(train, "CTCoupleCustomCommand", "Update", Controller.GetUpdatePeriod());
    				continue;
    Последний раз редактировалось ArGrigorov; 01.05.2021 в 14:24.

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


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

Ваши права

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