Редактор части ресурсов для Проклятых Земель. Версия 1.8.2 Crafted by Sagrer Copyright © 2002-2007 Gipat Group Программа распространяется на условиях Gipat Group's opened EI-editor-utility license ver. 1.0. ____________________________________________________________________ "Проклятые земли" Copyright 2000 Nival Interactive, Copyright 2000 АОЗТ 1С. Все права защищены. "Проклятые земли" - товарный знак Nival Interactive. ____________________________________________________________________ ВНИМАНИЕ!!!!!!!!!!!!!!! Данная версия программы содержит известную нам ошибку в коде редактора acks.db. Мы знаем о ошибке но поскольку в данный момент непосредственной необходимости работать с acks.db у нас нет - её исправление отложено "на потом". Не пытайтесь редактировать эту часть базы данных этой версией программы! Почти наверняка acks.db после такого редактирования прийдет в негодность - редактор по прежнему будет его открывать но правильная информация в этом файле будет утеряна, соответственно и игра скорее всего просто вылетит при попытке использовать database.res с этим файлом... а если и не вылетит то глюки будут ужасны! %). ____________________________________________________________________ Обращение аффтара к юзверям. Если после попыток использования программы вы предложите аффтару пойти выпить йаду - будете совершенно правы %). Тогда, в далеком 2001-2002 - это была моя первая что-то реально делающая программа %). Ну если не считать всяких HelloWorld или задачек на паскале по информатике. Даже файлы та версия читала через Readln а писала через Writeln % ))). Прям как в каком-нить "паскале 3.0 для IBM PC" % ))). Да, с тех пор код несколько раз тотально чистился, один раз вообще большая часть нутра была разобрана на отдельные несовместимые друг с другом куски и собрана заново, но, увы, чтобы написать хорошую программу - её надо как минимум 1-2 раза переписать с нуля. Эта программа пока ни разу не переписывалась с тех самых пор. Единственное за что мне не слишком стыдно - редактор текстов который был заново переписан относительно недавно. "Редактор базы" ожидает такой же полной замены - то что есть способно редактировать базу, но наворочать что-то более сложное (вроде автобалансигна) на том коде нереально. Оно там все привязано к интерфейсу. Код там страшный, да %). Уникальным прогу делает только одно - она способна практически напрямую работать с бинарной базой ПЗ а не с текстовыми её исходниками. В общем, если что - я вас предупредил %). ____________________________________________________________________ Итак что тут есть (типа содержания) : 1. Бредисловие. 2. По поводу этой версии. 3. Чего прога умеет. 4. Использование резбилда. 5. Редактирование текстов. 6. Редактирование баз. 7. Баллада о чейнджлоге. 8. Координаты аффтароф. ____________________________________________________________________ 1. Бредисловие Собственно, тут хочу только сказать, что файл (ридми), как и сама прога предназначен исключительно "для своих" - тоесть для использования участниками Gipat Group, тоесть таким людям, которые хотябы поверхностно знакомы с внутренней структурой ПЗ, и с gipat.org-овским ПЗ-шным жаргоном (если не знаете что такое ПЗ - значит точно не знакомы ;) ). К чему это говорю - не буду я обьяснять что такое например "резбилд", где его брать и как юзать, и для чего он вообще нужен. Не для того этот ридми. В кранем случае, если что непонятно - можно спросить на форуме. ___________________________________________________________________ 2. Обращение по поводу этой версии. В этом разделе буду обращать внимание на что следует обратить внимание при переходе с прошлой версии на эту. Версия 1.8.2 По сравнению с 1.8.1 ничего принципиально нового нету кроме того что исходник программы и трекер теперь опубликованы. ___________________________________________________________________ 3. Чего прога умеет. Итак, умеет: 1) ГЛЮЧИТЬ! 2) Портить файлы ПЗ Хоть я и стараюсь уменьшить влияние первых двух пунктов но всеже - делайте резервные копии. 3) Редактировать всякие разные текстовые файлы, ну и RTF заодно (хотя и хз насколько оно безопасно и не портит формат). 4) Редактировать содержимое database.res (часть таких файлов есть в databaselmp.res). 5) Юзать резбилд без командной строки (выбирать какой файл распаковать или какую папку запаковать). + оптимизация :). ____________________________________________________________________ 4. Использование резбилда. В принципе - можно пользоваться EiEdit-ом в как оболочкой для ResBuild. Есть 2 способа - первый описан здесь, второй - см. ниже в описании текстового редактора. Итак, резбилд. На панели инструментов есть кнопка на которой нарисовано "RES", её дублирует в меню ФАЙЛ пункт "Запаковка\распакова ресурсов...". Если туда нажмать, то вылезет окно. В окне что-то похожее на таблицу, только вместо ячеек кнопки. Кнопки, находящиеся на одной строчке выполняют какое-либо действие над тем резом, имя которого написно в начале сточки. Действие которое выполняет кнопка написано в заголовке столбика кнопок. В общем там должно быть понятно по виду. Запаковка - запаковывает, распаковка - как ни странно, распаковывает ;). При распаковке все файлы распаковываются в папку с именем файла, если у файла есть расширение - то после имени файла в папку приписывается символ "_", а после него - символы из расширения. Если файл без расширения - к папке припишется "_noext". Папка ложится туда же где лежит файл с резом. Если до этого в папке, куда ложатся файлы что-то было, то все там предварительно стирается (предупреждение прога выдает). При запаковке, файлы для запоковки берутся из папки с именем полученным как написано выше. Если кнопка блеклая - значит нечего распаковывать\запаковывать. НО все эти кнопки работают только если имена к файлам ресурсов прописаны в настройки проги ("пути к ресурсным файлам"). Всегда работают только 2 кнопки, на которых написано "другой". Одна - для запаковки, другая - для распаковки (странно, не правда ли?). По нажатию вылезет окно, где надо выбрать что распаковывать или запаковывать. Если распаковывать - то надо будет открыть в окне рез-файл. Если запаковывать - то выбрать папку с пакуемыми файлами. После чего появится окно в котором можно точно указать чего и как резбилдить, если предложенное прогой чем-то не нравится. Есть еще кнопка оптимизации - по нажанию надо выбрать файл который оптимизировать. Еще есть чекбокс - если его включить - то после запаковки "стандартные" ресурсы будут оптимизироваться. __________________________________________________________________________ 5. Редактирование текста. Итак. Вызывается редактор соответствующей кнопкой на панели инструментов, либо из меню ФАЙЛ. Дальше - чего он умеет. 1) Открывать обычные текстовики 2) Открывать файлы *.rtf. 3) Правильно сейвить все это дело. 4) Включать\выключать перенос строк по словам 5) Встроенная навигация по диску компа - этакий файловый менеджер-уродец. 6) Встроена возможность распаковывать\запаковывать архивы резбилда 7) Можно удалять файлы\папки прям в редакторе. Как это работает. В окне редактора есть поле - список файлов\папок текущей папки. Значки там не совсем стандартные но по внешнему виду должно быть понятно чего они означают. Соответствуют типу элемента файловой системы - файл (и его тип)\папка\ссылка\неизвестный. Обзор начинается с того пути, который задан в настройках текстового редактора. Лежат эти настройки в меню ПАРАМЕТРЫ\Параметры для редактора текстов. Как перемещаться по папкам.... Нортон-командира или его клоны юзали? ;). Так вот - тыркаем 2 раза грызуном по папке - попадаем туды. Тыркаем по элементу с двумя точками вместо имени - попадаем уровнем выше. И еще - вверху есть поле ввода под путь - туда тоже можно ввести путь и нажать ентер или кнопочку со стрелкой возле поля ввода - удобно например скопировать путь из окна explorer или еще откуда - в принципе это самый быстрый способ перемещения на случай когда где-то этот путь уже открыт. Еще, оно умеет удалять файлы\папки. Выделите что нужно и нажмите DEL. Прога ессно запросит подтверждение, т.к. корзину не юзит. Если сделать 2 клик на архиве резбилда - будет предложено распаковать этот ресурс, а после распаковки - прога автоматически влезет в папку с распакованными файлами. Дальше - справа - поле под текст. Обычный текстовый редактор типа "BLAKNOT" :). Там все стандартно. Ниже него - чекбокс для включения\выключения переноса строк - может понадобиться чтоб понять где кончается абзац. Еще ниже - переключатель между RTF-TXT. Вообще он переключается автоматически в зависимости от типа файла. Но если вы вдруг хотите засейвить свой обычный текстовик как rtf - можно вручную сменить переключатель и нажать на батон сохранения. Аналогично можно превратить rtf в обычный текстовик. Справа от переключателя - кнопка сейва. Есть вопросы? ;). Только скажу что файл сейвится в текущую папку (ту что отображена в левом поле). А имя - используется то что написано выше окна редактора. Если имя сменить, и\или перейти в другую папку (или все вместе) и нажать на сейв - то создастся новый файл (либо перезапишется уже существующий но другой - в зависимости от того что ввели и куда перешли) - иногда удобный способ быстро "перекопировать" какой-то файлик. Как уже сказал - вверху от редактора строка под имя файла. Кстати даже если ни разу файл еще не открывался - можно ввести имя файла и текст в редактор и сохранить - создастся файл. Так. ну дальше - под списком файлов - выпадающий список под фильтры. Ну короче маски это. Маски файлов. Звездочка (*) - любое число любых символов, знак вопроса (?) - 1 любой символ. Надеюсь тоже все с етим делом знакомы. В общем фильтры используются чтоб просмотреть в списке файлов только те которые удовлетворяют маске. Фильтры там разные, я их уже понаделал на все виды текстовых ресурсов в ПЗ. Можно убить любой фильтр соотв. кнопкой справа от списка фильтров. И можно новый фильтр добавить - тоже кнопка для этого есть, там же. В появившемся окне - ввести саму маску и описание фильтра (любой текст). Дальше. Чекбокс "открывать 1 щелчком (выделением)". В общем текстовые файлы - (а текстовыми файлами считаются все неизвестные файлы ;) ) если чекбокс врубить - то открываться такие файлы будут 1 щелчком (надо его выделить). Можно просто двигать выделение стрелками на клаве - файлы будут открываться. Это можно йузать для быстрого просмотра кучи файлов. Ниже вышеописанного чекбокса засел другой чекбокс - если он врублен, то текстовые файлы размером большим, чем введено в поле ввода правее чекбокса - открываться не будут. Ниже списка фильтров - кнопки запаковки и распаковки. Если выделить папку и нажать запаковать - будет предложено запаковать папку в архив резбилда. Ну а кнопка распа- ковки действует аналогично 2 клику на архиве резбилда. Только ессно надо сначала этот файл выделить. В общем в сегодняшнем состоянии редактор должен быть способен на без использования другого софта редактировать outro.res и *.mq-шки :). Ну и содержимое какого-нибудь texts.res естественно. Кстати о редактировании texts.res - в оригинальной игре и в подавляющем большинстве модов абсолютно все тексты лежат в одном файлике texts.res. Ориентироваться там достаточно сложно. В модах под стартер можно конечно раскидать содержимое по нескольким ресурсам, но такие вещи встречаются в любом случае не всегда. Так вот - для того чтобы не листать весь огромный список - существуют фильтры. Выпадающий список с этими фильтрами расположен под списком файлов. Фильры представляют из себя обычные маски, которые часто используют при работе с файловой системой, например при выделении файлов по маске в Far. Для тех кто в прожил свою жизнь в бронетранспортере и не в курсе как эти маски работают - краткая справка - * заменяет любое количество любых символов, ? заменяет один любой символ - итого примеры: *.txt - означает все файлы с расширением txt, *test*.txt - все файлы в имени которого где-то посередине есть test и расширение у которого txt, ???test.txt - все файлы заканчивающиеся на test.txt у которых впереди еще 3 символа. * - вообще ВСЕ файлы, в том числе без расширения *.* - все файлы у которых есть расширение итд итп. Добавить новые фильтры можно соответствующими кнопками. Удалить - аналогично. ___________________________________________________________________________ 6. Редактирование баз Во первых - надо показать проге где лежат *.res -файлы баз. Это можно сделать либо через окно настроек путей ко всем ресурсам проги, либо через меню Параметры\Параметры для баз. В верхние 2 поля можно вручную или кнопкой обзора прописать пути к нераспакованным резбилдом базам (database.res и databaselmp.res). В том же окне в 3 и 4 полях - показать папки, где будут лежать "исходники баз" - папки с файлами, которые использует редактор, распакованная (точнее мелко нарезанная) база. В этой папке не должно быть папок с именами acks, items, levers, perks, prints, quests, spells, units - такие имена будут у папок в составе исходника, лучше если это вообще пустая папка. По умолчанию, прога вообще пишет там путь к специальной папке для этого, которая лежит в папке проги. Теперь надо распаковать базы. Меню Базы\Исходники... Там в окне 2 раздела - для сингл и для мульт базы. Для каждой 6 кнопок. [Распаковать резбилдом] - разрезбилдить *.res файл базы. Запаковать - ессно обратный процесс (распакованные файлы появляются в папке с именем файла базы в той же папке где и *.res - файл базы) - эти кнопки просто распаковывают резбилдом. [Сгенерировать исходник] - это уже собсно "распаковка" разрезбилднутых баз - получение "исходника", который пишется в ранее уже указанную папку (для исходника). [Сгенерировать базы] - из "исходника" получаются файлы баз (например units.udb), которые пишутся туда, где была резбилдовская распаковка базы. После чего их можно опять зарезбилдить в *.res файл сответствующей кнопкой. [Запаковать резбилдом] - по смыслу - запаковывает уже сгенеренные базы. Потом оптимизирует. [Полная распаковка] - Распаковывает базу резбилдом, и сразу же делает из нее исходник (как бы 2 кнопки в одной). [Полная запаковка] - аналогично. Только обратное действие. 2 кнопки в одной. В принципе 2-х последних типов кнопок для работы достаточно. Остальные остались из прошлого, убирать не стал - вдруг понадобятся... Собственно редактирование - редактируется "исходник". Рекомендую залезть в папку с исходником и поизучать (с привлечением HEX-редактора), чтоб лучше понимать что это такое, но это не обязательно. Если кратко, то каждая строка в ниваловском текстовике (ну тот, который "утилита для создания модов в мультиплеере" или чтото вроде того) - так вот, каждая строка в том текстовике соответствует 1 файлу в "исходнике" этой проги. Фактически эти файлы - результат мелкой нарезки собсно базы (ну там еще и структура самой базы убрана та которая не нужна), так чтобы в 1 файле было по 1 строке ("по научному" ;) - записи) базы. Во всех окнах редактирования есть : 1) два выпадающий списка - правый с именами редактируемых файлов исходника, а левый - с "масками". "Маска" - так я назвал первое поле записей баз, которое везде текстового типа, и всегда уникально - обычно это поле называется Name. Ясен пень, что по имени легче найти нужную запись, чем по имени файла типа "0000057.zap". Оба этих списка "синхронизированны" - нужный файл можно выбрать и там и там, состояние другого списка поменяется автоматом. 2) Таблица с полями записи - о том какие есть поля см. ниже. 3) Кнопки: [Зашаблонить] - создать новый шабон или переписать старый. О шаблонах см. ниже. [Сохранить] - сохранить запись. [Закрыть] - закрыть окно, БЕЗ сохранения. [Создать] - создать запись по шаблону. [Удалить] - удалить запись. Про типы полей: 1) TEXT - какой-либо текст. Будте внимательней к регистру, есть подозрения, что нивальские тулсы для баз исправляют слова в неправильном регистре (например, делают все буквы маленькими), я точно не во всех местах в этом уверен, поэтому у меня тексты сохраняются так как вы их ввели. В общем смотрите по аналогии. 2) UnsLong. - целочисленное число. Только цифры и знак минуса. 3) FLOAT. - дробное число. Можно писать без запятой если оно без дробной части. Визуально от UnsLong можно отличить тем, что при открытии записи все FLOAT-числа имеют запятую, даже если дробная часть равна нулу (например 1,0). Писать можно - только цифры, знак минус и запятая. 4) ShopInfo - через запятую список номеров магазинов, где продается предмет. Запятые нельзя в начале и в конце строчки, писать их надо только между цифрами. 5) LIST - список строковых (текстовых) значений. Через запятую. Писать по тем же правилам, что и ShopInfo. 6) Неизвестное с кнопкой. Тем неизвестным (Unknown*) полям, у которых формат неясен, приписывается кнопка (ее видно при выделении поля). Нажав на кнопку, можно сохранить внутреннее представление поля в файле, или загрузить из файла. 7) Другие поля - они бывают разные, их там много всяких... то что выше - это я основные упомянул. Обычно они выглядят как обычные и никакой разницы в их редактировании нет. А если разница и есть, то прога по любому перед сохранением проверит, чего ей там понаписали, и если чего неправильно - выведет диалог с сообщением об ошибке и краткой инструкцией, чего можно, а чего нельзя писать в данное поле. 8) "Поля" с кнопкой, но не "неизвестные" - обычно кнопка ставится, если для редактирования поля нужно вызвать дополнительный диалог (например в Acks.db), либо если нажатие кнопки позволяет отредактировать поле быстрее. Например, у многие поля ID (ID есть в названии поля) - это целочисленные числа, но определенным значениям поля может соответствовать слово (например 00 = sword, 01 = axe)... В общем, такие поля выглядят примерно так (квадратные скопки не считайте ;) ): [ 1 | AXE ] Тоесть стоит цифра, потом прямая черта, потом слово. В принципе, в таком поле можно "руками" написать цифру (прога воспримет только то, что написано с начала строки, все что стоит после первого пробела (и сам пробел) - игнорируется). Но можно нажать на кнопку в этом поле и выбрать нужную цифру из списка (при этом видно, что означает каждая из цифр). Про шаблоны. Шаблоны - заготовки записей. У каждого типа базы (и у каждого ее раздела) они разные и содержатся в разных папках. Чтобы создать шаблон, надо открыть (или создать) запись, на основе которой будет сделан шаблон, выставить нужные значения и нажать [Зашаблонить]. В появившемся окне или ввести новое имя, или выбрать из списка уже существующий шаблон. Ну и нажать OK. Все. Чтоб создать запись, надо после нажатия [Создать] ввести правильное имя записи (чтоб оно было уникальным), а потом выбрать нужный шаблон. Все. ___________________________________________________________ 7. Баллада о чейнджлоге. Когда-то 7-й пункт содержал в себе что-то вроде "списка нововведений". Теперь примерно такой список лежит в файле ChangeLog.txt и его можно увидеть при также при запуске инсталляции. Отсюда оно убрано. Ибо нефиг. ___________________________________________________________ 8. Координаты аффтароф. Утилита разработана командой Gipat Group которые иногда обитают по адресу www.GipatGroup.org. Там есть форум где можно обсудить программу. Собственно разработка программы ведется по адресу http://svn.gipat.org/trac/EiEdit - здесь вы можете ознакомиться со статусом разработки, посмотреть на дальнейшие планы, списки багов, скачать саму прогу и исходник (в т.ч. текущую версию из svn) итд итп. Если вы нашли в программе баг - заходите на трекер, ищете по багам - не сообщали ли уже о такой ошибке. Если сообщений нет - создаете New Ticket в котором подробно описываете сущность ошибки, если программа выдает какое-то сообщение о ошибке - желательно прикрепить скриншот с этого сообщения. В настройках создаваемого тикета не забывайте указывать что тип тикета - баг, что компонент - тоже баг, указывайте номер версии программы, которой вы пользуетесь. Если вы хотите предложить что-то улучшить в программе - аналогично создайте новый тикет, указав тип тикета - "предложение", компонент - выберите тот компонент, к которому по вашему мнению относится улучшение (можно выбрать "другое") и опишите предлагаемое улучшение. Версию - выберите вашу текущую, которой пользуетесь. Milestone - выбрать "предложения". Если вы сами сделали какое-то улучшение в исходнике - сделайте patch от текущей версии svn - и пришлите патч опять же в виде Ticket-а. Тип тикета - выбрать патч, компонент - патчи, присоедините сам файл патча к тикету, опишите сделанное вами улучшение, в тексте обязательно укажите номер ревизии на которую нужно накладывать патч. Если вы хотите принять участие в разработке - сообщите о своем намерении разработчикам (например через форум), затем выберите любую незанятую задачу, реализуйте её и пришлите в виде патча - если сумеете доказать что можете писать вменяемый код - получите постоянный доступ к svn на запись. ___________________________________________________________ Координаты аффтароф. Утилита разработана командой Gipat Group которые иногда обитают по адресу www.GipatGroup.org. Там есть форум где можно обсудить программу. Собственно разработка программы ведется по адресу http://svn.gipat.org/trac/EiEdit - здесь вы можете ознакомиться со статусом разработки, посмотреть на дальнейшие планы, списки багов, скачать саму прогу и исходник (в т.ч. текущую версию из svn) итд итп.