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

Язык скриптования Auran Game Script

Другие вопросы и проблемы разработки дополнений

Re: Язык скриптования Auran Game Script

Сообщение agmike » 20.01.2010, 00:01

varz писал(а):[Суп всегда хорош, если сварен по рецепту!

Видимо рецепт подкачал, ибо тест на миллион:
for (int i = 1000000; i >= 0; --i)
  sp.SetNamedTag(i, i);
А потом то же самое с GetNamedTagAsInt ввело ТРС в состояние шока, видимо отравился. До того, как мое терпение лопнуло прошло не меньше трех минут.
В тоже время в кавайном сишярпе с не менее кавайным Dictionary<string, string> то же самое выполняется за доли секунд. Меры против компилятора были приняты :)
Что я делаю не так?
The Cake is a Lie.
agmike
 
Сообщения: 1025
Зарегистрирован: 26.08.2006, 12:43
Благодарил (а): 0 раз.
Поблагодарили: 3 раз.
Играю в: Пульт ДНЦ

Re: Язык скриптования Auran Game Script

Сообщение TRam_ » 20.01.2010, 16:15

может каждый новый тег трс создаёт динамически (а на это времени до* много требуется любой проге ). Попробуй сделать набор из 1000 тегов, а затем миллион раз менять их значения. Может аурановцы не слишком сильно перекрутили свою ВМ , чтобы под тег с тем же названием заново выделять память?
в z7 всё можно, а что нельзя - можно в sU
Аватара пользователя
TRam_
 
Сообщения: 1925
Зарегистрирован: 30.11.2007, 20:14
Благодарил (а): 2 раз.
Поблагодарили: 66 раз.
Играю в: Auran Trainz
Роль: Разработчик
Имя: Владимир

Re: Язык скриптования Auran Game Script

Сообщение agmike » 20.01.2010, 18:22

А в C#, значит, теги создаются на этапе компиляции? :D

Итак, другой тест, 1000х1000:
Код: Выделить всё
var sp = new Dictionary<string, string>();
var sw = new Stopwatch();
sw.Reset();

sw.Start();
for (int i = 1000; i >= 0; --i)
   for (int j = 1000; j >= 0; --j)
      sp[j.ToString()] = j.ToString();
sw.Stop();

long settingTime = sw.ElapsedMilliseconds;
sw.Reset();

int a = 0;
sw.Start();
for (int i = 1000; i >= 0; --i)
   for (int j = 1000; j >= 0; --j)
      a = Int32.Parse(sp[j.ToString()]) - a;
sw.Stop();

long gettingTime = sw.ElapsedMilliseconds;

Console.WriteLine("That waz funny test, results are {0} and {1} ms; a = {2} just for lulz",
                              settingTime, gettingTime, a);
Console.ReadKey();

vs.
Код: Выделить всё
Soup sp = Constructors.NewSoup();
int i, j;

Interface.Log("Test started");
for (i = 1000; i >= 0; --i)
   for (j = 1000; j >= 0; --j)
      sp.SetNamedTag(j, j);

Interface.Log("Part two");
int a;
for (i = 1000; i >= 0; --i)
   for (j = 1000; j >= 0; --j)
      a = sp.GetNamedTagAsInt(j) - a;

Interface.Log("All finished, a = " + a);


Результаты:
That waz funny test, results are 357 and 344 ms; a = 500 just for lulz
vs.
? 000010F8 Warn 0:16.7 Trainz : WorldState::NativeLog> Test started
? 000010F8 Warn 0:21.9 Trainz : WorldState::NativeLog> Part two
? 000010F8 Warn 0:26.1 Trainz : WorldState::NativeLog> All finished, a = 500

Итого раз в 15 медленнее. Лучше, чем при миллионе, но есть куда стремиться.
The Cake is a Lie.
agmike
 
Сообщения: 1025
Зарегистрирован: 26.08.2006, 12:43
Благодарил (а): 0 раз.
Поблагодарили: 3 раз.
Играю в: Пульт ДНЦ

Re: Язык скриптования Auran Game Script

Сообщение varz » 20.01.2010, 20:59

agmike , попробуй вместо GetNamedTagAsInt() просто ГетНеймедТаг.

я не знаю, как организованы хеши в Т10.
и не забывайте, что C# (ну и Java) все же прекомпилируемый с прогнозным распределением памяти и сборкой мусора не при каждой операции, а при простое машины (или по требованию).

вот первая грабля комплекта Т10: нет консольного компилятора скриптов. Без него проверку синтаксиса проводить не реально (запускать ТРС, чтоб узать потом, что не хватает запятой в сто первой строке скрипта - такой мазохизм не для меня)
есть у кого-нибудь предложения?
***
в z7 можно все, в ТРС не все можно.
Аватара пользователя
varz
 
Сообщения: 907
Зарегистрирован: 03.02.2006, 22:23
Откуда: Липецк
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Язык скриптования Auran Game Script

Сообщение AlexanderG » 20.01.2010, 21:55

Использовать компилятор от 2006.
Join Dropbox and SHARE YOUR SHIT FOR FREE!
AlexanderG
 
Сообщения: 761
Зарегистрирован: 27.06.2009, 16:54
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
Блог: Просмотр блога (2)
Имя: Александр

Re: Язык скриптования Auran Game Script

Сообщение varz » 20.01.2010, 22:35

AlexanderG писал(а):Использовать компилятор от 2006.

пробовал, не подходит: библиотеки разные.

и вообще, я сейчас думаю забить на ауран, на хрен, мля
***
в z7 можно все, в ТРС не все можно.
Аватара пользователя
varz
 
Сообщения: 907
Зарегистрирован: 03.02.2006, 22:23
Откуда: Липецк
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Язык скриптования Auran Game Script

