IPB

Здравствуйте, гость ( Вход | Регистрация )

 
Reply to this topicStart new topic
> Heroes RTS, требуются программисты
Baklajan
сообщение 17 Mar 2008, 20:25
Сообщение #1

Immortal
Сообщений: 2 359
Спасибо сказали: 461 раз




Требуются программисты на Си (ковыряние чужих исходников на языке, являющимся близкой производной Си) и реверс-инженеры (ковыряние чужого экзешника, откомпилированного с Си, и ничем не защищенного и не запакованного). Также приветствуются любые люди, умеющие писать распаковщики под хитрые деф-подобные форматы файлов.

Тема проекта: http://forum.df2.ru/index.php?showtopic=8422&st=220


--------------------
Бак, ты чего? Усмотрел в моём сообщении крамолу? ;)
hippocamus

Руки бы тебе отрезать за такие предложения по тактике и балансу. И клизму с патефонными иголками.
Бак
Go to the top of the pageAdd Nick
 
+Quote Post
gamecreator
сообщение 18 Mar 2008, 21:27
Сообщение #2

Яблочный произвол!
Сообщений: 11 080
Спасибо сказали: 3988 раз




я могу исходники анализировать
Go to the top of the pageAdd Nick
 
+Quote Post
Baklajan
сообщение 18 Mar 2008, 22:37
Сообщение #3

Immortal
Сообщений: 2 359
Спасибо сказали: 461 раз




Одним программистом там не обойдешься - слишком много кода.
Плюс нужен человек, который напишет распаковщик местных дефов. О которых неизвестно ничего, кроме того что это некий .bmp-подобный формат, склеенный кадр за кадром в длинную пленку.
Наконец, каждый кадр (как и часть не-дефообразной графики) хранится в загадочном формате RLE, который ничем не открывается. Рождаются предположения о родстве этого формата со стандартным RLE, который является в свою очередь разновидностью BMP. Однако местные RLE никакими известными редакторами не открываются. Остальная часть графики (причем достаточно большая) хранится в BMP, поэтому остается еще надежда, что разработчики не стали особо мудрить и основали прочие форматы на BMP.


--------------------
Бак, ты чего? Усмотрел в моём сообщении крамолу? ;)
hippocamus

Руки бы тебе отрезать за такие предложения по тактике и балансу. И клизму с патефонными иголками.
Бак
Go to the top of the pageAdd Nick
 
+Quote Post
gamecreator
сообщение 19 Mar 2008, 01:23
Сообщение #4

Яблочный произвол!
Сообщений: 11 080
Спасибо сказали: 3988 раз




ну думаю формат я расшифрую, а потом и прогу составить можно
Go to the top of the pageAdd Nick
 
+Quote Post
Baklajan
сообщение 19 Mar 2008, 01:45
Сообщение #5

Immortal
Сообщений: 2 359
Спасибо сказали: 461 раз




Давай свое мыло в личку, пришлю образцы обычного .RLE и .MMP (склеенные RLE)


--------------------
Бак, ты чего? Усмотрел в моём сообщении крамолу? ;)
hippocamus

Руки бы тебе отрезать за такие предложения по тактике и балансу. И клизму с патефонными иголками.
Бак
Go to the top of the pageAdd Nick
 
+Quote Post
sergroj
сообщение 20 Mar 2008, 21:29
Сообщение #6

В миру GrayFace
Сообщений: 2 529
Спасибо сказали: 817 раз




Я тоже могу поучаствовать. Темы как раз интересные. Правда, времени мало.


--------------------
ДНК банана на 50% состоит из человека.
Go to the top of the pageAdd Nick
 
+Quote Post
Baklajan
сообщение 21 Mar 2008, 08:28
Сообщение #7

Immortal
Сообщений: 2 359
Спасибо сказали: 461 раз




