Объявления
Поздравляем
Roman2211


Друзья, если не получается зарегистрироваться, напишите на почту vdv_forever@bk.ru.
Я оторву свою задницу от всех дел и обязательно Вас активирую! :smile10:
Добро пожаловать на геройский форум! :smile25:

Как создать плагин для HD мода

Герои Меча и Магии III: Возрождение Эрафии, Герои Меча и Магии III Дыхание Смерти, Герои Меча и Магии III Клинок Армагеддона, Герои Меча и Магии III Хроники Героев
offlineRolex  
имя: Alex
Ветеран
Ветеран
 
Сообщения: 898
Зарегистрирован: 22 сен 2020, 18:58
Откуда: УКРАИНА
Пол: Мужчина
Поблагодарили: 53 раз.

Re: Как создать плагин для HD мода

Сообщение Rolex » 02 ноя 2021, 14:48

Изображение

Изображение

Изображение

Навозился я с этими картинками. Но, вроде, все, что нужно было - переделал. Для книги заклинаний не тронутыми остались только Sprite, Disease, Drain Life, Incineration, остальные переделал - улучшил/увеличил (Behemoth's Claws и Explosion исправил). Постарался чтобы по размеру соответствовали оригинальным.

Также переделал часть картинок для Гильдии и часть картинок, которые отображаются при наложении заклинания. Плюс сделал маленькую картинку для FireBird. В общем в архиве только те картинки, которые переделывались и которые нужно заменить. Тех картинок, которых нет в этом архиве, оставляем те, что были до этого.

Все картинки одного типа сделал одинакового размера, как в оригинале.

Анимации для Behemoth's Claws и Toughness переделал. Теперь они не вращаются, у каждого своя анимация. Behemoth's Claws - бьет и колет, а Toughness - качается.
Также пересобрал Sp03-.def в режиме заклинания, ибо изнчально я ее случайно создал в режиме монстра (там тень добавилась).

Кстати, наши оригинальные wav идут в формате WAV PCM с частотой дискретизации 44100 Гц в Стерео с разрядностью в 16 бит. То есть несжатый 16-битный PCM wav.

Оригинальные же звуки используют библиотеку libsndfile (написанную на C), которая поддерживает множество форматов аудиофайлов включая wav.

Звуки в игре идут с частотой дискретизации 22050 Гц в Моно также с разрядностью в 16 бит. Но вот кодируются все звуки в игре с помощью 4-битного аудиокодека IMA ADPCM (Adaptive differential pulse-code modulation), который часто использовали в конце 90-х.

Понизив частоту дискретизации до 22050 Гц и битрейт упал в 2 раза с 1411 Кбит/с до 705 Кбит/с. Перевел звук в Моно и еще в 2 раза понизился битрейт уже до 352 Кбит/с. А вот чтобы опустить его до уровня оригинальных звуковых файлов в 88 Кбит/с пришлось уже использовать аудиокодек IMA 4-бита ADPCM.


AlexSpl писал(а):

Звуки нужны также и для других новых заклинаний: Eye of the Magi (сейчас я использую звук Forgetfulness), Toughness и Behemoth's Claws.

Свои мы не сделаем, а что-то найти подходящее сложно. Можно, конечно, глянуть еще звуки в Героях 4-7. Ну, это вам задача. Я же думаю, что нам можно обойтись и теми, что есть в snd в третьих Героях. Там достаточно подходящих.

AlexSpl писал(а):

Если будут реально классные картинки, звук и def'ы, а также интересные идеи, думаю, добавлю ещё 4 заклинания (добьём до 20). Новые заклы по-разному воспринимают. Есть мнение, что заклинания OP (как минимум Fear и Drain Life), а остальные "не добавляют ничего нового". Что ж, я как автор кода, умываю руки :smile1: Идеи все Rolex'а, его и пинайте. Крэг Хак не даст соврать: я пытался предложить годноту :smile2:

Конечно, по-разному. Все люди разные. Как бы мы не сделали, критика будет всегда. Всем не угодишь. Именно поэтому кому-то больше нравится WoG/ERA, MoP, а кому-то - HotA. Но, по-моему, последних будет побольше. Хотя и первых немало.

Если бы мы сделали что-то не в духе третьих Героев, как вы предлагали Disease с зараженим или по ударным урон + эффект. Вроде как и оригинально, но это не про третьих Героев, это какие-то "Новые горизонты". И как на это отреагирует большинство - неизвестно. Критики могло бы быть и в разы больше. Третьи Герои уже давно стали неким образцом на который все равняются.

Да, у нас большинство заклов из абилок. Но в оригинале многие абилки дублируются в виде отдельных заклинаний, например: Слепота, Жажда крови, Проклятие, Удар молнии, Огненный щит, Диспел. Так что, я считаю, что это хорошая идея перенести и другие абилки в заклы. Все это идеи разрабочиков, которые мы сделали в виде отдельных заклинаний. Раньше же это были исключительно абилки. Toughness, наверное, будет самым оригинальным.

Осталось сделать/исправить:

1) Death Blow и Behemoth's Claws для лучников нужно сделать, чтобы они работали в точности как сейчас работает Drain Life. То есть наложить мы на них эти заклы мы должны иметь возможность всегда, но вот срабатывать они будут только тогда, когда лучники заблокированы (или без стрел), то есть в ближнем бою.

