Этот пользователь сказал Спасибо TRam_ за это полезное сообщение: |
![]() |
![]() |
![]() |
#16 |
Матёрый пользователь
Регистрация: 18.02.2008
Сообщений: 8,754
Вы сказали Спасибо: 1,426
Поблагодарили 2,403 раз(а) в 1,352 сообщениях
![]() |
![]()
ну и что? главное - что можно сделать кучу процессов которые будут работать одновременно(звуки, управления тягой, тормозами, проскальзыванием, тормозной рукояткой, компрессором, светом, "прикрепляемыми" и(или) анимрованными сценами (возможна даже "вложенная анимация", хотя официально это не возможно
![]() Но запомните - при торможении мы сможем опустошить только ГМ, т.к. "зарядка" в трейнз "автоматическая", автомат начинает прекрашать подачу воздуха в ТМ без сверхзарядки совсем (к сожалению я ошибся насчёт неё). |
![]() |
![]() |
![]() |
|
Яndex
Спонсор
Регистрация: 01.01.2007
Сообщения: 500
Реклама показывается изредка по случайному принципу |
![]() |
![]() |
#17 |
Матёрый пользователь
|
![]() |
![]() |
![]() |
![]() |
#18 |
Матёрый пользователь
Регистрация: 18.02.2008
Сообщений: 8,754
Вы сказали Спасибо: 1,426
Поблагодарили 2,403 раз(а) в 1,352 сообщениях
![]() |
![]()
это не поддерживается плагином. обычные точки привязки неанимируемы
|
![]() |
![]() |
![]() |
#19 |
Матёрый пользователь
Регистрация: 15.05.2008
Адрес: С-Пб (Балт). ТЧ-15
Сообщений: 3,960
Вы сказали Спасибо: 72
Поблагодарили 233 раз(а) в 117 сообщениях
![]() |
![]()
Сто раз согласен
![]() ![]() Вопрос по теме: Тут недавно вышел ВЛ80Р-1867 со скриптом включения ГВ и МВ. А можно это дело привязать к клавишам?
__________________
В ангаре:F-15c, СУ-27, СУ-25Т, МиГ-29С. "Да и хрен с ней с этой рацией! Горизонт держи, б*я!!"(с) лётный инструктор |
![]() |
![]() |
![]() |
#20 | |
Матёрый пользователь
Регистрация: 30.08.2007
Адрес: Московская область, 36км
Сообщений: 3,620
Вы сказали Спасибо: 263
Поблагодарили 304 раз(а) в 172 сообщениях
![]() |
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#21 |
Матёрый пользователь
Регистрация: 18.02.2008
Сообщений: 8,754
Вы сказали Спасибо: 1,426
Поблагодарили 2,403 раз(а) в 1,352 сообщениях
![]() |
![]()
вибачте, ГР (головний резервуар
![]() привязать то можно, но нужно и скрипт переделать и сделать скрипт кабины (а поскольку админ этого скрипта TRam_, и он пока не разрабатывает, то ответ нет) Последний раз редактировалось TRam_; 03.09.2008 в 19:43. |
![]() |
![]() |
![]() |
#22 |
Матёрый пользователь
Регистрация: 18.02.2008
Сообщений: 8,754
Вы сказали Спасибо: 1,426
Поблагодарили 2,403 раз(а) в 1,352 сообщениях
![]() |
![]()
возобновляю эту старую, забытую тему....
итак... Открываем папку любой trz , папку Settings, файл keyboard.txt В нём мы видим все используемые этой игрой клавиши, и строки, кодирующие эти клавиши. Именно СТРОКИ движок trz воспринимает при нажатии клавиш. Как видете, многие клавиши повторяются для разных строк (значит, обе эти строки будут обрабатываться одновременно). В трс можно два способа "информирования" скрипта о нажатии клавиши - скриптовый и косвенно-скриптовый. Начнём с косвенно-скриптового, т.е. с распознавания сообщений о том или ином действии клавиши. Таких действия 4 - включение гудка, включение "звонка"(Америка...), включение посыпания песка и поднятие токоприёмника. Покажу, как их "доставать". Если у нас 2009(более ранним не надо), то в trainzoptions.txt прописывем строку -enablescriptmessagelogging Заходим в trz, устанавливаем на рельсы электровоз, и нажимаем клавиши из keyboard.txt соответствующие строкам train_horn train_sand train_bell train_pantograph_toggle После этого выключаем trz и просматриваем файл "JetLog.txt". В нём находим интресующие нас строки - ? 000004B8 Warn 1:01.1 Trainz : ScriptLog> router message from 0002 '' to 0000 '', message Train, NotifyHorn ? 000004B8 Warn 0:53.1 Trainz : ScriptLog> router message from 0002 '' to 0000 '', message Train, NotifySanding ? 000004B8 Warn 0:54.2 Trainz : ScriptLog> router message from 0002 '' to 0000 '', message Train, NotifyBell ? 000004B8 Warn 0:58.7 Trainz : ScriptLog> router message from 0002 '' to 0000 '', message Train, NotifyPantographs Значит, для того, чтобы "поймать" эти клавиши, достаточно создать в скрипте локомотива функцию-обработчик одного из этих сообщений типа void obrabotchik1(Message msg) { // проверяем, что это сообщение послал именно наш поезд if(cast<train> (msg.src)==me.GetMyTrain()) { //здесь собственно обработка нажатия } } и "установить" её на локомотив AddHandler(me,"Train","NotifyHorn","obrabotchik1") ; Но это не основной способ получения клавиш. Рассмотрим основной, скриптовый. Итак, заходим в папку scripts , находим там файл "Cabin.gs" и открываем его. Тут описывается всё функции кабины, написаные аурановцами и скомпилированные в "Cabin.gsl" папки libraries . класс CabinControl вообще широко известен, именно он широко используются в ВЛ10-1628 и ЧС4т для "вылавливания" поворота мышью ручек и тумблеров. Ну класс Cabin является родителем класса DefaultLocomotiveCabin, установленного почти на всех "нескриптованных" непаровых локомотивах . А теперь рассмотрим функцию, которая в самом низу этого класса, выглядящую так public void UserPressKey(string s) { Interface.Log("Cabin.UserPressKey> unhandled key-command " + s); } Аурановцы говорят, что вызовом этой функции заставить trz "подумать, что нажималась клавиша" нельзя, эта функция только ВЫЗЫВАЕТСЯ ОБРАБОТЧИКОМ нажатия клавиши на клавиатуре. Подождите, что-то знакомая строка.... Открываем JetLog.txt и перед строкой ? 000004B8 Warn 0:58.7 Trainz : ScriptLog> router message from 0002 '' to 0000 '', message Train, NotifyPantographs видим строку (тут прописывание -enablescriptmessagelogging в 2009 роли не играет) ? 000004B8 Warn 0:58.7 Trainz : WorldState::NativeLog> Cabin.UserPressKey> unhandled key-command firebox-door-toggle Вот-то она, работа этой самой процедуры... А "firebox-door-toggle" - почти то же, что "train_cabin_firebox_door_toggle", согласно keyboard.txt соответствует клавиша KP1 , та же, что и для токоприёмника. Ну и перебрав таким же образом (на нескриптованном электровозе) все клавиши, описанные в keyboard.txt, получаем следующий список "работающих": а) для всех версий trz train_cabin_brake_application firebox-door-toggle (соответствует train_cabin_firebox_door_toggle) train_cabin_throttle_0 train_cabin_throttle_up train_cabin_throttle_down steam-regulator-up (соответсвует train_cabin_regulator_up) steam-regulator-down (соответсвует train_cabin_regulator_down) steam-reverser-up (соответсвует train_cabin_reverser_up) steam-reverser-down (соответсвует train_cabin_reverser_down) wave (соответсвует train_cabin_coalman_wave) steam-blower-up (соответсвует train_cabin_blower_up) steam-blower-down (соответсвует train_cabin_blower_down) steam-injector-up (соответсвует train_cabin_injector_up) steam-injector-down (соответсвует train_cabin_injector_down) cabin-fans (соответсвует train_cabin_fans) shovel-coal (соответсвует train_cabin_shovel_coal) б) и для версий 2009 и старше (аурановцы, как и обещали, расширили предыдущий список) train_cabin_toggle_draincocks train_cabin_aws_isolate train_cabin_aws_activate train_cabin_tpws_reset train_cabin_tpws_override train_cabin_dra_on train_cabin_dra_off train_cabin_emergency_stop train_cabin_master_switch_on train_cabin_master_switch_off train_cabin_panel_lamp_test steam-injector2-up (соответсвует train_cabin_injector2_up) steam-injector2-down (соответсвует train_cabin_injector2_down) train_cabin_toggle_draincocks train_cabin_engine_on train_cabin_engine_off train_cabin_hardware_0 train_cabin_hardware_1 train_cabin_panel_lamp_test train_cabin_wipers_on train_cabin_wipers_off train_cabin_hardware_0 train_cabin_hardware_1 обращаю Ваше внимание - некоторые строки относятся к 2 клавишам одновременно. Хотя файл keyboard.txt в ранних версиях защищён от записи, Вы можете скопировать его содержимое в копию любого текстового файла из директории trs (для сохранения кодировки) назвать keyboard.txt и заменить им этот файл. В 2009 его можно редактировать свободно. Ну а пример обработки кабиной, например, "wave" такой void UserPressKey(string s) { if (s == "wave") { // собственно обработка клавиши } } Напоминаю, что кабина "активна", если вы находитесь на этом локомотиве (но не обязательно в виде "1" - и в "2" и остальных ![]()
__________________
местный зомбяк Последний раз редактировалось TRam_; 22.07.2009 в 19:22. |
![]() |
![]() |
Этот пользователь сказал Спасибо TRam_ за это полезное сообщение: |
![]() |
#23 |
Матёрый пользователь
Регистрация: 10.02.2008
Сообщений: 1,440
Вы сказали Спасибо: 0
Поблагодарили 7 раз(а) в 7 сообщениях
![]() |
![]()
А если сделать шаг дальше - дописать в файл keyboard.txt еще пару клавиш и назначить им сообщение?
__________________
Это наша-то колея узкая? Да это ваша слишком широкая! |
![]() |
![]() |
![]() |
#24 |
Матёрый пользователь
Регистрация: 18.02.2008
Сообщений: 8,754
Вы сказали Спасибо: 1,426
Поблагодарили 2,403 раз(а) в 1,352 сообщениях
![]() |
![]()
Новых строк назначить нельзя. Можно только переназначит клавиши, соответствующие строкам
А сообщения вообще нильзя сделать никак
__________________
местный зомбяк |
![]() |
![]() |
![]() |
#25 |
Матёрый пользователь
Регистрация: 18.02.2008
Сообщений: 8,754
Вы сказали Спасибо: 1,426
Поблагодарили 2,403 раз(а) в 1,352 сообщениях
![]() |
![]()
точнее, самый простой способ "улавливания клашиши" и передачи её локомотиву в виде сообщения такой
class Cabin_keyb isclass DefaultLoocmotiveCabin { void UserPressKey(string s) { if (s == "train_cabin_engine_on") { PostMessage(loco,"engine","on",0); } else if (s == "train_cabin_engine_off") { PostMessage(loco,"engine","off",0); } } хотя я предпочитаю другой способ, используя класс CabinData }
__________________
местный зомбяк |
![]() |
![]() |
![]() |
#26 |
Матёрый пользователь
Регистрация: 10.02.2008
Сообщений: 1,440
Вы сказали Спасибо: 0
Поблагодарили 7 раз(а) в 7 сообщениях
![]() |
![]()
Володя, а ты не пробовал раскурочить аурановские файлы? Которые скомпилированные? Они ж все, заразы, дополнительно в виде исходников выложены. Может, стоит там поискать список сообщений?
__________________
Это наша-то колея узкая? Да это ваша слишком широкая! |
![]() |
![]() |
![]() |
#27 | |
Матёрый пользователь
Регистрация: 18.02.2008
Сообщений: 8,754
Вы сказали Спасибо: 1,426
Поблагодарили 2,403 раз(а) в 1,352 сообщениях
![]() |
![]()
список строк я дал. Думаю, он совершенно полный, т.к. именно по файлу keyboard.txt трейнз расшифровывает клавиатуру (насколько я понял аурановцев). Если хотите, можете перепроверить его на наличие неуказнных мною строк, которые всё-таки работают...
в 2009 нам дали 23(!!!) дополнительных слоков под клавиши. В дефолтных локах они ни на что не влияют. Поэтому смело делай "преобразователь" своего пульта на клавиши, соответствующие им (там большинство расшифровывается как Alt+<клавиша> ) Цитата:
Задай к ним нужные тебе клавиши и "прилагай" к своему "пульту" новый keyboard.txt , адаптированный к пульту.
__________________
местный зомбяк Последний раз редактировалось TRam_; 23.07.2009 в 15:21. |
|
![]() |
![]() |
![]() |
#28 |
Матёрый пользователь
|
![]()
Есть предложение глобально изменить keyboard.txt файл, так, чтобы было одинаково у всех.
Что не нравится в текущем варианте: 1. Наличие строк с неназначенными комбинациями, вроде train_cabin_throttle_8 null Это снижает количество возможных комбинаций 2. Несколько клавиш, обрабатываемые одной строкой, к примеру: train_cabin_brake_release q, KP9, KPPgUp Это сразу лишает возможности отдельно использовать нампад. 3. Клавиши p, [, ] заняты самой игрой. Я не знаю, исправит ли это правка файла, но стоит попробовать. Одна из целей этого - обеспечить возможность реализации более удобной раскладки клавиш: Блок qweasd - управление контроллером r, f - управление реверсивкой [, ] - КВТ (, и . в случае невозможности) ; ' - КМ x, h, b - песок, тифон, свисток Нампад - управление дверями в трамваях и МВПС, а также функции автоинформаторов, МСУД и т.п. Соответственно, хочется услышать мнения насколько это все необходимо и обосновано, а также возможные последствия от этого шага. Последний раз редактировалось genesis; 13.11.2009 в 23:13. |
![]() |
![]() |
![]() |
#29 |
Матёрый пользователь
Регистрация: 18.02.2008
Сообщений: 8,754
Вы сказали Спасибо: 1,426
Поблагодарили 2,403 раз(а) в 1,352 сообщениях
![]() |
![]()
считаю что необходимо. Только потом сделать описание, чему каждая клавиша соостветствует и распространять его вместе с keyboard.txt
__________________
местный зомбяк |
![]() |
![]() |
![]() |
#30 |
Матёрый пользователь
Регистрация: 10.02.2008
Сообщений: 1,440
Вы сказали Спасибо: 0
Поблагодарили 7 раз(а) в 7 сообщениях
![]() |
![]()
Согласен. На основе унифицированного файла всем будет удобнее. А вот нумпад желательно бы вообще исключить
![]()
__________________
Это наша-то колея узкая? Да это ваша слишком широкая! |
![]() |
![]() |
![]() |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|
|
![]() Что это? |