Информация: Уважаемые посетители! В течение нескольких месяцев на форуме существовала проблема с регистрацией новых пользователей, о которой администрации стало известно недавно. Если вы ранее пытались зарегистрироваться на форуме, но не получили на ваш e-mail письмо с ссылкой для подтверждения регистрации, просим вас зарегистрироваться повторно. Приносим извинения за доставленные неудобства. Если вы все еще испытываете проблемы с регистрацией на форуме, обратитесь за помощью на e-mail: mr.angelo@railroadsim.net

Скриптование сценариев

Обсуждение маршрутов, объектов, сценариев

Re: Скриптование сценариев

Сообщение Konst-81 » 07.03.2018, 11:46

Konst-81 писал(а):Всем хорош ТЭМ-2, но... Активация тифона через SysCall ("имя ТЭМ-2:SetControlValue", "Horn", 0, 1); выполняется, а свисток через SysCall ("имя ТЭМ-2:SetControlValue", "Bell", 0, 1); нет :( Прошу разработчиков ПС и просто знающих людей помочь найти решение. Думаю что в скрипте поезда используется другая переменная ( например - svistok )

Изучая тему http://railworks2.ru/viewtopic.php?f=37 ... &start=420 благодаря скрипту от Светы, найден ответ на собственный вопрос ( в котором догадка оказалась верна :D ). Активация свистка в ТЭМ-2 выполняется через переменную Whistle - с англ. "свисток".
SysCall ("имя ТЭМ-2:SetControlValue", "Whistle", 0, 1);
Надеюсь, кому-то будет полезно...
Konst-81
 
Сообщения: 8
Зарегистрирован: 25.02.2018, 19:27
Откуда: Тирасполь, Приднестровье
Благодарил (а): 19 раз.
Поблагодарили: 1 раз.
Играю в: Train Simulator 2018
Имя: Константин

Re: Скриптование сценариев

Сообщение A1iv » 07.03.2018, 20:25

Можно открыть проект локомотива и посмотреть как там что назвали из органов управления, а потом задействовать это скриптом.
Save Donbass people from Kiev agression. Ушел на TSW.
Аватара пользователя
A1iv
 
Сообщения: 437
Зарегистрирован: 27.10.2011, 03:30
Откуда: РФ, Тверская обл.
Благодарил (а): 533 раз.
Поблагодарили: 120 раз.
Блог: Просмотр блога (10)
Имя: Алексей

Re: Скриптование сценариев

Сообщение Skif » 07.03.2018, 20:48

Для этого так же крайне полезно разработчикам, работающим хотя бы в рамках одного ресурса, использовать единые имена для основных контролов. А лучше - комплектовать свой подвижной состав интерфейсом, адаптирующим его под требуемую систему команд или управления.
Skif
 
Сообщения: 3625
Зарегистрирован: 01.10.2009, 17:42
Благодарил (а): 395 раз.
Поблагодарили: 1015 раз.
Блог: Просмотр блога (3)
Имя: Дмитрий

Re: Скриптование сценариев

Сообщение Konst-81 » 07.03.2018, 23:53

Уважаемый Алексей, прошу более подробно описать процесс опознавания органов управления. Имя файла, расширение, чем открыть, где и что искать? Вопрос с активацией звуковых сигналов ЧС-7 пока не решен, поэтому попробую найти. Простите за возможно глупые вопросы, но познания близки к нулевому уровню...
Konst-81
 
Сообщения: 8
Зарегистрирован: 25.02.2018, 19:27
Откуда: Тирасполь, Приднестровье
Благодарил (а): 19 раз.
Поблагодарили: 1 раз.
Играю в: Train Simulator 2018
Имя: Константин

Re: Скриптование сценариев

Сообщение hellishfire » 09.03.2018, 18:57

Konst-81
Надо открывать .bin файл локомотива и искать в нём контрол, отвечающий за сигнал, если он есть. В траффиковом ЧС7, ЧС2К и ВЛ11 звуков вообще нет, к сожалению.

Открывать .bin можно либо RWTools(надо отдельно скачивать бесплатную программу), либо прогонять через serz.exe, который есть в папке Railworks - он из bin сделает xml и наоборот.
hellishfire
 
Сообщения: 194
Зарегистрирован: 14.12.2012, 20:50
Откуда: Москва
Благодарил (а): 248 раз.
Поблагодарили: 143 раз.
Играю в: Train Simulator 2018
Роль: Разработчик
Имя: Игорь

Re: Скриптование сценариев

Сообщение Konst-81 » 10.03.2018, 12:52

hellishfire
Есть ЧС7-080 и ЧС7-088 с чешской кабиной https://www.youtube.com/watch?v=zWzpA6vWhog и реализованной звуковой сигнализацией. Благодаря Вам определил: для подачи свистка прописываем "Pistala", а для тифона - "Houkacka" . Всем огромное спасибо!
Konst-81
 
Сообщения: 8
Зарегистрирован: 25.02.2018, 19:27
Откуда: Тирасполь, Приднестровье
Благодарил (а): 19 раз.
Поблагодарили: 1 раз.
Играю в: Train Simulator 2018
Имя: Константин

Re: Скриптование сценариев

Сообщение A1iv » 11.03.2018, 10:00

У меня другой вопрос возник в свое время: как определить расстояние до встречного поезда, до светофора и вообще до чего-либо?
А от konst-81 ждем сценарий раз все получилось.
Save Donbass people from Kiev agression. Ушел на TSW.
Аватара пользователя
A1iv
 
Сообщения: 437
Зарегистрирован: 27.10.2011, 03:30
Откуда: РФ, Тверская обл.
Благодарил (а): 533 раз.
Поблагодарили: 120 раз.
Блог: Просмотр блога (10)
Имя: Алексей

Re: Скриптование сценариев

Сообщение Konst-81 » 23.03.2018, 13:30

Предлагаю Вам свой вариант функции подачи звуковых сигналов, исполняемых через триггер инструкции в расписании сценария, с учётом имеющихся на данный момент названий контролов и их значений.

function OnEvent( event )
if string.sub (event,1,6) == "signal" then
SignMode = tonumber(string.sub(event,7,7));
DurSign = tonumber(string.sub(event,8,9)) / 10;
NumberRV = string.sub (event,10,13);
Mode = {{"Horn", "Houkacka"},{"Whistle", "Pistala" ,"Bell"}};
if SysCall(NumberRV..":ControlExists", Mode[SignMode][1], 0) == 1 then
VarMode = 1;
elseif SysCall(NumberRV..":ControlExists", Mode[SignMode][2], 0) == 1 then
VarMode = 2;
elseif SysCall(NumberRV..":ControlExists", Mode[SignMode][3], 0) == 1 then
VarMode = 3;
else VarMode = 0;
end
if VarMode ~= 0 then
SysCall (NumberRV..":SetControlValue", Mode[SignMode][VarMode], 0, 1);
SysCall ("ScenarioManager:TriggerDeferredEvent", "OffSignal", DurSign );
end
end
if event == "OffSignal" then
SysCall (NumberRV..":SetControlValue", Mode[SignMode][VarMode], 0, 0);
end
end

Активация функции представляется выражением вида:
signalxyyzzzz - где:
signal - проверяемое кодовое слово активации функции;
х - принимает значения: 1 - для тифона, 2 - для свистка;
yy - величина продолжительности звукового сигнала/10;
zzzz - номер локомотива, присвоенный в ниспадающем меню с правой стороны экрана, вызванном двойным щелчком левой кнопки мыши по нему.
Пример: signal1203248 - активация тифона (1) на 2 секунды (20) локомотивом с номером 3248;
signal2054301 - активация свистка (2) на 0,5 секунды (05) локомотивом с номером 4301.
К сожалению, пока что не найдено решение для возможности активации определенного количества звуковых сигналов, поэтому данный вопрос решается последовательным указанием соответствующим количеством триггеров инструкций в расписании сценария. Использование данной функции накладывает ограничение на одновременную подачу сигнала одним ботом, которое решается копированием тела функции с заменой имен переменных (достаточно изменить регистр в названии переменной, к примеру, signal заменить на Signal, и т.д.). Полагаю, этого будет достаточно, если, конечно, Вы не собрались создать "Локомотивный хор" :D
Из недостатков, замеченных мной, могу отметить, что при присвоении номера локомотивам ТЭМ-2 пропадают надписи номера локомотива на боковых поверхностях кабины :dontknow:
За помощь в освоении LUA и "работе над ошибками" огромную благодарность выражаю Свете!
Konst-81
 
Сообщения: 8
Зарегистрирован: 25.02.2018, 19:27
Откуда: Тирасполь, Приднестровье
Благодарил (а): 19 раз.
Поблагодарили: 1 раз.
Играю в: Train Simulator 2018
Имя: Константин

Re: Скриптование сценариев

Сообщение Skif » 23.03.2018, 15:02

Проблема выдачи "кодовых" сигналов локомотивом решается созданием звуковых oneshot-ов в его конфиге (только в конфиге бота-траффика, если таковой имеется), и активацией соответствующих контролов. Записать нужные звуки - раз плюнуть из стандартных для локомотива. Можете насвистеть самостоятельно в игре и сграбить, можете смонтировать в аудиоредакторе.

Набор звуков хотя бы в пределах команды разработчиков должен быть унифицированный по типам событий, но может отличаться звуками (что естественно и как бы очевидно). Например:

001 - один короткий
002 - два коротких
003 - три коротких
004 - один длинный

и т.д.

Можно выдать эти сигналы и скриптом (мой ТУ7А точно выдаст - у него паттерны для свистка и тифона очень короткие и позволяют "продудеть" любой сигнал) , но это надо заморочиться и написать метод, который при вызове отыграет нужный сигнал. Прогресс метода можно хранить в контроле или переменной. Написать методы под каждый сигнал - и дудеть не надудеться.
Skif
 
Сообщения: 3625
Зарегистрирован: 01.10.2009, 17:42
Благодарил (а): 395 раз.
Поблагодарили: 1015 раз.
Блог: Просмотр блога (3)
Имя: Дмитрий

Re: Скриптование сценариев

Сообщение Света » 23.03.2018, 15:58

Skif, это всё верно, но есть одно "но" - все эти примочки может сделать только тот, кто разрабатывает локомотив. А Konst-81 ищет универсальный метод, как заставить исполнить художественный свист любой локомотив, независимо от того, есть в нем шаблоны сигналов или нет.
Понятно, что намного проще добавить несколько oneshot-ов. Но, допустим, Konst-81 будет писать сценарий, в котором надо будет, чтобы какой-то из уже опубликованных локомотивов подал серию "003 - три коротких". Вот заходим мы в форум, видим пост "господа разработчики, пожалуйста, добавьте в локомотивы А, В и С несколько oneshot-ов, список прилагается". Реакцию пользователей описать?
Ну и ещё один момент. Лично я точно не буду добавлять такие oneshot-ы. Из-за экономии "веса" модели, желания оптимизации и отсутствия единого стандарта. По поводу того, чтобы добавить обработчик в скрипте (с активацией по унифицированному контролу) - можно поговорить. Кто возьмется разработать стандарт, чтобы потом комплектовать все локомотивы таким обработчиком? Я скрипт напишу, не вопрос.
Никогда не опускай руки, ведь впереди тебя ждет еще так много поводов опустить руки, а ты уже опустил руки.
Аватара пользователя
Света
 
Сообщения: 489
Зарегистрирован: 18.06.2016, 19:38
Благодарил (а): 236 раз.
Поблагодарили: 476 раз.
Блог: Просмотр блога (7)
Играю в: Train Simulator 2018
Роль: Разработчик

Re: Скриптование сценариев

Сообщение Skif » 23.03.2018, 17:06

Чтобы разрабатывать стандарты, нужна контент-студия модмейкеров, а не форум гениев-одиночек с мотором.
Skif
 
Сообщения: 3625
Зарегистрирован: 01.10.2009, 17:42
Благодарил (а): 395 раз.
Поблагодарили: 1015 раз.
Блог: Просмотр блога (3)
Имя: Дмитрий

Re: Скриптование сценариев

Сообщение Света » 23.03.2018, 17:24

Да ладно :D
Неужели для того, чтобы написать пост "предлагаю каждый локомотив укомплектовать контролом "SuperTifon" со значениями 0-9 и вот этим куском скрипта, это нужно для того-то и того-то" нужна контент-студия модмейкеров?
Это во-первых.
А во-вторых - если нужна контент-студия модмейкеров, то что мешает этим заморочиться и создать такую студию? Почему чехи, итальянцы, немцы, американцы, британцы, китайцы могут это сделать и только мы какие-то особенные? Можно, конечно ждать доброго дядю, который придет под рождество и напишет здесь о том, что вот вам, ребята, контент-студия модмейкеров, за то, что так красиво и терпеливо её дожидались. Берите и пользуйтесь :slyn:
А можно попытаться решить вопрос конструктивно.
Никогда не опускай руки, ведь впереди тебя ждет еще так много поводов опустить руки, а ты уже опустил руки.
Аватара пользователя
Света
 
Сообщения: 489
Зарегистрирован: 18.06.2016, 19:38
Благодарил (а): 236 раз.
Поблагодарили: 476 раз.
Блог: Просмотр блога (7)
Играю в: Train Simulator 2018
Роль: Разработчик

Re: Скриптование сценариев

Сообщение Skif » 23.03.2018, 18:33

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

Пост, разумеется, написать можно, но все равно каждый девелопер-одиночка сделает в итоге по своему.
Skif
 
Сообщения: 3625
Зарегистрирован: 01.10.2009, 17:42
Благодарил (а): 395 раз.
Поблагодарили: 1015 раз.
Блог: Просмотр блога (3)
Имя: Дмитрий

Пред.

Вернуться в [RW] Маршруты и сценарии

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1