Elite Games - Свобода среди звезд!
.
ВНИМАНИЕ!
Наша конференция посвящена космической тематике и компьютерным играм.
Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!

  » Новые скриптовые команды. Справочник от 16.01.2009. | страница 2
Конференция предназначена для общения пилотов. Для удобства она разделена на каналы, каждый из которых посвящен определенной игре. Пожалуйста, открывайте темы только в соответствующих каналах и после того, как убедитесь, что данный вопрос не обсуждался ранее.

Поиск | Правила конференции | Фотоальбом | Регистрация | Список пилотов | Профиль | Войти и проверить личные сообщения | Вход

   Страница 2 из 3
На страницу: Пред.  1, 2, 3  След. | Все страницы
Поиск в этой теме:
Канал X3: Terran Conflict » Модовый и скриптовый отсек X3: Terran Conflict: «Новые скриптовые команды. Справочник от 16.01.2009.»
Andrei [<>Ace]
 303 EGP


Рейтинг канала: 4(94)
Репутация: 108
Сообщения: 766
Откуда: Беларусь, Салiгорск
Зарегистрирован: 29.03.2006
Раздел Торговые команды (Trade Commands)
Andrei [<>Ace] :

5. Далее как и было.

Дополнение к посту выше
5. От trader=<Var/Ship/Station> значительно зависит полученный результат, если этот аргумент не = null, причем null не скорректирует данный аргумент относительно <RefObj>. Если подставить корабли игрока - поиск будет вестись среди известных (отмеченных на карте) станций. Если подставлять корабли разных расс - то есть предпочтение по рассам. Почемуто Борон находясь в одном скачке от станции Аргона выдает Боронскую станцию в пяти скачках (вражда ведь непричем).
    Добавлено: 12:07 15-01-2009   
Chem
 780 EGP


Скрипт-мастер
Рейтинг канала: 6(495)
Репутация: 248
Сообщения: 4751
Откуда: Киев
Зарегистрирован: 08.01.2007
Блин, как-то вчера мое сообщение странно не запостилось.
В общем - вот список команд, которые выверены с встроенным редактором (см. вложение).
Дополнительно выкладываю список команд (и старых и новых), которые не были найдены во встроенном.
Прошу проверить оба списка (второй с большим приоритетом), по возможности, т.к. они буду основой справочника, и не только.
Заранее спасибо.
Код:
 
Поиск станций:
1176 : <RetVar/IF> find station: product <Var/Ware> with best price random:  max.price=<Var/Number>, amount=<Var/Number>, max.jumps=<Var/Number>, startsector=<Var/Sector>, trader=<Var/Ship/Station>, exclude array=<Value>
 1177 : <RetVar/IF> find station: resource <Var/Ware> with best price random: min.price=<Var/Number>, amount=<Var/Number>, max.jumps=<Var/Number>, startsector=<Var/Sector>, trader=<Var/Ship/Station>, exclude array=<Value>
 1178 : <RetVar/IF> find station sells: resource <Var/Ware> with best price random: max.price=<Var/Number>, amount=<Var/Number>, max.jumps=<Var/Number>, startsector=<Var/Sector>, trader=<Var/Ship/Station>, exclude array=<Value>
Старые квесты (их заменил МД):
 1084 : register quest script <Script Name> instance multiple=<Var/Number>
 1085 : set quest state with message: quest=<Var/Quest> state=<Var/Number> msg=<Var/String>
 1086 : set quest/event <Var/Quest> timer to <Var/Number>ms
 1087 : set quest <Var/Quest> timeout to <Var/Number>
 1088 : <RefObj> add event listener: quest/event=<Var/Quest> objevent=<Var/Number> script=<Script Name>
 1089 : <RefObj> remove event listener: quest/event=<Var/Quest>
Похоже убрали эту непонятную команду ;-):
 1189 : <RetVar> = <RefObj> fire laser of turret <Var/Number> ahead
Вот эта из новых, но во встроенном не нашел:
 1232 : <RetVar/IF><RefObj> add passenger to ship <Var/Ship>
Из старых, логично, т.к. теперь это похоже определяется типом:
 1138 : <RetVar> =  get missile range of <Var/Ware>
