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

  » Справочник по скриптовым командам (X3)|v. 0.3.54|05.07.2008 | страница 4
Конференция предназначена для общения пилотов. Для удобства она разделена на каналы, каждый из которых посвящен определенной игре. Пожалуйста, открывайте темы только в соответствующих каналах и после того, как убедитесь, что данный вопрос не обсуждался ранее.

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

   Страница 4 из 13
На страницу: Пред.  1, 2, 3, 4, 5 ... 11, 12, 13  След.    Перейти:   Все страницы
Поиск в этой теме:
Канал X3: Reunion » Модовый и скриптовый отсек X3: Reunion: «Справочник по скриптовым командам (X3)|v. 0.3.54|05.07.2008»
Что нужно добавить в справочник в первую очередь ?
Описания файлов из каталога types.
25%
 25%  [ 2 ]
Статьи, написанные выдающимися скриптерами.
37%
 37%  [ 3 ]
Задачи, и лучшие решения скрипт-школы.
37%
 37%  [ 3 ]
Свой вариант (просьба описать кратко, но емко).
0%
 0%  [ 0 ]
Всего проголосовало : 8
AlexYar
 1853 EGP


Рейтинг канала: 13(2096)
Репутация: 324
Сообщения: 31645

Зарегистрирован: 26.10.2003
sergej4341 :
Цитата:
Эту ситуацию нужно еще очень долго разруливать и тестировать, в каких ситуациях стеки очищаются игрой, а в каких нет


а не влияет ли часом на это включена/отключена расовая логика для непися и включена/отключена стартовая команда для вновь созданого непися


Похоже, что влияет стартэкшн (расовая логика не влияет). Но это проверять и проверять. Так как я сейчас в стандартную х3 не играю, то проверить не могу. В Х-А стартэкшн и логика вырезаны с корнями для всех кораблей и станций в обже (специально, ибо нефиг), там проблем не видел пока со стеками.

Chem :
Имеет смысл вложить в отдельный пак для того чтобы редактор в игре был правильный - английский, а все остальное - русское
т.е. вложить английский текст из 440001 но в русский язык ?


Да. Все разделы скриптредактора лучше вставить родные из 44.

Chem :
И еще, получается система игнорирует 70001.pck (там написание команд правильное) лежащий в t папке, точнее читает его раньше cat/dat Файлов ?


Да.

Krom :
Распакованные языковые файлы имеют приоритет выше, чем нераспакованные


Наоборот. У запакованных приоритет выше. Плюс у датов приоритет выше, чем у файлов в папках в корне игры.

