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

LuaScript - для RS

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

Re: LuaScript - для RS

Сообщение ^xXx » 12.01.2009, 00:12

Ок, ясно :)
На всякий случай:
Там в корневом катологе нашёл утилитку serz.exe, с помощью которой можно обратно конвертировать конфиги в .xml
Аватара пользователя
^xXx
 
Сообщения: 113
Зарегистрирован: 06.09.2008, 10:20
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Имя: Andrew

Re: LuaScript - для RS

Сообщение Mr. Angelo » 12.01.2009, 00:32

^xXx писал(а):Ок, ясно :)
На всякий случай:
Там в корневом катологе нашёл утилитку serz.exe, с помощью которой можно обратно конвертировать конфиги в .xml


Да, есть такая программа. С помощью нее и конвертятся все конфиги в бинарный формат. Так же в корневом каталоге можно найти:
  • ConvertToGEO.exe - конвертер моделей в игровой формат
  • ConvertToTG.exe - конвертер текстур
  • ConvertToDav.exe - конвертер звуковых семплов
Именно их запускает BlueprintEditor при Export-е.

Чуть не забыл. Для отладки скриптов поможет следующее:
Запуск RailSimEditor.exe с параметрами (пропишите их в свойствах ярлыка): -LogMate -SetLogFilters="Script Manager" -lua-debug-messages - при запуске игры так же запустится утилита LogMate.exe, которая будет принимать сообщения из скриптов (если напрямую запусть LogMate, то из скриптов сообщения приниматься не будут)

Чтобы отправить из LUA-скрипта сообщение в консоль LogMate воспользуйтесь командной
Код: Выделить всё
Print ( "Hello" )


А если в консоль LogMate нужно вывести еще и значение переменной то понадобится оператор .. (две точки) который соединяет строки:
Код: Выделить всё
myVariable1 = 3
myVariable2 = "world!"
Print ( "Hello "..myVariable2.." x"..myVariable1 )


Это выведет в консоль строчку Hello world! x3

Так же, для скрипто-писательства советую редактор ConTEXT и файл подсветки синтаксиса LUA для него (скопировать в ConTEXT\Highlighters)
Аватара пользователя
Mr. Angelo
 
Сообщения: 3227
Зарегистрирован: 03.01.2004, 22:22
Откуда: Тюмень
Благодарил (а): 361 раз.
Поблагодарили: 526 раз.
Блог: Просмотр блога (9)
Играю в: Train Simulator Classic
Роль: Сотрудник РЖД
Имя: Андрей

Re: LuaScript - для RS

Сообщение ^xXx » 12.01.2009, 01:02

Огроменное спасибо! :up:
Аватара пользователя
^xXx
 
Сообщения: 113
Зарегистрирован: 06.09.2008, 10:20
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Имя: Andrew

Re: LuaScript - для RS

Сообщение TRam_ » 12.01.2009, 13:51

почитал мануал... Фактическое отсутствие автоматического распределение времени между потоками очень не порадовало. Кроме того, ни разу не услышал о взаимодействии между разными скриптами. Объектов вообще нет. Но зато есть реестр и "прозрачная" работа с памятью.

После года знакомства с trainz script могу сказать, что на Луа можно писать скрипты, которые рационально работают с памятью, но взаимодействовать и делать что-то одновременно в одном скрипте или между несколькими скриптами либо не могут вообще, либо для этого прийдётся писать километровые коды.

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

Re: LuaScript - для RS

Сообщение ufox » 10.04.2011, 19:14

У меня не получается заставить писать сообщения в лог.
В скрипте написал вот так(подсмотрел в одном из файлов):
Код: Выделить всё
-- debugging stuff
DEBUG = false   -- set to true to turn debugging on
function DebugPrint( message )
   if (DEBUG) then
      Print( message )
   end
end

Вот это должно выводиться:
Код: Выделить всё
DebugPrint ( "OK" );


Или что бы просто писать сообщения пользаваться просто:
Код: Выделить всё
Print ( "xxx" )


Галочку в лаунчере поставил, этого достаточно?
Разыскиваются текстурные фото Хоппера 19-4109 (ДВЗ, минераловоз)
ufox
 