2) Поправить английское описание - добавить параметры заклинаний. Игрок должен знать на сколько снижается или повышается здоровье его отряда, атака, скорость и тп.

3) Сделать русское описание с параметрами заклинаний.

4) Повыносить описания в отдельные языковые ini, а в нашем основном ini добавить вверху самой первой секцию:

Код: Выделить всё
[Language]
<NewSpellsLanguage> = "#ru.ini" ("#en.ini")


Описания на разных языках будем хранить в отдельных языковых ini: #ru.ini и #en.ini (с кодировкой 1251), которые будут находится в папке Lang, которая будет находится в папке плагина вместе с dll и основным ini с настройками.

Мы поддерживаем только рус и англ языки. Перевод на другие языки игрок/моддер, если ему нужен другой язык, будет делать самостоятельно. Там только создать ini с переводом на своем языке, закинуть его в Lang и в основном нашем ini с настройками просто его подключить в секции Language.

5) Сделать так, что если игрок случайно удалит NewSpells.ini из папки плагина, то чтобы при запуске игры в папке плагина рядом с dll создавался новый NewSpells.ini с дефолтными настройками, которые были изначально.

6) Научить AI использовать Mobility, хоть как-то, хоть иногда в самые подходящие для этого моменты (например, не хвататет 300 MP чтобы осадить город).

7) Для Death Blow сделать следующие проценты по умолчанию 40%/50%/60% (вместо 20%/40%/60%). Уже обсуждали почему.

8) Для Toughness поставить звук SYSMSG.wav, для Behemoth's Claws - CNTRSTRK.wav, для Eye of the Magi - MIRRORIM.wav (или BUILDTWN.wav / FORTUNE.wav / PROTECTA.wav, что больше понравится).

9) Переименовать Age на Aging (правильно Старение, а не Возраст (в ресурсах сокращение)), а Eye of the Magi на Sight или Gaze (4 слова в названии не очень хорошо).

10) Добавить сообщение при открытии окна сейвов (Загрузить - Одиночная/Сетевая) о том, что оригинальные сейвы игры будут скрыты во избежание ошибок, так как подключен плагин NewSpells, который не совместим с оригинальными сейвами и имеет свое собственно расширение. Что-то в этом роде. Текст сообщения можно также вынести в языковые ini. А можно в качестве исключения оставить в коде.

11) Разобраться с lod и snd. С этим, я так понял, Вы уже разобрались.

Тогда в lod идет 7 файлов:
Claws.def
Toughness.def
DeathBlow.def
Sp03-.def
SpellInt.def
spells.def
SpellScr.def

А в snd идет 3 файла:
FearRoE.wav
Explosion.wav
Incineration.wav

NewSpells_Images_Animations_Sounds_Fixed.zip
Архив с исправленными картинками и анимациями, а также пережатыми звуками:
(207.95 КБ) Скачиваний: 147
Вернуться к началу

offlineАватара пользователя
AlexSpl  
имя: Александр
Эксперт
Эксперт
 
Сообщения: 5587
Зарегистрирован: 17 сен 2010, 12:58
Пол: Мужчина
Награды: 14
Высшая медаль (1) Победителю турнира по HMM1_TE (2) Победителю этапа по HMM1 (1) Победителю этапа по HMM2 (1) Лучшему из лучших (1) 2 место 1 этапа по HMM1 (1)
3 место 1 этапа по HMM1 (1) 1 место 2 этапа по HMM2 (1) Победителю турнира по KB (2) Победителю турнира по KB (1) Грандмастер оффлайн-турниров (1) Боевой шлем (1)
Поблагодарили: 2185 раз.

