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

Search | Снег | Conference rules | Album | Register | Pilots list | Profile | Log in to check your private messages | Log in

   Page 5 of 5
Go to page: Previous  1, 2, 3, 4, 5 | All pages
Поиск в этой теме:
Канал X-Tension/X-BTF: «Раскопки обжа на предмет юзабельных вещей»
KWON
 328 EGP


Рейтинг канала: 7(586)
: -12
Posts: 139
Location: Україна. Чигирин.
Joined: 24 Nov 2014
Здравствуйте.

Non wrote:
Пытаюсь пересобрать обж XT полностью, чтобы можно было пожоще откорректировать через XC.

Класс! Будем ждать хороших новостей.

Мои поздравления с Избранием достойного и талантливого Модератора! Модератор с дубиной

Решил поделиться достижениями Модератора Non Улыбка
благосклонно откликнувшемуся на мои прошения.

Я добавил Лаунчер для снижения возни с переименованиями и удалениями файлов.

Работа одного из примеров тестирования патчера:

1. Разместить в корне игры около исполняемого файла X-Tension.exe содержимое папки "xt_obj_patching":
- директории: "inc" и "tools";
- файлы: patch.cmd, cleanup.cmd, patch.asm, patch.xc;
- X_Launcher.exe.
2. Также Ваш 001.obj нужно из папки |L| поместить около патчера patch.cmd.
3. Запустить лаунчер.
Нажать кнопки [Start] и потом [Finish].
Он сам переименует и перебросит новые файлы в папку |L|.
4. Всё запускайте игру, тестируйте.
Ваши обжи не пострадают а будут переименованы в 001.obj.BackUp и 001.pch.BackUp

Там в файле "patch.xc" такие достижения которых нельзя достичь редактором карт:
- Добавление недоступных кораблей.
- Присваивание команд поведения кораблей.
- Кораблям Ксенона можно поставить расу Аргона и такие подобные изменения.
- В трюм корабля можно добавить любое содержимое.
- Разбрасывание мин и лазерных башен от вражеских рас в любой сектор.
- Запуск Большого количества НЛО по всей карте,
при их сбивании можно получать различные ракеты.

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

XT_obj_patching_Non_V2.7z
 Description:
Тестовые примеры редактирования карты от модератора Non, версия-2
 Filename:  XT_obj_patching_Non_V2.7z
 Filesize:  755.69 KB
 Downloaded:  53 Time(s)
xt_obj_patching_Non.7z
 Description:
Тестовые примеры редактирования карты от пилота Non
 Filename:  xt_obj_patching_Non.7z
 Filesize:  654.59 KB
 Downloaded:  62 Time(s)


Last edited by KWON on 21:48 25-02-2018; edited 1 time in total
    Posted: 15:01 01-02-2018   
Non
 790 EGP


Модератор
Рейтинг канала: 6(332)
: 237
Posts: 793

Joined: 27 Jun 2006
Вы вроде читали readme.html? Улыбка Там написано, чтобы patch.cmd автоматически закидывал обжи в папку с игрой после компиляции - нужно раскоментировать в patch.cmd строки копирования файлов и указать в начале папку с игрой. Подозрение.

 Что раскоментировать в patch.cmd???7 Ух ты!..    (кликните здесь для просмотра)
Code:
@echo off

REM ============================================================================
REM                 Укажите путь к папке с игрой по примеру
REM ============================================================================
set x_tension_path=D:\games\x-tension <--- Здесь указать папку с игрой


if exist patch.xc (
  tools\xc.exe patch.xc
)

if exist patch.asm (
  tools\xa_asm.exe patch.asm
)

if exist patch.cod (
  tools\gpth.exe patch.cod
  del patch.cod
)

if exist patchfix.obj (
  REM move "patchfix.obj" "%x_tension_path%\l\001.obj" <--- Вот эти
  REM move "patchfix.pch" "%x_tension_path%\l\001.pch" <--- Убрать REM
)


Лучше помогите разобраться с последними двумя ошибками.

SetLatency был оказывается нужен для сетевой игры, которая не реализована.
А Debug тоже в принципе не нужен для обычной игры.
Удалил соответствующий код и осталось только две ошибки в, как мне кажется, критичной для игры функции TMENU_QUESTS.SpecialUpdate()

Там два вызова локальной функции IsDisabled, которая видимо после нескольких обж-патчей от ES перестала существовать. Я её упоминания нигде не нашёл.

Код 0057 000043AF. И вот этого адреса перехода 000043AF нигде нет, только в двух местах вызова. Как это должно у них работать... Совсем запутался...

 Код функции TMENU_QUESTS.SpecialUpdate   (кликните здесь для просмотра)
Code:
;
; === SpecialUpdate =============================================
; procedure TMENU_QUESTS.SpecialUpdate();
;
                                 |      TMENU_QUESTS.SpecialUpdate:
0011D120: 0055 0012              |    0            setmem     18d ; 12h
0011D124: 0009                   |    0            push       0
0011D126: 0009                   |    1            push       0
0011D128: 0009                   |    2            push       0
0011D12A: 0009                   |    3            push       0
0011D12C: 0009                   |    4            push       0
0011D12E: 0009                   |    5            push       0
0011D130: 0009                   |    6            push       0
0011D132: 0006 000B              |    7            read       TMENU.me_FirstLineInfo ; [11d ; 0Bh]
0011D136: 0005 0001              |    8            push       SP[0] ; loc8
0011D13A: 0006 000D              |    9            read       TMENU.me_PageLinesInfo ; [13d ; 0Dh]
0011D13E: 003E                   |   10            add        SP[0],SP[1]
0011D140: 000A                   |    9            push       1
0011D142: 003F                   |   10            sub        SP[0],SP[1]
0011D144: 0005 0002              |    9            push       SP[1] ; loc8
0011D148: 0033 0008E8A7          |   10            if SP[0]=0 then jump L0011D156
0011D14E: 000A                   |    9            push       1
0011D150: 0031 0008E8A8          |   10            jump       L0011D158

0011D156: 0009                   |    9 L0011D156: push       0
0011D158: 003F                   |   10 L0011D158: sub        SP[0],SP[1]
0011D15A: 0005 0002              |    9            push       SP[1] ; loc8
0011D15E: 0009                   |   10            push       0
0011D160: 004B                   |   11            if SP[0]>=SP[1] then push 0 else push 1
0011D162: 0033 0008E8CD          |   10            if SP[0]=0 then jump L0011D1A2
0011D168: 0005 0003              |    9            push       SP[2] ; loc7
0011D16C: 0006 0040              |   10            read       TMENU.me_YSpacing ; [64d ; 40h]
0011D170: 0040                   |   11            mul        SP[0],SP[1]
0011D172: 0006 003F              |   10            read       TMENU.me_YOff ; [63d ; 3Fh]
0011D176: 003E                   |   11            add        SP[0],SP[1]
0011D178: 0006 0041              |   10            read       TMENU.me_XOff ; [65d ; 41h]
0011D17C: 0001 026D              |   11            push       621d ; 026Dh
0011D180: 000A                   |   12            push       1
0011D182: 005A 000002FD          |   13            callasm    SE_ReadText ; 000002FD
0011D188: 000C                   |   12            push       3
0011D18A: 003C                   |   13            get_object
0011D18C: 0057 00003523          |   14            call       TMENU.ShowText1 ; 00003523
0011D192: 002C                   |   10            pop
0011D194: 0005 0003              |    9            push       SP[2] ; loc7
0011D198: 000A                   |   10            push       1
0011D19A: 003E                   |   11            add        SP[0],SP[1]
0011D19C: 002A 0004              |   10            mov        SP[3],SP[0] ; loc7
0011D1A0: 002C                   |   10            pop
0011D1A2: 0009                   |    9 L0011D1A2: push       0
0011D1A4: 0001 0BB9              |   10            push       3001d ; 0BB9h
0011D1A8: 0059 000B2673 00004394 |   11            call59     TQUESTMASTER.GetNumQuests ;
0011D1B2: 0009                   |   10            push       0
0011D1B4: 000A                   |   11            push       1
0011D1B6: 002A 0002              |   12            mov        SP[1],SP[0] ; loc11
0011D1BA: 002C                   |   12            pop
0011D1BC: 0005 0001              |   11 L0011D1BC: push       SP[0] ; loc11
0011D1C0: 0005 0003              |   12            push       SP[2] ; loc10
0011D1C4: 004C                   |   13            if SP[0]<SP[1] then push 0 else push 1
0011D1C6: 0033 0008EA23          |   12            if SP[0]=0 then jump L0011D44E
0011D1CC: 0031 0008E8EF          |   11            jump       L0011D1E6

0011D1D2: 0005 0001              |   11 L0011D1D2: push       SP[0] ; loc11
0011D1D6: 000A                   |   12            push       1
0011D1D8: 003E                   |   13            add        SP[0],SP[1]
0011D1DA: 002A 0002              |   12            mov        SP[1],SP[0] ; loc11
0011D1DE: 002C                   |   12            pop
0011D1E0: 0031 0008E8DA          |   11            jump       L0011D1BC

0011D1E6: 0001 0FA0              |   11 L0011D1E6: push       4000d ; 0FA0h
0011D1EA: 0005 0002              |   12            push       SP[1] ; loc11
0011D1EE: 003E                   |   13            add        SP[0],SP[1]
0011D1F0: 000A                   |   12            push       1
0011D1F2: 005A 0000041F          |   13            callasm    SE_ObjectExists ; 0000041F
0011D1F8: 0033 0008EA20          |   12            if SP[0]=0 then jump L0011D448
0011D1FE: 0005 000B              |   11            push       SP[10d] ; loc1
0011D202: 0005 0005              |   12            push       SP[4] ; loc8
0011D206: 004D                   |   13            if SP[0]>SP[1] then push 0 else push 1
0011D208: 0033 0008E90F          |   12            if SP[0]=0 then jump L0011D226
0011D20E: 0005 000B              |   11            push       SP[10d] ; loc1
0011D212: 0005 0004              |   12            push       SP[3] ; loc9
0011D216: 004C                   |   13            if SP[0]<SP[1] then push 0 else push 1
0011D218: 0033 0008E90F          |   12            if SP[0]=0 then jump L0011D226
0011D21E: 000A                   |   11            push       1
0011D220: 0031 0008E910          |   12            jump       L0011D228

