ВНИМАНИЕ! Наша конференция посвящена космической тематике и компьютерным играм. Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!
|
» Скриптами делимся, скриптами | страница 1 |
|
|
|
Канал X2: The Threat: «Скриптами делимся, скриптами» |
|
|
Химик
1655 EGP
    Репутация: 186 Сообщения: 5892 Откуда: Таиланд Зарегистрирован: 13.02.2001
 |
|
То ли лыжи не едут, то ли ...
Вскрыть !*.* не смог, свой скрипт автоматической торговли по сектору строго определенным товаром типа Батарейка почему-то гонит корабль далеко и надолго
В общем, пишите ссылки на скрипты, делитесь с безголовой общественностью.
_________________ Человек весом менее 80кг своего мнения иметь не может! |
|
|
RDestroyer
175 EGP
  Рейтинг канала: 1(3) Репутация: 22 Сообщения: 1021
Зарегистрирован: 15.05.2002
 |
|
Сначала сюда http://xscripting.com/ Здесь уже много чего полезного можно найти, чтобы не изобретать велосипед И на форуме эгософта в разделе spoilers можно найти готовые скрипты типа автоторговли, создания верфей и т.п....
|
|
|
Alone
1865 EGP Рейтинг канала: 2(20) Репутация: 529 Сообщения: 10436 Откуда: Moscow, Russia Зарегистрирован: 07.02.2001
 |
|
Цитата: |
Здесь уже много чего полезного можно найти
|
Угу. Очень много полезного.
Can't open file: 'nuke_downloads_downloads.MYI'. (errno: 145)
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /var/www/localhost/htdocs/xscripting/includes/sql_layer.php on line 239
Can't open file: 'nuke_downloads_downloads.MYI'. (errno: 145)
Can't open file: 'nuke_downloads_downloads.MYI'. (errno: 145)
_________________ Скучно быть серьезным. |
|
|
Breeze
222 EGP
  Рейтинг канала: 3(30) Репутация: 90 Сообщения: 703 Откуда: Donetsk, Ukraine Зарегистрирован: 05.12.2003
 |
|
Химик
В имени файла надо убрать "!"
В теле файла надо удалить "!" в:
<name>!*.*</name>
<sval type="string" val="!*.*" />
_________________ 'Слова искажают правду' © |
|
|
Химик
1655 EGP
    Репутация: 186 Сообщения: 5892 Откуда: Таиланд Зарегистрирован: 13.02.2001
 |
|
Alone : |
Угу. Очень много полезного.
|
Регистрироваться не пробовал? Говорят, помогает
_________________ Человек весом менее 80кг своего мнения иметь не может! |
|
|
Alone
1865 EGP Рейтинг канала: 2(20) Репутация: 529 Сообщения: 10436 Откуда: Moscow, Russia Зарегистрирован: 07.02.2001
 |
|
Цитата: |
Регистрироваться не пробовал? Говорят, помогает
|
Где? В неработающей мускульной базе?
_________________ Скучно быть серьезным. |
|
|
RDestroyer
175 EGP
  Рейтинг канала: 1(3) Репутация: 22 Сообщения: 1021
Зарегистрирован: 15.05.2002
 |
|
Хм, почему не работает??? Нажимаете Downloads, там в раздел X2 Scripts, там уже выбираете категорию скрипта: Cheats, Combat, Other, Stations, Trading... Там уже ваыбираете конкретный скрипт и скачиваете У меня все работает, уже десяток скриптов скачал...
Правда их пока мало, но сайт только что создан, надо не забывать ссылку, они там я думаю быстро будут появляться...
А в форуме у них можно обсуждать вопросы по скриптописанию, и там тоже немного скриптов есть
|
|
|
Dimaxx
1016 EGP
      Рейтинг канала: 1(5) Репутация: 204 Сообщения: 5811 Откуда: Северодвинск Зарегистрирован: 26.06.2002
 |
|
Малеха лежит здесь - http://www.the-commander.com/x2scripts.htm
_________________ "Если мы не покончим с войной, война покончит с нами." Г. Г. Уэллс |
|
|
Химик
1655 EGP
    Репутация: 186 Сообщения: 5892 Откуда: Таиланд Зарегистрирован: 13.02.2001
 |
|
На Коммандере еще лежит и прога для вскрытия системных скриптов.
_________________ Человек весом менее 80кг своего мнения иметь не может! |
|
|
Cooler8
77 EGP
 Репутация: 1 Сообщения: 39 Откуда: Москва Зарегистрирован: 03.12.2003
 |
