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


Внимание!

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


Фотография

Heroes of Might and Magic II


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

#21 AGB

AGB

    Сержант

  • Пользователи
  • 29 сообщений
  • Город:Lavia - Riga - Kipsala - Общага - 9.этаж - Комната 1 - Второй этаж кровати

Отправлено 18 June 2005 - 14:43

Извините, господа профи!

А эт вообще так делаеца?! Я никогда в жизни ничо не раскодирЫвал... Я по правельному пути вообЩче иду?
Может уже давно сделан похожий скриптик где-то?

#22 Terminus

Terminus

    Генерал-майор

  • Администраторы
  • 1969 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 18 June 2005 - 16:56

А что, собственно, объяснять? Ты прекрасно сам справился с одной из разновидностей RLE smile.gif. Если будет желание, можешь взглянуть исходники конвертера DEF спрайтов из Третьих Героев (тоже, кстати, на Delphi). Там наворочено еще больше, и некоторые типы мне так и не удалось разобрать...

P.S.: Конвертер на PHP это сильно smile.gif

#23 AGB

AGB

    Сержант

  • Пользователи
  • 29 сообщений
  • Город:Lavia - Riga - Kipsala - Общага - 9.этаж - Комната 1 - Второй этаж кровати

Отправлено 18 June 2005 - 22:27

А как работает файл палитры? Я там его где-то уже прилагал в виде ссылки..

#24 AGB

AGB

    Сержант

  • Пользователи
  • 29 сообщений
  • Город:Lavia - Riga - Kipsala - Общага - 9.этаж - Комната 1 - Второй этаж кровати

Отправлено 18 June 2005 - 22:47

Ну да... Думать надо перед тем, как писать... Вот она:
user posted image

Я посчитал символы в файле палитры - их оказалось 768. А цветов в Героях вроде 256 и я заметил, что 768/256 - 3! И у РГБ как раз 3 составляющие цвета. Сгруппировал цвета по 3, и вот что получилось. Тока чувствую себя обманутым - там 21 чёрный цвет, т.е. всего в игре не 256 а 236 цветов.... Но теперь я сделал, чтобы палитра из файла грузилась, и больше не надо каждому индексу цвет прописывать.
И ещё - выгодно то, что меняя палитру и картинки меняюца! Т.е. если поменять контрастность в палитре, то и вся игра станет контрастнее.

У АГБ назревает чудовищный план по издевательству над Heroes 2!!! Му-ха-ха!!!

#25 AGB

AGB

    Сержант

  • Пользователи
  • 29 сообщений
  • Город:Lavia - Riga - Kipsala - Общага - 9.этаж - Комната 1 - Второй этаж кровати

Отправлено 19 June 2005 - 00:10

Нет, ну разве это не круто:
user posted image
user posted image
Ещё не тестировал с более большими картинками, но теперь всё пойдёт пучком! smile.gif Скоро будет готов Мега-ПХП-скрипт! от Делфей я кажись пока отказался.. smile.gif

#26 AGB

AGB

    Сержант

  • Пользователи
  • 29 сообщений
  • Город:Lavia - Riga - Kipsala - Общага - 9.этаж - Комната 1 - Второй этаж кровати

Отправлено 19 June 2005 - 00:12

Кстати, можете сравнить - на картинках, как и на палитре написаны индексы - они одинаковые smile.gif) Во как точно работают Советские Программисты!...гхм...мда.

#27 AGB

AGB

    Сержант

  • Пользователи
  • 29 сообщений
  • Город:Lavia - Riga - Kipsala - Общага - 9.этаж - Комната 1 - Второй этаж кровати

Отправлено 19 June 2005 - 00:19

Ой, сорру за такой частый флуд, НО! Забыл добавить, что когда делал палитру, и комбинировал по 3 байта, то она на самом-то деле не получилась такой, как на прошлом скрине. В действительносте же мне пришлось зачем-то умнажать всё на 4! А в оригинале она смотрится так:
user posted image
Зачем она такая тусклая? ohmy.gif

#28 Terminus

Terminus

    Генерал-майор

  • Администраторы
  • 1969 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 19 June 2005 - 00:22

Ну мне добавить нечего smile.gif
Да, в этой палитре 256 цветов по 3 составляющей на цвет. Можно только добавить, что в ряде игр палитра может занимать 1024 байта - четверту составляющую пропускать надо... То, что там 20 цветов не хватает, так это, наверное, зарезервированные цвета. Скажем, под цвет расы. Или какие другие цели... Прозрачность, опять же. Полупрозрачность... Над этим думать не надо, раз все сконвертировалось smile.gif. Надо сказать, тебе крупно повезло, что при разборе изображения можно было сравнивать с тем, что долно получиться. Как правило разбор производится вслепую smile.gif
Поэтому первое, что я делал, взяв для просмотра игру, это пытался найти картинки поменьше, и искал их в игре smile.gif. Помнится, выскребал со скриншота Казаков шляпу крестьянина... Помогло biggrin.gif

P.S.: По поводу палитры, да, есть и такие smile.gif Надо домножать...

#29 AGB

