X3: Terran Conflict

X3: Terran Conflict

Not enough ratings
Как создать все что угодно (Script Editor)
By D4nD4nce
Подробное описание команд можно найти Здесь [www.elite-games.ru]
   
Award
Favorite
Favorited
Unfavorite
Активация редактора скриптов (Script Editor)
Для активации необходимо:
  • В боковом меню слева найти раздел "Личные" → "Дополнительно" → "Изменить имя";
  • Ввести "Thereshallbewings" точно так как написано здесь (с большой буквы и двумя маленькими буквами "L". Игра блокирует двойное нажатие клавиши, поэтому необходимо сделать небольшую паузу при наборе).
После этого, если все сделано правильно, имя пилота останется прежним. Для проверки имени повторить пункт 1.

Для входа в редактор скриптов:
  1. Нажать [Shift]+[C];
  2. Нажать [S] или найти строку "Редактор скриптов";
  3. [Enter], пропустить справочное окно;
  4. "Редактор скриптов".

После этого появляется окно со списком всех сохраненных скриптов, в котором также можно создать свой собственный.
1. Создание корабля
При использовании данного скрипта можно получить корабли с возможностью выбора:
  • количества кораблей;
  • сектора, в котором они будут созданы;
  • принадлежности новых кораблей (врагу, союзнику или игроку).
Запись скрипта
В окне со списком всех сохраненных скриптов (см. первый раздел) в списке выбрать «Новый скрипт» → ввести название скрипта (без спецсимволов, понятное, чтобы по нему затем скрипт было легко найти в общем списке). Например: aCustom.NewShip.

Далее, в разделе «Параметры» :
  1. «Новый параметр» → ввести название параметра number → в самом низу списка выбрать «Число» → задать любое описание. Например: number of ships;
  2. «Новый параметр» → ввести название параметра type → выбрать «Перем/Тип корабля» → задать любое описание. Например: type of ships;
  3. «Новый параметр» → ввести название параметра: owner → выбрать «Перем/Раса» → задать любое описание. Например: owner of ships;
  4. «Новый параметр» → ввести название параметра: position → выбрать «Перем/Сектор» → задать любое описание. Например: position of ships.
В разделе «Код» :
  1. «Новая строка» → «Общие команды» → выбрать строку «Возвр/IF Выражение» → в разделе «Ввод кода» выбрать while → навести курсор на вопросительный знак возле while и выбрать number;
  2. «Новая строка» → «Общие команды для объектов» → «Создание объектов» → найти строку «create ship: type=» → в разделе «Ввод скрипта» выбрать «Переменная» → ввести название параметра: ship;
  3. «Новая строка» → «Торговые команды» → «Для кораблей» → найти строку «add default items to ship» → в разделе «Доступные переменные» выбрать ship;
  4. «Новая строка» → «Общие команды» → выбрать строку «dec ВозврПерем =» → в разделе «Доступные переменные» выбрать number;
  5. «Новая строка» → «Общие команды» → «Управление исполнением цикла» → выбрать строку «end conditional».
Затем в разделе «Код» в строке create ship: type= :
  • Навести курсор на вопросительный знак возле create ship: type= → в самом верху, в разделе «Доступные переменные» выбрать type;
  • для owner= выбрать owner;
  • для addto= выбрать position;
  • для x= / y= / z= выбрать null.
Нажать [Esc] → «Да» (сохранить скрипт).
Скрипт готов.

Должно получиться вот это:

Примечание: команда return null добавляется автоматически при сохранении скрипта и должна быть всегда в самом низу.
Использование скрипта
В списке скриптов навести курсор на созданный скрипт (aCustom.NewShip) и нажать [R] (запустить).
Нажать [Enter][Enter] :
  1. Выбрать «Число» и ввести необходимое количество кораблей;
  2. Нажать «Выбрать тип корабля» - задать класс корабля, который требуется получить;
  3. Нажать «Выбрать расу» - задать внутриигровую фракцию, которой будет принадлежать созданный корабль. Если необходимо, чтобы корабль принадлежал главному герою - необходимо выбрать «Игрок» или «Player».
    Раса «Игрок» — это имя вашего главного героя (можно посмотреть в боковом меню слева в разделе «Личные» → «Дополнительно» → «Изменить имя»);
  4. Нажать «Выбрать сектор» - задать сектор, в котором будет создан корабль.
Корабль или группа кораблей появятся на нулевых координатах (в самом центре) выбранного сектора.
1.1 Создание корабля с оборудованием
После создания все корабли по-умолчанию будут иметь только базовый набор оборудования, несколько лазеров и щитов. Чтобы добавить что-то дополнительное или специфическое, предыдущий скрипт необходимо модифицировать - добавить по одной строке кода для каждого вида оборудования.

