Форум Trainsim

Форум Trainsim (http://www.trainsim.ru/forum/index.php)
-   TrainZ - Звуки (http://www.trainsim.ru/forum/forumdisplay.php?f=29)
-   -   Вопросы по Auran GameScript (http://www.trainsim.ru/forum/showthread.php?t=13454)

Prince 03.01.2011 19:39

Вопросы по Auran GameScript
 
Ну, раз на Трейнзапе есть такая тема(кста, ето я ёё там создал:2:), то пусть и тут будет. Думаю, она будет полезна! Дерзайте, господа!

Prince 03.01.2011 20:08

Ну, пожалуй первым буду. Вопрос свой я адресую Владимиру aka TRam_. Вопрос касается обновлённого 2ТЕ116 от Rokky вышедшим не очень давно на Трейнзапе. Там реализован запуск дизеля с условием, что включен Автомат управления. Собсно вопрос: где вы ето условие прописали? Смотрел и скрипт лока, и кабины, но так ничё и не нашёл. Можете запостить ети строки скрипта на форум?

П.С. Сорри за мой руский. Я украинец.

Prince 03.01.2011 20:51

Ой! Сорри. Немного не там тему создал. Модераторы, перенесите плиз.

TRam_ 03.01.2011 21:09

проверка в скрипте кабины, в строках 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 я тож украинец.

Prince 03.01.2011 21:45

Спасибо, Владимир! Я думал всё проще сделано- в условие запуска прописаны свитчи, ну типа if SwitchOn1=true.

[QUOTE=TRam_;229461]я тож украинец[/QUOTE]

Круто! А вы с какого города?

TRam_ 03.01.2011 22:05

[QUOTE]А вы с какого города?[/QUOTE]Краматорск, Донецкой области.

[QUOTE]в условие запуска прописаны свитчи[/QUOTE]условие запуска отделено, и отделено глубоко-глубоко в скрипт локомотива. В данном случае автомат отключает только возможность срабатывания кнопки.

Prince 03.01.2011 22:17

[QUOTE=TRam_;229482]условие запуска отделено, и отделено глубоко-глубоко в скрипт локомотива. В данном случае автомат отключает только возможность срабатывания кнопки. [QUOTE]
Зрозумів. Думав, що усе дещо простіше.


[QUOTE=TRam_;229482]Краматорск [/QUOTE]

253км от меня)). Я с Марганца, Днепропетровская область.

Prince 04.01.2011 13:09

[QUOTE=TRam_;229482]automat1.GetValue()==0[QUOTE]

Стоп, стоп, стоп!! Почему ноль? Должно ж быть один! Тоесть он должен работать! И почему два знака уравнения!??

TRam_ 04.01.2011 14:39

1) потому что на это условие вызывается return; - если автомат выключен (== 0), то прекратить выполнение функции
2) два знака уравнения ищи в описании C# или Java . Так как trainz script является калькой с Java.

Prince 04.01.2011 16:44

[QUOTE=TRam_;229604]1) потому что на это условие вызывается return; - если автомат выключен (== 0), то прекратить выполнение функции[/QUOTE]
А, а я то думал, зачем оно там))

[QUOTE=TRam_;229604]2) два знака уравнения ищи в описании C# или Java . Так как trainz script является калькой с Java.[/QUOTE]

Вот, нашол:

[/QUOTE]оператор == (два знака равенства) — это проверка на равенство двух выражений[/QUOTE]

Тоесть, один знак равно-ето присвоение значения тегу/обьекту, а два знака равно- ето проверка равенства значений обьекта и числа которое стоит после знака. Верно?

TRam_ 04.01.2011 19:16

да, всё верно.

Prince 05.01.2011 13:02

Вот ёсчё вопросик: как ввести в скрипт тег и переменную, значение которой етот тег будет изменять. И можно ли задать еффективность любому тегу, например Set(имя тега)Efficently= (значение, которое хотим задать).

P.S. Сорри за такое большое количество вопросов.

TRam_ 05.01.2011 13:17

нет, нельзя. Надо для этого поток делать. А в кабине - прописывать увеличение в функции Update

Prince 05.01.2011 13:35

Тоесть вот так: thread void Set(имя тега)Efficently= (значение, которое хотим задать).

Combine 05.01.2011 13:39

[QUOTE]Вот ёсчё вопросик: как ввести в скрипт тег и переменную, значение которой етот тег будет изменять.[/QUOTE] Пришел злой Комбайн.
1. В программировании нет понятия "тег", это не ЖЖ.
2. По программированию на GS, С и Яве, равно как и по программированию в целом существует полно макулатуры в интернетах

[QUOTE]И можно ли задать еффективность любому тегу[/QUOTE] Любая программа имеет КПД=100%, т.к. является математической сущностью.

[QUOTE]В функции обработки перемещения рычагов и кнопок пользователем void UserSetControl(CabinControl p_control, float p_value)[/QUOTE] Настоятельно не рекомендую использовать его, а проверять значение контрола непосредственно в месте его использования. Есть вероястность того, что между UserSetControl и использованием данные успеют устареть. А еще лучше завести некий монитор, который будет в каждом кадре (по Update()) проверять все контролы и производить соотв. изменения в данных. Так мы отделим модель от реализации, что хорошо.


Текущее время: 13:16. Часовой пояс GMT +4.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
© 2001-2019, Администраторы и разработчики Клуба Trainsim