Сообщение отредактировал Sergeanur: 09 November 2010 - 12:26
Mafia 2 - разбор ресурсов
#21
Отправлено 08 November 2010 - 19:42
GTA Stories ships in...
#22
Отправлено 08 November 2010 - 23:58
#23
Отправлено 09 November 2010 - 12:26
GTA Stories ships in...
#24
Отправлено 09 November 2010 - 12:57
http://svn.gib.me/pu...illusion/trunk/ - тут что-то вроде исходников только для C++
Сообщение отредактировал Sergeanur: 09 November 2010 - 13:00
GTA Stories ships in...
#25
Отправлено 09 November 2010 - 13:22
#26
Отправлено 12 November 2010 - 05:40
http://forum.xentax....?p=44788#p44788
Прикрепленные файлы
#27
Отправлено 12 November 2010 - 08:20
#28
Отправлено 13 November 2010 - 05:48
#29
Отправлено 13 November 2010 - 07:10
Скоро ожидаем мафия2-плагин для второй занозы. Со всеми вытекающими последствиями.
первый темповый лоад индексов и вертексов в занозу: (см.скрин ниже)
И
Олегу мы всю инфу еще в начале сентября дали
Об этом пишут на МафияПаб
Dageron
На счет скриптов пока только так (см.ниже):
http://www.mafiapub....h...t=0&start=0
Прикрепленные файлы
Сообщение отредактировал GHOST: 13 November 2010 - 07:10
#30
Отправлено 13 November 2010 - 17:51
#31
Отправлено 14 November 2010 - 09:08
http://www.pic-uploa.../view-7751499/d ... e.jpg.html
http://forum.xentax....?p=44790#p44790
#32
Отправлено 12 May 2011 - 20:07
Можете приступать: http://cg.forexperts...l-from-mafia-2/как разберут до конца модели - конвертнем на 4ку
GTA Stories ships in...
#33
Отправлено 13 May 2011 - 04:54
#34
Отправлено 06 August 2017 - 11:03
Всем привет!
Пишу программу для раскодирования SDS файла(Спасибо товарищу San'OG за его подробное изложение структуры файла )
Уважаемые гуру не поможете разархивировать файл.
Делаю так:
unsigned char* input = new unsigned char[sd->compressedStreamSize];// unsigned char* out = new unsigned char[sd->uncompressedStreamSize]; fread(input, 1, sd->compressedStreamSize, f); UncompressData(input, sd->compressedStreamSize, out, sd->uncompressedStreamSize); fwrite(out, 1, sd->uncompressedStreamSize, dest);
структура sd:
struct StreamData{ int compressedStreamSizeWithHeader; bool compress;//? если 0 идет какая - то неизвестная фигня вместо сжатого блока int uncompressedStreamSize;// (по умолчанию 16384 байт или 16 КБайт) int iCount0; int iCount1; int iCount2; int compressedStreamSize; int iCount3; int iCount4; int iCount5; }; int readStreamHeader(FILE* f, std::ofstream& ofst, StreamData& sd){ int iSizeBuff = 0; ofst << "\n"; ofst << "StreamHeader " << "\n"; sd.compressedStreamSizeWithHeader; iSizeBuff += fread(&sd.compressedStreamSizeWithHeader, 1, 4, f); ofst << " compressedStreamSizeWithHeader: " << sd.compressedStreamSizeWithHeader << "\n"; bool bComp;// ? если 0 идет какая - то неизвестная фигня вместо сжатого блока iSizeBuff += fread(&bComp, 1, 1, f); ofst << " compress: " << bComp << "\n"; sd.uncompressedStreamSize;// (по умолчанию 16384 байт или 16 КБайт) iSizeBuff += fread(&sd.uncompressedStreamSize, 1, 4, f); ofst << " uncompressedStreamSize: " << sd.uncompressedStreamSize << "\n"; sd.iCount0; iSizeBuff += fread(&sd.iCount0, 1, 4, f); ofst << " Count0: " << sd.iCount0 << "\n"; sd.iCount1; iSizeBuff += fread(&sd.iCount1, 1, 4, f); ofst << " Count1: " << sd.iCount1 << "\n"; sd.iCount2; iSizeBuff += fread(&sd.iCount2, 1, 4, f); ofst << " Count2: " << sd.iCount2 << "\n"; sd.compressedStreamSize; iSizeBuff += fread(&sd.compressedStreamSize, 1, 4, f); ofst << " compressedStreamSize: " << sd.compressedStreamSize << "\n"; sd.iCount3; iSizeBuff += fread(&sd.iCount3, 1, 4, f); ofst << " Count3: " << sd.iCount3 << "\n"; sd.iCount4; iSizeBuff += fread(&sd.iCount4, 1, 4, f); ofst << " Count4: " << sd.iCount4 << "\n"; sd.iCount5; iSizeBuff += fread(&sd.iCount5, 1, 4, f); ofst << " Count5: " << sd.iCount5 << "\n"; return iSizeBuff; };
Вроде все правильно и до разархивирования все работает.
Функция разархивирования:
int UncompressData(unsigned char* abSrc, int nLenSrc, unsigned char* abDst, int nLenDst) { z_stream zInfo = { 0 }; zInfo.total_in = zInfo.avail_in = nLenSrc; zInfo.total_out = zInfo.avail_out = nLenDst; zInfo.next_in = abSrc; zInfo.next_out = abDst; int nErr, nRet = -1; nErr = inflateInit(&zInfo); // zlib function if (nErr == Z_OK) { nErr = inflate(&zInfo, Z_FINISH); // zlib function if (nErr == Z_STREAM_END) { nRet = zInfo.total_out; } } inflateEnd(&zInfo); // zlib function return(nRet); // -1 or len of output }
Наверно не правильные размеры сжатого и разархивированного файлов передаю в функцию.
Сообщение отредактировал MaksSh: 06 August 2017 - 11:15
Количество пользователей, читающих эту тему: 3
0 пользователей, 3 гостей, 0 анонимных