Для добавления 1 вида оборудования/щита/ресурса/оружия в разделе «Код» между строками 003-004 необходимо добавить следующую:
= $ship add '[количество]' units of '[название оборудования]'
Вместо «количество» необходимо задать количество добавляемого оборудования, а вместо «название оборудования» - выбрать из списка то, что именно требуется добавить.

Примечания:
  • Оружие и щиты будут добавлены и установлены только в том случае, если создаваемый корабль может их нести;
  • Если добавить такое оборудование как «Форсирование двигателя» и «Оптимизация рулевого управления» в количестве, которое превышает максимально возможное для данного корабля, то созданный корабль будет иметь улучшенные маневренность и скорость. Однако, данное правило не распространяется на щиты и «Расширение грузового отсека».
  • При добавлении всего оборудования, кроме «Форсирования двигателя», «Оптимизации рулевого управления» и «Расширения грузового отсека» в качестве количества необходимо указывать 1.
  • Расширить грузовой отсек можно, но не больше максимального значения.
  • Если при добавлении оружия и щитов они не устанавливаются на корабль, а только добавляются в грузовой трюм — вместо add необходимо использовать команду install, которая полностью аналогична предыдущей команде по настройке и находится в том же разделе «Торговые команды».

Редактирование скрипта
  • Добавить пустую строку: выделить строчку 004 и нажать [Insert];
  • Добавить команду: [Enter] → «Торговые команды» → ... add ... units of ...<не возвращает значение>
Появится строка:
004 = <?> add <?> units of <?>
Все три <?> необходимо заполнить. Для этого нужно по очереди навести курсор на эти знаки и нажать [Enter].
  • Первый знак → выбрать из списка вверху переменную ship;
  • Второй → внизу списка выбрать <Число> и указать какое количество оборудования требуется добавить;
  • Третий → «Выбрать товар» → выбрать что добавить.
Строка должна прийти к уже обозначенному ранее виду:
004 = $ship add '[количество]' units of '[название оборудования]'
Добавленную строку можно скопировать (нужное количество раз):
  • Выделить строку 004;
  • Нажать на клавиатуре [C] - скопировать;
  • Нажать [V] - вставить строку над выделенной.
После копирования строк можно поменять «количество» и «название оборудования» в каждой и заполнить список всем, что требуется создаваемым кораблям.

Скрипт запускается также как описано в Разделе "1. Создание корабля".
2. Уничтожение любой станции или корабля
В общем списке нужно выбрать «Новый скрипт» и ввести название скрипта. Например: aCustom.DELETE.
  1. В разделе «Параметры» выбрать «Новый параметр» → ввести obj → выбрать «Перем/Корабль/Станция» → ввести любое описание;
  2. В разделе «Код» выбрать «Новая строка» → «Общие команды для объектов» → выбрать destruct: show on explosion= → «Доступные переменные» → выбрать obj;
  3. Кликнуть возле вопросительного знака destruct: show on explosion= → выбрать [TRUE]
  4. Нажать [Esc] → «Да» (Сохранить скрипт)
Должно получиться вот это:

Примечание: команда return null добавляется автоматически при сохранении скрипта и должна быть всегда в самом низу.

Чтобы уничтожить корабль или станцию:
  • В списке скриптов навести курсор на созданный скрипт (aCustom.DELETE) и нажать [R] (запустить);
  • Нажать [Enter][Enter];
  • «Выбрать корабль или станцию» - указать то, что нужно уничтожить
3. Добавление оружия, лазеров, щитов и ресурсов
С помощью данного скрипта можно добавить (поместить в грузовой трюм) на выбранный корабль или станцию необходимое количество:
  • ресурсов (батареек, руды, кремневых дисков и т.д.);
  • оружия, щитов и оборудования;
  • увеличить максимальную скорость и маневренность любого корабля;
  • добавить на свой корабль класса TL станцию для дальнейшей постройки.
Запись скрипта
В списке выбрать «Новый скрипт» и ввести название скрипта. Например: aCustom.addObj

В разделе «Параметры»:
  1. «Новый параметр» → ввести number → выбрать «Число» → дать любое описание.
  2. «Новый параметр» → ввести obj → выбрать «Перем/Все товары» → дать любое описание.
  3. «Новый параметр» → ввести target → выбрать «Перем/Корабль/Станция игрока» → дать любое описание.
В разделе «Код»:
«Новая строка» → «Торговые команды» → выбрать add ... units of → в разделе «Доступные переменные» выбрать target

В разделе «Код» строка $target=:
  1. Навести курсор на вопросительный знак возле $target= → в разделе «Доступные переменные» выбрать строку target
  2. для add выбрать number
  3. для units of выбрать obj
Нажать [Esc] → «Да» (сохранить скрипт)

Должно получиться вот это:

Примечание: команда return null добавляется автоматически при сохранении скрипта и должна быть всегда в самом низу.