0011D226: 0009                   |   11 L0011D226: push       0
0011D228: 0033 0008EA19          |   12 L0011D228: if SP[0]=0 then jump L0011D43A
0011D22E: 0005 000B              |   11            push       SP[10d] ; loc1
0011D232: 0006 0015              |   12            read       TMENU.me_SelectedLine ; [21d ; 15h]
0011D236: 004F                   |   13            if SP[0]<>SP[1] then push 0 else push 1
0011D238: 0033 0008E949          |   12            if SP[0]=0 then jump L0011D29A
0011D23E: 000A                   |   11            push       1
0011D240: 0006 0040              |   12            read       TMENU.me_YSpacing ; [64d ; 40h]
0011D244: 0001 0100              |   13            push       256d ; 0100h
0011D248: 0005 0008              |   14            push       SP[7] ; loc7
0011D24C: 0006 0040              |   15            read       TMENU.me_YSpacing ; [64d ; 40h]
0011D250: 0040                   |   16            mul        SP[0],SP[1]
0011D252: 0006 003F              |   15            read       TMENU.me_YOff ; [63d ; 3Fh]
0011D256: 003E                   |   16            add        SP[0],SP[1]
0011D258: 0009                   |   15            push       0
0011D25A: 000E                   |   16            push       5
0011D25C: 003C                   |   17            get_object
0011D25E: 0057 00003419          |   18            call       ShowRect ; 00003419
0011D264: 002C                   |   12            pop
0011D266: 000A                   |   11            push       1
0011D268: 0006 0040              |   12            read       TMENU.me_YSpacing ; [64d ; 40h]
0011D26C: 0001 0080              |   13            push       128d ; 80h
0011D270: 0005 0008              |   14            push       SP[7] ; loc7
0011D274: 0006 0040              |   15            read       TMENU.me_YSpacing ; [64d ; 40h]
0011D278: 0040                   |   16            mul        SP[0],SP[1]
0011D27A: 0006 003F              |   15            read       TMENU.me_YOff ; [63d ; 3Fh]
0011D27E: 003E                   |   16            add        SP[0],SP[1]
0011D280: 0001 0100              |   15            push       256d ; 0100h
0011D284: 000E                   |   16            push       5
0011D286: 003C                   |   17            get_object
0011D288: 0057 00003419          |   18            call       ShowRect ; 00003419
0011D28E: 002C                   |   12            pop
0011D290: 0005 0001              |   11            push       SP[0] ; loc11
0011D294: 002B 0044              |   12            write      TMENU_QUESTS.meq_SelectedQuestID ; [68d ; 44h]
0011D298: 002C                   |   12            pop
0011D29A: 0009                   |   11 L0011D29A: push       0
0011D29C: 000A                   |   12            push       1
0011D29E: 0001 0FA0              |   13            push       4000d ; 0FA0h
0011D2A2: 0005 0004              |   14            push       SP[3] ; loc11
0011D2A6: 003E                   |   15            add        SP[0],SP[1]
0011D2A8: 0057 00003D9A          |   14            call       TQUEST.GetTextID ; 00003D9A
0011D2AE: 000A                   |   12            push       1
0011D2B0: 005A 000002FD          |   13            callasm    SE_ReadText ; 000002FD
0011D2B6: 0056 000043A1          |   12            get_strg   S00043A1 ;  ; "%-35s"
0011D2BC: 000B                   |   13            push       2
0011D2BE: 005A 000003C2          |   14            callasm    SE_SPrintf ; 000003C2
0011D2C4: 002A 000B              |   12            mov        SP[10d],SP[0] ; loc2
0011D2C8: 002C                   |   12            pop
0011D2CA: 0006 0015              |   11            read       TMENU.me_SelectedLine ; [21d ; 15h]
0011D2CE: 0005 000C              |   12            push       SP[11d] ; loc1
0011D2D2: 004F                   |   13            if SP[0]<>SP[1] then push 0 else push 1
0011D2D4: 0005 0006              |   12            push       SP[5] ; loc7
0011D2D8: 0006 0040              |   13            read       TMENU.me_YSpacing ; [64d ; 40h]
0011D2DC: 0040                   |   14            mul        SP[0],SP[1]
0011D2DE: 0006 003F              |   13            read       TMENU.me_YOff ; [63d ; 3Fh]
0011D2E2: 003E                   |   14            add        SP[0],SP[1]
0011D2E4: 0006 0041              |   13            read       TMENU.me_XOff ; [65d ; 41h]
0011D2E8: 0005 000D              |   14            push       SP[12d] ; loc2
0011D2EC: 000D                   |   15            push       4
0011D2EE: 003C                   |   16            get_object
0011D2F0: 0057 00003008          |   17            call       ShowText ; 00003008
0011D2F6: 002C                   |   12            pop
0011D2F8: 0009                   |   11            push       0
0011D2FA: 0001 0FA0              |   12            push       4000d ; 0FA0h
0011D2FE: 0005 0003              |   13            push       SP[2] ; loc11
0011D302: 003E                   |   14            add        SP[0],SP[1]
0011D304: 0057 00003E3B          |   13            call       TQUEST.GetPriority ; 00003E3B
0011D30A: 0005 0002              |   12            push       SP[1] ; loc11
0011D30E: 0056 000043A7          |   13            get_strg   S00043A7 ;  ; "%3d %3d"
0011D314: 000C                   |   14            push       3
0011D316: 005A 000003C2          |   15            callasm    SE_SPrintf ; 000003C2
0011D31C: 002A 000B              |   12            mov        SP[10d],SP[0] ; loc2
0011D320: 002C                   |   12            pop
0011D322: 0006 0015              |   11            read       TMENU.me_SelectedLine ; [21d ; 15h]
0011D326: 0005 000C              |   12            push       SP[11d] ; loc1
0011D32A: 004F                   |   13            if SP[0]<>SP[1] then push 0 else push 1
0011D32C: 0005 0006              |   12            push       SP[5] ; loc7
0011D330: 0006 0040              |   13            read       TMENU.me_YSpacing ; [64d ; 40h]
0011D334: 0040                   |   14            mul        SP[0],SP[1]
0011D336: 0006 003F              |   13            read       TMENU.me_YOff ; [63d ; 3Fh]
0011D33A: 003E                   |   14            add        SP[0],SP[1]
0011D33C: 0001 0100              |   13            push       256d ; 0100h
0011D340: 0006 0041              |   14            read       TMENU.me_XOff ; [65d ; 41h]
0011D344: 003E                   |   15            add        SP[0],SP[1]
0011D346: 0005 000D              |   14            push       SP[12d] ; loc2
0011D34A: 000D                   |   15            push       4
0011D34C: 003C                   |   16            get_object
0011D34E: 0057 00003008          |   17            call       ShowText ; 00003008
0011D354: 002C                   |   12            pop
0011D356: 0005 000A              |   11            push       SP[9] ; loc2
0011D35A: 000A                   |   12            push       1
0011D35C: 005A 00000DD2          |   13            callasm    SE_FreeString ; 00000DD2
0011D362: 002C                   |   12            pop
0011D364: 0009                   |   11            push       0
0011D366: 0001 0FA0              |   12            push       4000d ; 0FA0h
0011D36A: 0005 0003              |   13            push       SP[2] ; loc11
0011D36E: 003E                   |   14            add        SP[0],SP[1]
0011D370: 0057 000043AF          |   13            call       IsDisabled ; 000043AF
0011D376: 0033 0008E9BF          |   12            if SP[0]=0 then jump L0011D386
0011D37C: 0001 0044              |   11            push       68d ; 44h
0011D380: 0031 0008E9C1          |   12            jump       L0011D38A

0011D386: 0001 0045              |   11 L0011D386: push       69d ; 45h
0011D38A: 0005 0002              |   12 L0011D38A: push       SP[1] ; loc11
0011D38E: 0009                   |   13            push       0
0011D390: 0001 0BB9              |   14            push       3001d ; 0BB9h
0011D394: 0059 000B266C 00002CD4 |   15            call59     TQUESTMASTER.GetCurrentQuest ;
0011D39E: 004F                   |   14            if SP[0]<>SP[1] then push 0 else push 1
0011D3A0: 0033 0008E9D4          |   13            if SP[0]=0 then jump L0011D3B0
0011D3A6: 0001 002A              |   12            push       42d ; 2Ah
0011D3AA: 0031 0008E9E7          |   13            jump       L0011D3D6

0011D3B0: 0009                   |   12 L0011D3B0: push       0
0011D3B2: 0001 0FA0              |   13            push       4000d ; 0FA0h
0011D3B6: 0005 0004              |   14            push       SP[3] ; loc11
0011D3BA: 003E                   |   15            add        SP[0],SP[1]
0011D3BC: 0057 00003EA4          |   14            call       Evaluate ; 00003EA4
0011D3C2: 0033 0008E9E5          |   13            if SP[0]=0 then jump L0011D3D2
0011D3C8: 0001 002B              |   12            push       43d ; 2Bh
0011D3CC: 0031 0008E9E7          |   13            jump       L0011D3D6

0011D3D2: 0001 002D              |   12 L0011D3D2: push       45d ; 2Dh
0011D3D6: 0056 000043BA          |   13 L0011D3D6: get_strg   S00043BA ;  ; "%c %c"
0011D3DC: 000C                   |   14            push       3
0011D3DE: 005A 000003C2          |   15            callasm    SE_SPrintf ; 000003C2
0011D3E4: 002A 000B              |   12            mov        SP[10d],SP[0] ; loc2
0011D3E8: 002C                   |   12            pop
0011D3EA: 0006 0015              |   11            read       TMENU.me_SelectedLine ; [21d ; 15h]
0011D3EE: 0005 000C              |   12            push       SP[11d] ; loc1
0011D3F2: 004F                   |   13            if SP[0]<>SP[1] then push 0 else push 1
0011D3F4: 0005 0006              |   12            push       SP[5] ; loc7
0011D3F8: 0006 0040              |   13            read       TMENU.me_YSpacing ; [64d ; 40h]
0011D3FC: 0040                   |   14            mul        SP[0],SP[1]
0011D3FE: 0006 003F              |   13            read       TMENU.me_YOff ; [63d ; 3Fh]
0011D402: 003E                   |   14            add        SP[0],SP[1]
0011D404: 0001 0140              |   13            push       320d ; 0140h
0011D408: 0006 0041              |   14            read       TMENU.me_XOff ; [65d ; 41h]
0011D40C: 003E                   |   15            add        SP[0],SP[1]
0011D40E: 0005 000D              |   14            push       SP[12d] ; loc2
0011D412: 000D                   |   15            push       4
0011D414: 003C                   |   16            get_object
0011D416: 0057 00003008          |   17            call       ShowText ; 00003008
0011D41C: 002C                   |   12            pop
0011D41E: 0005 000A              |   11            push       SP[9] ; loc2
0011D422: 000A                   |   12            push       1
0011D424: 005A 00000DD2          |   13            callasm    SE_FreeString ; 00000DD2
0011D42A: 002C                   |   12            pop
0011D42C: 0005 0005              |   11            push       SP[4] ; loc7
0011D430: 000A                   |   12            push       1
0011D432: 003E                   |   13            add        SP[0],SP[1]
0011D434: 002A 0006              |   12            mov        SP[5],SP[0] ; loc7
0011D438: 002C                   |   12            pop
0011D43A: 0005 000B              |   11 L0011D43A: push       SP[10d] ; loc1
0011D43E: 000A                   |   12            push       1
0011D440: 003E                   |   13            add        SP[0],SP[1]
0011D442: 002A 000C              |   12            mov        SP[11d],SP[0] ; loc1
0011D446: 002C                   |   12            pop
0011D448: 0031 0008E8E5          |   11 L0011D448: jump       L0011D1D2

0011D44E: 0005 000B              |   11 L0011D44E: push       SP[10d] ; loc1
0011D452: 0005 0004              |   12            push       SP[3] ; loc9
0011D456: 000A                   |   13            push       1
0011D458: 003E                   |   14            add        SP[0],SP[1]
0011D45A: 004B                   |   13            if SP[0]>=SP[1] then push 0 else push 1
0011D45C: 0033 0008EA84          |   12            if SP[0]=0 then jump L0011D510
0011D462: 0005 0005              |   11            push       SP[4] ; loc7
0011D466: 000A                   |   12            push       1
0011D468: 003F                   |   13            sub        SP[0],SP[1]
0011D46A: 002A 0006              |   12            mov        SP[5],SP[0] ; loc7
0011D46E: 002C                   |   12            pop
0011D470: 0006 0040              |   11            read       TMENU.me_YSpacing ; [64d ; 40h]
0011D474: 0001 0100              |   12            push       256d ; 0100h
0011D478: 0005 0007              |   13            push       SP[6] ; loc7
0011D47C: 0006 0040              |   14            read       TMENU.me_YSpacing ; [64d ; 40h]
0011D480: 0040                   |   15            mul        SP[0],SP[1]
0011D482: 0006 003F              |   14            read       TMENU.me_YOff ; [63d ; 3Fh]
0011D486: 003E                   |   15            add        SP[0],SP[1]
0011D488: 0009                   |   14            push       0
0011D48A: 000D                   |   15            push       4
0011D48C: 003C                   |   16            get_object
0011D48E: 0057 0000364B          |   17            call       ShowRect3 ; 0000364B
0011D494: 002C                   |   12            pop
0011D496: 0006 0040              |   11            read       TMENU.me_YSpacing ; [64d ; 40h]
0011D49A: 0001 0080              |   12            push       128d ; 80h
0011D49E: 0005 0007              |   13            push       SP[6] ; loc7
0011D4A2: 0006 0040              |   14            read       TMENU.me_YSpacing ; [64d ; 40h]
0011D4A6: 0040                   |   15            mul        SP[0],SP[1]
0011D4A8: 0006 003F              |   14            read       TMENU.me_YOff ; [63d ; 3Fh]
0011D4AC: 003E                   |   15            add        SP[0],SP[1]
0011D4AE: 0001 0100              |   14            push       256d ; 0100h
0011D4B2: 000D                   |   15            push       4
0011D4B4: 003C                   |   16            get_object
0011D4B6: 0057 0000364B          |   17            call       ShowRect3 ; 0000364B
0011D4BC: 002C                   |   12            pop
0011D4BE: 0001 026E              |   11            push       622d ; 026Eh
0011D4C2: 000A                   |   12            push       1
0011D4C4: 005A 000002FD          |   13            callasm    SE_ReadText ; 000002FD
0011D4CA: 002A 000B              |   12            mov        SP[10d],SP[0] ; loc2
0011D4CE: 002C                   |   12            pop
0011D4D0: 000A                   |   11            push       1
0011D4D2: 000C                   |   12            push       3
0011D4D4: 0005 000C              |   13            push       SP[11d] ; loc2
0011D4D8: 000C                   |   14            push       3
0011D4DA: 005A 00003081          |   15            callasm    SA_MatTextWidth ; 00003081
0011D4E0: 002A 0008              |   12            mov        SP[7],SP[0] ; loc5
0011D4E4: 002C                   |   12            pop
0011D4E6: 0005 0005              |   11            push       SP[4] ; loc7
0011D4EA: 0006 0040              |   12            read       TMENU.me_YSpacing ; [64d ; 40h]
0011D4EE: 0040                   |   13            mul        SP[0],SP[1]
0011D4F0: 0006 003F              |   12            read       TMENU.me_YOff ; [63d ; 3Fh]
0011D4F4: 003E                   |   13            add        SP[0],SP[1]
0011D4F6: 0001 017E              |   12            push       382d ; 017Eh
0011D4FA: 0005 0009              |   13            push       SP[8] ; loc5
0011D4FE: 003F                   |   14            sub        SP[0],SP[1]
0011D500: 0005 000C              |   13            push       SP[11d] ; loc2
0011D504: 000C                   |   14            push       3
0011D506: 003C                   |   15            get_object
0011D508: 0057 00003523          |   16            call       TMENU.ShowText1 ; 00003523
0011D50E: 002C                   |   12            pop
0011D510: 0005 000B              |   11 L0011D510: push       SP[10d] ; loc1
0011D514: 002B 000C              |   12            write      TMENU.me_TotalLinesInfo ; [12d ; 0Ch]
0011D518: 002C                   |   12            pop
0011D51A: 0005 000B              |   11            push       SP[10d] ; loc1
0011D51E: 002A 000C              |   12            mov        SP[11d],SP[0] ; loc1
0011D522: 002E 000B              |   12            popx       11d ; 0Bh
0011D526: 0035                   |    1            ret

