<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title><![CDATA[Wake of Gods Forum | Форум Во Имя Богов - Библиотека по моддингу]]></title>
		<link>http://wforum.heroes35.net/</link>
		<description><![CDATA[Wake of Gods Forum | Форум Во Имя Богов - http://wforum.heroes35.net]]></description>
		<pubDate>Fri, 17 Apr 2026 09:00:18 +0000</pubDate>
		<generator>MyBB</generator>
		<item>
			<title><![CDATA[Heroes3 Object Editor]]></title>
			<link>http://wforum.heroes35.net/showthread.php?tid=7143</link>
			<pubDate>Wed, 19 Mar 2025 18:06:12 +0000</pubDate>
			<guid isPermaLink="false">http://wforum.heroes35.net/showthread.php?tid=7143</guid>
			<description><![CDATA[Я увидел на одном видео что игрок пользуетса программой Heroes3 Object Editor что-бы редактировать обьэкты как в WoG но только эта программа совместима с HotA. Подскажите пожалуйста что это за программа и где её можно скачать.<br />
<img src="https://drive.google.com/file/d/1pDpErZWh3RY5HOMth6H8jT1TDt4H8FP8/view?usp=sharing" border="0" alt="Image: view?usp=sharing" style='max-width: 800px; height: auto;' onclick='Bers.ScaleImg(this);'/>]]></description>
			<content:encoded><![CDATA[Я увидел на одном видео что игрок пользуетса программой Heroes3 Object Editor что-бы редактировать обьэкты как в WoG но только эта программа совместима с HotA. Подскажите пожалуйста что это за программа и где её можно скачать.<br />
<img src="https://drive.google.com/file/d/1pDpErZWh3RY5HOMth6H8jT1TDt4H8FP8/view?usp=sharing" border="0" alt="Image: view?usp=sharing" style='max-width: 800px; height: auto;' onclick='Bers.ScaleImg(this);'/>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Стандартизированная база героев 3]]></title>
			<link>http://wforum.heroes35.net/showthread.php?tid=6419</link>
			<pubDate>Sun, 21 Nov 2021 13:08:18 +0000</pubDate>
			<guid isPermaLink="false">http://wforum.heroes35.net/showthread.php?tid=6419</guid>
			<description><![CDATA[Приветствую коммьюнити мододелов! Представляю вашему вниманию свою базу данных героев, содержащую скромное количество оригинальных сигнатур. Суть в том, чтобы восстановить остальные неизведанные сигнатуры игры, применяя знания STL C++, общие наблюдения о работе игры и, собственно, источник сигнатур - базу данных RoE Dreamcast. <span style="font-weight: bold;"><span style="font-style: italic;">К сожалению, IDA не имеет встроенного декомпилятора для SH-4(RISC-процессора Sega Dreamcast), поэтому приходится анализировать только ассемблерный листинг. Ghidra имеет декомпилятор SH-4, но он очень кривой.</span></span><br />
<br />
<a href="https://postimg.cc/gL86rVrT" target="_blank"><img src="https://i.postimg.cc/Kjs7qQbx/Screenshot-functions.png" border="0" alt="Image: Screenshot-functions.png" style='max-width: 800px; height: auto;' onclick='Bers.ScaleImg(this);'/></a><br />
<a href="https://postimg.cc/N5tKprKQ" target="_blank"><img src="https://i.postimg.cc/HscbWwH8/Screenshot-pseudocode.png" border="0" alt="Image: Screenshot-pseudocode.png" style='max-width: 800px; height: auto;' onclick='Bers.ScaleImg(this);'/></a><br />
<a href="https://postimg.cc/vcvcjHnf" target="_blank"><img src="https://i.postimg.cc/MKCVnnKP/Screenshot-types.png" border="0" alt="Image: Screenshot-types.png" style='max-width: 800px; height: auto;' onclick='Bers.ScaleImg(this);'/></a><br />
<br />
Ссылки для скачивания:<br />
SoD-База by Void_17: <a href="https://drive.google.com/file/d/1MY28K8cVbAeBzAbBBBf5ZeK-0aLMfz_d/view?usp=sharing" target="_blank">https://drive.google.com/file/d/1MY28K8c...sp=sharing</a><br />
RoE-Dreamcast-база: <a href="https://drive.google.com/file/d/1rAWaKjzy8q23wUBiHs_SlifPGuJ1U2B-/view?usp=sharing" target="_blank">https://drive.google.com/file/d/1rAWaKjz...sp=sharing</a><br />
<br />
<span style="font-weight: bold;">ТЕХНИЧЕСКИЕ ОСОБЕННОСТИ ОРИГИНАЛЬНОЙ ПК-ВЕРСИИ ГЕРОЕВ МЕЧА И МАГИИ 3</span>:<br />
<div class="notranslate"><div class="spoiler_header"> <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1&#93;.style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1&#93;.style.display='none';this.innerHTML='(Click to View)';}else {parentNode.parentNode.getElementsByTagName('div')[1&#93;.style.display='block';this.innerHTML='(Click to Hide)';}">(Click to View)</a></div><div class="spoiler_body" style="display: none; border: 1px dotted #0F5C8E;">Heroes Of Might and Magic III - пошаговая стратегия, написанная на языке C++ с применением Microsoft Visual Studio. Стандарт языка - новейший на тот момент C++98.<br />
Игра написана с использованием классов и инструментов библиотеки STL. <br />
<br />
Код игры можно разделить на две большие части:<br />
Интерфейс и Игровая Логика.<br />
Интерфейс - это все кнопки, картинки, звуки и все то, что делает из холодного машинного кода удобный для человека инструмент управления программой.<br />
Игровая Логика - это правила игры и поведение ИИ - компьютерного игрока. <br />
<br />
ИНТЕРФЕЙС<br />
Интерфейс реализован в основном на классах с большим количеством наследования, а значит, виртуальных методов. Компилятор ввиду особенностей виртуальных функций генерирует массив указателей на переопределенные методы - Таблица Виртуальных Функций (VMT, vftable).<br />
В интерфейс входят классы pcx-изображений, звуков, музыки и диалоговых окон, шрифтов и текстов, 16 и 24 битной графики, анимаций, заключенных в DEF-архивы.<br />
<br />
ИГРОВАЯ ЛОГИКА<br />
Игровая логика реализована на разных классах, зачастую без применения виртуальных методов. Этих классов больше и они описывают характеристики героя, массива армии, монстров, городов, менеджеров и т.д.</div></div>
<span style="font-weight: bold;">Как продолжить восстановление сигнатур и типов?</span><br />
Я применяю примерно следующие тактики:<br />
1. Захожу в область интересующего класса<br />
2. Нахожу "пробелы" ввиде неизученных методов/функций<br />
3. Смотрю где они применяются<br />
4. Сравниваю функцию по внутреннему устройству с функцией в дримкаст базе по ассемблерному листингу. Зачастую, вызовы функций идут по порядку. <span style="font-weight: bold;">БУДЬТЕ ПРЕДЕЛЬНО ВНИМАТЕЛЬНЫ СО ВСТРОЕННЫМИ ФУНКЦИЯМИ!</span><br />
5. Называю относительно базы Dreamcast. (Нажимаете на кнопку n и копируете функцию со всеми странными символами(это называется деманглер, позволяет в строке зашифровать сигнатуру функции <a href="https://en.wikiversity.org/wiki/Visual_C%2B%2B_name_mangling" target="_blank">https://en.wikiversity.org/wiki/Visual_C...e_mangling</a> )<br />
Но это если очень поверхностно, мне честно говоря трудно описать абсолютно все в деталях, я уже как-то интутивно это все делаю. <br />
Сложности:<br />
&gt;STL функции и контейнеры, их методы. Затрудняют изучение засчет загромождения встроенными(inline) функциями. <br />
&gt;Встроенные функции. Основная попаболь всех тех, кто изучает внутреннее устройство программ. <br />
Совет: помечайте повторяющимся комментарием(кнопка ";") и цветом те функции, которые встроены в SoD, но не в RoE-Dreamcast. (я помечал некоторые голубым цветом и комментарием "inline function")<br />
&gt;Dreamcast база -- RoE. А моя база -- ПК-SoD. Но впринципе, это не особо страшно, так как новведения относительно легко заметить.<br />
&gt;Не все функции идут друг за другом так, как в Dreamcast-базе. Есть одна из тактик, при которой можно просто брать сигнатуры из Dreamcast-базы, но нужно быть предельно осторожным, т.к. это не всегда так и там, где, казалось бы, в Dreamcast-базе по порядку идут методы одного класса, в SoD прямо посреди этого "ряда" может быть кусок другого класса.<br />
<br />
<br />
Остальное распишу потом. Отвечу на все вопросы и дам рекоммендации ИТТ. Надеюсь, что коммьюнити продолжит мое дело по приведению базы игры в порядок и систематизации всего, что известно об игре. Будем сотрудничать. Тред на другом форуме: <a href="https://handbookhmm.ru/forum/viewtopic.php?f=56&amp;t=968" target="_blank">https://handbookhmm.ru/forum/viewtopic.php?f=56&#x26;t=968</a><br><br />
Соглашения об именах:<br />
<br />
1. Функции<br />
Если вы не знаете, что метод точно принадлежит классу, но пока не до конца знаете, что это за сигнатура(или ее вообще нет в Dreamcast), следует переименовать функцию по следующему шаблону: имякласса_адрес<br />
пример: combatManager_46A150<br />
Если вы узнали, что эта сигнатура есть и функция с данной сигнатурой совпадает или почти полностью совпадает с функцией в Dreamcast-базе, скопируйте сигнатуру из Dreamcast-базы вместо имени этой функции. Если функция была добавлена в AB/SoD, отразите это перед именем метода.<br />
Пример: combatManager::SOD_is_in_fear<br />
<br />
2. Поля структур/классов:<br />
Называть поля согласно CamelCase.<br />
Пример: SoundFileName.<br />
Неизвестные поля называть field_смещение или f_смещение<br />
Неиспользуемые поля называть unused_смещение или u_смещение<br />
<br />
3. Аргументы функций и локальные переменные:<br />
Аргументы функций называть с заглавной буквы(искл.: this)<br />
Локальные переменны со строчной. Желательно избегать snake_case.<br />
<br />
4. Глобальные переменные<br />
Приставка g — global, перед каждой глобальной переменной,<br />
после нее p — pointer, если переменная является указателем или первая буква в названии типа, если НЕ указатель и НЕ целый класс/структура. Например глобальная int-переменная будет giVar]]></description>
			<content:encoded><![CDATA[Приветствую коммьюнити мододелов! Представляю вашему вниманию свою базу данных героев, содержащую скромное количество оригинальных сигнатур. Суть в том, чтобы восстановить остальные неизведанные сигнатуры игры, применяя знания STL C++, общие наблюдения о работе игры и, собственно, источник сигнатур - базу данных RoE Dreamcast. <span style="font-weight: bold;"><span style="font-style: italic;">К сожалению, IDA не имеет встроенного декомпилятора для SH-4(RISC-процессора Sega Dreamcast), поэтому приходится анализировать только ассемблерный листинг. Ghidra имеет декомпилятор SH-4, но он очень кривой.</span></span><br />
<br />
<a href="https://postimg.cc/gL86rVrT" target="_blank"><img src="https://i.postimg.cc/Kjs7qQbx/Screenshot-functions.png" border="0" alt="Image: Screenshot-functions.png" style='max-width: 800px; height: auto;' onclick='Bers.ScaleImg(this);'/></a><br />
<a href="https://postimg.cc/N5tKprKQ" target="_blank"><img src="https://i.postimg.cc/HscbWwH8/Screenshot-pseudocode.png" border="0" alt="Image: Screenshot-pseudocode.png" style='max-width: 800px; height: auto;' onclick='Bers.ScaleImg(this);'/></a><br />
<a href="https://postimg.cc/vcvcjHnf" target="_blank"><img src="https://i.postimg.cc/MKCVnnKP/Screenshot-types.png" border="0" alt="Image: Screenshot-types.png" style='max-width: 800px; height: auto;' onclick='Bers.ScaleImg(this);'/></a><br />
<br />
Ссылки для скачивания:<br />
SoD-База by Void_17: <a href="https://drive.google.com/file/d/1MY28K8cVbAeBzAbBBBf5ZeK-0aLMfz_d/view?usp=sharing" target="_blank">https://drive.google.com/file/d/1MY28K8c...sp=sharing</a><br />
RoE-Dreamcast-база: <a href="https://drive.google.com/file/d/1rAWaKjzy8q23wUBiHs_SlifPGuJ1U2B-/view?usp=sharing" target="_blank">https://drive.google.com/file/d/1rAWaKjz...sp=sharing</a><br />
<br />
<span style="font-weight: bold;">ТЕХНИЧЕСКИЕ ОСОБЕННОСТИ ОРИГИНАЛЬНОЙ ПК-ВЕРСИИ ГЕРОЕВ МЕЧА И МАГИИ 3</span>:<br />
<div class="notranslate"><div class="spoiler_header"> <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Click to View)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Click to Hide)';}">(Click to View)</a></div><div class="spoiler_body" style="display: none; border: 1px dotted #0F5C8E;">Heroes Of Might and Magic III - пошаговая стратегия, написанная на языке C++ с применением Microsoft Visual Studio. Стандарт языка - новейший на тот момент C++98.<br />
Игра написана с использованием классов и инструментов библиотеки STL. <br />
<br />
Код игры можно разделить на две большие части:<br />
Интерфейс и Игровая Логика.<br />
Интерфейс - это все кнопки, картинки, звуки и все то, что делает из холодного машинного кода удобный для человека инструмент управления программой.<br />
Игровая Логика - это правила игры и поведение ИИ - компьютерного игрока. <br />
<br />
ИНТЕРФЕЙС<br />
Интерфейс реализован в основном на классах с большим количеством наследования, а значит, виртуальных методов. Компилятор ввиду особенностей виртуальных функций генерирует массив указателей на переопределенные методы - Таблица Виртуальных Функций (VMT, vftable).<br />
В интерфейс входят классы pcx-изображений, звуков, музыки и диалоговых окон, шрифтов и текстов, 16 и 24 битной графики, анимаций, заключенных в DEF-архивы.<br />
<br />
ИГРОВАЯ ЛОГИКА<br />
Игровая логика реализована на разных классах, зачастую без применения виртуальных методов. Этих классов больше и они описывают характеристики героя, массива армии, монстров, городов, менеджеров и т.д.</div></div>
<span style="font-weight: bold;">Как продолжить восстановление сигнатур и типов?</span><br />
Я применяю примерно следующие тактики:<br />
1. Захожу в область интересующего класса<br />
2. Нахожу "пробелы" ввиде неизученных методов/функций<br />
3. Смотрю где они применяются<br />
4. Сравниваю функцию по внутреннему устройству с функцией в дримкаст базе по ассемблерному листингу. Зачастую, вызовы функций идут по порядку. <span style="font-weight: bold;">БУДЬТЕ ПРЕДЕЛЬНО ВНИМАТЕЛЬНЫ СО ВСТРОЕННЫМИ ФУНКЦИЯМИ!</span><br />
5. Называю относительно базы Dreamcast. (Нажимаете на кнопку n и копируете функцию со всеми странными символами(это называется деманглер, позволяет в строке зашифровать сигнатуру функции <a href="https://en.wikiversity.org/wiki/Visual_C%2B%2B_name_mangling" target="_blank">https://en.wikiversity.org/wiki/Visual_C...e_mangling</a> )<br />
Но это если очень поверхностно, мне честно говоря трудно описать абсолютно все в деталях, я уже как-то интутивно это все делаю. <br />
Сложности:<br />
&gt;STL функции и контейнеры, их методы. Затрудняют изучение засчет загромождения встроенными(inline) функциями. <br />
&gt;Встроенные функции. Основная попаболь всех тех, кто изучает внутреннее устройство программ. <br />
Совет: помечайте повторяющимся комментарием(кнопка ";") и цветом те функции, которые встроены в SoD, но не в RoE-Dreamcast. (я помечал некоторые голубым цветом и комментарием "inline function")<br />
&gt;Dreamcast база -- RoE. А моя база -- ПК-SoD. Но впринципе, это не особо страшно, так как новведения относительно легко заметить.<br />
&gt;Не все функции идут друг за другом так, как в Dreamcast-базе. Есть одна из тактик, при которой можно просто брать сигнатуры из Dreamcast-базы, но нужно быть предельно осторожным, т.к. это не всегда так и там, где, казалось бы, в Dreamcast-базе по порядку идут методы одного класса, в SoD прямо посреди этого "ряда" может быть кусок другого класса.<br />
<br />
<br />
Остальное распишу потом. Отвечу на все вопросы и дам рекоммендации ИТТ. Надеюсь, что коммьюнити продолжит мое дело по приведению базы игры в порядок и систематизации всего, что известно об игре. Будем сотрудничать. Тред на другом форуме: <a href="https://handbookhmm.ru/forum/viewtopic.php?f=56&amp;t=968" target="_blank">https://handbookhmm.ru/forum/viewtopic.php?f=56&t=968</a><br><br />
Соглашения об именах:<br />
<br />
1. Функции<br />
Если вы не знаете, что метод точно принадлежит классу, но пока не до конца знаете, что это за сигнатура(или ее вообще нет в Dreamcast), следует переименовать функцию по следующему шаблону: имякласса_адрес<br />
пример: combatManager_46A150<br />
Если вы узнали, что эта сигнатура есть и функция с данной сигнатурой совпадает или почти полностью совпадает с функцией в Dreamcast-базе, скопируйте сигнатуру из Dreamcast-базы вместо имени этой функции. Если функция была добавлена в AB/SoD, отразите это перед именем метода.<br />
Пример: combatManager::SOD_is_in_fear<br />
<br />
2. Поля структур/классов:<br />
Называть поля согласно CamelCase.<br />
Пример: SoundFileName.<br />
Неизвестные поля называть field_смещение или f_смещение<br />
Неиспользуемые поля называть unused_смещение или u_смещение<br />
<br />
3. Аргументы функций и локальные переменные:<br />
Аргументы функций называть с заглавной буквы(искл.: this)<br />
Локальные переменны со строчной. Желательно избегать snake_case.<br />
<br />
4. Глобальные переменные<br />
Приставка g — global, перед каждой глобальной переменной,<br />
после нее p — pointer, если переменная является указателем или первая буква в названии типа, если НЕ указатель и НЕ целый класс/структура. Например глобальная int-переменная будет giVar]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Реверс игры для новичков]]></title>
			<link>http://wforum.heroes35.net/showthread.php?tid=5706</link>
			<pubDate>Wed, 22 Jul 2020 07:55:14 +0000</pubDate>
			<guid isPermaLink="false">http://wforum.heroes35.net/showthread.php?tid=5706</guid>
			<description><![CDATA[Тема создана для того, чтобы объяснить основы реверс-инжиниринга для HoMM3, а также описать базовые техники и способы нахождения необходимых вам данных во внутреннем коде игры (в exe)<br />
<br />
<div class="notranslate"><div class="spoiler_header">Необходимые программы. <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1&#93;.style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1&#93;.style.display='none';this.innerHTML='(Click to View)';}else {parentNode.parentNode.getElementsByTagName('div')[1&#93;.style.display='block';this.innerHTML='(Click to Hide)';}">(Click to View)</a></div><div class="spoiler_body" style="display: none; border: 1px dotted #0F5C8E;">
Я пользуюсь всего двумя: <br />&nbsp;&nbsp;&nbsp;  - IDA Pro + Вогобаза HoMM3 (<a href="http://wforum.heroes35.net/showthread.php?tid=3900" target="_blank">ссылка</a>)<br />&nbsp;&nbsp;&nbsp;  - Olly Debager 2.01, например <a href="https://besplatnye-programmy.com/internet-raznoe/1166-ollydbg.html" target="_blank">в первой мне попавшейся ссылке</a> или любой другой удобный вам отладчик.<br />
<br />
Внутри "Вогобазы" есть архив с непосредственно самой вогобазой (ваш Кэп), и торрент файл на Ida 7й версии.<br />
Как устанавливать - я не буду объяснять. Думаю, вы и сами справитесь.<br />
<br />
PS: Ребята, запомните, что WinHex редактор - это не наш путь! Ошибочно править данные таким способом, потому что в любой момент времени вся ваша работа может уйти псу под хвост! Я вас предупредил...</div></div>
<br />
<span style="text-decoration: underline;">Содержание:</span><br />
<a href="http://wforum.heroes35.net/showthread.php?tid=5706&amp;pid=114041#pid114041" target="_blank">1. Приведение псевдокода Иды в удобочитаемый вид ©RoseKavalier (инструкция на английском). Внесение перечисляемых типов Enum</a><br />
<a href="http://wforum.heroes35.net/showthread.php?tid=5706&amp;pid=114024#pid114024" target="_blank">2. Принцип нахождения необходимых данных на примере поиска параметров бонуса Баллисты, зависящего от навыка Артилерия. Часть 1</a><br />
<a href="http://wforum.heroes35.net/showthread.php?tid=5706&amp;pid=114056#pid114056" target="_blank">2. Принцип нахождения необходимых данных на примере поиска параметров бонуса Баллисты, зависящего от навыка Артилерия. Часть 2</a><br />
<a href="http://wforum.heroes35.net/showthread.php?tid=5706&amp;pid=114063#pid114063" target="_blank">3. Находим данные элементов родных геройских диалогов (окно героя)</a><br />
<a href="http://wforum.heroes35.net/showthread.php?tid=5706&amp;pid=114052#pid114052" target="_blank">4. Определение причины краша игры с помощью HD_CRASH_LOG.TXT и Ида ©Zur13</a><br />
<a href="http://wforum.heroes35.net/showthread.php?tid=5706&amp;pid=114057#pid114057" target="_blank">5. Разбор причины вылета из игры, из-за неправильных манипуляций с UN:C ©XEPOMAHT</a><br />
<a href="https://vk.com/thesuccessionwarsmod?z=video-59535623_456239036%2Ffe71daea43fbf78436%2Fpl_wall_-59535623" target="_blank">6. Запись стрима: <span style="font-weight: bold;">feanor &#x26; Orzie</span> исследуют код и создают плагин на Мистицизм и героя специалиста по Баллистике в рамках проекта The Succession Wars на ERA 2</a><br />
<br />
<div class="notranslate"><div class="spoiler_header">Памятка установки хуков на WoG <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1&#93;.style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1&#93;.style.display='none';this.innerHTML='(Click to View)';}else {parentNode.parentNode.getElementsByTagName('div')[1&#93;.style.display='block';this.innerHTML='(Click to Hide)';}">(Click to View)</a></div><div class="spoiler_body" style="display: none; border: 1px dotted #0F5C8E;">
Вечно запариваюсь какие параметры хука использовать, если ида не указывает соглашение о вызове.<br />
Поэтому просто оставлю это здесь, как памятку.<br />
<br />
<div class="codeblock">
<div class="title">Code:<br />
</div><div class="body" dir="ltr"><code>void Initialize(void) 0x701215 // в исходниках<br />
signed int sub_701215() // в иде<br />
_PI-&gt;WriteHiHook(0x701215, SPLICE_, SAFE_, CDECL_, WoGInitialize);</code></div></div>
</div></div>]]></description>
			<content:encoded><![CDATA[Тема создана для того, чтобы объяснить основы реверс-инжиниринга для HoMM3, а также описать базовые техники и способы нахождения необходимых вам данных во внутреннем коде игры (в exe)<br />
<br />
<div class="notranslate"><div class="spoiler_header">Необходимые программы. <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Click to View)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Click to Hide)';}">(Click to View)</a></div><div class="spoiler_body" style="display: none; border: 1px dotted #0F5C8E;">
Я пользуюсь всего двумя: <br />&nbsp;&nbsp;&nbsp;  - IDA Pro + Вогобаза HoMM3 (<a href="http://wforum.heroes35.net/showthread.php?tid=3900" target="_blank">ссылка</a>)<br />&nbsp;&nbsp;&nbsp;  - Olly Debager 2.01, например <a href="https://besplatnye-programmy.com/internet-raznoe/1166-ollydbg.html" target="_blank">в первой мне попавшейся ссылке</a> или любой другой удобный вам отладчик.<br />
<br />
Внутри "Вогобазы" есть архив с непосредственно самой вогобазой (ваш Кэп), и торрент файл на Ida 7й версии.<br />
Как устанавливать - я не буду объяснять. Думаю, вы и сами справитесь.<br />
<br />
PS: Ребята, запомните, что WinHex редактор - это не наш путь! Ошибочно править данные таким способом, потому что в любой момент времени вся ваша работа может уйти псу под хвост! Я вас предупредил...</div></div>
<br />
<span style="text-decoration: underline;">Содержание:</span><br />
<a href="http://wforum.heroes35.net/showthread.php?tid=5706&amp;pid=114041#pid114041" target="_blank">1. Приведение псевдокода Иды в удобочитаемый вид ©RoseKavalier (инструкция на английском). Внесение перечисляемых типов Enum</a><br />
<a href="http://wforum.heroes35.net/showthread.php?tid=5706&amp;pid=114024#pid114024" target="_blank">2. Принцип нахождения необходимых данных на примере поиска параметров бонуса Баллисты, зависящего от навыка Артилерия. Часть 1</a><br />
<a href="http://wforum.heroes35.net/showthread.php?tid=5706&amp;pid=114056#pid114056" target="_blank">2. Принцип нахождения необходимых данных на примере поиска параметров бонуса Баллисты, зависящего от навыка Артилерия. Часть 2</a><br />
<a href="http://wforum.heroes35.net/showthread.php?tid=5706&amp;pid=114063#pid114063" target="_blank">3. Находим данные элементов родных геройских диалогов (окно героя)</a><br />
<a href="http://wforum.heroes35.net/showthread.php?tid=5706&amp;pid=114052#pid114052" target="_blank">4. Определение причины краша игры с помощью HD_CRASH_LOG.TXT и Ида ©Zur13</a><br />
<a href="http://wforum.heroes35.net/showthread.php?tid=5706&amp;pid=114057#pid114057" target="_blank">5. Разбор причины вылета из игры, из-за неправильных манипуляций с UN:C ©XEPOMAHT</a><br />
<a href="https://vk.com/thesuccessionwarsmod?z=video-59535623_456239036%2Ffe71daea43fbf78436%2Fpl_wall_-59535623" target="_blank">6. Запись стрима: <span style="font-weight: bold;">feanor & Orzie</span> исследуют код и создают плагин на Мистицизм и героя специалиста по Баллистике в рамках проекта The Succession Wars на ERA 2</a><br />
<br />
<div class="notranslate"><div class="spoiler_header">Памятка установки хуков на WoG <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Click to View)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Click to Hide)';}">(Click to View)</a></div><div class="spoiler_body" style="display: none; border: 1px dotted #0F5C8E;">
Вечно запариваюсь какие параметры хука использовать, если ида не указывает соглашение о вызове.<br />
Поэтому просто оставлю это здесь, как памятку.<br />
<br />
<div class="codeblock">
<div class="title">Code:<br />
</div><div class="body" dir="ltr"><code>void Initialize(void) 0x701215 // в исходниках<br />
signed int sub_701215() // в иде<br />
_PI-&gt;WriteHiHook(0x701215, SPLICE_, SAFE_, CDECL_, WoGInitialize);</code></div></div>
</div></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Суперсофт для 3D-художников]]></title>
			<link>http://wforum.heroes35.net/showthread.php?tid=5641</link>
			<pubDate>Tue, 16 Jun 2020 20:44:05 +0000</pubDate>
			<guid isPermaLink="false">http://wforum.heroes35.net/showthread.php?tid=5641</guid>
			<description><![CDATA[Доброго времени суток, наконец-то у меня дошли руки поделиться с сообществом результатами своей работы, а заодно помочь некоторым людям упростить рутинные процессы. Мне самому весьма надоело заниматься подобными вещами, потому я и решил их автоматизировать. Представляю вашему вниманию утилиты Resizer и Map object creator<img src="http://wforum.heroes35.net/images/smilies/115.gif" style="vertical-align: middle;" border="0" alt="115" title="115" /><br />
<br />
<span style="font-size: large;"><span style="color: #FF0000;"><span style="font-weight: bold;">Resizer:</span></span></span><br />
Как можно догадаться по названию, эта программа изначально создавалась для того, чтобы что-то масштабировать, и этим "что-то" являются большие группы кадров. Впоследствии область применения сильно расширилась, и теперь программа может...<br />
<span style="font-weight: bold;">- Зеркально отражать<br />
- Обновлять "прозрачный" фон<br />
- Переименовывать<br />
- Обрезать<br />
- Растягивать и сжимать</span><br />
<br />
...любые количества картинок одновременно, <span style="font-weight: bold;">сохраняя их в 24-битный bmp-формат.</span><br />
<br />
Получается, вы можете отрендерить 100-500 кадров в формате png, назвав их abc и zzz, а в результате получить Dragon1, Dragon2, etc. с правильными размерами, фоновым цветом и расширением.<br />
<br />
<span style="color: #FF0000;"><span style="font-weight: bold;">Обратите внимание, монстры имеют размеры 450х400, так что если вам нужно сохранить пропорции, соотношение длины и ширины перед масштабированием должно быть 9 к 8!</span></span><br />
<br />
Хоть по задумке программа работает только с монстрами, на самом же деле применять ее можно где угодно<img src="http://wforum.heroes35.net/images/smilies/118.gif" style="vertical-align: middle;" border="0" alt="118" title="118" /><br />
<br />
<br />
<span style="font-size: large;"><span style="color: #FF0000;"><span style="font-weight: bold;">MOCreator:</span></span></span><br />
Данная программа предназначена в первую очередь для создания анимаций объектов для КП (монстров или жилищ) из имеющихся кадров, но может также использоваться для создания маленьких иконок монстров или же, как Resizer, масштабировать группы кадров (возможностей для этого тут даже больше). <br />
<br />
<span style="color: #FF0000;"><span style="font-weight: bold;">Чтобы создать анимацию монстра, возьмите кадры "кривляния" и скормите их программе, у нее, кстати, есть режим предпросмотра, так что если вам не понравится форма или пропорции, вы сможете их тут же изменить.</span></span><br />
<br />
Также я прошу всех неравнодушных написать свое мнение, а заодно предложить свои идеи для новых функций<img src="http://wforum.heroes35.net/images/smilies/ab.gif" style="vertical-align: middle;" border="0" alt="Ab" title="Ab" /><br />
<span style="font-weight: bold;"><span style="color: #FF0000;">Обе программы в оригинале доступны на английском, однако могут быть переведены самостоятельно на любой другой язык.</span></span><br />
<br />
Скачать Resizer: <a href="https://drive.google.com/drive/folders/16n3jT35ZSrXnEmS5Yl9uuvJED_ItxAoh?usp=sharing" target="_blank">https://drive.google.com/drive/folders/1...sp=sharing</a><br />
Скачать MOCreator: <a href="https://drive.google.com/drive/folders/1NErXk0D-BBF2ylAGXpm3q_dtJcbI46bh?usp=sharing" target="_blank">https://drive.google.com/drive/folders/1...sp=sharing</a>]]></description>
			<content:encoded><![CDATA[Доброго времени суток, наконец-то у меня дошли руки поделиться с сообществом результатами своей работы, а заодно помочь некоторым людям упростить рутинные процессы. Мне самому весьма надоело заниматься подобными вещами, потому я и решил их автоматизировать. Представляю вашему вниманию утилиты Resizer и Map object creator<img src="http://wforum.heroes35.net/images/smilies/115.gif" style="vertical-align: middle;" border="0" alt="115" title="115" /><br />
<br />
<span style="font-size: large;"><span style="color: #FF0000;"><span style="font-weight: bold;">Resizer:</span></span></span><br />
Как можно догадаться по названию, эта программа изначально создавалась для того, чтобы что-то масштабировать, и этим "что-то" являются большие группы кадров. Впоследствии область применения сильно расширилась, и теперь программа может...<br />
<span style="font-weight: bold;">- Зеркально отражать<br />
- Обновлять "прозрачный" фон<br />
- Переименовывать<br />
- Обрезать<br />
- Растягивать и сжимать</span><br />
<br />
...любые количества картинок одновременно, <span style="font-weight: bold;">сохраняя их в 24-битный bmp-формат.</span><br />
<br />
Получается, вы можете отрендерить 100-500 кадров в формате png, назвав их abc и zzz, а в результате получить Dragon1, Dragon2, etc. с правильными размерами, фоновым цветом и расширением.<br />
<br />
<span style="color: #FF0000;"><span style="font-weight: bold;">Обратите внимание, монстры имеют размеры 450х400, так что если вам нужно сохранить пропорции, соотношение длины и ширины перед масштабированием должно быть 9 к 8!</span></span><br />
<br />
Хоть по задумке программа работает только с монстрами, на самом же деле применять ее можно где угодно<img src="http://wforum.heroes35.net/images/smilies/118.gif" style="vertical-align: middle;" border="0" alt="118" title="118" /><br />
<br />
<br />
<span style="font-size: large;"><span style="color: #FF0000;"><span style="font-weight: bold;">MOCreator:</span></span></span><br />
Данная программа предназначена в первую очередь для создания анимаций объектов для КП (монстров или жилищ) из имеющихся кадров, но может также использоваться для создания маленьких иконок монстров или же, как Resizer, масштабировать группы кадров (возможностей для этого тут даже больше). <br />
<br />
<span style="color: #FF0000;"><span style="font-weight: bold;">Чтобы создать анимацию монстра, возьмите кадры "кривляния" и скормите их программе, у нее, кстати, есть режим предпросмотра, так что если вам не понравится форма или пропорции, вы сможете их тут же изменить.</span></span><br />
<br />
Также я прошу всех неравнодушных написать свое мнение, а заодно предложить свои идеи для новых функций<img src="http://wforum.heroes35.net/images/smilies/ab.gif" style="vertical-align: middle;" border="0" alt="Ab" title="Ab" /><br />
<span style="font-weight: bold;"><span style="color: #FF0000;">Обе программы в оригинале доступны на английском, однако могут быть переведены самостоятельно на любой другой язык.</span></span><br />
<br />
Скачать Resizer: <a href="https://drive.google.com/drive/folders/16n3jT35ZSrXnEmS5Yl9uuvJED_ItxAoh?usp=sharing" target="_blank">https://drive.google.com/drive/folders/1...sp=sharing</a><br />
Скачать MOCreator: <a href="https://drive.google.com/drive/folders/1NErXk0D-BBF2ylAGXpm3q_dtJcbI46bh?usp=sharing" target="_blank">https://drive.google.com/drive/folders/1...sp=sharing</a>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Санта-гремлины. Моддинг]]></title>
			<link>http://wforum.heroes35.net/showthread.php?tid=6342</link>
			<pubDate>Fri, 20 Mar 2015 23:09:21 +0000</pubDate>
			<guid isPermaLink="false">http://wforum.heroes35.net/showthread.php?tid=6342</guid>
			<description><![CDATA[Может кто знает как отключить у санта-гремлина <span style="font-weight: bold;">гремлинов</span> командой !!EA&#36;:XXXX; ?]]></description>
			<content:encoded><![CDATA[Может кто знает как отключить у санта-гремлина <span style="font-weight: bold;">гремлинов</span> командой !!EA&#36;:XXXX; ?]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[DEF Recoloring Program]]></title>
			<link>http://wforum.heroes35.net/showthread.php?tid=4645</link>
			<pubDate>Mon, 05 Jan 2015 05:39:38 +0000</pubDate>
			<guid isPermaLink="false">http://wforum.heroes35.net/showthread.php?tid=4645</guid>
			<description><![CDATA[Хочу спросить, делал ли кто-нибудь подобную программу или собирается?<br />
Поясню, что нужно.<br />
Допустим, у нас есть def монстра с синими цветами в палитре (например, пикейщик). А нужно получить красного пикейщика.<br />
Скажем, в бинарном редакторе можно найти синий цвет пикселя и поменять на код красного цвета. Но это неудобно, ненаглядно, и тем более, синего цвета в палитре может быть много.<br />
<br />
Поэтому предлагается такой алгоритм.<br />
1) в программе указывается def монстра, программа загружает палитру из def файла и отображает ее на экране.<br />
2) палитру можно экспортировать в файл<br />
3) далее у нас есть отображение цветов исходной палитры и финальной палитры. Оператор вручную выбирает для каждого исходного цвета новый цвет. <br />
4) после правки финальной палитры ее можно сохранить в файл или применить к def-файлу (заменой кодов цветов на новые).<br />
<br />
В итоге будем иметь перекрашенный def.<br />
<br />
В принципе, программа несложная, я сам могу ее как-нибудь накидать. Но сейчас у меня совсем нет времени на это.<br />
<hr />
<blockquote><cite>Macron1 Wrote:</cite><div class="notranslate"><div class="spoiler_header">Первая версия программы реколоринга.<br />
Проще всего перекрашивать юнитов Замка и юнитов Succession Wars... <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1&#93;.style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1&#93;.style.display='none';this.innerHTML='(Click to View)';}else {parentNode.parentNode.getElementsByTagName('div')[1&#93;.style.display='block';this.innerHTML='(Click to Hide)';}">(Click to View)</a></div><div class="spoiler_body" style="display: none; border: 1px dotted #0F5C8E;">
<a href="http://forum.vcmi.eu/viewtopic.php?p=13870#13870" target="_blank">http://forum.vcmi.eu/viewtopic.php?p=13870#13870</a><br />
<br />
Вашему вниманию представляется программа, позволяющая экспрессно менять палитру дефов.<br />
Это даёт, во-первых, возможность пакетной перекраски всех кадров дефа, а во-вторых, уменьшает количество шагов посредством работы с дефом напрямую.<br />
<br />
<img src="http://i.imgur.com/tWtGpJR.png" border="0" alt="Image: tWtGpJR.png" style='max-width: 800px; height: auto;' onclick='Bers.ScaleImg(this);'/><br />
<br />
Руководство на русском языке прилагается.<br />
<div class="notranslate"><div class="spoiler_header">Инструкции по работе с программой <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1&#93;.style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1&#93;.style.display='none';this.innerHTML='(Click to View)';}else {parentNode.parentNode.getElementsByTagName('div')[1&#93;.style.display='block';this.innerHTML='(Click to Hide)';}">(Click to View)</a></div><div class="spoiler_body" style="display: none; border: 1px dotted #0F5C8E;">1. Запустить RecolorDef.exe (могут потребоваться дополнительные библиотеки Borland)<br />
2. Появится форма. Нажать Open Def.<br />
<br />
<img src="http://i.imgur.com/EIkCaMb.png" border="0" alt="Image: EIkCaMb.png" style='max-width: 800px; height: auto;' onclick='Bers.ScaleImg(this);'/><br />
<br />
3. Выбрать нужный DEF-файл. Палитра справа нередактируема - это входные данные. Палитра слева - выходные данные. <br />
Щелчок по иконке цвета позволяет задать новый цвет ячейке палитры. <br />
<br />
<img src="http://i.imgur.com/vD0TLqw.png" border="0" alt="Image: vD0TLqw.png" style='max-width: 800px; height: auto;' onclick='Bers.ScaleImg(this);'/><br />
<br />
После задания нового цвета он появляется в выходных данных.<br />
<br />
<img src="http://i.imgur.com/SG62GJC.png" border="0" alt="Image: SG62GJC.png" style='max-width: 800px; height: auto;' onclick='Bers.ScaleImg(this);'/><br />
<br />
Доступные операции с палитрой:<br />
- Сохранить текущую входную палитру (Save In Palette). Палитры сохраняются с расширением .PAL, не совместимым ни с какими другими программами.<br />
- Сохранить текущую выходную палитру (Save Out Palette)<br />
- Загрузить новую выходную палитру (Load Out Palette)<br />
<br />
<span style="font-weight: bold;">Важно:</span> первые 8 цветов палитры любого DEF-файла являются служебными, поэтому при их изменении нужно очень чётко понимать, что именно вы делаете.<br />
Также эти цвета не должны повторяться в другом месте палитры.<br />
<br />
4. По завершении работы с палитрой DEF-файла нажать Сохранить (Save DEF) и задать имя новому дефу.<br />
Пример работы программы на существе из Heroes of Might and Magic III: Horn of the Abyss.<br />
<img src="http://i.imgur.com/eZKhctC.png" border="0" alt="Image: eZKhctC.png" style='max-width: 800px; height: auto;' onclick='Bers.ScaleImg(this);'/></div></div></div></div></blockquote>
]]></description>
			<content:encoded><![CDATA[Хочу спросить, делал ли кто-нибудь подобную программу или собирается?<br />
Поясню, что нужно.<br />
Допустим, у нас есть def монстра с синими цветами в палитре (например, пикейщик). А нужно получить красного пикейщика.<br />
Скажем, в бинарном редакторе можно найти синий цвет пикселя и поменять на код красного цвета. Но это неудобно, ненаглядно, и тем более, синего цвета в палитре может быть много.<br />
<br />
Поэтому предлагается такой алгоритм.<br />
1) в программе указывается def монстра, программа загружает палитру из def файла и отображает ее на экране.<br />
2) палитру можно экспортировать в файл<br />
3) далее у нас есть отображение цветов исходной палитры и финальной палитры. Оператор вручную выбирает для каждого исходного цвета новый цвет. <br />
4) после правки финальной палитры ее можно сохранить в файл или применить к def-файлу (заменой кодов цветов на новые).<br />
<br />
В итоге будем иметь перекрашенный def.<br />
<br />
В принципе, программа несложная, я сам могу ее как-нибудь накидать. Но сейчас у меня совсем нет времени на это.<br />
<hr />
<blockquote><cite>Macron1 Wrote:</cite><div class="notranslate"><div class="spoiler_header">Первая версия программы реколоринга.<br />
Проще всего перекрашивать юнитов Замка и юнитов Succession Wars... <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Click to View)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Click to Hide)';}">(Click to View)</a></div><div class="spoiler_body" style="display: none; border: 1px dotted #0F5C8E;">
<a href="http://forum.vcmi.eu/viewtopic.php?p=13870#13870" target="_blank">http://forum.vcmi.eu/viewtopic.php?p=13870#13870</a><br />
<br />
Вашему вниманию представляется программа, позволяющая экспрессно менять палитру дефов.<br />
Это даёт, во-первых, возможность пакетной перекраски всех кадров дефа, а во-вторых, уменьшает количество шагов посредством работы с дефом напрямую.<br />
<br />
<img src="http://i.imgur.com/tWtGpJR.png" border="0" alt="Image: tWtGpJR.png" style='max-width: 800px; height: auto;' onclick='Bers.ScaleImg(this);'/><br />
<br />
Руководство на русском языке прилагается.<br />
<div class="notranslate"><div class="spoiler_header">Инструкции по работе с программой <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Click to View)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Click to Hide)';}">(Click to View)</a></div><div class="spoiler_body" style="display: none; border: 1px dotted #0F5C8E;">1. Запустить RecolorDef.exe (могут потребоваться дополнительные библиотеки Borland)<br />
2. Появится форма. Нажать Open Def.<br />
<br />
<img src="http://i.imgur.com/EIkCaMb.png" border="0" alt="Image: EIkCaMb.png" style='max-width: 800px; height: auto;' onclick='Bers.ScaleImg(this);'/><br />
<br />
3. Выбрать нужный DEF-файл. Палитра справа нередактируема - это входные данные. Палитра слева - выходные данные. <br />
Щелчок по иконке цвета позволяет задать новый цвет ячейке палитры. <br />
<br />
<img src="http://i.imgur.com/vD0TLqw.png" border="0" alt="Image: vD0TLqw.png" style='max-width: 800px; height: auto;' onclick='Bers.ScaleImg(this);'/><br />
<br />
После задания нового цвета он появляется в выходных данных.<br />
<br />
<img src="http://i.imgur.com/SG62GJC.png" border="0" alt="Image: SG62GJC.png" style='max-width: 800px; height: auto;' onclick='Bers.ScaleImg(this);'/><br />
<br />
Доступные операции с палитрой:<br />
- Сохранить текущую входную палитру (Save In Palette). Палитры сохраняются с расширением .PAL, не совместимым ни с какими другими программами.<br />
- Сохранить текущую выходную палитру (Save Out Palette)<br />
- Загрузить новую выходную палитру (Load Out Palette)<br />
<br />
<span style="font-weight: bold;">Важно:</span> первые 8 цветов палитры любого DEF-файла являются служебными, поэтому при их изменении нужно очень чётко понимать, что именно вы делаете.<br />
Также эти цвета не должны повторяться в другом месте палитры.<br />
<br />
4. По завершении работы с палитрой DEF-файла нажать Сохранить (Save DEF) и задать имя новому дефу.<br />
Пример работы программы на существе из Heroes of Might and Magic III: Horn of the Abyss.<br />
<img src="http://i.imgur.com/eZKhctC.png" border="0" alt="Image: eZKhctC.png" style='max-width: 800px; height: auto;' onclick='Bers.ScaleImg(this);'/></div></div></div></div></blockquote>
]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[FizMiG]]></title>
			<link>http://wforum.heroes35.net/showthread.php?tid=4384</link>
			<pubDate>Tue, 10 Dec 2013 01:02:03 +0000</pubDate>
			<guid isPermaLink="false">http://wforum.heroes35.net/showthread.php?tid=4384</guid>
			<description><![CDATA[<blockquote><cite>Quote:</cite><span style="font-weight: bold;">ФИЗМИГ</span> - это проект, целью которого является попытка объединения воедино разрозненной информации, знаний и умений, которые будут полезны любому пользователю игры Heroes of Might &amp; Magic III.<br />
Почти 1000 страниц информации!<br />
<br />
Не вся указанная в этом справочнике информация может считаться официальной, по причине того, что содержит наблюдения и оценки игроков, пожелавших поделиться своим мнением по поводу особенностей игры. Но, тем не менее, в целом она достаточно реально отражает Физику Мира Героев и несомненно будет полезна любому начинающему игроку.<br />
<br />
<span style="text-decoration: underline;">Основной автор</span>: <span style="font-weight: bold;">AmberSoler</span><br />
<span style="text-decoration: underline;">Соавтор</span>: <span style="font-weight: bold;">Сергей Drake</span></blockquote>
<br />
<br />
<div style="text-align: center;"><img src="https://sun9-83.userapi.com/c836625/v836625565/35b9f/Xwd0-7lmml8.jpg" border="0" alt="Image: Xwd0-7lmml8.jpg" style='max-width: 800px; height: auto;' onclick='Bers.ScaleImg(this);'/></div>
<br />
Представляем очередное обновление справочника <span style="font-weight: bold;"><span style="color: blue;">FizMiG_v.2.8</span></span>!<br />
В этот релиз включены Excel-версии, включая FizMiG, содержащий информацию по аддону Horn of the Abyss v.1.6.1, а также общая Pdf-версия, объединяющая SoD и HotA.<br />
<br />
<div class="notranslate"><div class="spoiler_header"><span style="text-decoration: underline;">Новые и дополненные разделы</span> <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1&#93;.style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1&#93;.style.display='none';this.innerHTML='(Click to View)';}else {parentNode.parentNode.getElementsByTagName('div')[1&#93;.style.display='block';this.innerHTML='(Click to Hide)';}">(Click to View)</a></div><div class="spoiler_body" style="display: none; border: 1px dotted #0F5C8E;">
- Специализации героев [дополнен, добавлен калькулятор специалистов по существам в excel-версиях&#93;<br />
- Биографии героев, пол и раса. Участие в кампаниях [добавлены биографии героев в HotA-версиях&#93;<br />
- Заклинания и их свойства [дополнения заклинаниям Полёт, Вызов корабля, Забывчивость и др.&#93;<br />
- Вероятности появления заклинаний [исправлены абсолютные вероятности&#93;<br />
- Меняем топологию: Зыбучие пески, Силовое поле, Стена огня, Минное поле [новый раздел&#93;<br />
- Исследование заклинаний [дополнен в HotA-версиях&#93;<br />
- Магические и тактические способности существ [дополнения и исправления&#93;<br />
- Прирост существ в городах [дополнен&#93;<br />
- Алгоритм движения существ по полю боя. Разворот перед атакой. Дыхание [дополнен&#93;<br />
- Строения в городах разных типов [дополнен&#93;<br />
- Внешний вид городов при отстройке [дополнен&#93;<br />
- Игра против союзника [дополнен&#93;<br />
- Генератор случайных карт. Шаблоны [добавлена информация по типам шаблонов - Зеркала, Анархия и с наличием ИИ-игроков&#93;<br />
- Расстановка существ в армии героя ИИ [исправления и дополнения&#93;<br />
- Правила перехода героев в следующий сценарий кампании [новый раздел&#93;<br />
- Самые известные баги в игре [дополнен&#93;<br />
- Различия переводов [дополнен&#93;<br />
<br />
А также множество дополнений и других исправленных разделов. Улучшено визуальное оформление. Некоторые разделы являются экспериментальными, тестовыми или началом больших тем, в которые будет добавляться новая информация уже в следующих выпусках.</div></div>
<br />
<span style="text-decoration: underline;">Описание версий</span>:<br />
<span style="font-weight: bold;"><span style="color: blue;">v.2.8</span></span>: Версия справочника составлена в формате XLSM (MS Excel) с использованием макросов. Эта версия включает в себя объединённый FizMiG SoD + HotA. На странице Введения можно выбрать версию справочника из выпадающего списка (SoD или SoD+HotA). В зависимости от этого выбора на всех страницах будут отображена информация соответствующая выбранной версии игры. Для полноценного функционирования, в вашем Excel должны быть включены макросы (!). Краткая инструкция по формату находится в разделе Введения.<br />
<br />
<span style="font-weight: bold;">v.2.8h</span>: Версия справочника с информацией по игре, включая аддон Horn of the Abyss v.1.6.1 в формате XLSX (MS Excel).<br />
<br />
<span style="font-weight: bold;">v.2.8s</span>: Классическая версия справочника по оригинальной игре (SoD) в формате XLSX (MS Excel).<br />
<br />
<span style="font-weight: bold;">v.2.8</span>: Версия справочника с информацией по оригинальной игре, включая аддон Horn of the Abyss v.1.6.1 в формате PDF.<br />
<br />
<div class="notranslate"><div class="spoiler_header"><span style="font-style: italic;">Благодарности</span> <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1&#93;.style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1&#93;.style.display='none';this.innerHTML='(Click to View)';}else {parentNode.parentNode.getElementsByTagName('div')[1&#93;.style.display='block';this.innerHTML='(Click to Hide)';}">(Click to View)</a></div><div class="spoiler_body" style="display: none; border: 1px dotted #0F5C8E;">Спасибо всем, кто помогал и поддерживал в той или иной мере, присылал материалы и/или когда-то оставлял информацию в сети. Всё это способствует выпускам новых версии.<br />
Отдельная благодарность: Роман aka Belzer, Гоше Волкову, Андрею Жигалко, Александру Безе, Игорю Кудра, Владимиру Клевцову, Адаму, Shurup, Marek Machberet, Алану Исакову, группе Paragon, группе WoG, LC, Владимиру Мендалю, Максиму Бойко (Mortarial), Сергею Назарову, Aeternus, Сергею Адымканову и другим.</div></div>
<br />
Скачать:<br />
<br />
- <span style="font-weight: bold;"><span style="color: blue;">2.8</span></span> (SoD+HotA) xlsm: <a href="https://yadi.sk/i/vPvQKY2X28u4Fg" target="_blank">https://yadi.sk/i/vPvQKY2X28u4Fg</a><br />
- <span style="font-weight: bold;">2.8h</span> (HotA) xlsx: <a href="https://yadi.sk/i/2vGAwMKCLHC9mw" target="_blank">https://yadi.sk/i/2vGAwMKCLHC9mw</a><br />
- <span style="font-weight: bold;">2.8s</span> (SoD) xlsx: <a href="https://yadi.sk/i/NLtgmHYbo9Fjyg" target="_blank">https://yadi.sk/i/NLtgmHYbo9Fjyg</a><br />
- <span style="font-weight: bold;">2.8 PDF</span> (SoD+HotA): <a href="https://yadi.sk/i/fTR_UohwHPqstQ" target="_blank">https://yadi.sk/i/fTR_UohwHPqstQ</a><br />
<br />
Самые последние новости по справочнику вы можете узнать здесь -&gt; <a href="https://vk.com/fizmig" target="_blank">Вконтакте</a> <img src="http://wforum.heroes35.net/images/smilies/4.gif" style="vertical-align: middle;" border="0" alt="4" title="4" /><br />
<br />
<span style="font-style: italic;">Как и всегда, предложения, замечания и пожелания приветствуются!</span>]]></description>
			<content:encoded><![CDATA[<blockquote><cite>Quote:</cite><span style="font-weight: bold;">ФИЗМИГ</span> - это проект, целью которого является попытка объединения воедино разрозненной информации, знаний и умений, которые будут полезны любому пользователю игры Heroes of Might &amp; Magic III.<br />
Почти 1000 страниц информации!<br />
<br />
Не вся указанная в этом справочнике информация может считаться официальной, по причине того, что содержит наблюдения и оценки игроков, пожелавших поделиться своим мнением по поводу особенностей игры. Но, тем не менее, в целом она достаточно реально отражает Физику Мира Героев и несомненно будет полезна любому начинающему игроку.<br />
<br />
<span style="text-decoration: underline;">Основной автор</span>: <span style="font-weight: bold;">AmberSoler</span><br />
<span style="text-decoration: underline;">Соавтор</span>: <span style="font-weight: bold;">Сергей Drake</span></blockquote>
<br />
<br />
<div style="text-align: center;"><img src="https://sun9-83.userapi.com/c836625/v836625565/35b9f/Xwd0-7lmml8.jpg" border="0" alt="Image: Xwd0-7lmml8.jpg" style='max-width: 800px; height: auto;' onclick='Bers.ScaleImg(this);'/></div>
<br />
Представляем очередное обновление справочника <span style="font-weight: bold;"><span style="color: blue;">FizMiG_v.2.8</span></span>!<br />
В этот релиз включены Excel-версии, включая FizMiG, содержащий информацию по аддону Horn of the Abyss v.1.6.1, а также общая Pdf-версия, объединяющая SoD и HotA.<br />
<br />
<div class="notranslate"><div class="spoiler_header"><span style="text-decoration: underline;">Новые и дополненные разделы</span> <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Click to View)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Click to Hide)';}">(Click to View)</a></div><div class="spoiler_body" style="display: none; border: 1px dotted #0F5C8E;">
- Специализации героев [дополнен, добавлен калькулятор специалистов по существам в excel-версиях]<br />
- Биографии героев, пол и раса. Участие в кампаниях [добавлены биографии героев в HotA-версиях]<br />
- Заклинания и их свойства [дополнения заклинаниям Полёт, Вызов корабля, Забывчивость и др.]<br />
- Вероятности появления заклинаний [исправлены абсолютные вероятности]<br />
- Меняем топологию: Зыбучие пески, Силовое поле, Стена огня, Минное поле [новый раздел]<br />
- Исследование заклинаний [дополнен в HotA-версиях]<br />
- Магические и тактические способности существ [дополнения и исправления]<br />
- Прирост существ в городах [дополнен]<br />
- Алгоритм движения существ по полю боя. Разворот перед атакой. Дыхание [дополнен]<br />
- Строения в городах разных типов [дополнен]<br />
- Внешний вид городов при отстройке [дополнен]<br />
- Игра против союзника [дополнен]<br />
- Генератор случайных карт. Шаблоны [добавлена информация по типам шаблонов - Зеркала, Анархия и с наличием ИИ-игроков]<br />
- Расстановка существ в армии героя ИИ [исправления и дополнения]<br />
- Правила перехода героев в следующий сценарий кампании [новый раздел]<br />
- Самые известные баги в игре [дополнен]<br />
- Различия переводов [дополнен]<br />
<br />
А также множество дополнений и других исправленных разделов. Улучшено визуальное оформление. Некоторые разделы являются экспериментальными, тестовыми или началом больших тем, в которые будет добавляться новая информация уже в следующих выпусках.</div></div>
<br />
<span style="text-decoration: underline;">Описание версий</span>:<br />
<span style="font-weight: bold;"><span style="color: blue;">v.2.8</span></span>: Версия справочника составлена в формате XLSM (MS Excel) с использованием макросов. Эта версия включает в себя объединённый FizMiG SoD + HotA. На странице Введения можно выбрать версию справочника из выпадающего списка (SoD или SoD+HotA). В зависимости от этого выбора на всех страницах будут отображена информация соответствующая выбранной версии игры. Для полноценного функционирования, в вашем Excel должны быть включены макросы (!). Краткая инструкция по формату находится в разделе Введения.<br />
<br />
<span style="font-weight: bold;">v.2.8h</span>: Версия справочника с информацией по игре, включая аддон Horn of the Abyss v.1.6.1 в формате XLSX (MS Excel).<br />
<br />
<span style="font-weight: bold;">v.2.8s</span>: Классическая версия справочника по оригинальной игре (SoD) в формате XLSX (MS Excel).<br />
<br />
<span style="font-weight: bold;">v.2.8</span>: Версия справочника с информацией по оригинальной игре, включая аддон Horn of the Abyss v.1.6.1 в формате PDF.<br />
<br />
<div class="notranslate"><div class="spoiler_header"><span style="font-style: italic;">Благодарности</span> <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Click to View)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Click to Hide)';}">(Click to View)</a></div><div class="spoiler_body" style="display: none; border: 1px dotted #0F5C8E;">Спасибо всем, кто помогал и поддерживал в той или иной мере, присылал материалы и/или когда-то оставлял информацию в сети. Всё это способствует выпускам новых версии.<br />
Отдельная благодарность: Роман aka Belzer, Гоше Волкову, Андрею Жигалко, Александру Безе, Игорю Кудра, Владимиру Клевцову, Адаму, Shurup, Marek Machberet, Алану Исакову, группе Paragon, группе WoG, LC, Владимиру Мендалю, Максиму Бойко (Mortarial), Сергею Назарову, Aeternus, Сергею Адымканову и другим.</div></div>
<br />
Скачать:<br />
<br />
- <span style="font-weight: bold;"><span style="color: blue;">2.8</span></span> (SoD+HotA) xlsm: <a href="https://yadi.sk/i/vPvQKY2X28u4Fg" target="_blank">https://yadi.sk/i/vPvQKY2X28u4Fg</a><br />
- <span style="font-weight: bold;">2.8h</span> (HotA) xlsx: <a href="https://yadi.sk/i/2vGAwMKCLHC9mw" target="_blank">https://yadi.sk/i/2vGAwMKCLHC9mw</a><br />
- <span style="font-weight: bold;">2.8s</span> (SoD) xlsx: <a href="https://yadi.sk/i/NLtgmHYbo9Fjyg" target="_blank">https://yadi.sk/i/NLtgmHYbo9Fjyg</a><br />
- <span style="font-weight: bold;">2.8 PDF</span> (SoD+HotA): <a href="https://yadi.sk/i/fTR_UohwHPqstQ" target="_blank">https://yadi.sk/i/fTR_UohwHPqstQ</a><br />
<br />
Самые последние новости по справочнику вы можете узнать здесь -&gt; <a href="https://vk.com/fizmig" target="_blank">Вконтакте</a> <img src="http://wforum.heroes35.net/images/smilies/4.gif" style="vertical-align: middle;" border="0" alt="4" title="4" /><br />
<br />
<span style="font-style: italic;">Как и всегда, предложения, замечания и пожелания приветствуются!</span>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Случайность как фактор нейтрализации тактики]]></title>
			<link>http://wforum.heroes35.net/showthread.php?tid=4377</link>
			<pubDate>Thu, 05 Dec 2013 19:58:00 +0000</pubDate>
			<guid isPermaLink="false">http://wforum.heroes35.net/showthread.php?tid=4377</guid>
			<description><![CDATA[&nbsp;&nbsp;&nbsp;Когда речь заходит о роли случая в игре, мнения аудитории обычно расходятся. Одни утверждают, что всё «хорошо весьма» и генератор случайных чисел (ГСЧ) нисколько не портит игру, другие с горечью рассказывают, как очередное выпадение морали защитникам замка предрешило исход часовой битвы.<br />
<br />&nbsp;&nbsp;&nbsp;А между тем, в чём-то правы и те, и другие. Первые правы в том, что ряд игровых моментов хорошо сбалансирован, то есть случай в них загнан в предсказуемые рамки. Но правы и другие, винящие козни ГСЧ в разбитой об стенку со злости клавиатуре. Например известно, что наши китайские коллеги любят очень сложные карты. В боях на таких картах без выпадения целой комбинации бонусов победить просто невозможно. И наоборот. Победа зависит от чётко выстроенного и исполняемого по шагам плана, который может нарушить любой двойной ход противника. Стоит ли говорить, что закон подлости в нужный момент проявляет себя на все 100%. Что мы имеем в итоге? Злость, досаду, потерю интереса.<br />
<br />&nbsp;&nbsp;&nbsp;Давайте разберёмся подробнее, где истина и лежит ли она посередине. Чтобы понять природу проблемы, нужно обратить внимание на то, что мы именуем «ГСЧ». На самом деле правильный термин для алгоритма генерации случайных чисел — генератор псевдослучайных чисел, так как каждое новое число полностью предопределяется состоянием генератора.<br />
<br />&nbsp;&nbsp;&nbsp;У программных ГСЧ есть немало проблем. Во-первых, все они рано или поздно начинают повторяться. То есть существует параметр длины последовательности, после которой генерация начинается с начала, повторяя один-в-один то, что уже было. Впрочем, скажете вы, для игр со множеством случайных факторов предсказание чисел и повтор последовательности являются вещами маловероятными. Соглашусь с вами.<br />
<br />&nbsp;&nbsp;&nbsp;Другой проблемой является качество генератора, а вернее качество последовательности чисел, которую он выдаёт. Предполагается, что последовательность будет иметь равномерное распределение. То есть на 1000 сгенерированных значений от 1..10 должно прийтись в среднем по 100 каждого. Положим, приблизительно так и будет. Значит генератор подходит для боевого применения? Не спешите.<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;Большинство игровых событий требует небольшой длины последовательности. Например, если дерево знаний даёт в 20% случаев повышение, то не стоит всерьёз надеяться, что игроку дадут возможность посетить 1000 деревьев. На карте будет расположено от силы 10 объектов данного типа. А значит к генератору предъявляются повышенные требования. И здесь мы сталкиваемся с проблемами. Оказывается, на небольших последовательностях значения могут скакать абсолютно произвольным образом. Например 4 дерева из 5-и окажутся удачливыми. Или наоборот, все 5 бесполезными. Представьте себе разочарование игрока, пробившегося с потерями в зону с тремя такими объектами и ушедшего ни с чем после значительной потери времени.<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;Но даже если генератор имеет схожее с равномерным распределение на небольших по размерам последовательностях, это отнюдь не гарантирует того математического ожидания, которое будет искать игрок. Дело в том, что один и тот же генератор с одним и тем же состоянием используется одновременно для всех игровых событий. Это значит, что если мы генерируем числа от 1..5 и нам жизненно важно получить 5 хотя бы за десять генераций, мы можем не получить требуемое значение вообще. Всё потому, что после каждой нашей генерации работают другие события, например расчёт урона для отрядов в бою, где указанная пятёрка, возможно, не раз выпадала, но когда ход вновь возвращается нашему событию, генератор снова отплёвывается повтором. Поэтому драколич с шансом блока в 20% в битвах нередко блокирует 4-5 ударов подряд! Автор не раз лично был свидетелем этого явления и смеялся в голос. Даже шутка такая родилась, об абсолютной защите драколичей.<br />
<br />&nbsp;&nbsp;&nbsp;Иными словами, для исправления указанного выше недостатка достаточно иметь собственный ГСЧ для каждого «пользователя» в игре. Однако гарантии математического ожидания на малых и средних последовательностях всё равно не будет.<br />
<br />&nbsp;&nbsp;&nbsp;Давайте теперь разберём такое понятие, как хаотичность событий, или меру хаоса, вносимого событием в планы игроков или ИИ. Для начала введём несколько обозначений:<br />
<br />
N - (number) - длина последовательности.<br />
D - (distance) - разбежка или расстояние между максимальным и минимальным значением.<br />
A - (average distribution) - математическое ожидание. Значение, к которому стремится среднее, рассчитанное по последовательности. Для равномерного распределения вычисляется как (Макс - Мин) / 2. Если измеряется в %, то это % от разбежки.<br />
<blockquote><cite>Quote:</cite>Мин...Мин + A * D...Макс</blockquote>
<br />
NA - произведение начальных A и N. Показывает ресурс, который идеальный генератор должен распределить по последовательности. Например, если имеется A = 20% и N = 10, то NA = 200%. Каждое новое генерируемое значение — это минимальное + некоторый бонус, который берётся из общего хранилища. NA * D показывает предполагаемую сумму всех бонусов для каждого значения.<br />
<br />
M - количество оставшихся членов последовательности (&lt;= N).<br />
<br />&nbsp;&nbsp;&nbsp;Под хаотичностью события мы будем подразумевать его минимальные и максимальные отклонения от математического ожидания. Так, для диапазона 50..80 математическое ожидание A = (80 + 50) / 2 = 65. Возможные отклонения: ±15. 15 — это 23% от среднего. Значит хаотичность: -23%..+23%.<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;Посмотрим, какую хаотичность предлагают разработчики игр для самого важного параметра в бою — урона. В Эадоре урон монстров задаётся одним числом (A), а конкретное значение при ударе рассчитывается как 0.75 * А .. 1,25 * А. Иначе говоря, хаотичность: ±25%. Запомним это значение. Оно вносит достаточно разнообразие в бой, позволяя случаться событием, вроде «успел добить жирного монстра» или «выжил с 1 жизнью», в то же время предоставляя игроку возможность оценки рисков и планирования.<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;Проверим наиболее популярные разбросы урона в Героях 3.<br />&nbsp;&nbsp;&nbsp;2-3, 4-6, 10-15 и т.д. Хаотичность: ±20%. Предсказуемость хорошая. Благословение не критично, проклятие не смертельно.<br />&nbsp;&nbsp;&nbsp;1-2, 2-4, 10-20, 20-40 и т.д.. Хаотичность: ±33%. Имеют значительную зависимость от ГСЧ. Благословения и проклятья играют существенную роль. Критические успехи и провалы приводят к изменению оперативных планов.<br />&nbsp;&nbsp;&nbsp;1-3, 3-8, 20-45. Хаотичность ±40%..50%. Практически выводит ситуацию из под контроля игрока. Урон скачет непредсказуемо. Невезенье или везенье всего в нескольких ходах может сыграть решающую роль в бою. Благословения и проклятья (артефакты для них) критичны.<br />&nbsp;&nbsp;&nbsp;1..100. Хаотичность: ±100%. Классический пример полного разгула Случая. Палатка лечит на 5, 17, 13? Ценный монстр погибает? Утешьтесь, в среднем могла вылечить 150 единиц здоровья! Чтобы добиться этого среднего понадобится весь бой. Но жизнь палатки скоротечна, а нужда в ней возникает локальная. Так что вариантов у вас не много. Наилучший — не надеяться на неё вообще.<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;Стоит отдельно рассмотреть довольно популярные двоичные генерации или генерации по принципу «всё сработало» и «всё не сработало». Они порой вносят гораздо больше хаоса в партию, чем расчёт урона. Например, 5% шанс блокировать магию противника. Хаотичность: -100%..+1900(!)%. Иначе говоря, ожидается срабатывание блока только в одном из двадцати случаев. Большей частью времени польза от эффекта нулевая (-100% от среднего). То есть бой идёт как будто способности нет. Но время от времени (в неподходящее) срабатывает блок, которого никто не ждал в виду некритичного шанса.<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;20% двоичное событие имеет хаотичность: -100%..+400%. Стоит ли говорить, что если требуется использовать накопленную ману в нужный момент для важного заклинания (ослепление последнего отряда, взрыв и т.д), предугадать наступление этого самого правильного момента нельзя. И наивен тот, кто думает, что в случае двойного запаса маны и стабильности плана с расчётом на одну неудачу, из двух подряд попыток колдовать хоть одна, да пройдёт. Может не пройти.<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;А ведь на самом деле игрока-тактика вполне устроило бы гарантированное или предсказуемое уменьшение эффекта заклинания, при котором само заклинание всё-таки действует. И защитнику не пришлось бы трястись, ожидая чудодейственного выпадения двадцатки, когда можно было бы весь бой игнорировать часть наносимого магического урона, справедливо осознавая, какие у соперника шансы убить ваш ценный отряд заклинанием.<br />
<br />&nbsp;&nbsp;&nbsp;Не менее печально известен и воговский блок в 50%, берущий своё начало из блока минотавров в Героях 4. Несмотря на значение 35%, минотавры умудрялись блокировать порой целые серии ударов, так что бой с ними был нервным и долгим, с нередкими перезагрузками. Чтобы уж наверняка не оставить тактике шанса, воговские командиры могут учить пятидесятипроцентный блок. Если задача командира выжить, то это самое сильное умение в игре. И 50% там только на словах. Визуально блок срабатывает гораздо чаще (причины указаны выше), так что в критические моменты Ваш командир может пережить и по три летальных удара. С другой стороны, если отряды противника тоже обладают подобной способностью, приготовьтесь к абсолютному цирку, учитывая, что блок может полностью нивелировать действия ваших заклинаний.<br />
<br />&nbsp;&nbsp;&nbsp;С учётом вышесказанного рекомендации следующие. Практически везде заменять двоичные генераторы на диапазонные (1), для каждого события использовать свой генератор, чтобы гарантировать чистоту последовательности (2) и использовать алгоритмы-надстройки над базовым ГСЧ для обеспечения выбранных характеристик последовательности (N, A, характер распределения) (3).<br />
<br />&nbsp;&nbsp;&nbsp;Библиотека BalancedGenerator.era выполняет все вышеуказанные функции. Она позволяет создавать объекты-генераторы с двумя вариантами распределения и предоставляет три функции для различных видов генераций. Все функции позволяют задавать диапазон длин последовательностей, чтобы уменьшить возможности игрока по предсказанию значений. Рассмотрим интерфейс библиотеки подробнее:<br />
<br />
<div class="codeblock">
<div class="title">Code:<br />
</div><div class="body" dir="ltr"><code>function CreateBalance50Obj (MinN, MaxN: integer): {O} TErmArr; stdcall;</code></div></div>
Функция создаёт генератор с <span style="font-weight: bold;">гарантированным</span> равномерным (A=50%) распределением. Аргументы: минимальная и максимальная длина последовательности, в рамках которой математическое ожидание будет равно 50%. Рекомендуется использовать значения в интервалах 7-14 для событий, имеющих среднюю и большую важность для игрока и 17-24 для длительных явлений с малой или средней значимостью.<br />
<br />
С точки зрения игрока если фактическое среднее значение становится меньше 50%, то повышается минимальная планка генерируемых значений. И наоборот, если слишком везёт и фактическое мат. ожидание &gt; 50%, то снижается верхняя планка генерируемых значений. Это позволяет даже интуитивно предполагать, что серия неудач завершится выравнивающими успехами. Иными словами, реальные значения зависят от того, что выпадало в предыдущих генерациях.<br />
<br />
Пример. Пусть диапазон урона: 50..100. N = 10, A = 50%, NA = 500%. M = 10.<br />
Выпадает 100. Теперь NA = 400%, M = 9, A = 400%/9 = 44.44%. Это значит что в оставшейся последовательности из девяти чисел среднее значение будет уже не Мин + 0.5 * Разбежка, а Мин + 0,44 * Разбежка. конкретно во второй генерации диапазон урона (реальный) будет 50..94.<br />
<div style="background-color: #fff"><script type="erm" id="erm0">!!SN:E(...)/1/MinN/MaxN; [v1 - объект-генератор&#93;</script></div>
<br />
<div class="codeblock">
<div class="title">Code:<br />
</div><div class="body" dir="ltr"><code>function CreateCrit10Obj (MinN, MaxN: integer; A: single): TErmArr; stdcall;</code></div></div>
Создаёт генератор с неравномерным распределением. Гарантируется переход состояния между последовательностями (если остался накопленный эффект несправедливой удачей/неудачей) и то, что максимальное отклонение от А <span style="font-weight: bold;">не превысит Max</span> (верхняя граница генерируемых значений). Практически для каждой генерации в <span style="font-weight: bold;">90%</span> случаев генерируется значение в нижней (для A &lt;= 50%) или верхней (для A &gt; 50%), части диапазона, что описывается как <span style="font-weight: bold;">«обычное»</span> значение. Обычное значение варьируется около заданного A. В <span style="font-weight: bold;">10%</span> случаев происходит <span style="font-weight: bold;">критическая</span> удача(провал) и генерируется значение из альтернативного диапазона.<br />
<br />
Аргумент A - дробное число (e) 0.0..1.0. Для равномерного распределения 0.5 (что бессмысленно, так как для равномерного есть генератор выше).<br />
<div style="background-color: #fff"><script type="erm" id="erm1">!!SN:E(...)/1/MinN/MaxN/A; [v1 - объект-генератор&#93;</script></div>
<br />
<div class="codeblock">
<div class="title">Code:<br />
</div><div class="body" dir="ltr"><code>procedure DestroyObj (hObj: TErmArr); stdcall;</code></div></div>
Удаляет генератор. Генераторы сохраняются в файлах сохранения, так что временные генераторы нужно удалять, а о постоянных не заботиться. Аргумент - объект-генератор.<br />
<div style="background-color: #fff"><script type="erm" id="erm2">!!SN:E(...)/1/Obj;</script></div>
<br />
<div class="codeblock">
<div class="title">Code:<br />
</div><div class="body" dir="ltr"><code>function GenerateBalance50Val (hObj: TErmArr; aMin, aMax: integer): integer; stdcall;</code></div></div>
Аргументы: генератор Баланс-50, минимальное и максимальное значения.<br />
Генерирует случайное число в указанном диапазоне. Гарантирует равномерное распределение.<br />
<div style="background-color: #fff"><script type="erm" id="erm3">!!SN:E(...)/1/Obj/МинЗнач/МаксЗнач; [v1 - результат&#93;</script></div>
<br />
<div class="codeblock">
<div class="title">Code:<br />
</div><div class="body" dir="ltr"><code>function GenerateBinary50Val (hObj: TErmArr; Chance: single): integer; stdcall;</code></div></div>
Аргументы: генератор Баланс-50, шанс успеха (вещественное число, e). Отрицательный шанс означает невозможность события вовсе. Шанс &gt; 100% не гарантирует успех события, если генератор находится в пессимистичном состоянии (ранее везло).<br />
Генерирует двоичное значение (1 или 0), где 1 - событие произошло, 0 - не произошло. <span style="font-weight: bold;">Гарантирует равномерное распределение</span> для NA кратным 100% и <span style="font-weight: bold;">переход состояния между последовательностями</span> в противном случае.<br />
<div style="background-color: #fff"><script type="erm" id="erm4">!!SN:E(...)/1/Obj/Вероятность; [v1 - результат&#93;</script></div>
<br />
<div class="codeblock">
<div class="title">Code:<br />
</div><div class="body" dir="ltr"><code>function GenerateCrit10Val (hObj: TErmArr; aMin, aMax: integer): integer; stdcall;</code></div></div>
Аргументы: генератор Крит-10, минимальное и максимальное значения.<br />
<div style="background-color: #fff"><script type="erm" id="erm5">!!SN:E(...)/1/Obj/МинЗнач/МаксЗнач; [v1 - результат&#93;</script></div>
<br />
<span style="font-weight: bold;">ВАЖНО!</span> Между генерациями диапазоны значений могут быть произвольными. Генераторы гарантируют математические ожидания (A) в %-х значениях, так что если 20..40 дало 20, а потом 40..80 дало 80, то для генератора всё отлично. Сперва выпало минимальное значение (0%), затем максимальное (100%). Баланс соблюдён (50%).]]></description>
			<content:encoded><![CDATA[&nbsp;&nbsp;&nbsp;Когда речь заходит о роли случая в игре, мнения аудитории обычно расходятся. Одни утверждают, что всё «хорошо весьма» и генератор случайных чисел (ГСЧ) нисколько не портит игру, другие с горечью рассказывают, как очередное выпадение морали защитникам замка предрешило исход часовой битвы.<br />
<br />&nbsp;&nbsp;&nbsp;А между тем, в чём-то правы и те, и другие. Первые правы в том, что ряд игровых моментов хорошо сбалансирован, то есть случай в них загнан в предсказуемые рамки. Но правы и другие, винящие козни ГСЧ в разбитой об стенку со злости клавиатуре. Например известно, что наши китайские коллеги любят очень сложные карты. В боях на таких картах без выпадения целой комбинации бонусов победить просто невозможно. И наоборот. Победа зависит от чётко выстроенного и исполняемого по шагам плана, который может нарушить любой двойной ход противника. Стоит ли говорить, что закон подлости в нужный момент проявляет себя на все 100%. Что мы имеем в итоге? Злость, досаду, потерю интереса.<br />
<br />&nbsp;&nbsp;&nbsp;Давайте разберёмся подробнее, где истина и лежит ли она посередине. Чтобы понять природу проблемы, нужно обратить внимание на то, что мы именуем «ГСЧ». На самом деле правильный термин для алгоритма генерации случайных чисел — генератор псевдослучайных чисел, так как каждое новое число полностью предопределяется состоянием генератора.<br />
<br />&nbsp;&nbsp;&nbsp;У программных ГСЧ есть немало проблем. Во-первых, все они рано или поздно начинают повторяться. То есть существует параметр длины последовательности, после которой генерация начинается с начала, повторяя один-в-один то, что уже было. Впрочем, скажете вы, для игр со множеством случайных факторов предсказание чисел и повтор последовательности являются вещами маловероятными. Соглашусь с вами.<br />
<br />&nbsp;&nbsp;&nbsp;Другой проблемой является качество генератора, а вернее качество последовательности чисел, которую он выдаёт. Предполагается, что последовательность будет иметь равномерное распределение. То есть на 1000 сгенерированных значений от 1..10 должно прийтись в среднем по 100 каждого. Положим, приблизительно так и будет. Значит генератор подходит для боевого применения? Не спешите.<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;Большинство игровых событий требует небольшой длины последовательности. Например, если дерево знаний даёт в 20% случаев повышение, то не стоит всерьёз надеяться, что игроку дадут возможность посетить 1000 деревьев. На карте будет расположено от силы 10 объектов данного типа. А значит к генератору предъявляются повышенные требования. И здесь мы сталкиваемся с проблемами. Оказывается, на небольших последовательностях значения могут скакать абсолютно произвольным образом. Например 4 дерева из 5-и окажутся удачливыми. Или наоборот, все 5 бесполезными. Представьте себе разочарование игрока, пробившегося с потерями в зону с тремя такими объектами и ушедшего ни с чем после значительной потери времени.<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;Но даже если генератор имеет схожее с равномерным распределение на небольших по размерам последовательностях, это отнюдь не гарантирует того математического ожидания, которое будет искать игрок. Дело в том, что один и тот же генератор с одним и тем же состоянием используется одновременно для всех игровых событий. Это значит, что если мы генерируем числа от 1..5 и нам жизненно важно получить 5 хотя бы за десять генераций, мы можем не получить требуемое значение вообще. Всё потому, что после каждой нашей генерации работают другие события, например расчёт урона для отрядов в бою, где указанная пятёрка, возможно, не раз выпадала, но когда ход вновь возвращается нашему событию, генератор снова отплёвывается повтором. Поэтому драколич с шансом блока в 20% в битвах нередко блокирует 4-5 ударов подряд! Автор не раз лично был свидетелем этого явления и смеялся в голос. Даже шутка такая родилась, об абсолютной защите драколичей.<br />
<br />&nbsp;&nbsp;&nbsp;Иными словами, для исправления указанного выше недостатка достаточно иметь собственный ГСЧ для каждого «пользователя» в игре. Однако гарантии математического ожидания на малых и средних последовательностях всё равно не будет.<br />
<br />&nbsp;&nbsp;&nbsp;Давайте теперь разберём такое понятие, как хаотичность событий, или меру хаоса, вносимого событием в планы игроков или ИИ. Для начала введём несколько обозначений:<br />
<br />
N - (number) - длина последовательности.<br />
D - (distance) - разбежка или расстояние между максимальным и минимальным значением.<br />
A - (average distribution) - математическое ожидание. Значение, к которому стремится среднее, рассчитанное по последовательности. Для равномерного распределения вычисляется как (Макс - Мин) / 2. Если измеряется в %, то это % от разбежки.<br />
<blockquote><cite>Quote:</cite>Мин...Мин + A * D...Макс</blockquote>
<br />
NA - произведение начальных A и N. Показывает ресурс, который идеальный генератор должен распределить по последовательности. Например, если имеется A = 20% и N = 10, то NA = 200%. Каждое новое генерируемое значение — это минимальное + некоторый бонус, который берётся из общего хранилища. NA * D показывает предполагаемую сумму всех бонусов для каждого значения.<br />
<br />
M - количество оставшихся членов последовательности (&lt;= N).<br />
<br />&nbsp;&nbsp;&nbsp;Под хаотичностью события мы будем подразумевать его минимальные и максимальные отклонения от математического ожидания. Так, для диапазона 50..80 математическое ожидание A = (80 + 50) / 2 = 65. Возможные отклонения: ±15. 15 — это 23% от среднего. Значит хаотичность: -23%..+23%.<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;Посмотрим, какую хаотичность предлагают разработчики игр для самого важного параметра в бою — урона. В Эадоре урон монстров задаётся одним числом (A), а конкретное значение при ударе рассчитывается как 0.75 * А .. 1,25 * А. Иначе говоря, хаотичность: ±25%. Запомним это значение. Оно вносит достаточно разнообразие в бой, позволяя случаться событием, вроде «успел добить жирного монстра» или «выжил с 1 жизнью», в то же время предоставляя игроку возможность оценки рисков и планирования.<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;Проверим наиболее популярные разбросы урона в Героях 3.<br />&nbsp;&nbsp;&nbsp;2-3, 4-6, 10-15 и т.д. Хаотичность: ±20%. Предсказуемость хорошая. Благословение не критично, проклятие не смертельно.<br />&nbsp;&nbsp;&nbsp;1-2, 2-4, 10-20, 20-40 и т.д.. Хаотичность: ±33%. Имеют значительную зависимость от ГСЧ. Благословения и проклятья играют существенную роль. Критические успехи и провалы приводят к изменению оперативных планов.<br />&nbsp;&nbsp;&nbsp;1-3, 3-8, 20-45. Хаотичность ±40%..50%. Практически выводит ситуацию из под контроля игрока. Урон скачет непредсказуемо. Невезенье или везенье всего в нескольких ходах может сыграть решающую роль в бою. Благословения и проклятья (артефакты для них) критичны.<br />&nbsp;&nbsp;&nbsp;1..100. Хаотичность: ±100%. Классический пример полного разгула Случая. Палатка лечит на 5, 17, 13? Ценный монстр погибает? Утешьтесь, в среднем могла вылечить 150 единиц здоровья! Чтобы добиться этого среднего понадобится весь бой. Но жизнь палатки скоротечна, а нужда в ней возникает локальная. Так что вариантов у вас не много. Наилучший — не надеяться на неё вообще.<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;Стоит отдельно рассмотреть довольно популярные двоичные генерации или генерации по принципу «всё сработало» и «всё не сработало». Они порой вносят гораздо больше хаоса в партию, чем расчёт урона. Например, 5% шанс блокировать магию противника. Хаотичность: -100%..+1900(!)%. Иначе говоря, ожидается срабатывание блока только в одном из двадцати случаев. Большей частью времени польза от эффекта нулевая (-100% от среднего). То есть бой идёт как будто способности нет. Но время от времени (в неподходящее) срабатывает блок, которого никто не ждал в виду некритичного шанса.<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;20% двоичное событие имеет хаотичность: -100%..+400%. Стоит ли говорить, что если требуется использовать накопленную ману в нужный момент для важного заклинания (ослепление последнего отряда, взрыв и т.д), предугадать наступление этого самого правильного момента нельзя. И наивен тот, кто думает, что в случае двойного запаса маны и стабильности плана с расчётом на одну неудачу, из двух подряд попыток колдовать хоть одна, да пройдёт. Может не пройти.<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;А ведь на самом деле игрока-тактика вполне устроило бы гарантированное или предсказуемое уменьшение эффекта заклинания, при котором само заклинание всё-таки действует. И защитнику не пришлось бы трястись, ожидая чудодейственного выпадения двадцатки, когда можно было бы весь бой игнорировать часть наносимого магического урона, справедливо осознавая, какие у соперника шансы убить ваш ценный отряд заклинанием.<br />
<br />&nbsp;&nbsp;&nbsp;Не менее печально известен и воговский блок в 50%, берущий своё начало из блока минотавров в Героях 4. Несмотря на значение 35%, минотавры умудрялись блокировать порой целые серии ударов, так что бой с ними был нервным и долгим, с нередкими перезагрузками. Чтобы уж наверняка не оставить тактике шанса, воговские командиры могут учить пятидесятипроцентный блок. Если задача командира выжить, то это самое сильное умение в игре. И 50% там только на словах. Визуально блок срабатывает гораздо чаще (причины указаны выше), так что в критические моменты Ваш командир может пережить и по три летальных удара. С другой стороны, если отряды противника тоже обладают подобной способностью, приготовьтесь к абсолютному цирку, учитывая, что блок может полностью нивелировать действия ваших заклинаний.<br />
<br />&nbsp;&nbsp;&nbsp;С учётом вышесказанного рекомендации следующие. Практически везде заменять двоичные генераторы на диапазонные (1), для каждого события использовать свой генератор, чтобы гарантировать чистоту последовательности (2) и использовать алгоритмы-надстройки над базовым ГСЧ для обеспечения выбранных характеристик последовательности (N, A, характер распределения) (3).<br />
<br />&nbsp;&nbsp;&nbsp;Библиотека BalancedGenerator.era выполняет все вышеуказанные функции. Она позволяет создавать объекты-генераторы с двумя вариантами распределения и предоставляет три функции для различных видов генераций. Все функции позволяют задавать диапазон длин последовательностей, чтобы уменьшить возможности игрока по предсказанию значений. Рассмотрим интерфейс библиотеки подробнее:<br />
<br />
<div class="codeblock">
<div class="title">Code:<br />
</div><div class="body" dir="ltr"><code>function CreateBalance50Obj (MinN, MaxN: integer): {O} TErmArr; stdcall;</code></div></div>
Функция создаёт генератор с <span style="font-weight: bold;">гарантированным</span> равномерным (A=50%) распределением. Аргументы: минимальная и максимальная длина последовательности, в рамках которой математическое ожидание будет равно 50%. Рекомендуется использовать значения в интервалах 7-14 для событий, имеющих среднюю и большую важность для игрока и 17-24 для длительных явлений с малой или средней значимостью.<br />
<br />
С точки зрения игрока если фактическое среднее значение становится меньше 50%, то повышается минимальная планка генерируемых значений. И наоборот, если слишком везёт и фактическое мат. ожидание &gt; 50%, то снижается верхняя планка генерируемых значений. Это позволяет даже интуитивно предполагать, что серия неудач завершится выравнивающими успехами. Иными словами, реальные значения зависят от того, что выпадало в предыдущих генерациях.<br />
<br />
Пример. Пусть диапазон урона: 50..100. N = 10, A = 50%, NA = 500%. M = 10.<br />
Выпадает 100. Теперь NA = 400%, M = 9, A = 400%/9 = 44.44%. Это значит что в оставшейся последовательности из девяти чисел среднее значение будет уже не Мин + 0.5 * Разбежка, а Мин + 0,44 * Разбежка. конкретно во второй генерации диапазон урона (реальный) будет 50..94.<br />
<div style="background-color: #fff"><script type="erm" id="erm0">!!SN:E(...)/1/MinN/MaxN; [v1 - объект-генератор]</script></div>
<br />
<div class="codeblock">
<div class="title">Code:<br />
</div><div class="body" dir="ltr"><code>function CreateCrit10Obj (MinN, MaxN: integer; A: single): TErmArr; stdcall;</code></div></div>
Создаёт генератор с неравномерным распределением. Гарантируется переход состояния между последовательностями (если остался накопленный эффект несправедливой удачей/неудачей) и то, что максимальное отклонение от А <span style="font-weight: bold;">не превысит Max</span> (верхняя граница генерируемых значений). Практически для каждой генерации в <span style="font-weight: bold;">90%</span> случаев генерируется значение в нижней (для A &lt;= 50%) или верхней (для A &gt; 50%), части диапазона, что описывается как <span style="font-weight: bold;">«обычное»</span> значение. Обычное значение варьируется около заданного A. В <span style="font-weight: bold;">10%</span> случаев происходит <span style="font-weight: bold;">критическая</span> удача(провал) и генерируется значение из альтернативного диапазона.<br />
<br />
Аргумент A - дробное число (e) 0.0..1.0. Для равномерного распределения 0.5 (что бессмысленно, так как для равномерного есть генератор выше).<br />
<div style="background-color: #fff"><script type="erm" id="erm1">!!SN:E(...)/1/MinN/MaxN/A; [v1 - объект-генератор]</script></div>
<br />
<div class="codeblock">
<div class="title">Code:<br />
</div><div class="body" dir="ltr"><code>procedure DestroyObj (hObj: TErmArr); stdcall;</code></div></div>
Удаляет генератор. Генераторы сохраняются в файлах сохранения, так что временные генераторы нужно удалять, а о постоянных не заботиться. Аргумент - объект-генератор.<br />
<div style="background-color: #fff"><script type="erm" id="erm2">!!SN:E(...)/1/Obj;</script></div>
<br />
<div class="codeblock">
<div class="title">Code:<br />
</div><div class="body" dir="ltr"><code>function GenerateBalance50Val (hObj: TErmArr; aMin, aMax: integer): integer; stdcall;</code></div></div>
Аргументы: генератор Баланс-50, минимальное и максимальное значения.<br />
Генерирует случайное число в указанном диапазоне. Гарантирует равномерное распределение.<br />
<div style="background-color: #fff"><script type="erm" id="erm3">!!SN:E(...)/1/Obj/МинЗнач/МаксЗнач; [v1 - результат]</script></div>
<br />
<div class="codeblock">
<div class="title">Code:<br />
</div><div class="body" dir="ltr"><code>function GenerateBinary50Val (hObj: TErmArr; Chance: single): integer; stdcall;</code></div></div>
Аргументы: генератор Баланс-50, шанс успеха (вещественное число, e). Отрицательный шанс означает невозможность события вовсе. Шанс &gt; 100% не гарантирует успех события, если генератор находится в пессимистичном состоянии (ранее везло).<br />
Генерирует двоичное значение (1 или 0), где 1 - событие произошло, 0 - не произошло. <span style="font-weight: bold;">Гарантирует равномерное распределение</span> для NA кратным 100% и <span style="font-weight: bold;">переход состояния между последовательностями</span> в противном случае.<br />
<div style="background-color: #fff"><script type="erm" id="erm4">!!SN:E(...)/1/Obj/Вероятность; [v1 - результат]</script></div>
<br />
<div class="codeblock">
<div class="title">Code:<br />
</div><div class="body" dir="ltr"><code>function GenerateCrit10Val (hObj: TErmArr; aMin, aMax: integer): integer; stdcall;</code></div></div>
Аргументы: генератор Крит-10, минимальное и максимальное значения.<br />
<div style="background-color: #fff"><script type="erm" id="erm5">!!SN:E(...)/1/Obj/МинЗнач/МаксЗнач; [v1 - результат]</script></div>
<br />
<span style="font-weight: bold;">ВАЖНО!</span> Между генерациями диапазоны значений могут быть произвольными. Генераторы гарантируют математические ожидания (A) в %-х значениях, так что если 20..40 дало 20, а потом 40..80 дало 80, то для генератора всё отлично. Сперва выпало минимальное значение (0%), затем максимальное (100%). Баланс соблюдён (50%).]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[ERM-консоль]]></title>
			<link>http://wforum.heroes35.net/showthread.php?tid=5668</link>
			<pubDate>Wed, 31 Oct 2012 15:59:31 +0000</pubDate>
			<guid isPermaLink="false">http://wforum.heroes35.net/showthread.php?tid=5668</guid>
			<description><![CDATA[<blockquote><cite>feanor Wrote:</cite>Плагин, добавляющий в чат несколько дополнительных команд и возможность исполнения ERM.<br />
<br />
<a href="https://yadi.sk/d/9uMZ72gpaWgbfA" target="_blank"> плагин + исходники</a><br />
<br />
<img src="http://savepic.su/2181753.png" border="0" alt="Image: 2181753.png" style='max-width: 800px; height: auto;' onclick='Bers.ScaleImg(this);'/><br />
<br />
Команды: <ul>
<li>/showfps - включает отображение FPS вместо строки чата</li>
<li>/leveldebugger - включает встроенный "отладчик карты". Единственная функция, которую я заметил - отображение координат в подсказке по почве.</li>
<li>/execerm &lt;command&gt; - исполнение ERM-команды. Команда приводится без предваряющих восклицательных знаков, но с точкой-с-запятой (т.е. /execerm IF:L^Hello!^; ). Поддерживаются !!HE-1 и v998/999/1000 (ограниченно)</li>
<li>/heroid - номер, имя и адрес структуры текущего героя.</li>
<li>!!&lt;command&gt; - аналогично execerm.</li>
<li>[здесь может быть ваше пожелание&#93;<br />
</li></ul>
<br />
<br />
<div class="notranslate"><div class="spoiler_header">код <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1&#93;.style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1&#93;.style.display='none';this.innerHTML='(Click to View)';}else {parentNode.parentNode.getElementsByTagName('div')[1&#93;.style.display='block';this.innerHTML='(Click to Hide)';}">(Click to View)</a></div><div class="spoiler_body" style="display: none; border: 1px dotted #0F5C8E;"><div class="codeblock">
<div class="title">Code:<br />
</div><div class="body" dir="ltr"><code>#include &lt;windows.h&gt;<br />
#include &lt;stdio.h&gt;<br />
#include "..&#92;..&#92;include&#92;era.h"<br />
#include "..&#92;..&#92;include&#92;heroes.h"<br />
#include "..&#92;..&#92;include&#92;patcher_x86_commented.hpp"<br />
<br />
void InitWoGSpecials()<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;if (*(int *)(*(int*)0x69CCFC + 4)!=-1)<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HERO* currhero = (HERO*)GetHeroRecord(*(int *)(*(int*)0x69CCFC + 4));<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*(int*)0x27F9970 = (int)currhero;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ErmV[998&#93; = currhero-&gt;x;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ErmV[999&#93; = currhero-&gt;y;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ErmV[1000&#93; = currhero-&gt;l;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ErmF[1000&#93;= !CALL_1(int, __thiscall, 0x4BAA60, *(int*)0x69CCFC);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}<br />
<br />
void PrintString(char* str)<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;char buf[1024&#93;;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sprintf(buf,"IF:L^{~green}%s{~}^;",str);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ExecErmCmd(buf);<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*sprintf(buf,"IF:L^%s^;",str);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EventParams[1&#93; = str*/<br />
}<br />
<br />
void __stdcall&nbsp;&nbsp;OnChat(PEvent e)<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;if(EventParams[0&#93; == 1) <br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EventParams[2&#93; = 1;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;char *buf=(char*)malloc(32+strlen((const char*)EventParams[1&#93;));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sprintf(buf,"IF:L^{~%s}%s{~}^;&#92;0","lime",EventParams[1&#93;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ExecErmCmd(buf);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;free(buf);<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;char str[256&#93;;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!stricmp((const char*)EventParams[1&#93;,"/showfps"))<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*(int*)((*(int*)0x6992B8)+0x3C) = !*(int*)((*(int*)0x6992B8)+0x3C);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PrintString("FPS switched off");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!stricmp((const char*)EventParams[1&#93;,"/leveldebugger"))<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*(int*)0x698A18 = !*(int*)0x698A18;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PrintString(*(int*)0x698A18?"Level debugger switched on":"Level debugger switched off");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!stricmp((const char*)EventParams[1&#93;,"/heroid"))<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int id = *(int *)(*(int*)0x69CCFC + 4);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (id!=-1)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sprintf(str,"%s: id %i, struct at 0x%08X",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;((HERO*)GetHeroRecord(id))-&gt;Name,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;id,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetHeroRecord(id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strcpy(str,"Hero not selected");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PrintString(str);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!strnicmp((const char*)EventParams[1&#93;,"/execerm",strlen("/execerm")))<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InitWoGSpecials();<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ExecErmCmd((char*)(strlen("/execerm")+1+EventParams[1&#93;));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PrintString("Executed");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!strnicmp((const char*)EventParams[1&#93;,"!!",strlen("!!")))<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InitWoGSpecials();<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ExecErmCmd((char*)(strlen("!!")+EventParams[1&#93;));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PrintString("Executed");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//ExecErmCmd(str);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//MessageBoxA(0,(LPCSTR)(EventParams[1&#93;),(LPCSTR)str,0);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}<br />
<br />
<br />
<br />
BOOL APIENTRY DllMain( HMODULE hModule,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DWORD&nbsp;&nbsp;ul_reason_for_call,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LPVOID lpReserved<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;if (ul_reason_for_call == DLL_PROCESS_ATTACH)<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ConnectEra();&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RegisterHandler(OnChat, "OnChat");<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;return TRUE;<br />
}</code></div></div>
</div></div></blockquote>
]]></description>
			<content:encoded><![CDATA[<blockquote><cite>feanor Wrote:</cite>Плагин, добавляющий в чат несколько дополнительных команд и возможность исполнения ERM.<br />
<br />
<a href="https://yadi.sk/d/9uMZ72gpaWgbfA" target="_blank"> плагин + исходники</a><br />
<br />
<img src="http://savepic.su/2181753.png" border="0" alt="Image: 2181753.png" style='max-width: 800px; height: auto;' onclick='Bers.ScaleImg(this);'/><br />
<br />
Команды: <ul>
<li>/showfps - включает отображение FPS вместо строки чата</li>
<li>/leveldebugger - включает встроенный "отладчик карты". Единственная функция, которую я заметил - отображение координат в подсказке по почве.</li>
<li>/execerm &lt;command&gt; - исполнение ERM-команды. Команда приводится без предваряющих восклицательных знаков, но с точкой-с-запятой (т.е. /execerm IF:L^Hello!^; ). Поддерживаются !!HE-1 и v998/999/1000 (ограниченно)</li>
<li>/heroid - номер, имя и адрес структуры текущего героя.</li>
<li>!!&lt;command&gt; - аналогично execerm.</li>
<li>[здесь может быть ваше пожелание]<br />
</li></ul>
<br />
<br />
<div class="notranslate"><div class="spoiler_header">код <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Click to View)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Click to Hide)';}">(Click to View)</a></div><div class="spoiler_body" style="display: none; border: 1px dotted #0F5C8E;"><div class="codeblock">
<div class="title">Code:<br />
</div><div class="body" dir="ltr"><code>#include &lt;windows.h&gt;<br />
#include &lt;stdio.h&gt;<br />
#include "..&#92;..&#92;include&#92;era.h"<br />
#include "..&#92;..&#92;include&#92;heroes.h"<br />
#include "..&#92;..&#92;include&#92;patcher_x86_commented.hpp"<br />
<br />
void InitWoGSpecials()<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;if (*(int *)(*(int*)0x69CCFC + 4)!=-1)<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HERO* currhero = (HERO*)GetHeroRecord(*(int *)(*(int*)0x69CCFC + 4));<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*(int*)0x27F9970 = (int)currhero;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ErmV[998] = currhero-&gt;x;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ErmV[999] = currhero-&gt;y;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ErmV[1000] = currhero-&gt;l;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ErmF[1000]= !CALL_1(int, __thiscall, 0x4BAA60, *(int*)0x69CCFC);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}<br />
<br />
void PrintString(char* str)<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;char buf[1024];<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sprintf(buf,"IF:L^{~green}%s{~}^;",str);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ExecErmCmd(buf);<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*sprintf(buf,"IF:L^%s^;",str);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EventParams[1] = str*/<br />
}<br />
<br />
void __stdcall&nbsp;&nbsp;OnChat(PEvent e)<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;if(EventParams[0] == 1) <br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EventParams[2] = 1;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;char *buf=(char*)malloc(32+strlen((const char*)EventParams[1]));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sprintf(buf,"IF:L^{~%s}%s{~}^;&#92;0","lime",EventParams[1]);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ExecErmCmd(buf);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;free(buf);<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;char str[256];<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!stricmp((const char*)EventParams[1],"/showfps"))<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*(int*)((*(int*)0x6992B8)+0x3C) = !*(int*)((*(int*)0x6992B8)+0x3C);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PrintString("FPS switched off");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!stricmp((const char*)EventParams[1],"/leveldebugger"))<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*(int*)0x698A18 = !*(int*)0x698A18;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PrintString(*(int*)0x698A18?"Level debugger switched on":"Level debugger switched off");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!stricmp((const char*)EventParams[1],"/heroid"))<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int id = *(int *)(*(int*)0x69CCFC + 4);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (id!=-1)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sprintf(str,"%s: id %i, struct at 0x%08X",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;((HERO*)GetHeroRecord(id))-&gt;Name,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;id,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetHeroRecord(id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strcpy(str,"Hero not selected");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PrintString(str);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!strnicmp((const char*)EventParams[1],"/execerm",strlen("/execerm")))<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InitWoGSpecials();<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ExecErmCmd((char*)(strlen("/execerm")+1+EventParams[1]));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PrintString("Executed");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!strnicmp((const char*)EventParams[1],"!!",strlen("!!")))<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InitWoGSpecials();<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ExecErmCmd((char*)(strlen("!!")+EventParams[1]));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PrintString("Executed");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//ExecErmCmd(str);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//MessageBoxA(0,(LPCSTR)(EventParams[1]),(LPCSTR)str,0);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}<br />
<br />
<br />
<br />
BOOL APIENTRY DllMain( HMODULE hModule,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DWORD&nbsp;&nbsp;ul_reason_for_call,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LPVOID lpReserved<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;if (ul_reason_for_call == DLL_PROCESS_ATTACH)<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ConnectEra();&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RegisterHandler(OnChat, "OnChat");<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;return TRUE;<br />
}</code></div></div>
</div></div></blockquote>
]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[FAQ по моддингу]]></title>
			<link>http://wforum.heroes35.net/showthread.php?tid=3727</link>
			<pubDate>Mon, 05 Mar 2012 13:01:43 +0000</pubDate>
			<guid isPermaLink="false">http://wforum.heroes35.net/showthread.php?tid=3727</guid>
			<description><![CDATA[Герои - это конструктор<br />
<br />
<span style="font-weight: bold;">Ресурсы игры</span> хранятся в папке DATA, файлы h3sprite.lod и h3bitmap.lod<br />
Для распаковки этих лодов использую <a href="http://sites.google.com/site/sergroj/mm/MMArchive.rar?attredirects=0&amp;d=1" target="_blank">MMArchive </a>, которая великолепно подходит для работы с любым типом геройских архивов.<br />
<br />
Просмотр спрайтов игры я выполняю с помощью программы <a href="http://www.grayface.nm.ru/DefPreview.rar" target="_blank">DefPreview</a>.<br />
<br />
Большую часть картинок - замен существующих можно в лод не запаковывать, а просто кидать в DATA. Но файл должен быть в формате РСХ (256 цветов). NB! картинка загрузки игры, Zpic106.bmp (дракон в ВоГе) должна быть полноцветной.<br />
<br />
<span style="font-weight: bold;">Скрипты</span>, основа функционала WoG, хранятся в папке DATA\S\<br />
Имя файла скрипта должно быть scriptXX.erm, где XX может принимать значения от 00 до 99.<br />
<br />
<br />
Описание ресурсов:<br />
<br />
<span style="text-decoration: underline;"><span style="font-weight: bold;">H3sprite</span></span><br />
<span style="font-weight: bold;">Окно героя</span><br />
UN32.def - маленькие иконки специализаций героев<br />
UN44.def - большие иконки специализаций героев<br />
<br />
<span style="font-weight: bold;">Окно города</span><br />
TB%город%%здание%.DEF - здания в городе<br />
<br />
<div class="notranslate"><div class="spoiler_header">Объекты на карте <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1&#93;.style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1&#93;.style.display='none';this.innerHTML='(Click to View)';}else {parentNode.parentNode.getElementsByTagName('div')[1&#93;.style.display='block';this.innerHTML='(Click to Hide)';}">(Click to View)</a></div><div class="spoiler_body" style="display: none; border: 1px dotted #0F5C8E;">
AVC????? изображения городов на карте<br />
AVW%имямонстра%.DEF  - изображения монстров на карте<br />
advdig, advinfo, advpuz, advturn, advview - Кнопки опций<br />
iam000 - iam011 - Кнопки менеджера<br />
Форт на холме - Avxhild0.def, Avxhilg0.def <br />
Картограф - Avxmaps0.def, Avxmapu0.def, Avxmapw0.def <br />
Телепорт (багнутый?) - Avxmn8b0.def <br />
Обелиски - Avxoblb.def, ..., Avxobly.def <br />
Палатка ключников и стражи ключников - Avxbor10.def, ..., Avxbor80.def, Avxkey00.def, ..., Avxkey70.def <br />
Квесты - Zseer001.def, Zseer002.def, Avxseeb0.def, Avxseer0.def, Avxseey0.def <br />
Нычка вампов - Avgvamp0.def <br />
Нычка всех элементалей - Avgelem0.def <br />
Дабл-нычка воздушных (широкая) - Avgair0.def <br />
Дабл-нычка землянок (широкая) - Avgerth0.def <br />
Дабл-нычка огненных (широкая) - Avgfire0.def <br />
Дабл-нычка водных (широкая) - Avgwatr0.def <br />
Святилище - Avxsanc0.def</div></div>
<div class="notranslate"><div class="spoiler_header">Войска Замка <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1&#93;.style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1&#93;.style.display='none';this.innerHTML='(Click to View)';}else {parentNode.parentNode.getElementsByTagName('div')[1&#93;.style.display='block';this.innerHTML='(Click to Hide)';}">(Click to View)</a></div><div class="spoiler_body" style="display: none; border: 1px dotted #0F5C8E;">
chalbd.def - Halabardnik | Halabardier / Halberdier<br />
CLCBOW.def - Łucznik | Strzelec / Archer | Light Crossboman<br />
CHCBOW.def - Kusznik / Marksman | Heavy Crossbowman<br />
CGRIFF.def - Gryf / Griffin<br />
cCavlr.def - Cavalier<br />
cChamp.def - Champion<br />
cAngel.def - Angel</div></div>
<div class="notranslate"><div class="spoiler_header">Войска Оплота <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1&#93;.style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1&#93;.style.display='none';this.innerHTML='(Click to View)';}else {parentNode.parentNode.getElementsByTagName('div')[1&#93;.style.display='block';this.innerHTML='(Click to Hide)';}">(Click to View)</a></div><div class="spoiler_body" style="display: none; border: 1px dotted #0F5C8E;">
cCentr.def - Centaur<br />
cBDwar.def - Krasnolud Wojownik / Battle Dwarf<br />
cGrElf.def - Grand Elf<br />
cAPegs.def - Silver Pegasus<br />
cTree.def - Drzewiec / Dendroid Soldier | Treefolk<br />
cBTree.def - Ent / Dendroid Guard | Briar Treefolk<br />
CUNICO.def - Jednorożec / Unicorn</div></div>
<div class="notranslate"><div class="spoiler_header">Монстры <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1&#93;.style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1&#93;.style.display='none';this.innerHTML='(Click to View)';}else {parentNode.parentNode.getElementsByTagName('div')[1&#93;.style.display='block';this.innerHTML='(Click to Hide)';}">(Click to View)</a></div><div class="spoiler_body" style="display: none; border: 1px dotted #0F5C8E;">
CAMAGE.def - Arcymag / Archmage<br />
<br />
CCERBU.def - Cerber / Cerberus<br />
CADEVL.def - Arcydiabeł / Arch Devil<br />
<br />
cbehol.def - Złe Oko | Obserwator / Beholder<br />
CCMCOR.def - Chimera | Skorpikora / Scorpicore<br />
CBDRGN.def - Czarny Smok / Black Dragon<br />
<br />
CBKNIG.def - Czarny Rycerz / Black Knight<br />
CBLORD.def - Upiorny Rycerz | Władca Mroku / Dread Knight | Black Lord<br />
<br />
CBWLFR.def - Wilczy Jeździec / Wolf Rider | Goblin Wolf Rider<br />
CABEHE.def - Starożytny Behemot / Ancient Behemoth<br />
<br />
cALiza.def - Reptilion / Lizard Warrior | Advanced Lizardman<br />
cBasil.def - Bazyliszek / Basilisk<br />
Ccgorg.def - Gorgona / Gorgon | Copper Gorgon<br />
Cbgog.def - Demigorgona | Potężna Gorgona / Mighty Gorgon | Bronze Gorgon<br />
cCHydr.def - Hydra Chaosu / Chaos Hydra<br />
<br />
CAELEM.def - Żywiołak Powietrza / Air Elemental<br />
<br />
Cboar.def - Knurzy Jeździec | Dzik / Boar<br />
Ccdrgn.def - Kryształowy Smok / Crystal Dragon<br />
CaDrgn.def - Błękitny Smok / Azure Dragon<br />
Ccrusd.def - Krzyżowiec / Crusader<br />
CcyclLor.def - Cyklop Krуlewski / Cyclops King | Cyclops Lord<br />
CCYCLR.def - Cyklop / Cyclops<br />
CDDRAG.def - Złoty Smok / Gold Dragon<br />
CDEVIL.def - Diabeł / Devil<br />
CDGOLE.def - Diamentowy Golem / Diamond Golem<br />
CDRFIR.def - Smocza Ważka | Smoczy Oślizg / Dragon Fly | Fire Dragon Fly<br />
CDRFLY.def - Ważka | Oślizg / Serpent Fly | Dragon Fly<br />
CDWARF.def - Krasnolud / Dwarf<br />
CECENT.def - Centaur Kapitan | Bojowy Centaur / Centaur Captain | Elite Centaur<br />
CEELEM.def - Żywiołak Ziemi / Earth Elemental<br />
cefree.def - Ifryt | Ifrit / Efreet<br />
cefres.def - Sułtański Ifryt | Sułtański Ifrit | Miryd / Efreet Sultan<br />
CELF.def - Leśny Elf / Wood Elf<br />
Ceveye.def - Beholder / Evil Eye<br />
CGDRAG.def - Zielony Smok / Green Dragon<br />
CGARGO.def - Kamienny Gargulec / Stone Gargoyle<br />
CGENIE.def - Dżinn | Geniusz / Genie<br />
CGREMA.def - Gremlin | Chochlik / Apprentice Gremlin<br />
CGREMM.def - Wyższy Gremlin | Gremlin / Master Gremlin<br />
CGTITA.def - Tytan / Titan | Greater Titan<br />
CGOBLI.def - Goblin<br />
CGOG.def - Gog<br />
CFAMIL.def - Chowaniec / Familiar<br />
CFELEM.def - Żywiołak ognia / Fire Elemental<br />
Cfbird.DEF - Ognisty Ptak / Firebird<br />
Cfdrgn.def - Czarodziejski Smok / Faerie Dragon<br />
Cench.def - Czarodziej / Enchanter<br />
CGGOLE.def - Złoty Golem / Gold Golem<br />
CGNOLL.def - Gnoll | Bobołak<br />
CGNOLM.def - Gnoll Maruder | Zwierzołak / Gnoll Marauder<br />
CGBASI.def - Bazyliszek Krуlewski | Wyższy Bazyliszek / Greater Basilisk<br />
CHalf.def - Niziołek / Halfling<br />
CHARPH.def - Harpia Wiedźma / Harpy Hag<br />
CHARPY.def - Harpia / Harpy<br />
CHDRGN.def - Duchowy Smok | Upiorny Smok / Ghost Dragon<br />
CHGOBL.def - Hobgoblin<br />
CHHOUN.def - Piekielny Ogar / Hell Hound<br />
CHYDRA.def - Hydra<br />
Cicee.def - Żywiołak Lodu / Ice Elemental<br />
CIGOLE.def - Żelazny Golem / Iron Golem<br />
CIMP.def - Chochlik | Diablik / Imp<br />
Citrog.def - Piekielny Troglodyta / Infernal Troglodyte<br />
CLICH.def - Lisz | Licz / Lich<br />
CLTITA.def - Gigant / Giant | Lesser Titan<br />
CMAGE.def - Mag / Mage<br />
Cmagel.def - Żywiołak Magii / Magic Elemental<br />
CMAGOG.def - Magog<br />
CMCORE.def - Mantikora | Mantykora / Manticore<br />
Cmeduq.def - Meduza Krуlewska / Medusa Queen<br />
Cmedus.def - Meduza / Medusa<br />
Cminok.def - Minotaur Krуlewski / Minotaur King<br />
CMINOT.def - Minotaur<br />
Cmonkk.def - Mnich / Monk<br />
Cmummy.def - Mumia / Mummy<br />
CNAGA.def - Naga | Przeraza / Naga Sentinel<br />
CNAGAG.def - Krуlewska Naga | Skorpena / Naga Queen | Naga Guardian<br />
CNDRGN.def - Kościany Smok / Bone Dragon<br />
Cnomad.def - Nomad<br />
CNOSFE.def - Wampirzy Lord | Alp / Vampire Lord | Nosferatu<br />
Cnrg.def - Żywiołak Energii / Energy Elemental<br />
COGARG.def - Obsydianowy Gargulec | Marmurowy Gargulec / Obsidian Gargoyle<br />
COGMAG.def - Ogr Szaman | Szaman / Ogre Mage<br />
COGRE.def - Ogr / Ogre<br />
COHDEM.def - Demon / Lesser Demon | Single-Horned Demon<br />
CORC.def - Ork / Orc<br />
CORCCH.def - Uruk / Orc Chiefan<br />
Cpeas.def - Chłop / Peasant<br />
CPEGAS.def - Pegaz / Pegasus<br />
CPFIEN.def - Czart / Pit Fiend<br />
CPFOE.def - Czarci Lord / Pit Lord | Pit Foe<br />
CPHX.def - Feniks / Phoenix<br />
Cpixie.def - Nimfa | Driada / Pixie<br />
CPKMAN.def - Pikinier / Pikeman<br />
CPLICH.def - Arcylisz | Arcylicz | Potężny Lisz / Power Lich<br />
CPLIZA.def - Jaszczuroczłek | Jaszczurolud / Lizardman | Primitive Lizardman<br />
Cpsyel.def - Żywiołak Psychiki | Żywiołak Umysłu | Żywiołak Myśli / Psychic Elemental | Psi Elemental<br />
CRANGL.def - Archanioł / Archangel<br />
CRDRGN.def - Czerwony Smok / Red Dragon<br />
Crgrif.def - Gryf Krуlewski / Royal Griffin<br />
CROC.def - Rok / Roc<br />
Crogue.def - Rozbуjnik / Rogue<br />
CRsDgn.def - Rdzawy Smok / Rust Dragon<br />
CSGOLE.def - Kamienny Golem / Stone Golem<br />
Csharp.def - Strzelec / Sharpshooter<br />
CSKELE.def - Szkielet / Skeleton<br />
CSprite.def - Rusałka | Sylfida / Sprite<br />
Cstone.def - Żywiołak Magmy / Magma Elemental | Stone Elemental<br />
Cstorm.def - Żywiołak Burzy / Storm Elemental<br />
CSULTA.def - Potężny Dżinn | Dżin / Master Genie | Caliph<br />
Csword.def - Zbrojny | Miecznik / Swordsman<br />
CTBIRD.def - Ptak Gromu / Thunderbird<br />
CTHDEM.def - Rogaty Demon / Horned Demon | Greater Demon | Dual-Horned Demon<br />
Ctrogl.def - Troglodyta / Troglodyte<br />
Ctroll.def - Troll<br />
CUWLFR.def - Wilczy Rycerz / Wolf Raider | Hobgoblin Wolf Rider<br />
CVAMP.def - Wampir / Vampire<br />
CWELEM.def - Żywiołak Wody / Water Elemental<br />
CWIGHT.def - Zjawa / Wight<br />
CWRAIT.def - Upiуr | Zmora / Wraith<br />
CWSKEL.def - Kościej / Skeleton Warrior<br />
CWUNIC.def - Jednorożec Bitewny / War Unicorn<br />
CWYVER.def - Wiwerna / Wyvern<br />
CWYVMN.def - Krуlewska Wiwerna / Wyvern Monarch<br />
CYBEHE.def - Behemot / Behemoth | Young Behemoth<br />
Czealt.def - Kapłan / Zealot<br />
CZOMBI.def - Ożywieniec / Walking Dead | Zombie<br />
CZOMLO.def - Zombi / Zombie | Zombie Lord<br />
<br />
ZM150Z.DEF - Serafin | Najwyższy Archanioł / Supreme Archangel<br />
ZM151Z.DEF - Diamentowy Smok / Diamond Dragon<br />
ZM152Z.DEF - Gromowładny | Władca Piorunуw / Lord of Thunder<br />
ZM153Z.DEF - Piekielny Baron | Antychryst / Hell Baron | Antichrist<br />
ZM154Z.DEF - Krwawy Smok / Blood Dragon<br />
ZM155Z.DEF - Smok Cienia / Darkness Dragon<br />
ZM156Z.DEF - Widmowy Behemot / Ghost Behemoth<br />
ZM157Z.DEF - Piekielna Hydra / Hell Hydra<br />
ZM158Z.DEF - Święty Feniks / Sacred Phoenix<br />
ZM159G.DEF - Duch / Ghost<br />
ZM160G.DEF - Emisariusz Wojny / Emissary of War<br />
ZM161G.DEF - Emisariusz Pokoju / Emissary of Peace<br />
ZM162G.DEF - Emisariusz Mocy / Emissary of Mana<br />
ZM163G.DEF - Emisariusz Wiedzy / Emissary of Lore<br />
ZM164GD.DEF - Posłaniec Ognia | Wysłannik Ognia / Fire Messenger<br />
ZM165GD.DEF - Metamorf | Posłaniec Ziemi | Wysłannik Ziemi / Earth Messenger<br />
ZM166GD.DEF - Posłaniec Wody | Wysłannik Wody / Water Messenger<br />
ZM167GD.DEF - Posłaniec Powietrza | Wysłannik Powietrza / Air Messenger<br />
ZM168DG.DEF - Gorynicz | Gorynycz / Gorynych<br />
ZM169ZL.DEF - Kapłan Wojny / War Zealot<br />
ZM170SW.DEF - Arktyczny Strzelec / Arctic Sharpshooter<br />
ZM171SR.DEF - Wulkaniczy Strzelec / Lava Sharpshooter<br />
ZM172N.DEF - Koszmar | Zmora | Nocna Mara / Nightmare<br />
ZM173M.DEF - Gremlinołaj / Santa Gremlin<br />
ZM174NPC.DEF - Paladyn | Palladyn / Paladin<br />
ZM175NPC.DEF - Pustelnik / Hierophant<br />
ZM176NPC.DEF - Westalka | Strażniczka Świątyni / Temple Guardian<br />
ZM177NPC.DEF - Sukkub / Succubus<br />
ZM178NPC.DEF - Pożeracz Dusz / Soul Eater<br />
ZM179NPC.DEF - Oprawca | Brutus / Brute<br />
ZM180NPC.DEF - Przywуdca Ogrуw / Ogre Leader<br />
ZM181NPC.DEF - Szaman / Shaman<br />
ZM182NPC.DEF - Żywiołak Kosmosu | Duch Astralny / Astral Spirit<br />
ZM192Z.DEF - Sylvan Centaur<br />
ZM193Z.DEF - Czarodziejka / Sorceress<br />
ZM194Z.DEF - Wilkołak / Werewolf<br />
ZM195Z.DEF - Hell Steed<br />
ZM196Z.DEF - Dracolich<br />
<br />
Машины:<br />
smbal.def - Balista / Ballista<br />
SMCart.def - Wуz z Amunicją / Ammo Cart<br />
SMCata.def - Katapulta / Catapult<br />
SMtent.def - Namiot Medyka / First Aid Tent | First-Aid Tent<br />
<br />
Выстрелы:<br />
CPRGOGX.def - Ognista Kule Magoga i Strzała Wulkanicznego Strzelca<br />
cprgre.def - Kula Gremlina/Wyższego Gremlina<br />
CPRGTIX.def - Piorun Tytana i Gromowładnego<br />
CPRZEAX.def - Magia Mnicha i Kapłana<br />
PCYCLBX.def - Skała Cyklopa i Cyklopa Krуlewskiego<br />
PELFX.def - Strzała Elfa i Srebrnego Elfa/Wyższego Elfa<br />
Phalf.def - Kamień Niziołka<br />
Picee.def - Sopel Lodu Żywiołaka Lodu<br />
PLCBOWX.def - Bełt Strzelca/Łucznika i Kusznika<br />
PLICH.def - Magia Lisza/Licza i Arcylisza/Arcylicza<br />
PMAGEX.def - Magia Maga i Strzała Arktycznego Strzelca<br />
PMEDUSX.def - Strzała Meduzy i Meduzy Krуlewskiej<br />
porchx.def - Topуr Orka i Uruka<br />
PPLIZAX.def - Strzała Jaszczuroluda i Reptiliona<br />
<br />
SMBALX.def - Balisty<br />
SMCatx.def - Katapulty</div></div>
<div class="notranslate"><div class="spoiler_header">Главное меню <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1&#93;.style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1&#93;.style.display='none';this.innerHTML='(Click to View)';}else {parentNode.parentNode.getElementsByTagName('div')[1&#93;.style.display='block';this.innerHTML='(Click to Hide)';}">(Click to View)</a></div><div class="spoiler_body" style="display: none; border: 1px dotted #0F5C8E;">
инфа от <span style="font-weight: bold;">geNNadiy</span>: для \\\"скинизации\\\" нужно редактировать:<br />
<br />&nbsp;&nbsp;&nbsp;ZmenuCR.def - кнопка "Создатели"<br />&nbsp;&nbsp;&nbsp;ZmenuHS.def - кнопка "Результаты"<br />&nbsp;&nbsp;&nbsp;ZmenuLG.def - кнопка "Загрузить Игру"<br />&nbsp;&nbsp;&nbsp;ZmenuNG.def - кнопка "Новая Игра"<br />&nbsp;&nbsp;&nbsp;ZmenuQT.def - кнопка "Выход (из игры в Windows)"<br />&nbsp;&nbsp;&nbsp;ZSSarm.def - кнопка "Клинок Армагеддона"<br />&nbsp;&nbsp;&nbsp;ZSScus.def - кнопка "Другая Кампания"<br />&nbsp;&nbsp;&nbsp;ZSSexit.def - кнопка "Назад (выход из меню выбора кампаний)"<br />&nbsp;&nbsp;&nbsp;ZSSroe.def - кнопка "Возрождение Эрафии"<br />&nbsp;&nbsp;&nbsp;ZSSsod.def - кнопка "Дыхание Смерти"<br />&nbsp;&nbsp;&nbsp;ZTback.def - кнопка "Назад (при выборе типа игры)"<br />&nbsp;&nbsp;&nbsp;ZTcampn.def - кнопка "Кампании"<br />&nbsp;&nbsp;&nbsp;ZTmulti.def - кнопка "Мультиплейер"<br />&nbsp;&nbsp;&nbsp;ZTsingl.def - кнопка "Одиночная Игра"<br />&nbsp;&nbsp;&nbsp;ZTtutor.def - кнопка "Обучение"<br />
ещё возможно при изменении загрузочного экрана захочется изменить и \\\"синие квадратики\\\" что снизу ползут во время самой загрузки - вот и они - LOADPROG.DEF (H3sprite.lod)</div></div>
<div class="notranslate"><div class="spoiler_header">Содержимое H3bitmap.lod <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1&#93;.style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1&#93;.style.display='none';this.innerHTML='(Click to View)';}else {parentNode.parentNode.getElementsByTagName('div')[1&#93;.style.display='block';this.innerHTML='(Click to Hide)';}">(Click to View)</a></div><div class="spoiler_body" style="display: none; border: 1px dotted #0F5C8E;">
AISHIELD.PCX - щит вместо миникарты во время хода противника/<br />
muMAP.bmp (мини фон в окне мультиплеерной игры)<br />
ZloadGAM.bmp (надпись \\\"загрузка игры\\\")<br />
ZmainMEN.bmp (боковая панелька без кнопок для вида \\\"об авторах\\\")<br />
ZnewGAM.bmp (надпись \\\"новая игра\\\")<br />
Zpic1000.bmp (рисунок в окне выбора параметров игры)<br />
Zpic1001.bmp (альтернативный рисунок в окне выбора параметров игры)<br />
Zpic1005.bmp (основной фон)<br />
Zpic106.bmp (фон \\\"загрузки\\\")<br />
ACredit.smk анимация буквы T из Надписи In The wake of Gods при старте игры</div></div>
<br />
<div class="notranslate"><div class="spoiler_header">Описание текстовиков <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1&#93;.style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1&#93;.style.display='none';this.innerHTML='(Click to View)';}else {parentNode.parentNode.getElementsByTagName('div')[1&#93;.style.display='block';this.innerHTML='(Click to Hide)';}">(Click to View)</a></div><div class="spoiler_body" style="display: none; border: 1px dotted #0F5C8E;">
<a href="http://lopasnya.by.ru/HMM/ARRAYTXT.TXT" target="_blank">ARRAYTXT.TXT</a> - Всякое. В частности, здесь можно поправить показ кол-ва монстров (Чтобы вместо \\\"Мало\\\" было \\\"1-4\\\")<br />
<br />
ARTEVENT.TXT - Сообщения при поднятии артефакта.<br />
ARTRAITS.TXT - Свойства артефактов.<br />
BLDGNEUT.TXT - Описания некоторых зданий (гильдия магов, магистрат и т.д..).<br />
BLDGSPEC.TXT - Описания других зданий.<br />
BUILDING.TXT - Стоимость постройки зданий.<br />
BALLIST.TXT - шансы попадания баллистой при осаде, нанесенный урон и кол-во раз стрельбы.<br />
CRBANKS.TXT - банки существ<br />
CRANIM.TXT - Анимация существ.<br />
CREDITS.TXT - Авторы.<br />
CRGEN1.TXT - Названия жилищ (на карте).<br />
CRGEN4.TXT - Дополнительные названия жилищ.<br />
CRTRAITS.TXT - свойства монстров для СОД. Текстовик загружается раньше, чем ZCRTRAIT.TXT. Если ВОГ НЕ в рабочем состоянии (например, отсутствует zvslib1.dll) - часть exe от СОДа грузит именно CRTRAITS.TXT.<br />
CRTRAIT0.TXT - чисто для редактора карт.<br />
DWELLING.TXT - Названия жилищ (Во всех городах).<br />
GENRLTXT.TXT - Прочие текстовые сообщения.<br />
HCTRAITS.TXT - Наименования классов героев.<br />
HEROBIOS.TXT - Биографии героев.<br />
HEROSPEC.TXT - Специализации героев (только названия и описания).<br />
HOTRAITS.TXT - Стартовые армии героев.<br />
MINEEVNT.TXT - Сообщения при захвате шахт.<br />
MINENAME.TXT - Названия шахт.<br />
RANDSIGN.TXT - Надписи на знаках.<br />
RANDTVRN.TXT - Слухи в тавернах.<br />
RESTYPES.TXT - Названия типов ресурсов.<br />
SPTRAITS.TXT - Описание заклинаний.<br />
SSTRAITS.TXT - Описание навыков.<br />
TOWNNAME.TXT - Названия городов.<br />&nbsp;&nbsp;&nbsp;TOWNTYPE.TXT - Типы городов.<br />
<br />&nbsp;&nbsp;&nbsp;<a href="http://lopasnya.by.ru/HMM/zaobjts.txt" target="_blank">zaobjts.txt</a> - характеристики объектов на карте. Влияет, в частности, на генерацию объектов на рандоме. По ссылке - ТЕшный, часть объектов отключена, часть - появляется чаще, например, крипты появляются на варварских пустошах.<br />&nbsp;&nbsp;&nbsp;ZCREXP.TXT - Опыт отрядов.<br />&nbsp;&nbsp;&nbsp;ZCRGN1.TXT - Названия ВоГовских жилищ на карте.<br />&nbsp;&nbsp;&nbsp;ZCRTRAIT.TXT - Характеристики монстров (Включая ВоГовские).<br />&nbsp;&nbsp;&nbsp;ZMESS00.TXT - Все новые ВоГовские сообщения.<br />&nbsp;&nbsp;&nbsp;ZNPC00.TXT - Описания командиров.<br />&nbsp;&nbsp;&nbsp;ZNPC01.TXT - Имена и биографии командиров.<br />&nbsp;&nbsp;&nbsp;ZREDITS.TXT - Авторы (ВоГ).</div></div>
Ресурсы, которые не требуют запаковки в лод, и которые нормально работают из папки DATA<br />
<span style="font-weight: bold;">Портреты</span>. Формат PCX<br />
<a href="http://forum.df2.ru/index.php?showtopic=5885" target="_blank">Тема "Портреты героев"</a><br />
<a href="http://wforum.heroes35.net/showthread.php?tid=754" target="_blank">Моя подборка, почти без флуда <img src="http://wforum.heroes35.net/images/smilies/sm.gif" style="vertical-align: middle;" border="0" alt="Sm" title="Sm" /></a><br />
<span style="font-weight: bold;">Звуки боя</span>. Звук в формате .wav, требует смены расширения на .82m. <br />
<span style="font-weight: bold;">Звуки на карте</span>. (LOOP[...&#93;.wav)<br />
<span style="font-weight: bold;">Городские здания</span>. Формат .pcx.<br />
<span style="font-weight: bold;">Поля боя</span>. Формат .pcx.<br />
<a href="http://forum.df2.ru/index.php?showtopic=843" target="_blank">Тема "Battlefields"</a><br />
<br />
<span style="font-weight: bold;">Список названий портретов героев.</span><br />
<div><div class="spoiler_header">Spoiler <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1&#93;.style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1&#93;.style.display='none';this.innerHTML='(Click to View)';}else {parentNode.parentNode.getElementsByTagName('div')[1&#93;.style.display='block';this.innerHTML='(Click to Hide)';}">(Click to View)</a></div><div class="spoiler_body" style="display: none; border: 1px dotted #0F5C8E;"><span style="text-decoration: underline;"><br />
<span style="font-weight: bold;">Название каждого большого портрета начинается с <span style="color: red;">HP</span><span style="color: blue;">L</span></span><br />
<span style="font-weight: bold;">Название каждого малого портрета начинается с <span style="color: red;">HP</span><span style="color: green;">S</span></span><br />
Список героев:</span><br />
<span style="font-weight: bold;">Рыцари</span><br />
000	Оррин<br />
001	Валеска<br />
002	Эдрик<br />
003	Сильвия<br />
004	Лорд Хаарт<br />
005	Сорша<br />
006	Кристиан<br />
007	Турис<br />
Усл. обозначение класса - KN<br />
<span style="font-weight: bold;">Священники</span><br />
008	Рион<br />
009	Адель<br />
010	Катберт<br />
011	Аделаида<br />
012	Инхам<br />
013	Саня<br />
014	Лоинс<br />
015	Каитлин<br />
Усл. обозначение класса - CL<br />
<span style="font-weight: bold;">Рэйнджеры</span><br />
016	Мепхала<br />
017	Уфретин<br />
018	Енова<br />
019	Роланд<br />
020	Торгрим<br />
021	Ивор<br />
022	Кланси<br />
023	Киррь<br />
Усл. обозначение класса - RN<br />
<span style="font-weight: bold;">Друиды</span><br />
024	Корониус<br />
025	Уланд<br />
026	Эллезар<br />
027	Джем<br />
028	Мальком<br />
029	Мелодиа<br />
030	Алагар<br />
031	Аерис<br />
Усл. обозначение класса - DR<br />
<span style="font-weight: bold;">Алхимики</span><br />
032	Пигуедрам<br />
033	Тан<br />
034	Жосефина<br />
035	Нелла<br />
036	Торосар<br />
037	Фафнер<br />
038	Ризза<br />
039	Иона<br />
Усл. обозначение класса - AL<br />
<span style="font-weight: bold;">Маги</span><br />
040	Астрал<br />
041	Халон<br />
042	Серена<br />
043	Даремиф<br />
044	Теодор<br />
045	Солмир<br />
046	Кира<br />
047	Аин<br />
Усл. обозначение класса - WZ<br />
<span style="font-weight: bold;">Демоны</span><br />
048	Фиона<br />
049	Рашка<br />
050	Мариус<br />
051	Игнат<br />
052	Октавия<br />
053	Калх<br />
054	Пир<br />
055	Нимус<br />
Усл. обозначение класса - HR<br />
<span style="font-weight: bold;">Еретики</span><br />
056	Айден<br />
057	Ксирон<br />
058	Аксис<br />
059	Олема<br />
060	Калид<br />
061	Аш<br />
062	Зидар<br />
063	Ксарфакс<br />
Усл. обозначение класса - DM<br />
<span style="font-weight: bold;">Рыцари смерти</span><br />
064	Стракер<br />
065	Вокиал<br />
066	Моандор<br />
067	Чарна<br />
068	Тамика<br />
069	Исра<br />
070	Клавиус<br />
071	Галтран<br />
Усл. обозначение класса - DK<br />
<span style="font-weight: bold;">Некроманты</span><br />
072	Септиенна<br />
073	Аислин<br />
074	Сандро<br />
075	Нимбус<br />
076	Тант<br />
077	Кси<br />
078	Видомина<br />
079	Нагаш<br />
Усл. обозначение класса - NC<br />
<span style="font-weight: bold;">Лорды</span><br />
080	Лорелей<br />
081	Арлаш<br />
082	Дас<br />
083	Аджит<br />
084	Дамакон<br />
085	Гуннар<br />
086	Синка<br />
087	Шакти<br />
Усл. обозначение класса - OV<br />
<span style="font-weight: bold;">Чернокнижники</span><br />
088	Аламар<br />
089	Жаегар<br />
090	Малекит<br />
091	Жеддит<br />
092	Геон<br />
093	Деемер<br />
094	Сепхинороф<br />
095	Дарксторн<br />
Усл. обозначение класса - WL<br />
<span style="font-weight: bold;">Варвары</span><br />
096	Йог<br />
097	Гурниссон<br />
098	Жабаркас<br />
099	Шива<br />
100	Гретчин<br />
101	Креллион<br />
102	Крэг Хэк<br />
103	Тираксор<br />
Усл. обозначение класса - BR<br />
<span style="font-weight: bold;">Боевые маги</span><br />
104	Гирд<br />
105	Вей<br />
106	Десса<br />
107	Терек<br />
108	Зубин<br />
109	Гундула<br />
110	Орис<br />
111	Сауруг<br />
Усл. обозначение класса - BM<br />
<span style="font-weight: bold;">Хозяева Зверей</span><br />
112	Брон<br />
113	Дракон<br />
114	Вистан<br />
115	Тазар<br />
116	Алкин<br />
117	Корбак<br />
118	Гервульф<br />
119	Брохильд<br />
Усл. обозначение класса - BS<br />
<span style="font-weight: bold;">Ведьмы</span><br />
120	Мирланда<br />
121	Розик<br />
122	Вой<br />
123	Вердиш<br />
124	Мерист<br />
125	Стиг<br />
126	Андра<br />
127	Тива<br />
Усл. обозначение класса - WH<br />
C элементалами отдельный разговор, они не принадлежат к данному списку.<br />
<span style="font-style: italic;"><span style="font-weight: bold;">Путешественники</span><br />
000	Пасис<br />
001	Тунар<br />
002	Игнисса<br />
003	Лакус<br />
004	Монер<br />
005	Эрдамон<br />
006	Фьюр<br />
007	Кальт<br />
Усл. обозначение класса - PL<br />
<span style="font-weight: bold;">Элементалисты</span><br />
000	Луна<br />
001	Брисса<br />
002	Циэль<br />
003	Лабета<br />
004	Интеус<br />
005	Аэнаин<br />
006	Джелар<br />
007	Гриндан<br />
Усл. обозначение класса - EL</span><br />
<span style="font-weight: bold;">Дополнительные герои</span><br />
130KN	Сэр Мюллих<br />
000SH	Адриэн<br />
128QC	Катерина<br />
003SH	Дракон<br />
004SH	Джелу<br />
129MK	Килгор<br />
006SH	Лорд Хаарт<br />
007SH	Мутаре<br />
009SH	Роланд<br />
008SH	Мутаре Дрэйк<br />
132WL	Борагус<br />
131DM	Ксерон</div></div>
<span style="text-decoration: underline;"><span style="font-weight: bold;">Примеры:</span></span><br />
<span style="color: red;">HP</span><span style="color: blue;">L</span><span style="color: purple;">000</span><span style="color: 00cccc;">KN</span> - большой портрет для Оррина<br />
<span style="color: red;">HP</span><span style="color: green;">S</span><span style="color: purple;">120</span><span style="color: 00cccc;">WH</span> - малый портрет для Миранды<br />
<br />
<span style="color: #32CD32;">Папка MP3:</span><br />
<div><div class="spoiler_header">Spoiler <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1&#93;.style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1&#93;.style.display='none';this.innerHTML='(Click to View)';}else {parentNode.parentNode.getElementsByTagName('div')[1&#93;.style.display='block';this.innerHTML='(Click to Hide)';}">(Click to View)</a></div><div class="spoiler_body" style="display: none; border: 1px dotted #0F5C8E;">
Файлы по порядку при упорядочивании по имени:<br />
<span style="color: green;">AITheme0.mp3</span> - AITheme2.mp3 - Во время хода компьютера<br />
<span style="color: green;">BladeABCampaign.mp3</span> - CampainMusic11.mp3 - Музыка из компаний<br />
<span style="color: green;">COMBAT01.MP3</span> - COMBAT04.MP3 - Во время боя<br />
<span style="color: green;">CstleTown.mp3</span> - Замок Замок (Кастл)<br />
<span style="color: green;">Defend Castle.mp3</span> - Победа при обороне замка<br />
<span style="color: green;">DIRT.MP3</span>  - Местность Грязь<br />
<span style="color: green;">DUNGEON.MP3</span> - Замок Подземелье (Данжеон)<br />
<span style="color: green;">ElemTown.mp3</span> - Замок Сопряжение (Конфлюкс)<br />
<span style="color: green;">EvilTheme.mp3</span> - Музыка для кампаний<br />
<span style="color: green;">FortressTown.mp3</span> - Замок Болото (Фортресс)<br />
<span style="color: green;">GoodTheme.mp3</span> - Музыка для кампаний<br />
<span style="color: green;">GRASS.MP3</span> - Местность Трава<br />
<span style="color: green;">InfernoTown.mp3</span> - Замок Инферно<br />
<span style="color: green;">LAVA.MP3</span> - Местность Лава<br />
<span style="color: green;">LoopLepr.mp3</span> - Сад леприкона<br />
<span style="color: green;">Lose Campain.mp3</span> - Проигрыш компании<br />
<span style="color: green;">LoseCastle.mp3</span> - Проигрыш при обороне замка<br />
<span style="color: green;">LoseCombat.mp3</span> - Проигрыш битвы<br />
<span style="color: green;">MAINMENU.MP3</span> - Главное меню оригинала <br />
<span style="color: green;">MainMenuWoG.mp3</span> - Главное меню ВоГ<br />
<span style="color: green;">necroTown.mp3</span> - Замок Некрополис<br />
<span style="color: green;">NeutralTheme.mp3</span> - Музыка для кампаний<br />
<span style="color: green;">RAMPART.MP3</span> - Замок Оплот (Рампарт)<br />
<span style="color: green;">Retreat Battle.mp3</span> - Побег из битвы<br />
<span style="color: green;">ROUGH.MP3</span> - Местность Камни<br />
<span style="color: green;">SAND.MP3</span> - Местность Песок<br />
<span style="color: green;">SecretTheme.mp3</span> - Музыка для кампаний<br />
<span style="color: green;">SNOW.MP3</span> - Местность Снег<br />
<span style="color: green;">StrongHold.mp3</span> - Замок крепость (Стронгхолд)<br />
<span style="color: green;">Surrender Battle.mp3</span> - Сдача битвы<br />
<span style="color: green;">SWAMP.MP3</span> - Местность Болото<br />
<span style="color: green;">TowerTown.mp3</span> - Замок Башня (Тауэр)<br />
<span style="color: green;">UltimateLose.mp3</span> - Проигрыш в сценарии<br />
<span style="color: green;">Underground.mp3</span> - Местность подземелье<br />
<span style="color: green;">WATER.MP3</span> - Местность Вода<br />
<span style="color: green;">Win Battle.mp3</span> - Победа в битве<br />
<span style="color: green;">Win Scenario.mp3</span> - Победа в сценарии</div></div>
<span style="color: red;">Видео:</span><br />
<div><div class="spoiler_header">Spoiler <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1&#93;.style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1&#93;.style.display='none';this.innerHTML='(Click to View)';}else {parentNode.parentNode.getElementsByTagName('div')[1&#93;.style.display='block';this.innerHTML='(Click to Hide)';}">(Click to View)</a></div><div class="spoiler_body" style="display: none; border: 1px dotted #0F5C8E;">
.smk:<br />
3DOLOGO - Логотип 3до при запуске игры<br />
BUKALOGO - Логотип Буки тада же<br />
Credits - Анимация фона меню<br />
PGTRNLFT - Перелистывание  спелбука влево<br />
PGTRNRGH - То же вправо<br />
<br />
.bik:<br />
BIRTH - Анимация картинки кампании<br />
CEVIL1 - Анимация картинки кампании<br />
CEVIL2 - Анимация картинки кампании<br />
CGOOD1 - Анимация картинки кампании<br />
CGOOD2 - Анимация картинки кампании<br />
CGOOD3 - Анимация картинки кампании<br />
CNEUTRAL - Анимация картинки кампании<br />
CREDITS - Анимация фона меню<br />
CSECRET -Анимация картинки кампании<br />
DEFENDALL - Оборона замка начало<br />
DEFENDLOOP - Оборона замка цикл<br />
ELIXIR - Анимация картинки кампании<br />
HACK - Анимация картинки кампании<br />
LBLOOP - Поражение цикл<br />
LBSTART - Поражение начало<br />
LOSECSLP - Проигрыш обороны замка цикл<br />
LOSECSTL - Проигрыш обороны замка начало<br />
NEW - Анимация картинки кампании<br />
RISE - Анимация картинки кампании<br />
RTLOOP - Побег цикл<br />
RTSTART - Побег начало<br />
SPECTRE - Анимация картинки кампании<br />
SURRENDER - Сдаться сам себе цикл<br />
TAVERN - Видео в таверне<br />
UNHOLY - Анимация картинки кампании<br />
WIN3 - Победа сам себе цикл</div></div>]]></description>
			<content:encoded><![CDATA[Герои - это конструктор<br />
<br />
<span style="font-weight: bold;">Ресурсы игры</span> хранятся в папке DATA, файлы h3sprite.lod и h3bitmap.lod<br />
Для распаковки этих лодов использую <a href="http://sites.google.com/site/sergroj/mm/MMArchive.rar?attredirects=0&amp;d=1" target="_blank">MMArchive </a>, которая великолепно подходит для работы с любым типом геройских архивов.<br />
<br />
Просмотр спрайтов игры я выполняю с помощью программы <a href="http://www.grayface.nm.ru/DefPreview.rar" target="_blank">DefPreview</a>.<br />
<br />
Большую часть картинок - замен существующих можно в лод не запаковывать, а просто кидать в DATA. Но файл должен быть в формате РСХ (256 цветов). NB! картинка загрузки игры, Zpic106.bmp (дракон в ВоГе) должна быть полноцветной.<br />
<br />
<span style="font-weight: bold;">Скрипты</span>, основа функционала WoG, хранятся в папке DATA\S\<br />
Имя файла скрипта должно быть scriptXX.erm, где XX может принимать значения от 00 до 99.<br />
<br />
<br />
Описание ресурсов:<br />
<br />
<span style="text-decoration: underline;"><span style="font-weight: bold;">H3sprite</span></span><br />
<span style="font-weight: bold;">Окно героя</span><br />
UN32.def - маленькие иконки специализаций героев<br />
UN44.def - большие иконки специализаций героев<br />
<br />
<span style="font-weight: bold;">Окно города</span><br />
TB%город%%здание%.DEF - здания в городе<br />
<br />
<div class="notranslate"><div class="spoiler_header">Объекты на карте <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Click to View)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Click to Hide)';}">(Click to View)</a></div><div class="spoiler_body" style="display: none; border: 1px dotted #0F5C8E;">
AVC????? изображения городов на карте<br />
AVW%имямонстра%.DEF  - изображения монстров на карте<br />
advdig, advinfo, advpuz, advturn, advview - Кнопки опций<br />
iam000 - iam011 - Кнопки менеджера<br />
Форт на холме - Avxhild0.def, Avxhilg0.def <br />
Картограф - Avxmaps0.def, Avxmapu0.def, Avxmapw0.def <br />
Телепорт (багнутый?) - Avxmn8b0.def <br />
Обелиски - Avxoblb.def, ..., Avxobly.def <br />
Палатка ключников и стражи ключников - Avxbor10.def, ..., Avxbor80.def, Avxkey00.def, ..., Avxkey70.def <br />
Квесты - Zseer001.def, Zseer002.def, Avxseeb0.def, Avxseer0.def, Avxseey0.def <br />
Нычка вампов - Avgvamp0.def <br />
Нычка всех элементалей - Avgelem0.def <br />
Дабл-нычка воздушных (широкая) - Avgair0.def <br />
Дабл-нычка землянок (широкая) - Avgerth0.def <br />
Дабл-нычка огненных (широкая) - Avgfire0.def <br />
Дабл-нычка водных (широкая) - Avgwatr0.def <br />
Святилище - Avxsanc0.def</div></div>
<div class="notranslate"><div class="spoiler_header">Войска Замка <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Click to View)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Click to Hide)';}">(Click to View)</a></div><div class="spoiler_body" style="display: none; border: 1px dotted #0F5C8E;">
chalbd.def - Halabardnik | Halabardier / Halberdier<br />
CLCBOW.def - Łucznik | Strzelec / Archer | Light Crossboman<br />
CHCBOW.def - Kusznik / Marksman | Heavy Crossbowman<br />
CGRIFF.def - Gryf / Griffin<br />
cCavlr.def - Cavalier<br />
cChamp.def - Champion<br />
cAngel.def - Angel</div></div>
<div class="notranslate"><div class="spoiler_header">Войска Оплота <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Click to View)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Click to Hide)';}">(Click to View)</a></div><div class="spoiler_body" style="display: none; border: 1px dotted #0F5C8E;">
cCentr.def - Centaur<br />
cBDwar.def - Krasnolud Wojownik / Battle Dwarf<br />
cGrElf.def - Grand Elf<br />
cAPegs.def - Silver Pegasus<br />
cTree.def - Drzewiec / Dendroid Soldier | Treefolk<br />
cBTree.def - Ent / Dendroid Guard | Briar Treefolk<br />
CUNICO.def - Jednorożec / Unicorn</div></div>
<div class="notranslate"><div class="spoiler_header">Монстры <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Click to View)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Click to Hide)';}">(Click to View)</a></div><div class="spoiler_body" style="display: none; border: 1px dotted #0F5C8E;">
CAMAGE.def - Arcymag / Archmage<br />
<br />
CCERBU.def - Cerber / Cerberus<br />
CADEVL.def - Arcydiabeł / Arch Devil<br />
<br />
cbehol.def - Złe Oko | Obserwator / Beholder<br />
CCMCOR.def - Chimera | Skorpikora / Scorpicore<br />
CBDRGN.def - Czarny Smok / Black Dragon<br />
<br />
CBKNIG.def - Czarny Rycerz / Black Knight<br />
CBLORD.def - Upiorny Rycerz | Władca Mroku / Dread Knight | Black Lord<br />
<br />
CBWLFR.def - Wilczy Jeździec / Wolf Rider | Goblin Wolf Rider<br />
CABEHE.def - Starożytny Behemot / Ancient Behemoth<br />
<br />
cALiza.def - Reptilion / Lizard Warrior | Advanced Lizardman<br />
cBasil.def - Bazyliszek / Basilisk<br />
Ccgorg.def - Gorgona / Gorgon | Copper Gorgon<br />
Cbgog.def - Demigorgona | Potężna Gorgona / Mighty Gorgon | Bronze Gorgon<br />
cCHydr.def - Hydra Chaosu / Chaos Hydra<br />
<br />
CAELEM.def - Żywiołak Powietrza / Air Elemental<br />
<br />
Cboar.def - Knurzy Jeździec | Dzik / Boar<br />
Ccdrgn.def - Kryształowy Smok / Crystal Dragon<br />
CaDrgn.def - Błękitny Smok / Azure Dragon<br />
Ccrusd.def - Krzyżowiec / Crusader<br />
CcyclLor.def - Cyklop Krуlewski / Cyclops King | Cyclops Lord<br />
CCYCLR.def - Cyklop / Cyclops<br />
CDDRAG.def - Złoty Smok / Gold Dragon<br />
CDEVIL.def - Diabeł / Devil<br />
CDGOLE.def - Diamentowy Golem / Diamond Golem<br />
CDRFIR.def - Smocza Ważka | Smoczy Oślizg / Dragon Fly | Fire Dragon Fly<br />
CDRFLY.def - Ważka | Oślizg / Serpent Fly | Dragon Fly<br />
CDWARF.def - Krasnolud / Dwarf<br />
CECENT.def - Centaur Kapitan | Bojowy Centaur / Centaur Captain | Elite Centaur<br />
CEELEM.def - Żywiołak Ziemi / Earth Elemental<br />
cefree.def - Ifryt | Ifrit / Efreet<br />
cefres.def - Sułtański Ifryt | Sułtański Ifrit | Miryd / Efreet Sultan<br />
CELF.def - Leśny Elf / Wood Elf<br />
Ceveye.def - Beholder / Evil Eye<br />
CGDRAG.def - Zielony Smok / Green Dragon<br />
CGARGO.def - Kamienny Gargulec / Stone Gargoyle<br />
CGENIE.def - Dżinn | Geniusz / Genie<br />
CGREMA.def - Gremlin | Chochlik / Apprentice Gremlin<br />
CGREMM.def - Wyższy Gremlin | Gremlin / Master Gremlin<br />
CGTITA.def - Tytan / Titan | Greater Titan<br />
CGOBLI.def - Goblin<br />
CGOG.def - Gog<br />
CFAMIL.def - Chowaniec / Familiar<br />
CFELEM.def - Żywiołak ognia / Fire Elemental<br />
Cfbird.DEF - Ognisty Ptak / Firebird<br />
Cfdrgn.def - Czarodziejski Smok / Faerie Dragon<br />
Cench.def - Czarodziej / Enchanter<br />
CGGOLE.def - Złoty Golem / Gold Golem<br />
CGNOLL.def - Gnoll | Bobołak<br />
CGNOLM.def - Gnoll Maruder | Zwierzołak / Gnoll Marauder<br />
CGBASI.def - Bazyliszek Krуlewski | Wyższy Bazyliszek / Greater Basilisk<br />
CHalf.def - Niziołek / Halfling<br />
CHARPH.def - Harpia Wiedźma / Harpy Hag<br />
CHARPY.def - Harpia / Harpy<br />
CHDRGN.def - Duchowy Smok | Upiorny Smok / Ghost Dragon<br />
CHGOBL.def - Hobgoblin<br />
CHHOUN.def - Piekielny Ogar / Hell Hound<br />
CHYDRA.def - Hydra<br />
Cicee.def - Żywiołak Lodu / Ice Elemental<br />
CIGOLE.def - Żelazny Golem / Iron Golem<br />
CIMP.def - Chochlik | Diablik / Imp<br />
Citrog.def - Piekielny Troglodyta / Infernal Troglodyte<br />
CLICH.def - Lisz | Licz / Lich<br />
CLTITA.def - Gigant / Giant | Lesser Titan<br />
CMAGE.def - Mag / Mage<br />
Cmagel.def - Żywiołak Magii / Magic Elemental<br />
CMAGOG.def - Magog<br />
CMCORE.def - Mantikora | Mantykora / Manticore<br />
Cmeduq.def - Meduza Krуlewska / Medusa Queen<br />
Cmedus.def - Meduza / Medusa<br />
Cminok.def - Minotaur Krуlewski / Minotaur King<br />
CMINOT.def - Minotaur<br />
Cmonkk.def - Mnich / Monk<br />
Cmummy.def - Mumia / Mummy<br />
CNAGA.def - Naga | Przeraza / Naga Sentinel<br />
CNAGAG.def - Krуlewska Naga | Skorpena / Naga Queen | Naga Guardian<br />
CNDRGN.def - Kościany Smok / Bone Dragon<br />
Cnomad.def - Nomad<br />
CNOSFE.def - Wampirzy Lord | Alp / Vampire Lord | Nosferatu<br />
Cnrg.def - Żywiołak Energii / Energy Elemental<br />
COGARG.def - Obsydianowy Gargulec | Marmurowy Gargulec / Obsidian Gargoyle<br />
COGMAG.def - Ogr Szaman | Szaman / Ogre Mage<br />
COGRE.def - Ogr / Ogre<br />
COHDEM.def - Demon / Lesser Demon | Single-Horned Demon<br />
CORC.def - Ork / Orc<br />
CORCCH.def - Uruk / Orc Chiefan<br />
Cpeas.def - Chłop / Peasant<br />
CPEGAS.def - Pegaz / Pegasus<br />
CPFIEN.def - Czart / Pit Fiend<br />
CPFOE.def - Czarci Lord / Pit Lord | Pit Foe<br />
CPHX.def - Feniks / Phoenix<br />
Cpixie.def - Nimfa | Driada / Pixie<br />
CPKMAN.def - Pikinier / Pikeman<br />
CPLICH.def - Arcylisz | Arcylicz | Potężny Lisz / Power Lich<br />
CPLIZA.def - Jaszczuroczłek | Jaszczurolud / Lizardman | Primitive Lizardman<br />
Cpsyel.def - Żywiołak Psychiki | Żywiołak Umysłu | Żywiołak Myśli / Psychic Elemental | Psi Elemental<br />
CRANGL.def - Archanioł / Archangel<br />
CRDRGN.def - Czerwony Smok / Red Dragon<br />
Crgrif.def - Gryf Krуlewski / Royal Griffin<br />
CROC.def - Rok / Roc<br />
Crogue.def - Rozbуjnik / Rogue<br />
CRsDgn.def - Rdzawy Smok / Rust Dragon<br />
CSGOLE.def - Kamienny Golem / Stone Golem<br />
Csharp.def - Strzelec / Sharpshooter<br />
CSKELE.def - Szkielet / Skeleton<br />
CSprite.def - Rusałka | Sylfida / Sprite<br />
Cstone.def - Żywiołak Magmy / Magma Elemental | Stone Elemental<br />
Cstorm.def - Żywiołak Burzy / Storm Elemental<br />
CSULTA.def - Potężny Dżinn | Dżin / Master Genie | Caliph<br />
Csword.def - Zbrojny | Miecznik / Swordsman<br />
CTBIRD.def - Ptak Gromu / Thunderbird<br />
CTHDEM.def - Rogaty Demon / Horned Demon | Greater Demon | Dual-Horned Demon<br />
Ctrogl.def - Troglodyta / Troglodyte<br />
Ctroll.def - Troll<br />
CUWLFR.def - Wilczy Rycerz / Wolf Raider | Hobgoblin Wolf Rider<br />
CVAMP.def - Wampir / Vampire<br />
CWELEM.def - Żywiołak Wody / Water Elemental<br />
CWIGHT.def - Zjawa / Wight<br />
CWRAIT.def - Upiуr | Zmora / Wraith<br />
CWSKEL.def - Kościej / Skeleton Warrior<br />
CWUNIC.def - Jednorożec Bitewny / War Unicorn<br />
CWYVER.def - Wiwerna / Wyvern<br />
CWYVMN.def - Krуlewska Wiwerna / Wyvern Monarch<br />
CYBEHE.def - Behemot / Behemoth | Young Behemoth<br />
Czealt.def - Kapłan / Zealot<br />
CZOMBI.def - Ożywieniec / Walking Dead | Zombie<br />
CZOMLO.def - Zombi / Zombie | Zombie Lord<br />
<br />
ZM150Z.DEF - Serafin | Najwyższy Archanioł / Supreme Archangel<br />
ZM151Z.DEF - Diamentowy Smok / Diamond Dragon<br />
ZM152Z.DEF - Gromowładny | Władca Piorunуw / Lord of Thunder<br />
ZM153Z.DEF - Piekielny Baron | Antychryst / Hell Baron | Antichrist<br />
ZM154Z.DEF - Krwawy Smok / Blood Dragon<br />
ZM155Z.DEF - Smok Cienia / Darkness Dragon<br />
ZM156Z.DEF - Widmowy Behemot / Ghost Behemoth<br />
ZM157Z.DEF - Piekielna Hydra / Hell Hydra<br />
ZM158Z.DEF - Święty Feniks / Sacred Phoenix<br />
ZM159G.DEF - Duch / Ghost<br />
ZM160G.DEF - Emisariusz Wojny / Emissary of War<br />
ZM161G.DEF - Emisariusz Pokoju / Emissary of Peace<br />
ZM162G.DEF - Emisariusz Mocy / Emissary of Mana<br />
ZM163G.DEF - Emisariusz Wiedzy / Emissary of Lore<br />
ZM164GD.DEF - Posłaniec Ognia | Wysłannik Ognia / Fire Messenger<br />
ZM165GD.DEF - Metamorf | Posłaniec Ziemi | Wysłannik Ziemi / Earth Messenger<br />
ZM166GD.DEF - Posłaniec Wody | Wysłannik Wody / Water Messenger<br />
ZM167GD.DEF - Posłaniec Powietrza | Wysłannik Powietrza / Air Messenger<br />
ZM168DG.DEF - Gorynicz | Gorynycz / Gorynych<br />
ZM169ZL.DEF - Kapłan Wojny / War Zealot<br />
ZM170SW.DEF - Arktyczny Strzelec / Arctic Sharpshooter<br />
ZM171SR.DEF - Wulkaniczy Strzelec / Lava Sharpshooter<br />
ZM172N.DEF - Koszmar | Zmora | Nocna Mara / Nightmare<br />
ZM173M.DEF - Gremlinołaj / Santa Gremlin<br />
ZM174NPC.DEF - Paladyn | Palladyn / Paladin<br />
ZM175NPC.DEF - Pustelnik / Hierophant<br />
ZM176NPC.DEF - Westalka | Strażniczka Świątyni / Temple Guardian<br />
ZM177NPC.DEF - Sukkub / Succubus<br />
ZM178NPC.DEF - Pożeracz Dusz / Soul Eater<br />
ZM179NPC.DEF - Oprawca | Brutus / Brute<br />
ZM180NPC.DEF - Przywуdca Ogrуw / Ogre Leader<br />
ZM181NPC.DEF - Szaman / Shaman<br />
ZM182NPC.DEF - Żywiołak Kosmosu | Duch Astralny / Astral Spirit<br />
ZM192Z.DEF - Sylvan Centaur<br />
ZM193Z.DEF - Czarodziejka / Sorceress<br />
ZM194Z.DEF - Wilkołak / Werewolf<br />
ZM195Z.DEF - Hell Steed<br />
ZM196Z.DEF - Dracolich<br />
<br />
Машины:<br />
smbal.def - Balista / Ballista<br />
SMCart.def - Wуz z Amunicją / Ammo Cart<br />
SMCata.def - Katapulta / Catapult<br />
SMtent.def - Namiot Medyka / First Aid Tent | First-Aid Tent<br />
<br />
Выстрелы:<br />
CPRGOGX.def - Ognista Kule Magoga i Strzała Wulkanicznego Strzelca<br />
cprgre.def - Kula Gremlina/Wyższego Gremlina<br />
CPRGTIX.def - Piorun Tytana i Gromowładnego<br />
CPRZEAX.def - Magia Mnicha i Kapłana<br />
PCYCLBX.def - Skała Cyklopa i Cyklopa Krуlewskiego<br />
PELFX.def - Strzała Elfa i Srebrnego Elfa/Wyższego Elfa<br />
Phalf.def - Kamień Niziołka<br />
Picee.def - Sopel Lodu Żywiołaka Lodu<br />
PLCBOWX.def - Bełt Strzelca/Łucznika i Kusznika<br />
PLICH.def - Magia Lisza/Licza i Arcylisza/Arcylicza<br />
PMAGEX.def - Magia Maga i Strzała Arktycznego Strzelca<br />
PMEDUSX.def - Strzała Meduzy i Meduzy Krуlewskiej<br />
porchx.def - Topуr Orka i Uruka<br />
PPLIZAX.def - Strzała Jaszczuroluda i Reptiliona<br />
<br />
SMBALX.def - Balisty<br />
SMCatx.def - Katapulty</div></div>
<div class="notranslate"><div class="spoiler_header">Главное меню <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Click to View)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Click to Hide)';}">(Click to View)</a></div><div class="spoiler_body" style="display: none; border: 1px dotted #0F5C8E;">
инфа от <span style="font-weight: bold;">geNNadiy</span>: для \\\"скинизации\\\" нужно редактировать:<br />
<br />&nbsp;&nbsp;&nbsp;ZmenuCR.def - кнопка "Создатели"<br />&nbsp;&nbsp;&nbsp;ZmenuHS.def - кнопка "Результаты"<br />&nbsp;&nbsp;&nbsp;ZmenuLG.def - кнопка "Загрузить Игру"<br />&nbsp;&nbsp;&nbsp;ZmenuNG.def - кнопка "Новая Игра"<br />&nbsp;&nbsp;&nbsp;ZmenuQT.def - кнопка "Выход (из игры в Windows)"<br />&nbsp;&nbsp;&nbsp;ZSSarm.def - кнопка "Клинок Армагеддона"<br />&nbsp;&nbsp;&nbsp;ZSScus.def - кнопка "Другая Кампания"<br />&nbsp;&nbsp;&nbsp;ZSSexit.def - кнопка "Назад (выход из меню выбора кампаний)"<br />&nbsp;&nbsp;&nbsp;ZSSroe.def - кнопка "Возрождение Эрафии"<br />&nbsp;&nbsp;&nbsp;ZSSsod.def - кнопка "Дыхание Смерти"<br />&nbsp;&nbsp;&nbsp;ZTback.def - кнопка "Назад (при выборе типа игры)"<br />&nbsp;&nbsp;&nbsp;ZTcampn.def - кнопка "Кампании"<br />&nbsp;&nbsp;&nbsp;ZTmulti.def - кнопка "Мультиплейер"<br />&nbsp;&nbsp;&nbsp;ZTsingl.def - кнопка "Одиночная Игра"<br />&nbsp;&nbsp;&nbsp;ZTtutor.def - кнопка "Обучение"<br />
ещё возможно при изменении загрузочного экрана захочется изменить и \\\"синие квадратики\\\" что снизу ползут во время самой загрузки - вот и они - LOADPROG.DEF (H3sprite.lod)</div></div>
<div class="notranslate"><div class="spoiler_header">Содержимое H3bitmap.lod <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Click to View)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Click to Hide)';}">(Click to View)</a></div><div class="spoiler_body" style="display: none; border: 1px dotted #0F5C8E;">
AISHIELD.PCX - щит вместо миникарты во время хода противника/<br />
muMAP.bmp (мини фон в окне мультиплеерной игры)<br />
ZloadGAM.bmp (надпись \\\"загрузка игры\\\")<br />
ZmainMEN.bmp (боковая панелька без кнопок для вида \\\"об авторах\\\")<br />
ZnewGAM.bmp (надпись \\\"новая игра\\\")<br />
Zpic1000.bmp (рисунок в окне выбора параметров игры)<br />
Zpic1001.bmp (альтернативный рисунок в окне выбора параметров игры)<br />
Zpic1005.bmp (основной фон)<br />
Zpic106.bmp (фон \\\"загрузки\\\")<br />
ACredit.smk анимация буквы T из Надписи In The wake of Gods при старте игры</div></div>
<br />
<div class="notranslate"><div class="spoiler_header">Описание текстовиков <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Click to View)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Click to Hide)';}">(Click to View)</a></div><div class="spoiler_body" style="display: none; border: 1px dotted #0F5C8E;">
<a href="http://lopasnya.by.ru/HMM/ARRAYTXT.TXT" target="_blank">ARRAYTXT.TXT</a> - Всякое. В частности, здесь можно поправить показ кол-ва монстров (Чтобы вместо \\\"Мало\\\" было \\\"1-4\\\")<br />
<br />
ARTEVENT.TXT - Сообщения при поднятии артефакта.<br />
ARTRAITS.TXT - Свойства артефактов.<br />
BLDGNEUT.TXT - Описания некоторых зданий (гильдия магов, магистрат и т.д..).<br />
BLDGSPEC.TXT - Описания других зданий.<br />
BUILDING.TXT - Стоимость постройки зданий.<br />
BALLIST.TXT - шансы попадания баллистой при осаде, нанесенный урон и кол-во раз стрельбы.<br />
CRBANKS.TXT - банки существ<br />
CRANIM.TXT - Анимация существ.<br />
CREDITS.TXT - Авторы.<br />
CRGEN1.TXT - Названия жилищ (на карте).<br />
CRGEN4.TXT - Дополнительные названия жилищ.<br />
CRTRAITS.TXT - свойства монстров для СОД. Текстовик загружается раньше, чем ZCRTRAIT.TXT. Если ВОГ НЕ в рабочем состоянии (например, отсутствует zvslib1.dll) - часть exe от СОДа грузит именно CRTRAITS.TXT.<br />
CRTRAIT0.TXT - чисто для редактора карт.<br />
DWELLING.TXT - Названия жилищ (Во всех городах).<br />
GENRLTXT.TXT - Прочие текстовые сообщения.<br />
HCTRAITS.TXT - Наименования классов героев.<br />
HEROBIOS.TXT - Биографии героев.<br />
HEROSPEC.TXT - Специализации героев (только названия и описания).<br />
HOTRAITS.TXT - Стартовые армии героев.<br />
MINEEVNT.TXT - Сообщения при захвате шахт.<br />
MINENAME.TXT - Названия шахт.<br />
RANDSIGN.TXT - Надписи на знаках.<br />
RANDTVRN.TXT - Слухи в тавернах.<br />
RESTYPES.TXT - Названия типов ресурсов.<br />
SPTRAITS.TXT - Описание заклинаний.<br />
SSTRAITS.TXT - Описание навыков.<br />
TOWNNAME.TXT - Названия городов.<br />&nbsp;&nbsp;&nbsp;TOWNTYPE.TXT - Типы городов.<br />
<br />&nbsp;&nbsp;&nbsp;<a href="http://lopasnya.by.ru/HMM/zaobjts.txt" target="_blank">zaobjts.txt</a> - характеристики объектов на карте. Влияет, в частности, на генерацию объектов на рандоме. По ссылке - ТЕшный, часть объектов отключена, часть - появляется чаще, например, крипты появляются на варварских пустошах.<br />&nbsp;&nbsp;&nbsp;ZCREXP.TXT - Опыт отрядов.<br />&nbsp;&nbsp;&nbsp;ZCRGN1.TXT - Названия ВоГовских жилищ на карте.<br />&nbsp;&nbsp;&nbsp;ZCRTRAIT.TXT - Характеристики монстров (Включая ВоГовские).<br />&nbsp;&nbsp;&nbsp;ZMESS00.TXT - Все новые ВоГовские сообщения.<br />&nbsp;&nbsp;&nbsp;ZNPC00.TXT - Описания командиров.<br />&nbsp;&nbsp;&nbsp;ZNPC01.TXT - Имена и биографии командиров.<br />&nbsp;&nbsp;&nbsp;ZREDITS.TXT - Авторы (ВоГ).</div></div>
Ресурсы, которые не требуют запаковки в лод, и которые нормально работают из папки DATA<br />
<span style="font-weight: bold;">Портреты</span>. Формат PCX<br />
<a href="http://forum.df2.ru/index.php?showtopic=5885" target="_blank">Тема "Портреты героев"</a><br />
<a href="http://wforum.heroes35.net/showthread.php?tid=754" target="_blank">Моя подборка, почти без флуда <img src="http://wforum.heroes35.net/images/smilies/sm.gif" style="vertical-align: middle;" border="0" alt="Sm" title="Sm" /></a><br />
<span style="font-weight: bold;">Звуки боя</span>. Звук в формате .wav, требует смены расширения на .82m. <br />
<span style="font-weight: bold;">Звуки на карте</span>. (LOOP[...].wav)<br />
<span style="font-weight: bold;">Городские здания</span>. Формат .pcx.<br />
<span style="font-weight: bold;">Поля боя</span>. Формат .pcx.<br />
<a href="http://forum.df2.ru/index.php?showtopic=843" target="_blank">Тема "Battlefields"</a><br />
<br />
<span style="font-weight: bold;">Список названий портретов героев.</span><br />
<div><div class="spoiler_header">Spoiler <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Click to View)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Click to Hide)';}">(Click to View)</a></div><div class="spoiler_body" style="display: none; border: 1px dotted #0F5C8E;"><span style="text-decoration: underline;"><br />
<span style="font-weight: bold;">Название каждого большого портрета начинается с <span style="color: red;">HP</span><span style="color: blue;">L</span></span><br />
<span style="font-weight: bold;">Название каждого малого портрета начинается с <span style="color: red;">HP</span><span style="color: green;">S</span></span><br />
Список героев:</span><br />
<span style="font-weight: bold;">Рыцари</span><br />
000	Оррин<br />
001	Валеска<br />
002	Эдрик<br />
003	Сильвия<br />
004	Лорд Хаарт<br />
005	Сорша<br />
006	Кристиан<br />
007	Турис<br />
Усл. обозначение класса - KN<br />
<span style="font-weight: bold;">Священники</span><br />
008	Рион<br />
009	Адель<br />
010	Катберт<br />
011	Аделаида<br />
012	Инхам<br />
013	Саня<br />
014	Лоинс<br />
015	Каитлин<br />
Усл. обозначение класса - CL<br />
<span style="font-weight: bold;">Рэйнджеры</span><br />
016	Мепхала<br />
017	Уфретин<br />
018	Енова<br />
019	Роланд<br />
020	Торгрим<br />
021	Ивор<br />
022	Кланси<br />
023	Киррь<br />
Усл. обозначение класса - RN<br />
<span style="font-weight: bold;">Друиды</span><br />
024	Корониус<br />
025	Уланд<br />
026	Эллезар<br />
027	Джем<br />
028	Мальком<br />
029	Мелодиа<br />
030	Алагар<br />
031	Аерис<br />
Усл. обозначение класса - DR<br />
<span style="font-weight: bold;">Алхимики</span><br />
032	Пигуедрам<br />
033	Тан<br />
034	Жосефина<br />
035	Нелла<br />
036	Торосар<br />
037	Фафнер<br />
038	Ризза<br />
039	Иона<br />
Усл. обозначение класса - AL<br />
<span style="font-weight: bold;">Маги</span><br />
040	Астрал<br />
041	Халон<br />
042	Серена<br />
043	Даремиф<br />
044	Теодор<br />
045	Солмир<br />
046	Кира<br />
047	Аин<br />
Усл. обозначение класса - WZ<br />
<span style="font-weight: bold;">Демоны</span><br />
048	Фиона<br />
049	Рашка<br />
050	Мариус<br />
051	Игнат<br />
052	Октавия<br />
053	Калх<br />
054	Пир<br />
055	Нимус<br />
Усл. обозначение класса - HR<br />
<span style="font-weight: bold;">Еретики</span><br />
056	Айден<br />
057	Ксирон<br />
058	Аксис<br />
059	Олема<br />
060	Калид<br />
061	Аш<br />
062	Зидар<br />
063	Ксарфакс<br />
Усл. обозначение класса - DM<br />
<span style="font-weight: bold;">Рыцари смерти</span><br />
064	Стракер<br />
065	Вокиал<br />
066	Моандор<br />
067	Чарна<br />
068	Тамика<br />
069	Исра<br />
070	Клавиус<br />
071	Галтран<br />
Усл. обозначение класса - DK<br />
<span style="font-weight: bold;">Некроманты</span><br />
072	Септиенна<br />
073	Аислин<br />
074	Сандро<br />
075	Нимбус<br />
076	Тант<br />
077	Кси<br />
078	Видомина<br />
079	Нагаш<br />
Усл. обозначение класса - NC<br />
<span style="font-weight: bold;">Лорды</span><br />
080	Лорелей<br />
081	Арлаш<br />
082	Дас<br />
083	Аджит<br />
084	Дамакон<br />
085	Гуннар<br />
086	Синка<br />
087	Шакти<br />
Усл. обозначение класса - OV<br />
<span style="font-weight: bold;">Чернокнижники</span><br />
088	Аламар<br />
089	Жаегар<br />
090	Малекит<br />
091	Жеддит<br />
092	Геон<br />
093	Деемер<br />
094	Сепхинороф<br />
095	Дарксторн<br />
Усл. обозначение класса - WL<br />
<span style="font-weight: bold;">Варвары</span><br />
096	Йог<br />
097	Гурниссон<br />
098	Жабаркас<br />
099	Шива<br />
100	Гретчин<br />
101	Креллион<br />
102	Крэг Хэк<br />
103	Тираксор<br />
Усл. обозначение класса - BR<br />
<span style="font-weight: bold;">Боевые маги</span><br />
104	Гирд<br />
105	Вей<br />
106	Десса<br />
107	Терек<br />
108	Зубин<br />
109	Гундула<br />
110	Орис<br />
111	Сауруг<br />
Усл. обозначение класса - BM<br />
<span style="font-weight: bold;">Хозяева Зверей</span><br />
112	Брон<br />
113	Дракон<br />
114	Вистан<br />
115	Тазар<br />
116	Алкин<br />
117	Корбак<br />
118	Гервульф<br />
119	Брохильд<br />
Усл. обозначение класса - BS<br />
<span style="font-weight: bold;">Ведьмы</span><br />
120	Мирланда<br />
121	Розик<br />
122	Вой<br />
123	Вердиш<br />
124	Мерист<br />
125	Стиг<br />
126	Андра<br />
127	Тива<br />
Усл. обозначение класса - WH<br />
C элементалами отдельный разговор, они не принадлежат к данному списку.<br />
<span style="font-style: italic;"><span style="font-weight: bold;">Путешественники</span><br />
000	Пасис<br />
001	Тунар<br />
002	Игнисса<br />
003	Лакус<br />
004	Монер<br />
005	Эрдамон<br />
006	Фьюр<br />
007	Кальт<br />
Усл. обозначение класса - PL<br />
<span style="font-weight: bold;">Элементалисты</span><br />
000	Луна<br />
001	Брисса<br />
002	Циэль<br />
003	Лабета<br />
004	Интеус<br />
005	Аэнаин<br />
006	Джелар<br />
007	Гриндан<br />
Усл. обозначение класса - EL</span><br />
<span style="font-weight: bold;">Дополнительные герои</span><br />
130KN	Сэр Мюллих<br />
000SH	Адриэн<br />
128QC	Катерина<br />
003SH	Дракон<br />
004SH	Джелу<br />
129MK	Килгор<br />
006SH	Лорд Хаарт<br />
007SH	Мутаре<br />
009SH	Роланд<br />
008SH	Мутаре Дрэйк<br />
132WL	Борагус<br />
131DM	Ксерон</div></div>
<span style="text-decoration: underline;"><span style="font-weight: bold;">Примеры:</span></span><br />
<span style="color: red;">HP</span><span style="color: blue;">L</span><span style="color: purple;">000</span><span style="color: 00cccc;">KN</span> - большой портрет для Оррина<br />
<span style="color: red;">HP</span><span style="color: green;">S</span><span style="color: purple;">120</span><span style="color: 00cccc;">WH</span> - малый портрет для Миранды<br />
<br />
<span style="color: #32CD32;">Папка MP3:</span><br />
<div><div class="spoiler_header">Spoiler <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Click to View)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Click to Hide)';}">(Click to View)</a></div><div class="spoiler_body" style="display: none; border: 1px dotted #0F5C8E;">
Файлы по порядку при упорядочивании по имени:<br />
<span style="color: green;">AITheme0.mp3</span> - AITheme2.mp3 - Во время хода компьютера<br />
<span style="color: green;">BladeABCampaign.mp3</span> - CampainMusic11.mp3 - Музыка из компаний<br />
<span style="color: green;">COMBAT01.MP3</span> - COMBAT04.MP3 - Во время боя<br />
<span style="color: green;">CstleTown.mp3</span> - Замок Замок (Кастл)<br />
<span style="color: green;">Defend Castle.mp3</span> - Победа при обороне замка<br />
<span style="color: green;">DIRT.MP3</span>  - Местность Грязь<br />
<span style="color: green;">DUNGEON.MP3</span> - Замок Подземелье (Данжеон)<br />
<span style="color: green;">ElemTown.mp3</span> - Замок Сопряжение (Конфлюкс)<br />
<span style="color: green;">EvilTheme.mp3</span> - Музыка для кампаний<br />
<span style="color: green;">FortressTown.mp3</span> - Замок Болото (Фортресс)<br />
<span style="color: green;">GoodTheme.mp3</span> - Музыка для кампаний<br />
<span style="color: green;">GRASS.MP3</span> - Местность Трава<br />
<span style="color: green;">InfernoTown.mp3</span> - Замок Инферно<br />
<span style="color: green;">LAVA.MP3</span> - Местность Лава<br />
<span style="color: green;">LoopLepr.mp3</span> - Сад леприкона<br />
<span style="color: green;">Lose Campain.mp3</span> - Проигрыш компании<br />
<span style="color: green;">LoseCastle.mp3</span> - Проигрыш при обороне замка<br />
<span style="color: green;">LoseCombat.mp3</span> - Проигрыш битвы<br />
<span style="color: green;">MAINMENU.MP3</span> - Главное меню оригинала <br />
<span style="color: green;">MainMenuWoG.mp3</span> - Главное меню ВоГ<br />
<span style="color: green;">necroTown.mp3</span> - Замок Некрополис<br />
<span style="color: green;">NeutralTheme.mp3</span> - Музыка для кампаний<br />
<span style="color: green;">RAMPART.MP3</span> - Замок Оплот (Рампарт)<br />
<span style="color: green;">Retreat Battle.mp3</span> - Побег из битвы<br />
<span style="color: green;">ROUGH.MP3</span> - Местность Камни<br />
<span style="color: green;">SAND.MP3</span> - Местность Песок<br />
<span style="color: green;">SecretTheme.mp3</span> - Музыка для кампаний<br />
<span style="color: green;">SNOW.MP3</span> - Местность Снег<br />
<span style="color: green;">StrongHold.mp3</span> - Замок крепость (Стронгхолд)<br />
<span style="color: green;">Surrender Battle.mp3</span> - Сдача битвы<br />
<span style="color: green;">SWAMP.MP3</span> - Местность Болото<br />
<span style="color: green;">TowerTown.mp3</span> - Замок Башня (Тауэр)<br />
<span style="color: green;">UltimateLose.mp3</span> - Проигрыш в сценарии<br />
<span style="color: green;">Underground.mp3</span> - Местность подземелье<br />
<span style="color: green;">WATER.MP3</span> - Местность Вода<br />
<span style="color: green;">Win Battle.mp3</span> - Победа в битве<br />
<span style="color: green;">Win Scenario.mp3</span> - Победа в сценарии</div></div>
<span style="color: red;">Видео:</span><br />
<div><div class="spoiler_header">Spoiler <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Click to View)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Click to Hide)';}">(Click to View)</a></div><div class="spoiler_body" style="display: none; border: 1px dotted #0F5C8E;">
.smk:<br />
3DOLOGO - Логотип 3до при запуске игры<br />
BUKALOGO - Логотип Буки тада же<br />
Credits - Анимация фона меню<br />
PGTRNLFT - Перелистывание  спелбука влево<br />
PGTRNRGH - То же вправо<br />
<br />
.bik:<br />
BIRTH - Анимация картинки кампании<br />
CEVIL1 - Анимация картинки кампании<br />
CEVIL2 - Анимация картинки кампании<br />
CGOOD1 - Анимация картинки кампании<br />
CGOOD2 - Анимация картинки кампании<br />
CGOOD3 - Анимация картинки кампании<br />
CNEUTRAL - Анимация картинки кампании<br />
CREDITS - Анимация фона меню<br />
CSECRET -Анимация картинки кампании<br />
DEFENDALL - Оборона замка начало<br />
DEFENDLOOP - Оборона замка цикл<br />
ELIXIR - Анимация картинки кампании<br />
HACK - Анимация картинки кампании<br />
LBLOOP - Поражение цикл<br />
LBSTART - Поражение начало<br />
LOSECSLP - Проигрыш обороны замка цикл<br />
LOSECSTL - Проигрыш обороны замка начало<br />
NEW - Анимация картинки кампании<br />
RISE - Анимация картинки кампании<br />
RTLOOP - Побег цикл<br />
RTSTART - Побег начало<br />
SPECTRE - Анимация картинки кампании<br />
SURRENDER - Сдаться сам себе цикл<br />
TAVERN - Видео в таверне<br />
UNHOLY - Анимация картинки кампании<br />
WIN3 - Победа сам себе цикл</div></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Редактирование иконки исполняемого файла игры]]></title>
			<link>http://wforum.heroes35.net/showthread.php?tid=6344</link>
			<pubDate>Fri, 03 Feb 2012 11:44:56 +0000</pubDate>
			<guid isPermaLink="false">http://wforum.heroes35.net/showthread.php?tid=6344</guid>
			<description><![CDATA[<blockquote><cite><span> (03.02.2012 16:10)</span>MOP Wrote: <a href="http://wforum.heroes35.net/showthread.php?pid=68310#pid68310" class="quick_jump">&nbsp;</a></cite>я не понял, как сменить по-нормальному иконку геройского экзешника (всякие там рестораторы и рес-хакеры просто его убивают), да и лень было.</blockquote>
<br />
То ли флэшбэк, то ли magoth как-то умудрялись сменить.]]></description>
			<content:encoded><![CDATA[<blockquote><cite><span> (03.02.2012 16:10)</span>MOP Wrote: <a href="http://wforum.heroes35.net/showthread.php?pid=68310#pid68310" class="quick_jump">&nbsp;</a></cite>я не понял, как сменить по-нормальному иконку геройского экзешника (всякие там рестораторы и рес-хакеры просто его убивают), да и лень было.</blockquote>
<br />
То ли флэшбэк, то ли magoth как-то умудрялись сменить.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Полные исходники проекта WoG]]></title>
			<link>http://wforum.heroes35.net/showthread.php?tid=3900</link>
			<pubDate>Wed, 11 Jan 2012 12:28:03 +0000</pubDate>
			<guid isPermaLink="false">http://wforum.heroes35.net/showthread.php?tid=3900</guid>
			<description><![CDATA[<span style="color: red;"><span style="font-weight: bold;">Исходники Вога</span></span><br />
Автор проекта WoG Слава Сальников и лидер CoreWoG команды Corwin дали согласие на публикацию исходников общественности, за что им большое спасибо. Теперь каждый модостроитель или энтузиаст может использовать функции, адреса, структуры данных и другую полезную информацию по игре.<br />
<br />
<span style="font-weight: bold;">Скачать:</span> <a href="http://wforum.heroes35.net/files/wog358_sources.rar" target="_blank">Исходники <span style="font-weight: bold;">WoG 3.58f</span></a><br />
<span style="font-weight: bold;">Скачать:</span> <a href="https://yadi.sk/d/Ozr6rbLhchzD5Q" target="_blank">База <span style="font-weight: bold;">HoMM3 и IDA_7</span></a><br />
<span style="font-weight: bold;">Скачать:</span> <a href="https://tools.hmm35.ru/soft/h3maped%20IDA%20database%20by%20GrayFace.rar" target="_blank">База <span style="font-weight: bold;">Редактора карт</span></a><br />
<span style="font-weight: bold;">Скачать:</span> <a href="https://yadi.sk/i/EYRqu8_eFfqoIg" target="_blank"><span style="font-weight: bold;">OB:C</span> (by Миханик)</a><br />
<br />
<span style="color: green;">edit by <span style="font-weight: bold;">igrik</span> (14.03.2020)</span>]]></description>
			<content:encoded><![CDATA[<span style="color: red;"><span style="font-weight: bold;">Исходники Вога</span></span><br />
Автор проекта WoG Слава Сальников и лидер CoreWoG команды Corwin дали согласие на публикацию исходников общественности, за что им большое спасибо. Теперь каждый модостроитель или энтузиаст может использовать функции, адреса, структуры данных и другую полезную информацию по игре.<br />
<br />
<span style="font-weight: bold;">Скачать:</span> <a href="http://wforum.heroes35.net/files/wog358_sources.rar" target="_blank">Исходники <span style="font-weight: bold;">WoG 3.58f</span></a><br />
<span style="font-weight: bold;">Скачать:</span> <a href="https://yadi.sk/d/Ozr6rbLhchzD5Q" target="_blank">База <span style="font-weight: bold;">HoMM3 и IDA_7</span></a><br />
<span style="font-weight: bold;">Скачать:</span> <a href="https://tools.hmm35.ru/soft/h3maped%20IDA%20database%20by%20GrayFace.rar" target="_blank">База <span style="font-weight: bold;">Редактора карт</span></a><br />
<span style="font-weight: bold;">Скачать:</span> <a href="https://yadi.sk/i/EYRqu8_eFfqoIg" target="_blank"><span style="font-weight: bold;">OB:C</span> (by Миханик)</a><br />
<br />
<span style="color: green;">edit by <span style="font-weight: bold;">igrik</span> (14.03.2020)</span>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Решение багов ERA/WOG]]></title>
			<link>http://wforum.heroes35.net/showthread.php?tid=5244</link>
			<pubDate>Wed, 21 Sep 2011 17:09:24 +0000</pubDate>
			<guid isPermaLink="false">http://wforum.heroes35.net/showthread.php?tid=5244</guid>
			<description><![CDATA[Данная тема предназначена только для выкладывания кода лечения багов (непосредственно касающихся Вога или Эры) на программном уровне, для того чтобы <span style="font-weight: bold;">Berserker</span> мог их включать в состав era.dll<br />
Любые сообщения, не содержащие указание бага совместно с его решением на Ассамблере, Delphi или С++ будут безжалостно уничтожаться.<br />
<br />
<br />
Я буду данные фиксы включать в плагин <a href="https://github.com/igrikRS/HoMM3-Plugins/raw/master/game%20bug%20fixes/Release/game%20bug%20fixes%20extended.dll" target="_blank"><span style="font-weight: bold;">game bug fixes extended.dll</span></a><br />
Исходник можно увидеть тут: <a href="https://github.com/igrikRS/HoMM3-Plugins/tree/master/game%20bug%20fixes/game%20bug%20fixes/src" target="_blank"><span style="font-weight: bold;">github.com</span></a><br />
<div class="notranslate"><div class="spoiler_header"> Список фиксов <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1&#93;.style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1&#93;.style.display='none';this.innerHTML='(Click to View)';}else {parentNode.parentNode.getElementsByTagName('div')[1&#93;.style.display='block';this.innerHTML='(Click to Hide)';}">(Click to View)</a></div><div class="spoiler_body" style="display: none; border: 1px dotted #0F5C8E;">[+&#93; работающая кнопка Отмена в Арене<br />
[+&#93; кнопка Отмена у Хижины ведьм<br />
[+&#93; кнопка отмены у ученого, предлагающего втор.навык<br />
[+&#93; фикс некоторых операций со стеками<br />
[+&#93; исправление бага посещения банков в которых дают существ (вылет в диалоге присоедиенния монстров)<br />
[+&#93; исправление некоторых багов ИИ: хождение по воде (без заклинания) и возможность колдовать заклы выше 1-го уровня на проклятой земле<br />
[+&#93; фикс урона стрелковых башен при Доспехах и заклинании "Воздушный щит"<br />
[+&#93; исправление перепутаных бонусов атаки и защиты в спецстроениях Крепости<br />
[+&#93; исправление бага заклинания Землетрясение, когда оно могло убить верхний стек защитника<br />
[+&#93; центрирование изображения по ПКМ в городе на иконке найма войск (ранее уходило сильно влево)<br />
[+&#93; исправление координат кнопки Сказочных Драконов<br />
[+&#93; исправление ошибки ERM в командре IF:N1, теперь командра работает со всеми локальными, глобальными и отрицательными переменными z, а не только с z1<br />
[+&#93; исправление неправильных иконок специализаций героев Инферно (Ксерафакс и Ксерон)<br />
[+&#93; исправление некоторых кнопок в таверне, в окне разделения отряда, в диалоге преобразователя скелетов <br />
[+&#93; правильное смещение портрета героя в диалоге повышения уровня героя <br />
[+&#93; исправление отключения тени курсора при автобитве<br />
[+&#93; фикс вылета в быстрой битве: проверка скорости монстра на 0<br />
[+&#93; фикс вылета в быстрой битве: при касте заклинания Воскрешение и Поднятие Мертвецов<br />
[+&#93; фикс вылета при удалении препятствия в битве<br />
[+&#93; отключение показа входа Двеллинга 8-го уровня существ, при его захвате ИИ <br />
[+&#93; ненависть существ теперь считается и на существ 8-го уровня<br />
[+&#93; бонусы специалистов героев теперь действуюи и существ 8-го уровня<br />
[+&#93; отключение псевдорасчета урона на существ с полётом и кавалерийским бонусом одновременно<br />
[+&#93; добавление динамического Fight_Value командира<br />
[+&#93; исправление бага блока командира, когда защита падала из-за флага "в защите"<br />
[+&#93; исправление бага блока существ (опыт монстров), когда игра падала в бесконечный цикл<br />
[+&#93; исправление критического бага Астрального духа<br />
[+&#93; полноценный хинт колдовства для описаний командиров и монстров с номером больше 134<br />
[+&#93; исправление бага палатки, когда на её ходу невозможно убежать или сделать другие действия<br />
[+&#93; критический вылет на ходу палатки<br />
[+&#93; возможность заходить в гильдию магов без наличия книги и денег у героя-гостя<br />
[+&#93; исправление бага с исчезновением стартового героя при переигрывании новой карты<br />
[+&#93; запрет стрельбы при отрицат.боезапасе<br />
[+&#93; решение бага (еще с SoD) исчезновения улучшенного стека при битве с даунгрейдом нейтралов<br />
[+&#93; фикс отлета гарпий, когда после удара они связаны корнями дендроидов<br />
[+&#93; не считать предварительный бонус урона от кавалерии при полете (он всё равно не работает)<br />
[+&#93; решение бага Вога, когда в бою накладывается опыт через EA:E и атака, защита, уроны, скорость, боезапасы и т.п. заново пересчитываются. Из-за этого терялись бонусы наложенных заклинаний (например бонус скорости от ускорения)<br />
[+&#93; фикс когда бонусы специалистов не считались существам 8-го уровня<br />
[+&#93; исправление созданий WoG'ом корявых пакованых координат<br />
[+&#93; корректировка WoG ненависти существ (добавление и существ 8-го уровня)<br />
[+&#93; вызовы драконов от артефакта сердце дракона, чтобы в банках существ не перекрывался стек №3<br />
[+&#93; фикс выбора типа атаки при битве ИИ vs человек (человек не мог выбрать тип атаки)<br />
[+&#93; решение проблемы отображения некоторых строк (в русской локализации) в диалоге опыта монстров.<br />
[+&#93; корректировка описаний заклинаний в книге (не учитывались бонусы специалистов по заклинаниям)<br />
[+&#93; фикс неотображения Монолитов и Подземных врат в диалоге заклинания Просмотр Земли и Воздуха<br />
[+&#93; фикс неправильного отображения величины урона в окне статуса битвы при касте заклинания Армагеддон<br />
[+&#93; решение бага ERM: триггер MA:U#/-2 приводил к тому, что любое существо при установке такой команды улучшалось в копейщика<br />
[+&#93; фикс расстановки клонов от заклинания Клон<br />
[+&#93; фикс расстановки клонов от опыта монстров<br />
[+&#93; отображение тени установки заклинания Силовое Поле<br />
[+&#93; рабочий запрет выдачи заклинаний у артефактов, если они запрещены через UN:J0/spell_id/1</div></div>]]></description>
			<content:encoded><![CDATA[Данная тема предназначена только для выкладывания кода лечения багов (непосредственно касающихся Вога или Эры) на программном уровне, для того чтобы <span style="font-weight: bold;">Berserker</span> мог их включать в состав era.dll<br />
Любые сообщения, не содержащие указание бага совместно с его решением на Ассамблере, Delphi или С++ будут безжалостно уничтожаться.<br />
<br />
<br />
Я буду данные фиксы включать в плагин <a href="https://github.com/igrikRS/HoMM3-Plugins/raw/master/game%20bug%20fixes/Release/game%20bug%20fixes%20extended.dll" target="_blank"><span style="font-weight: bold;">game bug fixes extended.dll</span></a><br />
Исходник можно увидеть тут: <a href="https://github.com/igrikRS/HoMM3-Plugins/tree/master/game%20bug%20fixes/game%20bug%20fixes/src" target="_blank"><span style="font-weight: bold;">github.com</span></a><br />
<div class="notranslate"><div class="spoiler_header"> Список фиксов <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Click to View)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Click to Hide)';}">(Click to View)</a></div><div class="spoiler_body" style="display: none; border: 1px dotted #0F5C8E;">[+] работающая кнопка Отмена в Арене<br />
[+] кнопка Отмена у Хижины ведьм<br />
[+] кнопка отмены у ученого, предлагающего втор.навык<br />
[+] фикс некоторых операций со стеками<br />
[+] исправление бага посещения банков в которых дают существ (вылет в диалоге присоедиенния монстров)<br />
[+] исправление некоторых багов ИИ: хождение по воде (без заклинания) и возможность колдовать заклы выше 1-го уровня на проклятой земле<br />
[+] фикс урона стрелковых башен при Доспехах и заклинании "Воздушный щит"<br />
[+] исправление перепутаных бонусов атаки и защиты в спецстроениях Крепости<br />
[+] исправление бага заклинания Землетрясение, когда оно могло убить верхний стек защитника<br />
[+] центрирование изображения по ПКМ в городе на иконке найма войск (ранее уходило сильно влево)<br />
[+] исправление координат кнопки Сказочных Драконов<br />
[+] исправление ошибки ERM в командре IF:N1, теперь командра работает со всеми локальными, глобальными и отрицательными переменными z, а не только с z1<br />
[+] исправление неправильных иконок специализаций героев Инферно (Ксерафакс и Ксерон)<br />
[+] исправление некоторых кнопок в таверне, в окне разделения отряда, в диалоге преобразователя скелетов <br />
[+] правильное смещение портрета героя в диалоге повышения уровня героя <br />
[+] исправление отключения тени курсора при автобитве<br />
[+] фикс вылета в быстрой битве: проверка скорости монстра на 0<br />
[+] фикс вылета в быстрой битве: при касте заклинания Воскрешение и Поднятие Мертвецов<br />
[+] фикс вылета при удалении препятствия в битве<br />
[+] отключение показа входа Двеллинга 8-го уровня существ, при его захвате ИИ <br />
[+] ненависть существ теперь считается и на существ 8-го уровня<br />
[+] бонусы специалистов героев теперь действуюи и существ 8-го уровня<br />
[+] отключение псевдорасчета урона на существ с полётом и кавалерийским бонусом одновременно<br />
[+] добавление динамического Fight_Value командира<br />
[+] исправление бага блока командира, когда защита падала из-за флага "в защите"<br />
[+] исправление бага блока существ (опыт монстров), когда игра падала в бесконечный цикл<br />
[+] исправление критического бага Астрального духа<br />
[+] полноценный хинт колдовства для описаний командиров и монстров с номером больше 134<br />
[+] исправление бага палатки, когда на её ходу невозможно убежать или сделать другие действия<br />
[+] критический вылет на ходу палатки<br />
[+] возможность заходить в гильдию магов без наличия книги и денег у героя-гостя<br />
[+] исправление бага с исчезновением стартового героя при переигрывании новой карты<br />
[+] запрет стрельбы при отрицат.боезапасе<br />
[+] решение бага (еще с SoD) исчезновения улучшенного стека при битве с даунгрейдом нейтралов<br />
[+] фикс отлета гарпий, когда после удара они связаны корнями дендроидов<br />
[+] не считать предварительный бонус урона от кавалерии при полете (он всё равно не работает)<br />
[+] решение бага Вога, когда в бою накладывается опыт через EA:E и атака, защита, уроны, скорость, боезапасы и т.п. заново пересчитываются. Из-за этого терялись бонусы наложенных заклинаний (например бонус скорости от ускорения)<br />
[+] фикс когда бонусы специалистов не считались существам 8-го уровня<br />
[+] исправление созданий WoG'ом корявых пакованых координат<br />
[+] корректировка WoG ненависти существ (добавление и существ 8-го уровня)<br />
[+] вызовы драконов от артефакта сердце дракона, чтобы в банках существ не перекрывался стек №3<br />
[+] фикс выбора типа атаки при битве ИИ vs человек (человек не мог выбрать тип атаки)<br />
[+] решение проблемы отображения некоторых строк (в русской локализации) в диалоге опыта монстров.<br />
[+] корректировка описаний заклинаний в книге (не учитывались бонусы специалистов по заклинаниям)<br />
[+] фикс неотображения Монолитов и Подземных врат в диалоге заклинания Просмотр Земли и Воздуха<br />
[+] фикс неправильного отображения величины урона в окне статуса битвы при касте заклинания Армагеддон<br />
[+] решение бага ERM: триггер MA:U#/-2 приводил к тому, что любое существо при установке такой команды улучшалось в копейщика<br />
[+] фикс расстановки клонов от заклинания Клон<br />
[+] фикс расстановки клонов от опыта монстров<br />
[+] отображение тени установки заклинания Силовое Поле<br />
[+] рабочий запрет выдачи заклинаний у артефактов, если они запрещены через UN:J0/spell_id/1</div></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Исследование героев]]></title>
			<link>http://wforum.heroes35.net/showthread.php?tid=862</link>
			<pubDate>Tue, 27 Oct 2009 16:49:48 +0000</pubDate>
			<guid isPermaLink="false">http://wforum.heroes35.net/showthread.php?tid=862</guid>
			<description><![CDATA[<a href="http://wog.nxt.ru/diakon/tutorial_1.html" target="_blank">http://wog.nxt.ru/diakon/tutorial_1.html</a><br />
<br />
Задаем вопросы.]]></description>
			<content:encoded><![CDATA[<a href="http://wog.nxt.ru/diakon/tutorial_1.html" target="_blank">http://wog.nxt.ru/diakon/tutorial_1.html</a><br />
<br />
Задаем вопросы.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Методика расчёта значений Fight/AI Value существ]]></title>
			<link>http://wforum.heroes35.net/showthread.php?tid=4474</link>
			<pubDate>Wed, 09 Sep 2009 12:19:48 +0000</pubDate>
			<guid isPermaLink="false">http://wforum.heroes35.net/showthread.php?tid=4474</guid>
			<description><![CDATA[По какому алгоритму рассчитывают Ai Value и Fight Value?<br />
P.S. Убил бы того, кто дал этим характеристикам такие невнятные, подменяющие друг друга названия. Постоянно забываю, что есть что. Можете напомнить ещё раз.]]></description>
			<content:encoded><![CDATA[По какому алгоритму рассчитывают Ai Value и Fight Value?<br />
P.S. Убил бы того, кто дал этим характеристикам такие невнятные, подменяющие друг друга названия. Постоянно забываю, что есть что. Можете напомнить ещё раз.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[SndVid 2B]]></title>
			<link>http://wforum.heroes35.net/showthread.php?tid=804</link>
			<pubDate>Fri, 31 Jul 2009 13:42:15 +0000</pubDate>
			<guid isPermaLink="false">http://wforum.heroes35.net/showthread.php?tid=804</guid>
			<description><![CDATA[<span style="font-weight: bold;">Название</span>: <span style="color: Red;">SndVid</span><br />
<span style="font-weight: bold;">Версия</span>: 1.0 альфа билд 001 от 31.07.09<br />
<span style="font-weight: bold;">Размер</span> (архив/распак.): 44.3 КБ / 98 КБ<br />
<span style="font-weight: bold;">Ссылки</span>: <a href="http://dump.ru/file/3147486" target="_blank">dump.ru</a><br />
<br />
<span style="font-weight: bold;">Описание</span>:<br />
Первоначальный запрос - утилита для импорта файлов в snd-архив. Конечная цель - полноценная работа (импорт, экспорт, создание, удаление) с обоими типами архивов. Для просмотра помощи по командам нужно запустить утилиту без параметров.<br />
<br />
<span style="font-weight: bold;">Рабочие команды</span>:<br />
info - содержимое архива<br />
packfile* - импорт одного файла<br />
packfiles* - импорт списка файлов из тхт-документа<br />
packall** - импорт всех файлов из директории и её поддиректорий (рекурсивно)<br />
<br />
* На данный момент файл именно импортируется, а не заменяется. Будет исправлено в следующем билде.<br />
** Первоначальная идея - создание нового архива из файлов в указанной папке. Скорее всего так и будет, либо будет добавлена ещё одна команда.<br />
<br />
<span style="font-weight: bold;">Планируемые улучшения (кроме реализации команд)</span>:<br />
-) Возможность создания архива с нуля (команда: "new")<br />
-) Удаление файлов (команды "deletefile/s")<br />
-) Оболочка GUI для обычных пользователей через HTA с JavaScript/VBScript<br />
<br />
<span style="font-weight: bold;">Пример вызова</span>:<br />
<div class="codeblock">
<div class="title">Code:<br />
</div><div class="body" dir="ltr"><code>snd "D:&#92;Феникс&#92;Data&#92;Heroes3.snd" packfile D:&#92;Феникс&#92;Data&#92;SSS.wav</code></div></div>
<br />
<span style="font-weight: bold;">Тестирование</span>:<br />
Очень нужны добровольцы-тестеры, которые бы проверили корректность выполнения команд с разными параметрами. Нужно выявить места, где программа может падать, работать не стабильно или давать ошибочные результаты.]]></description>
			<content:encoded><![CDATA[<span style="font-weight: bold;">Название</span>: <span style="color: Red;">SndVid</span><br />
<span style="font-weight: bold;">Версия</span>: 1.0 альфа билд 001 от 31.07.09<br />
<span style="font-weight: bold;">Размер</span> (архив/распак.): 44.3 КБ / 98 КБ<br />
<span style="font-weight: bold;">Ссылки</span>: <a href="http://dump.ru/file/3147486" target="_blank">dump.ru</a><br />
<br />
<span style="font-weight: bold;">Описание</span>:<br />
Первоначальный запрос - утилита для импорта файлов в snd-архив. Конечная цель - полноценная работа (импорт, экспорт, создание, удаление) с обоими типами архивов. Для просмотра помощи по командам нужно запустить утилиту без параметров.<br />
<br />
<span style="font-weight: bold;">Рабочие команды</span>:<br />
info - содержимое архива<br />
packfile* - импорт одного файла<br />
packfiles* - импорт списка файлов из тхт-документа<br />
packall** - импорт всех файлов из директории и её поддиректорий (рекурсивно)<br />
<br />
* На данный момент файл именно импортируется, а не заменяется. Будет исправлено в следующем билде.<br />
** Первоначальная идея - создание нового архива из файлов в указанной папке. Скорее всего так и будет, либо будет добавлена ещё одна команда.<br />
<br />
<span style="font-weight: bold;">Планируемые улучшения (кроме реализации команд)</span>:<br />
-) Возможность создания архива с нуля (команда: "new")<br />
-) Удаление файлов (команды "deletefile/s")<br />
-) Оболочка GUI для обычных пользователей через HTA с JavaScript/VBScript<br />
<br />
<span style="font-weight: bold;">Пример вызова</span>:<br />
<div class="codeblock">
<div class="title">Code:<br />
</div><div class="body" dir="ltr"><code>snd "D:&#92;Феникс&#92;Data&#92;Heroes3.snd" packfile D:&#92;Феникс&#92;Data&#92;SSS.wav</code></div></div>
<br />
<span style="font-weight: bold;">Тестирование</span>:<br />
Очень нужны добровольцы-тестеры, которые бы проверили корректность выполнения команд с разными параметрами. Нужно выявить места, где программа может падать, работать не стабильно или давать ошибочные результаты.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Общая тема по NOT USED монстрам]]></title>
			<link>http://wforum.heroes35.net/showthread.php?tid=5789</link>
			<pubDate>Fri, 08 May 2009 15:52:27 +0000</pubDate>
			<guid isPermaLink="false">http://wforum.heroes35.net/showthread.php?tid=5789</guid>
			<description><![CDATA[Возможно, некоторые будут удивлены, но для данной операции не нужно UN:C, ЭРА, изменений в exe и прочей головной боли. Использовать NOT USED-ов может практически любой человек, малость понимающий в ресурсах.<br />
Итак, что нам нужно (Прим. # - 1 для 122, 2 для 124, 3 для 126, 4 для 128).<br />
<span style="font-weight: bold;">1)</span> BAD# - деф без расширения для анимации монстра в битве. Кладётся в h3sprite.lod или h3custom.lod. Портировать лучше всего SimpleLod-ом от Сергея – wog-архивы могут давать ошибки, а ResEdit вообще на такое не способен.<br />
<span style="font-weight: bold;">2)</span> Файл X.def для карты – для прописки монстра в объектных текстовиках (X – произвольное имя). Редактируются файлы ZEOBJTS.txt и ZOBJCTS.txt.<br />
<span style="font-weight: bold;">3)</span> BAD#ATTK.82M, BAD#DFND.82M, BAD#KILL.82M, BAD#MOVE.82M, BAD#WNCE.82M. – файлы озвучки. Если у вас в распоряжении wav-звуки – сменить им расширение на 82M.<br />
<span style="font-weight: bold;">4)</span> Портреты монстров для TWCRPORT.def и CPRSMALL.def.<br />
<span style="font-weight: bold;">5)</span> Портреты монстров для AVWATTAK.def. Файл используется для отображения монстров, на которых нападают. В принципе, не особо обязательно его изменение, но если вы не хотите, чтобы в момент нападения монстр на карте отображался как копейщик – конечно, измените.<br />
<span style="font-weight: bold;">6)</span> Заполнить колонки NOT USED-а в ZCRTRAIT.TXT (имя, характеристики, описание).<br />
<span style="font-weight: bold;">7)</span> Если вы играете с опытом – заполнить колонки CREXPMOD.TXT и CREXPBON.TXT. При этом лучше разбить первую колонку в CREXPBON.TXT (-8 – для всех монстров) на семь аналогичных (-1, -2 и т.д. до -7). Связано это с тем, что новый монстр получается безуровневым, а строка «Здоровье» у него есть, но смещена куда-то в хвост абилок, а остальные способности выглядят как незаданные. Впрочем, абилки куда проще задать скриптом.<br />
После этого вы можете пользоваться новыми монстрами. Какими-то особенными свойствами (вроде трёхглавой атаки Цербера или колдовства случайного закла у Мастер-Джинна) они обладать, конечно, не будут, но с помощью различных боевых менеджеров (ERM) можно добиться уникальности юнита. Уровень также можно задать скриптом.<br />
<br />
Команды ERM, применимые для NOT-USEDов - ВСЕ.<br />
<br />
Отдельно:<br />
<span style="font-weight: bold;">a)</span> для подсказки при наведении мыши в редакторе карт нужно скопировать строку NOT-USEDa из ZCRTRAIT.TXT в CRTRAIT0.txt (при этом описание монстра в справке не будет!).<br />
<span style="font-weight: bold;">b)</span> Для того, чтобы герою в редакторе карт можно было поставить в слот нового монстра, надо добавить строку в колонку Standard monsters в Monsters.txt (Data\MapEdPatch).<br />
<span style="font-weight: bold;">c)</span> Если у вашего юнита есть анимация стрелка и вы хотите, чтобы он стрелял – сделайте PBASIL.def с изображением снаряда и загрузить в лод, а также создайте озвучку стрельбы – BAD#SHOT.82M. Количество патронов задаётся в ZCRTRAIT.TXT или скриптом.<br />
<br />
Всё, что здесь написал, выяснил сам, ни с кем не советуясь. Поэтому жду поправок и добавлений от участников форума.<br />
<br />
<span style="font-weight: bold;">С н/п, Master Of Puppets.</span>]]></description>
			<content:encoded><![CDATA[Возможно, некоторые будут удивлены, но для данной операции не нужно UN:C, ЭРА, изменений в exe и прочей головной боли. Использовать NOT USED-ов может практически любой человек, малость понимающий в ресурсах.<br />
Итак, что нам нужно (Прим. # - 1 для 122, 2 для 124, 3 для 126, 4 для 128).<br />
<span style="font-weight: bold;">1)</span> BAD# - деф без расширения для анимации монстра в битве. Кладётся в h3sprite.lod или h3custom.lod. Портировать лучше всего SimpleLod-ом от Сергея – wog-архивы могут давать ошибки, а ResEdit вообще на такое не способен.<br />
<span style="font-weight: bold;">2)</span> Файл X.def для карты – для прописки монстра в объектных текстовиках (X – произвольное имя). Редактируются файлы ZEOBJTS.txt и ZOBJCTS.txt.<br />
<span style="font-weight: bold;">3)</span> BAD#ATTK.82M, BAD#DFND.82M, BAD#KILL.82M, BAD#MOVE.82M, BAD#WNCE.82M. – файлы озвучки. Если у вас в распоряжении wav-звуки – сменить им расширение на 82M.<br />
<span style="font-weight: bold;">4)</span> Портреты монстров для TWCRPORT.def и CPRSMALL.def.<br />
<span style="font-weight: bold;">5)</span> Портреты монстров для AVWATTAK.def. Файл используется для отображения монстров, на которых нападают. В принципе, не особо обязательно его изменение, но если вы не хотите, чтобы в момент нападения монстр на карте отображался как копейщик – конечно, измените.<br />
<span style="font-weight: bold;">6)</span> Заполнить колонки NOT USED-а в ZCRTRAIT.TXT (имя, характеристики, описание).<br />
<span style="font-weight: bold;">7)</span> Если вы играете с опытом – заполнить колонки CREXPMOD.TXT и CREXPBON.TXT. При этом лучше разбить первую колонку в CREXPBON.TXT (-8 – для всех монстров) на семь аналогичных (-1, -2 и т.д. до -7). Связано это с тем, что новый монстр получается безуровневым, а строка «Здоровье» у него есть, но смещена куда-то в хвост абилок, а остальные способности выглядят как незаданные. Впрочем, абилки куда проще задать скриптом.<br />
После этого вы можете пользоваться новыми монстрами. Какими-то особенными свойствами (вроде трёхглавой атаки Цербера или колдовства случайного закла у Мастер-Джинна) они обладать, конечно, не будут, но с помощью различных боевых менеджеров (ERM) можно добиться уникальности юнита. Уровень также можно задать скриптом.<br />
<br />
Команды ERM, применимые для NOT-USEDов - ВСЕ.<br />
<br />
Отдельно:<br />
<span style="font-weight: bold;">a)</span> для подсказки при наведении мыши в редакторе карт нужно скопировать строку NOT-USEDa из ZCRTRAIT.TXT в CRTRAIT0.txt (при этом описание монстра в справке не будет!).<br />
<span style="font-weight: bold;">b)</span> Для того, чтобы герою в редакторе карт можно было поставить в слот нового монстра, надо добавить строку в колонку Standard monsters в Monsters.txt (Data\MapEdPatch).<br />
<span style="font-weight: bold;">c)</span> Если у вашего юнита есть анимация стрелка и вы хотите, чтобы он стрелял – сделайте PBASIL.def с изображением снаряда и загрузить в лод, а также создайте озвучку стрельбы – BAD#SHOT.82M. Количество патронов задаётся в ZCRTRAIT.TXT или скриптом.<br />
<br />
Всё, что здесь написал, выяснил сам, ни с кем не советуясь. Поэтому жду поправок и добавлений от участников форума.<br />
<br />
<span style="font-weight: bold;">С н/п, Master Of Puppets.</span>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Софт для Heroes]]></title>
			<link>http://wforum.heroes35.net/showthread.php?tid=644</link>
			<pubDate>Thu, 19 Mar 2009 14:00:12 +0000</pubDate>
			<guid isPermaLink="false">http://wforum.heroes35.net/showthread.php?tid=644</guid>
			<description><![CDATA[<span style="font-weight: bold;">Название</span>: <span style="color: Red;">Heroes Run 2B v1.0</span><br />
<span style="font-weight: bold;">Размер</span>: 0.5 МБ<br />
Ссылка: <a href="http://www.multiupload.com/47PCNMDWDX" target="_blank">Скачать</a><br />
<span style="font-weight: bold;">Описание</span>:<br />
Необходимо иметь два ехе: h3te.exe(Феникс, ТЕ) и h3wog.exe (ВоГ) и три папки: Data (Феникс), Data_TE (ТЕ), Data_WoG (ВоГ).]]></description>
			<content:encoded><![CDATA[<span style="font-weight: bold;">Название</span>: <span style="color: Red;">Heroes Run 2B v1.0</span><br />
<span style="font-weight: bold;">Размер</span>: 0.5 МБ<br />
Ссылка: <a href="http://www.multiupload.com/47PCNMDWDX" target="_blank">Скачать</a><br />
<span style="font-weight: bold;">Описание</span>:<br />
Необходимо иметь два ехе: h3te.exe(Феникс, ТЕ) и h3wog.exe (ВоГ) и три папки: Data (Феникс), Data_TE (ТЕ), Data_WoG (ВоГ).]]></content:encoded>
		</item>
	</channel>
</rss>