Запуск скрипта
Чтобы добавить ресурсы, оружие, броню, щиты или оборудование:
  1. В списке скриптов навести курсор на скрипт (aCustom.addObj) и нажать [R] (запустить)
  2. Нажать [Enter][Enter];
  3. «Число» → ввести количество предметов, которое требуется получить;
  4. «Выбрать товар» → выбрать товар/оборудование;
  5. «Выбрать корабль или станцию игрока» → выбрать куда будет помещен груз.
4. Строительство станций 1 (быстро)
С помощью данного метода можно построить неограниченное количество станций, каждая из которых будет принадлежать игроку.

Чтобы создать собственую станцию необходимо:
  • С помощью скрипта Создание корабля (из раздела 1) создать 1 корабль класса TL;
  • Создать скрипт Добавление оружия, лазеров, щитов и ресурсов (из раздела 3).
Чтобы получить станцию:
  1. В списке скриптов навести курсор на скрипт Добавление оружия, лазеров, щитов и ресурсов (aCustom.addObj) и нажать [R] (запустить)
  2. Нажать [Enter][Enter];
  3. «Число» → ввести количество станций, которое требуется получить;
  4. «Выбрать тип станции» → выбрать станцию;
  5. «Выбрать корабль или станцию игрока» → выбрать корабль класса TL.
5. Строительство станций 2 (больше возможностей)
Данный метод создания в первую очередь предназначен для постройки станций других рас. В возможности данного скрипта без необходимости изменения кода входит:
  • выбор типа станции;
  • выбор сектора и положения станции;
  • выбор расы владельца.

Примечания:
  • Все созданные с помощью данного скрипта станции будут иметь максимальное количество всех необходимых для производства ресурсов;
  • При строительстве станций и выборе любой расы, кроме «Игрок/Player», станция будет управляться NPC;
  • Все созданные станции NPC будут автоматически изменять стоимость покупки сырья и продажи товаров в зависимости от их количества, то есть точно также как и другие «стандартные» станции;
  • «Оружейные доки», «Торговые станции» и «Корабельные верфи» создаются пустыми, без ресурсов, товаров и оборудования.

Скрипт не обязательно писать полностью, однако в таком случае не будет некоторых функций. Для создания станции и функционирования скрипта должны присутствовать все строки в диапазоне 001-006 и раздел «Параметры». Все остальное можно добавить по необходимости.

За что отвечают строки кода:
  • 001-003 - определение координат x/y/z из указанной на карте точки;
  • 004 - определение сектора в котором будет создана станция;
  • 006 - создание станции;
  • 007 - добавление стандартного набора продукции, ресурсов и щитов для данного типа станции;
  • 008, 009 - полное восстановление щитов (100%);
  • 010 - запуск станции (без этой строки станция не будет производить товар);
  • 011 - добавление на счет станции 10 000 000 кредитов (не рекомендуется удалять эту строку, если создается станция NPC);
  • 013-023 - добавление максимального количества ресурсов на станцию;
  • 018, 019, 022 - если удалить все эти строчки, то станция получит не только все необходимые для производства ресурсы, но и сам товар в максимально возможном количестве.

Раздел «Код» в виде текста:
001 $objPosX= $objPos [0] 002 $objPosY= $objPos [1] 003 $objPosZ= $objPos [2] 004 $sector= $objPos [3] 005 006 $station= create station: type= $stationType owner= $owner addto= $sector x= $objPosX y= $objPosy z= $objPosZ 007 $station -> add default wares to station/dock 008 $shiled= $station -> get maximum shield strength 009 $station -> set current shield strength to $shiled 010 $station -> station trade and production tasks: on= 1 011 $station -> add money: 10000000 012 013 $arrRes= $station -> get tradeable ware array from station 014 $arrResLength= size of array $arrRes 015 while $arrResLength ... 016 dec $arrResLength= 017 $res= $arrRes [ $arrResLength] 018 $resType= $station -> get product ware 019 if $res != $resType ... 020 $maxCount=$station -> get max. store amount of ware $res 021 = $station -> add $maxCount units of $res 022 end 023 end 024 025 return null
Комментарии:
  • команда return null последней строкой добавляется автоматически после сохранения скрипта и должна быть всегда в самом низу;
  • все, что начинается со знака доллара ($) - это переменные. Если их нет в списке - нужно выбрать пункт <Переменная> и ввести имя переменной, такое же как указано выше.

Где искать необходимые функции:
  • 001-004, 017 - «Общие команды» → «Массивы» → <Возвр/IF><Перем/Массив>[<Перем/Число>]
  • 006 - «Общие команды для объектов» → «Создание объектов»
  • 007, 013, 018, 020 - «Торговые команды» → «Для станций»
  • 008, 009, 010 - «Общие команды для объектов»
  • 011 - «Торговые команды» → «Для кораблей и станций»
  • 014 - «Общие команды» → «Массивы»
  • 015 - «Общие команды» → <Возвр/IF><Выражение>while
  • 016 - «Общие команды» → dec <ВозврПерем> =
  • 019 - «Общие команды» → <Возвр/IF><Выражение>if
  • 021 - «Торговые команды»
  • 022 - «Общие команды» → «Управление исполнением цикла» → end conditional

