Объявления
Поздравляем
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, 23:08

Тогда альфа-версию можно "пощупать" уже сейчас :smile2:
Вернуться к началу

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

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

Сообщение Rolex » 20 мар 2021, 23:12

У Вас не было желания присоединится к комманде разработчиков HotA Crew в качестве программиста?
Вернуться к началу

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:17

Там одного хватает. Поспевали бы за программером дизайнеры - вот, что важно :smile2:
Вернуться к началу

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

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

Сообщение Rolex » 20 мар 2021, 23:22

Вроде, их там 4: Sav, Feanor, hippocamus и Baratorch. Но основную часть работы, по-моему, делает Sav, а Baratorch больше занят модом. Ну да, з дизайнерами конечно беда.
Вернуться к началу

offlineArmageddets  
Новичок
Новичок
 
Сообщения: 21
Зарегистрирован: 31 окт 2018, 15:05
Пол: Не указан
Поблагодарили: 2 раз.

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

Сообщение Armageddets » 21 мар 2021, 10:02

Тестируем плагин с палаткой с массовым лечением в шоу турнире. Она в битвах с нейтралами работает хорошо, а вот в финалках с соперниками на ходе палатки часто крашит игру. Прилагаю краш логи и ссылки на видео, где это произошло. Возможно это поможет в понимании причины.
Это сохранение перед битвой и краш логи:
https://dropmefiles.com/NE7Sb

Это видео с проблемами:
https://www.youtube.com/watch?v=Olp89AdKVF0
https://www.youtube.com/watch?v=EFQyN280-nk
Вернуться к началу

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

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

Сообщение Rolex » 21 мар 2021, 10:58

Armageddets писал(а):

Тестируем плагин с палаткой с массовым лечением в шоу турнире. Она в битвах с нейтралами работает хорошо, а вот в финалках с соперниками на ходе палатки часто крашит игру. Прилагаю краш логи и ссылки на видео, где это произошло. Возможно это поможет в понимании причины.

Попробуйте перекачать плагин. Он неделю назад обновлялся. Возможно, причина в этом:
AlexSpl писал(а):

В процессе обнаружил, что 0x547C - это байтовый массив (char/bool). Исправил код палатки в теме с пользовательскими плагинами.
Вернуться к началу

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, 14:24

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

К сожалению, запустить сейв не могу (формат сохранения Fresh Mod?). Крэш можно повторить, выполняя определённую последовательность ходов отрядов/кастов героев? Если да, то попробуйте проверить на новой версии плагина (в старой версии при попытке лечения отрядов с индексами, близкими к 20, затирались поля структуры менеджера битвы, идущие сразу за массивом с флагами массовой анимации).

Кстати, первый крэшлог можно показать автору Fresh Mod, он связан с RMG.
Вернуться к началу

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

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

Сообщение Rolex » 21 мар 2021, 14:44

AlexSpl писал(а):

В результате получится следующее: мы кастуем площадное заклинание, сначала срабатывает анимация Magic Mirror, потом резиста союзных отрядов, потом анимация самого закла, потом анимация резиста вражеских отрядов и анимация отражённого площадного. Звучит как много работы :smile1:

По-моему, в случае с площадными порядок немного не такой должен быть. Что мы отразилили, если еще ничего не наложили? Наверное, лучше так:
Изначально срабатывает как и обычно анимация самого кастуемого площадного закла, потом анимация Magic Mirror, потом резиста союзных отрядов, после анимация получения урона союзными отрядами, которые не отразили закл или не были под Зеркалом (она, вероятно, должна сработать и без нашего вмешательства), после чего уже анимация отраженного площадного в другом месте над вражескими отрядами, потом анимация резиста вражеских отрядов и, наконец, анимация получения урона вражексими отрядами, которых не выручил резист. Получается, нужно сделать 4 хука под 4 закла (Кольцо холода, Огненный шар, Инферно и Метеоритный дождь).
Последний раз редактировалось Rolex 21 мар 2021, 15:14, всего редактировалось 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 » 21 мар 2021, 14:51

Я по аналогии с тем, что мы имеем сейчас с массовыми заклинаниями. Т.е. у нас сейчас массовая анимация в конце проигрывается, а не в начале. Но в плагине легко поменять порядок, если что, меняя порядок условий:

Код: Выделить всё
int __stdcall massReflection(LoHook* h, HookContext* c)
{
    // Проигрываем массовую анимацию и звук Magic Mirror
    if ( showMagicMirrorAnim )
    {
        CALL_3(void, __fastcall, 0x59A890, o_Spell[SPL_MAGIC_MIRROR].wav_name, -1, 3);
        CALL_4(void, __thiscall, 0x5A6AD0, o_BattleMgr, &needMagicMirrorAnim, o_Spell[SPL_MAGIC_MIRROR].animation_ix, 0);
    }

    // Проигрываем массовую анимацию и звук резиста
    if ( showMagicResistAnim )
    {
        CALL_3(void, __fastcall, 0x59A890, "MagicRes.wav", -1, 3);
        CALL_4(void, __thiscall, 0x5A6AD0, o_BattleMgr, &needMagicResistAnim, 78, 0);
    }

    // Проигрываем массовую анимацию и звук кастуемого заклинания
    if ( showSpellAnim )
    {
        _Spell_* spell = (_Spell_*)*(int*)(c->ebp - 0x10);
        CALL_3(void, __fastcall, 0x59A890, spell->wav_name, -1, 3);
        CALL_4(void, __thiscall, 0x5A6AD0, o_BattleMgr, &needSpellAnim, spell->animation_ix, 0);
    }
   
    c->return_address = h->GetAddress() == 0x5A2156 ? 0x5A2168 : 0x5A13FC;
    return NO_EXEC_DEFAULT;
}
Вернуться к началу

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

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

Сообщение Rolex » 21 мар 2021, 15:08

AlexSpl писал(а):

Я по аналогии с тем, что мы имеем сейчас с массовыми заклинаниями. Т.е. у нас сейчас массовая анимация в конце проигрывается, а не в начале. Но в плагине легко поменять порядок, если что, меняя порядок условий:

Ну с обычными массовыми заклами лучше оставить так, как есть. Там все ок. А вот с площадными лучше сделать так, как я написал выше. Анимацию площадного можно не проигрывать на своей стороне, если, допустим, все свои отразили, а проигрывать ее только после отражения, например. Вот тогда это будет как с массовыми заклами. Но что тогда делать если часть отразили, а часть нет, в таком случае нужно ее разбивать, чтобы она проигрывалась в уменьшенном масштабе для каждого не отразившего его отряда. Идея с задействованием не используемых анимаций мне не очень заходит, это уже попахивает WoG, HotA на такое бы не пошли. А потому для площадных лучше всегда дважды проигрывать (для своих и вражексих отрядов) полноценную оригинальную анимацию в том порядке, в котором я описал выше.
Вернуться к началу

Пред.След.

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

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

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

cron