Объявления |
---|
Друзья, если не получается зарегистрироваться, напишите на почту vdv_forever@bk.ru. Я оторву свою задницу от всех дел и обязательно Вас активирую! Добро пожаловать на геройский форум! |
Re: Как создать плагин для HD модаА почему мы их в исключение добавляем? Разве не лучше повесить Проклятие на Баллисту, чем на отряд, который ничего не может сделать? Чем принципиально Баллиста отличается, например, от 1 неослеплённого Стрелка?
|
Re: Как создать плагин для HD модаДля чего нужна переменная field_538 в структуре _CombatMonster_ ?
|
Re: Как создать плагин для HD модаЭто поле используется ИИ для принятия решений по действиям в битве. Туда записывается ссылка (адрес) на отряд противника, который данный отряд ИИ собирается атаковать по итогам "предварительного расчета".
|
Re: Как создать плагин для HD модаЧто означают выражения вроде таких?:
Причем здесь __thiscall? Это же не тип, да к тому же еще ** |
Re: Как создать плагин для HD модаЭто синтаксис для указателей на функцию. Так можно вызывать функцию не по имени, а по адресу (например, call dword ptr [eax+4]; используется при вызове виртуальных методов), или передавать её в качестве аргумента другой функции. __thiscall - это соглашение о вызове, которое можно и опустить, но только если используется стандартное (обычно это __cdecl). Звёздочки работают, как и везде: указатель/разыменовывание.
Вот несколько примеров из моего проекта:
Пример из декомпилированного листинга функции:
Эквивалентный код на ассемблере: |
Re: Как создать плагин для HD модаКак правильно вызывать хайхук функцию в коде? Или придется через CALL_..?
Все варианты ниже вызывают вылет
|
Re: Как создать плагин для HD модаОна вызывается автоматически, когда выполняется оригинальная функция (можно ещё ставить CALL_ хайхук на отдельный вызов оригинальной функции). Для решения задач этого хватает. Не могу представить случай, когда её нужно было бы вызывать отдельно (она спроектирована так, чтобы её вызывал патчер). Если всё-таки очень нужно вызвать, то лучше переделать её в обычную функцию (без первого аргумента). Почему вылет, когда Вы вызываете функцию с пустым указателем на HiHook? Вероятно, в теле функции есть обращение к этому указателю, а он пустой (таким обращением может быть hook->GetDefaultFunc()).
|
|
Re: Как создать плагин для HD модаAlexSpl писал(а): Блин, точно, я совсем забыл про обыкновенные функции! Спасибо. |
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2