Wake of Gods Forum | Форум Во Имя Богов

Full Version: ERA II
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
(03.07.2011 01:20)Berserker Wrote: [ -> ]r5g6b5.

Я думал, этот формат уже канул в небытие...
Да нет. Если цвет 16-битный, то возникает вопрос, каким цветам дать биты. Можну поровну, тогда один из битов пропадает. А можно зелёному на 1 больше, ведь зелёный глаз человека воспринимает сильнее.
   Упс. Просто подмена масок ничего не даёт. Поэтому сделал оперативную проверку режима и соответственно динамический выбор функции преобразования цвета. Заодно и событие "OnNameColors" родилось.
   Задумался о предложении Феанора. Ведь написать скрипт чисто в dll действительно удобно. Так что буду копать в область вещания событий в стиле: "!?CM2".
   Ну и по ходу пишу утилиту для работы с бинарными патчами. Перегон туда-обратно, оптимизация (после того, как увидел бинарники мора Sm ) и редактирование тегов.
В таком случае придётся ради сохранения скорости перейти к регистрации обработчиков событий. RegisterEventHandler(Name, Handler);
Пример скрипта, реализованного полностью через DLL:
Code:
BEGIN
  GameExt.RegisterHandler(TestScript, 'OnHeroScreenMouseClick');
END.

Image: original.png
Berserker, по-моему, довольно таки будет проще разобраться со скриптами в таком плане. Правда пока ничего не говорю про ерм функции/процедуры и конечно же про остатки старого скриптинга. Мда, в моем посте теперь нет никакого смысла...
Да даже в плане того, что условный синтаксис нагляднее и понятнее в Делфи, циклы нагляднее и понятнее - если скрипты писать в таком виде, то можно избежать многих ошибок-недосмотров.
   Можно обернуть многие ЕРМ команды в высокоуровневые функции, чтобы работать без прямого доступа к ЕРМ-переменным.
Хорошо..теперь можно уменьшить количество костылей.
Заодно будет забава: нечего делать - пиши хедер к героям (:
-) Известно, что если хотя бы один плагин пишет свои данные в сохранёнку, то меняется формат файла, появляется несовместимость с другими плагинами, разными версиями одного плагина, разными версиями тех. платформ и т.д. А писать данные хочется, ведь вести учёт ЕРМ переменным универсально невозможно.

Решение:
Эра больше не пишет ничего сырыми данными (ранее - опции), а также предоставляет АПИ для записи/чтения в сохранение в раздел с определённым именем/ключом:
Code:
PROCEDURE WriteSavegameSection (DataSize: INTEGER; {n} Data: POINTER; CONST SectionName: STRING); STDCALL;
FUNCTION ReadSavegameSection (DataSize: INTEGER; {n} Dest: POINTER; CONST SectionName: STRING): INTEGER; STDCALL;
Соответственно поддерживается запись и чтение кусками. Так что авторы разных модов/плагинов должны лишь обеспокоиться уникальными именами для своих разделов. Совпадения маловероятны и несложно правятся.

Статус: готово.
Просто отличные улучшения!А разработка сей замечательной вещи на финишной прямой или будут еще добавляться функции?
Уже закончена предварительно. Дело за 1-2 утилитами, инсталлятором, справочником и тестированием.
Без справочника и пары туториалов по утилитам и новым возможностям будет не гуд. А за тестированием дело не станет.
Думаю что смог бы помочь с версткой справочника, главное чтобы было что верстать... 118
Спасибо, возможно воспользуюсь предложением.
etoprostoya, понял 118
Reference URL's