Сообщения: 105
Зарегистрирован: 15.05.2010, 10:27
Откуда: БЧ, ТЧ-2
Благодарил (а): 0 раз.
Поблагодарили: 8 раз.
Играю в: Train Simulator Classic
Роль: Пассажир :)
Имя: Митя

Re: LuaScript - для RS

Сообщение Mr. Angelo » 10.04.2011, 19:24

Есть такая проблема. Раньше писал, LogMate грабил все логи. А после какого-то обновления перестало.
Так что остается только писать в файл:

Код: Выделить всё
logfile = io.open("Log/my_log_file.txt", "w");
logfile:write( "Ok, it works!\n");


В папке игры надо создать папку Log.
Аватара пользователя
Mr. Angelo
 
Сообщения: 3227
Зарегистрирован: 03.01.2004, 22:22
Откуда: Тюмень
Благодарил (а): 361 раз.
Поблагодарили: 526 раз.
Блог: Просмотр блога (9)
Играю в: Train Simulator Classic
Роль: Сотрудник РЖД
Имя: Андрей

Re: LuaScript - для RS

Сообщение ufox » 20.04.2011, 21:58

Подскажите кто-нибудь, кто сталкивался с объектами "контейнерами", из-за чего могут не отображаться объекты входящие в этот "контейнер"(младшие объекты)? Распаковав бин файл, я там увидел параметр"матрица"(видимо расположение низших объектов по умолчанию), но при создании "контейнера"(старшего объекта включающего младшие), он неактивен...

ПС: я надеюсь я доходчиво написал... уж очень сложно изложить.
ППС: блин не в ту тему...(
Разыскиваются текстурные фото Хоппера 19-4109 (ДВЗ, минераловоз)
ufox
 
Сообщения: 105
Зарегистрирован: 15.05.2010, 10:27
Откуда: БЧ, ТЧ-2
Благодарил (а): 0 раз.
Поблагодарили: 8 раз.
Играю в: Train Simulator Classic
Роль: Пассажир :)
Имя: Митя

Re: LuaScript - для RS

Сообщение Mr. Angelo » 21.04.2011, 07:19

ufox чет нифига не понял )) Какие контейнеры... кто не активен... какой тип конфига... примеры в студию, со скринами. Ну и если это не связано со скриптингом - лучше перенесем сообщения в соответствующую тему.
Аватара пользователя
Mr. Angelo
 
Сообщения: 3227
Зарегистрирован: 03.01.2004, 22:22
Откуда: Тюмень
Благодарил (а): 361 раз.
Поблагодарили: 526 раз.
Блог: Просмотр блога (9)
Играю в: Train Simulator Classic
Роль: Сотрудник РЖД
Имя: Андрей

Re: LuaScript - для RS

Сообщение ufox » 21.04.2011, 13:40

Объект cLevelCrossingBlueprint в РВ может быть только "контейнером"(так как он в режиме игры невидим) и содержит в себе другие объекты, допустим cProceduralShapeBlueprint. Вот как выглядит cLevelCrossingBlueprint, перед строчкой со скриптом собственно "контейнер" :
Изображение

Вот свиток с "контейнером" раскрыт:
Изображение

Где:
warning1 имя объекта cProceduralShapeBlueprint в составе ContainerComponentBP(настоящее signpre01)

Скрипт аттачится только к cLevelCrossingBlueprint

Вот как выглядит обращение к signpre01:
Код: Выделить всё
Call( "Warning1:ActivateNode", "lightson01", 1 )
Разыскиваются текстурные фото Хоппера 19-4109 (ДВЗ, минераловоз)
ufox
 
Сообщения: 105
Зарегистрирован: 15.05.2010, 10:27
Откуда: БЧ, ТЧ-2
Благодарил (а): 0 раз.
Поблагодарили: 8 раз.
Играю в: Train Simulator Classic
Роль: Пассажир :)
Имя: Митя

Re: LuaScript - для RS

Сообщение Mr. Angelo » 21.04.2011, 14:00

А проблема в чем? В том, что в самом Blueprint Editor-е не разворачивается блок, хотя ты уверен что в нем есть подблоки? Сам конфиг сильно большой? (сколько Мб весит).
Аватара пользователя
Mr. Angelo
 
