А другой вариант не работает, выдает 'rand_s': identifier not found, хотя я указал:
- Код: Выделить всё
#define _CRT_RAND_S
#include <stdlib.h>
Объявления |
---|
Друзья, если не получается зарегистрироваться, напишите на почту vdv_forever@bk.ru. Я оторву свою задницу от всех дел и обязательно Вас активирую! Добро пожаловать на геройский форум! |
|
Re: Как создать плагин для HD модаПроверил, генерируются разные числа, но очень редко. Косяк псевдорандома.
А другой вариант не работает, выдает 'rand_s': identifier not found, хотя я указал:
Быстрее всего смогу ответить вам в Telegram: @PleaseAndThankYou
|
Re: Как создать плагин для HD мода#define _CRT_RAND_S нужно прописывать во framework.h:
|
Re: Как создать плагин для HD модаВо время битвы AI выбирает цель для удара с учетом информации - проигрывает он битву или выигрывает (видимо, просто сравнивая суммарные AI_value или FighValue противостоящих армий).
Если выигрывает - выбирает цель "осмотрительно", с учетом ответного удара противника. Если проигрывает - бьет "напропалую", стараясь нанести максимальный урон противнику. Как ни странно, против человека более примитивный подход дает AI больше выгод - то есть лучше бы ему всегда действовать по 2-му варианту. Кто может посоветовать, как найти место в коде, где все это происходит ? |
Re: Как создать плагин для HD модаПока что выяснил, что в битве ИИ использует данные, хранящиеся в стеке.
Например, int __thiscall sub_0041F530(_CombatMan_ *this, _CombatMonster_ *a2, _CombatMonster_ *a3, int a4) Здесь a4 указывает на нужные для расчетов данные стека. *(_byte_*) (a4 + 8) Если 0, то выигрывает, если 1, то проигрывает. Пока не знаю, какая процедура апдейтит эту информацию. |
Re: Как создать плагин для HD модаRoseKavalier,
in fact there is one additional game manager - AIBattleManager, it is extensively used by subroutines of routines such as CombatMan_00422100_MeleeCreatureAI or CombatAI_0043C450_SpellsAI This manager, however, located in stack, not in global memory. Pointer of manager is argument between many procedures. |
|
Re: Как создать плагин для HD модаI have some notes on it from a while ago when I was studying related function. Since I didn't have much info on it and no immediate use, I didn't include it in H3API.
Feel free to flesh it out))
|
Re: Как создать плагин для HD модаwenwell писал(а): Цитата: AI (коричневый) нападает на игрока (красный), получается, что стеком с багованной ценностью будет гном? (крайний справа). Что если у нас не семь стеков, а два, баг тоже будет работать? Работает ли баг если нападаем мы? Баг всегда будет работать Кроме 1-го стека. Если речь идет о расчете для Фениксов, то стеком с багованной ценностью будет Архангел )) (правда, в данном случае он и без бага самый ценный) поскольку последние 3 стека слишком слабы даже будучи переоцененными в несколько раз. Для остальных же стеков коричневого самым ценным целевым стеком будут 19 кентавров, поскольку Архангел слишком силен, а прочие стеки, даже будучи переоцененными, слишком маленькие. Для кентавров переоценки не будет, кстати, поскольку это 1-й стек. |
Re: Как создать плагин для HD модаХотя вообще-то на самом деле самым ценным для прочих стеков скорее окажутся не кентавры, а 2 эльфа (они будут переоцененными в 2 раза, поскольку до них стекам коричневого 2 хода).
Для Псих. элементалей наверно, лучшей целью будут кентавры (а может и Архангелы). Почему для Псих.элементалей ? Потому что у них дамага поболее, чем у других, могут убить больше 4 эльфов в пересчете на кентавров. Надеюсь, никого не запутал )) |
Re: Как создать плагин для HD модаЦитата: Весьма ценная информация! Знаю бои где это важно учитывать. Известно, что комп может выбирать цель с меньшим hp в некоторых случаях, скажем, когда стек в 30 гномов выбирая кого атаковать - стек с 1 феей или 2 феями, иногда, выбирает атаку 1 феи, при том, что та и другая цель достижима в первый же ход беспрепятственно. Но вот то что этот баг не работает для первого стека - очень важно и стоит учитывать. |
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4