|
|
|
Конвертирование миссий Thief 1 в Thief 2 (Converting Dromed 1 -> Dromed 2)
Автор: Gonchong
Это обучалка, как было давно обещано, в которой объеденены вместе обновления и коррекции алгоритма конвертирования миссий D1 в D2. Преобразование миссии The Docks этим методом заняло около 30 минут. Спасибо членам форума TTLG за это.
1) Открываем вашу миссию в D1 и используем команду "do_report". Сохраняем отчет (report) как textures.cmd
2) Открываем файл отчета и удаляем все, кроме имен текстур. (они идут в формате текстур XxY ####. Вам нужно оставить только имя) Jerk: Вам нужен раздел под именем 'World Rep Textures' В этом разделе каждая линия следуюющего типа: ' FLOOR5 064x064 2| 68>#######' Оставьте только этот раздел, удалив остальные. Сохраните файл. Jerk: если текстур с пометкой Is Unused (не используется) слишком много, то попробуйте команду 'compress_family all'. При это все неиспользуемые текстуры удалятся.
3) Начинаем охотится на текстуры T2. Распакуйте файл fam.crf, что на T2: CD2. Найдите соответствующий файл под тем же именем для каждой текстуры, указанной в textures.cmd. Когда вы нашли файл, тогда введите следующее вместо записи типа XxY ####: "load_a_texture папка текстура". Если вы не нашли, то создайте папку под тем же именем, что и в T1 и скопируйте туда оригинальную текстуру. Убедитесь, что вы сохранили текстуры в том же порядке, в котором они и были. Теперь вставьте в начале файла линию "load_family blank" и сохраните его.
Jerk: Это муторно, поэтому я постараюсь подробно объяснить в чем дело. Итак, наш файл textures.cmd представляет собой (разумеется, его малая часть):
... WOOD 064x128 208| 34>#### ASFALT 064x064 209| 154>################ MOLD2 128x256 Is Unused ...
ОБРАТИТЕ ВНИМАНИЕ! Вы видите 208, 209? Это - порядковые номера текстур. Они ДОЛЖНЫ быть соблюдены - т.е. нельзя менять порядок текстур! Даже если написано 'Is Unused' (не используется)
Сперва займемся первой текстурой: WOOD. Перейдем к папке Fam, содержащей текстуры Thief 2. Стандартной утилитой 'Поиск' от Microsoft :) найдем все файлы, имеющие имя WOOD. Итак, такой файл находится в папке Core_2. Теперь вместо строки ' WOOD 064x128 208| 34>####' введем "load_a_texture core_2 wood"
Теперь ищем ASFALT. Он находится в папке Core_1. Заменяем ' ASFALT 064x064 209| 154>################' на "load_a_texture core_1 asfalt"
И последняя - MOLD2. Хотя она и не используется, все же мы должны ее обработать, иначе порядковые номера будут сбиты. MOLD2 отсутствует в Thief 2. Поэтому ображаемся к Fam игры Thief 1 и ищем, где она находится. А она находится в папке Opera. Создаем папку Opera в папке Fam (Thief 2) и копируем туда текстуру MOLD2. Добавляем строку "load_a_texture opera mold2". По непроверенным данным, все текстуры, независимо где они были - в Opera или еще какой нибудь папке Thief 1, можно скинуть в одну папку. Например T1Textur. И добавлять типа "load_a_texture T1Textur mold2".
Ну и в конце добавляем в начало "load_family blank". В итоге мы получаем:
load_family blank ... load_a_texture core_2 wood load_a_texture core_1 asfalt load_a_texture opera mold2 ...
Сохраняем этот файл как textures.cmd
Альтернативный вариант, использующий скрипты Perl Автор - Bruny. Для этого вам нуже Pert. Достаньте следующий файл http://members.xoom.com/buxtehude/txtmap.pl
В нем найден баг. Замените линию: print OUTFILE "load_family $TextureMap{$txt} $txt\n"; этой print OUTFILE "load_a_texture $TextureMap{$txt} $txt\n";
Сгенерируйте отчет командой "do_report" и сохраните его как "texrep". Скопируйте Perl-программу в вашу Thief 1 папку. В режиме DOS перейдите в папку Thief 1, используяй команду типа "cd \game\Thief", и выполните скрипт, введя:
perl txtmap.pl texrep
Сгенерируется файл под именем 'textures.cmd', который вы сможете позже выполнить в DromEd 2 командой "run textures.cmd".
4) Распакуйте все Thief 2 текстуры в вашу папку Thief1/Fam. Сохраните оригинальную структуру папок. Сначала убедитесь, что удалили все активные (установелные) фан-миссии.
5) Откройие заново DromEd 1 и загрузите миссию для конвертирования.
6) В консоли (командном окне) введите "run textures.cmd" Все текстуры в миссии теперь T2 текстуры.
7) Сохраните миссию как COW файл.
8) Выйдите из DromEd 1 и запустите DromEd 2.
9) Загрузите свой COW файл. Jerk: Если DromEd 2 вылетает при загрузке (выдается окно, в котром говорится об ошибке, связанной с "obj_min"), то предварительно выполните шаг 12, а затем попробуйте снова.
10) Введите "set_gamesys blah".
11) Сохраните миссию как MIS файл и выйдите из DromEd 2.
12) Откройте dark.cfg. Введите в строке "obj_min" значение типа "-18192". Сохраните и выйдите.
13) Запустите DromEd 2 и загрузите MIS файл.
14) Появится окно, сообщающее о том, что blah.gam не найден. Нажмите 'Да'. В появившемся окне выберите Dark.gam.
15) Уровень ДОЛЖЕН загрузится без проблем и объектная иерархия должна быть игры Thief 2.
16) Введите "find_lost_objs" (будут найдены неизвестные объекты) и затем "purge_missing_objs" (DromEd 1 объекты будут удалены из разлела 'missing' (отсутствующие) в объектной иерархии.
17) Ну и на конец, убедитесь, что ввели script_load convict" и "script_load gen".
18) Заканчивая работу, портализируйте и сохраните MIS файл.
19) Выйдите из DromEd и откройте dark.cfg.
20) Верните на место старое значение строки "obj_min", которое должно быть равным "-8192".
21) Сохраните dark.cfg и выйдите из него. Теперь миссия должна загружаться без проблем и должна быть совместимая с другими.
ИЗВЕСТНЫЕ ПРОБЛЕМЫ
* Уровень может быть весь в Jorge, текстуры не станут на свои места. Да это может быть в некоторых миссиях (в 2 из 3, что я пробовал. Jerk: у меня тоже не вышло :(. Это может быть по тому, что вы загружали в DromEd 1 воду/лаву в палитру. Во всяком случае, вам прийдется заново 'раскрасить' уровень... * Факелы меняю твое направление - вам прийдется корректировать это вручную. Это может быть и с некоторыми другими объектами, ко я пока не замечал. * Некоторые AI нужно заменить * Звуковые схемы отличны от T1 * Некоторые движения изменились (например, Drunk 0) * Пользовательский gamesys будет потерян.
|
|
|
|