ВНИМАНИЕ! Наша конференция посвящена космической тематике и компьютерным играм. Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!
Загрузка вложений временно недоступна. Мы работаем над восстановлением функциональности.
|
| » X3TC Моддинг: obj-файлы и маленькие утилитки | страница 12 |
|
|
|
|
Канал X3: Terran Conflict »
Модовый и скриптовый отсек X3: Terran Conflict: «X3TC Моддинг: obj-файлы и маленькие утилитки» |
|
|
|
Whiskas
137 EGP
  Рейтинг канала: 3(36) Репутация: 5 Сообщения: 139
Зарегистрирован: 28.04.2011
 |
|
| DNA78 : |
| Whiskas T-Mech : |
|
В аттаче для 3.2 готовый файл чисто на посмотреть + asm.
|
Хотелось бы полюбопытствовать, а для чего были изменены следующие строки:
"%d %s/%sВІ" на "%d %s/%s²"
"В«" и "В»" на "«" и "»"
"%dВ°" на "%d°"
|
Не знаю откуда взялось, но у меня дизасм в порядке только что проверял. AP-версия тоже.
Последний раз редактировалось: Whiskas (09:38 28-10-2018), всего редактировалось 1 раз |
|
|
|
DNA78
435 EGP
     Рейтинг канала: 9(1069) Репутация: 75 Сообщения: 1297 Откуда: Кыргызстан Зарегистрирован: 12.11.2008
 |
|
| Whiskas T-Mech : |
|
Не знаю откуда взялось, но у меня дизасм в порядке только что проверял. AP-версия тоже.
|
Свой модернизированный x3story.obj(тот который здесь выложен) файл попробуй дизассемблировать.
_________________ Очевидное-невероятное
Последний раз редактировалось: DNA78 (14:10 28-10-2018), всего редактировалось 1 раз |
|
|
|
Whiskas
137 EGP
  Рейтинг канала: 3(36) Репутация: 5 Сообщения: 139
Зарегистрирован: 28.04.2011
 |
|
| DNA78 : |
| Whiskas T-Mech : |
|
Не знаю откуда взялось, но у меня дизасм в порядке только что проверял. AP-версия тоже.
|
Свой модернизированный x3story.obj(тот который здесь выложен) файл попробуй дизассемблировать.
|
Это из X3AP строки! Наверно его против TC сравниваешь ненароком Напугал.
|
|
|
|
DIMOSUS.X
998 EGP
        Рейтинг канала: 8(921) Репутация: 188 Сообщения: 3253 Откуда: Vilnius/Minsk Зарегистрирован: 06.08.2008
 |
|
18 лет спустя создания темы...
https://github.com/DIMOSUS/x3kc
Тул — компилятор/декомпилятор obj-скриптов (KC) в Си-подобный язык и обратно. Декомпиляция с последующей компиляцией даёт байт в байт тот же obj, что был на входе — проверено на всех версиях TC и AP. В отличие от известных мне инструментов, у него есть база имён: классов, полей, параметров и локальных переменных, плюс описания методов и тысячи комментариев в коде (имена функций в obj были и раньше). Ещё он умеет декодировать и собирать обратно обычные MSCI-скрипты.
Как это было написано — чистый, можно сказать кристаллизованный, вайбкод. Exe игры разобран по винтикам, проанализирована виртуальная машина obj-скриптов, вытянуты все опкоды. Разобраны все обычные скрипты и тексты игры, на этой основе построена база знаний о функциях obj. Агенты прошерстили декомпилированные obj и сделали их вполне человекочитаемыми (имена расставлены агентами и вручную пока не вычитаны).
Из открытий: классический скриптовый движок (MSCI) — это надстройка над obj, написанная на самом obj, и MD тоже во многом живёт там. Exe — это движок (графика, физика, звук) и набор нативных функций, а игровая логика почти целиком сосредоточена в x3story.obj.
То есть открывается путь к модам, которые меняют саму корневую логику игры.
добавлено спустя 21 минуту:
Пример того, что выдает декомпиляция:
| Код: |
// Checks all conditions for boarding a target: marines available, target exists and is a ship of another owner,
// can be boarded, neither docked, same sector, within 1500 km plus ship sizes, shields low enough. Plays the
// failure voice (609 too far, 607 shields up) for the player. Returns 1/0.
function CheckValidBoardingTarget(target, speak) { // 0cefba
if (!CanWeBoard()) {
return;
}
if (!SE_ObjectExists(target) || !SE_IsClass(target, 2004)) {
return NotValidBoardingTargetVoice(speak, target);
}
if (owner == target.GetOwner()) {
return NotValidBoardingTargetVoice(speak, target);
}
if (!target.CanBeBoarded()) {
return NotValidBoardingTargetVoice(speak, target);
}
if (IsDocked() || target.IsDocked()) {
return NotValidBoardingTargetVoice(speak, target);
}
if (environment != target.GetEnvironment()) {
return NotValidBoardingTargetVoice(speak, target);
}
var distanceKm = GetDistance(target) / 500;
// distance in km (units / 500) must not exceed 1500 + half-sizes
if (distanceKm > 1500 + (this->GetSize() + target.GetSize()) / 500) {
if (speak && this == gPlayerShip) {
fork {
XAudio.SpeakWithPriority(13, 609, 99);
}
}
return 0;
}
if (!target.ShieldsReadyForBoarding(1)) {
if (speak && this == gPlayerShip) {
fork {
XAudio.SpeakWithPriority(13, 607, 99);
}
}
return 0;
}
return 1;
} |
_________________ Даже ежики ежиков могут с трудом,
Иначе бы ежики были кругом.
Последний раз редактировалось: DIMOSUS.X (10:44 26-10-2026), всего редактировалось 1 раз |
|
|
|
za4ot
612 EGP
     Рейтинг канала: 5(190) Репутация: 19 Сообщения: 3762 Откуда: Яма Изобилия Зарегистрирован: 08.08.2012
 |
|
Что-то на программистском языке...
_________________ Пираты - наше всё! |
|
|
|
|
|
|
|
|
Канал X3: Terran Conflict ->
Модовый и скриптовый отсек X3: Terran Conflict: «X3TC Моддинг: obj-файлы и маленькие утилитки» |
|
|
| К списку каналов | Наверх страницы |
Цитата не в тему: фсех расстрелять! Оставить только женщин и Надин! (требует Lisnick)
|
| » X3TC Моддинг: obj-файлы и маленькие утилитки | страница 12 |
|