0011D528: 002E 000B              |                 popx       11d ; 0Bh
0011D52C: 0009                   |                 push       0
0011D52E: 0035                   |                 ret


 Изменения asm файла   (кликните здесь для просмотра)
Code:
diff --git a/001.asm b/001_fixed.asm
index 0039992..19798b0 100644
--- a/001.asm
+++ b/001_fixed.asm
@@ -1,12 +1,11 @@
 ; --- Decompiler OBJ files. Version x03.29b (XBTF/XT/X2/X3).
 ; --- (c) 2005-2011, DF, Blueboar, Shaddie, CheckerTwo
-; --- Generated from 001.obj,  01.02.2018 5:23:59
+; --- Generated from 001.obj,  01.02.2018 3:45:27
 ; --- Script XT compiled: 28.04.2001 13:41:59
 ;
            .title     001.obj
            .ident     XT
            .radix     10d
-           .loadobj   "001.obj"
            .extern    B3D_InstAddToScene, B3D_InstAlloc, B3D_InstDeleteFromScene
            .extern    B3D_InstFree, B3D_InstGetFlags, B3D_InstSetBody, B3D_InstSetFlags
            .extern    B3D_InstSetInvis, B3D_InstSetOverrideEffect, B3D_InstSetPos
@@ -45261,7 +45260,7 @@ TX_AUDIO.LoopMusic:
            push       0
            push       0
            get_object
-           call       GetModVolume ; 00009F0C
+           call       GetMODVolume ; 00009F0C
            push       5
            if SP[0]<SP[1] then push 0 else push 1
            if SP[0]=0 then jump L0002B3E2
@@ -45843,7 +45842,7 @@ L0002BA30: push       0
            call       GetEnvironment ; 00001192
            push       0
            get_object
-           call       GetModVolume ; 00009F0C
+           call       GetMODVolume ; 00009F0C
            push       5
            if SP[0]<SP[1] then push 0 else push 1
            if SP[0]=0 then jump L0002BA64
@@ -53027,7 +53026,7 @@ L00031318: push       SP[0] ; loc2
            get_from_array
            push       0
            push       SP[1] ; loc3
-           call       GetWarpGates ; 000099F2
+           call       GetWarpgates ; 000099F2
            if SP[0]=0 then jump L000314F0
            push       0
            push       SP[1] ; loc3
@@ -53311,7 +53310,7 @@ L00031664: push       SP[0] ; loc2
            get_from_array
            push       0
            push       SP[1] ; loc3
-           call       GetWarpGates ; 000099F2
+           call       GetWarpgates ; 000099F2
            push       0
            if SP[0]<>SP[1] then push 0 else push 1
            if SP[0]<>0 then jump L000316AA
@@ -271815,7 +271814,7 @@ TSHIP_M0.SetDisowned:
            if SP[0]=0 then jump L000C6AB2
            push       0
            push       SP[4] ; arg1
-           call       GetSerial ; 0000207D
+           call       GetID ; 0000207D
            push       0
            push       SP[1] ; loc1
            read       TSHIP_M0.shm0_Guns ; [60d ; 3Ch]
@@ -292384,7 +292383,7 @@ L000D6182: push       SP[24d] ; arg1
 
 L000D619E: push       0
            read       TRACE.ra_CampaignAmbassador ; [15d ; 0Fh]
-           call       GetObjectId ; 000024C2
+           call       GetObjectID ; 000024C2
            mov        SP[2],SP[0] ; loc20
            pop
            push       SP[1] ; loc20
@@ -292778,7 +292777,7 @@ TRACE.CampaignCheck:
            push       0
            push       SP[2] ; loc1
            call       GetOwner ; 0000035D
-           call       getID ; 00002506
+           call       GetID ; 00002506
            read       TRACE.ra_ID ; [1]
            if SP[0]=SP[1] then push 0 else push 1
            if SP[0]=0 then jump L000D66D0
@@ -294621,7 +294620,7 @@ L000D7E70: push       SP[0] ; loc11
            pop
            push       0
            push       SP[2] ; loc10
-           call       GetObjectId ; 000024C2
+           call       GetObjectID ; 000024C2
            if SP[0]=0 then jump L000D7ED6
            push       0
            push       0
@@ -294643,7 +294642,7 @@ L000D7EE4: jump       L000D7E70
 L000D7EEA: push       SP[5] ; loc6
            push       0
            push       SP[3] ; loc10
-           call       GetObjectId ; 000024C2
+           call       GetObjectID ; 000024C2
            push       2
            push       SP[6] ; loc8
            call       SendSquad ; 000012E5
@@ -294690,7 +294689,7 @@ L000D7F6A: push       SP[0] ; loc11
            pop
            push       0
            push       SP[2] ; loc10
-           call       GetObjectId ; 000024C2
+           call       GetObjectID ; 000024C2
            if SP[0]=0 then jump L000D7FD0
            push       0
            push       0
@@ -294712,7 +294711,7 @@ L000D7FDE: jump       L000D7F6A
 L000D7FE4: push       SP[5] ; loc6
            push       0
            push       SP[3] ; loc10
-           call       GetObjectId ; 000024C2
+           call       GetObjectID ; 000024C2
            push       2
            push       SP[6] ; loc8
            call       SendSquad ; 000012E5
@@ -295693,7 +295692,7 @@ L000D8A4A: push       1
            pop
            push       0
            push       SP[1] ; loc10
-           call       GetWarpGates ; 000099F2
+           call       GetWarpgates ; 000099F2
            if SP[0]=0 then jump L000D8AB6
            push       0
            push       SP[1] ; loc10
@@ -296164,7 +296163,7 @@ L000D9046: push       1
            pop
            push       0
            push       SP[1] ; loc10
-           call       GetWarpGates ; 000099F2
+           call       GetWarpgates ; 000099F2
            if SP[0]=0 then jump L000D90B2
            push       0
            push       SP[1] ; loc10
@@ -302716,38 +302715,7 @@ TCLIENT.Init:
            push       0
            write      TCLIENT.cl_DockingHangar ; [52d ; 34h]
            pop
-           readvar    global.ga_IsNetworkActive ; [23d ; 17h]
-           if SP[0]=0 then jump L000DDBC4
-           readvar    global.ga_IsServer ; [19d ; 13h]
-           if SP[0]=0 then push 1 else push 0
-           if SP[0]=0 then jump L000DDB6E
-           push       0
-           pop
-L000DDB6E: push       SP[3] ; arg1
-           push       1
-           callasm    Net_CreatePlayer ; 00002822
-           writevar   global.ga_ClientID ; [22d ; 16h]
-           pop
-           readvar    global.ga_ClientID ; [22d ; 16h]
-           if SP[0]=0 then jump L000DDBBE
-           readvar    global.ga_ClientID ; [22d ; 16h]
-           push       1
-           callasm    Net_GetPlayerName ; 00002833
-           readvar    global.ga_ClientID ; [22d ; 16h]
-           push       2
-           push       2009d ; 07D9h
-           create_object
-           call       TPLAYER.Create ; 000009BB
-           write      TCLIENT.cl_Player ; [1]
-           pop
-           push       0
            push       1
-           read       TCLIENT.cl_Player ; [1]
-           call       SetLatency ; 00002845
-           pop
-L000DDBBE: jump       L000DDBFA
-
-L000DDBC4: push       1
            writevar   global.ga_ClientID ; [22d ; 16h]
            pop
            push       SP[3] ; arg1
@@ -302765,7 +302733,7 @@ L000DDBC4: push       1
            pop
            push       0
            pop
-L000DDBFA: push       1
+           push       1
            write      TCLIENT.cl_New ; [3]
            pop
            push       0
@@ -313065,138 +313033,7 @@ L000E5EF2: push       SP[0] ; loc6
            if SP[0]<>SP[1] then push 0 else push 1
            if SP[0]=0 then jump L000E60CE
            pop
-L000E5F02: begin_critical
-           if SP[0]<>0 then jump L000E60BC
-           push       0
-           callasm    SA_GetTrackingAim ; 00001F8B
-           push       SP[0] ; loc6
-           if SP[0]=0 then jump L000E5F4A
-           push       SP[0] ; loc6
-           push       1
-           callasm    SA_GetEventObject ; 00000F28
-           push       SP[0] ; loc7
-           if SP[0]=0 then jump L000E5F40
-           push       0
-           push       SP[1] ; loc7
-           call       Debug ; 00002E20
-           pop
-L000E5F40: popx       1
-           jump       L000E60B6
-
-L000E5F4A: push       0
-           push       0
-           push       0
-           mov        SP[2],SP[0] ; loc7
-           pop
-L000E5F56: push       SP[1] ; loc7
-           push       20d ; 14h
-           if SP[0]<=SP[1] then push 0 else push 1
-           if SP[0]=0 then jump L000E60B2
-           jump       L000E5F7E
-
-L000E5F6A: push       SP[1] ; loc7
-           push       1
-           add        SP[0],SP[1]
-           mov        SP[2],SP[0] ; loc7
-           pop
-           jump       L000E5F56
-
-L000E5F7E: push       0
-           mov        SP[1],SP[0] ; loc8
-           pop
-L000E5F86: push       SP[0] ; loc8
-           push       10d ; 0Ah
-           if SP[0]<=SP[1] then push 0 else push 1
-           if SP[0]=0 then jump L000E60AC
-           jump       L000E5FAE
-
-L000E5F9A: push       SP[0] ; loc8
-           push       1
-           add        SP[0],SP[1]
-           mov        SP[1],SP[0] ; loc8
-           pop
-           jump       L000E5F86
-
-L000E5FAE: push       0
-           pop
-           push       0
-           push       SP[1] ; loc8
-           push       SP[3] ; loc7
-           readvar    global.ga_Sectors ; [17d ; 11h]
-           get_from_array
-           get_from_array
-           call       TSECTOR.GetFactories ; 00000BBF
-           push       0
-L000E5FCC: push       SP[0] ; loc10
-           push       SP[2] ; loc9
-           push       2
-           callasm    SE_TableNext ; 00000B48
-           mov        SP[1],SP[0] ; loc10
-           if SP[0]=0 then jump L000E6008
-           push       0
-           push       SP[1] ; loc10
-           call       TGBODY.DumpLog ; 00002E26
-           pop
-           push       0
-           push       1
-           push       2
-           callasm    P_Delay ; 000000C5
-           pop
-           jump       L000E5FCC
-
-L000E6008: push       0
-           push       SP[3] ; loc8
-           push       SP[5] ; loc7
-           readvar    global.ga_Sectors ; [17d ; 11h]
-           get_from_array
-           get_from_array
-           call       GetDocks ; 00000C04
-           push       0
-L000E6022: push       SP[0] ; loc12
-           push       SP[2] ; loc11
-           push       2
-           callasm    SE_TableNext ; 00000B48
-           mov        SP[1],SP[0] ; loc12
-           if SP[0]=0 then jump L000E60A2
-           push       0
-           push       SP[1] ; loc12
-           call       TGBODY.DumpLog ; 00002E26
-           pop
-           push       0
-           pop
-           push       0
-           push       SP[1] ; loc12
-           call       GetOwnedFreighters ; 00002E2E
-           push       0
-L000E605C: push       SP[0] ; loc14
-           push       SP[2] ; loc13
-           push       2
-           callasm    SE_TableNext ; 00000B48
-           mov        SP[1],SP[0] ; loc14
-           if SP[0]=0 then jump L000E608A
-           push       0
-           push       SP[1] ; loc14
-           call       TGBODY.DumpLog ; 00002E26
-           pop
-           jump       L000E605C
-
-L000E608A: push       0
            push       1
