|
Вопросы по Auran GameScript
Ну, раз на Трейнзапе есть такая тема(кста, ето я ёё там создал:2:), то пусть и тут будет. Думаю, она будет полезна! Дерзайте, господа!
|
Ну, пожалуй первым буду. Вопрос свой я адресую Владимиру aka TRam_. Вопрос касается обновлённого 2ТЕ116 от Rokky вышедшим не очень давно на Трейнзапе. Там реализован запуск дизеля с условием, что включен Автомат управления. Собсно вопрос: где вы ето условие прописали? Смотрел и скрипт лока, и кабины, но так ничё и не нашёл. Можете запостить ети строки скрипта на форум?
П.С. Сорри за мой руский. Я украинец. |
Ой! Сорри. Немного не там тему создал. Модераторы, перенесите плиз.
|
проверка в скрипте кабины, в строках 776 и 791. В функции обработки перемещения рычагов и кнопок пользователем void UserSetControl(CabinControl p_control, float p_value) на обработке нажатия объектов zapusk1 и zapusk2, назначенных кнопкам "zapusk1" и "zapusk2".
[CODE]if(p_control == zapusk1) { if(bloc.GetValue()==0 or throttle_lever2.GetValue()!=0 or loco.GetEngineSetting("reverser") == 1 or automat1.GetValue()==0) return; if(p_value>0.5) cd.zapusk1=true; else cd.zapusk1=false; loco.SetCabinData(cd); } if(p_control == zapusk2) { if(bloc.GetValue()==0 or throttle_lever2.GetValue()!=0 or loco.GetEngineSetting("reverser") == 1 or automat1.GetValue()==0) return; if(p_value>0.5) cd.zapusk2=true; else cd.zapusk2=false; loco.SetCabinData(cd); }[/CODE] а именно automat1.GetValue()==0 PS я тож украинец. |
Спасибо, Владимир! Я думал всё проще сделано- в условие запуска прописаны свитчи, ну типа if SwitchOn1=true.
[QUOTE=TRam_;229461]я тож украинец[/QUOTE] Круто! А вы с какого города? |
[QUOTE]А вы с какого города?[/QUOTE]Краматорск, Донецкой области.
[QUOTE]в условие запуска прописаны свитчи[/QUOTE]условие запуска отделено, и отделено глубоко-глубоко в скрипт локомотива. В данном случае автомат отключает только возможность срабатывания кнопки. |
[QUOTE=TRam_;229482]условие запуска отделено, и отделено глубоко-глубоко в скрипт локомотива. В данном случае автомат отключает только возможность срабатывания кнопки. [QUOTE]
Зрозумів. Думав, що усе дещо простіше. [QUOTE=TRam_;229482]Краматорск [/QUOTE] 253км от меня)). Я с Марганца, Днепропетровская область. |
[QUOTE=TRam_;229482]automat1.GetValue()==0[QUOTE]
Стоп, стоп, стоп!! Почему ноль? Должно ж быть один! Тоесть он должен работать! И почему два знака уравнения!?? |
1) потому что на это условие вызывается return; - если автомат выключен (== 0), то прекратить выполнение функции
2) два знака уравнения ищи в описании C# или Java . Так как trainz script является калькой с Java. |
[QUOTE=TRam_;229604]1) потому что на это условие вызывается return; - если автомат выключен (== 0), то прекратить выполнение функции[/QUOTE]
А, а я то думал, зачем оно там)) [QUOTE=TRam_;229604]2) два знака уравнения ищи в описании C# или Java . Так как trainz script является калькой с Java.[/QUOTE] Вот, нашол: [/QUOTE]оператор == (два знака равенства) — это проверка на равенство двух выражений[/QUOTE] Тоесть, один знак равно-ето присвоение значения тегу/обьекту, а два знака равно- ето проверка равенства значений обьекта и числа которое стоит после знака. Верно? |
да, всё верно.
|
Вот ёсчё вопросик: как ввести в скрипт тег и переменную, значение которой етот тег будет изменять. И можно ли задать еффективность любому тегу, например Set(имя тега)Efficently= (значение, которое хотим задать).
P.S. Сорри за такое большое количество вопросов. |
нет, нельзя. Надо для этого поток делать. А в кабине - прописывать увеличение в функции Update
|
Тоесть вот так: thread void Set(имя тега)Efficently= (значение, которое хотим задать).
|
[QUOTE]Вот ёсчё вопросик: как ввести в скрипт тег и переменную, значение которой етот тег будет изменять.[/QUOTE] Пришел злой Комбайн.
1. В программировании нет понятия "тег", это не ЖЖ. 2. По программированию на GS, С и Яве, равно как и по программированию в целом существует полно макулатуры в интернетах [QUOTE]И можно ли задать еффективность любому тегу[/QUOTE] Любая программа имеет КПД=100%, т.к. является математической сущностью. [QUOTE]В функции обработки перемещения рычагов и кнопок пользователем void UserSetControl(CabinControl p_control, float p_value)[/QUOTE] Настоятельно не рекомендую использовать его, а проверять значение контрола непосредственно в месте его использования. Есть вероястность того, что между UserSetControl и использованием данные успеют устареть. А еще лучше завести некий монитор, который будет в каждом кадре (по Update()) проверять все контролы и производить соотв. изменения в данных. Так мы отделим модель от реализации, что хорошо. |
Текущее время: 17:00. Часовой пояс GMT +4. |
|
Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
© 2001-2019, Администраторы и разработчики Клуба Trainsim