Могу сразу предложить задание - вскрытие игрового архива с графикой, единственное что пока не удалось распаковать. Точнее, его не распаковывать нужно, - это один гигантский деф, - требуется написать редактор, который позволит его изменять, вытягивая координаты нужных массивов картинок из прилагающихся в обилии .RLE файлов (как выяснилось, в них содержится лишь раскадровка анимации, а сами кадры хранятся в одном большом файле).


--------------------
Бак, ты чего? Усмотрел в моём сообщении крамолу? ;)
hippocamus

Руки бы тебе отрезать за такие предложения по тактике и балансу. И клизму с патефонными иголками.
Бак
Go to the top of the pageAdd Nick
 
+Quote Post
sergroj
сообщение 21 Mar 2008, 23:25
Сообщение #8

В миру GrayFace
Сообщений: 2 529
Спасибо сказали: 817 раз




Попробую.


--------------------
ДНК банана на 50% состоит из человека.
Go to the top of the pageAdd Nick
 
+Quote Post
Baklajan
сообщение 22 Mar 2008, 00:42
Сообщение #9

Immortal
Сообщений: 2 359
Спасибо сказали: 461 раз




См. личку - отпиши свой ящик на gmail или заведи себе, если нет. Вышлю со своего рип игры на 400 Мб без видео и реплик юнитов на испанском, но со всем остальным, и свои соображения по поводу организации данных. Все, кроме вызывающих затруднение архивов, распаковано и разложено так, чтобы игра находила данные и работала.


--------------------
Бак, ты чего? Усмотрел в моём сообщении крамолу? ;)
hippocamus

Руки бы тебе отрезать за такие предложения по тактике и балансу. И клизму с патефонными иголками.
Бак
Go to the top of the pageAdd Nick
 
+Quote Post
Bourn
сообщение 23 Mar 2008, 00:32
Сообщение #10

Immortal
Сообщений: 2 415
Спасибо сказали: 60 раз




Это содержимое плагина экстрактора на Яве для PAK файлов игры
Код
import java.io.File;

public class Plugin_PAK_HMMSYS extends ArchivePlugin
{

   public Plugin_PAK_HMMSYS()
   {
       name = "PAK_HMMSYS";
       canRead = true;
       canWrite = false;
       canReplace = false;
       canRename = false;
       allowImplicitReplacing = true;
       games = (new String[] {
           "Rising Kingdoms"
       });
       extensions = (new String[] {
           "pak"
       });
       columns = Archive.getColumns();
   }

   public int getMatchRating(FileManipulator filemanipulator)
   {
       int i;
       i = 0;
       if(filemanipulator.getExtension().equals(extensions[0]))
           i += 25;
       if(filemanipulator.readString(15).equals("HMMSYS PackFile"))
           i += 50;
       filemanipulator.skip(17);
       int j = filemanipulator.getLength();
       ArchivePlugin.check;
       if(FieldValidator.numFiles(filemanipulator.readIntL()))
           i += 5;
       ArchivePlugin.check;
       if(FieldValidator.length(filemanipulator.readIntL(), j))
           i += 5;
       return i;
       Throwable throwable;
       throwable;
       return 0;
   }