Запуск скрипта
  1. Выделить созданный скрипт постройки станций в списке.
  2. Нажать [R][Enter][Enter]
  3. «Выбрать тип станции».
  4. «Выбрать расу» → указать расу-владельца станции.
  5. «Выбрать положение сектора» → выбрать необходимый сектор и перейти на цифровую клавиатуру. С помощью клавиш перемещения (2,4,6,8) на цифровой клавиатуре и клавиши смены плоскости (Insert) указать, где именно требуется построить станцию и нажать [Enter].
После этого произойдет постройка станции.
6. Неуязвимый корабль, станция
Для начала следует создать новый скрипт, дать ему понятное название и описание.

Раздел Параметры:
Параметр 1: obj, Перем/Корабль/Станция игрока, '[описание]'

Раздел Код:
001 $obj-> ignore collisions: 1

Функцию ignore collisions можно найти в разделе «Общие команды для объектов» (почти в самом низу).

ignore collisions: 1 - включить неуязвимость
ignore collisions: 0 - отключить неуязвимость

После применения скрипта к кораблю на нем можно будет пролетать сквозь любые объекты, включая вражеские лазеры.

Примечание: при включенной неуязвимости невозможно пролетать врата обычным способом, без прыжкового двигателя. При пересечении врат скрипт следует отключать.
7. Bind скриптов на горячие клавиши
Для привязки скрипта к горячей клавише для начала требуется написать сам привязываемый скрипт определенным образом.
В этом скрипте не должно быть динамических переменных, в которых требутеся выбор типа корабля, количества, расы и т.д. То есть в разделе Параметры не должно быть ничего. При каждом вызове скрипт не должен делать разные вещи, не должен быть динамичным (например, идеально подходит скрипт из раздела "6. Неуязвимый корабль, станция"). Если при помощи бинда вызвать скрипт с переменными, то они будут проигнорированы, и код работать не будет.

После этого можно записать скрипт, который будет отвечать за сам Bind (привязку клавиш).

Запись скрипта бинда клавиш
Нужно создать новый скрипт с понятным названием и пустым полем Параметры.
Код:
001 $bind-> register hotkey '[Описание клавиши]' to call script '[название скрипта]'
  • register hotkey - можно найти в разделе «Общие команды».
  • описание клавиши - здесь следует указать произвольный текст, желательно осмысленный и понятный. Это описание будет отображаться при назначении горячей клавиши для скрипта.
  • название скрипта → навести курсор на вопросительный знак → нажать [Enter] и выбрать созданный заранее скрипт, который необходимо вызывать с помощью горячей клавиши.

Использование скрипта бинда клавиш
Созданный скрипт необходимо запустить (в списке скриптов навести курсор и нажать [R][Enter][Enter]), затем перейти в главное меню (слева) → Управление → перейти на вкладку Интерфейс → в разделе Дополнительно (в самом низу) найти строку, которая была задана как описание клавиши и назначить любую незанятую клавишу.
После этого, если нажать на заданную клавишу - произойдет выполнение скрипта.

Примечания:
  • После назначения клавиши желательно сохраниться, чтобы каждый раз при входе в игру не биндить скрипт на клавишу снова.
  • Чтобы забиндить несколько скриптов на клавиши, необходимо создать такое же количество скриптов для бинда. 1 клавиша = 1 скрипт.
8. Мгновенное восстановление энергии лазеров и щитов
С помощью этого скрипта можно мгновенно восстановить всю энергию лазеров и щитов нажатием одной клавиши.

Создание скрипта
Создать новый скрипт с произвольным названием. Раздел Параметры оставить пустым.

Раздел Код:
001 $laser= [PLAYERSHIP]-> get maximum laser strength 002 [PLAYERSHIP]-> set laser energy to $laser 003 $shield= [PLAYERSHIP]-> get maximum shield strength 004 [PLAYERSHIP]-> set current shield strength to $shield 005 return null
Комментарии:
  • команда return null последней строкой добавляется автоматически после сохранения скрипта и должна быть всегда в самом низу;
  • все, что начинается со знака доллара ($) - это переменные. Если их нет в списке - нужно выбрать пункт <Переменная> и ввести имя переменной, такое же как указано выше.

Где искать необходимые функции:
  • get maximum laser strength → в разделе «Общие команды для объектов»
  • set laser energy to → «Общие команды для объектов» → «Информация об оружии»
  • get maximum shield strength → «Общие команды для объектов»
  • set current shield strength to → «Общие команды для объектов»

