Объявления | ||
---|---|---|
Друзья, если не получается зарегистрироваться, напишите на почту vdv_forever@bk.ru. Я оторву свою задницу от всех дел и обязательно Вас активирую! Добро пожаловать на геройский форум! |
Re: Как создать плагин для HD модаNewSpells я пока оставил. Недавно, кстати, немножко гонял с ним и не верил, что это я написал, очень круто получилось Что касается модификации интерфейса, то сейчас я работаю над мини-API (часть информации беру из Вашей базы, часть из H3API, кое-какие моменты приходится исправлять иногда, т.к. не соответствуют действительности). Скажу так, переписывать интерфейс никогда не было так легко, код очень опрятный получается Но интерфейс - это не самое простое и требует много времени, особенно интерфейс HD, чья реализация скрыта в dll-ках. Кое-что быстро решается вызовом функций HD мода, но есть вещи, которые так просто не изменить, как в случае с очередью ходов в плагине NewSpells.
Вообще, странно как-то. Теперь, когда можно делать крутые моды, уже и не хочется особо. Ты заранее видишь результат, знаешь, как его достичь, потом оцениваешь время реализации задуманного и потенциальный "выхлоп" - и понимаешь, что лучше пойти поиграть в Героев 3 или KB Сейчас народ уже ничем не удивишь. Планка очень высокая. Это в 2008-м, например, были бы тысячи исписанных идеями и благодарностями страниц треда про новые спеллы. А сейчас уже как бы это и не ново, и типа каждый день выпускают плагины, где ты сам, практически без усилий можешь добавить заклинание своей мечты. Эх, не только я постарел, все постарели вместе со мной. И я понятия не имею, то ли же самое игра для новичков, чем являлась для меня когда-то. Такое чувство, что нет. Хотя, теперь акценты сместились, много новичков идут сразу в онлайн. А к современному, "быстрому", онлайну у меня неоднозначные чувства. С одной стороны круто играть против живого противника, с другой - победы на второй или третьей неделе - это даже не Герои, а блиц какой-то с одной-двумя встречами Но самое главное - онлайн не готов к новому, ведь спорт же. * * * В отношении интерфейса пришёл к не новой идее форм для элементов интерфейса. Чтобы твой мод можно было нормально моддить дальше, нужно не прятать свойства элементов в код, а выносить их в специальные, легко редактируемые файлы форм, а к нестандартным методам предоставлять моддерам программный интерфейс. Например, диалог выбора городов и героев в HD моде так просто не перенесёшь на новое место, ибо реализация зашита в хуке. А с формами даже те, кто не знаком с плюсами, могли бы пилить интерфейсные минимоды. |
Re: Как создать плагин для HD модаЦитата: Change 24 and 25 to 38. |
Re: Как создать плагин для HD модаОбнаружил еще одну странность с плагином NewMagicMirror - если у вражеского героя есть некоторые спеллы (пока не выявил какие именно, достаточно дать Тома всех школ чтобы заметить проблему) то при старте боя с ним (еще до перехода на арену) мы слышим рандомные звуки различных заклинаний.
|
Re: Как создать плагин для HD модаСпасибо за баг-репорт. Попробую повторить. Судя по описанию, можно предположить, что это связано с симуляцией битвы в HD моде.
|
Re: Как создать плагин для HD модаМне лично пригождались только Splice Extended (когда лень/нецелесообразно переписывать всю функцию) и Splice Direct (когда ты пишешь свою версию функции). Например,
Call-хайхуки тоже могут быть полезны (хук на конкретный вызов функции). Но как-то до этого обходился без них. Safe - тот же Extended, но с дополнительным восстановлением регистров перед вызовом оригинальной функции. В принципе, baratorch в хедере всё описал: Кстати, с FUNCPTR_ я лично даже примеров нигде не встречал. Цитата: Здесь сложнее. Я только дебажил хайхуки. Обычно это простой jmp из кода в dll (поэтому в общем случае и нужны 5 байт), затирающий оригинальную (-ые) инструкции. Затем функция-"пролог", сохраняющая регистры и готовящая стек к вызову самого тела хайхука, собственно функция с кодом хайхука, и наконец - функция-"эпилог", готовящая результат, выполняющая затёртую (-ые) инструкции и возвращающая из dll в оригинальный код. При пошаговой отладке можно смело пропускать первую и третью функции: код, зависящий от тебя, находится во второй. Ну, а чтобы совсем разобраться, как технически всё устроено, нужно смотреть сам код патчера. Но обычному плагиноделу он вряд ли будет интересен, поскольку патчер воспринимается как API. Разбираться, может быть, будет интересно тем, кто хочет усовершенствовать сам патчер/написать свой собственный (например под 64-разрядный код). |
Re: Как создать плагин для HD модаЦитата: Проверил недавно. Всё так. Исправленный плагин прикреплю к сообщению в теме с пользовательскими плагинами. Готово. |
Re: Как создать плагин для HD модаС сегодняшнего дня начну разбор "полевых" функций и алгоритмов ИИ.
Заметил, что класс поиска пути(searchArray) для боя и карты приключений используется один и тот же, что не очень удобно конечно. |
Re: Как создать плагин для HD модаСейчас параллельно с разбором классов Героев 1 (чёрт, какая же это сложная работа разбирать чистый декомпилят IDA!) занимаюсь рефакторингом плагина NewSpells. Пока только привёл в порядок классы hero и army (для army даже нормальный деструктор оформил, но пока не знаю, как прикрутить конструктор копирования). Гляньте, если есть время/желание, HoMM3API.h и NewSpells.h. После рефакторинга уже устранил два бага (это как в видео про джуниора, который достал "бусинку" отличающегося ото всех остальных цвета, и всё посыпалось). Думаю, Вам тоже будет интересно работать с живым проектом: одно дело писать классы в IDA и наслаждаться красивым декомпилятом, другое - видеть, что это работает и даёт практические результаты.
Ресурсы можно взять из предыдущего билда. Уже 101 скачивание и 10k просмотров темы на HC. Скажете, мало? OK, почти догнали тему с Free Heroes 2, которая была создана в предыдущем году (так это плагин для Тройки, а там целый огромный проект). Т.е. народу интересно, но нужно удивлять Проблема, конечно, сейчас в вау-графонии, которого нет, и в вау-идеях (народ консервативный, просто жесть), а закодить можно всё что угодно с Вашим-то дампом. Всё-таки новые спеллы - это Вам не хухры-мухры |
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2