   public Resource[] read(File file)
   {
       Resource aresource[];
       addFileTypes();
       FileManipulator filemanipulator = new FileManipulator(file, "r");
       filemanipulator.skip(32);
       int i = filemanipulator.readIntL();
       ArchivePlugin.check;
       FieldValidator.numFiles(i);
       filemanipulator.skip(4);
       int j = filemanipulator.getLength();
       aresource = new Resource[i];
       WSProgressDialog.loadProgress(i);
       String s = "";
       for(int k = 0; k < i; k++)
       {
           int l = filemanipulator.readByteU();
           int i1 = filemanipulator.readByteU();
           int j1 = l - i1;
           String s1 = "";
           if(i1 > 0)
               s1 = s.substring(0, i1);
           s1 = s1 + filemanipulator.readString(j1);
           s = s1;
           int k1 = filemanipulator.getOffset();
           byte byte0 = 4;
           int l1 = filemanipulator.readIntL();
           ArchivePlugin.check;
           FieldValidator.offset(l1, j);
           int i2 = filemanipulator.getOffset();
           byte byte1 = 4;
           int j2 = filemanipulator.readIntL();
           ArchivePlugin.check;
           FieldValidator.length(j2, j);
           aresource[k] = new ReplacableResource(file, s1, l1, k1, byte0, j2, i2, byte1);
           WSProgressDialog.setProgress(k);
       }

       filemanipulator.close();
       return aresource;
       Throwable throwable;
       throwable;
       Plugin.logError(throwable);
       return null;
   }

А вот описание:
Код
// The filenames are stored so that directory names etc are reused, thus minimising repeats.
// To determine the filename, take the first "Previous Filename Reuse Length" chars of the
// filename of the previous file, and append the "Filename Part" to it.
// In other words, if a directory repeats, you would keep the first X bytes of the previous
// file and just append the actual name of the file.

16 - Header ("HMMSYS PackFile" + (byte)10)
4 - Unknown (26)
12 - null
4 - Number Of Files?
4 - Directory Length [+40 archive header]

// for each file
 1 - Filename Length
 1 - Previous Filename Reuse Length
 X - Filename Part (length = filenameLength - previousFilenameReuseLength)
 4 - File Offset
 4 - File Length
 
X - Padding (repeating 153,121,150,50) until first file offset
X - File Data


--------------------
Не лезь в дела Мудрых. Понять - не поймешь, а хлопот не оберешься.
Go to the top of the pageAdd Nick
 
+Quote Post
Baklajan
сообщение 23 Mar 2008, 03:34
Сообщение #11

Immortal
Сообщений: 2 359
Спасибо сказали: 461 раз




Хм. Никогда даже не думал, что все это в Яве хранится открытым кодом. Я думал, такие вещи компилируются...

А как насчет проблемных файлов?


--------------------
Бак, ты чего? Усмотрел в моём сообщении крамолу? ;)
hippocamus

Руки бы тебе отрезать за такие предложения по тактике и балансу. И клизму с патефонными иголками.
Бак
Go to the top of the pageAdd Nick
 
+Quote Post
Bourn
сообщение 23 Mar 2008, 10:39
Сообщение #12

Immortal
Сообщений: 2 415
Спасибо сказали: 60 раз




файлы действительно компилируються....
файл карт - формат не ясен, не за что зачепиться
большой файл - тоже не понятен, надо смотреть отдельно для каждого RLE


--------------------
Не лезь в дела Мудрых. Понять - не поймешь, а хлопот не оберешься.
Go to the top of the pageAdd Nick
 
+Quote Post
Baklajan
сообщение 23 Mar 2008, 11:42 (Сообщение отредактировал bak - 23 Mar 2008, 11:42)
Сообщение #13

Immortal
Сообщений: 2 359
Спасибо сказали: 461 раз




В смысле - действительно компилируются? Куда компилируются? Зачем компилируются?

RandomMap.pak - единственный и неповторимый. Есть у него собратья в первых двух частях игры, могу прислать.

Возможно, тебе также помогут обрезки от главного архива графики предыдущих частей...

Быть может, тебе стоит-таки раскопать в сусеках игру, поставить ее и трассировщиком посмотреть, что же игра делает с файлами? Экзешник-то ничем не защищен от отладки...

Или в SoftIce запустить игрушку и инструкция за инструкцией смотреть, чем игра страдает во время загрузки карты...


--------------------
Бак, ты чего? Усмотрел в моём сообщении крамолу? ;)
hippocamus

Руки бы тебе отрезать за такие предложения по тактике и балансу. И клизму с патефонными иголками.
Бак
Go to the top of the pageAdd Nick
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 16 June 2025 - 16:42
Copyright by Алексей Крючков
Strategy Gamez by GrayMage
Programming by Degtyarev Dmitry
  Яндекс.Метрика