-           push       2
-           callasm    P_Delay ; 000000C5
-           pop
-           popx       2
-           jump       L000E6022
-
-L000E60A2: popx       4
-           jump       L000E5F9A
-
-L000E60AC: jump       L000E5F6A
-
-L000E60B2: popx       2
-L000E60B6: popx       1
-           end_critical
-L000E60BC: push       1
            mov        SP[5],SP[0] ; loc1
            popx       5
            ret
@@ -377472,7 +377309,7 @@ TMENU_CUSTOMINPUT.ExitMenu:
            get_object
            push       1
            read       TMENU.me_Object ; [32d ; 20h]
-           call       MenuExit ; 00003D6D
+           call       ExitMenu ; 00003D6D
            pop
            push       0
            push       2210d ; 08A2h
@@ -396150,7 +395987,7 @@ L001270AC: push       SP[4] ; loc2
            if SP[0]=0 then jump L001270EE
            push       0
            push       SP[1] ; loc6
-           call       GetWarpGates ; 000099F2
+           call       GetWarpgates ; 000099F2
            if SP[0]=0 then jump L001270EE
            push       1
            jump       L001270F0
@@ -432694,7 +432531,7 @@ L00144040: push       SP[0] ; loc2
            if SP[0]=0 then jump L0014407C
            push       0
            push       SP[1] ; loc3
-           call       GetWarpGates ; 000099F2
+           call       GetWarpgates ; 000099F2
            if SP[0]=0 then jump L0014407C
            push       1
            jump       L0014407E
@@ -495325,7 +495162,7 @@ L00173C16: push       0
            push       0
            push       0
            read       TQUEST_005.qq_gShip ; [18d ; 12h]
-           call       GetObjectId ; 000024C2
+           call       GetObjectID ; 000024C2
            mov        SP[1],SP[0] ; loc2
            pop
            push       SP[0] ; loc2
@@ -495349,7 +495186,7 @@ L00173C16: push       0
            push       0
            push       2100d ; 0834h
            call59     TCLIENT.GetPlayerShip ;
-           call       GetObjectId ; 000024C2
+           call       GetObjectID ; 000024C2
            push       1
            read       TQUEST_005.qq_gShip ; [18d ; 12h]
            call       SetSafePos ; 000025B7
@@ -500392,12 +500229,12 @@ L00177D6C: push       700d ; 02BCh
            pop
            push       0
            read       TQUEST_018.qq_gStartAtGate ; [16d ; 10h]
-           call       GetObjectId ; 000024C2
+           call       GetObjectID ; 000024C2
            push       0
            push       0
            push       2100d ; 0834h
            call59     TCLIENT.GetPlayerShip ;
-           call       GetObjectId ; 000024C2
+           call       GetObjectID ; 000024C2
            push       2
            callasm    SA_SetSafePos ; 000010B9
            pop
@@ -505851,7 +505688,7 @@ TQUEST_036.Force:
            push       0
            push       2100d ; 0834h
            call59     TCLIENT.GetPlayerShip ;
-           call       GetObjectId ; 000024C2
+           call       GetObjectID ; 000024C2
            push       2
            callasm    SA_SetShield ; 00001068
            pop
@@ -505885,7 +505722,7 @@ TQUEST_036.Force:
            push       0
            push       2100d ; 0834h
            call59     TCLIENT.GetPlayerShip ;
-           call       GetObjectId ; 000024C2
+           call       GetObjectID ; 000024C2
            push       2
            callasm    SA_SetExtraSpeed ; 000017E9
            pop
@@ -505903,7 +505740,7 @@ TQUEST_036.Force:
            push       0
            push       2100d ; 0834h
            call59     TCLIENT.GetPlayerShip ;
-           call       GetObjectId ; 000024C2
+           call       GetObjectID ; 000024C2
            push       2
            callasm    SA_SetExtraRotSpeed ; 000017FA
            pop
@@ -505948,7 +505785,7 @@ TQUEST_036.Force:
            push       0
            push       2100d ; 0834h
            call59     TCLIENT.GetPlayerShip ;
-           call       GetObjectId ; 000024C2
+           call       GetObjectID ; 000024C2
            call       Activate ; 00000E6A
            pop
            push       0
@@ -506373,7 +506210,7 @@ L0017C962: push       0
            if SP[0]=0 then jump L0017C9C2
            push       0
            read       TQUEST_036.qq_gNear_Obj_Pos ; [38d ; 26h]
-           call       GetObjectId ; 000024C2
+           call       GetObjectID ; 000024C2
            push       SP[2] ; loc3
            push       2
            callasm    SA_SetSafePos ; 000010B9
@@ -517861,7 +517698,7 @@ L00185870: push       0
            callasm    SA_GetShipTypeMaxShieldType ; 0000169D
            push       2
            push       SP[4] ; loc2
-           call       addshield ; 00005436
+           call       AddShield ; 00005436
            pop
            push       7
            readvar    global.ga_Races ; [18d ; 12h]
@@ -519889,7 +519726,7 @@ L001872CA: push       0
            callasm    SA_GetShipTypeMaxShieldType ; 0000169D
            push       2
            push       SP[3] ; loc2
-           call       addshield ; 00005436
+           call       AddShield ; 00005436
            pop
            push       3
            readvar    global.ga_Races ; [18d ; 12h]
@@ -527840,7 +527677,7 @@ L0018D694: push       0
            if SP[0]=0 then jump L0018D6C2
            push       0
            push       SP[1] ; loc8
-           call       GetEnviroment ; 000055A2
+           call       GetEnvironment ; 000055A2
            mov        SP[1],SP[0] ; loc8
            pop
            jump       L0018D694
@@ -530856,7 +530693,7 @@ L0018FD18: push       0
            if SP[0]=0 then jump L0018FD40
            push       0
            get_object
-           call       OffertextParty ; 000055D8
+           call       OfferTextParty ; 000055D8
            ret
 
 L0018FD40: push       0
@@ -530880,7 +530717,7 @@ L0018FD64: push       0
            if SP[0]=0 then jump L0018FD8C
            push       0
            get_object
-           call       OffertextParty ; 000055D8
+           call       OfferTextParty ; 000055D8
            ret
 
 L0018FD8C: push       0
@@ -530981,7 +530818,7 @@ L0018FEAC: push       0
            if SP[0]=0 then jump L0018FED4
            push       0
            get_object
-           call       OffertextParty ; 000055D8
+           call       OfferTextParty ; 000055D8
            ret
 
 L0018FED4: push       0
@@ -535504,7 +535341,7 @@ L001936B2: push       0
            push       SP[2] ; loc6
            push       2
            push       SP[13d] ; arg1
-           call       AddMaxRockets ; 00005638
+           call       AddMaxRocket ; 00005638
            pop
            push       0
            pop
@@ -541698,7 +541535,7 @@ L0019822E: push       -5000d ; 0EC78h
            push       0
            push       2100d ; 0834h
            call59     TCLIENT.GetPlayerShip ;
-           call       GetObjectId ; 000024C2
+           call       GetObjectID ; 000024C2
            push       SP[3] ; loc1
            push       3
            callasm    SA_SetRelation ; 00005629
@@ -548037,7 +547874,7 @@ L0019CEEA: if SP[0]=0 then jump L0019CF6A
            pop
 L0019CF2E: push       0
            get_object
-           call       AbortMenu ; 00005661
+           call       Destruct ; 00005661
            pop
            push       0
            write      TQUEST.qu_Priority ; [1]


PS: Этот семикратно патченый ES'ом код обжа такая лютая помойка... Задница

Добавлено: обнаружил следующее:

В секции PTCH на седьмом патче (последнем) было переопределение адреса, имеющегося в TMENU_QUESTS.SpecialUpdate на другой:
Code:
0011D1DA | 0012B268


Зачем-то прыжок осуществляется в TMENU_TRADE.SpecialUpdate
 вот сюда   (кликните здесь для просмотра)
Code:
0012B21E: 0009                   |   20            push       0
0012B220: 0005 0004              |   21            push       SP[3] ; loc18
0012B224: 000B                   |   22            push       2
0012B226: 005A 00000B48          |   23            callasm    SE_TableNext ; 00000B48
0012B22C: 002A 0003              |   21            mov        SP[2],SP[0] ; loc19
0012B230: 002C                   |   21            pop
0012B232: 0005 0002              |   20 L0012B232: push       SP[1] ; loc19
0012B236: 0009                   |   21            push       0
0012B238: 004E                   |   22            if SP[0]=SP[1] then push 0 else push 1
0012B23A: 0033 0009596B          |   21            if SP[0]=0 then jump L0012B2DE
0012B240: 0031 0009592D          |   20            jump       L0012B262

0012B246: 0005 0002              |      L0012B246: push       SP[1] ;
0012B24A: 0005 0004              |                 push       SP[3] ;
0012B24E: 000B                   |                 push       2
0012B250: 005A 00000B48          |                 callasm    SE_TableNext ; 00000B48
0012B256: 002A 0003              |                 mov        SP[2],SP[0] ;
0012B25A: 002C                   |                 pop
0012B25C: 0031 00095915          |                 jump       L0012B232
0012B262: 0031 0009596B          |   20 L0012B262: jump       L0012B2DE

0012B268: 0005 0002              |                 push       SP[1] ;
0012B26C: 0005 000F              |                 push       SP[14d] ;
0012B270: 004E                   |                 if SP[0]=SP[1] then push 0 else push 1
0012B272: 0033 00095948          |                 if SP[0]=0 then jump L0012B298
0012B278: 0009                   |                 push       0
0012B27A: 0005 0003              |                 push       SP[2] ;
0012B27E: 0057 0000035D          |                 call       GetOwner ; 0000035D
0012B284: 0005 000E              |                 push       SP[13d] ;
0012B288: 004F                   |                 if SP[0]<>SP[1] then push 0 else push 1
0012B28A: 0033 00095948          |                 if SP[0]=0 then jump L0012B298
0012B290: 000A                   |                 push       1
0012B292: 0031 00095949          |                 jump       L0012B29A
0012B298: 0009                   |      L0012B298: push       0
0012B29A: 0033 00095968          |      L0012B29A: if SP[0]=0 then jump L0012B2D8
0012B2A0: 000A                   |                 push       1
0012B2A2: 0005 0003              |                 push       SP[2] ;
0012B2A6: 0005 0007              |                 push       SP[6] ;
0012B2AA: 000C                   |                 push       3
0012B2AC: 005A 000001DD          |                 callasm    SE_TableAdd ; 000001DD


Кто-нибудь вообще в курсе как игра работает с секцией PTCH? Подозрение.

Last edited by Non on 18:57 01-02-2018; edited 2 times in total
    Posted: 18:38 01-02-2018   
KWON
 328 EGP


Рейтинг канала: 7(586)
: -12
Posts: 139
Location: Україна. Чигирин.
Joined: 24 Nov 2014
Извините великодушно, но всё таки спрошу.
Non wrote:
указать папку с игрой. Убрать REM