Похоже убрана любая работа с объектами отображения  в текущем секторе с игроком
  762 : <RetVar> =  get ware type of SectorObject <Var/Number>
  763 : <RetVar/IF> exists SectorObject <Var/Number>
  771 : set rotation of sector object <Var/Number> : x=<Var/Number> y=<Var/Number> z=<Var/Number>
  772 : <RetVar> =  create sector object: maintype=<Var/Number> subtype=<Var/Number>
  773 : free sector object <Var/Number>
  774 : kill sector object <Var/Number> : reason=<Var/Number> , killer sector object=<Var/Number>
  775 : start sector object <Var/Number> in space <Var/Number>
  769 : set position of sector object <Var/Number> : x=<Var/Number> y=<Var/Number> z=<Var/Number>
  764 : <RetVar/IF> get object from SectorObject <Var/Number>
А вот эту команду по-моему добавляли в 2.5:
  770 : set safe position of sector object <Var/Number> : x=<Var/Number> y=<Var/Number> z=<Var/Number>
А вот это было у Мерчантов:
 1172 : <RetVar/IF><RefObj> lock ware: <Var/Ware> on station: <Var/Station> for this



all_list.zip
 Описание:
вот список команд, которые выверены с встроенным редактором
 Имя файла:  all_list.zip
 Размер файла:  9.61 KB
 Скачано:  1070 раз(а)

_________________
Умножим энтропию на 0 :-)

Последний раз редактировалось: Chem (14:45 15-01-2009), всего редактировалось 2 раз(а)
    Добавлено: 13:35 15-01-2009   
Andrei [<>Ace]
 303 EGP


Рейтинг канала: 4(94)
Репутация: 108
Сообщения: 766
Откуда: Беларусь, Салiгорск
Зарегистрирован: 29.03.2006
Радел Другое

Код:
1329   <RetVar/IF><RefObj> get user input: type=<Script Reference Type>, title=<Var/String>

Вызывает меню для ввода аргумента type=<Script Reference Type> игроком из тала скрипта, ждет реакции (скрипт не выполняется пока игрок не ткнет "Esc" или не выполнит условие всплывшего меню), полученные данные присваивает <RetVar/IF>. Управление кораблем при этом не работает! title=<Var/String> - строка с пояснениями к аргументу, выводится ниже справа заголовока.

Код:
1230   <RetVar/IF> open custom menu: title=<Var/String> description=<Var/String> option array=<Var/Array>

Открывает пользовательское меню, именует его title=<Var/String>, description=<Var/String> - пояснения к меню, option array=<Var/Array> - массив опций самого меню.

Код:
1489   <RetVar/IF> open custom info menu: title=<Var/String> description=<Var/String> option array=<Var/Array> maxoptions=<Var/Number>

Не понял пока. Визуальная разница - меню открываемое второй командой шире Улыбка .

Код:
1445   <RetVar>= create custom menu array

Создает массив для пользовательского меню.

Код:
1416   <RetVar>= create custom menu array: heading=<Var/String>

Создает массив для пользовательского меню с подзаглавием (подразделом) heading=<Var/String>.

Код:
1444   <RetVar>= create custom menu array, info lines=<Var/String>, <Var/String>, <Var/String>, <Var/String>, <Var/String>

Создает массив для пользовательского меню и подготавливает область для инструкций (сообщений, новостей ...) коих пять, а при желании можно и больше.

Код:
1447   add custom menu item to array <Value>: text=<Var/String> returnvalue=<Value>

Добавляет в созданный ранее массив array <Value> пользовательского меню активную строку text=<Var/String> при активации каторой результат returnvalue=<Value> будет передан переменной <RetVar/IF> команд open custom menu расмотренных веше.

Код:
1448   add custom menu heading to array <Value>: title=<Var/String>

Добавляет подзаглавие (подраздел) title=<Var/String> в созданный ранее массив array <Value> пользовательского меню.

Код:
1446   add custom menu info line to array <Value>: text=<Var/String>

Добавляет область для инструкций (сообщений, новостей ...) text=<Var/String> в созданный ранее массив array <Value> пользовательского меню.

Косательно трех последних команд:
Массив пользовательского меню выглядит как массив массивов и обрабатывается последовательно. Поэтому следует сперва добавлять подзаглавие (подраздел) потом активные строки, потом опять подзаглавие (подраздел) и так далее. Из перечисленных последовательно подзаглавий (подразделов) (без прочих элементов) отразится последний. Информационные строки отправятся в шапку независимо от расположения в массиве пользовательского меню.

