мда, так всё же непонятно. Нужно весь код посмотреть. Где-то либо ошибка, либо стоит через ещё какую-нибудь переменную провести команду.
Я ещё и сути команды не понял, что она должна делать и для чего? Вдруг это всё каким-то более простым способом можно сделать
Re: Свои изобретения в Railworks
Добавлено: 11 янв 2016, 19:16
Света
Всем доброго дня
Уважаемые разработчики, предлагаю вашему вниманию небольшую зарисовку, а именно функцию скрипта, которая, являясь по сути универсальной заготовкой, на данный момент заточена под управление свистком/тифоном. Вот сам код: Спойлер
function Signal (value)
value = value or 0
if ( HornAktiv == 4 ) or ( value ~= 0 ) then
if value ~= 0 and value >= 111 then
Property = tonumber(string.sub(value,1,1));
if Property < 3 then
SignMode= Property;
QuaSign = tonumber(string.sub(value,2,2));
DurSign = tonumber(string.sub(value,3,3));
else
SignMode = 1;
QuaSign = ( math.random (1, 3) );
DurSign = 1;
end
HornAktiv, Timer = 4, 0;
end
if ( Timer + DurSign ) <= Call( "*:GetSimulationTime") then
if HornAktiv == 4 then
Timer = Call( "*:GetSimulationTime");
if Call( "*:GetControlValue", Mode[SignMode], 0 ) == 1 then
Call( "*:SetControlValue", Mode[SignMode], 0, 0 );
if QuaSign > 0 then
else
HornAktiv = 0
SignMode, DurSign = 0, 0;
end
else
QuaSign = QuaSign - 1
if Property == 3 then
SignMode = ( math.random (1, 2) );
DurSign = ( math.random (1, 3) );
end
Call( "*:SetControlValue", Mode[SignMode], 0, 1 );
end
end
end
end
Mode = {"Horn", "Whistle"}
end
Особенность функции - для подачи или свистка, или тифона достаточно написать в коде скрипта вызов этой функции Signal ( 111 ). И не нужно заботиться о том, чтобы позже отключить то, что активировано.
Число, передаваемое в функцию - код, определяющий режим исполнения. Первая цифра - режим (1 - тифон, 2 - свисток, 3 - случайно ), вторая - количество подаваемых сигналов (от 1 до 9), и третья - продолжительность сигналов в секундах. Если первая цифра 3, то остальные значения не имеют, так как сигналы, их количество и продолжительность будут случайны.
Для использования код надо вставить в скрипт. Обязательно нужно в Update ( time ) вставить вызов функции Signal ().
Примером использования этого кода может быть вот такой вариант: Спойлер
function OnCustomSignalMessage (ConsistMessage)
-- Signal on mark 'C'
if ( ConsistMessage == "0619010301" ) then
if gPlayerInCab ~= 1 then
Signal ( 311 )
end
end
end
Здесь происходит вызов этой функции при получении сообщения от путевого объекта (в данном случае это знак "С") Число "311" предписывает подачу сигнала случайной. К сожалению, мне не удалось добиться работы функции OnCustomSignalMessage под управлением бота, поэтому на этом этапе принято решение автоматизировать подачу свистка локомотивом игрока, если управление ведется не из кабины.
На практике это выглядит так:
Знак, инициирующий подачу сигнала, можно скачать здесь. За любезно предоставленный исходник модельки знака и помощь в экспортировании объекта в игру выражаю искреннюю благодарность Косте ака радиомастер. Для того, чтобы знак был доступен в редакторе, в фильтре активов нужно подключить пакет FSA/Addon. Знак расположен во вкладке "инфраструктура".
Надеюсь, мои старания пригодятся не только мне Приветствуются рекомендации по оптимизации и применению этой функции, расширении её функционала Спойлер
Как вариант, я планирую подточить этот код таким образом, чтобы продолжительность и количество свистков при проезде знака "С" при своей случайности, зависели от текущей скорости, для исключения длинных и частых гудков на станции, где они не уместны . Сейчас это не реализовано из-за того, что это требует привязки к конкретному локомотиву, а мне хотелось сохранить максимальную гибкость кода.
Re: Свои изобретения в Railworks
Добавлено: 11 янв 2016, 22:56
Linx
Как эта штука с сигналкой? Нормально дружит?
Re: Свои изобретения в Railworks
Добавлено: 11 янв 2016, 23:13
Света
Да, функция ретрансляции прописана.
Re: Свои изобретения в Railworks
Добавлено: 12 янв 2016, 03:54
le Sandro
Света, хорошая фича. Берем на вооружение.
Re: Свои изобретения в Railworks
Добавлено: 14 янв 2016, 12:59
Itzanami
Света, Спойлер
Не уверен, что вам пригодится, но мало ли. Steam Sounds Supreme (разработчик озвучки паровозов и не только) как-то выкладывали видео, где показывали, что им удалось сделать скрипт так, что боты при отправлении включали продувные клапаны. В последних версиях их саунд-паков это должно присутствовать. Возможно вам пригодятся их наработки. Я правда не в курсе, последние ли версии их дополнений у нас на форуме.
Re: Свои изобретения в Railworks
Добавлено: 14 янв 2016, 15:26
Света
Спойлер
Полезной может быть любая информация о "нестандартном" поведении ботов, определяемом скриптами.
Я ищу пути, чтобы "научить" АИ вести себя "как положенно", и если, например, заставить их свистеть при подцепке/отцепке вагонов реализуемо, то пока я не представляю, как заставить АИ подать сигнал перед началом движения, так, чтобы он сначала свистел, а только потом начинал движение. Поэтому даже информация о том, что какое-то действие бота перед отправкой реально реализовать через скрипт (я даже не упоминаю о самом исходнике скрипта), не будет лишняя, по крайней мере будет видно, что это перспективное направление, и что есть смысл искать такое решение
Re: Свои изобретения в Railworks
Добавлено: 14 янв 2016, 23:30
whity
Света, да хоть бы свистели одновременно с отправлением. Не раз видел, как электрички так делают, а иногда даже и после отправления.
Re: Свои изобретения в Railworks
Добавлено: 20 янв 2016, 01:14
RussianRW
Вот пока что-та такое получается,кабину делаем для 2ТЭ10М,2ТЭ10У,2ТЭ10МР
Re: Свои изобретения в Railworks
Добавлено: 20 янв 2016, 02:34
pROssO
RussianRW, а не затруднит ли Вас опубликовать скриншоты большего разрешения, ведь здесь же почти ничего не видно?
Re: Свои изобретения в Railworks
Добавлено: 20 янв 2016, 10:39
animalkosmik
pROssO, та запросто
каждый может установить 3ds Max и скачать эту кабину http://model.trainzup.com/?p=867
и не обращать внимание на эти бредни
RussianRW писал(а):Вот пока что-та такое получается,кабину делаем для 2ТЭ10М,2ТЭ10У,2ТЭ10МР
Re: Свои изобретения в Railworks
Добавлено: 20 янв 2016, 11:23
Света
Спойлер
Уважаемые разработчики, я вас очень прошу, если кто-то будет моделить кабину именно по этим материалам (я не знаю, как это правильно называется), умоляю, уберите эту колбасу . Согласитесь, ну ведь ни один уважающий свое здоровье человек не будет катать в распечатанном виде продукты в пыльной, а летом ещё и жаркой кабине, а положит в холодильник, специально для этого устроенный. Ну честно, ещё только кильки в "Известиях" не хватает. Пожалуйста, не превращайте мою любимую машину в столовую
Re: Свои изобретения в Railworks
Добавлено: 20 янв 2016, 15:45
oldman777
Да, с колбасой явный перебор.
Re: Свои изобретения в Railworks
Добавлено: 20 янв 2016, 16:16
RussianRW
И так вы машинисты вас направили в Владивосток едите вы уже 1 день а жирать та хочется не будете постоянно есть Дошираки от них у вас в 99.9% будет язва а ведь мяса та хочется !! а тут помощник сидит ))))) ну или как говорится с голодухи всё будут жирать хоть и пропадут за то какой эффект будет
Re: Свои изобретения в Railworks
Добавлено: 20 янв 2016, 18:21
Почтовик
RussianRWСпойлер
какой язык применяешь при общении? Гугльпереводчик задымился, переводя твою писанину
Re: Свои изобретения в Railworks
Добавлено: 20 янв 2016, 21:14
Sergey1507
О колбасе.
Вспомните BR Class 35. Там пирожок из печки доставался и обратно в печку убирался. Можно при желании и для кабины 2ТЭ10 какую нибудь "сумку" придумать, тогда при поездке во Владивосток будет чем червячка заморить.
Света
На счет того, чтобы гудок подать. Странно, что то как у тебя прописано не срабатывает у бота при проезде мимо знака. Может в коде имеет место предписание, что сначала надо проверить, это поезд игрока или нет?
Знаю точно, что на данный момент в игре невозможно реализовать подачу сигнала при "встрече" поездов. Даже нет смысла пытаться, так как таких триггеров пока в игре не предусмотрено. (В Trainz есть). Намек на такой триггер - это анимированный переезд. Но триггер перезда не прикрепить к поезду.
Re: Свои изобретения в Railworks
Добавлено: 20 янв 2016, 21:44
Света
Sergey1507
Почему странно? Само имя функции "OnCustomSignalMessage" - "Входящее пользовательское сообщение от сигнала" - убеждает меня в том, что это функция, работающая только для игрока. Так же, как и код сообщения "15", который используется только для игрока.
Предписание поначалу было запланировано, чтобы поезд игрока не реагировал на это сообщение. Но ни с предписанием, ни без него добиться работы функции мне не удалось. Последним тестировался такой код:
function OnCustomSignalMessage (ConsistMessage)
SysCall("ScenarioManager:ShowAlertMessageExt","receive messages","",1,0)
if ConsistMessage == "0619010301" then
-- signal (311)
SysCall("ScenarioManager:ShowAlertMessageExt","match code","",5,0)
else
SysCall("ScenarioManager:ShowAlertMessageExt","mismatching code","",5,0)
--
-- Sector ALSN
end
end -- OnCustomSignalMessage( message )
То есть, при любом сообщении, переданном через "SendConsistMessage" как минимум 1 окно должно высвечивать, что показало бы запуск самой функции. А это происходит только когда локомотив под моим управлением
Re: Свои изобретения в Railworks
Добавлено: 20 янв 2016, 21:45
RussianRW
Да ладно с этой колбасой это вобще колбаса с ИРП Военного так что там повод отравится толком нету,по скоку срок хранения продуктов 2-4 года лучше посмотрите на эту колбасу
Re: Свои изобретения в Railworks
Добавлено: 23 янв 2016, 01:21
Света
Sergey1507 писал(а):Знаю точно, что на данный момент в игре невозможно реализовать подачу сигнала при "встрече" поездов. Даже нет смысла пытаться, так как таких триггеров пока в игре не предусмотрено.
Мне удалось научить поезда "видеть" друг друга при встрече . Более того, мой локомотив свистит при этом . Дело за малым - научить ботов ловить код светофора. Или заставить локомотив свистеть от кодов AWS, TWPS. Пока мне это не удалось. Кто-нибудь хочет подключиться?
Re: Свои изобретения в Railworks
Добавлено: 24 янв 2016, 15:28
Света
Поезд под управлением АИ рад нас видеть
Всё-таки, нет ничего невозможного .
Естественно, все наработки пока очень сырые, требуют адаптации к существующей сигналке, добавления защитных условий и т.п..
Но главное - возможность встречных сигналов - реальность
Особую благодарность выражаю пользователю Sergey1507 - именно его идея использована как основа решения задачи
Самое главное сделано - найдено решение. Теперь для дальнейшего продвижения в этом направлении мне нужна помощь. Направления в разработке - изготовление 3D-модельки для путевого объекта, помощь со скриптом, тестирование на полигоне, оборудованном нашей сигналкой. Если кто-то хочет помочь в разработке - добро пожаловать в ЛС.