Это с помощью гекс-редактора, я так понимаю, да?
    Posted: 19:05 01-02-2018   
Non
 790 EGP


Модератор
Рейтинг канала: 6(332)
: 237
Posts: 793

Joined: 27 Jun 2006
Нет. patch.cmd это обычный текстовый файл. Открывается блокнотом.
    Posted: 19:18 01-02-2018   
Shaddie
 550 EGP


Рейтинг канала: 6(387)
: 118
Posts: 259
Location: Томск
Joined: 09 Sep 2004
Слегка допилил трансляцию asm кода в более читабельный вид.
Транслированы не все функции.
Ошибки точно есть.

code_xt.zip
 Description:
Некоторые процедуры XT в более понятном виде (есть ошибки)
 Filename:  code_xt.zip
 Filesize:  156.69 KB
 Downloaded:  89 Time(s)

_________________
Быстро едешь, тихо понесут...
    Posted: 15:54 06-02-2018   
Non
 790 EGP


Модератор
Рейтинг канала: 6(332)
: 237
Posts: 793

Joined: 27 Jun 2006
Shaddie удалось транслировать 484 функции после предидущей попытки. Улыбка
Раньше они были недоступны в виде XC кода.

Можно поизучать. Улыбка
 Функции   (кликните здесь для просмотра)