Re: Как создать плагин для HD мода

Сообщение AlexSpl » 02 ноя 2021, 18:35

Сделал большинство пунктов, кроме двуязычного ini (пока нет времени/желания переводить на русский).

NewSpells.zip
(680.55 КБ) Скачиваний: 201

Обязательно удалите все старые ресурсы плагина из папки _H3_Data\Common.
Вернуться к началу

offlineАватара пользователя
AlexSpl  
имя: Александр
Эксперт
Эксперт
 
Сообщения: 5587
Зарегистрирован: 17 сен 2010, 12:58
Пол: Мужчина
Награды: 14
Высшая медаль (1) Победителю турнира по HMM1_TE (2) Победителю этапа по HMM1 (1) Победителю этапа по HMM2 (1) Лучшему из лучших (1) 2 место 1 этапа по HMM1 (1)
3 место 1 этапа по HMM1 (1) 1 место 2 этапа по HMM2 (1) Победителю турнира по KB (2) Победителю турнира по KB (1) Грандмастер оффлайн-турниров (1) Боевой шлем (1)
Поблагодарили: 2185 раз.

Re: Как создать плагин для HD мода

Сообщение AlexSpl » 02 ноя 2021, 22:15

Подсказку об уроне под Behemoth's Claws нужно поправить. В оригинале для Чудищ правильный урон показывается, т.к. абилка не имеет вероятностного характера. Значит, и в плагине должен потенциальный урон считаться. Не считает из-за ограничений на стрелковую атаку:

Код: Выделить всё
if (enemy->active_spell_duration[SPL_BEHEMOTHS_CLAWS] && pCombatManager->GetAction() == 6)
         defenseMod = o_Spell[SPL_BEHEMOTHS_CLAWS].effect[behemothsClawsSpell[enemy->side][enemy->index_on_side].expertise] / 100.0;

Естественно, при наведении курсора Action = 0 и модификатор защиты не применяется.

* * *
Поправил подсказку для заклинания Behemoth's Claws и стоимость заклинания Eye of the Magi.

NewSpells.zip
(680.1 КБ) Скачиваний: 236
Вернуться к началу

offlineАватара пользователя
void_17  
имя: имя
Ветеран
Ветеран
 
Сообщения: 548
Зарегистрирован: 25 апр 2021, 15:05
Откуда: Оттуда
Пол: Мужчина
Поблагодарили: 132 раз.

Re: Как создать плагин для HD мода

Сообщение void_17 » 03 ноя 2021, 12:17

"Как заставить реверсеров страдать? Используйте как можно больше инлайн функций в своем коде, а также используйте STL." (С) Сотона
Вернуться к началу

offlineАватара пользователя
AlexSpl  
имя: Александр
Эксперт
Эксперт
 
Сообщения: 5587
Зарегистрирован: 17 сен 2010, 12:58
Пол: Мужчина
Награды: 14
Высшая медаль (1) Победителю турнира по HMM1_TE (2) Победителю этапа по HMM1 (1) Победителю этапа по HMM2 (1) Лучшему из лучших (1) 2 место 1 этапа по HMM1 (1)
3 место 1 этапа по HMM1 (1) 1 место 2 этапа по HMM2 (1) Победителю турнира по KB (2) Победителю турнира по KB (1) Грандмастер оффлайн-турниров (1) Боевой шлем (1)
Поблагодарили: 2185 раз.

Re: Как создать плагин для HD мода

Сообщение AlexSpl » 03 ноя 2021, 12:43

Цитата:
Автор: liziwen
Имя: PerspectiveEye
Описание: во время битвы красная команда может видеть количество монстров в дикой природе во время ожидания, но синяя команда не может видеть его во время ожидания. Это несправедливо. Этот плагин решает эту проблему.

liziwen, можете уточнить, какую именно проблему исправляет Ваш плагин? Я пробовал запускать сетевую игру, у меня с подсказками для монстров всё хорошо и для красной команды, и для синей.
Вернуться к началу

offlineАватара пользователя
AlexSpl  
имя: Александр
Эксперт
Эксперт
 
