|
|
|
Канал X3: Terran Conflict »
Модовый и скриптовый отсек X3: Terran Conflict: «X3TC Моддинг: obj-файлы и маленькие утилитки» |
|
|
za4ot 476 EGP
Рейтинг канала: 5(187) Репутация: 15 Сообщения: 3250 Откуда: Яма Изобилия Зарегистрирован: 08.08.2012 |
|
Можно ли скриптом вызвать из обжа функцию DoSaveGame и как это сделать?
_________________ Пираты - наше всё! |
|
|
Oll
|
|
Всем пилотам привет !
Для тех, кто как и я, внезапно захотел в М6 20 десантников в версии X3:TC 3.2 существует
несколько вариантов развития событий
очень простой - забить.
простой - берете файл отсюда:
в рар архиве:
http://file.moova.ru/t8qlpe6kqwkl.html
не запакованный
http://file.moova.ru/w892eys51gew.html
и кладете по вот такому пути в папку с игрой:
"какой-то_диск:\что-то там\X3 Terran Conflict\L\x3story.obj"
сложный:
вытаскиваете с помощью 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
кладете измененный файл в правильное место:
"какой-то_диск:\что-то там\X3 Terran Conflict\L\x3story.obj"
Если не понимаете хоть что-то из выше написанного, то не делайте ничего
Это касается ТОЛЬКО версии 3.2 и только кораблей М6.
Абсолютно никаких других правок не производилось.
Преимущества - не надо начинать новую игру, работают старые сейвы.
Огромное спасибо CheckerTwo и всем кто участвовал в создании дизассемблера и ассемблера, а так же Whiskas T-Mech за напоминание о существовании hex редакторов и направлении куда копнуть.
з.ы. файлхостинг первый попавшийся на яндексе, так что если есть хорошой егешный - перезалью, ну или перезальют модераторы
|
|
|
X-Reider 88 EGP
Рейтинг канала: 2(19) Репутация: 31 Сообщения: 91
Зарегистрирован: 14.08.2010 |
|
Ситуация такая. Беру оригинальный обж из 3.2, модифицирую с
Cкрытый текст (кликните здесь для просмотра)
read X_AUDIO.MusicTrack ; [16d ; 10h]
pushw 1001d ; 03E9h
if SP[0]>SP[1] then push 0 else push 1
if SP[0]=0 then jump L0000D789
read X_AUDIO.MusicTrack ; [16d ; 10h]
pushw 1005d ; 03EDh
if SP[0]<SP[1] then push 0 else push 1
if SP[0]=0 then jump L0000D789
push 1
jump L0000D78A
L0000D789: push 0
L0000D78A: if SP[0]=0 then jump L0000D79B
read X_AUDIO.MusicTrack ; [16d ; 10h]
mov SP[1],SP[0] ; loc2
pop
jump L0000D7AB
L0000D79B: pushw 1001d ; 03E9h
pushb 5
push 1
callasm SE_Random
|
на
Cкрытый текст (кликните здесь для просмотра)
read X_AUDIO.MusicTrack ; [16d ; 10h]
pushw 1001d ; 03E9h
if SP[0]>SP[1] then push 0 else push 1
if SP[0]=0 then jump L0000D407
read X_AUDIO.MusicTrack ; [16d ; 10h]
pushw 1012d ; 03F4h
if SP[0]<SP[1] then push 0 else push 1
if SP[0]=0 then jump L0000D407
push 1
jump L0000D408
L0000D407: push 0
L0000D408: if SP[0]=0 then jump L0000D419
read X_AUDIO.MusicTrack ; [16d ; 10h]
mov SP[1],SP[0] ; loc2
pop
jump L0000D429
L0000D419: pushw 1001d ; 03E9h
pushb 12
push 1
callasm SE_Random
|
В игре всё работает что надо, но вместо версии игры (в сохранениях) "?". Хелп..
_________________ Для тех, кто всё знает, поиск ответов только начинается.
Последний раз редактировалось: X-Reider (14:24 01-11-2013), всего редактировалось 1 раз |
|
|
DNA78 420 EGP
Рейтинг канала: 9(1060) Репутация: 70 Сообщения: 1191 Откуда: Кыргызстан Зарегистрирован: 12.11.2008 |
|
X-Reider : |
В игре всё работает что надо, но вместо версии игры (в сохранениях) "?". Хелп..
|
Самый простой способ от этого избавиться - это принудительно включить отображение нужной нам версии. Открываем x3story.asm и находим кусок кода с функцией:
Cкрытый текст (кликните здесь для просмотра)
Код: |
GetVersionString:
enter 1, 2
push SP[3] ; arg1
pushd 1220834009d ; 48C472D9h
if SP[0]<>SP[1] then push 0 else push 1
if SP[0]=0 then jump L000029BF
get_strg S00000A38 ; "v1.0.1"
ret
L000029BF: push SP[3] ; arg1
pushd 1223997089d ; 48F4B6A1h
if SP[0]<>SP[1] then push 0 else push 1
if SP[0]=0 then jump L000029D3
get_strg S00000A3F ; "v1.2"
ret
L000029D3: push SP[3] ; arg1
pushd 1225220083d ; 49075FF3h
if SP[0]<>SP[1] then push 0 else push 1
if SP[0]=0 then jump L000029E7
get_strg S00000A44 ; "v1.2.1"
ret
L000029E7: push SP[3] ; arg1
pushd 1228158587d ; 4934367Bh
if SP[0]<>SP[1] then push 0 else push 1
if SP[0]=0 then jump L000029FB
get_strg S00000A4B ; "v1.3"
ret
L000029FB: push SP[3] ; arg1
pushd 1229697856d ; 494BB340h
if SP[0]<>SP[1] then push 0 else push 1
if SP[0]=0 then jump L00002A0F
get_strg S00000A50 ; "v1.4"
ret
L00002A0F: push SP[3] ; arg1
pushd 1234196396d ; 499057ACh
if SP[0]<>SP[1] then push 0 else push 1
if SP[0]=0 then jump L00002A23
get_strg S00000A55 ; "v2.0"
ret
L00002A23: push SP[3] ; arg1
pushd 1242330197d ; 4A0C7455h
if SP[0]<>SP[1] then push 0 else push 1
if SP[0]=0 then jump L00002A37
get_strg S00000A5A ; "v2.1 RC1"
ret
L00002A37: push SP[3] ; arg1
pushd 1243010181d ; 4A16D485h
if SP[0]<>SP[1] then push 0 else push 1
if SP[0]=0 then jump L00002A4B
get_strg S00000A63 ; "v2.1 RC2"
ret
L00002A4B: push SP[3] ; arg1
pushd 1243527337d ; 4A1EB8A9h
if SP[0]<>SP[1] then push 0 else push 1
if SP[0]=0 then jump L00002A5F
get_strg S00000A6C ; "v2.1"
ret
L00002A5F: push SP[3] ; arg1
pushd 1251394867d ; 4A96C533h
if SP[0]<>SP[1] then push 0 else push 1
if SP[0]=0 then jump L00002A73
get_strg S00000A71 ; "v2.5 RC2"
ret
L00002A73: push SP[3] ; arg1
pushd 1252606627d ; 4AA942A3h
if SP[0]<>SP[1] then push 0 else push 1
if SP[0]=0 then jump L00002A87
get_strg S00000A7A ; "v2.5"
ret
L00002A87: push SP[3] ; arg1
pushd 1259867014d ; 4B180B86h
if SP[0]<>SP[1] then push 0 else push 1
if SP[0]=0 then jump L00002A9B
get_strg S00000A7F ; "v2.6 Beta 1"
ret
L00002A9B: push SP[3] ; arg1
pushd 1260972287d ; 4B28E8FFh
if SP[0]<>SP[1] then push 0 else push 1
if SP[0]=0 then jump L00002AAF
get_strg S00000A8B ; "v2.6 RC1"
ret
L00002AAF: push SP[3] ; arg1
pushd 1268147885d ; 4B9666ADh
if SP[0]<>SP[1] then push 0 else push 1
if SP[0]=0 then jump L00002AC3
get_strg S00000A94 ; "v2.6 RC5"
ret
L00002AC3: push SP[3] ; arg1
pushd 1269358709d ; 4BA8E075h
if SP[0]<>SP[1] then push 0 else push 1
if SP[0]=0 then jump L00002AD7
get_strg S00000A9D ; "v2.6 RC5a"
ret
L00002AD7: push SP[3] ; arg1
pushd 1270117510d ; 4BB47486h
if SP[0]<>SP[1] then push 0 else push 1
if SP[0]=0 then jump L00002AEB
get_strg S00000AA7 ; "v2.6"
ret
L00002AEB: push SP[3] ; arg1
pushd 1273155456d ; 4BE2CF80h
if SP[0]<>SP[1] then push 0 else push 1
if SP[0]=0 then jump L00002AFF
get_strg S00000AAC ; "v2.7 Beta 2"
ret
L00002AFF: push SP[3] ; arg1
pushd 1274786256d ; 4BFBB1D0h
if SP[0]<>SP[1] then push 0 else push 1
if SP[0]=0 then jump L00002B13
get_strg S00000AB8 ; "v2.7"
ret
L00002B13: push SP[3] ; arg1
pushd 1275921492d ; 4C0D0454h
if SP[0]<>SP[1] then push 0 else push 1
if SP[0]=0 then jump L00002B27
get_strg S00000ABD ; "v2.7.1"
ret
L00002B27: push SP[3] ; arg1
pushd 1279555186d ; 4C447672h
if SP[0]<>SP[1] then push 0 else push 1
if SP[0]=0 then jump L00002B3B
get_strg S00000AC4 ; "v3.0"
ret
L00002B3B: push SP[3] ; arg1
pushd 1293719545d ; 4D1C97F9h
if SP[0]<>SP[1] then push 0 else push 1
if SP[0]=0 then jump L00002B4F
get_strg S00000AC9 ; "v3.1 RC1"
ret
L00002B4F: push SP[3] ; arg1
pushd 1297349977d ; 4D53FD59h
if SP[0]<>SP[1] then push 0 else push 1
if SP[0]=0 then jump L00002B63
get_strg S00000AD2 ; "v3.1"
ret
L00002B63: push SP[3] ; arg1
pushd 1309269105d ; 4E09DC71h
if SP[0]<>SP[1] then push 0 else push 1
if SP[0]=0 then jump L00002B77
get_strg S00000AD7 ; "v3.1.1"
ret
L00002B77: push SP[3] ; arg1
pushd 1326125118d ; 4F0B103Eh
if SP[0]<>SP[1] then push 0 else push 1
if SP[0]=0 then jump L00002B8B
get_strg S00000ADE ; "v3.2 RC1"
ret
L00002B8B: push SP[3] ; arg1
pushd 1326378721d ; 4F0EEEE1h
if SP[0]<>SP[1] then push 0 else push 1
if SP[0]=0 then jump L00002B9F
get_strg S00000AE7 ; "v3.2 RC2"
ret
L00002B9F: push SP[3] ; arg1
pushd 1326464430d ; 4F103DAEh
sub SP[0],SP[1]
push 0
if SP[0]<=SP[1] then push 0 else push 1
if SP[0]=0 then jump L00002BBE
push SP[3] ; arg1
pushd 1326464430d ; 4F103DAEh
sub SP[0],SP[1]
neg SP[0]
jump L00002BC7
L00002BBE: push SP[3] ; arg1
pushd 1326464430d ; 4F103DAEh
sub SP[0],SP[1]
L00002BC7: pushw 3600d ; 0E10h
if SP[0]<=SP[1] then push 0 else push 1
if SP[0]=0 then jump L00002BD6
get_strg S00000AF0 ; "v3.2"
ret
L00002BD6: push SP[3] ; arg1
pushd 1298991600d ; 4D6D09F0h
if SP[0]=SP[1] then push 0 else push 1
if SP[0]=0 then jump L0001A104
push 0
call84 global.GetModVersionString
ret
L0001A104: get_strg S00000AF5 ; "?"
ret |
|
В нём находим
Код: |
L0001A104: get_strg S00000AF5 ; "?" |
и меняем адрес строки S00000AF5 на S00000AF0. После чего радуемся отображением нужной нам версии.
Такую же операцию нужно провести над файлом x3intro.asm.
Есть ещё один способ и он более грамотен, но с ним в своё время я так и не разобрался. Заключается он в исправлении времени компиляции на оригинальное для обжа v.3.2.
_________________ Очевидное-невероятное
Последний раз редактировалось: DNA78 (13:26 05-11-2013), всего редактировалось 1 раз |
|
|
DNA78 420 EGP
Рейтинг канала: 9(1060) Репутация: 70 Сообщения: 1191 Откуда: Кыргызстан Зарегистрирован: 12.11.2008 |
|
У меня такой вопрос Хочу отключить респавн астероидов и для этого беру следующие строки из обжа:
Cкрытый текст (кликните здесь для просмотра)
Код: |
ASTEROID.SetRebuild:
enter 1, 2
push SP[3] ; arg1
if SP[0]=0 then jump L00085D57
read ASTEROID.var_2012_7 ; [12d ; 0Ch]
push 2
or SP[0],SP[1]
write ASTEROID.var_2012_7 ; [12d ; 0Ch]
pop
jump L00085D61
L00085D57: read ASTEROID.var_2012_7 ; [12d ; 0Ch]
pushb -3d ; 0FDh
and SP[0],SP[1]
write ASTEROID.var_2012_7 ; [12d ; 0Ch]
pop
L00085D61: push 0
ret |
|
и привожу его в такой вид
Cкрытый текст (кликните здесь для просмотра)
ASTEROID.SetRebuild:
enter 1, 2
push SP[3] ; arg1
if SP[0]=0 then jump L00085D57 -> меняю на L00085D61
read ASTEROID.var_2012_7 ; [12d ; 0Ch]
push 2
or SP[0],SP[1]
write ASTEROID.var_2012_7 ; [12d ; 0Ch]
pop
jump L00085D61
L00085D57: read ASTEROID.var_2012_7 ; [12d ; 0Ch]
pushb -3d ; 0FDh
and SP[0],SP[1]
write ASTEROID.var_2012_7 ; [12d ; 0Ch]
pop
L00085D61: push 0
ret
|
Получу ли я желаемый результат при таких действиях?
добавлено спустя 6 минут:
По ходу нужно внести изменения ещё и в этой процедуре
Cкрытый текст (кликните здесь для просмотра)
Код: |
ASTEROID.Destruct:
enter 0, 3
get_object
push 1
pushw 303d ; 012Fh
call86 REBUILD.RequestRebuild ;
pop
read GBODY.var_1000_1 ; [1]
if SP[0]=0 then jump L00085CF3
get_object
push 1
read GBODY.var_1000_1 ; [1]
call85 SECTOR.RemoveAsteroid ; 0000B9B4
pop
L00085CF3: push 0
get_object
call86 GBODY.Destruct ;
ret |
|
Вот только как бы правильно всё сделать?
добавлено спустя 2 минуты:
Или я как бы уже установил ASTEROID.SetRebuild в ноль и в ASTEROID.Destruct ни чего изменять не нужно?
_________________ Очевидное-невероятное
Последний раз редактировалось: DNA78 (21:00 22-12-2013), всего редактировалось 3 раз(а) |
|
|
Lol 77 EGP
Рейтинг канала: 1(6) Репутация: 2 Сообщения: 37
Зарегистрирован: 02.06.2003 |
|
Не думаю что кому-то будет актуально честно говоря, но пока Rebirth такой кривой, решил я вспомнить прошлое и погонять в пропущенный Albion Prelude.
Да ток вот незадача, опять они поменяли количество десантников на М6, а к новому обрезанному x3story.obj из AP, дизассемблер CheckerTwo не подходит, я даж разбираться не стал что и куда там сместили и зачем.
Я правда тот еще захватчик, за всю жизнь ни разу ни один корапь так и не захватил, как-то руки не доходили, но главное иметь возможность !
Вооружился HEX-редактором и - следующее актуально только для версии X3AP 3.1
000D6074 - 000D6075
было: 05 08
стало: 05 14
000D6084 - 000D6085
было: 05 08
стало: 05 14
"какой-то_диск:\что-то там Steam\steamapps\common\x3 terran conflict\addon\L\x3story.obj"
И.. лично у меня нихрена не заработало и я грохнул на перепроверку целый день.
От отчаяния переписал x3story.obj в последний для это версии cat 04.cat(dat) и - снова в цветке 20 десанта !
Вот уж не знаю с чем связанно, но из под папки addon\L\ obj так и не прочитался, так что где взяли его (из 04.cat) туда и кладем назад.
Не думаю что готовый файл кому-то нужен, но так уж.. что бы было.
И на память:
старт SHIP_BIG.GetMaxMarines по адресу 000D6068 - энто М6
Для TP старт на 000D8CС4 и соответственно менять D8CD0 и D8CE0
p.s. Oll, Lol, всегда в своих логинах на этом форуме путаюсь
p.s.s. как обычно больше никаких изменений не проводилось
p.s.s.s. С Астероидами - по идее всё ок и ASTEROID.Destruct трогать не потребуется.
з.ы.ы.ы.ы. От это совпадения под НГ в древней теме И Чекер проявился ! И еще раз тебе спасибо, если б ты дизасм не сделал еще для ТС, так бы и свербила бы меня мысль про десант нереализованная )
04.rar |
Описание: |
|
Имя файла: |
04.rar |
Размер файла: |
8.09 MB |
Скачано: |
431 раз(а) |
Последний раз редактировалось: Lol (16:50 23-12-2013), всего редактировалось 3 раз(а) |
|
|
CheckerTwo 550 EGP
Рейтинг канала: 6(486) Репутация: 103 Сообщения: 412 Откуда: Tomsk Зарегистрирован: 18.08.2004 |
|
DNA78 : |
Хочу отключить респавн астероидов и для этого беру следующие строки из обжа:
|
Вроде все так.
Но надо еще внимательно посмотреть на класс REBUILD, который предназначен для респавна объектов, в том числе и астероидов. Может оказаться, что таблица запросов на респавн астероидов (REBUILD.rb_tAstRebuild) будет расти до бесконечности. Хорошо бы это проверить...
DNA78 : |
ASTEROID.Destruct ни чего изменять не нужно?
|
это не нужно.
|
|
|
Maharius 55 EGP
Репутация: 5 Сообщения: 41 Откуда: Вологда Зарегистрирован: 25.12.2011 |
|
Всем здравствуйте. Есть вопрос по кодингу в обжах следующего характера: какая секция и какая строка/строки для оригинальной игры X3TC версии 3.2 ответственны за незаконные товары? Дело в том, что с помощью X3 Editor создал новые виды товаров, а некоторые из них есть желание сделать нелегальными. Темы по обжам неоднократно смотрел, но данный вопрос нигде освещён не был. Подскажите пожалуйста, как это осуществить?
_________________ Nihili supra |
|
|
Shaddie 556 EGP
Рейтинг канала: 2(12) Репутация: 118 Сообщения: 261 Откуда: Томск Зарегистрирован: 09.09.2004 |
|
Maharius : |
Есть вопрос по кодингу в обжах следующего характера: какая секция и какая строка/строки для оригинальной игры X3TC версии 3.2 ответственны за незаконные товары?
|
Скорее всего копать нужно в обже, в глобальной процедуре InitIllegalWares.
_________________ Быстро едешь, тихо понесут... |
|
|
Maharius 55 EGP
Репутация: 5 Сообщения: 41 Откуда: Вологда Зарегистрирован: 25.12.2011 |
|
Shaddie, спасибо. А Вы, кстати говоря, обж для "Х3ТС: Xtended-Mod" часом не разбирали?
_________________ Nihili supra |
|
|
XXXL 77 EGP
Рейтинг канала: 4(67) Репутация: 7 Сообщения: 271
Зарегистрирован: 12.12.2010 |
|
Maharius : |
Shaddie, спасибо. А Вы, кстати говоря, обж для "Х3ТС: Xtended-Mod" часом не разбирали?
|
Мне кажется, OBJ там вообще не трогали.
|
|
|
Maharius 55 EGP
Репутация: 5 Сообщения: 41 Откуда: Вологда Зарегистрирован: 25.12.2011 |
|
XXXL, в папке Director есть похожие на обжи файлы, но нет уверенности, что это они. Я их конечно распатронил, но толку ноль. А вы хотите сказать, что Obj файлы от оригинального Земного Конфликта применимы и к Кстендед-Моду?
_________________ Nihili supra |
|
|
XXXL 77 EGP
Рейтинг канала: 4(67) Репутация: 7 Сообщения: 271
Зарегистрирован: 12.12.2010 |
|
Maharius : |
XXXL, в папке Director есть похожие на обжи файлы, но нет уверенности, что это они. Я их конечно распатронил, но толку ноль. А вы хотите сказать, что Obj файлы от оригинального Земного Конфликта применимы и к Кстендед-Моду?
|
Файлы x3intro.obj, x3story.obj упакованы в 13 cat/dat и находятся в папке "L".
Читайте эту тему сначала. Тут всего 8 страниц.
|
|
|
Maharius 55 EGP
Репутация: 5 Сообщения: 41 Откуда: Вологда Зарегистрирован: 25.12.2011 |
|
XXXL, тема была перечитана уже много раз. Мне давно известно, где находятся обжи для оригинальной игры Х3ТС. Вам же был задан конкретный вопрос.
_________________ Nihili supra |
|
|
Shaddie 556 EGP
Рейтинг канала: 2(12) Репутация: 118 Сообщения: 261 Откуда: Томск Зарегистрирован: 09.09.2004 |
|
Maharius : |
А Вы, кстати говоря, обж для "Х3ТС: Xtended-Mod" часом не разбирали?
|
Я этот мод не смотрел. Если судить по описанию, то похоже его правили. Точно сказать можно только если посмотреть файлы мода. Для Х3ТС смотрел только оригинальный обж.
_________________ Быстро едешь, тихо понесут... |
|
|
XXXL 77 EGP
Рейтинг канала: 4(67) Репутация: 7 Сообщения: 271
Зарегистрирован: 12.12.2010 |
|
Maharius : |
XXXL, тема была перечитана уже много раз. Мне давно известно, где находятся обжи для оригинальной игры Х3ТС. Вам же был задан конкретный вопрос.
|
Мне кажется, OBJ там вообще не трогали.
OBJ изменялся только в моде ТОТТ(Combo).
Файлы x3intro.obj, x3story.obj упакованы в 13 cat/dat и находятся в папке "L".
В папке Director нет файлов похожих на OBJ, там находятся скрипты MD.
|
|
|
Maharius 55 EGP
Репутация: 5 Сообщения: 41 Откуда: Вологда Зарегистрирован: 25.12.2011 |
|
XXXL, спасибо, теперь стало понятно, что к чему.
добавлено спустя 8 минут:
Shaddie, ясно. А может ли принцип динамически развивающейся (растущей) Вселенной развиваться MD-скриптами? Или это всё-таки обж? Просто тут в ходе краткой дискуссии было упомянуто, что обжи, как таковые, скорее всего правлены не были.
_________________ Nihili supra
Последний раз редактировалось: Maharius (20:03 02-10-2014), всего редактировалось 1 раз |
|
|
Shaddie 556 EGP
Рейтинг канала: 2(12) Репутация: 118 Сообщения: 261 Откуда: Томск Зарегистрирован: 09.09.2004 |
|
Maharius : |
А может ли принцип динамически развивающейся (растущей) Вселенной развиваться MD-скриптами? Или это всё-таки обж?
|
Скрипты - это лишь возможность вызывать какие то функции обжа (не все, а только предусмотренные разработчиками игры), который уже в свою очередь транслирует их в екзешник. На сколько знаю в самом обже есть все необходимые функции для динамического изменения игровой вселенной, а вот доступно ли их использование в скриптах без изменения обжа - не знаю.
_________________ Быстро едешь, тихо понесут... |
|
|
XXXL 77 EGP
Рейтинг канала: 4(67) Репутация: 7 Сообщения: 271
Зарегистрирован: 12.12.2010 |
|
Maharius : |
...А может ли принцип динамически развивающейся (растущей) Вселенной развиваться MD-скриптами? Или это всё-таки обж? Просто тут в ходе краткой дискуссии было упомянуто, что обжи, как таковые, скорее всего правлены не были.
|
В X-Tended динамическое открытие секторов реализовано МД-скриптами,
почитать можно здесь
ссылка, http://x3tc.net/x3_forum/?tid=1006,
разумеется не с первой страницы.
И вопросы задавать лучше там-же.
|
|
|
DIMOSUS.X 995 EGP
Рейтинг канала: 8(921) Репутация: 188 Сообщения: 3252 Откуда: Vilnius/Minsk Зарегистрирован: 06.08.2008 |
|
А я уж думал все бросились модить ребирч
_________________ Даже ежики ежиков могут с трудом,
Иначе бы ежики были кругом. |
|
|
|
|
|
Канал X3: Terran Conflict ->
Модовый и скриптовый отсек X3: Terran Conflict: «X3TC Моддинг: obj-файлы и маленькие утилитки» |
|