Объявления
Поздравляем
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 » 20 окт 2021, 17:28

Цитата:
А с чем это связано, что флаг читается из "мусорных" байтов?

С инициализацией магической гильдии. Битовый массив запрещённых заклинаний заполняется редактором карт/RMG только для заклинаний от 0 до 69, т.е. для оригинальных заклинаний. После идут "мусорные биты", которые могут быть случайными и не очень. Оригинальных заклинаний 70, поэтому под битовый массив выделяется 3 дворда (3 * 32 = 96 бит). Вот в хвосте (26 последних битах) и находится "мусор". Склоняюсь к тому, чтобы полностью переписать функцию 0x5BEA00, иначе замучаюсь с лоухуками и патчами :smile1:

С другой стороны, локальный битовый массив можно подменить своим нужный длины на время генерации. Посмотрю, прокатит ли такой трюк, сначала.
Вернуться к началу

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

1. Починил магическую гильдию.
2. Плагин теперь понимает, что такое "MAY appear" и "MUST appear" заклинания. Готов сотрудничать с редактором карт, который понимает новые заклинания.
3. Исправил баг с вызовом элементалей при игре по сети.
4. Исправил баг с Aurora Borealis.

NewSpells.zip
(391.14 КБ) Скачиваний: 243
Последний раз редактировалось AlexSpl 21 окт 2021, 09:43, всего редактировалось 2 раз(а).
Вернуться к началу

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

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

Сообщение Rolex » 20 окт 2021, 22:52

Кстати, а порядок проигрывания анимации для стрелков для Death Blow еще не правили? (анимация Death Blow - анимация атакующего - анимация обороняющегося вместо анимация атакующего - анимация Death Blow - анимация обороняющегося)

Ах да, Вы еще говорили, что на счет скорости для Disease и Fear гляните. Чтобы снижалась скорость анимации передвижения, как это сделано для Slow. Говорили, гляните на примере Prayer.
AlexSpl писал(а):

Это было бы проще простого, если бы не взаимодействие с Haste. В оригинале Haste убирает Slow и всё просто. Нужно всё-таки глянуть Prayer (Молитву). Если скорость анимации отряда не увеличивается под Prayer, значит, и нам ничего менять не нужно. Если да, то нужно думать, как работать со скоростью анимации, когда у нас уже 5 заклинаний, влияющих на скорость отряда: Slow, Disease, Fear, Haste и Prayer. Лично я надеюсь, что Prayer не меняет скорость анимации. Потом проверю на связке Slow + Prayer.

Глянул, Prayer все же не увеличивает скорость анимации. То есть, по идее, и нам для Disease и Fear ненужно ее замедлять. Хотя, может, это баг Prayer?

Также проверил связку Slow + Prayer. Как оказалось, скорость анимации после наложения Prayer на отряд под Slow остается такой, как просто под Slow, то есть медленная. У Slow и Haste особые приоритеты на скорость анимации.

Фильтр сейвов, я так понял, тоже еще не добавляли?

AlexSpl писал(а):

2. При игре по сети во время призыва существ происходит вылет 0x46A09C, предположительно, из-за способа, которым я разрешил призывать несколько разных существ одновременно.

Это еще не правили?
Вернуться к началу

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 » 20 окт 2021, 23:07

Цитата:
Кстати, а порядок проигрывания анимации для стрелков для Death Blow еще не правили?

Зато смотрел. Это будет не так просто сделать, как кажется.

Цитата:
Глянул, Prayer все же не увеличивает скорость анимации. То есть, по идее, и нам для Disease и Fear ненужно ее замедлять. Хотя, может, это баг Prayer?

Я думаю, заморочка с изменением скорости анимации придумана исключительно для Haste и Slow. Типа, чтобы название "ощущалось". Я тоже думаю, что для остальных, изменяющих скорость, не нужно трогать анимацию.

Цитата:
Фильтр сейвов, я так понял, тоже еще не добавляли?

Фильтр будет легко добавить. В этой теме это уже делал as239. Нужно только поискать, чтобы не изобретать велосипед.
Вернуться к началу

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 » 20 окт 2021, 23:51

С призывом всё банально было: пропустил одну команду в хуке. Обновил ссылку выше.
Вернуться к началу

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

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

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

AlexSpl писал(а):

Фильтр будет легко добавить. В этой теме это уже делал as239. Нужно только поискать, чтобы не изобретать велосипед.

На самом деле я не сторонник фильтра. Потому как большинство рядовых игроков подключая Fresh Mod не понимают куда деваются их сохранения и, главное, не понимают что именно Fresh Mod их скрывает. С этим, на самом деле, большая проблема. Да и Fresh Mod не лучший пример, чтобы что-то от туда брать. Много вылетов ловил с ним.

Я бы сделал проще и, по-моему, для большинства игроков понятней. Никаких фильтров, ничего не скрываем. Просто перед загрузкой сейва проверяем сам сейв, если он был сделан с плагином NewSpells - загружаем его, иначе - даже не пытаемся загрузить, а сразу выдаем сообщение о том, что данный сейв был сделан без плагина NewSpells, а потому не совместим с ним - загрузите подходящий сейв или начните Новую игру. Так что предлагаю сделать именно такой вариант без всяких фильтров. Для большинства он более понятен и все сейвы на своем месте.
Вернуться к началу

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