Code:
TX_AUDIO.PlaySpeachScriptWithMood(arg1, arg2, arg3)
TX_AUDIO.FadeSFXOut()
TX_AUDIO.LoopMusic(arg1)
TX_AUDIO.CheckMusicVolume()
GetObjectSector(arg1)
GetDistance(arg1, arg2)
Cheating()
UT_PlayerQuickWarp(arg1, arg2, arg3, arg4, arg5)
TObj2071.Init()
TSECTOR.Activate()
TASTEROID.GetPos()
TASTEROID.IsClass(arg1)
TASTEROID.KilledBy(arg1, arg2, arg3)
TSTATION.AddStationToShieldReloader(arg1)
TSTATION.AddShield(arg1, arg2)
TSTATION.SetOwned(arg1)
TSTATION.SetGroupRelation(arg1, arg2)
TSTATION.SetRelationsToAll(arg1)
TSTATION.GetRelation(arg1)
TSTATION.GetPos()
TSTATION.GetAttacker()
TSTATION.AddSourceFactories(arg1)
TSTATION.AttackedBy(arg1)
TSTATION.LogDestroyed(arg1)
TSTATION.KilledBy(arg1, arg2)
TSTATION.ShipAttackedBy(arg1, arg2, arg3)
TSTATION.SetTargetted(arg1)
TSTATION.GetAnswers(arg1, arg2, arg3, arg4)
TSTATION.IsDockingAllowedForShip(arg1)
TSTATION.CheckAfterPatch()
TSTATION.IsClass(arg1)
TDOCK.IsClass(arg1)
TDOCK.GetWareTypePrice(arg1, arg2)
TDOCK.InitialFill()
TDOCK_GONER.IsClass(arg1)
TFACTORY.IsClass(arg1)
TFACTORY.StartTasks()
TFACTORY_SHIP.BigShipRequestDocking(arg1, arg2)
TFACTORY_SHIP.BigShipDocked(arg1)
TFACTORY_SHIP.BigShipUnDock(arg1)
TFACTORY_SHIP.GetDockingPos(arg1)
TFACTORY_SHIP.IsClass(arg1)
TGATE.IsClass(arg1)
TSHIP.AddShipToShieldReloader(arg1)
TSHIP.ReorderShields()
TSHIP.SetCurrentRocketType(arg1)
TSHIP.ChangeCurrentRocketType()
TSHIP.AddWare(arg1, arg2, arg3)
TSHIP.TestAndLaunchFightDrones(arg1)
TSHIP.SetOwnerObject(arg1)
TSHIP.RemoveEscortShip(arg1)
TSHIP.SetRelation(arg1, arg2)
TSHIP.SetGroupRelation(arg1, arg2)
TSHIP.SetRelationsToAll(arg1)
TSHIP.GetRelation(arg1)
TSHIP.IsClass(arg1)
TSHIP.GetOwnerObject()
TSHIP.GetObjectID()
TSHIP.GetLeader()
TSHIP.GetDestination()
TSHIP.GetAttacker()
TSHIP.GetActionTarget()
TSHIP.GetPID()
TSHIP.HasIllegalGoods()
TSHIP.IsControllable()
TSHIP.Activate()
TSHIP.AddTo(arg1)
TSHIP.EscortRemove()
TSHIP.Ctrl_StartInHangar(arg1)
TSHIP.__StartInHangar(arg1)
TSHIP.GetStartingHangar()
TSHIP.Ctrl_LandInHangar(arg1)
TSHIP.Ctrl_EnterHyperspace(arg1, arg2)
TSHIP.Ctrl_LeaveHyperspace(arg1, arg2)
TSHIP.__LeaveHyperspace(arg1, arg2)
TSHIP.Ctrl_Kill(arg1)
TSHIP.Ctrl_BigShipKill(arg1)
TSHIP.Ctrl_Follow(arg1, arg2)
TSHIP.Ctrl_KillAllEnemiesRange(arg1)
TSHIP.Ctrl_BigShipKillAllEnemies()
TSHIP.CallForHelp(arg1, arg2, arg3)
TSHIP.Ctrl_Idle(arg1)
TSHIP.__Idle(arg1)
TSHIP.Ctrl_FlyToSector(arg1, arg2)
TSHIP.KilledBy(arg1, arg2)
TSHIP.DoKill(arg1, arg2)
TSHIP.KilledInEnvironment()
TSHIP.SelfDestruct(arg1)
TSHIP.Stop()
TSHIP.GetQuestionArray(arg1)
TSHIP.LoadFreight()
TSHIP.CanLand(arg1)
TSHIP.IsAttacked()
TSHIP.AttackedBy(arg1)
TSHIP.LogDestroyed(arg1)
TSHIP.Hit(arg1, arg2)
TSHIP.IsAvailableForDefaultJob()
TSHIP.LeaveShip()
TSHIP.NearestEnemy(arg1)
TSHIP.NearestEnemyByStrength(arg1, arg2, arg3)
TSHIP.GetVictim()
TSHIP.Smuggling()
TSHIP.MenuGetObjectBody()
TSHIP_CARRIER.SetOwner(arg1)
TSHIP_CARRIER.RestoreDockPos()
TSHIP_CARRIER.ShipAttackedBy(arg1, arg2)
TSHIP_CARRIER.IsClass(arg1)
TSHIP_CARRIER.RotateSectorObjectTo(arg1, arg2, arg3, arg4)
TSHIP_CARRIER.IsDockedAtShipYard()
TSHIP_CARRIER.BigShipUnDock()
TSHIP_CARRIER.StartExecuteCommand2(arg1, arg2, arg3)
TSHIP_M0.NeedAvoid(arg1)
TSHIP_M0.IsClass(arg1)
TSHIP_M0_GUN.Ctrl_FollowM0()
TSHIP_M0_GUN.__FollowM0()
TSHIP_M0_GUN.IsClass(arg1)
TSHIP_M1.NeedAvoid(arg1)
TSHIP_M1.AttackedBy(arg1)
TSHIP_M1.MightAttack()
TSHIP_M1.IsClass(arg1)
TSHIP_M2.SetOwner(arg1)
TSHIP_M2.RestoreDockPos()
TSHIP_M2.ShipAttackedBy(arg1, arg2)
TSHIP_M2.NeedAvoid(arg1)
TSHIP_M2.MightAttack()
TSHIP_M2.AttackedBy(arg1)
TSHIP_M2.IsClass(arg1)
TSHIP_M2.IsDockedAtShipYard()
TSHIP_M2.BigShipUnDock()
TSHIP_M2.StartExecuteCommand2(arg1, arg2, arg3)
TSHIP_FIGHTER.AttackedBy(arg1)
TSHIP_FIGHTER.Hit(arg1, arg2)
TSHIP_FIGHTER.MightAttack()
TSHIP_FIGHTER.SendMessage(arg1)
TSHIP_FIGHTER.Patrol()
TSHIP_FIGHTER.Ctrl_ScanShip(arg1)
TSHIP_FIGHTER.AbortScan(arg1)
TSHIP_FIGHTER.DestroyIllegalGoods(arg1)
TSHIP_FIGHTER.GetClass()
TSHIP_FIGHTER.IsClass(arg1)
TSHIP_M3.IsClass(arg1)
TSHIP_M4.IsClass(arg1)
TSHIP_M5.IsClass(arg1)
TSHIP_TS.NeedAvoid(arg1)
TSHIP_TS.AttackedBy(arg1)
TSHIP_TS.MightAttack()
TSHIP_TS.Hit(arg1, arg2)
TSHIP_TS.SendMessage(arg1)
TSHIP_TS.IsClass(arg1)
TSHIP_TS_PIRATE.AttackedBy(arg1)
TSHIP_TS_PIRATE.Hit(arg1, arg2)
TSHIP_TS_PIRATE.MightAttack()
TSHIP_TS_PIRATE.GetQuestion(arg1, arg2)
TSHIP_TS_PIRATE.IsClass(arg1)
TSHIP_TL.NeedAvoid(arg1)
TSHIP_TL.AttackedBy(arg1)
TSHIP_TL.UnloadFactory(arg1)
TSHIP_TL.Ctrl_LeaveHyperspace(arg1, arg2)
TSHIP_TL.IsClass(arg1)
TSHIP_GONER.NeedAvoid(arg1)
TSHIP_GONER.LeadToTemple()
TSHIP_GONER.AttackedBy(arg1)
TSHIP_GONER.SendMessage(arg1)
TSHIP_GONER.IsClass(arg1)
TObj2068.NeedAvoid(arg1)
TObj2068.IsClass(arg1)
TSHIP_ASTRONAUT.IsClass(arg1)
TObj2069.KilledBy(arg1, arg2)
TObj2069.SelfDestruct(arg1)
TRACE.FindShipType(arg1, arg2)
TRACE.AddNotoriety(arg1, arg2)
TRACE.GetNearestShipyard(arg1)
TPIRATES.NewPrimaryAttackShip(arg1)
TPIRATES.SelectTargetInSector(arg1)
TPIRATES.IsClass(arg1)
TGONER.IsClass(arg1)
TPLAYER.LeaveSector(arg1)
TPLAYER.AddMoney(arg1)
TPLAYER.GetMoney()
TPLAYER.LoseLicense(arg1)
TCLIENT.GetPlayerShip()
TCLIENT.StopPostWarpScene()
TCLIENT.StartWarp()
TCLIENT.StartGateWarp(arg1, arg2, arg3)
TCLIENT.WarpToSector(arg1, arg2, arg3, arg4, arg5)
TCLIENT.DisplayExplosion(arg1)
TCLIENT.Autopilot(arg1)
TCLIENT.StartFrom(arg1)
TCLIENT.NotifyComputerOff()
TCLIENT.NotifyTargetLock(arg1)
TCLIENT.NotifyTurboOn()
TCLIENT.NotifyNoMissiles()
TCLIENT.NotifyNoMissileTarget()
TCLIENT.NotifyNoEquipment(arg1)
TCLIENT.NotifyPlanetCollision()
TCLIENT.NotifyAttacked(arg1)
TCLIENT.GetMapSectorState(arg1, arg2)
TCLIENT.GrabScenes()
TCLIENT.RunDialog(arg1, arg2)
TCLIENT.SetRadarCommunication(arg1)
TCLIENT.ShowHelpPage(arg1)
TCLIENT.StopFastForward()
TCLIENT.NotifyPause(arg1)
TCLIENT.CatchWare(arg1)
TCLIENT.ToggleBayDoorStatus()
TMESSAGE.DisplayMessage()
TCAMERAVIEW.Stop()
TCAMERAVIEW.Kill()
TBUILD_FACTORY.Stop()
TBUILD_FACTORY.Kill()
TObj2119.Patch6()
TObj2119.Patch3()
TTRADEMENU.___setCameraMode(arg1)
TTRADEMENU.Trade(arg1)
TTRADEMENU.Input(arg1, arg2)
TMENU.LineVisible()
TMENU.CheckSelected()
TMENU.DoScene(arg1)
TMENU.CreatePrevious(arg1, arg2)
TMENU.Menu()
TMENU.SpecialInput(arg1, arg2)
TMENU.Key_Up_Std()
TMENU.Key_PgUp_Std()
TMENU.Key_PgDown_Std()
TMENU_ID.GetObjectBody()
TMENU_ID.SpecialMenu()
TMENU_ID.IsClass(arg1)
TMENU_SHIP.GetObjectBody()
TMENU_SHIP.IsClass(arg1)
TMENU_SHIPINFO.GetObjectBody()
TMENU_SHIPINFO.IsClass(arg1)
TMENU_LOG.GetObjectBody()
TMENU_LOG.IsClass(arg1)
TMENU_WEAPONS.GetObjectBody()
TMENU_WEAPONS.SpecialUpdate()
TMENU_WEAPONS.IsClass(arg1)
TMENU_WEAPONSELECT.SpecialMenu()
TMENU_WEAPONSELECT.SpecialUpdate()
TMENU_WEAPONSELECT.IsClass(arg1)
TObj2250.GetObjectBody()
TObj2250.IsClass(arg1)
TObj2247.GetObjectBody()
TObj2247.IsClass(arg1)
TMENU_CHEAT.GetObjectBody()
TMENU_CHEAT.IsClass(arg1)
TMENU_SHIPLIST.SpecialMenu()
TMENU_SHIPLIST.GetObjectBody()
TMENU_SHIPLIST.SpecialUpdateShip(arg1)
TMENU_SHIPLIST.IsClass(arg1)
TMENU_SHIPLIST_CARRIED.SpecialUpdate()
TMENU_SHIPLIST_CARRIED.IsClass(arg1)
TMENU_SHIPLIST_OWNED.IsClass(arg1)
TMENU_LOGBOOK.GetObjectBody()
TMENU_LOGBOOK.IsClass(arg1)
TMENU_STATION.GetObjectBody()
TMENU_STATION.GetName()
TMENU_STATION.IsClass(arg1)
TMENU_FACTORY.GetName()
TMENU_DOCK.GetName()
TMENU_STATIONINFO.GetObjectBody()
TMENU_STATIONINFO.IsClass(arg1)
TObj2254.GetObjectBody()
TObj2254.SpecialUpdate()
TObj2254.IsClass(arg1)
TMENU_DOCK_GONER.IsClass(arg1)
TMENU_ASTEROID.IsClass(arg1)
TMENU_WARPGATE.GetObjectBody()
TMENU_WARPGATE.IsClass(arg1)
TMENU_PLAYER.SpecialUpdate()
TMENU_PLAYER.IsClass(arg1)
TMENU_WARE.GetObjectBody()
TMENU_WARE.IsClass(arg1)
TMENU_MAIN.IsClass(arg1)
TMENU_CUSTOMDIALOG.GetObjectBody()
TMENU_CUSTOMDIALOG.SpecialMenu()
TMENU_CUSTOMDIALOG.IsClass(arg1)
TMENU_CUSTOMDIALOG.SpecialUpdate()
TMENU_CUSTOMINPUT.IsClass(arg1)
TMENU_BIGTEXT.SpecialMenu()
TMENU_BIGTEXT.IsClass(arg1)
TMENU_PLAYERLOG.SpecialUpdate()
TMENU_PLAYERLOG.IsClass(arg1)
TMENU_QUEST.SpecialMenu()
TMENU_QUEST.IsClass(arg1)
TMENU_QUESTINFO.IsClass(arg1)
TMENU_DEBUGFLAGS.SpecialUpdate()
TMENU_DEBUGFLAGS.Input(arg1)
TMENU_DEBUGFLAGS.IsClass(arg1)
TMENU_MISSION.SpecialUpdate()
TMENU_MISSION.IsClass(arg1)
TMENU_QUESTS.SpecialUpdate()
TMENU_QUESTS.IsClass(arg1)
TMENU_QUESTOFFER.SpecialUpdate()
TMENU_QUESTOFFER.IsClass(arg1)
TMENU_QUESTDISPLAY.SpecialUpdate()
TMENU_QUESTDISPLAY.IsClass(arg1)
TMENU_SECTOR.___testPos(arg1, arg2)
TMENU_SECTOR.__RectFill(arg1, arg2, arg3, arg4, arg5, arg6)
TMENU_SECTOR.___doZooming(arg1, arg2)
TMENU_SECTOR.SpecialMenu()
TMENU_SECTOR.ShowDocksFacs2(arg1, arg2, arg3)
TMENU_SECTOR.ShowShips(arg1, arg2, arg3)
TMENU_SECTOR.IsClass(arg1)
TMENU_GALAXY.CreatePrevious(arg1, arg2)
TMENU_GALAXY.SpecialMenu2()
TMENU_GALAXY.SpecialUpdate()
TMENU_GALAXY.IsClass(arg1)
TMENU_TRADE.Shipyard()
TMENU_TRADE.SpecialMenu()
TMENU_TRADE.ShipPrice(arg1)
TMENU_TRADE.wareprice(arg1, arg2, arg3)
TMENU_TRADE.IsClass(arg1)
TMENU_DIALOG.CreatePrevious(arg1, arg2)
TMENU_DIALOG.SpecialMenu()
TMENU_DIALOG.UseAnswer(arg1)
TMENU_DIALOG.IsClass(arg1)
TMENU_LOADSAVE.SpecialMenu()
TMENU_LOADSAVE.ExitMenu()
TMENU_LOADSAVE.IsEmpty(arg1)
TMENU_LOADSAVE.IsClass(arg1)
TObj2248.SpecialMenu()
TObj2248.SpecialUpdate()
TObj2248.IsClass(arg1)
TObj2249.GetObjectBody()
TObj2249.IsClass(arg1)
TObj2253.GetObjectBody()
TObj2253.IsClass(arg1)
TObj2264.SpecialMenu()
TObj2264.IsClass(arg1)
TObj2265.GetObjectBody()
TObj2265.IsClass(arg1)
TObj2266.GetObjectBody()
TObj2266.IsClass(arg1)
TObj2267.GetObjectBody()
TObj2267.IsClass(arg1)
TObj2251.GetPlayerProperty(arg1)
TObj2251.Display_Ships(arg1, arg2, arg3, arg4)
TObj2251.SpecialMenu()
TObj2251.IsClass(arg1)
TObj2252.SpecialMenu()
TObj2252.IsClass(arg1)
TObj2256.ShowCutScenes(arg1)
TObj2256.IsClass(arg1)
TObj2257.SpecialUpdate()
TObj2257.IsClass(arg1)
TObj2258.SpecialUpdate()
TObj2258.IsClass(arg1)
TObj2259.IsClass(arg1)
TObj2260.GetObjectBody()
TObj2260.IsClass(arg1)
TObj2261.SpecialMenu()
TObj2261.IsClass(arg1)
TObj2262.SpecialMenu()
TObj2262.IsClass(arg1)
TObj2263.Shipyard()
TObj2263.SpecialMenu()
TObj2263.CheckTransporter()
TObj2263.wareprice(arg1, arg2, arg3)
TObj2263.IsClass(arg1)
TUPGRADE.DefaultCatchWare(arg1, arg2, arg3)
TUPGRADE_11.CatchWare(arg1)
TObj2065.IsClass(arg1)
TObj2065.Activate()
TUPGRADE_13.CatchWare(arg1)
TObj2066.BlowUp()
TObj2066.___blowUp()
TObj2066.Activate()
TObj2066.IsClass(arg1)
TORBITALLASER.Activate()
TORBITALLASER.AttackedBy(arg1)
TORBITALLASER.Hit(arg1, arg2)
TORBITALLASER.___fireBeamWeapon(arg1)
TORBITALLASER.___removeBeamBullets()
TORBITALLASER.IsClass(arg1)
TUPGRADE_15.CatchWare(arg1)
TObj2067.AttackedBy(arg1)
TObj2067.MightAttack()
TObj2067.IsClass(arg1)
TQUESTMASTER.CheckQuest()
TCLASS_6010.IsClass(arg1)
TCLASS_6004.IsClass(arg1)
TCLASS_6005.IsClass(arg1)
TCLASS_6006.IsClass(arg1)
TCLASS_6007.AsteroidCollision(arg1, arg2, arg3)
TCLASS_6007.Activate()
TCLASS_6007.IsClass(arg1)
TCLASS_6012.GetPos()
TCLASS_6012.SetPos(arg1, arg2, arg3)
TCLASS_6012.IsClass(arg1)
TUPGRADE_01.DockingPossible(arg1)
TUPGRADE_01.ContextMenuBuild(arg1, arg2, arg3)
TUPGRADE_01.Action()
TUPGRADE_02.ContextMenuBuild(arg1, arg2, arg3)
TUPGRADE_02.Action()
TUPGRADE_02.MenuNextMenu(arg1, arg2)
TUPGRADE_03.Beaming(arg1, arg2)
TUPGRADE_03.ContextMenuAction(arg1)
TUPGRADE_03.Action()
TUPGRADE_03.Beam(arg1)
TUPGRADE_04.Action()
TUPGRADE_06.ContextMenuBuild(arg1, arg2, arg3)
TUPGRADE_06.Action()
TUPGRADE_06.MenuNextMenu(arg1, arg2)
TQUEST_003.dockedToDestSpaceStation()
TQUEST_003.GetUpdateText()
TQUEST_003.Check()
TQUEST_004.Check()
TQUEST_005.Evaluate()
TQUEST_005.Check2()
TQUEST_006.Prepare()
TQUEST_006.Decline()
TQUEST_006.Check()
TQUEST_018.Prepare()
TQUEST_018.QuestShipDestroyed()
TQUEST_021.Evaluate()
TQUEST_021.Check2()
TQUEST_034.Evaluate()
TQUEST_049.Evaluate()
TQUEST_049.Check()
TQUEST_060.Evaluate()
TQUEST_060.RemoveAttackers(arg1)
TQUEST_060.Check()
TQUEST_069.Evaluate()
TQUEST_075.WaitUntilPlayerIsInRange()
TQUEST_079.Evaluate()
TQUEST_079.Check()
TQUEST_085.Evaluate()
TQUEST_085.GetUpdateText()
TQUEST_085.Check()
TQUEST_090.Evaluate()
TQUEST_090.CleanUp()
TQUEST_096.ShieldTask(arg1)
TQUEST_096.AudioTask(arg1)
TQUEST_096.Accept()
TQUEST_067.Check()
TQUEST_067.GetSellerFactory(arg1, arg2, arg3)
TQUEST_067.CalcProfitIndex()
TQUEST_106.Evaluate()
TQUEST_106.dockedToDestSpaceStation()
TQUEST_106.GetUpdateText()
TQUEST_106.Check()
TQUEST_025.IsCorrectDock()
TQUEST_026.IsCorrectDock()
TQUEST_027.IsCorrectDock()
TQUEST_027.Check()
TQUEST_028.IsCorrectDock()
TQUEST_029.IsCorrectDock()
TQUEST_040.Evaluate()
TQUEST_040.Check()
TQUEST_041.Evaluate()
TQUEST_041.Check()
TQUEST_042.Evaluate()
TQUEST_042.KilledAttackers()
TQUEST_042.Check()
TQUEST_043.Evaluate()
TQUEST_043.Cleanup()
TQUEST_043.Check()
TQUEST_044.Evaluate()
TQUEST_044.Check()
TQUEST_045.Check()
TQUEST_046.Evaluate()
TQUEST_047.Evaluate()
TQUEST_047.Check()
TQUEST_048.Evaluate()
TQUEST_048.KilledAttackers()
TQUEST_048.Check()
TCLASS_6018.SetTargetted(arg1)
TCLASS_6019.GetQuestion(arg1, arg2)
TCLASS_6019.GetAnswers(arg1, arg2, arg3, arg4)
TCLASS_6019.KilledBy(arg1, arg2, arg3)
TCLASS_6019.IsClass(arg1)
TCLASS_6020.GetQuestion(arg1, arg2)
TCLASS_6020.GetAnswers(arg1, arg2, arg3, arg4)
TCLASS_6020.KilledBy(arg1, arg2, arg3)
TCLASS_6020.IsClass(arg1)
TCLASS_6021.GetQuestion(arg1, arg2)
TCLASS_6021.GetAnswers(arg1, arg2, arg3, arg4)
TCLASS_6021.KilledBy(arg1, arg2, arg3)
TCLASS_6021.IsClass(arg1)
TCLASS_6022.KilledBy(arg1, arg2, arg3)
TCLASS_6022.IsClass(arg1)
TQUEST_113.SampleIncomingTransmission(arg1, arg2)
TQUEST_113.LoseAllLicences()
TQUEST_113.CreateGetsuFune()
    Posted: 20:00 06-02-2018   
