Страница 23 из 26

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

СообщениеДобавлено: 25.02.2011, 16:04
AlexanderG
2) нельзя получить список всех SceneryWithTrack-объектов карты
А зачем?
3) нельзя начинать поиск с этих объектов
И это зачем?

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

СообщениеДобавлено: 25.02.2011, 16:19
agmike
TRam_ писал(а):3) нельзя начинать поиск с этих объектов

GetNamedTrack("42").BeginTrackSearch(direction);

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

СообщениеДобавлено: 25.02.2011, 17:07
TRam_
2) нельзя получить список всех SceneryWithTrack-объектов карты
хотя бы для переделывания светофоров типа KDA. Но самый большой недостаток - неотображение на миникарте и невозможность управления с неё.

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

СообщениеДобавлено: 25.02.2011, 17:28
AlexanderG
хотя бы для переделывания светофоров типа KDA.
Некрофилией предлагаешь заниматься?

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

СообщениеДобавлено: 25.02.2011, 19:46
kemal
Так чего там с GSTrackSearch? Можно как-то эту стрелку найти?

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

СообщениеДобавлено: 25.02.2011, 22:10
AlexanderG
Классическим способом нет. SceneryWithTrack не является трексайдом. Однако есть вот что:
Код: Выделить всё
  //! If the search cursor lies within an attached track, this function will return the
  //  SceneryWithTrack object to which the track is attached.
  //
  // Returns:
  //     Returns the SceneryWithTrack object to which the search cursor's track is attached,
  //     or null.
  //
  public native SceneryWithTrack GetAttachedTrackParentObject(void);

Допустим, натыкаемся на Junction, лежащий в пределах стрелки-SceneryWithTrack, тогда вызов этой функции вернет сам SceneryWithTrack.

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

СообщениеДобавлено: 26.02.2011, 01:34
kemal
Так в том-то и дело, что на Junction мы не натыкаемся. И даже на JunctionBase, не говоря уже о JunctionBaseGameObject (кстати, так до конца и не понял, для чего же нужен этот класс)

SceneryWithTrack не является трексайдом.

Это как раз не должно быть проблемой. Старые версии GSTrackSearch возвращают MapObject, потомком которого и является SceneryWithTrack. А новые так вообще object возвращают (опять же, так до конца и не понял, для чего же это сделано).

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

СообщениеДобавлено: 26.02.2011, 11:38
AlexanderG
Так в том-то и дело, что на Junction мы не натыкаемся.
Это почему же? Стрелку не видно в поиске, ЕМНИП, только если она установлена не по маршруту.

Это как раз не должно быть проблемой. Старые версии GSTrackSearch возвращают MapObject, потомком которого и является SceneryWithTrack. А новые так вообще object возвращают (опять же, так до конца и не понял, для чего же это сделано).
Возвращать возвращают, но обжект там сделан для совместимости. Читаем мануал:
Код: Выделить всё
// The SearchNext() and GetMapObject() methods are provided to get a reference to a discovered
// Trackside object.  The reference returned by these methods can be <l gscLangKeyCast cast> to a
// Trackside child classes to find out if that item is in fact a Signal or a Junction for instance.
// As the script code doesn't know what the next item will be, always verify the cast.
Отсюда ясно, что поиск ведется только по потомкам Trackside и что стрелка, установленная "не туда", его прервет.

кстати, так до конца и не понял, для чего же нужен этот класс
Все в API:
Код: Выделить всё
//! Wrapper class for an object which derives from JunctionBase and GameObject. <bi FOR INTERNAL USE ONLY.>
Так что этот класс не должен нас интересовать.
JunctionBase описывает собственно соединение секций путей, и является прямым потомком GSObject, так что ГСТС его никогда не найдет. Для этих целей есть класс Junction, который является трексайдом, имеет модель (это, собственно, сам левер), может быть найден поиском и т.д.

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

СообщениеДобавлено: 07.03.2011, 21:19
kemal
Смотрю я в TRS2006 Scripting & API Guide (ибо ничего другого нет под рукой) и вижу фигу не могу понять, зачем же столько классов нужно.
В частности что косается индустрии. Вот какие классы мы имеем:
    Industry
    • BaseIndustry
      • GenericPassengerStation
    • BasePortal
    • GenericIndustry
Для чего нужен каждый из них?

Собственно, понадобилось мне пассажирскую станцию заскриптовать. Естественно, использовать GenericPassengerStation как-то не кошерно и я использовал BaseIndustry, перенеся весь функционал класса GenericPassengerStation в свой класс. Стало больше свободы, станцию можно более адекватно заскриптовать. Но некоторые сомнительные моменты всё же осталиь. Смотрю описание BaseIndustry - ничего нативного нет. И тут подкрадывается шальная мысль: а не выкинуть ли и его тоже, наследуясь сразу от Industry? Собственно, стоит ли так делать и, самое главное, не черевато ли это?

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

СообщениеДобавлено: 07.03.2011, 21:21
TRam_
а не выкинуть ли и его тоже, наследуясь сразу от Industry?
можно вовсе ни от чего не наследоваться, правда тогда обработать наезд на индустрию нельзя - Scenery_with_tracks почему-то не производит сообщения о наезде на неё поезда, только Industy и всё что выше. Триггер "rf passanger station" наследуется вовсе от траксайда.

Не чревато ни чем, разве что в "достижения", которые введены в 2010 трейнзе, не будут добавляться "рекорды по перевозке пассажиров".

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

СообщениеДобавлено: 08.03.2011, 12:23
AlexanderG
Естественно, использовать GenericPassengerStation как-то не кошерно и я использовал BaseIndustry, перенеся весь функционал класса GenericPassengerStation в свой класс.
"Не плоди сущностей сверх надобности."

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

СообщениеДобавлено: 25.03.2011, 12:31
Добрый
Не могу решить проблему. Для вывода на экран с помощью скрипта прописываю стандартный набор:
okno="<HTML><body>"+HTMLWindow.StartTable();
okno=okno+HTMLWindow.MakeRow(HTMLWindow.MakeCell(HTMLWindow.MakeImage("images\fon.tga",true,516,393)));
okno=okno+HTMLWindow.EndTable()+"</body></html>";
Какие бы форматы графического файла я не пробовал - в результате выводится просто чёрный прямоугольник заданного размера, без какого-либо изображения.
Изображение
Что я не так делаю?

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

СообщениеДобавлено: 25.03.2011, 14:21
TRam_
У тебя оригинальное изображение должно иметь размеры степени 2. Т.Е. например растяни его до 512х512

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

СообщениеДобавлено: 25.03.2011, 15:36
Добрый
Пробовал - не помогает. Причём при создании с тем же изображением стандартного HTML-окна, запускаемого правилом Display HTML - всё работает.

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

СообщениеДобавлено: 25.03.2011, 16:00
TRam_
попробуй
HTMLWindow.MakeImage("images\fon.tga",false,516,393)