AGB

    Сержант

  • Пользователи
  • 29 сообщений
  • Город:Lavia - Riga - Kipsala - Общага - 9.этаж - Комната 1 - Второй этаж кровати

Отправлено 19 June 2005 - 00:33

Ха! Ну Я же не дурак! Я специально выбирал игру, чтобы сравнивать своё с тем, что должно получится.
На самом деле тоже думаю, что мне очень повезло. Во первых, потому что игрушку как-то выбрал не последней сложности. Да и потом - процентов 80 этого конвертера моего - чистая удача. Вот тока посмотрим, удасца мне эту удачу удержать до конца работы...

<<<ЖДИТЕ СКОРЫХ НОВОСТЕЙ>>>

#30 Garrett

Garrett

    Модератор

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

Отправлено 19 June 2005 - 08:54

а чего оставалось делать то? тебе линк на инструменты дали и сё smile.gif - дальше сам biggrin.gif

#31 Xexys

Xexys

    Ефрейтор

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

Отправлено 03 August 2006 - 19:55

Прошел год...

А товарищ AGB так и не порадовал нас распаковщиком. И вдохновленный его примером я решил написать его сам.
Конечно не все его рассуждения были верны smile.gif, но все равно выражаю ему большое СПАСИБО за проделанный труд, а точннее за то что не поленился горячо и красочно изложить свои мысли, которые оказались очень полезными!!! biggrin.gif

http://jtommy.hut2.r...nverter_v10.zip

Программа консольная.

Исходники не выкладываю потому что я скорее диллетант а не программист, и себе дороже копаться в том что я там наворотил biggrin.gif

Зато составил описание формата ICN, постарался подробно объяснить алгоритм декомпресси. Надеюсь кому-нибудь пригодится!!!

#32 Veliant

Veliant

    Рядовой

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

Отправлено 27 September 2006 - 15:50

На основе тутора Xexys'a сделал скрипт для Image Hacker
Извиняюсь за длинный пост
Код
var count,Image_W,Image_H,x,y,n,i,j,chislox,byte,out_byte,Shadow_counter:integer;
showmessage('Укажите пожалуйтста файл содержащий палитру');
openfileas('*.pal');
for i:=0 to 255 do
begin
   r:=read(1);
   g:=read(1);
   b:=read(1);
   setcolortable(i,rgb(r*4,g*4,b*4));
end;
closefile;
showmessage('Укажите пожалуйтста файл содержащий рисунок');
openfileas('*.icn');
count:=read(1);
setpos(10);
width:=read(3);
height:=read(3);
showmessage('Картинок в файле найдено: '+tostr(count)+'['+tostr(width)+'*'+tostr(height)+']');
setpos(15);
offset:=read(3);
showmessage(tostr(offset));
setpos(offset+6);
setsize(width,height,8);
x:=0;
y:=0;
byte:=read(1);
chislox:=byte;
repeat
   if chislox=0 then
   begin
       x:=0;
       n:=y;
       y:=n+1;
   end;  
   if chislox<=127 then
   begin
       for i:=1 to chislox do
       begin
           byte:=read(1);
           setpixel(x,y,byte);
           n:=x;
           x:=n+1;
       end;
   end
   else
   begin
       if (chislox>=128)and(chislox<=191) then
       begin
           for i:=1 to (chislox-128) do
           begin
               setpixel(x,y,0);
               n:=x;
               x:=n+1;
           end;
       end else
       if chislox>=192 then
       begin
           if chislox=192 then
           begin
               byte:=read(1);
               if (byte mod 4)=0 then
               begin
                   out_byte:=byte;
                   Shadow_counter:=read(1);
               end
               else
               begin
                   Shadow_counter:=(byte mod 4);
                   n:=(byte mod 4);
                   out_byte:=byte-n;
               end;
               byte:=read(1);
           end
           else
           if chislox=193 then
           begin
               byte:=read(1);
               out_byte:=read(1);
               for i:=1 to byte do
               begin
                   setpixel(x,y,out_byte);
                   n:=x;
                   x:=n+1;
               end;
           end
           else
           begin
               byte:=read(1);
               for i:=1 to (chislox-192) do
               begin
                   setpixel(x,y,byte);
                   n:=x;
                   x:=n+1;
               end;
           end;
       end;
   end;
chislox:=read(1);
until (chislox=128);
savefileas;
closefile;


#33 Veliant

Veliant

    Рядовой

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

Отправлено 30 September 2006 - 12:03

Завершил, то что начал AGB - доделал скрипт, который из icn делает png картинку, правда для того чтобы ее сохранить надо щелкнуть на нее правой кнопкой мыши и выбрать "Сохранить изображение как..."
Вот ссылка knikolenko.narod.ru/icnview.php
В папке с скриптом должен лежать файл палитры KB.pal

Еще раз спасибо товарищу Xexys

#34 vfilatov

vfilatov

    Рядовой

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

Отправлено 20 August 2007 - 13:41

Привет всем!
Мне тоже понадобилось достать ресурсы из heroes2.agg. Распаковщик я нашёл, конвертер icn в bmp тоже, музыка меня пока не интересует, но как быть с остальными файлами, в первую очередь с til? Может кто подскажет, где найти конвертер.