yakim81
 305 EGP


Рейтинг канала: 6(373)
: 16
Posts: 217

Joined: 07 Feb 2015
Очень жаль, что нет функции TMENU_GALAXY.Input. Много надежд, что именно там находится решение с отображением 30х30 галактической карты
    Posted: 22:04 08-02-2018   
KWON
 328 EGP


Рейтинг канала: 7(586)
: -12
Posts: 139
Location: Україна. Чигирин.
Joined: 24 Nov 2014
Благодаря нашему супер-модератору Non и его чудному "xt_obj_patching" можно оживить любые мечты!

Вот код для их "patch.xc" о добавлении любых кораблей на любую верфь:
 Cкрытый текст   (кликните здесь для просмотра)
Code:
#include "inc/xt.h";

function TFACTORY_SHIP.Create(arg1, arg2, arg3, arg4, arg5, arg6)
{
 2006->Create(arg1, arg2, arg3, arg4, arg5, arg6);
 this->AddProduct(7, global.ShipGTypeToSType(5, arg5)); // M3
 this->AddProduct(7, global.ShipGTypeToSType(6, arg5)); // M4
 this->AddProduct(7, global.ShipGTypeToSType(7, arg5)); // M5
 this->AddProduct(7, global.ShipGTypeToSType(1, arg5)); // TS
 this->AddProduct(7, global.ShipGTypeToSType(9, arg5)); // IS
 if(arg5 == 7)
 {
  this->AddProduct(7, 58); // Terraner
  this->AddProduct(7, 55); // Commandship
  this->AddProduct(7, 43); // pirate Argon
  this->AddProduct(7, 44); // pirate Xenon
  this->AddProduct(7, 45); // pirate Split
  this->AddProduct(7, 46); // pirate Paranid
  this->AddProduct(7, 47); // pirate Boron
  this->AddProduct(7, 48); // pirate Teladi
 }
 if(arg5 == 6)
 {
  this->AddProduct(7, global.ShipGTypeToSType(8, arg5)); // IL
  this->AddProduct(7, 52); // Goner Ship
  this->AddProduct(7, 68); // UFO
 }
 if(arg5 == 8)
 {
  this->AddProduct(7, 49); // Xperimental
  this->AddProduct(7, 69); // Perseus
  this->AddProduct(7, 70); // SpaceFly
  this->AddProduct(7, 52); // Goner Ship
  this->AddProduct(7, 68); // UFO
 }
 this->AddProduct(7, global.ShipGTypeToSType(0, arg5)); // TL
 this->AddProduct(7, global.ShipGTypeToSType(2, arg5)); // M0
 this->AddProduct(7, global.ShipGTypeToSType(3, arg5)); // M1
 this->AddProduct(7, global.ShipGTypeToSType(4, arg5)); // M2

 return(this);
}

.func Testing
function Testing()
{
  IsCheatActive(1);
}


Правда, теперь осталось оживить покупку классов GO, M0, M1, M2,
но я так полагаю это вопрос времени.
И найдется код для правки секции 2217-TMENU_TRADE,
где выставляются доступные классы кораблей на продажу.

