SergiK_KilleR |
09.09.2013 09:42 |
Цитата:
Сообщение от Sid
(Сообщение 31963)
В общем я думаю обновления дбц теперь поставляются именно как обновления, а не целыми заменяемыми файлами. И заголовок видимо разный, так как редактором уже не читается. Времени все нет посмотреть, может сегодня доберусь и узнаю точно.
|
именно так, DBC идет 2х форматов: WDBC (старый формат) и PTCH (патчи), есть ещё db2, но там немного другая структура.
Структура заголовка ptch файла:
Код:
/* struct header information */
// $this->headerDataHex["PTCH"] = array( // 16 bytes, 4 fields
// "SIGN" => "", // 4 bytes, string
// "patchSize" => "", // 4 bytes, packed int
// "sizeBefore" => "", // 4 bytes, packed int
// "sizeAfter" => "", // 4 bytes, pachecd int
// );
// $this->headerDataHex["MD5_"] = array( // 40 bytes, 4 fields
// "SIGN" => "", // 4 bytes, string
// "md5BlockSize" => "", // 4 bytes, packed int
// "md5sizeBefore" => "", // 16 bytes, string hex
// "md5sizeAfter" => "", // 16 bytes, string hex
// );
// $this->headerDataHex["XFRM"] = array( // 12 bytes, 3 fields
// "SIGN" => "", // 4 bytes, string
// "xfrmBlockSize" => "", // 4 bytes, packed int
// "xfrmType" => "", // 4 bytes, string
// );
// if($this->headerDataHex["XFRM"]["xfrmType"] == 'BSDIFF')
// $this->headerDataHex["BSDIFF"] = array( // 32 bytes
// "SIGN" => "", // 8 bytes, string
// "ctrlBlockSize" => "", // 8 bytes, packed bigint
// "diffBlockSize" => "", // 8 bytes, packed bigint
// "sizeAfter" => "", // 8 bytes, packed bigint
// );
примерно так, xfrmType встречается 2 типов - BSDIFF (пропатчивание, изменение строк и столбцов) и COPY (как правило после блока XFRM идет структура dbc файла начиная с заголовка)
у TOM_RUS есть утилита для пропатчивания дбц ( http://mywowtools.googlecode.com/svn...izzard.Patcher )
|