За что отвечают эти фукнции:
  • 001 - узнать максимально возможное количество энергии лазеров для текущего корабля игрока и записать это значение в переменную $laser
  • 002 - задать кораблю количество энергии лазеров в $laser единиц.
  • 003 - узнать максимально возможное количество энергии щитов для корабля игрока и записать это значение в переменную $shield
  • 004 - задать кораблю количество энергии щитов в $shield единиц.

Как привязать скрипт к одной из клавиш клавиатуры можно узнать в разделе "7. Bind скриптов на горячие клавиши".
9. Создание врат
С помощью данного скрипта можно построить неограниченное количество звездных врат в одном секторе и там самым соединить самые отдаленные сектора галактики - сделать какой-то сектор центром галактики, через который будут проходить все торговые пути.

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

Создание скрипта
Необходимо создать новый скрипт с произвольным названием(aCustom.NewGate) и настроить аналогично скриншоту (пустые строки не обязательны):

001 $gate1PosX= $gate1Pos[0] 002 $gate1PosY= $gate1Pos[1] 003 $gate1PosZ= $gate1Pos[2] 004 005 $gate2PosX= $gate2Pos[0] 006 $gate2PosY= $gate2Pos[1] 007 $gate2PosZ= $gate2Pos[2] 008 009 $sector1= $gate1Pos[3] 010 $sector1X= $sector1 -> get universe x index 011 $sector1Y= $sector1 -> get universe y index 012 013 $sector2= $gate2Pos[3] 014 $sector2X= $sector2 -> get universe x index 015 $sector2Y= $sector2 -> get universe y index 016 017 $gate1= create gate: type=9 addto= $sector1 gateid= 5 dstsecx= $sector2x dstsecy= $sector2Y dstgateid= 5 x= $gate1PosX y= $gate1Posy z= $gate1Posz 018 019 $gate2= create gate: type=9 addto= $sector2 gateid= 5 dstsecx= $sector1X dstsecy= $sector1Y dstgateid= 5 x= $gate2PosX y= $gate2PosY 2= $gate2PosZ 020 return null
Комментарии:
  • команда return null последней строкой добавляется автоматически после сохранения скрипта и должна быть всегда в самом низу;
  • все, что начинается со знака доллара ($) - это переменные. Если их нет в списке - нужно выбрать пункт <Переменная> и ввести имя переменной, такое же как указано выше.

Где искать необходимые функции:
  • строки 001-007, 009, 013 → «Общие команды» → «Массивы» → <Возвр/IF><Перем/Массив>[<Перем/Число>]
  • 010, 011, 014, 015 → «Команды секторов и Галактики»
  • 017, 019 → «Общие команды для объектов» → «Создание объектов»

Запуск скрипта
  1. В списке скриптов навести курсор на созданный скрипт (aCustom.NewGate) и нажать [R][Enter][Enter].
  2. «Выбрать положение сектора» → выбрать сектор и нажать [Enter] → используя клавиши на цифровой клавиатуре 2/4/6/8 и клавишу [Insert] (для переключения плоскости карты) указать место для размещения первых врат → нажать [Enter].
  3. Повторить предыдущий пункт, чтобы выбрать сектор и место для вторых врат.

Примечания
  • В одном секторе можно создать неограниченное количество врат;
  • Все созданные врата «смотрят» на юг и повернуть их нельзя никак (можно повернуть любой объект, но только не врата);
  • Если в одном секторе создано несколько врат, то все корабли будут прилетать из последних созданных, а все другие будут использоваться только для отправления (это можно исправить, но код увеличится в несколько раз);
  • При создании нескольких врат в одном секторе необходимо оставить между ними побольше места (минимум 10 км.), чтобы не было столкновений между кораблями.

Удаление созданных врат
Этот скрипт предназначен для удаления пары врат. При удалении одних врат вторые будут удалены автоматически.

Необходимо создать новый скрипт с произвольным названием.
Параметр: $obj, Перем/Врата, 'любое описание'
Код:
001 $obj -> destruct: show on explosion= 1
Функцию можно найти в разделе «Общие параметры для объектов».

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

Важно!
При удалении стандартных врат последствия могут быть непредсказуемыми. Восстановить (создать) стандартные намного сложнее и сделать это с помощью написанного выше скрипта не удастся.
10. Абордаж горячей клавишей
С помощью данного скрипта можно отправить абордажную команду для захвата вражеского корабля одной клавишей.

Создание скрипта
Необходимо создать новый скрипт с понятным названием и описанием и заполнить раздел Код:

001 $target= get player tracking aim 002 $marine= [PLAYERSHIP] -> get marines array 003 $obj= [PLAYERSHIP] -> send marines to board ship: $target marines= $marine 004 005 * astronaut max speed 28 -> 308 006 $sector=[PLAYERSHIP] -> get sector 007 $arrAllAstronaut= find ship: sector= $sector class or type= Астронавт race= null flags= [Find.Multiple] refobi= null maxdist= null maxnum= 50 refpos= null 008 009 $count= size of array $arrAllAstronaut 010 while $count ... 011 dec $count= 012 $astronaut= $arrAllAstronaut[$count] 013 = $astronaut -> install 200 units of Форсаж двигателя 014 $astronaut -> set ship speed to 1000 015 end 016 017 return null
Комментарии:
  • команда return null последней строкой добавляется автоматически после сохранения скрипта и должна быть всегда в самом низу;
  • все, что начинается со знака доллара ($) - это переменные. Если их нет в списке - нужно выбрать пункт <Переменная> и ввести имя переменной, такое же как указано выше.

Где искать нужные функции:
  • 001 → «Команды автопилота»
  • 002 → «Торговые команды» → «Пассажиры»
  • 003 → «Команды автопилота»
  • 005 → комментарий, никак не влияет на скрипт
  • 006 → «Общие команды для объектов»
  • 007 → «Команды секторов и Галактики»
    class or type= → раздел «Ввод скрипта» → «Выбрать класс объекта» → Астронавт
    flags= → раздел «Константы» → «Выбрать константу» → Find.Multiple
  • 009 → «Общие команды» → «Массивы»
  • 010 → «Общие команды» → <Возвр/IF><Выражение> → while
  • 011 → «Общие команды» → dec <ВозврПерем> =
  • 012 → «Общие команды» → «Массивы» → <Возвр/IF><Перем/Массив>[<Перем/Число>]
  • 013 → «Торговые команды» → <Возвр/IF><РефрерОбъекта> instal <Перем/Число> units of <Перем/Товар> → раздел «Ввод скрипта» → <не возвращает значение>
  • 014 → «Общие команды для объектов»
  • 015 → «Общие команды» → «Управление исполнением цикла» → end conditional

Примечания:
  • Раздел Параметры должен быть пустым;
  • Все должно быть точно так как на скриншоте, по-другому скрипт не заработает;
  • Пустые строчки не обязательны;
  • Все строки в диапазоне 004-016 - не обязательны и предназначены только для увеличения максимальной скорости всех десантников со стандартных 28 до 308 м/с.

Для запуска скрипта его необходимо выбрать и нажать [R][ENTER][ENTER].
Чтобы забиндить скрипт на горячую клавишу необходимо воспользоваться инструкцией из раздела "7. Bind скриптов на горячие клавиши".
11. Добавление десантников
Данный скрипт добавляет на корабль игрока десантников разного уровня прокачки навыков. При замене одного значения в скрипте можно добавить десантников с максимальным уровнем по всем специализациям.

Количество создаваемых десантников зависит количества свободного места под десантников. К примеру, если в корабле уже есть 3 десантника из 8 возможных, то будет создано еще 5.

Так как этот скрипт не имеет Параметров, его можно повесить на горячую клавишу (раздел "7. Bind скриптов на горячие клавиши").

Создание скрипта
Необходимо создать новый скрипт с понятным названием и описанием и заполнить раздел Код:

001 $count= [PLAYERSHIP] -> free space for marines 002 while $count ... 003 004 $min= 1 ... 005 $max= 101 ... 006 007 $fighting= random value from $min to $max - 1 008 $hacking= random value from $min to $max - 1 009 $mechanical= random value from $min to $max - 1 010 $engineering= random value from $min to $max - 1 011 012 $passenger= [PLAYERSHIP] -> create passenger in ship: name= null race= null voice= null face= null 013 $passenger -> create marine from passenger: fighting= $fighting hacking= $hacking mechanical= $mechanical engineering= $engineering 014 015 dec $count= 016 end 017 018 return null
Комментарии:
  • команда return null последней строкой добавляется автоматически после сохранения скрипта и должна быть всегда в самом низу;
  • все, что начинается со знака доллара ($) - это переменные. Если их нет в списке - нужно выбрать пункт <Переменная> и ввести имя переменной, такое же как указано выше.

Где найти необходимые функции:
  • 001 → Торговые команды → Пассажиры
  • 002 → Общие команды → <Возвр/IF><Выражение> → while
  • 004-005 → Общие команды → <Возвр/IF><Выражение> → <Переменная>
  • 007-010 → Общие команды
  • 012 → Торговые команды» → Пассажиры
    • Если значение параметров name, race, voice и face установлено в null, то все десантники будут иметь произвольное имя, расу, голос и внешний вид. Установить в null можно только часть параметров, выбрав значения для оставльных.
    • name= → имя создаваемых десантников. Если задать этот параметр в данном скрипте, то имена у всех десантников будут одинаковы.
    • race= - раса десантников. Указать можно любую, но следует иметь в виду, что некоторые расы не пойдут на абордаж корабля другой или своей расы.
  • 013 → Торговые команды» → Пассажиры
  • 015 → Общие команды → dec <ВозврПерем> =
  • 016 → Общие команды → Управление исполнением цикла → end conditional