Последний раз редактировалось: Andrei [<>Ace] (10:28 16-01-2009), всего редактировалось 3 раз(а)
    Добавлено: 14:36 15-01-2009   
TsArIo
 65 EGP


Рейтинг канала: 1(3)
Репутация: 2
Сообщения: 176

Зарегистрирован: 11.08.2006
много хочу, но все же - планируется лм аналог (или update)
http://www.elite-games.ru/x3/scripts_howto/index.html ?

Последний раз редактировалось: TsArIo (17:30 15-01-2009), всего редактировалось 1 раз
    Добавлено: 17:29 15-01-2009   
Арманкессилон
 1725 EGP


Модератор
Рейтинг канала: 10(1320)
Репутация: 342
Сообщения: 13052
Откуда: Ставрополь
Зарегистрирован: 16.08.2007
TsArIo :
много хочу, но все же - планируется лм аналог (или update)

А для чего по твоему всё это делается? Подмигиваю
_________________
Все астероиды не пересчитать!
    Добавлено: 18:13 15-01-2009   
Chem
 780 EGP


Скрипт-мастер
Рейтинг канала: 6(495)
Репутация: 248
Сообщения: 4751
Откуда: Киев
Зарегистрирован: 08.01.2007
См. первый пост:
:

Справочник по скриптовым командам игры X3:Terran Conflict, в формате .chm.
version 0.1.11, build date 16.01.2009

Описания внес только из первого поста Эйса Подмигиваю
_________________
Умножим энтропию на 0 :-)
    Добавлено: 18:03 16-01-2009   
Chem
 780 EGP


Скрипт-мастер
Рейтинг канала: 6(495)
Репутация: 248
Сообщения: 4751
Откуда: Киев
Зарегистрирован: 08.01.2007
По разделу Audio Commands,
конкретно команда :
send incoming question <Var/String> to player: callback=<Script Name> flags=<Var/Number>
и ее параметр flags.
Ну наконец-то !!!, можно задавать вопрос без записи в журнал, и отображать его сразу
Допускает флаги:
Msg.Display - отобразить сразу.
Msg.NoVoice - предположительно - и не пытаться озвучивать
Msg.Silent - предположительно - не отображать сразу
Msg.LogEntry - записать в журнал
Msg.Temporary - не записывать в журнал.
Флаг Msg.Temporary - похоже - по умолчанию.
Флаг Msg.Display - проверил - работает.
Как и в остальных флагах допускается комбинация, через операцию битовое ИЛИ ( | ).

Msg.Plot</t>
_________________
Умножим энтропию на 0 :-)
    Добавлено: 13:22 19-01-2009   
z_m_a
 105 EGP


Рейтинг канала: 5(101)
Репутация: 20
Сообщения: 264
Откуда: Подмосковье
Зарегистрирован: 23.07.2007
Наверное сюда. Подозрение.
Цитата:
<RefObj> send incoming message: text=<Var/String> temporary=<Var/Number>
engine v. 32
......
· Сообщение может поступить только от корабля находящегося в том же секторе что и игрок.
В v1.4 приходит и в других секторах.
Цитата:
<RetVar/IF><RefObj> eject passenger
engine v. 41
· eject passenger
Можно выкинуть и десантника. Возвращает ссылку на выкинутого астронавта в секторе и им можно управлять. Улыбка

Дополнение:
Цитата:
<RetVar/IF><RefObj> get marines array

Полученные элементы списка актуальны пока существует десантник. Даже если он в секторе в виде астронавта или в трюме другого транспортника( можно узнать где он вызвав $marine-> get environment - вернет транспорт или скафандр).Станет Unknown Object если астронавт уничтожен оружием.
В игре присутствует косяк: если астронавт уничтожен корпусом при попытке подбора истребителем(есть система жизнеобеспечения) ссылка на него сохраняется( get environment возвращает null - видимо будет существовать в игре вечно.) Ну это для обжекопателей Улыбка
Для астронавта(десантника) get homebase возвращает транспорт из которого выброшен.

<RefObj> -> set destination to $target
Информационное значение $target может использоваться навигационными скриптами. Например !move.movetosector прыгает к ближайшим к $target воротам.

