Объявления

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

База данных IDA от void17

Герои Меча и Магии III: Возрождение Эрафии, Герои Меча и Магии III Дыхание Смерти, Герои Меча и Магии III Клинок Армагеддона, Герои Меча и Магии III Хроники Героев
offlineRoseKavalier  
Мастер
Мастер
 
Сообщения: 331
Зарегистрирован: 23 сен 2017, 17:00
Пол: Не указан
Поблагодарили: 234 раз.

Re: База данных IDA от void17

Сообщение RoseKavalier » 21 ноя 2021, 17:03

void_17 писал(а):

Yes, I've been working on it alone for 2+ months. As we say, zaebalsya.

IDArling? Never heard of it. Seems like a good thing. We should try it. Create a discord server to cooperate, for instance.

:smile12:
IDArling
Hexrays has mentioned they are thinking about introducing collaborative work in the future, but I'm not 100% certain how that will pan out with version of questionable origin.
e.g. the lumens server is unavailable normally, but not too long ago someone made a private server that can be used.

I'll pm my Discord handle if you want to get in touch there. I had Slack for a while but not a fan.
Вернуться к началу

offlineАватара пользователя
AlexSpl  
имя: Александр
Эксперт
Эксперт
 
Сообщения: 5588
Зарегистрирован: 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: База данных IDA от void17

Сообщение AlexSpl » 21 ноя 2021, 17:09

Всегда интересовал вопрос: можем ли мы использовать нативные геройские классы вместо структур в плагинах? Насколько это трудно реализовать? Сейчас я использую врапперы, но было бы здорово реально вызывать нативные методы по указателю на экземпляр класса.
Вернуться к началу

offlineАватара пользователя
void_17  
имя: имя
Ветеран
Ветеран
 
Сообщения: 548
Зарегистрирован: 25 апр 2021, 15:05
Откуда: Оттуда
Пол: Мужчина
Поблагодарили: 132 раз.

Re: База данных IDA от void17

Сообщение void_17 » 21 ноя 2021, 17:10

Думаю да, я пользуюсь и вроде норм все.
Вернуться к началу

offlineАватара пользователя
void_17  
имя: имя
Ветеран
Ветеран
 
Сообщения: 548
Зарегистрирован: 25 апр 2021, 15:05
Откуда: Оттуда
Пол: Мужчина
Поблагодарили: 132 раз.

Re: База данных IDA от void17

Сообщение void_17 » 21 ноя 2021, 17:11

Создал тред на вогфоруме. Перекат туда необязателен, так просто больше людей увидит.
http://wforum.heroes35.net/showthread.php?tid=6419
Вернуться к началу

offlineАватара пользователя
AlexSpl  
имя: Александр
Эксперт
Эксперт
 
Сообщения: 5588
Зарегистрирован: 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: База данных IDA от void17

Сообщение AlexSpl » 21 ноя 2021, 17:18

Т.е. сейчас такой костыль:

Код: Выделить всё
struct Hero : public _Hero_
{
   inline int GetSpellSchoolLevel(int SpellID, int landModifier)
   {
     return CALL_3(int, __thiscall, 0x4E52F0, this, SpellID, landModifier);
   }
   inline int GetManaCost(int SpellID, const ArmyGroup* armyGroup, int landModifier)
   {
     return CALL_4(int, __thiscall, 0x4E54B0, this, SpellID, armyGroup, landModifier);
   }
   inline void SpendMana(int mana)
   {
     CALL_2(void, __thiscall, 0x4D9540, this, mana);
   }
   void AddSpell(int SpellID);
   void UpdateSpellsFromArtifacts();
   int getBestMagicSchoolForSpell(int SpellID);
};


А можно сделать так, чтобы в плагине ты объявлял экземпляр класса hero и пользовался всеми доступными классу методами?
Вернуться к началу

offlineАватара пользователя
void_17  
имя: имя
Ветеран
Ветеран
 
Сообщения: 548
Зарегистрирован: 25 апр 2021, 15:05
Откуда: Оттуда
Пол: Мужчина
Поблагодарили: 132 раз.

Re: База данных IDA от void17

Сообщение void_17 » 21 ноя 2021, 17:25

Я таким костылем и пользуюсь. Просто у меня вместо struct там class ну и названия оригинальные. Да, можно. Это легально, ты же по сути в одной и той же программе, хоть и в отдельной DLL библиотеке.

С таким подходом не советую использовать H3API в современном ее виде. И да, названия некоторых классов используют camelCase, чтобы не путать с аргументами CamelCase. armyGroup, heroWindow, combatManager и др. — названия классов
Последний раз редактировалось void_17 21 ноя 2021, 17:30, всего редактировалось 1 раз.
Вернуться к началу

offlineRoseKavalier  
Мастер
Мастер
 
Сообщения: 331
Зарегистрирован: 23 сен 2017, 17:00
Пол: Не указан
Поблагодарили: 234 раз.

Re: База данных IDA от void17

Сообщение RoseKavalier » 21 ноя 2021, 17:30

I personally see no issue in calling the methods as we have been forever, the only thing that would be better is to rewrite those methods instead to achieve RE3 levels of customization (but open yourself to possible litigation from Ubisoft).

Also, just a note:
DreamCast version was never released and the port was not done by NWC themselves.
The presence of symbols is not a mistake, the mistake is this CD being released to the masses: it says specifically on the Dreamcast ISO:
Код: Выделить всё
THIS IS A SAMPLE DISK FOR USE IN THE OFFICE ONLY   DO NOT SELL   DO NOT CARRY OUT FROM THE OFFICE
Вернуться к началу

offlineАватара пользователя
AlexSpl  
имя: Александр
Эксперт
Эксперт
 
Сообщения: 5588
Зарегистрирован: 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: База данных IDA от void17

Сообщение AlexSpl » 21 ноя 2021, 17:31

Цитата:
Просто у меня вместо struct там class ну и названия оригинальные.

Вот отсюда поподробнее. Как наложить свой класс на уже существующий, ведь там конструкторы/деструктуры/VMT? Т.е. как спроецировать объявленный тобою класс hero на тот, что уже есть в игре?
Вернуться к началу

offlineАватара пользователя
void_17  
имя: имя
Ветеран
Ветеран
 
Сообщения: 548
Зарегистрирован: 25 апр 2021, 15:05
Откуда: Оттуда
Пол: Мужчина
Поблагодарили: 132 раз.

Re: База данных IDA от void17

Сообщение void_17 » 21 ноя 2021, 17:34

AlexSpl писал(а):

Цитата:
Просто у меня вместо struct там class ну и названия оригинальные.

Вот отсюда поподробнее. Как наложить свой класс на уже существующий, ведь там конструкторы/деструктуры/VMT? Т.е. как спроецировать объявленный тобою класс hero на тот, что уже есть в игре?

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

offlineАватара пользователя
AlexSpl  
имя: Александр
Эксперт
Эксперт
 
Сообщения: 5588
Зарегистрирован: 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: База данных IDA от void17

Сообщение AlexSpl » 21 ноя 2021, 17:37

Короче, идея такая. Сейчас в homm3.h и H3API все классы заменены на структуры. Реально ли их переделать в классы и работать с ними так, как если бы ты работал с исходным кодом Героев 3?
Вернуться к началу

Пред.След.

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

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

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