Сообщение AlexanderG » 20.01.2010, 23:04

Библиотеки? Компилятор же вроде вообще standalone-приложение? Просто инклюды от 2010 подключить и все.
Join Dropbox and SHARE YOUR SHIT FOR FREE!
AlexanderG
 
Сообщения: 761
Зарегистрирован: 27.06.2009, 16:54
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
Блог: Просмотр блога (2)
Имя: Александр

Re: Язык скриптования Auran Game Script

Сообщение agmike » 20.01.2010, 23:22

Эээ, а вариант trainzutil compile итд. уже отменили? :)

"E:\TS2010\Bin\trainzutil.exe" compile %file% -i"E:\TS2010\Scripts" -p"C:\Windows\Temp"
The Cake is a Lie.
agmike
 
Сообщения: 1025
Зарегистрирован: 26.08.2006, 12:43
Благодарил (а): 0 раз.
Поблагодарили: 3 раз.
Играю в: Пульт ДНЦ

Re: Язык скриптования Auran Game Script

Сообщение Ant » 22.01.2010, 22:16

Я тут взялся скрипты изучать (для написания сценариев). В наличии есть несколько статей и TRS2006 Scripting & API Guide. Но у меня ТS2009WBE, и, поскольку Auran GameScript менялся, нужен новый guide для версии 2009. Нет ли у кого?
Изучаю Auran Game Script
#477779
Ant
 
Сообщения: 156
Зарегистрирован: 07.10.2008, 21:52
Откуда: Казань
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Играю в: Auran Trainz
Имя: Антон

Re: Язык скриптования Auran Game Script

Сообщение AlexanderG » 22.01.2010, 22:54

Нет ни у кого. Смотри папку \Scripts.
Join Dropbox and SHARE YOUR SHIT FOR FREE!
AlexanderG
 
Сообщения: 761
Зарегистрирован: 27.06.2009, 16:54
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
Блог: Просмотр блога (2)
Имя: Александр

Re: Язык скриптования Auran Game Script

Сообщение Ant » 22.01.2010, 22:59

Смотри папку \Scripts.


Смотрел, конечно. Там только сами скрипты, но я и их просмотрел, почитал. Недостаточно инфы. Нужен нормальный guide.

Нет ни у кого.


Очень жаль. И google молчит...
Изучаю Auran Game Script
#477779
Ant
 
Сообщения: 156
Зарегистрирован: 07.10.2008, 21:52
Откуда: Казань
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Играю в: Auran Trainz
Имя: Антон

Re: Язык скриптования Auran Game Script

Сообщение TRam_ » 23.01.2010, 00:28

Недостаточно инфы
там не на много больше,чем в api 2006...
Даже не знаю что посоветовать


That waz funny test, results are 357 and 344 ms; a = 500 just for lulz
vs.
? 000010F8 Warn 0:16.7 Trainz : WorldState::NativeLog> Test started
? 000010F8 Warn 0:21.9 Trainz : WorldState::NativeLog> Part two
? 000010F8 Warn 0:26.1 Trainz : WorldState::NativeLog> All finished, a = 500
надо будет проверить с публичными переменными объектов :). Не зря ж аурановцы класс CabinData'ы делали
в z7 всё можно, а что нельзя - можно в sU
Аватара пользователя
TRam_
 
Сообщения: 1925
Зарегистрирован: 30.11.2007, 20:14
Благодарил (а): 2 раз.
Поблагодарили: 66 раз.
Играю в: Auran Trainz
Роль: Разработчик
Имя: Владимир

Re: Язык скриптования Auran Game Script

Сообщение Ant » 23.01.2010, 21:33

Помогите мне. Я затрахался...

Суть проблемы состоит в том, что в моём сценарии функция SelectCabinDCC(consist1); работать не хочет: в 2006-м пишет, что она не объявлена (is not declared), 2009 вообще пишет, что ошибка скрипта, а какая именно не указывает (но ясно, что эта).
сonsist1 - это мой состав.

Какие пути решения?

Кстати, в плане отладки скриптов сценария 2006 предпочтительней, поскольку он хотя бы указывает конкретно в чём дело, в отличие от 2009-го.
Изучаю Auran Game Script
#477779
Ant
 
Сообщения: 156
Зарегистрирован: 07.10.2008, 21:52
Откуда: Казань
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Играю в: Auran Trainz
Имя: Антон

Re: Язык скриптования Auran Game Script

Сообщение AlexanderG » 23.01.2010, 21:56

А зачем тебе ДЦЦ? Жестко задай режим кабины и все. Если не объявлена, скорее всего, что-то сonsist1, он не создан, не объявлен или имеет неправильный тип.
Join Dropbox and SHARE YOUR SHIT FOR FREE!
AlexanderG
 
Сообщения: 761
Зарегистрирован: 27.06.2009, 16:54
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
Блог: Просмотр блога (2)
Имя: Александр

Re: Язык скриптования Auran Game Script

Сообщение Ant » 23.01.2010, 22:12

Александр, неправда твоя.

1. Функция SelectCabinDCC(consist1); позволяет выбирать между DCC и Cabin;
2. Consist1 объявлен, создан и имеет правильный тип, поскольку без вышеозначенной функции сценарий запускается хорошо и поезда появляются в игре там, где я указал.
3. Не подскажешь, как жёстко задать режим в кабине (Cabin mode)?
Изучаю Auran Game Script
#477779
Ant
 
Сообщения: 156
Зарегистрирован: 07.10.2008, 21:52
Откуда: Казань
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Играю в: Auran Trainz
Имя: Антон

Пред.След.

Вернуться в [TZ] Другие вопросы

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

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