Дополнение2:
Десантники - не собственность игрока, а принадлежат к соответствующим расам и на них распространяются отношения и между расами и с игроком. Секторные патрули могут и пристрелить враждебного десантника.

Последний раз редактировалось: z_m_a (16:27 15-02-2009), всего редактировалось 2 раз(а)
    Добавлено: 23:43 04-02-2009   
Dark_XSM
 170 EGP


Рейтинг канала: 6(336)
Репутация: 17
Сообщения: 668
Откуда: Новосибирск
Зарегистрирован: 21.02.2009
Chem :

Как и в остальных флагах допускается комбинация, через операцию битовое ИЛИ ( | ).


| - это точно "или"?

Я сейчас запускал поиск объектов с параметром
$Flag= [Find.nearest] | [Find.multiple]

Нашёл множество объектов, и рассортировал по увеличению расстояния от корабля.

По моему "или" записывается как ||
Хотя могу и ошибаться Расстроен
    Добавлено: 22:40 21-02-2009   
z_m_a
 105 EGP


Рейтинг канала: 5(101)
Репутация: 20
Сообщения: 264
Откуда: Подмосковье
Зарегистрирован: 23.07.2007
Продолжаем разговор... Улыбка
Цитата:
<RetVar/IF><RefObj> is ship boardable

Проверка возможности захвата.
Можно захватить ТL, TM, M6,M7,M1,M2.
Нельзя М8, М5, М4, М3, TP, TS, Оружейные платформы, некоторые миссионные объекты(Озирас), корабли Хааков.

PS: Несмотря на возвращаемое значение корабли Хааков можно захватить. Подмигиваю

Цитата:
<RetVar/IF><RefObj> get boarding shield threshold
engine v. 41
· get boarding shield threshold
Видимо возвращает уровень щита для абордажа в процентах М6 - 10, TL - 6, M1 - 4, M7 - 8 ... Сycrow почему-то считает что надо умножать на 2. Совсем запутался...
Неправильно считает. Улыбка

Последний раз редактировалось: z_m_a (00:18 23-02-2009), всего редактировалось 4 раз(а)
    Добавлено: 17:28 22-02-2009   
Dark_XSM
 170 EGP


Рейтинг канала: 6(336)
Репутация: 17
Сообщения: 668
Откуда: Новосибирск
Зарегистрирован: 21.02.2009
Люди, я думаю одних описаний команд мало будет. Предлагаю ещё примеры к ним делать, дабы показать хотя бы одно направление применения скоманды.
К примеру я связал команды
<RetVar> create new array, arguments=<Value>, <Value>, <Value>, <Value>, <Value>

add custom menu item to array <Value>: text=<Var/String> returnvalue=<Value>

<RetVar/IF> open custom menu: title=<Var/String> description=<Var/String> option array=<Var/Array>

в такой вот не хитрый скрипт:

Код:
$retval = 0
$Items.from.menu = create new array, arguments=null, null, null, null, null
$Sector = [PLAYERSHIP]->get sector
$Flags = [Find.Nearest] | [Find.Multiple]
$Objects = find flying ware: sector=$Sector maintype=null subtype=null flags=$Flags refobj=[PLAYERSHIP] maxdist=null maxnum=999999, refpos=null
 
Start:
$amount = size of array $Objects
$amount2 = size of array $Items.from.menu
$Obj = $Objects[0]
if $amount != 0
  $retval = $retval + 1
  add custom menu item to array $Items.from.menu: text=$Obj returnvalue=$retval
  remove element from array $Objects at index 0
  goto label Start
else if $amount2 != 0
  $Menu2 = open custom menu: title='Objects' description='Flying objects' option array=$Items.from.menu
end
 
if $Menu2 > 0
  $Objects = find flying ware: sector=$Sector maintype=null subtype=null flags=$Flags refobj=[PLAYERSHIP] maxdist=null maxnum=999999, refpos=null
  $num = $Menu2 - 1
  $Obj = $Objects[$num]
  write to player logbook $Obj
end
return null


Как из него понятно, он находит все контейнеры в секторе, впихивает их в меню и присваивает некие номера. Затем показывает менюшку игроку.

Таким образом можно не только указать всё барахло летающее в космосе, но и сделать с этим барахлом что-нибудь Улыбка