|
RDestroyer : |
Сначала сюда http://xscripting.com/ Здесь уже много чего полезного можно найти, чтобы не изобретать велосипед И на форуме эгософта в разделе spoilers можно найти готовые скрипты типа автоторговли, создания верфей и т.п....
|
Скачал оттуда какой-то скрипт для активации нормальной станции, чтобы с ней торговали нормально все...скачал файл .xml, переписал в папку scripts, а дальше как? как его включить то? где это делается?
Заранее THX.
_________________ God is a DJ |
|
|
BlackWin
86 EGP
 Репутация: 0 Сообщения: 53 Откуда: Красноярск Зарегистрирован: 08.12.2003
 |
|
В игре пишешь "Thereshallbewings" (T - большая) заходишь в меню
или просто "Shift c" жмёшь "s" а там разберёшся
_________________ Если жизнь игра, то что тогда
игра... |
|
|
Пассажир
|
|
Расскажите пожалуйста поподробнее как использовать скрипты.
Спасибо.
|
|
|
RDestroyer
175 EGP
  Рейтинг канала: 1(3) Репутация: 22 Сообщения: 1021
Зарегистрирован: 15.05.2002
 |
|
Да там в принципе всё понятно Я например без документации разобрался сразу Но можешь скачать с этого сайта, из раздела Х2 (сылка вверху этой страницы, кликни на "База данных"), документацию по скриптам...
|
|
|
Breeze
222 EGP
  Рейтинг канала: 3(30) Репутация: 90 Сообщения: 703 Откуда: Donetsk, Ukraine Зарегистрирован: 05.12.2003
 |
