Объявления

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

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

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

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

Сообщение Rolex » 08 апр 2021, 16:36

AlexSpl писал(а):

Мы же вычитаем Fight Value союзных отрядов. Если у Героя есть приличный Resistance, наоборот, алгоритм должен задевать Грифонов, так как разность damageFightValueThem - damageFightValueUs только возрастёт за счёт снижения damageFightValueUs.

Грифоны должны атаковаться только тогда, когда сила того кол-ва Грифонов, которые погибнут будет больше чем нашего отряда под Зеркалом. У 2 Титанов 10 000, а у 24 Грифонов 8 736. Почему Fight Value уполовинивается у Титанов если у них нет своего сопротивления, только за счет сопротивления Зеркала? Вторичные навыки одинаковы. Должно атаковать только Архов. До этого (без множителя) было все ок.
Вернуться к началу

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 » 08 апр 2021, 16:39

Если у Героев нет Resistance, то остаётся только вставить showDebugInfo и посмотреть на реальные значения damageFightValue (плюс, не забудьте, мы добавляли поправку на единички).

Кстати, эта поправка может быть виновата. Там уязвимость не учитывается.
Вернуться к началу

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

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

Сообщение Rolex » 08 апр 2021, 16:44

Код: Выделить всё
double _BattleStackEx_::damageFightValue(const int spell, const int spellDamage)
        {
           return this->getMagicVulnerability(spell) * min((double)spellDamage / this->full_hp,
              this->count_current - (double)this->lost_hp / this->full_hp) * this->creature.fight_value;
        };


Вы этот множитель добавляли this->getMagicVulnerability(spell) и все?
Или еще что-то?
Вернуться к началу

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 » 08 апр 2021, 16:48

Есть ещё поправка:

Код: Выделить всё
inline int onesFightValue(const int spellDamage) {
    return spellDamage >= this->current_health() && spellDamage < this->full_health() ? this->creature.fight_value : 0;
};

Гадать бесполезно. Нужно видеть конкретные цифры, которые сравнивает алгоритм. Так что нужно возвращать showDebugInfo и смотреть этот конкретный случай. Уверен, что всё сразу станет понятно. И если есть ошибка, мы хотя бы будем знать где.
Вернуться к началу

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

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

Сообщение Rolex » 08 апр 2021, 16:51

У вас есть возможность сейчас проверить? Дело в том, чтоу меня без this->getMagicVulnerability(spell), работает так как нужно. Атакует только Архов, такое ощущение, что учитывается резист и самого Зеркала, а не только врожденный резист.
Вернуться к началу

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 » 08 апр 2021, 16:54

Так пройдитесь по всему полю. Посмотрите, что там с расчётами конкретно в области, которая задевает эти отряды. Ещё шанс резиста от Magic Mirror, по-хорошему, тоже нужно учитывать (сейчас он не учитывается).
Вернуться к началу

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

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

Сообщение Rolex » 08 апр 2021, 17:04

Короче все завязано на вот этой функции:
Код: Выделить всё
CALL_7(float, __thiscall, 0x5A83A0, o_BattleMgr, spell, o_BattleMgr->current_side, this, 1, 1, 0);
Вернуться к началу

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 » 08 апр 2021, 17:07

Что она возвращает для Титанов?
Вернуться к началу

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

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

Сообщение Rolex » 08 апр 2021, 17:14

0.8
Fight Value 1 Титана = 5000, а 2 соответственно 10 000. 1 Королевского Грифона = 364, а 24 => 8 736.
Следовательно 10к * 0,8 и получается 8 000 < 8 736.

Разве у Титанов есть 20% сопротивление к магии?
Последний раз редактировалось Rolex 08 апр 2021, 17:17, всего редактировалось 1 раз.
Вернуться к началу

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 » 08 апр 2021, 17:16

0.8 это точно? Или догадки? 0.8 означает, что присутствует резист (арты, навык, аура и пр.).

Я бы списал на добавочный Fight Value от единичек. Если Вы правы (т.е. именно в ней ошибка), она не 0.8 должна возвращать, а 0.
Вернуться к началу

Пред.След.

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

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

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

cron