Добавлено через неделю, что-ли: вообще можно гораздо проще сделать, но таким образом больший охват команд.
(сори, уже 2 О_о)

Последний раз редактировалось: Dark_XSM (18:26 11-03-2009), всего редактировалось 9 раз(а)
    Добавлено: 17:47 22-02-2009   
Dark_XSM
 170 EGP


Рейтинг канала: 6(336)
Репутация: 17
Сообщения: 668
Откуда: Новосибирск
Зарегистрирован: 21.02.2009
Dark_XSM :

| - это точно "или"?
...


Там мне ответ писали, жаль что удалили.
И так, я вот до чего додумался. Этот знак не может быть и не И, и не ИЛИ, ибо оба этих оператора есть и так, и называются AND, и OR
Думаю оператор | это AND/OR (И/ИЛИ)
В самом деле, почему бы и нет? Да и работает он и так и так...

Последний раз редактировалось: Dark_XSM (20:46 22-02-2009), всего редактировалось 1 раз
    Добавлено: 20:45 22-02-2009   
Chem
 780 EGP


Скрипт-мастер
Рейтинг канала: 6(495)
Репутация: 248
Сообщения: 4751
Откуда: Киев
Зарегистрирован: 08.01.2007
Dark_XSM :

| - это точно "или"?
...

Точно.
И с его помощью действие флагов складывается. Но, некоторые флаги, имеют приоритет над другими, т.е. при их наличии некоторые другие игнорируются.
_________________
Умножим энтропию на 0 :-)
    Добавлено: 20:50 22-02-2009   
z_m_a
 105 EGP


Рейтинг канала: 5(101)
Репутация: 20
Сообщения: 264
Откуда: Подмосковье
Зарегистрирован: 23.07.2007
Dark_XSM :
Там мне ответ писали, жаль что удалили.
И так, я вот до чего додумался. Этот знак не может быть и не И, и не ИЛИ, ибо оба этих оператора есть и так, и называется AND, и OR
Думаю оператор | = AND/OR
В самом деле, почему бы и нет? Да и работает он и так и так..
Отвечу еще раз. Улыбка Побитовое ИЛИ. Позволят совместить 2 и более флага. Флаги должны иметь значения 1, 2, 4, 8 и т.д.
1 | 2 = 3 (00000001|00000010 = 00000011)
4 | 8 | 1 = 13 (00000100|00001000|00000001 = 00001101)
Если хоть в в одной из переменных соответствующий бит равен 1 в результате он будет 1.

ЗЫЖ Здесь тема не для вопросов по скриптописанию, как просмотришь пошли в личку - пост потру.
ЗЗЫЖ Соответсвующие операторы есть в С++.

2 Chem
А списка звуков/текстов у тебя для X3TC нет? Ведь со времен учебника DragonP что-то изменилось. Или где хоть этот 13 файл теперь искать?

Последний раз редактировалось: z_m_a (22:32 22-02-2009), всего редактировалось 4 раз(а)
    Добавлено: 20:56 22-02-2009   
Dark_XSM
 170 EGP


Рейтинг канала: 6(336)
Репутация: 17
Сообщения: 668
Откуда: Новосибирск
Зарегистрирован: 21.02.2009
А типы врат идут не только до 8-х, а аж до 20.
_________________
Дружбомагия пролюблена...
    Добавлено: 12:54 20-03-2009   
Chem
 780 EGP


Скрипт-мастер
Рейтинг канала: 6(495)
Репутация: 248
Сообщения: 4751
Откуда: Киев
Зарегистрирован: 08.01.2007
Dark_XSM :
А типы врат идут не только до 8-х, а аж до 20.

Угу
0-3 - обычные
4 - убитые
5-8 - земные
9-14 - хабовые рабочие
15-20 - хабовые - нерабочие.
_________________
Умножим энтропию на 0 :-)
    Добавлено: 13:44 20-03-2009   
Dark_XSM
 170 EGP


Рейтинг канала: 6(336)
Репутация: 17
Сообщения: 668
Откуда: Новосибирск
Зарегистрирован: 21.02.2009
Функцию команды gosub <label> поподробнее бы описали...