Сообщения: 3227
Зарегистрирован: 03.01.2004, 22:22
Откуда: Тюмень
Благодарил (а): 361 раз.
Поблагодарили: 526 раз.
Блог: Просмотр блога (9)
Играю в: Train Simulator Classic
Роль: Сотрудник РЖД
Имя: Андрей

Re: LuaScript - для RS

Сообщение ufox » 21.04.2011, 14:48

Проблема в том, что не видно объектов cProceduralShapeBlueprint в РВ.
1. Мой объект cLevelCrossingBlueprint.
2. cLevelCrossingBlueprint британского переезда с объектами cProceduralShapeBlueprint вокруг.
Изображение
Сам конфиг сильно большой? (сколько Мб весит).

cLevelCrossingBlueprint в *.xml весит 23 Kb
Радует пока только то, что скрипт судя по сообщениям лога работает отлично)) правда оценить это невозможно))

<Attribute name="Matrix"> создается автоматически, как я понял, на что влияет непонятно пока.
Код: Выделить всё
         </Attribute>
                                          <Attribute name="Matrix">
                                             <cHcRMatrix4x4>
                                                <Element>
                                                   <Value>
                                                      <Attribute name="Element">
                                                         <__Indexed__sFloat32>
                                                            <Element>
                                                               <Value>
                                                                  <sFloat32>
                                                                     <Element>
                                                                        <Value>1.000000</Value>
                                                                     </Element>
                                                                  </sFloat32>
                                                                  <sFloat32>
                                                                     <Element>
                                                                        <Value>0.000000</Value>
                                                                     </Element>
                                                                  </sFloat32>
                                                                  <sFloat32>
                                                                     <Element>
                                                                        <Value>0.000000</Value>
                                                                     </Element>
                                                                  </sFloat32>
                                                                  <sFloat32>
                                                                     <Element>
                                                                        <Value>0.000000</Value>
                                                                     </Element>
                                                                  </sFloat32>
                                                                  <sFloat32>
                                                                     <Element>
                                                                        <Value>0.000000</Value>
                                                                     </Element>
                                                                  </sFloat32>
                                                                  <sFloat32>
                                                                     <Element>
                                                                        <Value>1.000000</Value>
                                                                     </Element>
                                                                  </sFloat32>
                                                                  <sFloat32>
                                                                     <Element>
                                                                        <Value>0.000000</Value>
                                                                     </Element>
                                                                  </sFloat32>
                                                                  <sFloat32>
                                                                     <Element>
                                                                        <Value>0.000000</Value>
                                                                     </Element>
                                                                  </sFloat32>
                                                                  <sFloat32>
                                                                     <Element>
                                                                        <Value>0.000000</Value>
                                                                     </Element>
                                                                  </sFloat32>
                                                                  <sFloat32>
                                                                     <Element>
                                                                        <Value>0.000000</Value>
                                                                     </Element>
                                                                  </sFloat32>
                                                                  <sFloat32>
                                                                     <Element>
                                                                        <Value>1.000000</Value>
                                                                     </Element>
                                                                  </sFloat32>
                                                                  <sFloat32>
                                                                     <Element>
                                                                        <Value>0.000000</Value>
                                                                     </Element>
                                                                  </sFloat32>
                                                                  <sFloat32>
                                                                     <Element>
                                                                        <Value>0.000000</Value>
                                                                     </Element>
                                                                  </sFloat32>
                                                                  <sFloat32>
                                                                     <Element>
                                                                        <Value>0.000000</Value>
                                                                     </Element>
                                                                  </sFloat32>
                                                                  <sFloat32>
                                                                     <Element>
                                                                        <Value>0.000000</Value>
                                                                     </Element>
                                                                  </sFloat32>
                                                                  <sFloat32>
                                                                     <Element>
                                                                        <Value>1.000000</Value>
                                                                     </Element>
                                                                  </sFloat32>
                                                               </Value>
                                                            </Element>
                                                         </__Indexed__sFloat32>
                                                      </Attribute>
                                                   </Value>
                                                </Element>
                                             </cHcRMatrix4x4>
                                          </Attribute>
                                       </Value>
                                    </Element>
