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


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

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

Герои Меча и Магии III: Возрождение Эрафии, Герои Меча и Магии III Дыхание Смерти, Герои Меча и Магии III Клинок Армагеддона, Герои Меча и Магии III Хроники Героев
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 » 16 окт 2021, 21:02

Я не знаю, с чем сравнить Death Blow. Но Drain Life я бы сравнивал c Ressurection. Мне кажется, сейчас очень высокие проценты. Оно 4-го уровня и не должно восстанавливать отряд круче, чем Ressurection, но как добиться хотя бы примерного равенства, если учесть, что Drain Life висит SP раундов и восстановление HP зависит от урона. Вот такие вопросы нужно задать о каждом новом заклинании.
Вернуться к началу

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

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

Сообщение Rolex » 16 окт 2021, 21:07

Ну, так у нас же закл 5-го уровня. Если понижать проценты, то тогда придется понимажть и уровень закла. А в таком случае он уже будет не так интересен игрокам. Все самые интересные заклы - это заклы 4-го и 5-го уровня.
Вернуться к началу

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 » 16 окт 2021, 21:10

Регенерацию или Вампиризм очень сложно отбалансировать. Это почти всегда имба либо бесполезное заклинание.
Вернуться к началу

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

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

Сообщение Rolex » 16 окт 2021, 21:13

А Регенерация мне и не нравится - бесполезное. В MoP добавили, но пользы от него, как от Палатки первой помощи.
Вернуться к началу

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

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

Сообщение Rolex » 17 окт 2021, 13:40

AlexSpl, нам срочно нужно приводить в порядок ini. Можно не делать двух версий, а сделать одну, но с нормальным ini. В том же HD mod или SoD_SP с ini комфортно и приятно работать, можно быстро найти и изменить значение нужного параметра. Наш же ini выглядит просто ужасно. Хотелось бы привести его в порядок. Сделать, например, вот так:

Пример на основе одного закла:
Код: Выделить всё
[Language]
<NewSpellsLanguage> = "#ru.ini" ("#en.ini")

[Mobility]
<Mobility.Enabled> = 1
...(пустая строка)...
<Mobility.Type> = 0
<Mobility.WavName> = Climax.wav
<Mobility.AnimationIX> = -1
<Mobility.Flags> = 2
<Mobility.ShortName> = Mobility
<Mobility.Name> = Mobility
<Mobility.Level> = 4
<Mobility.SchoolFlags> = 2
<Mobility.ManaCostNone> = 16
<Mobility.ManaCostBasic> = 12
<Mobility.ManaCostAdvanced> = 12
<Mobility.ManaCostExpert> = 12
<Mobility.EffPower> = 0
<Mobility.EffectNone> = 300
<Mobility.EffectBasic> = 300
<Mobility.EffectAdvanced> = 300
<Mobility.EffectExpert> = 300
<Mobility.Castle> = 10
<Mobility.Rampart> = 10
<Mobility.Tower> = 10
<Mobility.Inferno> = 10
<Mobility.Necropolis> = 10
<Mobility.Dungeon> = 10
<Mobility.Stronghold> = 10
<Mobility.Fortress> = 10
<Mobility.Conflux> = 10
<Mobility.AIValueNone> = 0
<Mobility.AIValueBasic> = 0
<Mobility.AIValueAdvanced> = 0
<Mobility.AIValueExpert> = 0
...(пустая строка)...
...(пустая строка)...
...(пустая строка)...
[Новый Закл]


Обратите внимание, что:
1. Каждый параметр начинается с названия закла (разделяется точкой).
2. Каждый первый символ каждого слова в названии параметра должен начинатся с заглавной буквы (исключения - AI и IX, там две заглавные подряд).
3. Каждый параметр заключен в символы сравнения: <Парметр>
4. До равно (после названия параметра) и после (перед значением параметра) должен быть пробел.
5. Никаких нижних подчеркиваний _.
6. _0, _1, _2, _3 нужно заменить на None, Basic, Advanced, Expert.
7. После первого основного параметра Enabled должна быть 1 пустая строка.
8. После каждого блока параметров каждого закла должно быть 3 пустые строки.

Все же описания можно не пихать в lod, но и в основном ini с настройками их также быть должно. Там только выбор параметр Language с выбором файла с нужным языком. Предлагаю сделать так, как сделано в HD mod и SoD_SP.

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

Только по возможности переводов строк в языковых ini быть не должно. Пускай все переводы строк останутся в исходном коде. \n - будет сбивать и путать многих игроков и начинающих моддеров, которые не знакомы с C++.

Код: Выделить всё
<DescriptionNone> = {Mobility}Mobility description.
<DescriptionBasic> = {Basic Mobility}Basic Mobility description.
<DescriptionAdvanced> ={Advanced Mobility}Advanced Mobility description.
<DescriptionExpert> ={Expert Mobility}Expert Mobility description.
Последний раз редактировалось Rolex 17 окт 2021, 14:18, всего редактировалось 2 раз(а).
Вернуться к началу

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 » 17 окт 2021, 13:57

Я не уверен, что в SoD_SP стандартный ini. Не встречал имена ключей, заключённые в угловые скобки. Имена брал из структур homm3.h, чтобы не путаться (цифры после имён для выравнивания: легче, когда значения на одном уровне). Пробелы можно добавить, но их отсутствие принято по умолчанию, например: https://docs.microsoft.com/en-us/windows-server-essentials/install/create-the-cfg.ini-file.

Цитата:
Только по возможности переводов строк в языковых ini быть не должно. Пускай все переводы строк останутся в исходном коде. \n - будет сбивать и путать многих игроков и начинающих моддеров, которые не знакомы с C++.

ini не поддерживает переводы строк и пробелы в конце строки. Возможность добавлять "\n" - это уже мой апгрейд.
Вернуться к началу

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

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

Сообщение Rolex » 17 окт 2021, 14:03

AlexSpl писал(а):

Я не уверен, что в SoD_SP стандартный ini. Не встречал имена ключей, заключённые в угловые скобки.

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

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 » 17 окт 2021, 14:04

Можно попробовать добавить <> и пробелы, если <> - допустимые символы для имени ключа. Красивые имена ключей можете предложить, изменю.
Вернуться к началу

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

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

Сообщение Rolex » 17 окт 2021, 14:16

Хотелось бы, чтобы в нашем ini все выглядело так, как я показал на примере выше с Mobility. Там 8 пунктов по оформлению, в том числе и к имени ключа. Надеюсь, получится выполнить все пункты.
Последний раз редактировалось Rolex 17 окт 2021, 14:20, всего редактировалось 2 раз(а).
Вернуться к началу

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 » 17 окт 2021, 14:19

Я попробую потестить (Вы тоже можете изменить имя какого-нибудь ключа в ini и в коде, Вы легко найдёте где), но сейчас ini у нас по стандарту (конечно, устаревшему уже). Можно заменить на XML или json, но я бы не парился.

Насчёт кода. Помнится, писал, что большие проекты нужно начинать на H3API, тогда и код бы выглядел более упорядоченно. Но я не думал изначально, что он настолько разрастётся :smile1: Я попозже его немножко причешу. Скорее всего, добавлю _BattleStackEx_, чтобы обращаться к функциям как к методам. Но пока важнее, чтобы всё работало, как надо. Легко пропустить какой-то один случай. Я до сих пор не уверен, что внёс все правки в код.
Последний раз редактировалось AlexSpl 17 окт 2021, 14:26, всего редактировалось 1 раз.
Вернуться к началу

Пред.След.

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

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

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

cron