Можно и табличку. Кстати, в оригинале так и сделано: если игра не может загрузить сейв, появляется сообщение и сейв не загружается.

Написал на HC про то, что плагин совместим только с SoD 3.2 и Complete с HD модом. Глянул крэши на ERA и список патчей. Мы с WoG'ом пересекаемся, причём не хуками, а патчами, т.е. WoG пишет одно, а мы другое. Конечно, хотелось бы быть совместимыми, но слишком много изменений.
Вернуться к началу

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 » 22 окт 2021, 07:30

Прикольно, как мы иногда однобоко думаем. Т.е. мы переживаем за то, чтобы юзер случайно не загрузил оригинальный сейв при игре с плагином и не расстроился из-за вылета. Да, круто, мы заботимся об игроках, но... Давайте подумаем в другую сторону: разве мы так же не должны переживать из-за того, что юзер загрузит сейв, сделанный с плагином, играя без него, и расстроится из-за вылета? :smile2: А к оригинальной игре сообщение о том, что сейв несовместим, не прикрутишь. Поэтому самое правильное решение - следующее. Играя с плагином, игрок не должен видеть оригинальные сейвы, и наоборот: играя без плагина, игрок не должен видеть сейвы, сделанные во время игры с плагином. Вопрос: а как научить оригинальную игру не видеть сейвы, сделанные с плагином? :smile2: Это мы плагин можем научить не видеть оригинальные сейвы. А оригинальную игру - никак. Но способ есть! И, как всегда, Бритва Оккама: плагину нужны другие расширения сейвов :smile1:

* * *
Сделал расширения .NSGM? для сценариев, .NSCGM для кампаний и .NSTGM для туториала.

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

offlineАватара пользователя
leiz  
Подмастерье
Подмастерье
 
Сообщения: 187
Зарегистрирован: 15 сен 2018, 07:58
Пол: Не указан
Поблагодарили: 95 раз.

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

Сообщение leiz » 22 окт 2021, 12:01

Хакерское решение (в древнем и добром смысле слова "хакер").
Вернуться к началу

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 » 22 окт 2021, 12:47

Можно ещё в заголовок сейва инфу писать о том, что сейв сделан с плагином. Я уже думал, куда инфу засунуть так, чтобы оригинальная игра тоже её могла читать и понимать, когда пришла идея о смене расширения. Можно, конечно, поменять номер версии карты, но это плохой вариант, т.к. в зависимости от версии карты игра включает и выключает определённые фичи, характерные только для выбранной версии карты. Такой подход только кажется крутым, а на деле не имеет преимуществ перед сменой расширения. Более того, у смены расширения - преимущество: теперь игрок может отличать оригинальные сейвы от сейвов, сделанных с плагином, не только лишь в игре.

* * *
Я придумал, как сделать так, чтобы 4 каста Mobility в день не казались спамом: 1-й каст герой делает без условий*, а вот для того, чтобы герой мог кастовать снова, он должен одержать победу в бою. Сейчас пишут, что заклинание OP (+1200 MP за 48 маны), а ещё 4 раза лениво кликать. Я согласен, но это Вы, Rolex, предложили изменить его действие на то, которое имеем сейчас. Короче, нужно нерфить. Я предлагаю вот таким интересным способом. Почему идея классная? Во-первых, решается проблема спама/"лениво кастовать", а во-вторых, заклинание поощряет игрока за его смелость, т.е. трусливый герой и меньше опыта будет получать из-за своей трусости и медленнее будет открывать карту, чем герой, который не боится вступать в бой.

Сейчас это заклинание крайне невыразительное и "пресное". Хотя кому-то нравится :smile1: А вот если реализовать то, что я написал выше, получится очень интересное заклинание, ради которого и кол-во MP можно поднять до 500, например. Уровень и ману не трогаем. И никто его не назовёт OP. Можно ещё переименовать в Warpath. Mobility слишком общее название.

Кстати, интересовались школой. Вот в такой имплементации заклинанию самое место в школе Огня, т.к. битва обычно с огнём ассоциируется.

*) Даже думаю, что и первый каст нужно "заслужить", побывав в бою.

* * *
Ещё пара небанальных заклинаний: Horde Strength, Horde Speed и т.п. Заклинания 3-го уровня. Доступны для изучения только в Stronghold и только Варварам и Боевым Магам. Увеличивают атаку/скорость целевого отряда пропорционально сумме атак/скоростей всех варварских юнитов в армии героя. Целевой отряд получает бонус к атаке/скорости, на все остальные отряды варваров накладывается Weakness/Slow длительностью 3 раунда. Разумеется, прибавка к атаке/скорости должна стоить массовых дебафов остальных отрядов. Скажете, не Тройка, а Пятёрка? Возможно, но крутые же заклинания и зрелищные, а ещё не требуют новых анимаций: Horde Strength - анимация Bloodlust на целевой отряд, Weakness на остальные варварские, Horde Speed - анимация Haste на целевой, Slow - на остальные.
Вернуться к началу

Пред.След.

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

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

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