Сообщения: 5587
Зарегистрирован: 17 сен 2010, 12:58
Пол: Мужчина
Награды: 14
Высшая медаль (1) Победителю турнира по HMM1_TE (2) Победителю этапа по HMM1 (1) Победителю этапа по HMM2 (1) Лучшему из лучших (1) 2 место 1 этапа по HMM1 (1)
3 место 1 этапа по HMM1 (1) 1 место 2 этапа по HMM2 (1) Победителю турнира по KB (2) Победителю турнира по KB (1) Грандмастер оффлайн-турниров (1) Боевой шлем (1)
Поблагодарили: 2185 раз.

Re: Как создать плагин для HD мода

Сообщение AlexSpl » 03 ноя 2021, 15:44

Теперь по спорным пунктам.

Цитата:
2) Поправить английское описание - добавить параметры заклинаний. Игрок должен знать на сколько снижается или повышается здоровье его отряда, атака, скорость и тп.

В оригинале цифры указываются только для ударных заклинаний и Magic Mirror (для этого заклинания в описании указывается вероятность отражения). Поменяю описание Death Blow, тоже будут указаны шансы срабатывания. Для остальных заклинаний цифры, при желании, пропишет тот, кто будет распространять мод. Я придерживаюсь того, что описания в "оригинальном" моде должны быть максимально похожими на оригинальные.

Цитата:
3) Сделать русское описание с параметрами заклинаний.

Цитата:
4) Повыносить описания в отдельные языковые ini, а в нашем основном ini добавить вверху самой первой секцию:

Аналогично пункту 2. Перевод на родной язык делает тот, кто распространяет мод. Оригинальная версия Героев 3 одна, а "классических" переводов на русский - несколько. Поэтому пусть берут за основу перевод, к которому лежит душа :smile1:

Цитата:
5) Сделать так, что если игрок случайно удалит NewSpells.ini из папки плагина, то чтобы при запуске игры в папке плагина рядом с dll создавался новый NewSpells.ini с дефолтными настройками, которые были изначально.

Отсутствие ini легко заметить в игре. Скопируют, мы же не для дураков плагин делаем. Дураки не смогут его даже установить, вообще-то.

Цитата:
6) Научить AI использовать Mobility, хоть как-то, хоть иногда в самые подходящие для этого моменты (например, не хвататет 300 MP чтобы осадить город).

Это неплохо бы реализовать, но я сначала посмотрю, насколько это сложно в техническом плане.

Цитата:
9) Переименовать Age на Aging (правильно Старение, а не Возраст (в ресурсах сокращение)), а Eye of the Magi на Sight или Gaze (4 слова в названии не очень хорошо).

Здесь не согласен. Age (to age) - это ещё и глагол. Оригинальное название заклинания именно Age, и это не сокращение. Sight или Gaze - плохо, потому что не отражают сути заклинания, а Eye of the Magi - существующий объект на карте, изображение которого позаимствовано для заклинания. Поэтому пусть всё остаётся так, как есть.

Цитата:
10) Добавить сообщение при открытии окна сейвов (Загрузить - Одиночная/Сетевая) о том, что оригинальные сейвы игры будут скрыты во избежание ошибок, так как подключен плагин NewSpells, который не совместим с оригинальными сейвами и имеет свое собственно расширение. Что-то в этом роде. Текст сообщения можно также вынести в языковые ini. А можно в качестве исключения оставить в коде.

В итоге все будут ненавидеть это окно. Опять же, плагин не для дураков. Обратят внимание уж как-нибудь на то, что расширение сейва не GM1, а NGM1 :smile2:
Вернуться к началу

offlineRolex  
имя: Alex
Ветеран
Ветеран
 
Сообщения: 898
Зарегистрирован: 22 сен 2020, 18:58
Откуда: УКРАИНА
Пол: Мужчина
Поблагодарили: 53 раз.

Re: Как создать плагин для HD мода

Сообщение Rolex » 03 ноя 2021, 16:13

Цитата:
Аналогично пункту 2. Перевод на родной язык делает тот, кто распространяет мод. Оригинальная версия Героев 3 одна, а "классических" переводов на русский - несколько. Поэтому пусть берут за основу перевод, к которому лежит душа :smile1:

Ок. Я сам сделаю перевод на русский, ведь я его и буду распространять, только позже. Но это 3-й пункт, а суть 4-го пункта была в том, чтобы в основной ini добавить секцию Язык, где будет указываться файл языка, который будет использовать плагин. Подобно тому, как это происходит в SoD_SP или HD моде.