Дополнительная правка.
Цифра if(arg5== 7 это пиратская верфь.
Т.е. сначала нужно добавить её на карту.
Цифра if(arg5== 8 это верфь гонеров и её тоже нужно
добавить нетрадиционным редактором:
http://www.elite-games.ru/conference/viewtopic.php?p=3448983#3448983

Добавлю оригинал из файла code_xt.cpp,
огромное спасибо классному расскодированию обжа уважаемому Shaddie.
 Оригинал состава верфей   (кликните здесь для просмотра)
Code:
function TFACTORY_SHIP.Create(arg1, arg2, arg3, arg4, arg5, arg6)
{
 2006->Create(arg1, arg2, arg3, arg4, arg5, arg6);
 this->AddProduct(7, global.ShipGTypeToSType(5, arg5));
 this->AddProduct(7, global.ShipGTypeToSType(6, arg5));
 this->AddProduct(7, global.ShipGTypeToSType(7, arg5));
 this->AddProduct(7, global.ShipGTypeToSType(1, arg5));
 if(arg5 == 5)
 {
  this->AddProduct(7, 44);
 }
 this->AddProduct(7, global.ShipGTypeToSType(0, arg5));
 this->___SetVar(11, P_GetAbsTime() + P_Random(3600) * 1000);
 this->___SetVar(12, P_Random(3));
 this->___SetVar(16, -1);
 return(this);
}


Last edited by KWON on 21:55 11-02-2018; edited 3 times in total
    Posted: 16:01 11-02-2018   
Non
 790 EGP


Модератор
Рейтинг канала: 6(332)
: 237
Posts: 793

Joined: 27 Jun 2006
Черновая попытка вынудить неписей скидывать на игрока мины и лазерные башни, помимо дронов с пинка Kwon. Улыбка

Добавил два хука: в AttackedBy (чтобы их запускать) и в AddDefaultUpgrades, чтобы добавить их на все создаваемые во вселенной корабли на своих условиях.

Хук в AttackedBy запустит функцию DefensiveDrop, в которой можно спокойно написать логику и проверки в XC.
Code:
; 000BD8EA: 000A                   |    3            push       1
; 000BD8EC: 003C                   |    4            get_object
; 000BD8EE: 0057 00001E34          |    5            call       TSHIP.MakeDamage ; 00001E34
; 000BD8F4: 002C                   |    3            pop
; 000BD8F6: 002E 0001              |    2            popx       1
; 000BD8FA: 0006 000A              |    1            read       TSHIP.sh_Owner ; [10d ; 0Ah]
; 000BD8FE: 0033 0005EC8B          |    2            if SP[0]=0 then jump L000BD91E
           .section   code, abs
$ = 000BD8F4h
           jump       ABHook
ABHookBack:

           .section   code, con

ABHook:    popx       2
           push       0
           get_object
           call       TSHIP.DefensiveDrop
           pop
           jump       ABHookBack


Хук в AddDefaultUpgrades запустит функцию AddExtra, в которой опять же в коде XC можно добавить условия и всё такое перед добавлением мин на корабль. Например, является ли раса корабля пиратской и т.п.
Code:
; 000AC194: 0057 00000A6B          |    6            call       AddWare ; 00000A6B
; 000AC19A: 002C                   |    2            pop
; 000AC19C: 002E 0001              |    1 L000AC19C: popx       1
; 000AC1A0: 0009                   |    0            push       0
; 000AC1A2: 0035                   |    1            ret

           .section   code, abs
$ = 000AC19Ch
           jump       AddExtra

           .section   code, con
AddExtra:  pop                       ; возвращаем на место pop по адресу 000AC1D6
           push       0
           get_object                ; this->
           call       TSHIP.AddExtra ; запускаем нашу функцию
           pop
           push       0
           ret


Добавил это для удобства в архив xt_obj_patching в первом посте.

Раскомментировать это в patch.asm:
Code:
           ; .include   "inc/attackedby_hook.asm"
           ; .include   "inc/add_default_items_hook.asm"


Текущие косяки: корабли скидывают мины до того, как станут вражески настроенными. Мины взрывают обоих. Хы...
    Posted: 23:08 11-02-2018   
yakim81
 305 EGP


Рейтинг канала: 6(373)
: 16
Posts: 217

Joined: 07 Feb 2015
А подскажите, пожалуйста, может я плохо искал, есть ли полный список функций, вызываемых из exe с их идентификатором (числовое значение), по которому этот самый exe их определяет и исполняет (я так понимаю, функции callasm)?
    Posted: 12:43 12-02-2018   
Non
 790 EGP


Модератор
Рейтинг канала: 6(332)
: 237
Posts: 793

Joined: 27 Jun 2006
 Такой? Подозрение.   (кликните здесь для просмотра)
Code:
callasm                              005A
B3D_InstAddToScene                   00002FC1
B3D_InstAlloc                        00002A8B
B3D_InstDeleteFromScene              00003D2A
B3D_InstFree                         00002AC7
B3D_InstGetFlags                     000032D8
B3D_InstSetBody                      00002A99
B3D_InstSetFlags                     000032E9
B3D_InstSetInvis                     000034CB
B3D_InstSetOverrideEffect            0000345F
B3D_InstSetPos                       00002AA9
B3D_InstSetRot                       00002AB8
B3D_InstSetSize                      00000F47
B3D_InstSetSizeUsed                  00003479
B3D_LightAddToScene                  00002B92
B3D_LightAlloc                       00002B71
B3D_LightSetAttenuation              000032FA
B3D_LightSetColor                    00002B80
B3D_LightSetRange                    00003312
B3D_SceneDisable                     00002894
B3D_SceneEnable                      000028BA
B3D_SceneGetCamera                   00002FD4
B3D_SceneSetFocus                    00002C67
B3D_SceneSetViewPort                 000028A5
CD_PlayTrack                         000002AB
CD_Stop                              00000275
D_SaveTGAScreenshot                  00002C83
GS_AddGate                           00000AD6
GS_RemoveGate                        000015FA
GS_Route                             0000039F
GS_RouteLen                          000003A8
J3D_JobStart                         0000333D
J3D_JobStop                          0000334A
J3D_TakeAlloc                        00002948
J3D_TakeFree                         00002964
J3D_TakeStart                        00002956
J3D_TakeStop                         00002971
MOV_ConnectMovieToTexture            0000003B
MOV_FreeMovie                        0000010B
MOV_LoadMovie                        0000002D
MOV_PlayMovie                        0000029D
MOV_PlayMovieFrom                    000000E3
MOV_SetRateMovie                     0000322E
MOV_SetVolumeMovie                   0000028A
MOV_StopMovie                        000000B7
Net_CreatePlayer                     00002822
Net_GetPlayerName                    00002833
P_AddTime                            000012B6
P_CmpSec                             000025DF
P_CmpTime                            000012AC
P_Delay                              000000C5
P_GetAbsMilliSec                     00002AD4
P_GetAbsSec                          00002AE5
P_GetAbsTime                         00000D77
P_GetTimeWarpFactor                  00002E0C
P_GetTimeWarpFactorDisplay           0000A001
P_Interrupt                          00001979
P_Load                               00000945
P_LoadSaveNames                      00004792
P_Random                             000000F5
P_RandomLowNorm                      0000175E
P_Save                               0000094C
P_SetAbsTime                         00003A5D
P_SetTimeWarpFactor                  00002CC0
P_SetTimeWarpFactorDisplay           0000A01C
P_ViewEBMFullscreen                  00000931
P_WaitForInterrupt                   00001A9F
SA_AllocObject                       00000E5B
SA_AllocTextInst                     00003356
SA_AttackObject                      00001B11
SA_AttackObjectBig                   00001B65
SA_AvoidObjectCollision              000019FE
SA_BuildGalaxyMap                    00004579
SA_CaptureObject                     00001FCA
SA_ClearGalaxyMap                    0000458B
SA_ClearIdentifyView                 000031BA
SA_ClearObjectFromCarrier            000019E4
SA_ClearObjectFromHangar             00001A16
SA_CollisionObject                   00001A3E
SA_DisplayCameraMessage              00003091
SA_DisplayMessage                    00003050
SA_DisplayMessageWithDuration        00003032
SA_DisplayNavMap                     00003011
SA_DisplayStaticText                 00002C00
SA_DisplayText                       00002E41
SA_Distance                          00002293
SA_DoObjectSound                     00005489
SA_DrawObjectSymbol                  000044F3
SA_DrawObjectSymbol3D                00004510
SA_DrawRadar                         00002C97
SA_DumpSectorScene                   00000E99
SA_EnterIdentifyView                 00003387
SA_EnterOuterView                    00002BB7
SA_EnterTargetView                   000030A9
SA_EscortObject                      00001FA7
SA_FindNearestEnemy                  00001BC4
SA_FindNearestEnemyByStrength        00001BA6
SA_FindObject                        000011A1
SA_FindObjectSubTypeInContainer      00000F9F
SA_FindObjectType                    00000320
SA_FindObjectTypeInContainer         00000340
SA_FireOnObject                      00001B3A
SA_FlyBigShipBeforeDockPos           00009FC4
SA_FlyObjectBeforeContainer          00001A5D
SA_FlyObjectIntoContainer            00001A79
SA_FollowObject                      00002B30
SA_FollowObjectByCut                 000020C6
SA_ForceMove                         00003156
SA_FreeAllBodies                     00002A4A
SA_FreeCutScene                      000029BB
SA_FreeObject                        00000E8B
SA_GetBody                           00003C4B
SA_GetCameraObject                   00003117
SA_GetCollisionObjects               000035D5
SA_GetCompBody                       00003C3C
SA_GetCount                          00001EBE
SA_GetDirX                           00004B25
SA_GetDirY                           00004B30
SA_GetDirZ                           00004B3B
SA_GetEventObject                    00000F28
SA_GetFlags                          000013C0
SA_GetGrid                           00002D40
SA_GetInst3D                         00000F3A
SA_GetLaser                          000018E4
SA_GetLaserFired                     00003BC9
SA_GetLaserHits                      00003BED
SA_GetLaserPosition                  000016ED
SA_GetLaserTypeEnergyMax             000018F0
SA_GetMainType                       00001EAF
SA_GetMat                            00002FFE
SA_GetMatTextArray                   00003C29
SA_GetMaxLaser                       00001915
SA_GetMaxShield                      0000108F
SA_GetMaxShipTypeLasers              00001632
SA_GetMaxSpeed                       00002DBB
SA_GetMissileFired                   00003BDA
SA_GetMissileHits                    00003BFD
SA_GetObjectTextID                   000018C0
SA_GetPosX                           00001943
SA_GetPosY                           0000194E
SA_GetPosZ                           00001959
SA_GetRelation                       00001059
SA_GetRotAlpha                       00002488
SA_GetRotBeta                        00002497
SA_GetRotGamma                       000024A5
SA_GetScene                          00002888
SA_GetShield                         00001075
SA_GetShieldTypeEnergyMax            0000109F
SA_GetShipTypeCockpitBody            00001DFE
SA_GetShipTypeMaxExtraRotSpeed       00001173
SA_GetShipTypeMaxExtraSpeed          00001157
SA_GetShipTypeMaxLaserType           00001682
SA_GetShipTypeMaxNumRockets          00001666
SA_GetShipTypeMaxNumShields          0000164A
SA_GetShipTypeMaxRocketType          0000172D
SA_GetShipTypeMaxShieldType          0000169D
SA_GetShipTypeMaxTradeContainerSize  000010F0
SA_GetShipTypePowerGeneration        00003752
SA_GetShipTypeTradeContainerSize     00001114
SA_GetSize                           00001ECA
SA_GetSpeed                          000098CC
SA_GetStrength                       00001B97
SA_GetSubType                        00000332
SA_GetTimer                          000025CC
SA_GetTotalDistance                  00003C0F
SA_GetTrackingAim                    00001F8B
SA_GetType                           0000991F
SA_GetTypeAcceleration               0000370E
SA_GetTypeBody                       00002031
SA_GetTypeCompBody                   0000201E
SA_GetTypeGSubType                   00001587
SA_GetTypeMaxSpeed                   00001850
SA_GetTypePriMaxP                    0000124D
SA_GetTypeRelValue                   00000953
SA_GetTypeSecMaxP                    00001458
SA_GetTypeStepX                      00001863
SA_GetTypeStepY                      00001873
SA_GetTypeStepZ                      00001883
SA_GetTypeTextID                     000002EC
SA_GetTypeVolume                     00000FC9
SA_Idle                              00001C64
SA_IsDockingBlocked                  000013F0
SA_IsSafePos                         0000229F
SA_KillObject                        00000F57
SA_LandAllObjectsInHangar            00003295
SA_LeaveIdentifyView                 00003267
SA_LeaveOuterView                    000029D0
SA_LoadCutScene                      000029AB
SA_MatNearestPen                     00000DF9
SA_MatRectFill                       00000E1A
SA_MatTextBlock                      00000E0A
SA_MatTextBlockHeight                0000306B
SA_MatTextWidth                      00003081
SA_MaxDistance                       0000098C
SA_MoveLaserIntoContainer            000016D3
SA_MoveObjectIntoContainer           00000F84
SA_MovePos                           000099A4
SA_RotateToAngles                    00009FDF
SA_SetAsPlayerObject                 00001985
SA_SetBayDoorContent                 00002F28
SA_SetBayDoorStatus                  00002F51
SA_SetCount                          00001382
SA_SetCurrentMissile                 00001701
SA_SetDesiredSpeed                   00001DD5
SA_SetEventObject                    00000EE2
SA_SetExtraRotSpeed                  000017FA
SA_SetExtraSpeed                     000017E9
SA_SetFlags                          000013CC
SA_SetGalaxy                         00000E73
SA_SetGlide                          00000F03
SA_SetGrid                           00001E8C
SA_SetGroup                          00001488
SA_SetGroupRelation                  00001045
SA_SetHitRappelDelay                 00002EFA
SA_SetIdentifyView                   000031CF
SA_SetLaser                          00004B46
SA_SetLight                          00000F78
SA_SetMaxAvoidShield                 00001964
SA_SetPause                          00002F0F
SA_SetPlayerBoost                    00002CAE
SA_SetPlayerLand                     00002B47
SA_SetPos                            00000ECE
SA_SetRearView                       000030BC
SA_SetRelation                       00005629
SA_SetRelativePos                    00001ED5
SA_SetRot                            00000ED8
SA_SetSafePos                        000010B9
SA_SetShield                         00001068
SA_SetSpeed                          00001DC9
SA_SetTrackingAim                    000024CE
SA_SetWareID                         00001494
SA_ShootMissileOnObject              000017A9
SA_ShowRelativeExplosion             00004A9A
SA_StartAllShipsFromHangar           000014C0
SA_StartInHangar                     000019CC
SA_StartObject                       00000EF4
SA_StartTake                         00003324
SA_StopObject                        00001613
SA_StopTake                          00003331
SA_TurnToObject                      00004B15
SA_WarpObjectAway                    00001ADF
SE_ArrayAlloc                        00000AE1
SE_ArrayFree                         000002CE
SE_ArraySize                         000001B6
SE_CubicPoly                         0000146A
SE_Distance3                         000009A2
SE_DivFix                            00004545
SE_ExistsText                        0000459D
SE_FClose                            00000CCF
SE_FOpen                             00000C37
SE_FPrintf                           00000C4E
SE_FreeString                        00000DD2
SE_GetNum                            000096D7
SE_GetPID                            000014E9
SE_GetTaskPC                         00001440
SE_KGV                               000015CA
SE_KillTask                          00000E29
SE_LinFunc                           00000975
SE_LinFuncSum                        000092FF
SE_LoadText                          000009AF
SE_MakeString                        00000411
SE_MulDivFix                         000043F1
SE_MulFix                            00004533
SE_ObjectExists                      0000041F
SE_ObjectFunctionExists              00002BE8
SE_QSortByName                       00009F28
SE_ReadText                          000002FD
SE_SPrintf                           000003C2
SE_Sqrt                              00005481
SE_StringLen                         00002FF1
SE_StringReadChar                    00003782
SE_StringSPrintf                     00000871
SE_StringSub                         0000340C
SE_StringVSPrintf                    000048CB
SE_TableAdd                          000001DD
SE_TableAlloc                        00000129
SE_TableExists                       00004FBD
SE_TableFind                         0000007F
SE_TableFree                         000000FE
SE_TableNew                          00009F59
SE_TableNext                         00000B48
SE_TableRemove                       00000DC3
SE_TableSize                         00000BF7
SE_VSPrintf                          0000287C
SE_strcmp                            00001E20
SFX_GetFXVolume                      00000159
SFX_GetFlags                         00002B0A
SFX_GetLanguage                      00000011
SFX_GetMODVolume                     00000137
SFX_PlaySample                       000001E9
SFX_SetFXVolume                      00000169
SFX_SetLanguage                      00000119
SFX_SetMODVolume                     00000148
SFX_SetMasterVolume                  00000179
SFX_SetMusicType                     00000055


Я тут exe колупал XBTF и XT, пытался найти в чём же разница в скорости/ускорении поворота. В XBTF супер приятно шаттл поворачивает, когда поставишь на него апгрейды. В XT сколько апгрейдов не ставь - всё равно колымага любой корабль. Базовая скорость и ускорение поворота фиксированы..

Если менять TTX шаттла в XBTF и повышать там скорость поворота, то будет эффект XT, когда возросла максимальная скорость поворота, а ускорение нет.

Нашёл три функции, которые считывают в XT и XBTF поворот по pitch, roll, yaw. Пытался их покастрировать - это ограничивало максимальную скорость поворота, т.е. они что-то делают. Улыбка

В XBTF при управлении мышкой exe даже не обращается к ТТХ шаттла. Улыбка Только при управлении с клавы.

Так что дело в функции SA_SetExtraRotSpeed, 000017FA. Но как выйти на её расположение в exe для меня пока загадка.

ollydgb2 классный дебаггер. Улыбка

Last edited by Non on 17:12 12-02-2018; edited 1 time in total
    Posted: 17:01 12-02-2018   
KWON
 328 EGP


Рейтинг канала: 7(586)
: -12
Posts: 139
Location: Україна. Чигирин.
Joined: 24 Nov 2014
Спасибо непревзойденному Shaddie
за супер редактор и за обновленный файл кодов code_xt для программы нашего чудного модератора.

Спасибо гениальному и идеальному модератору Non
за то что код Великого Shaddie можно переделать и осуществить мечты
которые казались раньше несбыточными!

Теперь предлагается разобранный на запчасти их файл для более лёгкого поиска нужных функций,
типа как ассемблер разбивает на секции так и тут.
(Фуф, пол дня потратил на это Ой, не могу!.. )

code_xt_cpp.7z
 Description:
Разбитый на файлы код обжа от пилота Shaddie
 Filename:  code_xt_cpp.7z
 Filesize:  116.62 KB
 Downloaded:  39 Time(s)
    Posted: 20:27 12-02-2018   
aL144
 306 EGP


Рейтинг канала: 6(284)
: 25
Posts: 359
Location: Город непуганных идиотов
Joined: 07 May 2014
Квон, нет ли какого-либо мануала для менее шаристых в этих вещах? Чтобы пилоты могли воплощать свои идеи? Я вот начал ковырять и ничегошеньки не понял, как и что и где работает. К примеру я хотел сделать так, чтобы рейтинг ксенонов и пиратов рос от торговли с ними, а земной керриер добавился в продажу на верфь аргона 2м ТЛ. И можно ли реализовать продажу М1 и М2? и пришить им навигационное меню от М5+ ? Это всего лишь задумки, но не хватает мануала по выложенным ништякам Расстроен
_________________
Там где я был - смерти никогда не было, там где я есть - ее никогда не будет...
    Posted: 22:27 20-03-2018   
KWON
 328 EGP


Рейтинг канала: 7(586)
: -12
Posts: 139
Location: Україна. Чигирин.
Joined: 24 Nov 2014
Давайте так, Вы выложите Ваш 001.obj в вашей теме и напишете что с ним сделать.
Я пропатчу и выложу его там же и всё.
    Posted: 15:42 23-03-2018   
aL144
 306 EGP


Рейтинг канала: 6(284)
: 25
Posts: 359
Location: Город непуганных идиотов
Joined: 07 May 2014
KWON wrote:
Давайте так, Вы выложите Ваш 001.obj в вашей теме и напишете что с ним сделать.
Я пропатчу и выложу его там же и всё.


Без вопросов! Выложу в теме по моду XNTL 1.4

УПД - http://www.elite-games.ru/conference/viewtopic.php?p=3565388#3565388
_________________
Там где я был - смерти никогда не было, там где я есть - ее никогда не будет...

Last edited by aL144 on 23:02 23-03-2018; edited 1 time in total
    Posted: 22:27 23-03-2018   
Канал X-Tension/X-BTF: «Раскопки обжа на предмет юзабельных вещей»
Go to page: Previous  1, 2, 3, 4, 5 | All pages
  
Display posts from previous: 
View previous topic | View next topic |
К списку каналов | Наверх страницы
Цитата не в тему: Тоже мне комплементометатель! (презрительно фыркнул Карторис)

  » Раскопки обжа на предмет юзабельных вещей |
Каналы: Новости | Голосований | 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