|
Тут вот мысль пришла - отсутсвует нормальная (не то что нормальная, хоть-какая-нибудь, кроме пары скудных примерчиков по http://www.egosoft.com/X/questsdk/info/doxygen/scriptprg.html ) информация/документация о том, как использовать редактор скриптов. Пока. Может потом кто-то сделает. А пока методом тыка, научного... А хочется, вообще-то, иметь как можно более четкое представление о возможностях ScE! И писать скрипты тогда можно было бы наиболее эффективно, а не тяп-ляп-как-знаю-так-и-пишу... Так что предлагаю состряпать хотя-бы поверхностное руководство, охватывающее описание основных моментов и главное - комманд. Я уже немного накатал - вступительный кусочек, могу сюда запостить, и потом все кто может будем добавлять/исправлять - как считаете?
P.S - добавил кусок, инфо в процессе систематизации и создания
_________________ 'Слова искажают правду' © |
|
|
Breeze
222 EGP
  Рейтинг канала: 3(30) Репутация: 90 Сообщения: 703 Откуда: Donetsk, Ukraine Зарегистрирован: 05.12.2003
 |
|
Тут будет попытка систематизировать кусочки знаний полученных при работе со встроенным редактором скриптов (предназначенном для бета-тестеров в основном) в Х2.
Гм... Нелишним наверное будет сказать, что для работы с редактором ВЕСЬМА желательно знание (хотя-бы на школьном уровне) какого-либо языка программирования. А так-же английского, тоже, хотя-бы на школьном уровне...
Правильность информации не гарантируется, всё собрано и нарыто из личного опыта, опыта других людей и скудных источников официальной информации от разработчика
1) Как и что.
Запуск редактора осуществляется прямо из игры, набором комбинации символов 'T','h','e','r','e','s','h','a','l','l','b','e','e','w','i','n','g','s'. Эта комбинация открывает доступ к редактору в меню комманд корабля - доступ по горячим клавишам - либо S, C, S - либо Shift-C, S.
Далее видим меню, можно понажимать кнопки PGUP,PGDOWN и посмотреть сколько и какие процессы в каком состоянии сейчас. Из меню можно выбирать такие пункты:
а) Редактирование скриптов. - всевозможные манипуляции со скриптами - создание, удаление, редактирование...
б) Очистить кэш - почистить от остатков мусора
в) Отладка скриптов - выкл/лог/трейс - либо выключена, либо запись в лог, либо реалтайм трейсинг
г) Очистить лог - удалить все записи из лога
д) Меню отладчика скриптов - смотреть лог/трейсинг
е) Помощь - помощь по горячим клавишам
3) Что где зарыто.
В папке scripts лежат скрипты для ScE - ScriptEngine - СкриптДвижок - "язык комманд" высокого уровня для этой игры. Это подразумевает, что разработчики дали нам средство на определенном уровне управлять игрой, изменяя её логику, дополняя и изменяя жестко прописанный в исполняемом файле код. Т.е. это позволяет нам оперировать объектами в игре, и управлять взаимодействием этих объектов - но до определенного предела конечно. Ограничения весьма существенны - доступ, например, к классам, функциям, естественно закрыт - любой низкоуровневый доступ закрыт.
4) Структура и связи скриптов.
Скрипты имееют определенную иерархию, в которой 4 уровня:
3) "global default" - конкретно общий (общий для всех)
2) "global for race" - общий для расы
1) "for ship class of race" - для класса корабля расы
0) "for a paricular ship" - для конкретного корабля
Скрипты более высокого уровня вызывают скрипты более низкого уровня. Например скрипт 3-го уровня !init.ship.globalscriptmap.xml вызывает скрипты !init.ship.globalscriptmap.std, !init.ship.globalscriptmap.pl, !init.ship.globalscriptmap.spfly, !init.ship.globalscriptmap.khaak - которы занимаются инициализацией всех кораблей компа, игрока, космомух, Хааков соответственно. В этих четырёх перечисленных скриптах идет связывание кораблей расы со скриптами реализующими опр. комманды, и т.д. до скриптов 0 уровня, занимающихся конкретными действиями. Пример скрипта 0 уровня - fight.attack.object
Скрипты подразделяются на "те, которые можно менять" - несколько штук, и "те, которые менять низзя!" - около 130 штук - но это ограничение можно обойти. Запретные скрипты помечены значком "!" в имени файла, внутри файла в теге <name> и теге типа <sval type="string" val="!*" />. Если убрать восклицательные знаки, скрипты становятся доступными для редактирования и экспериментов .
5) Создание скриптов.
При выборе пункта <New Script> получаем запрос на ввод имени скрипта, и далее попадаем в основной интерфейс работы со скриптом. В меню интерфейса создания скрипта, есть три "подраздела" - информация о скрипте, раздел аргументов, раздел "кода". В разделе информации о скрипте можно задать версию скрипта, описание скрипта, и самое важное - сигнал/комманду, по которой будет вызыватся скрипт из меню комманд, наравне с коммандами типа "купить по лучшей цене", "атаковать всех врагов", "стыковатся с" и т.д. Команда/сигнал должна быть прописана - это определяется вручную в скрипте с помощью определённой последовательности команд, либо в опр. файлах скриптов, как - описано ниже.
В разделе аргументов можно определить переменную, которая будет использоватся для ввода данных в скрипт при его вызове - либо вручную, либо через другой скрипт.
В разделе "кода" - тело скрипта.
Например, мы хотим определить какую-то опр. команду связанную со скриптом, тогда такой скрипт -
Arguments
none
Source Text
001 global ship map: set: key=COMMAND_TYPE_SPECIAL_13, class=Ship, race=Player, script='DoingSomething', prio=2
002 set ship command upgrade: command=COMMAND_TYPE_SPECIAL_13 upgrade=Special Command Software MK1
003 [THIS] -> connect ship command/signal COMMAND_TYPE_SPECIAL_13 to script 'DoingSomething' with prio 2
004 return null
при запуске его вручную и при наличии у нас сделанного скрипта под именем DoingSomething и прописанным значением в нём в поле сигнала/команды "COMMAND_TYPE_SPECIAL_13", плюс должно быть установлено special command software MK1 - будет добавлять в меню в разделе >>SPECIAL в меню команд корабля еще одну команду (помимо стандартных комманд "собрать ware", "Собрать ware в секторе..."), выполнение которой будет происходить посредством скрипта DoingSomething.
Имя "новоиспеченной" команды будет в виде "text123-123" - изменяется это в ХМL-е с текстом игры (папка t, файл 440001), первая стока цифр - номер секции, вторая строка цифр - номер строки в секции. Так-же в папку t можно добавить файл типа 44000Х (оформленный по тем же правилам что и 440001) с описанием нашей команды - этот вариант наиболее предпочтителен.
Иерархия всех существующих на данный момент 100 с лишним скриптов создается игрой, при добавлении новых скриптов иногда необходимо "вклиниватся" в эту структуру на определённом уровне (от 0 до 3), в данном случае (создание команды в командном меню корабля) можно было бы влезть в нижеследующие файлы и вставить туда соотв. фрагменты, чтобы всё выполнялось при запуске игры автоматически:
1) global ship map: set: key=COMMAND_TYPE_SPECIAL_13, class=Ship, race=Player, script='DoingSomething', prio=2
Добавляется в !init.ship.globalscriptmap.pl
2) set ship command upgrade: command=COMMAND_TYPE_SPECIAL_13 upgrade=Special Command Software MK1
Добавляется в !init.ship.commandupgrade
3) [THIS] -> connect ship command/signal COMMAND_TYPE_SPECIAL_13 to script 'DoingSomething' with prio 2
Добавляется в вызываемый скрипт.
Альтернативный рекомендуемый вариант: игра распознает предназначение команды по структуре её имени, значит лучше всего создать скрипт с именем init.something - часть имени init. обязательна - в котором прописать вышеперечисленные команды.
Скрипты из меню активируются игроком, либо скрипты активируются в зависимости от определённых условий. Они могут выполнятся "мгновенно", могут выполнятся определенное время в зависимости от условий, и естественно могут выполнятся с момента запуска игры и до выхода из неё - всё это можно наблюдать в главном меню, там будет информация о текущих скрипт-процессах, as task, on stack, и totally called. Скрипты могут быть прерываемыми, могут иметь приоритет. Использование трассировки - по желанию
Далее, получив возможность запускать скрипт (если это необходимо) по-человечески, можно начинать программировать логику этого скрипта с помощью предоставленного нам набора комманд:
*) Общие команды - inc, dec, if, end, get playing time, вызов других скриптов, ну и тому подобное.
*) Аудио команды - работа со звуками - play sample, send audio message, и т.п.
*) Команды журнала - работа с журналом, sprintf и т.п.
*) Навигационные команды - взаимодействие объектов - fly to homebase, station, set formation, etc.
*) Торговые команды - товар/деньги - add <Var> units of $ware, install <Var> units of $ware, etc.
*) Команды для объектов - манипуляции над объектами - is landed, get shield type in bay, create...
*) Команды для вселенной и секторов - вселенная на ладони - get max sectors in x direction, etc.
(Создание временно заморожено новогодними праздниками )
6) Общие команды.
Under construction
7) Аудио команды.
Under construction
8) Команды журнала
Under construction
9) Навигационные команды
Under construction
10) Торговые команды
Under construction
11) Команды для объектов
Under construction
12) Команды для вселенной и секторов
Under construction
13) Примеры
Under construction
14) Благодарности
29.12.03 - добавиль чуть-чуть в раздел 5.
29.12.03 - Добавлено/исправлено много инфо в разделе 5 благодаря пилоту BSS
30.12.03 - Добавлено инфо благодаря пилоту bal
_________________ 'Слова искажают правду' © |
|
|
Пассажир
|
|
Breeze : |
001 global ship map: set: key=COMMAND_TYPE_SPECIAL_13, class=Ship, race=Player, script='DoingSomething', prio=100
|
Добавляется в !init.ship.globalscriptmap.pl.xml
Цитата: |
002 set ship command upgrade: command=COMMAND_TYPE_SPECIAL_13 upgrade=Special Command Software MK1
|
Добавляется в !init.ship.commandupgrade.xml
Цитата: |
003 $PlShip -> connect ship command/signal COMMAND_TYPE_SPECIAL_13 to script 'DoingSomething' with prio 100
|
Добавляется в вызываемый скрипт в место $PlShip просто THIS
Приоритеты я ставил 2 , но думаю можно и больше
Цитата: |
(Есть один неприятный момент - имя "новоиспеченной" команды будет в виде "text123-123" - как это убрать мне пока неизвестно, хотя способ какой-то должен быть...)
|
Способ один: добавляешь в файл с текстом игры нужные названия
123-123 первая-номер секции, вторая-номер строки в секции.
Проверено, мин нет!
Спасибо за идею, сам бы наверно долго мучался
|
|
|
Пассажир
|
|
Предыдущий пассажир ето я
|
|
|
Breeze
222 EGP
  Рейтинг канала: 3(30) Репутация: 90 Сообщения: 703 Откуда: Donetsk, Ukraine Зарегистрирован: 05.12.2003
 |
