Объявления
Поздравляем
Roman2211


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

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

Герои Меча и Магии III: Возрождение Эрафии, Герои Меча и Магии III Дыхание Смерти, Герои Меча и Магии III Клинок Армагеддона, Герои Меча и Магии III Хроники Героев
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 » 24 янв 2019, 06:27

Цитата:
И это очень сложно будет потом выявить.

А с плагинами не то же самое? Или их наличие/отсутствие как-то контролируется модом?

Так тоже работает:

Код: Выделить всё
int __stdcall patchDll(LoHook* h, HookContext* c)
{
    HMODULE hHW_SOD = GetModuleHandleA("HW_SOD.dll");

    _PI->WriteByte((int)hHW_SOD + 0xFE2C, 0xEB);
   
    return EXEC_DEFAULT;
}
Вернуться к началу

offlineas239  
имя: Анатолий
Ветеран
Ветеран
 
Сообщения: 527
Зарегистрирован: 29 дек 2018, 14:17
Пол: Мужчина
Поблагодарили: 38 раз.

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

Сообщение as239 » 24 янв 2019, 11:50

AlexSpl писал(а):

А с плагинами не то же самое?


Почти то же самое, просто я включу это изменение в тот же плагин что и на улики и консы.
А заметить по сейвам, что соперник получал не выверен и ангелов, гораздо проще, чем как-то обнаружить незаконную перестройку ГМ.

AlexSpl писал(а):

Или их наличие/отсутствие как-то контролируется модом?

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

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 » 24 янв 2019, 13:22

Да, можно, например, сделать проверку хостом наличия плагина у гостей, и не соединяться с ними, если плагин отсутствует. Гость, при наличии плагина, будет сообщать хосту какие-то дополнительные данные (версию плагина, например). Хост с плагином будет проверять их наличие и корректность.

Вообще, такую проверку должен делать HD мод, а не плагин :smile1: Потому что плагинов можно наподключать разных и кучу, с одинаковым названием, но с разным функционалом, в том числе таких, которые патчат другие плагины. Здесь работы очень много.
Вернуться к началу

offlineas239  
имя: Анатолий
Ветеран
Ветеран
 
Сообщения: 527
Зарегистрирован: 29 дек 2018, 14:17
Пол: Мужчина
Поблагодарили: 38 раз.

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

Сообщение as239 » 24 янв 2019, 15:06

AlexSpl писал(а):

Да, можно, например, сделать проверку хостом наличия плагина у гостей, и не соединяться с ними, если плагин отсутствует. Гость, при наличии плагина, будет сообщать хосту какие-то дополнительные данные (версию плагина, например). Хост с плагином будет проверять их наличие и корректность.

Вообще, такую проверку должен делать HD мод, а не плагин :smile1: Потому что плагинов можно наподключать разных и кучу, с одинаковым названием, но с разным функционалом, в том числе таких, которые патчат другие плагины. Здесь работы очень много.


А надпись вывести насколько сложно?
Вернуться к началу

offlineBen80  
имя: Сергей
Эксперт
Эксперт
 
Сообщения: 1318
Зарегистрирован: 18 июн 2017, 06:49
Пол: Не указан
Поблагодарили: 336 раз.

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

Сообщение Ben80 » 24 янв 2019, 16:27

AlexSpl,
не хотите такой код добавить, на случай если HW_SOD.dll изменится ?

Код: Выделить всё
            int DllPatchAddress = 0;
            int approxDllSize = 0x2557D;

            if(*(int*)((int)hHW_SOD + 0xFE1A) == 0x4858036A)
              if(*(int*)((int)hHW_SOD + 0xFE1E) == 0x16ACA8B)
                if(*(int*)((int)hHW_SOD + 0xFE22) == 0x5A0B850)
                  DllPatchAddress = (int)hHW_SOD + 0xFE2C;
           
            if(DllPatchAddress == 0)
            {
              for(int i=0; i<approxDllSize; i++)
              {
                if(*(int*)((int)hHW_SOD + i) == 0x4858036A)
                  if(*(int*)((int)hHW_SOD + i + 4) == 0x16ACA8B)
                    if(*(int*)((int)hHW_SOD + i + 8) == 0x5A0B850)
                    {
                      DllPatchAddress = (int)hHW_SOD + i + 6;
                      break;
                    }
              }
            }
Вернуться к началу

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 » 24 янв 2019, 16:53

Это бы сработало, если бы инструкции просто переместились, но малейшие изменения в исходном коде - и на выходе будут совсем другие инструкции.

Цитата:
А надпись вывести насколько сложно?

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

offlineBen80  
имя: Сергей
Эксперт
Эксперт
 
Сообщения: 1318
Зарегистрирован: 18 июн 2017, 06:49
Пол: Не указан
Поблагодарили: 336 раз.

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

Сообщение Ben80 » 24 янв 2019, 17:08

AlexSpl писал(а):

Это бы сработало, если бы инструкции просто переместились, но малейшие изменения в исходном коде - и на выходе будут совсем другие инструкции.


Полагаю, что эти инструкции на выходе не изменятся - они не связаны с переходами по адресам. Просто я поисследовал пару других геройских экзешников - H3Blade.exe и буковский СОД, и легко находил знакомые места - инструкции не меняются. Если было eax, то оно и остается eax.

Так что - рекомендую !
Вернуться к началу

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 » 24 янв 2019, 17:10

А как же Complete и SoD? Ещё зависит от компилятора/настроек компилятора, не говоря уже о том, что можно переписать условие/код. Сейчас например, mov eax, 0x0; call eax, а могло бы быть просто call 0x0 и т.п.
Вернуться к началу

offlinequetzalcoatl  
имя: vik
Новичок
Новичок
 
Сообщения: 27
Зарегистрирован: 12 янв 2019, 15:28
Пол: Мужчина
Поблагодарили: 11 раз.

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

Сообщение quetzalcoatl » 24 янв 2019, 18:51

Кто-то знает, какая основная идея на уровне плагина добавления гигантских размеров карты?
Вернуться к началу

offlineBen80  
имя: Сергей
Эксперт
Эксперт
 
Сообщения: 1318
Зарегистрирован: 18 июн 2017, 06:49
Пол: Не указан
Поблагодарили: 336 раз.

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

Сообщение Ben80 » 24 янв 2019, 19:13

AlexSpl писал(а):

А как же Complete и SoD?


Вогобаза, которой мы с вами постоянно пользуемся, она как раз и основана на SoD 3.2
Похоже, все возможности Комплита (SoD+AB) были заложены уже в содовский экзешник. Нужно просто включить режим Комплита изменением 1-2 констант в коде. А почему Комплит потом вышел как еще один экзешник (вроде чуть больший по размеру) - не могу сказать, не смотрел его. Похоже, просто коммерция, ничего более.
Вернуться к началу

Пред.След.

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

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

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

cron