Перейти к содержимому
Zone of Games Forum
Damin72

Проблема с запаковкой текста

Рекомендованные сообщения

Добрый вечер.
Имеется проблема с запаковкой текста в этот файл. Вытащить текст — легко. Обратно — уже вызывает вопросы.
Сам файл:
https://yadi.sk/d/CUMcRWxyNzQ0nw
Описание формата:

Скрытый текст

 

//------------------------------------------------
//--- 010 Editor v10.0.2 Binary Template
//
//      File: tuscrdata.bt
//   Authors: bqio
//   Version: 1.0
//   Purpose: 
//  Category: Text
// File Mask: tuscrdata.bin
//  ID Bytes: 
//   History: 
//------------------------------------------------

local int i;
local int j;
local int languageRelativePos;
local int tableRelativePos;

struct FILE {
  struct FILE_HEADER {
    uint numOfLanguages <name="Number of Languages">;
    struct LANGUAGE_PTRS {
      uint ptr <name="Pointer">;
      uint size <name="Size">;
    } LanguagePtrs [numOfLanguages] <name="Language Pointers">;
  } FileHeader <name="Header">;
  
  for (i = 0; i < FileHeader.numOfLanguages; i++) {
    FSeek(FileHeader.LanguagePtrs.ptr);
    languageRelativePos = FTell();
    
    struct LANGUAGE {
      struct LANGUAGE_HEADER {
        uint numOfTables <name="Number of Tables">;
        struct TABLE_PTRS {
          uint ptr <name="Pointer">;
          uint size <name="Size">;
        } TablePtrs [numOfTables] <name="Table Pointers">;
      } LanguageHeader <name="Header">;

      tableRelativePos = FTell();
            
      struct FIRST_TABLE {
        struct FIRST_TABLE_HEADER {
          uint magic <name="Magic">;
          ushort tableSize <name="Table Size">;
          ushort unk;
          ushort numOfMessages <name="Number of Messages">;
          ushort ptrSize <name="Pointer Size">;
          ushort headerSize <name="Header Size", comment="Maybe uint">;
          ushort unk;
          uint unk;
          uint unk;
          struct FIRST_TABLE_TEXT_PTRS {
            uint ptr <name="Pointer">;
            uint unk;
            uint unk;
            uint unk;
            uint unk;
          } FirstTableTextPtrs [numOfMessages] <name="Text Pointers">;
        } FirstTableHeader <name="Header">;
        for (j = 0; j < FirstTableHeader.numOfMessages; j++) {
          FSeek(tableRelativePos + FirstTableHeader.headerSize + FirstTableHeader.FirstTableTextPtrs[j].ptr);
          struct FIRST_TABLE_TEXT {
            char line[ReadStringLength(FTell())] <name="Value">;
          } FirstTableText <name="Text">;
        }
      } FirstTable <name="First Table", comment="Header size = 0x18">;

      tableRelativePos = LanguageHeader.TablePtrs[1].ptr + languageRelativePos;
      FSeek(tableRelativePos);
        
      struct SECOND_TABLE {
        struct SECOND_TABLE_HEADER {
          uint magic <name="Magic">;
          ushort tableSize <name="Table Size">;
          ushort unk;
          ushort numOfMessages <name="Number of Messages">;
          ushort ptrSize <name="Pointer Size">;
          uint headerSize <name="Header Size">;
          uint unk;
          uint secondTableTextPtrs [numOfMessages] <name="Text Pointers">;
        } SecondTableHeader <name="Header">;
        for (j = 0; j < SecondTableHeader.numOfMessages; j++) {
          FSeek(tableRelativePos + SecondTableHeader.headerSize + SecondTableHeader.secondTableTextPtrs[j]);
          struct SECOND_TABLE_TEXT {
            char line[ReadStringLength(FTell())] <name="Value">;
          } SecondTableText <name="Text">;
        }
      } SecondTable <name="Second Table">;
    } Language <name="Language">;
  }
} File <name="File">;

 

 

 

 

Изменено пользователем Damin72

Поделиться сообщением


Ссылка на сообщение
1 час назад, Damin72 сказал:

for (i = 0; i < FileHeader.numOfLanguages; i++) {
    FSeek(FileHeader.LanguagePtrs.ptr);
    languageRelativePos = FTell();

исправь на FSeek(FileHeader.LanguagePtrs[ i ].ptr);

 

 P.S. скинь скрипт файлом, а то  [ i ] форум удаляет

Изменено пользователем Zolodei

Поделиться сообщением


Ссылка на сообщение
1 час назад, Zolodei сказал:

исправь на FSeek(FileHeader.LanguagePtrs[ i ].ptr);

 

 P.S. скинь скрипт файлом, а то  [ i ] форум удаляет

https://yadi.sk/d/KW_Nq4caT-q1Mw

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Похожие публикации

    • Автор: james_sun

      На сайте «Русской ассоциации дистрибьютеров и импортеров видеоигр» появилось упоминание того, что грядущий HD-ремастер Luigi’s Mansion 2 будет полностью переведен на русский язык. 
      На сайте «Русской ассоциации дистрибьютеров и импортеров видеоигр» появилось упоминание того, что грядущий HD-ремастер Luigi’s Mansion 2 будет полностью переведен на русский язык. 

      То есть в игре локализации подвергнется звук и текст.
      Сам релиз проекта состоится на Nintendo Switch 27 июня этого года.
    • Автор: james_sun

      Напомним, что изначально релиз проект состоялся в январе прошлого года на iOS и Android.
      Компании Ubisoft и Old Skull Games сообщили дату релиза военной драмы Valiant Hearts: Coming Home на PC, PlayStation 4, Xbox One и Nintendo Switch.
      На упомянутых выше платформах игра выйдет уже завтра, 7 марта.
      Напомним, что изначально релиз проект состоялся в январе прошлого года на iOS и Android.

  • Продвигаемые темы

  • Последние сообщения

    • Это тупо вкусовщина. В твоем селако стрельба взята из современных шутеров. А вот эта картонная пальба из ion fury мне не нравится. При это я прошел достаточно шутеров из начала нулевых, и вот стрельба в фантоме как раз оттуда. Я бы вообще сказал страшное – пальба из базового орудия тут прям как во второй халве. Пистолет точно оттуда слизан. 
    • @james_sun здесь же главный элемент это стрельба, но она здесь реализовна плохо, не знаю какое слово подходит — криво, картонно, неинтересно, хуже чем в Ion fury. Посмотри демку Selaco и поймёшь о чём речь. Никто не говорит, что “веселье” нужно наваливать сразу, но реализация стрельбы уже видна, и сделано это прлохо — враги “картонные”, импакт не чувствуется, а стрельба в таких играх должна приносить удовольствие.  Взгляни как это в Brootal Doom выполнено, или в том же Selaco, который далеко не глупый шутерок где одно только мясо.
    • Этой Джаге будет сложно состязаться с третьей Джагой.  У меня есть определенные ожидания, касательно этой игры.  Но лучше бы шагнули в сторону 7.62. 
    • ЕГС опять дал с подливкой ? Все так и есть,исключительно “злые издатели!”
    • В пошаговые играть надо,по видосу фиг что поймёшь. Но я в принципе, за любой “пошаг”)
    • @piton4 , ion fury косит под игры первой половины 1990-х, phantom – под самый конец девяностых-начало двухтысячных. По ней это прям видно. И в шутерах той поры никто тебе не вываливал все веселье в первые полчаса. Игры раскрывались постепенно. В той же культовой халве ты вообще первые десят минут тупо едешь на тележке, и первые полчаса и даже больше ты бегаешь по базе и со всеми болтаешь, лол. 
        Тут очень похожая схема, хотя и заметно шустрее. Судя по комментам в стиме, народ с чего-то ждал очередное бездумное мясо, а получил куда более размеренный экшен. По мне так это гораздо лучше, чем вот это бесконечное пиксельное олдскул-месиво, которое уже изрядно утомило. А вот под сюжетные шутеры именно конца девяностых - начала нулевых никто почему-то косить не хочет. Вот это один из немногих примеров, тоже имеет право на жизнь. 
    • Учитывая, какой замечательный пост об отзывчивости замечательного издателя Serenity Forge был тут, на ЗоГе (снизили цену на DLC до жалких ~500 рублей), интересно было бы услышать мнение главного местного господина-аналитика, а какой же филиал этой американской компании виноват в этом (отсылочка на запрет раздачи/продажи DNF Duel в EGS). Ведь не сами же Эпики отбирают/запрещают игры так избирательно, правда ведь?
    • В 2022-м Институт развития интернета выделил проекту грант в размере 90 миллионов рублей. Отечественная Lipsar Studio обнародовала геймплейный ролик из грядущей тактики из грядущей пошаговой тактики Sparta 2035. Сообщается, что эта игра о солдатах удачи, борющихся с вымышленной террористической организацией под названием Даамат.
      События разворачиваются в Африке 2030-х годов, в условиях жесточайшего кризиса. Командиру отряда «Спарта» предстоит не только защищать Африку от террористов и разбираться в истинных причинах конфликта, но и лавировать между различными фракциями, желающими извлечь из войны максимальную выгоду. Несмотря на серьезный сеттинг, авторы обещают наличие в их игре юмора и отсылок к массовой культуре. Кроме того, тут будет некий «налет научной фантастики». Релиз игры состоится не раньше 4 квартала текущего года. В 2022-м Институт развития интернета выделил проекту грант в размере 90 миллионов рублей.
    • И правда забрали а я только хотел сделать комплимент эпикам мол какая хорошая раздача,) ну да ладно не жалко, теперь это только на половину хорошая раздача.
    • Вчера торрентом качнул, поиграл минут 30, ну и если Ion fury довольно-таки средняя, то эта явна хуже получилась, стрельба вообще беспонтовая оказалась, ну и так как это главный элемент, то соответсвенно…    Подожду лучше Selaco, вот это топ будет 99%
  • Изменения статусов

  • Лучшие авторы


Zone of Games © 2003–2024 | Реклама на сайте.

×