|
|
|
Канал X Rebirth »
Модовый и скриптовый отсек X Rebirth: «Ковыряем новый движок (моддинг)» |
|
|
AlexYar 1874 EGP
Рейтинг канала: 5(187) Репутация: 324 Сообщения: 32008
Зарегистрирован: 26.10.2003 |
|
Через какие скрипты производится передача грузов между кораблями игрока?
Надо бы запретить второму кораблю запускать отстыковку после передачи груза, а то дебилизм какой-то наворотили егософт-овцы.
|
|
|
alexalsp 518 EGP
Рейтинг канала: 5(119) Репутация: 54 Сообщения: 4448
Зарегистрирован: 12.08.2014 |
|
Посмотри по миссиям файл
md\Upkeep.xml
Код: |
D:\Games\SteamGames\SteamApps\common\X Rebirth Tools\X\md\Upkeep.xml (1 hit)
Line 106: <create_mission associated="$Associated" cue="$MissionCue" name="{1004,20} + ' ' + http://EntityType.name" faction="faction.player" type="missiontype.upkeep_hirenpc" activate="false" abortable="false"/>
|
Я не ковырял , времени не было.
Попробуй поискать по ID страницы и строки , может где и всплывет что нужно.
По товару смотри aiscript папку
Последний раз редактировалось: alexalsp (15:12 07-05-2016), всего редактировалось 1 раз |
|
|
AlexYar 1874 EGP
Рейтинг канала: 5(187) Репутация: 324 Сообщения: 32008
Зарегистрирован: 26.10.2003 |
|
upkeep и upkeepmanagement я уже пофиксил, но проверок условий в реальном времени миссий я так и не нашёл там. Часть есть в RML_* по миссиям ещё, но проверок тоже нет.
С фиксами миссии некоторые можно сбросить прямо в игре. Например, миссии "припишите торговый/добывающий корабль" сбрасываются при приписывании и отписывании любого корабля к станции/складу. По-идее, запуск проверки должен производить AssignToCommander, но там ничего нет (есть только start_default_script).
alexalsp : |
По товару смотри aiscript папку
|
Что, прямо-таки всю?
Редактор бы скриптов, чтобы хмл-хню всю вырезал и показывал скрипты в читабельном виде..
|
|
|
alexalsp 518 EGP
Рейтинг канала: 5(119) Репутация: 54 Сообщения: 4448
Зарегистрирован: 12.08.2014 |
|
Зачем всю ))
Возможно только
trade.*.xml
Я предполагаю, лучше чем ни чего , тем более все равно ни кто не ответил ))
А так есть повод ))
_________________ CMDR: Fallout(EG)
ED - если застряли: https://discord.gg/w56kPWH |
|
|
VASILICH 65 EGP
Репутация: 2 Сообщения: 152 Откуда: г.Калуга Зарегистрирован: 19.05.2006 |
|
Ребята, а с какого расстояния начинают притягиваться контейнеры со сбитых кораблей, и где - если это известно - прописан данный параметр?
_________________ Я как тот Герасим, на всю херню согласен. Мне что пулемёт, что водка, лишь бы с ног валило. |
|
|
Andy_MB 130 EGP
Рейтинг канала: 4(83) Репутация: 10 Сообщения: 572 Откуда: Край вселенной, Квазар-1 Зарегистрирован: 13.07.2015 |
|
Хочу задействовать горячую клавишу (Shift+J) для прыжка.
Нашел библиотеку с кейкодами (inputmap.xml)
надо в неё корректно добавить строчку.
Кто знает как подскажите плиз, а то я с diff до конца не разобрался.
надо вставить сюда:
Cкрытый текст (кликните здесь для просмотра)
<inputmap version="52" id="1">
<config>
<param name="invert_steering_yaw" value="false"/>
...
<param name="deadzone" value="25"/>
</config>
<!-- keyboard -->
<!-- input actions -->
<action id="INPUT_ACTION_TARGET_NEXT_ENEMY" source="INPUT_SOURCE_KEYBOARD" removed="true" sinceversion="3" />
...
в это место например
...
<action id="INPUT_ACTION_TARGET_NEXT_TARGET" source="INPUT_SOURCE_KEYBOARD" removed="true" sinceversion="3" />
...
</inputmap>
|
такую строку:
Cкрытый текст (кликните здесь для просмотра)
<action id="INPUT_ACTION_OPEN_PLAYER_AMB_JUMPDRIVE" source="INPUT_SOURCE_KEYBOARD" code="INPUT_KEYCODE_J_SHIFT" sinceversion="52" />
Где синсвершн указывает на текущую версию библиотеки из версии игры 4.0(Dat09)
|
должно получиться что-то типа:
Cкрытый текст (кликните здесь для просмотра)
<?xml version="1.0" encoding="utf-8"?>
<diff xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<add sel="/inputmap">
<action id="INPUT_ACTION_OPEN_PLAYER_AMB_JUMPDRIVE" source="INPUT_SOURCE_KEYBOARD" code="INPUT_KEYCODE_J_SHIFT" sinceversion="52" />
</add>
</diff>
|
Я правильно мыслю или нет?
|
|
|
Andy_MB 130 EGP
Рейтинг канала: 4(83) Репутация: 10 Сообщения: 572 Откуда: Край вселенной, Квазар-1 Зарегистрирован: 13.07.2015 |
|
с diff разобрался..
Написал скрипт, позволяющий прыгнуть (используя экспериментальный Дж.Драйв) не только к маяку и вратам, но и к станции и к любому кораблику.
Уже неделю ломаю голову как добавить "хоткей". На эгософтовском форуме не нашел ответов на эту тему. Одни только вопросы. (((
Предлагаю устроить "мозговой штурм"
Вопросы:
1. Как добавить кнопку в меню "Управление -> Основное управление"?
2. Как отследить нажатие именно этой (добавленной) кнопки?
2.1 через XML
2.2 через LUA
Накопленный материал:
inputmap.xml - файл, содержит настройки клавиш для определения действия. По умолчанию берется из C:\Users\..\Documents\Egosoft\X Rebirth\..\
Если его стерли, то из DAT09\libraries\
Например открыть инвентарь игрока выглядит так:
<action id="INPUT_ACTION_OPEN_PLAYER_INVENTORY_MENU" source="INPUT_SOURCE_KEYBOARD" code="INPUT_KEYCODE_I_SHIFT" sinceversion="26" />
Есть предположение, что ID этих ACTION(s) где-то жёстко привязаны к циферкам, по-тому, что вызовы action происходят не по буквенному ID!
gameoptions.lua - меню настроек управления.
здесь можно определить связь action/state/range с текстовыми кодовыми страницами (t)
Cкрытый текст (кликните здесь для просмотра)
menu.controls = { ["actions"] = GetInputActionMap(), ["states"] = GetInputStateMap(), ["ranges"] = GetInputRangeMap() }
menu.controltextpage = { ["actions"] = 1005, ["states"] = 1006, ["ranges"] = 1007 }
menu.forbiddenKeys = { [1] = true, [211] = true }
menu.forbiddenMouseButtons = { [1] = true, [2] = true, [4] = true, [6] = true, [8] = true, [10] = true }
menu.cheatControls = { ["actions"] = { [127] = true }, ["states"] = {}, ["ranges"] = {}, ["functions"] = {} }
-- Define input functions here (serveral actions, states or ranges which can only be changed at the same time)
-- entry: [keycode] = { ["actions"] = { action1, action2, ... }, ["states"] = {}, ["name"] = name for display }
|
Пример меню настройки блока клавиш в подменю "Разное"
Cкрытый текст (кликните здесь для просмотра)
{
["title"] = ReadText(1001, 2664), --Разное
["mapable"] = true,
{ "functions", 10 },
{ "actions", 167 },
{ "actions", 168, nil, ReadText(1026, 2604) }, --Выбрать ближайший объект в качестве цели.
{ "actions", 169 },
{ "actions", 170 },
{ "actions", 213 },
{ "actions", 214 },
{ "actions", 177, nil, ReadText(1026, 2608) }, --Вкл./выкл. режима наложения данных радара.
{ "actions", 178, nil, ReadText(1026, 2609) }, --Переключение радара между режимами навигации и боя.
{ "functions", 9 }, -- Автопилот Вкл./выкл.
{ "actions", 225, nil, ReadText(1026, 2610) }, --Вкл./выкл. СУВ. При включении СУВ время течет намного быстрее.
{ "actions", 223, nil, ReadText(1026, 2611) }, --Скрывает или показывает элементы HUD.
{ "actions", 117 }, -- Пауза
{ "actions", 120 }, -- Снимок Экрана
{ "actions", 219 }, -- включить/выкл звук
{ "states", 80, nil, ReadText(1026, 2612) } --Активирует контейнер-магнит, притягивающий имеющиеся поблизости контейнеры к вашему кораблю.
},
в данном случае { "actions", 219 } это не просто ссылка на кодовую страницу 1005,219, а что-то большее (тут я пока не догоняю) Иначе можно было просто написать ReadText(1005,219)
|
Возможно нужно будет менять t-файлы эгософта (страница 1005), что не очень разумно, так как после выхода нового патча все сместится!
Еще пример вызова меню карты по хоткей (menu_map.lua) Тут используются текстовые ID из inputmap.xml
Cкрытый текст (кликните здесь для просмотра)
function menu.hotkey(action)
local rowdata = Helper.currentTableRowData
if rowdata ~= "back" then
if action == "INPUT_ACTION_ADDON_DETAILMONITOR_G" then
if rowdata and rowdata ~= "back" then
if menu.componenttype == "galaxy" then
local sectors = GetSectors(rowdata[2])
if sectors[1] then
local zones = GetZones(sectors[1])
MovePlayerToZone(zones[1])
end
elseif menu.componenttype == "cluster" then
local zones = GetZones(rowdata[2])
MovePlayerToZone(zones[1])
elseif menu.componenttype == "sector" then
MovePlayerToZone(rowdata[2])
elseif menu.componenttype == "zone" then
MovePlayerToZone(ConvertStringTo64Bit(tostring(menu.component)))
end
...
|
В общем буду оч. признателен тем кто откликнется!
|
|
|
Andy_MB 130 EGP
Рейтинг канала: 4(83) Репутация: 10 Сообщения: 572 Откуда: Край вселенной, Квазар-1 Зарегистрирован: 13.07.2015 |
|
Я попробовал добавить какую-нибудь строчку-кнопку в меню настроек хоткей, аналогично добавлению кнопки в мэйн меню, но ничего не получилось.
Попробовал сделать через новые 10.cat / dat заменой всего файла - тоже болт.
На форуме эгософта UniTrader пишет, что добавление хоткеев не возможно в Хребте.
Но почему, если с другим файлом изменения прокатывают, а тут вообще никак не подступишься!?
... Ладно, если не получается кнопку в меню добавить, может кто знает как отловить событие нажатия определенной клавиши (не прописаной в меню управления)
...Хм, не сработало даже когда я полностью заменил файл gameoptions.lua прямо в 09.dat (перепаковав весь архив целиком)
Последний раз редактировалось: Andy_MB (16:08 21-08-2016), всего редактировалось 1 раз |
|
|
Andy_MB 130 EGP
Рейтинг канала: 4(83) Репутация: 10 Сообщения: 572 Откуда: Край вселенной, Квазар-1 Зарегистрирован: 13.07.2015 |
|
Нашел другое решение. (через существующую хоткей - "открыть карту сектора")
Со скриптом сейчас можно экстренно прыгнуть по комбинации Shift+J -> 4 -> 4
(пока при условии, что в конечной зоне есть видимый объект (маяк/врата/станция или корабль)
Теперь чувствую себя как в X3TC с нормальным ПржДвиг. )
Кому надо, могу дать потестить.
А пока займусь прыжком в координаты x,y,z
|
|
|
Andy_MB 130 EGP
Рейтинг канала: 4(83) Репутация: 10 Сообщения: 572 Откуда: Край вселенной, Квазар-1 Зарегистрирован: 13.07.2015 |
|
Кто знает где найти список и описание функций движка! используемых в LUA?
Например:
InitPlayerPrimaryShipJump(ConvertIDTo64Bit(component.object))
выполняет прыжок корабля игрока к объекту (object)
ConvertIDTo64Bit преобразует "16-ти ричный" формат в "лонг флоат"
Нашел список функций - кому надо тут
Мод доделал прыгает в любую XYZ известных игроку секторов.
Без читов, на основе эксп.ПД и со списанием хладогента (если срочно надо прыгнуть)
Пока в процессе тестирования...
Последний раз редактировалось: Andy_MB (17:40 31-08-2016), всего редактировалось 2 раз(а) |
|
|
Andy_MB 130 EGP
Рейтинг канала: 4(83) Репутация: 10 Сообщения: 572 Откуда: Край вселенной, Квазар-1 Зарегистрирован: 13.07.2015 |
|
Как достать переменные, относящиеся к станции или менеджеру?
stock limit / can sell / can buy / для каждого ware .
...
1. я наковырял список товаров в трюме станции:
this.station.cargo.list
или список товаров станции для торговли
this.station.tradewares.list
2. как получить количество на складе тоже нашел:
this.station.cargo.{$current_ware}.count
3. как получить, что товар может быть куплен или продан? 'can sell'/ 'can buy' (пока сделал через оферов, будет работать если нет на складе одновременно выставленных оферов на покупку и продажу)
5. как узнать объем, места отведенного под конкретный товар 'stock limit' ? решил через target
Последний раз редактировалось: Andy_MB (22:44 02-10-2016), всего редактировалось 3 раз(а) |
|
|
Andy_MB 130 EGP
Рейтинг канала: 4(83) Репутация: 10 Сообщения: 572 Откуда: Край вселенной, Квазар-1 Зарегистрирован: 13.07.2015 |
|
Задачу по трансферу ставлю следующую:
1. выбрать транспорт из своих свободных и дать ему задачу трансфер со склада1 на склад2. (сделано)
2. создать списки товара (какие товары нужно забрать с 1/2 склада и что нужно привезти на 1/2 склад) с учетом свободного места /резервов и т.п. (ч/з склад сделать не получается, пробую ч/з оферов)
3. анализ списков и создание шопинглистов трансфера (не приступал, алгоритм анализа в голове пока грубо прикинул, с шопинглистами проблемм нет)
4 дальше запуск trade.performplayertraderun на выполнение шопинга туда и обратно. (сделано)
|
|
|
TailerD 50 EGP Репутация: 0 Сообщения: 3
Зарегистрирован: 13.02.2017 |
|
Может кто помочь нубу (только начал разбираться с моддингом)
Скачал ребес тулс, попробовал распаковать даты, не вышло (вылезла ошибка) потом нашел прогу XRCatExtract, распаковал таки все файлы, попробовал с помощью XRConvertersMain переделать units_size_l_kit_carrier_03.xml в dae формат, вылезла ошибка.
Обьясните нубу что не так делаю (есть подозрение что выбрал не тот файл).
|
|
|
alexalsp 518 EGP
Рейтинг канала: 5(119) Репутация: 54 Сообщения: 4448
Зарегистрирован: 12.08.2014 |
|
Цитата: |
Может кто помочь нубу (только начал разбираться с моддингом)
Скачал ребес тулс, попробовал распаковать даты, не вышло (вылезла ошибка) потом нашел прогу XRCatExtract, распаковал таки все файлы, попробовал с помощью XRConvertersMain переделать units_size_l_kit_carrier_03.xml в dae формат, вылезла ошибка.
Обьясните нубу что не так делаю (есть подозрение что выбрал не тот файл).
|
X Rebirth Tools - https://yadi.sk/d/l6-uq2Hdc337X
очень просто и всегда распаковывает за пару секунд. Главное понять как с ним работать
1) выбираешь рабочую папку
2) выбираешь cat файл
3) открываешь содержимое и распаковываешь
проще не бывает
Cкрытый текст (кликните здесь для просмотра)
|
Цитата: |
переделать units_size_l_kit_carrier_03.xml в dae формат
|
для чего ?
XRConvertersMain - если память не изменяет , а пути не должно содержаться пробелов и кирилицы .
как работать с утилитой и для чего она - http://forum.egosoft.com/viewtopic.php?t=360045
_________________ CMDR: Fallout(EG)
ED - если застряли: https://discord.gg/w56kPWH
Последний раз редактировалось: alexalsp (13:01 13-02-2017), всего редактировалось 4 раз(а) |
|
|
TailerD 50 EGP Репутация: 0 Сообщения: 3
Зарегистрирован: 13.02.2017 |
|
[quote="alexalsp"]
Цитата: |
Может кто помочь нубу (только начал разбираться с моддингом)
Скачал ребес тулс, попробовал распаковать даты, не вышло (вылезла ошибка) потом нашел прогу XRCatExtract, распаковал таки все файлы, попробовал с помощью XRConvertersMain переделать units_size_l_kit_carrier_03.xml в dae формат, вылезла ошибка.
Обьясните нубу что не так делаю (есть подозрение что выбрал не тот файл).
|
X Rebirth Tools - https://yadi.sk/d/l6-uq2Hdc337X
очень просто и всегда распаковывает за пару секунд. Главное понять как с ним работать
1) выбираешь рабочую папку
2) выбираешь cat файл
3) открываешь содержимое и распаковываешь
проще не бывает
Да в том то и дело что с катами я разобрался более менее, почитав форумы в том числе и по проге конвертеру (ссылка на форум егософт, незнаю как ее добавить). Я понял что для работы с моделями нужны дат файлы, сначала нужно распаковать все файлы игры, затем найти какой то основной файл xml который (то ли сшивает части моделей то ли ссылается на них) и запихнуть его в XRConvertersMain через командную строку (пример XRConvertersMain.exe importxmf "D: \ X Rebirth файлы" "D: \ X Rebirth файлы \ активы \ интерьеры \ ящики \ interiors_crates_size_l.xml"), запустить, он сконвертит файлы в формат dae (Преобразователь преобразует все .xmf-х, на которую ссылается .xml и поместить их в файл .dae рядом с .xml. машинный перевод)потом я смогу все это добро загрузить в 3ds Max 2017 - English.
Что по идее должно дать возможность изменять игровые модели.
Для чего мне это нужно - для начала хочу попробовать сделать административный модуль станции в котором будет сидеть управляющий персонал (дальше если получится абордаж станций и при желании полное уничтожение фракции - рассы). Мне кажется бредовым неубиваемость станций с инженером, поэтому я хочу запихнуть его в административный блок при уничтожении (абордаже) которого все внутри помрут или станции капец (при том полный) или она окажется под контролем игрока.
Ну и так, еще есть несколько десятков идей.
|
|
|
alexalsp 518 EGP
Рейтинг канала: 5(119) Репутация: 54 Сообщения: 4448
Зарегистрирован: 12.08.2014 |
|
Был мод который позваляет уничтожать станции , поищи в стиме , автор VanFin вроде . В ребезе нет смысла уничтожать станции , так как не с кем будет торговать
_________________ CMDR: Fallout(EG)
ED - если застряли: https://discord.gg/w56kPWH |
|
|
TailerD 50 EGP Репутация: 0 Сообщения: 3
Зарегистрирован: 13.02.2017 |
|
alexalsp : |
Был мод который позваляет уничтожать станции , поищи в стиме , автор VanFin вроде . В ребезе нет смысла уничтожать станции , так как не с кем будет торговать Улыбка
|
Еще одна серьезная проблема игры, нужна жизнеспособная экономика для всей игры, в том числе и для ксенонов. Играю сейчас в свободный старт, словами не описать как это уныло, словами нельзя передать разочарование от сюжетки. Мне не хватает серьезной войны с ксенонами как минимум.
При том что я вижу со своей точки "обзора" опыта и знаний, потенциал у этой болванки более чем хороший.
Со времен старых иксов накопилось более чем достаточно идей для создания глобал мода с сюжеткой, только для этого сначала нужно познать азы и принципы работы системы, попробую разобраться, может из этих идей и получится что стоящее.
Последний раз редактировалось: TailerD (23:07 13-02-2017), всего редактировалось 2 раз(а) |
|
|
alexalsp 518 EGP
Рейтинг канала: 5(119) Репутация: 54 Сообщения: 4448
Зарегистрирован: 12.08.2014 |
|
Хочешь войнв , вот тебе война . http://forum.egosoft.com/viewtopic.php?t=381043
_________________ CMDR: Fallout(EG)
ED - если застряли: https://discord.gg/w56kPWH |
|
|
alexalsp 518 EGP
Рейтинг канала: 5(119) Репутация: 54 Сообщения: 4448
Зарегистрирован: 12.08.2014 |
|
Кто знает , команды офицеру обороны типа
Код: |
<start_script object="$DefenceNPC" name="'fight.attack.object.capital'"/> |
нужна АТАКУЕТ ПРОТИВНИКА.
_________________ CMDR: Fallout(EG)
ED - если застряли: https://discord.gg/w56kPWH
Последний раз редактировалось: alexalsp (23:28 02-03-2017), всего редактировалось 1 раз |
|
|
alexalsp 518 EGP
Рейтинг канала: 5(119) Репутация: 54 Сообщения: 4448
Зарегистрирован: 12.08.2014 |
|
По ходу ни кто сюда не ходит ))
Но все же вопрос задам .))
К примеру , есть 2 мода , которые используют одинаковые файлы с одинаковым скриптом .
Как можно в первом моде отключить вайл второго мода , что бы применялся только один из первого мода . ?
Кто , как , где , покажите , напишите пример .
Если вообще такое можно .
_________________ CMDR: Fallout(EG)
ED - если застряли: https://discord.gg/w56kPWH |
|
|
|
|
|
Канал X Rebirth ->
Модовый и скриптовый отсек X Rebirth: «Ковыряем новый движок (моддинг)» |
|