Т.е. сперва читаются папки в игре (сперва xml, потом pck, с перезаписью одноименных xml в памяти), потом читаются dat`ы с 1 по последний. Вобщем, что прочиталось последним, то и главное.

Исключение - файл голосовой разметки. там pck вроде вообще не читается, т.е. xml главный.

Executor :
в EG-переводе, там наверное не переводили редактор


Переводили частично Улыбка
    Добавлено: 05:39 04-02-2007   
Krom
 455 EGP


Рейтинг канала: 1(3)
Репутация: 159
Сообщения: 1988
Откуда: Горы Урала
Зарегистрирован: 19.07.2005
AlexYar :
Executor :
в EG-переводе, там наверное не переводили редактор
Переводили частично Улыбка

Собственно команды перевод не затрагивал. Переводились только названия пунктов меню, по которым разбиты команды во встроенном редакторе.
_________________
Не спешите меня.
    Добавлено: 08:39 05-02-2007   
ULiX
 320 EGP


Рейтинг канала: 7(691)
Репутация: 146
Сообщения: 573
Откуда: Комсомольск на-Амуре
Зарегистрирован: 12.07.2005
Мдя... Обшибки и недочеты в описании команд напрмую наследуются с проекта DragonP Улыбка
Тут нужно немного порулить. А то скриптёры так и останутся без достойного справочника.

Chem, написание справочника - это идея хорошая. Но желательно, чтоб все команды были проверены и прочувствованы в действии.

Есть множество команд, которые должны быть использованы совместно для достижения цели, однако находятся они в разных разделах. Для удобства использования справочника желательно создавать перекрёстные ссылки "См. также" на подкоманды, без которых использование целевой функции безсмысленно.

Пример я тебе выслал в личку:
<RefObj> -> set pilot speaker: voice=<Value>, face=<Value>, Pirate subrace=<Value>, Argon female=<Value>
<RefObj> -> send audio message <Value> to player

Эти команды для достижения эфекта должны быть использованы совместно, однако одна из них в разделе аудио команд, а другая в разделе общих команд для объектов. Нехилое расстояние, если начнёшь искать. А если поставить взаимные ссылки от этих команд, то поиск значительно упрощается и число скриптёров, которые найдут эти команды полезными, увеличится.


Дополнения по массивам.
Для создания двумерного массива нужно использовать команды:

append <Value> to array <Var/Array>

Или

insert <Value> into array <Var/Array> at index <Var/Number>

где в качестве аргумента добавляемого или вставляемого элемента выступает переменная-массив.


Пример:
$MyArray = array alloc: size=0
$ValArray = array alloc: size=2
append $ValArray to array $MyArray
$ValArray = array alloc: size=6
append $ValArray to array $MyArray
$ValArray = array alloc: size=4
append $ValArray to array $MyArray

После выполнения данной серии команд массив $MyArray примет следующую структуру:
{[],[]},
{[],[],[],[],[],[]},
{[],[],[],[]}

Три строки, в каждой из которой различное количество элементов.
После этого мы сможем считывать и присваивать следующие элементы:

$MyArray[0][0] = <Value>
$MyArray[0][1] = <Value>

$MyArray[1][0] = <Value>
$MyArray[1][1] = <Value>
$MyArray[1][2] = <Value>
$MyArray[1][3] = <Value>
$MyArray[1][4] = <Value>
$MyArray[1][5] = <Value>

$MyArray[2][0] = <Value>
$MyArray[2][1] = <Value>
$MyArray[2][2] = <Value>
$MyArray[2][3] = <Value>

Как видим, возможно создавать несемитричные массивы.


Вычисления

<RetVar> = = fixed sin <Var/Number>
· Команда вычисляет значение синуса <Var/Number> и возвращает его в переменную <RetVar> = .
<RetVar> = = fixed cos <Var/Number>
· Команда вычисляет значение косинуса <Var/Number> и возвращает его в переменную <RetVar> = .

А ничего, что это ОЧЕНЬ не точное описание.
<Var/Number> - это псевдо угол, используемый в X.
Для углов от -Pi (-180 градусов) до Pi (180 градусов) ставится в соответствие числовые значения от -32768 до 32768.

Аналогично возвращаемое значение косинуса и синуса умножается на коэффициент 32768.

fixed sin (Alpha) = 32768 * sin (Pi * Alpha / 32768)
fixed cos (Alpha) = 32768 * cos (Pi * Alpha / 32768)

Либо, если ваш калькулятор привык принимать углы в градусах а не радианах:

fixed sin (Alpha) = 32768 * sin (180 * Alpha / 32768)
fixed cos (Alpha) = 32768 * cos (180 * Alpha / 32768)

P.S. Чем дальше в лес, тем больше дров. Чувствую, нужно продолжить тему
Новые скриптовые команды. Угадайка
_________________
Новое ещё не значит лучшее
    Добавлено: 08:44 06-02-2007   
Andrei [<>Ace]
 303 EGP


Рейтинг канала: 6(416)
Репутация: 108
Сообщения: 766
Откуда: Беларусь, Салiгорск
Зарегистрирован: 29.03.2006
ULiX :
P.S. Чем дальше в лес, тем больше дров. Чувствую, нужно продолжить тему
Новые скриптовые команды. Угадайка

Не нужно. Тема уже помогла чем могла Улыбка .
Лучше посильно помогать Chem-у, а то интузиазм у человека что-то падать стал Улыбка .
    Добавлено: 10:10 06-02-2007   
Chem
 780 EGP


Скрипт-мастер
Рейтинг канала: 15(2610)
Репутация: 248
Сообщения: 4751
Откуда: Киев
Зарегистрирован: 08.01.2007
Andrei [<>Ace] :
Лучше посильно помогать Chem-у, а то интузиазм у человека что-то падать стал Улыбка .

Энтузазизм хлещет через край! Подмигиваю
Просто текущая работа немного нагрузила, но процесс идет.

Обновил - Справочник по скриптовым командам игры X3:Reunion version 0.2.1, build date 06.02.2007, 21:23
Внес перекрестные ссылки. Внизу каждой команды есть задел под поля
Внимание! Примеры и См.также
Те внимания что сразу попались сделал.
Вот это сделал - ссылки:
ULiX :
Пример я тебе выслал в личку:
<RefObj> -> set pilot speaker: voice=<Value>, face=<Value>, Pirate subrace=<Value>, Argon female=<Value>
<RefObj> -> send audio message <Value> to player



внес данные от Andrei [<>Ace]
_________________
Умножим энтропию на 0 :-)
    Добавлено: 12:48 06-02-2007   
Andrei [<>Ace]
 303 EGP


Рейтинг канала: 6(416)
Репутация: 108
Сообщения: 766
Откуда: Беларусь, Салiгорск
Зарегистрирован: 29.03.2006
Chem :
<RetVar> = register hotkey <Var/String> to call script <Script Name>
• Команда регистрирует новую "горячую клавишу" с именем <Var/String> и присваивает ей скрипт обработчик <Script Name>,

После запятой наверно следует продолжить Улыбка - регистрационный номер "горячей клавиши" возвращается в переменную <RetVar>.
    Добавлено: 11:40 07-02-2007   
Chem
 780 EGP


Скрипт-мастер
Рейтинг канала: 15(2610)
Репутация: 248
Сообщения: 4751
Откуда: Киев
Зарегистрирован: 08.01.2007
Вопрос в плане формулировок.
правильно ли то, что я про все эти команды языка пишу что они команды ? Улыбка
потому что бывает местами тавтология:
"Данной командой осуществляется передача объекту-кораблю <RefObj> команды «лететь в сектор» <Var/Sector>."

И еще - важный вопрос:
Как будем правильно называть page id и text id
Я (и не только) местами называю текстовая страница и строка(иногда текст).
Но вот как-то не нравится мне оно Расстройство

Обновил - Справочник по скриптовым командам игры X3:Reunion (version 0.2.3, build date 07.02.2007, 21:35).
Топики с ярко красным фоном под словом Команда - ждут вашего описания их работы - т.к. оно пустое Расстройство
Andrei [<>Ace] :
После запятой наверно следует продолжить Улыбка - регистрационный номер "горячей клавиши" возвращается в переменную <RetVar>.

Пофиксил.
_________________
Умножим энтропию на 0 :-)
    Добавлено: 21:01 07-02-2007   
sergej4341
 460 EGP


Рейтинг канала: 5(139)
Репутация: 148
Сообщения: 1593
Откуда: Химки/Брест
Зарегистрирован: 16.01.2004
Chem :
Данной командой осуществляется передача объекту

имхо, инструкция
Данная инструкция выполняет (запускает) на объекте-корабле <RefObj> команду "лететь в сектор" <Var/Sector>.
_________________
нажал клав. и затаил дыхание
    Добавлено: 09:25 08-02-2007   
AlexYar
 1853 EGP


Рейтинг канала: 13(2096)
Репутация: 324
Сообщения: 31645

Зарегистрирован: 26.10.2003
Chem :
Данной командой осуществляется передача объекту-кораблю <RefObj> команды «лететь в сектор» <Var/Sector>.


Данная команда заставляет объект <RefObj> лететь в сектор <Var/Sector>

sergej4341 :
инструкция выполняет (запускает) на объекте-корабле <RefObj> команду


Она ничего не запускает, она сама и есть команда, которая запускает движковую процедуру полёта Улыбка

Navigation Commands, Audio Commands - т.е. это всё команды скриптредактора.
    Добавлено: 12:43 08-02-2007   
AlexYar
 1853 EGP


Рейтинг канала: 13(2096)
Репутация: 324
Сообщения: 31645

Зарегистрирован: 26.10.2003
Стоило копнуть немного в тему врат, как тут же нашлося кучка багов в скриптдвижках х2 и х3, а так же ошибков в учебнике от DragonP для х2.


Цитата:
<RetVar/IF> <sector> get warp gate: gate id <gate>

Находит и возвращает врата с ID <gate>, в секторе <sector>. Под ID подразумевается не ID объекта, а расположение врат относительно сторон света.

ID Описание

0 Северные
1 Южные
2 Восточные
3 Западные


Если таких врат не существует, возвращает null. Может использоваться например, для определения какие врата имеются в секторе.


Красным выделено то, что полностью не соответствует действительности.

Должно быть так:

<RetVar/IF> <sector> get warp gate: gate id <Var/Number>

Данная команда возвращает врата с заданным ИД, равным <Var/Number>, в секторе <sector>.

Следующие ИД соответствуют только оригиальной карте х2! Для модовых карт раскладка ИД может быть совсем иной:

0 Северные.
1 Южные.
2 Западные.
3 Восточные.
255 Разрушенные врата

Для оригинальной х3 карты так же используется следующий ИД:

4 - нестандартные врата, ведущие в несоседний сектор.

Команда не может использоваться для определения, какие врата имеются в секторе, так как она не определяет, какие врата она нашла.
Она просто ищет некие врата с нужным ИД. Расположение же врат (северные, южные, западные, восточные) определяет не ID, а тип врат, вернуть который в скрипт ни в х2, ни в х3 инструментов не существует.

Далее:
Цитата:

<RetVar>=<sector> get north warp gate
<RetVar>=<sector> get south warp gate
<RetVar>=<sector> get east warp gate
<RetVar>=<sector> get west warp gate

Возвращает соответствующие (северные, южные, западные, восточные) врата из сектора <sector> или null если таких ворот нет.


Здесь так же красным обозначена неверная информация.

Благодаря багам в скриптдвижке как х2, так и х3, эти команды возвращают не врата нужного типа(С,Ю,З,В), а врата с фиксированными ИД! Т.е. по сути эти команды вообще не имеют смысла в игре, так как являются аналогами одной команды, но с разным аргументом, соответственно:

<RetVar/IF> <sector> get warp gate: gate id 0
<RetVar/IF> <sector> get warp gate: gate id 1
<RetVar/IF> <sector> get warp gate: gate id 3
<RetVar/IF> <sector> get warp gate: gate id 2

Другими словами, команда: <RetVar>=<sector> get north warp gate возвращает не северные врата, а врата с ИД=0! Если в секторе есть северные врата, но с ИД=4 или любым другим, то эта команда их не найдёт!

Это очень важно понимать, так как врата с ИД=0 могут быть любого типа, хоть южные, хоть восточные, хоть западные, хоть даже разрушенные!



зыж: Так как скриптописание априори подразумевает НЕоригинальную игру, поэтому, думаю, данная информация будет полезна всем, кто пишет скрипты на тему врат и хочет, чтобы его скрипты работали с любыми картами, скриптами и модами, а не только исключительно с оригинальной картой и игрой (новые врата могли быть созданы и на оригинальной игре другим скриптом, это тоже нужно учитывать).
    Добавлено: 17:14 11-02-2007   
AlexYar
 1853 EGP


Рейтинг канала: 13(2096)
Репутация: 324
Сообщения: 31645

Зарегистрирован: 26.10.2003
Здесь так же следует обязательно поправить и добавить:

Цитата:

<retvar>= create gate: type=<type> addto=<sector> gateid=<id> dstsecx=<sectorx> dstsecy=<sectory> dstgateid=<linkto> x=<x> y=<y> z=<z>

Создать врата и связать из с другим сектором. Параметр type указывает на тип врат Северные /North/ (0), Южные /South/ (1), Западные /West/ (2), Восточные /East/ (3). Gateid это специальный цифровой идентификатор врат, для встроенных в игру врат он совпадает с параметром type, задается в виде произвольного числа и служит для организации связи со вратами в другом секторе. Distsecx и Distsecy указывают соответственно на X и Y координаты сектора на карте галактики в который будет производится перемещение через новые врата. Далее следует идентификатор врат назначения, как уже говорилось он для встроенных в игру врат совпадает с «type», в случае если вы пытаетесь связать врата с вратами созданными вами, то укажите идентификатор который вы указывали при создании этих врат. Последние параметры «X» «Y» «Z» указывают координаты в секторе, где установить новые врата.

В случае если врата удачно созданы, инструкция вернет указатель на созданные врата, если по каким либо причинам не удалось создать врата, то вернет null.




Исправить на это:
Цитата:

<retvar>= create gate: type=<type> addto=<sector> gateid=<id>
dstsecx=<sectorx> dstsecy=<sectory> dstgateid=<linkto> x=<x>
y=<y> z=<z>

Создать врата и связать их с другими вратами. Параметр type указывает на тип врат:

Северные /North/ - 0
Южные /South/ - 1
Западные /West/ - 2
Восточные /East/ - 3
Разрушенные - 4

Данные типы соответствуют строчкам в конфигурационном файле TGates.txt.

Gateid это специальный цифровой идентификатор врат.
Для встроенных в игру (т.е. только на стандартной карте) врат он совпадает с параметром type, задается в виде произвольного числа и служит для организации связи с вратами в другом секторе.

Внимание!

В х2 не существует метода определить в скрипте ТИП врат, поэтому крайне рекомендуется создавать в своих скриптах врата с чётким соответствием принятых Егософтом стандартов маркировки ИД врат!

Всегда следуйте следующим правилам:

1. В одном секторе должны быть только одни врата одного типа. Не создавайте врата, если таковые уже имеются в секторе! Т.е. не должно быть двое и более северных/южных/западных/восточных/разрушенных врат.
2. ИД создаваемых врат должен быть равен ТИПу этих врат. Если вы создаёте северные врата, значит и их ИД должен равняться нулю (0). Таблица соответствия ТИП/ИД следующая:

ТИП-ИД
0-0
1-1
2-2
3-3
4-255 (разрушенные врата)

Нарушение этих правил приведет к тому, что стандартные скрипты игры или скрипты других пилотов с вашими вратами работать не будут.

Секрет: Если связать врата типов 0-3 с вратами типа 4 (разрушенные), то связь получится односторонней. Корабли в сторону разрушенных врат прыгнуть смогут (обычным ходом, а не джампом), а вот обратно пролететь - не смогут.

Distsecx и Distsecy указывают соответственно на X и Y координаты сектора на карте галактики в который будет производится перемещение через новые врата. Далее следует идентификатор (ИД) врат назначения, как уже говорилось он для встроенных в игру врат совпадает с «type», в случае если вы пытаетесь связать врата с вратами созданными вами, то укажите идентификатор который вы указывали при создании этих врат. Последние параметры «X» «Y» «Z» указывают координаты в секторе, где установить новые врата.

В случае если врата удачно созданы, инструкция вернет указатель на созданные врата, если по каким либо причинам не удалось создать врата, то вернет null.

Примечание. Если вы решили создать пару новых врат, которые соединены друг с другом, то лучше делать это в одном скрипте двумя следующими друг за другом строками без задержек между ними. Так больше всего шансов, что врата вообще будут созданы, а так же меньше вероятность ошибки, так как вам будут видны параметры обоих врат.
    Добавлено: 18:10 11-02-2007   
Andrei [<>Ace]
 303 EGP


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

<RetVar/IF> <sector> get warp gate: gate id <Var/Number>

У Chem-а так и есть.

AlexYar :
Данная команда возвращает врата с заданным ИД, равным <Var/Number>, в секторе <sector>.

Следующие ИД соответствуют только оригиальной карте х2! Для модовых карт раскладка ИД может быть совсем иной:

0 Северные.
1 Южные.
2 Западные.
3 Восточные.
255 Разрушенные врата

А здесь буду спорить Улыбка
Команда возвращает врата в переменную, либо проверяет их наличие, <RetVar/IF> в секторе <sector> созданные согласно id <Var/Number> как:

0 - Северные.
1 - Южные.
2 - Западные.
3 - Восточные.
255 - Разрушенные врата



AlexYar :
Для оригинальной х3 карты так же используется следующий ИД:

4 - нестандартные врата, ведущие в несоседний сектор.

Команда не может использоваться для определения, какие врата имеются в секторе, так как она не определяет, какие врата она нашла.
Она просто ищет некие врата с нужным ИД.

Здесь согласен. Улыбка
    Добавлено: 18:38 11-02-2007   
AlexYar
 1853 EGP


Рейтинг канала: 13(2096)
Репутация: 324
Сообщения: 31645

Зарегистрирован: 26.10.2003
Andrei [<>Ace] :
созданные согласно id <Var/Number> как:


Да вот как раз и неважно, как и чем они созданы! Улыбка И таблица ИД к команде не имеет никакого отношения, так как я могу тебе так врата насоздавать, что ты с помощью этой команды вообще не поймёшь, где в игре чего Гы-гы

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


зыж У меня горе - пока тексты елозил по опере - мышкино колёсико отвалилось Рыдания. Неудобно теперь - жуть, как будто первый раз за комп сел Расстроен Рыдания.
    Добавлено: 18:49 11-02-2007   
Andrei [<>Ace]
 303 EGP


Рейтинг канала: 6(416)
Репутация: 108
Сообщения: 766
Откуда: Беларусь, Салiгорск
Зарегистрирован: 29.03.2006
AlexYar :
Да вот как раз и неважно, как и чем они созданы! И таблица ИД к команде не имеет никакого отношения, так как я могу тебе так врата насоздавать, что ты с помощью этой команды вообще не поймёшь, где в игре чего

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

Ну нет, чтобы вдуматься, так филосовствовать будешь.

Допустим ты создаешь врата
<retvar>= create gate: type=<type> addto=<sector> gateid=<id>
dstsecx=<sectorx> dstsecy=<sectory> dstgateid=<linkto> x=<x>
y=<y> z=<z>


а потом определяешь их
<RetVar/IF> <sector> get warp gate: gate id <Var/Number>

пологаю, что gateid=<id> в первой команде равно gate id <Var/Number> во второй? Следовательно если созданы врата как 0 значит и определятся как 0. Вот только что выдаст команда <RetVar>= <object> get ID code если в нее подставить созданные врата. Не будет ли это значение начинаться с ' NO-...'?
    Добавлено: 20:19 11-02-2007   
AlexYar
 1853 EGP


Рейтинг канала: 13(2096)
Репутация: 324
Сообщения: 31645

Зарегистрирован: 26.10.2003
Andrei [<>Ace] :
Ну нет, чтобы вдуматься, так филосовствовать будешь


Попробуй с оптической мышки на шариковую пересесть - еще не так зафилософствуешь Гы-гы

Раз материал делается для учебника, то он должен быть максимально универсален и верен во всех случаях, а ты предлагаешь исключительно однобокий вариант только для стандартной игры.

Andrei [<>Ace] :
пологаю, что gateid=<id> в первой команде равно gate id <Var/Number> во второй?


Если ты создал врата с ИД=0, то второй командой, если поставишь ИД=0, то ты найдёшь именно созданные врата. Так вернее формулировка Улыбка Создать в одном секторе двое и более врат с одним ИД нельзя, а вот с одним типом - сколько угодно.

Andrei [<>Ace] :
Вот только что выдаст команда <RetVar>= <object> get ID code если в нее подставить созданные врата Не будет ли это значение начинаться с ' NO-...'?


Совсем необязательно. Может и с WE и с SU начинаться.
Даже если ты дашь команду <RetVar>=<sector> get north warp gate, то она тебе с большим успехом может вернуть южные, восточные, западные и даже разрушенные врата Улыбка Баг в том и заключается, что команда должна возвращать врата по типу (в идеале - массив врат по типу), но возвращает одни врата по ИД!

Есть ТИП врат, есть ИД врат, а есть ИД-КОД врат. Это всё разные вещи и для разного предназначены.

Тип врат - как раз и определяет врата по сторонам света, а точнее иконку и название врат (и их ИД-код).
ИД врат нужен для линкования врат друг с другом.
ИД-КОД - это маркировка врат, первые две буквы которой соответствуют типу врат (а не их ИД).

Это уже в частном случае в ЕС придумали присваивать вратам ИД равный ТИПу врат, так как иначе будет невозможно определить тип врат скриптом. Но в модовых картах, или стандартной карте, но измененной скриптами, может быть совершенно иная ситуация!
Есть много случаев, когда просто невозможно присвоить вратам ИД равный ТИПу, так как в секторе несколько врат одного типа.
Ну вроде того, что 4 северных врат, 5 западный, 7 южных, 3 восточных. В таком случае все ИД уедут по-любому, и команды скриптредактора будут возвращать что угодно, только не правду.

Поэтому я и отделил таблицу, так как она справедлива только для оригинальной игры, которую ничем не меняли, и к самим командам таблица вообще никакого отношения не имеет Улыбка

На модовых картах скриптерам нужно будет придумывать другие таблицы соответствия ТИП-ИД для последующего нахождения врат, так как стандартная таблица для такой игры будет абсолютно неверна.

Понял, нет? Улыбка
    Добавлено: 11:05 12-02-2007   
Andrei [<>Ace]
 303 EGP


Рейтинг канала: 6(416)
Репутация: 108
Сообщения: 766
Откуда: Беларусь, Салiгорск
Зарегистрирован: 29.03.2006
AlexYar :
Попробуй с оптической мышки на шариковую пересесть - еще не так зафилософствуешь

Сам две недели на шариковой просидел Гы-гы , паяльник только на работе.

AlexYar :
Понял, нет?

Я давно все понял. Улыбка

AlexYar :
Раз материал делается для учебника, то он должен быть максимально универсален и верен во всех случаях, а ты предлагаешь исключительно однобокий вариант только для стандартной игры.

Ну так обобщай матерриал, доказываешь, а выводы делайте сами Улыбка .

Получаем четыре типа врат ориентированных по сторонам света и один тип разрушенные.
Тип врат определяет:
1. в каком направлении будет портирован корабль при анимации перехода;
2. название врат;
3. и, соответственно, ID code врат.

Однотипных врат в секторе может быть много и различаться они будут только по ID code и ID "линкования", следовательно и определить...

AlexYar :
Это уже в частном случае в ЕС придумали присваивать вратам ИД равный ТИПу врат, так как иначе будет невозможно определить тип врат скриптом. Но в модовых картах, или стандартной карте, но измененной скриптами, может быть совершенно иная ситуация!
Есть много случаев, когда просто невозможно присвоить вратам ИД равный ТИПу, так как в секторе несколько врат одного типа.
Ну вроде того, что 4 северных врат, 5 западный, 7 южных, 3 восточных. В таком случае все ИД уедут по-любому, и команды скриптредактора будут возвращать что угодно, только не правду.

... скриптом тип врат для Х3 можно. И команда которая точно выберет нужные врата: <RetVar/IF> <sector> get warp gate: gate id <Var/Number> - так как не может быть в одном секторе двух врат с одинаковым ID "линкования". А тип отределим из ID code врат.
    Добавлено: 11:58 12-02-2007   
AlexYar
 1853 EGP


Рейтинг канала: 13(2096)
Репутация: 324
Сообщения: 31645

Зарегистрирован: 26.10.2003
Andrei [<>Ace] :
Сам две недели на шариковой просидел , паяльник только на работе.


Дык я и спаял из двух одну Гы-гы Только оптику уже было не восстановить, вот восстановил шариковую. Всё равно что с мерседеса на мопед пересел Гы-гы


Andrei [<>Ace] :
Получаем четыре типа врат ориентированных по сторонам света и один тип разрушенные.
Тип врат определяет:
1. в каком направлении будет портирован корабль при анимации перехода;
2. название врат;
3. и, соответственно, ID code врат.


1. Нет.
2. Да.
3. Да.

1 нет потому, что ориентацию врат определяет не тип врат, а установка углов альфа/бета/гамма, а она может быть и не нулевой Улыбка

Andrei [<>Ace] :
Однотипных врат в секторе может быть много и различаться они будут только по ID code и ID "линкования"


И названию, выводимому в титрах (там еще сектор назначения прибавляется).

Andrei [<>Ace] :
И команда которая точно выберет нужные врата: <RetVar/IF> <sector> get warp gate: gate id <Var/Number> - так как не может быть в одном секторе двух врат с одинаковым ID "линкования"


Этой командой мы выберем не нужные по типу врата, а нужные по ИД.

Andrei [<>Ace] :
А тип отределим из ID code врат


И сделаем скрипт несовместимым с х2 Улыбка В х2 нельзя по коду врат определить их тип, так как нет команд работы со строками.

Пока мы тут рассуждаем, я уже нашел стандартный способ определить тип врат, всё просто до безобразия и со строками работать не надо ни в х3, ни в х2 Гы-гы

Вот стопроцентный способ определить тип врат с любым ID:

002 $GateType=$gate1 -> get subtype

Гы-гы

А дальше уже руководствуемся таблицей ТИПов по TGates.txt:

0 - север
1 - юг
2 - запад
3 - восток
4 - разрушенные

И не нужно никаких ID линкования и никаких других таблиц. Даже блатные врата в х3 таким способом сразу определяются Улыбка
    Добавлено: 12:49 12-02-2007   
Andrei [<>Ace]
 303 EGP


Рейтинг канала: 6(416)
Репутация: 108
Сообщения: 766
Откуда: Беларусь, Салiгорск
Зарегистрирован: 29.03.2006
AlexYar :
1 нет потому, что ориентацию врат определяет не тип врат, а установка углов альфа/бета/гамма, а она может быть и не нулевой

Это хуже, но не принципиально Улыбка

AlexYar :
И сделаем скрипт несовместимым с х2 В х2 нельзя по коду врат определить их тип, так как нет команд работы со строками.

Всегда чем-то приходится жертвовать. Создание мода с нестандартными вратами к этому толкает Гы-гы .

AlexYar :
Вот стопроцентный способ определить тип врат с любым ID:

002 $GateType=$gate1 -> get subtype

!!! - а какие утвержденгия и идеи выдвигались Гы-гы .
    Добавлено: 13:52 12-02-2007   
sergej4341
 460 EGP


Рейтинг канала: 5(139)
Репутация: 148
Сообщения: 1593
Откуда: Химки/Брест
Зарегистрирован: 16.01.2004
<RetVar/IF><RefObj> get attack target

• Команда возвращает информативное значение атакуемого объекта для корабля <RefObj>. Возвращаемое значение может быть установлено командой из командного меню или командой set attack target.
во всех стандартных скриптах так и сделано, не применимо к кораблю под непосредственным управлением игроком за иссключением случаев когда игрок отдает своему кораблю команду из раздела консоли Боевые...
Также следует учитывать, что атакуемый объект может находится в другом секторе. Является неплохим способом выявить потенциального агрессора еще до того как он произвел первый выстрел по жертве


<RetVar/IF> <RefObj> get job id
примерно так, возвращает номер задания (лидер патруля, ведомые патруля, торговцы, пираты) для объекта <RefObj> полученного им при респавне
в аттаче расшифровка (стянуто давным давно с егософта, автора непомню, может быть aalrb)
номера в колонке G как раз и соотвествуют полученному в <RetVar/IF> значению

<RetVar> = <RefObj> get job jump range
радиус в котором действует объект получивший при респавне соответсвующее "задание" с соответсвующим номером job id
jump range не имеет отношения к прыжковому двигателю даже если он установлен на объекте <RefObj>
в аттаче колонка P

goto label <Label>
• Оператор безусловного перехода, осуществляет переход к метке (передает управления команде, следующей за меткой ) <Label>.
прежде чем использовать этот оператор, необходимо создать саму метку командой define label <Label> (справедливо и для gosub)

define label <Label>
• Команда определения метки для команды goto и gosub




ps а вот кто что может сказать по этой команде?
<RetVar/IF><RefObj> is target visible <Var/Ship/Station>

jobs.rar
 Описание:
 Имя файла:  jobs.rar
 Размер файла:  14.52 KB
 Скачано:  430 раз(а)

_________________
нажал клав. и затаил дыхание
    Добавлено: 16:23 14-02-2007   
Chem
 780 EGP


Скрипт-мастер
Рейтинг канала: 15(2610)
Репутация: 248
Сообщения: 4751
Откуда: Киев
Зарегистрирован: 08.01.2007
Сменил хостинг Улыбка, т.к. на том стали обрываться файлы (показывались не полностью), теперь живем здесь:
Справочник по скриптовым командам игры X3:Reunion (version 0.2.4, build date 22.02.2007, 14:08). Thanks to DragonP, AlexYar, Andrei [<>Ace], sergej4341, ULiX
Дозаполнил

  • Аудио команды
  • Команды бортжурнала
  • Команды автопилота
    так же были добавлены -
  • Торговые команды (общие)
  • для кораблей
  • для кораблей и станций

просьба пункты отмеченные желтым фоном - посмотреть, и дать комментарии.
По поводу jobs id и т.п. - я понял что оно берется из файла (спасибо sergej4341), но для чего оно, что дает.
_________________
Умножим энтропию на 0 :-)
    Добавлено: 11:00 22-02-2007   
Канал X3: Reunion -> Модовый и скриптовый отсек X3: Reunion: «Справочник по скриптовым командам (X3)|v. 0.3.54|05.07.2008»
На страницу: Пред.  1, 2, 3, 4, 5 ... 11, 12, 13  След.    Перейти:   Все страницы
  
Показать: 
Предыдущая тема | Следующая тема |
К списку каналов | Наверх страницы
Цитата не в тему: Воспитанный пилот много не флудит, мало не пьёт и никогда не скипает. (мудро подметил Dra-Katt)

  » Справочник по скриптовым командам (X3)|v. 0.3.54|05.07.2008 | страница 4
Каналы: Новости | 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