Перейти к содержимому


Внимание!

Это форум по извлечению ресурсов из игр: музыки, звуков, текстур, 3D-моделей...
Перед поиском ответов на форуме, рекомендуется ознакомиться с основным сайтом EXTRACTOR.ru!
[ Прочтите внимательно - правила создания тем и ответа в них ]
Все вопросы по запуску игр задавайте в другом месте: Установка и запуск игр.


Фотография

Чернокнижник (Dispel) [.SPR]

Чернокнижник Dispel

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 3

#1 BLACK

BLACK

    Старший сержант

  • Пользователи
  • 59 сообщений

Отправлено 21 November 2014 - 18:23

Привет, наткнулся тут на старую диаблоподобную РПГ, под названием "Чернокнижник", в английской варианте "Dispel", год выпуска 2001, остальное как обычно изометрия, спрайты и т.д.) На сайте Extractor в игровом классификаторе она есть и есть распаковщик ресурсов формата "SPR", однако опробовав его на файлах из игры, понял, что что-то он ведет себя странно: распаковывает 7-9 изображений и все, причем понятно что их там несколько больше, при этом изображения какие-то мутные темно-зеленых цветов, тут конечно два варианта, либо я неправ и что-то делаю не так, либо прога работает не очень верно, прошу помочь и разобраться в такой вот ситуации) Спасибо.

Примеры файлов игры из разных папок формата "SPR" по ссылке: http://f-bit.ru/543675.



#2 -=CHE@TER=-

-=CHE@TER=-

    Полковник

  • Администраторы
  • 971 сообщений
  • Пол:Мужчина

Отправлено 22 November 2014 - 14:55

Программа действительно работает неверно (надо будет потом попросить чтобы заменили). Я даже не смотрел её - просто запустил на самом толстом .SPR файле из архива и убедился, что по размеру слишком мало выходных файлов для такого большого архива.

Так что написал свою, заодно и поправил работу с цветом.
Dispel .SPR to .TGA image converter
Просьба проверить и отписаться, если что-то будет не так, ибо проверял программу только на выложенных файлах.

Пара замечаний:
1) У .SPR коллекций нет заголовков по которым их можно отличить от других файлов, так что вызвав программу на каком-то другом формате можно отхватить фатальную ошибку.
2) Коллекции .SPR представляют из себя архивы аж трёх вложенностей (подозреваю, что по типам анимации - ходьба, атака, смерть и т.д.). Чтобы как-то это разделить, имена распакованных файлов из каждого архива будут называться так:
AABBBCCC.tga
где:
AA - первый уровень вложенности
BBB - второй уровень вложенности
CCC - третий уровень вложенности
Например:
03015134.tga - 3 уровень (от нуля 0..3), 15 подуровень (0..15), 134 изображение (0..134).
Просьба сообщить, если на каком-то .SPR имена файлов перевалят за 8 символов.
3) Раньше не писал, но, думаю, пригодится - conv_all.bat:
@echo off
for %%a in (*.spr) do (
  md "%%~na"
  cd "%%~na"
  ..\sprtotga.exe ..\%%a
  cd ..
)
Складываем этот файл conv_all.bat, sprtotga.exe, а также все .SPR в один каталог и запускаем conv_all.bat - каждый архив будет распакован в свой отдельный каталог с именем файла. К примеру, balrog.spr в каталог balrog, bear.spr в каталог bear и т.д.

#3 BLACK

BLACK

    Старший сержант

  • Пользователи
  • 59 сообщений

Отправлено 23 November 2014 - 14:18

Спасибо, все как обычно отлично работает) имена файлов SPR при выдирании ресурсов за 8 символов, не перевалили. Среди ресурсов нашел кое-что интересненькое - то что нужно!)

А еще, вот conv_all.bat - это вообще бомба!)) - Очень круто помогает экономить время, спасибо отдельно (и насколько я понял ее можно адаптировать и под другие распаковщики ресурсов?)



#4 -=CHE@TER=-

-=CHE@TER=-

    Полковник

  • Администраторы
  • 971 сообщений
  • Пол:Мужчина

Отправлено 24 November 2014 - 11:13

Спасибо за оперативную проверку!
Да, conv_all.bat можно модифицировать (как-то надо было раньше об этом написать, но что-то у меня из головы вылетало). Можно даже сделать его универсальным:
@echo off
if _%1 == _ goto :EOF
if _%2 == _ goto :EOF
if _%3 == _ goto many
for %%a in (%2) do %1 %%a
goto :EOF
:many
for %%a in (%2) do (
  md "%%a.!!!"
  cd "%%a.!!!"
  ..\%1 ..\%%a
  cd ..
)
Чем оно лучше:
1) Работает для любого формата и программы. Например:
conv_all.bat sprtotga.exe *.spr
Или так:
conv_all.bat jkgtotga.exe *.jkg
2) Будет распаковывать архив, к примеру, "balrog.spr" в каталог "balrog.spr.!!!".
Чем это удобно? В некоторых редких играх файлы имеют одинаковое имя и формат, но разное расширение: dark-sky.001, dark-sky.002 и так далее. При использовании скрипта из прошлого сообщения с маской "dark-sky.*" все такие архивы распакуются в один каталог - "dark-sky" с заменой уже существующих файлов. А если именовать файл также как и каталог, только добавив сзади ".!!!", то такие архивы будут распакованы в "dark-sky.001.!!!", "dark-sky.002.!!!" и так далее.
3) Всё это хорошо для коллекций (т.е. когда в одном файле может быть несколько изображений). А вот для случаев когда в одном файле только одно изображение куча каталогов будет только мешать. Тут достаточно дописать третий параметр:
conv_all.bat converter.exe *.ext 1
Тогда каждый файл будет извлечён в текущий каталог рядом с оригиналом. Писать "1" необязательно - можно любую цифру, букву или даже слово (главное, чтобы пробелов не было) - лишь бы был третий параметр.
4) Сообщения об ошибках в скрипте выше нет, так что если просто запустить такой conv_all.bat или только с одним параметром, то он тупо выйдет ничего не сообщив и не сделав. И последнее: в 2006-ом, кажется, когда я делал конвертер для NFS Most Wanted - самая его первая версия работала на .BAT файлах и мне как-то написал человек, у которого .BAT работал криво. Как выяснилось потом, он изнасиловал свой Windows XP программой XPize (всякие красивости, полупрозрачные окошки и прочие свистелки и перделки), которая заменила ещё и стандартную консоль Windows из-за чего ни один скрипт нормально не работал. Так что если скрипт выше на какой-то системе не будет работать - то владелец такой системы сам себе злобный Буратино.