То есть в основном ini описаний быть не должно. Все описания должны быть в папке Lang. Вот этот бы функционал подгрузки описаний сделать бы, ну и Mobility, а остальное я как-нибудь сам исправлю.
Вернуться к началу

offlineАватара пользователя
AlexSpl  
имя: Александр
Эксперт
Эксперт
 
Сообщения: 5587
Зарегистрирован: 17 сен 2010, 12:58
Пол: Мужчина
Награды: 14
Высшая медаль (1) Победителю турнира по HMM1_TE (2) Победителю этапа по HMM1 (1) Победителю этапа по HMM2 (1) Лучшему из лучших (1) 2 место 1 этапа по HMM1 (1)
3 место 1 этапа по HMM1 (1) 1 место 2 этапа по HMM2 (1) Победителю турнира по KB (2) Победителю турнира по KB (1) Грандмастер оффлайн-турниров (1) Боевой шлем (1)
Поблагодарили: 2185 раз.

Re: Как создать плагин для HD мода

Сообщение AlexSpl » 03 ноя 2021, 16:20

Это можно, но я не вижу смысла. Обычный игрок не будет переключать язык, а тестер наверняка в курсе, как копировать файлы. Сделал два ini: NewSpells_EN.ini и NewSpells_RU.ini, переименовал в NewSpells.ini тот, с которым будешь играть. Более того, обычный игрок не должен лезть в ini вообще, даже чтобы там прописать язык. В играх выбор языка делают в настройках самой игры, куда я точно не полезу :smile1:

Т.е. это можно сделать, но реально мало смысла в этом, учитывая неуниверсальность: всего два языка. А как быть тем, кто решит играть на польском? Пропишет <Language> = PL? И какой, интересно, текстовик загрузит плагин, который понимает только EN и RU. Так что не нужно усложнять сверх необходимого.

Кстати, поляки больше всего интересуются нашим плагином. Так что решение сделать только английский и русский в этом свете представляется спорным. Почему не английский и польский? :smile2:
Вернуться к началу

offlineRolex  
имя: Alex
Ветеран
Ветеран
 
Сообщения: 898
Зарегистрирован: 22 сен 2020, 18:58
Откуда: УКРАИНА
Пол: Мужчина
Поблагодарили: 53 раз.

Re: Как создать плагин для HD мода

Сообщение Rolex » 03 ноя 2021, 16:27

Цитата:
Это можно, но я не вижу смысла. Обычный игрок не будет переключать язык

А я вижу. Это быстрей и гораздо удобней сменить en на ru в основном ini, чем копировать и переименовывать. В папке Lang будут также ini, но с описаниями заклов на соответствующем языке. Так что неплохо бы было это сделать для удобства. Да и игроки разные бывают.
Вернуться к началу

offlineАватара пользователя
AlexSpl  
имя: Александр
Эксперт
Эксперт
 
Сообщения: 5587
Зарегистрирован: 17 сен 2010, 12:58
Пол: Мужчина
Награды: 14
Высшая медаль (1) Победителю турнира по HMM1_TE (2) Победителю этапа по HMM1 (1) Победителю этапа по HMM2 (1) Лучшему из лучших (1) 2 место 1 этапа по HMM1 (1)
3 место 1 этапа по HMM1 (1) 1 место 2 этапа по HMM2 (1) Победителю турнира по KB (2) Победителю турнира по KB (1) Грандмастер оффлайн-турниров (1) Боевой шлем (1)
Поблагодарили: 2185 раз.

Re: Как создать плагин для HD мода

Сообщение AlexSpl » 03 ноя 2021, 16:33

Я согласен, что быстрей, но тогда нужно подумать над вариантом, как подхватывать текстовики с другими переводами? Вот в чём проблема. Можно, конечно, сделать так: загружать NewSpells_{Languge}.ini, где {Language} - строка указанная в Language.ini.

Типа NewSpells_English.ini, NewSpells_Русский.ini, NewSpells_Polski.ini и т.д.

Наверное, так и нужно сделать. Это не только с языками проблему решит, но и с параметрами спеллов. Т.е. указываешь в Settings.ini <Name> = Polski_Nerfed_Fear и подгружается Polski_Nerfed_Fear.ini (и язык заменили и параметры заклов). Вот это будет удобно.
Последний раз редактировалось AlexSpl 03 ноя 2021, 16:43, всего редактировалось 2 раз(а).
Вернуться к началу

Пред.След.

Вернуться в Общий раздел

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5