Для запуска скрипта его необходимо выбрать и нажать [R][ENTER][ENTER]. Скрипт сработает только если его запустить на корабле, который может перевозить десантников и имеет свободные места.

Максимальный уровень десантников
Если оригинальный скрипт работает корректно, то можно поменять значение в строке 004 с 1 на 101. Тогда после запуска при наличии свободных мест скрипт будет добавлять полностью обученных по всем специальностям десантников.
12. Изменение репутации
Скрипт позволяет увеличить, либо уменьшить репутацию между двумя расами, либо между одной из рас и Игроком.

Запись скрипта
Параметры:
Параметр 1: race1, Перем/Раса, 'race1'
Параметр 2: race2, Перем/Раса, 'race2'
Параметр 3: rating, Число, 'rating'

Код:
001 set notoriety of $race1 -> $race2 to $rating points 002 set notoriety of $race2 -> $race1 to $rating points 003 return null

Комментарии:
  • команда return null последней строкой добавляется автоматически после сохранения скрипта и должна быть всегда в самом низу;
  • функцию со строк 001 и 002 можно найти в разделе Общие команды для объектов.

Поссорить или помирить 2 расы
  1. Выделить скрипт в списке скриптов и нажать [R][Enter][Enter];
  2. race1 → выбрать из списка первую расу, репутацию для которой требуется изменить и нажать [Enter].
  3. race2 → выбрать из списка вторую расу, репутацию с которой требуется изменить и нажать [Enter].
  4. rating → ввести без пробелов количество очков репутации (положительное число - мир, отрицательное - война) и нажать [Enter].

Изменить репутацию Игрока с одной из рас
  1. Выделить скрипт в списке скриптов и нажать [R][Enter][Enter];
  2. race1 → выбрать из списка [PLAYER] и нажать [Enter].
  3. race2 → выбрать из списка расу, репутацию с которой требуется изменить и нажать [Enter].
  4. rating → ввести без пробелов количество очков репутации (приблизительная таблица ниже) и нажать [Enter].
рейтинг
очки (для скрипта)
-5
-1 000 000
-4
-100 000
-3
-10 000
-2
-1 000
-1
-10
+1
10
+2
33
+3
100
+4
333
+5
1 000
+6
3 333
+7
10 000
+8
33 333
+9
100 000
+10
333 333 333
Количество очков для всех рас одинаково.
13. Открытие всех секторов, станций и астероидов
Данный скрипт открывает все присутствующие в игре сектора, станции и астероиды. Астероиды только открываются, но не сканируются на наличие минералов.

Необходимо создать новый скрипт с понятным названием и описанием и заполнить раздел Код:

001 $maxX= get max sectors in x direction 002 while $maxX >= 0 ... 003 $maxY= get max sectors in y direction 004 while $maxY >= 0 ... 005 $sector= get sector from universe index: x= $maxX, y= $maxY 006 if sector 007 $sector -> set known status to 1 008 009 $arrAllObj= $sector -> get all stationary objects: include asteroids= [TRUE] 010 $numObj= size of array $arrAllObj 011 while $numObj ... 012 dec $numObj= 013 $obj= $arrAllObj[$numObj] 014 $obj -> set known status to 1 015 end 016 017 end 018 dec $maxY= 019 end 020 dec $maxX= 021 end 022 return null
Комментарии:
  • команда return null последней строкой добавляется автоматически после сохранения скрипта и должна быть всегда в самом низу;
  • все, что начинается со знака доллара ($) - это переменные. Если их нет в списке - нужно выбрать пункт <Переменная> и ввести имя переменной, такое же как указано выше.

Где искать нужные функции:
  • 001, 003, 005, 009 → «Команды секторов и Галактики»
  • 002, 004, 006, 011 → «Общие команды» → <Возвр/IF><Выражение>
  • 007, 014 → «Общие команды для объектов»
  • 010 → «Общие команды» → «Массивы»
  • 012, 018, 020 → «Общие команды» → dec <ВозврПерем> =
  • 013 → «Общие команды» → «Массивы» → <Возвр/IF><Перем/Массив>[<Перем/Число>]
  • 015, 017, 019, 021 → «Общие команды» → «Управление исполнением цикла» → end conditional

Для запуска скрипта его необходимо выбрать и нажать [R][ENTER][ENTER].
14. Создание астероидов
Данный скрипт позволяет создавать астероиды в выбранном месте выбранного вида и насыщенности.

Создание скрипта
Необходимо создать новый скрипт с понятным названием и описанием и заполнить раздел Код:

Параметры:
  • astPos, Перем/Положение сектора, 'astPos'
  • type, Число, 'type'
  • intensity, Число, 'intensity'
