|
|
|
Канал X3: Terran Conflict »
Модовый и скриптовый отсек X3: Terran Conflict: «X3TC Моддинг: obj-файлы и маленькие утилитки» |
|
|
Maharius 55 EGP
Репутация: 5 Сообщения: 41 Откуда: Вологда Зарегистрирован: 25.12.2011 |
|
Shaddie, XXXL, спасибо вам.
добавлено спустя 5 минут:
DIMOSUS.Х, ага, понеслась душа в рай. А кому-то ещё интересно и в терране покопаться .
_________________ Nihili supra
Последний раз редактировалось: Maharius (14:38 03-10-2014), всего редактировалось 1 раз |
|
|
XXXL 77 EGP
Рейтинг канала: 4(67) Репутация: 7 Сообщения: 271
Зарегистрирован: 12.12.2010 |
|
DIMOSUS.X : |
А я уж думал все бросились модить ребирч
|
Пока есть такой OBJ, как Combo(TOTT), нет смысла переходить даже на АР.
|
|
|
Maharius 55 EGP
Репутация: 5 Сообщения: 41 Откуда: Вологда Зарегистрирован: 25.12.2011 |
|
Есть ещё момент: при исследовании субтипов туманных облаков из X2 the Threat http://www.elite-games.ru/x2/faq_mods.shtml и в особенности их вредоносных свойств возникла мысль: можно ли поражающие свойства обеспечить и набору туманностей для X3 Terran Conflict Xtended Mod 2.2? Вопрос только в том, скриптами ли это делается, или всё-таки обжами (правка какого сегмента нужна)? Если кто знает, скажите пожалуйста.
_________________ Nihili supra |
|
|
Shaddie 556 EGP
Рейтинг канала: 2(12) Репутация: 118 Сообщения: 261 Откуда: Томск Зарегистрирован: 09.09.2004 |
|
Maharius : |
Если кто знает, скажите пожалуйста.
|
Переменные var_2043_8 (ShieldReduction) и var_2043_9 (HullReduction) задаются при создании туманности NEBULA.Create - там и нужно копать.
В X2 в процедуре NEBULA.Create вызывались екзешные функции SA_GetNebulaTypeShieldReduction и SA_GetNebulaTypeHullReduction.
_________________ Быстро едешь, тихо понесут... |
|
|
Maharius 55 EGP
Репутация: 5 Сообщения: 41 Откуда: Вологда Зарегистрирован: 25.12.2011 |
|
То есть изначально создаётся сама туманность: в папку Object помещается её тело, а затем она прописывается для Х2 в ТNebula, а в X3TC в файле ТSpecial да? А вот что касается самих переменных, на этом месте можно немного поподробней? Если я найду в обже для версии 3.2 эти функции и представлю тут их фрагменты, вы подскажете, как правильно ими оперировать?
добавлено спустя 8 минут:
А то стыдно признаться конечно, но, к моему сожалению, я пока плохо разбираюсь в этом вопросе по причине отсутствия специальных знаний и навыков программирования (хотя желание и стремление безусловно есть). Дизассемблером распатронил обжик, разбираюсь вот...
_________________ Nihili supra
Последний раз редактировалось: Maharius (19:59 26-10-2014), всего редактировалось 1 раз |
|
|
Alien_181 56 EGP
Репутация: 2 Сообщения: 66
Зарегистрирован: 13.05.2013 |
|
И почему Egosoft не выложит исходники? столько времени уже прошло, хочется перелопатить весь ихний корявый движок.
Последний раз редактировалось: Alien_181 (17:38 03-11-2014), всего редактировалось 1 раз |
|
|
Maharius 55 EGP
Репутация: 5 Сообщения: 41 Откуда: Вологда Зарегистрирован: 25.12.2011 |
|
Alien_181, коммерческий интерес и охрана интеллектуальной собственности, я полагаю . Не сомневаюсь, наши дарования на ЕГе смогли бы, так скажем, его значительно оптимизировать.
_________________ Nihili supra |
|
|
CheckerTwo 550 EGP
Рейтинг канала: 6(486) Репутация: 103 Сообщения: 412 Откуда: Tomsk Зарегистрирован: 18.08.2004 |
|
В первом посте подправленные версии компилятора/декомпилятора.
Ассемблер, версия 4.12b:
- исправлена ошибка при генерации имен локальных переменных, которая приводила к неоднозначной компиляции ASM->OBJ (спасибо ЛЕОПАРД)
Дизассемблер, версия 4.15b
- исправлена ошибка при генерации имен локальных переменных, которая приводила к неоднозначной компиляции ASM->OBJ (спасибо ЛЕОПАРД)
Странно, что косяк так долго продержался
|
|
|
warwar39 50 EGP Репутация: 0 Сообщения: 8
Зарегистрирован: 17.12.2014 |
|
win8. x3tc v3.2.
Из cat13 достал x3story.obj, дизассемблировал(4.15b), потом собрал(4.12b), собранный файл имеет размер 1 851 381 байт, оригинальный 3 790 909 байт. При загрузке сохранения соответственно получаю вылет. Я профан, с ассемблером раньше дела не имел.
Вопрос где я натупил? Файла ошибок нет.
|
|
|
XXXL 77 EGP
Рейтинг канала: 4(67) Репутация: 7 Сообщения: 271
Зарегистрирован: 12.12.2010 |
|
warwar39 : |
...Вопрос где я натупил? Файла ошибок нет.
|
После всего - новая игра.
|
|
|
warwar39 50 EGP Репутация: 0 Сообщения: 8
Зарегистрирован: 17.12.2014 |
|
XXXL Спасибо!
Жаль, что надо начинать новую игру.
|
|
|
DNA78 421 EGP
Рейтинг канала: 9(1060) Репутация: 70 Сообщения: 1215 Откуда: Кыргызстан Зарегистрирован: 12.11.2008 |
|
Как то странно работает ассемблер с патчами. Некоторые пропатченные обжи работают как надо, а некоторые, что бы заработали нужно по новой пересобирать обж, а не патчить. Почему так?
Например:
изменяю функцию SHIP.tra.lya.lya, затем патчу обж и не работает, а вот если просто меняю оригинальную функцию на свою и пересобираю обж, то всё работает как надо
_________________ Очевидное-невероятное |
|
|
XXXL 77 EGP
Рейтинг канала: 4(67) Репутация: 7 Сообщения: 271
Зарегистрирован: 12.12.2010 |
|
warwar39 : |
XXXL Спасибо!
Жаль, что надо начинать новую игру.
|
Если серьёзные изменения, то надо перекомпилировать. А если мелкие данные, тогда можно и HEX-редактором - побайтно. Тогда новую игру начинать не надо.
|
|
|
Gaynec 77 EGP
Рейтинг канала: 4(99) Репутация: 4 Сообщения: 153
Зарегистрирован: 13.03.2012 |
|
Ставишь мод заходишь в скрипт редактор..и очистить кешь игры все изменение будут без начала новой игры..!
_________________ X3Terran Conflict 2 HardMod |
|
|
warwar39 50 EGP Репутация: 0 Сообщения: 8
Зарегистрирован: 17.12.2014 |
|
Gaynec : |
заходишь в скрипт редактор..и очистить кешь игры
|
В скрипт редактор не зайти, вылет происходит при загрузке сейва.
добавлено спустя 2 минуты:
Еще вопрос, где можно облегчить абордаж ксенонов?
добавлено спустя 2 минуты:
XXXL : |
тогда можно и HEX-редактором - побайтно. Тогда новую игру начинать не надо.
|
Побайтно для меня сложновато будет(((.
Последний раз редактировалось: warwar39 (00:49 19-12-2014), всего редактировалось 2 раз(а) |
|
|
warwar39 50 EGP Репутация: 0 Сообщения: 8
Зарегистрирован: 17.12.2014 |
|
Если я правильно понял, из out файла можно узнать адрес переменной и изменить ее значение HEX-редактором в obj файле?
|
|
|
XXXL 77 EGP
Рейтинг канала: 4(67) Репутация: 7 Сообщения: 271
Зарегистрирован: 12.12.2010 |
|
warwar39 : |
... Еще вопрос, где можно облегчить абордаж ксенонов? ...
|
function SHIP_BIG.GetDefenceLevel()
warwar39 : |
...
Если я правильно понял, из out файла можно узнать адрес переменной и изменить ее значение HEX-редактором в obj файле? ...
|
Да.
|
|
|
warwar39 50 EGP Репутация: 0 Сообщения: 8
Зарегистрирован: 17.12.2014 |
|
XXXL Спасибо!
|
|
|
warwar39 50 EGP Репутация: 0 Сообщения: 8
Зарегистрирован: 17.12.2014 |
|
Не могу понять, вот строка из out файла из определения функции SHIP_BIG.GetDefenceLevel() :
Код: |
000C4847: 05 55 | 2 pushb 85d ; 55h |
Открываю obj файл, и перемещаюсь к строке 00c4840:
Код: |
00c4840: 0f00 2605 060e 0007 105b 3400 0c48 4c01 ..&......[4..HL. |
И не нахожу там заветные цифры 05 55, в чем я опять натупил?
Последний раз редактировалось: warwar39 (02:34 20-12-2014), всего редактировалось 1 раз |
|
|
warwar39 50 EGP Репутация: 0 Сообщения: 8
Зарегистрирован: 17.12.2014 |
|
Был пост Oll, о увеличении морпехов на m6:
Oll : |
Всем пилотам привет !
Для тех, кто как и я, внезапно захотел в М6 20 десантников в версии X3:TC 3.2
.......
вытаскиваете с помощью X3 Editor 2 файл x3story.obj (вытаскивать с vfs, да бы по катам не бродить и не искать последний)
открываете файл любым hex редактором, идете на адреса:
000С22С4 - 000С22С5
там видите: 05 05
меняете на: 05 14
000С22D4 - 000С22D5
там видите: 05 05
меняете на: 05 14
........
|
В своем x3story.obj я нашел этому коду соответствие:
Код: |
00c22c0: f70d 0001 0505 5d34 000c 22c0 0d00 0132 ......]4.."....2
00c22d0: 000c 22c2 0505 1400 0224 8324 0183 6e00 .."......$.$..n.
|
А вот out файл вроде бы ему не соответствует:
Код: |
;
; === GetMaxMarines =============================================
; function SHIP_BIG.GetMaxMarines();
;
| SHIP_BIG.GetMaxMarines:
000C22A4: 6E 0003 | 0 enter 0, 3
000C22A7: 01 | 0 push 0
000C22A8: 88 0009C9F7 | 1 call88 SHIP.GetMaxMarines
000C22AD: 0D 0001 | 1 push SP[0] ; loc1
000C22B0: 05 05 | 2 pushb 5
000C22B2: 5D | 3 if SP[0]>=SP[1] then push 0 else push 1
000C22B3: 34 000C22C0 | 2 if SP[0]=0 then jump L000C22C0
000C22B8: 0D 0001 | 1 push SP[0] ; loc1
000C22BB: 32 000C22C2 | 2 jump L000C22C2
000C22C0: 05 05 | 1 L000C22C0: pushb 5
000C22C2: 14 0002 | 2 L000C22C2: mov SP[1],SP[0] ; loc1
000C22C5: 24 | 2 pop
000C22C6: 83 | 1 ret
000C22C7: 24 | pop
000C22C8: 01 | push 0
000C22C9: 83 | ret
|
Ошибка дизассемблера?
З.Ы. Может я чего то в адресации не понял?
Последний раз редактировалось: warwar39 (02:38 20-12-2014), всего редактировалось 2 раз(а) |
|
|
|
|
|
Канал X3: Terran Conflict ->
Модовый и скриптовый отсек X3: Terran Conflict: «X3TC Моддинг: obj-файлы и маленькие утилитки» |
|