Heroes of Might and Magic II
#21
Отправлено 18 June 2005 - 14:43
А эт вообще так делаеца?! Я никогда в жизни ничо не раскодирЫвал... Я по правельному пути вообЩче иду?
Может уже давно сделан похожий скриптик где-то?
#22
Отправлено 18 June 2005 - 16:56
P.S.: Конвертер на PHP это сильно
#23
Отправлено 18 June 2005 - 22:27
#24
Отправлено 18 June 2005 - 22:47
Я посчитал символы в файле палитры - их оказалось 768. А цветов в Героях вроде 256 и я заметил, что 768/256 - 3! И у РГБ как раз 3 составляющие цвета. Сгруппировал цвета по 3, и вот что получилось. Тока чувствую себя обманутым - там 21 чёрный цвет, т.е. всего в игре не 256 а 236 цветов.... Но теперь я сделал, чтобы палитра из файла грузилась, и больше не надо каждому индексу цвет прописывать.
И ещё - выгодно то, что меняя палитру и картинки меняюца! Т.е. если поменять контрастность в палитре, то и вся игра станет контрастнее.
У АГБ назревает чудовищный план по издевательству над Heroes 2!!! Му-ха-ха!!!
#25
Отправлено 19 June 2005 - 00:10
Ещё не тестировал с более большими картинками, но теперь всё пойдёт пучком! Скоро будет готов Мега-ПХП-скрипт! от Делфей я кажись пока отказался..
#26
Отправлено 19 June 2005 - 00:12
#27
Отправлено 19 June 2005 - 00:19
Зачем она такая тусклая?
#28
Отправлено 19 June 2005 - 00:22
Да, в этой палитре 256 цветов по 3 составляющей на цвет. Можно только добавить, что в ряде игр палитра может занимать 1024 байта - четверту составляющую пропускать надо... То, что там 20 цветов не хватает, так это, наверное, зарезервированные цвета. Скажем, под цвет расы. Или какие другие цели... Прозрачность, опять же. Полупрозрачность... Над этим думать не надо, раз все сконвертировалось . Надо сказать, тебе крупно повезло, что при разборе изображения можно было сравнивать с тем, что долно получиться. Как правило разбор производится вслепую
Поэтому первое, что я делал, взяв для просмотра игру, это пытался найти картинки поменьше, и искал их в игре . Помнится, выскребал со скриншота Казаков шляпу крестьянина... Помогло
P.S.: По поводу палитры, да, есть и такие Надо домножать...
#29
Отправлено 19 June 2005 - 00:33
На самом деле тоже думаю, что мне очень повезло. Во первых, потому что игрушку как-то выбрал не последней сложности. Да и потом - процентов 80 этого конвертера моего - чистая удача. Вот тока посмотрим, удасца мне эту удачу удержать до конца работы...
<<<ЖДИТЕ СКОРЫХ НОВОСТЕЙ>>>
#30
Отправлено 19 June 2005 - 08:54
#31
Отправлено 03 August 2006 - 19:55
А товарищ AGB так и не порадовал нас распаковщиком. И вдохновленный его примером я решил написать его сам.
Конечно не все его рассуждения были верны , но все равно выражаю ему большое СПАСИБО за проделанный труд, а точннее за то что не поленился горячо и красочно изложить свои мысли, которые оказались очень полезными!!!
http://jtommy.hut2.r...nverter_v10.zip
Программа консольная.
Исходники не выкладываю потому что я скорее диллетант а не программист, и себе дороже копаться в том что я там наворотил
Зато составил описание формата ICN, постарался подробно объяснить алгоритм декомпресси. Надеюсь кому-нибудь пригодится!!!
#32
Отправлено 27 September 2006 - 15:50
Извиняюсь за длинный пост
Код |
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
Отправлено 30 September 2006 - 12:03
Вот ссылка knikolenko.narod.ru/icnview.php
В папке с скриптом должен лежать файл палитры KB.pal
Еще раз спасибо товарищу Xexys
#34
Отправлено 20 August 2007 - 13:41
Мне тоже понадобилось достать ресурсы из heroes2.agg. Распаковщик я нашёл, конвертер icn в bmp тоже, музыка меня пока не интересует, но как быть с остальными файлами, в первую очередь с til? Может кто подскажет, где найти конвертер.