Разыскиваются текстурные фото Хоппера 19-4109 (ДВЗ, минераловоз)
ufox
 
Сообщения: 105
Зарегистрирован: 15.05.2010, 10:27
Откуда: БЧ, ТЧ-2
Благодарил (а): 0 раз.
Поблагодарили: 8 раз.
Играю в: Train Simulator Classic
Роль: Пассажир :)
Имя: Митя

Re: LuaScript - для RS

Сообщение Mr. Angelo » 21.04.2011, 15:42

<Attribute name="Matrix"> создается автоматически, как я понял, на что влияет непонятно пока.

так-то этим блоком описываются координаты Child-а относительно основного объекта. Эти координаты описывают смещение относительно родительского объекта, поворот, масштабирование. Правда не все из них работают.
Устанавливать эти координаты предполагается в Asset Editor (где предпросмотр модели) прямо двигая мышкой. Ручного ввода координат в Blueprint Editor-е нет, поэтому и не разворачивается блок.
Кстати сам переезд как обычный объект с конфигом Animated Scenery Blueprint нормально в игре отображается?
Аватара пользователя
Mr. Angelo
 
Сообщения: 3227
Зарегистрирован: 03.01.2004, 22:22
Откуда: Тюмень
Благодарил (а): 361 раз.
Поблагодарили: 526 раз.
Блог: Просмотр блога (9)
Играю в: Train Simulator Classic
Роль: Сотрудник РЖД
Имя: Андрей

Re: LuaScript - для RS

Сообщение ufox » 21.04.2011, 15:47

У меня только световая сигнализация, барьеров нет, конфиг cProceduralShapeBlueprint отображается как надо, Animated Scenery Blueprint ведь для анимации нужен, а у меня только линзы загораются на время последования поезда или я не прав?

Попробовал с AnimProceduralSceneryBlueprint по аналогии с дефолтом, тот же результат, сам по себе объект есть, а в "контейнере" его нет...
объект с конфигом Animated Scenery Blueprint

да
Разыскиваются текстурные фото Хоппера 19-4109 (ДВЗ, минераловоз)
ufox
 
Сообщения: 105
Зарегистрирован: 15.05.2010, 10:27
Откуда: БЧ, ТЧ-2
Благодарил (а): 0 раз.
Поблагодарили: 8 раз.
Играю в: Train Simulator Classic
Роль: Пассажир :)
Имя: Митя

Re: LuaScript - для RS

Сообщение i2GR » 25.05.2011, 01:10

Народ!
Возник такой вопрос: как в скрипт объекта "запихнуть" параметр времени начала сессии (сценария)? Допустим на одной и то й же карте в 10-00 игрового времени у одного и того же объекта отображается "одно", а в 11-00 "другое"
Аватара пользователя
i2GR
 
Сообщения: 540
Зарегистрирован: 04.09.2008, 16:59
Благодарил (а): 260 раз.
Поблагодарили: 303 раз.
Блог: Просмотр блога (4)
Имя: Игорь

Re: LuaScript - для RS

Сообщение Linx » 20.08.2011, 16:37

Надоело Андрею сношать мозг в аське, спрошу тут :)

Задумался я над скриптованием датчика температуры воды и масла. Что бы по мере прогрева стрелка поднималась и останавливалась на фиксированной температуре. А после выключения дизеля со временем падала. Так же есть мысли ввести условия привязанные к оборотам дизеля, чем больше тем быстрее. Реально такое сотворить? :) В голове и по-русски вроде алгоритм составил :)


Сразу оговорюсь что по профессии дизайнер, и мягко говоря в программировании туповат :)))
Дизайнер из Орла хочет познакомиться с бригадой ТЧ1 или ТЧ27. Маневры не предлагать :) | Простите, у вас кажется ригель отклеился!
Аватара пользователя
Linx
 
Сообщения: 1797
Зарегистрирован: 02.01.2006, 19:57
Откуда: Орел
Благодарил (а): 822 раз.
Поблагодарили: 1522 раз.
Блог: Просмотр блога (7)
Играю в: Train Simulator Classic
Роль: Разработчик
Имя: Дмитрий

Пред.След.

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

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

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