Что-нить типа "функция gosub позволяет на время передать управление другой части кода скрипта. Когда выбранная часть завершится, управление вернётся к следующей строке после gosub, и вернёт туда-же все данные полученные в другой части кода." Пример:
Код:
01 gosub Sub (передаём управление части "Sub" (4-я строка))
02 write to player logbook $X (получает управление после "Sub", и переменную X со строки 5)
03 return null (скрипт завершается)
04 Sub:(часть "Sub" получает управление от 1-й строки, и начинает выполнение команд)
05 $X = 1000 (переменная X устанавливается равной 1000)
06 endsub (часть "Sub" завершается, и управление идёт ко 2-й строке)
07 return null


Стоит обратить внимание, что return null стоит ДО установки переменной X. Таким образом если для одного скрипта в разных частях требуется одно и -то-же условие, или вычисление, или ещё что, сделать так будет очень удобно.

Команда capture screen делает скриншот
_________________
Дружбомагия пролюблена...

Последний раз редактировалось: Dark_XSM (15:51 03-04-2009), всего редактировалось 3 раз(а)
    Добавлено: 15:45 03-04-2009   
vudu
 155 EGP


Рейтинг канала: 6(340)
Репутация: 28
Сообщения: 253

Зарегистрирован: 19.02.2009
Dark_XSM :
А типы врат идут не только до 8-х, а аж до 20.
в патче 2.0 добавили еще 4 штуки терранских врат, только где их используют я так пока и не понял Подозрение.
    Добавлено: 16:19 03-04-2009   
Dark_XSM
 170 EGP


Рейтинг канала: 6(336)
Репутация: 17
Сообщения: 668
Откуда: Новосибирск
Зарегистрирован: 21.02.2009
В справочнике сказано что команда <RetVar/IF><RefObj> fire missile <Var/Ware> on <Value> запускает любую ракету, лишь бы та была в трюме. Пытался проверить. Запускает только ракеты разрешённые для корабля.
Короче: запускает только те ракеты, которыми может стрелять корабль.


А когда будет следующее обновление справочника? Было бы не плохо побыстрее, а то при нужде узнать инфу о какой-нить команде, в которой не можешь разобраться сам, приходится ждать пока загрузится сайт, да и загрузится ли вообще(проблемы с сетью).
В результате потеря времени и нервов.
_________________
Дружбомагия пролюблена...
    Добавлено: 18:06 10-04-2009   
ULiX
 320 EGP


Репутация: 146
Сообщения: 573
Откуда: Комсомольск на-Амуре
Зарегистрирован: 12.07.2005
Я вижу, Эгософт решили ввести в скрипт серьёзные вещи, поддержку регулярных выражений... Интересно вот только поддерживается полный набор инструкций?

Не думаю, что начинающие скриптеры, на которых в первую очередь рассчитан справочник, имеют представления о регулярных выражениях, которые по большей степени используются в web программировании. Возможно стоит включить эту информацию в справочник. Если Эгософт действительно используют весь функционал регулярных выражений, то работа с текстом сильно упростится. Судя по тому, что расчет регулярных выражений происходит вызовом функций из exe, то вполне возможно, что подключен оригинальный модуль обработки регулярных выражений.
_________________
Новое ещё не значит лучшее
    Добавлено: 08:38 24-07-2009   
Канал X3: Terran Conflict -> Модовый и скриптовый отсек X3: Terran Conflict: «Новые скриптовые команды. Справочник от 16.01.2009.»
На страницу: Пред.  1, 2, 3  След. | Все страницы
  
Показать: 
Предыдущая тема | Следующая тема |
К списку каналов | Наверх страницы
Цитата не в тему: Флудеры, к вам дядька в рогатом шлеме с косой в руках еще не заходил? Скора будет. (Nadin)

  » Новые скриптовые команды. Справочник от 16.01.2009. | страница 2
Каналы: Новости | Elite | Elite: Dangerous | Freelancer | Star Citizen | X-Tension/X-BTF | X2: The Threat | X3: Reunion | X3: Terran Conflict | X Rebirth | X4: Foundations | EVE Online | Orbiter | Kerbal Space Program | Evochron | VoidExpanse | Космические Миры | Онлайновые игры | Другие игры | Цифровая дистрибуция | play.elite-games.ru | ЗВ 2: Гражданская война | Творчество | Железо | Игра Мечты | Сайт
   Дизайн Elite Games V5 beta.18