|
Cпасибо, BSS! Буду добавлять/исправлять.
Люди, кстати, - чем больше коллективного труда, тем полнее и точнее будет инфо, так что если что-то полезное знаете, делитесь
_________________ 'Слова искажают правду' © |
|
|
Пассажир
|
|
Breeze : |
Cпасибо, BSS! Буду добавлять/исправлять.
Люди, кстати, - чем больше коллективного труда, тем полнее и точнее будет инфо, так что если что-то полезное знаете, делитесь
|
Кстати, похоже все команды типа COMMAND_TYPE_... в игре не задействованы, я пробовал например на команде COMMAND_TYPE_TRADE_1
Полный список их также можно найти в тексте игры.
Только что будет если их решит использовать эгософт в последующих патчах ?
|
|
|
Breeze
222 EGP
  Рейтинг канала: 3(30) Репутация: 90 Сообщения: 703 Откуда: Donetsk, Ukraine Зарегистрирован: 05.12.2003
 |
|
BSS так может COMMAND_GET_WARE (первая в списке...) равнозначна COMMAND_TYPE_TRADE_1? - кто знает сколько и как они туда констант понапихали и как связали и обозвали . И тогда (если уже была команда global ship map: set), оно может не переопределить... Если Эгософт в патчах будет что-то добавлять - тогда конечно всё придется менять - в версии 1.1 я пока что изменений не заметил, хотя, скорее всего, что-то где-то добавилось... Будем рыть
_________________ 'Слова искажают правду' © |
|
|
|
|
|
Канал X2: The Threat: «Скриптами делимся, скриптами» |
|
К списку каналов | Наверх страницы |
Цитата не в тему: Так пробегутся - вроде и нет ничего, а оно, интересное - рядом... (мудрость от duch'а)
|
» Скриптами делимся, скриптами | страница 1 |
|