001 $astPosX= $astPos[0] 002 $astPosY= $astPos[1] 003 $astPosZ= $astPos[2] 004 $sector= $astPos[3] 005 006 $ast= create asteroid: type= null addto= $sector resource= $type yield= $intensty x= $astPosX y= $astPosY z= $astPosZ 007 $ast -> set asteroid scanned to 1 008 return null
Комментарии:
  • команда return null последней строкой добавляется автоматически после сохранения скрипта и должна быть всегда в самом низу;
  • все, что начинается со знака доллара ($) - это переменные. Если их нет в списке - нужно выбрать пункт <Переменная> и ввести имя переменной, такое же как указано выше.

Где искать нужные функции:
  1. 001-004 → «Общие команды» → «Массивы» → <Возвр/IF><Перем/Массив>[<Перем/Число>]
  2. 006 → «Общие команды для объектов» → «Создание объектов»
  3. 007 → «Общие команды для объектов»

Запуск скрипта
  1. Выбрать скрипт в списке и нажать [R][ENTER][ENTER];
  2. «Выбрать положение сектора». Выбрать необходимый сектор и перейти на цифровую клавиатуру. С помощью клавиш перемещения (по-умолчанию - 2,4,6,8) и клавиши смены плоскости (Insert) указать, где именно требуется создать астероид и нажать [Enter].
  3. «type» → минерал:
    • 0 - руда
    • 1 - кремний
    • 2 - нивидиум
    • 3 - лед
  4. «intensity» → насыщенность. Чем больше, тем эффективнее будет добываться минерал.
15. Автоматический ремонт кораблей внутри ангара
После запуска скрипта будет производиться ремонт кораблей в ангаре корабля Игрока.

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

Примечания:
  • ремонт кораблей происходит непрерывно, все корабли в ангаре каждую игровую минуту времени восстанавливают 1% обшивки корпуса (оба значения можно изменить);
  • класс корабля-носителя, который имеет ангар и внутри которого будет осуществляться ремонт, не имеет значения;
  • после первого запуска скрипта ремонт будет производиться непрерывно на всех кораблях принадлежащих Игроку и имеющих ангар и корабли внутри;
  • для работы скрипта никакие ресурсы (батареи, кредиты и прочее) не нужны;
  • действие скрипта не распространяется на корабли NPC;

Остановка выполнения скрипта:
  1. зайти в редактор скриптов ([Shift] + [C], [S]);
  2. найти пункт меню Global Script Tasks - список всех действующих на данный момент скриптов;
  3. найти скрипт по названию;
  4. выделить строку с названием скрипта и нажать [Del] - скрипт остановлен.

Внимание! Перед повторным запуском скрипта необходимо остановить выполнение предыдущего, иначе один и тот же скрипт будет запущен 2 и более раза.


Перед началом записи скрипта рекомендуется сделать следующее (для проверки на ошибки):
  1. Создать 1 корабль класса М1 или любой другой, который имеет ангар.
  2. Создать несколько кораблей, которые могут стыковаться с М1 кораблем и сбить им немного обшивки корпуса.
  3. Приказать им залететь в ангар корабля М1.
  4. Подождать пока все корабли окажутся в ангаре.
  5. Сохранить игру (новое сохранение).
  6. Приступить к написанию скрипта.

После записи и перед запуском кода рекомендуется закомментировать строки 007 и 031, чтобы не останавливать скрипт каждый раз в случае нахождения ошибки. Если в ходе проверки все заработает как надо - можно раскомментировать строки 007 и 031, запустить скрипт еще раз и сохранить игру. После этого скрипт будет работать перманентно.
  • [>] - закомментировать строку
  • [<] - раскомментировать строку
5 Comments
D4nD4nce  [author] 20 Feb @ 4:04am 
@Temich_P
логично предположить, что должно быть такое. Мне лень сейчас ставить игру и искать команды, но можно поискать в разделе "Общие команды для объектов" что-то вроде "set player rank to". А дальше по аналогии со статьей.
После записи и сохранения 2-3х скриптов по инструкции отсюда в любом случае становится понятен общий принцип, поэтому самому найти нужную команду и составить новый скрипт уже будет не сложно.
Temich_P 19 Feb @ 3:48pm 
Круто! Лучшее описание что я видел, респект! А изменить боевой/торговый ранг таким способом можно?
D4nD4nce  [author] 12 Oct, 2024 @ 5:57am 
@Morte,
Есть только инструкции такого типа:
https://www.elite-games.ru/x3/cplx_construct.shtml

Написать скрипт для такого - в теории можно, но готовых решений я не видел.
Morte 11 Oct, 2024 @ 11:40am 
Есть ли возможность создать скрипт для формирования красивого производственного комплекса без танцев с бубном?
Мир 25 Dec, 2023 @ 4:31am 
Спасибо