Объявления

Друзья, если не получается зарегистрироваться, напишите на почту 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 » 14 авг 2019, 07:59

Хорошо. Но никак не могу понять: у Вас есть флаг GamePlayChangesOn для первого чекбокса, а где аналогичный флаг для второго?
Вернуться к началу

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

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

Сообщение as239 » 14 авг 2019, 08:01

Цитата:
Хорошо. Но никак не могу понять: у Вас есть флаг GamePlayChangesOn для первого чекбокса, а где аналогичный флаг для второго?

А у меня его нет. Он зашит в HD mod (HW rules встроен в него). И где он и как его достать я не знаю.

Я думал что как-то можно до него достучаться через элемент диалога.
Вернуться к началу

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 » 14 авг 2019, 08:08

Окей. Возможно, проблема именно в этом. При клике на первом чекбоксе Вы точно изменяете этот флаг HW rules? Может, он остаётся равным false и потому его нельзя сбросить: !false = true?
Вернуться к началу

offlineigrik  
Подмастерье
Подмастерье
 
Сообщения: 108
Зарегистрирован: 14 сен 2017, 12:35
Пол: Не указан
Поблагодарили: 84 раз.

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

Сообщение igrik » 14 авг 2019, 08:13

RoseKavalier, why does the error appear?
VS 2019 community
Код: Выделить всё
Error (active)   E0020   identifier "DOUBLE" not determined   Test   D:\My_Projects\HoMM3\Headers\H3Structures.h   1276   
Error (active)   E0020   identifier "DOUBLE" not determined   Test   D:\My_Projects\HoMM3\Headers\H3Structures.h   2924   
Error (active)   E0020   identifier "DOUBLE" not determined   Test   D:\My_Projects\HoMM3\Headers\H3Structures.h   2925   
Error (active)   E0020   identifier "DOUBLE" not determined   Test   D:\My_Projects\HoMM3\Headers\H3Structures.h   2926


Test.cpp
Код: Выделить всё
#include "pch.h"
#include "../../Headers/H3API.h"

Patcher* _P;
PatcherInstance* _PI;


void StartPlugin()
{

   return;
}


BOOL APIENTRY DllMain(HMODULE hModule, DWORD  ul_reason_for_call, LPVOID lpReserved )
{
   static BOOL pluginOn = FALSE;
   switch (ul_reason_for_call)
   {
   case DLL_PROCESS_ATTACH:
      if (!pluginOn)
      {
         _P = GetPatcher();
         _PI = _P->CreateInstance("Test_Plugin");

         StartPlugin();
      }
      break;
   case DLL_THREAD_ATTACH:
   case DLL_THREAD_DETACH:
   case DLL_PROCESS_DETACH:
      break;
   }
   return TRUE;
}


 screens
Изображение
Изображение
Последний раз редактировалось igrik 14 авг 2019, 08:17, всего редактировалось 1 раз.
Вернуться к началу

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

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

Сообщение as239 » 14 авг 2019, 08:14

Цитата:
Окей. Возможно, проблема именно в этом. При клике на первом чекбоксе Вы точно изменяете этот флаг HW rules? Может, он остаётся равным false и потому его нельзя сбросить: !false = true?

Я не знаю как изменить значение этого флага. Я думал что это можно сделать через вызов ToggleFlag(ValueFlag).

Вот так можно получить значение этого флага:
Код: Выделить всё
Item2Stack->CastDef()->GetFrame();

Но вот как его установить?
Вернуться к началу

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 » 14 авг 2019, 08:21

Цитата:
Но вот как его установить?

Я не могу проверить, у меня нет кода. Посмотрите остальные методы. Если есть get должен быть и set :smile1:
Вернуться к началу

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 » 14 авг 2019, 08:24

2igrik: До SDK RoseKavalier ещё не добрался, но почему бы не определить DOUBLE как double, ведь наверняка это один и тот же тип. А так, возможно, какого-то хедера не хватает, где определён DOUBLE.

P.S. И вообще, переопределять базовые типы такое себе. Ладно бы речь шла о кроссплатформенности.
Последний раз редактировалось AlexSpl 14 авг 2019, 08:29, всего редактировалось 1 раз.
Вернуться к началу

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

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

Сообщение as239 » 14 авг 2019, 08:27

Цитата:
Я не могу проверить, у меня нет кода. Посмотрите остальные методы. Если есть get должен быть и set

Пробовал.
Вот так работает, флаг устанавливается:
Код: Выделить всё
Item2Stack->CastDef()->SetFrame(1);

Но при этом в игре он потом не учитывается.

А так нет, флаг не сбрасывается:
Код: Выделить всё
Item2Stack->CastDef()->SetFrame(0);


@igrik
На VS Express 2013 проблем нет.
Последний раз редактировалось as239 14 авг 2019, 08:36, всего редактировалось 1 раз.
Вернуться к началу

offlineigrik  
Подмастерье
Подмастерье
 
Сообщения: 108
Зарегистрирован: 14 сен 2017, 12:35
Пол: Не указан
Поблагодарили: 84 раз.

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

Сообщение igrik » 14 авг 2019, 08:29

AlexSpl писал(а):

2igrik: До SDK RoseKavalier ещё не добрался, но почему бы не определить DOUBLE как double, ведь наверняка это один и тот же тип. А так, возможно, какого-то хедера не хватает, где определён DOUBLE.

А я вот только впервые добрался и хочу попробовать.
Хедеры все скачаны сегодня. Перепроверены их зависимости по несколько раз. Я уверен, что я загрузил все хедеры (https://github.com/RoseKavalier/H3Plugins/tree/master/Headers)

Что пробовал сделать:
Я определял #define DOUBLE double (не помогло)
Также я делал "Project -> Properties -> General -> Windows SDK Version -> select 10.0.15063.0." (не помогло)
Вернуться к началу

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 » 14 авг 2019, 08:39

2igrik: А добавить typedef double DOUBLE?
Вернуться к началу

Пред.След.

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

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

Сейчас этот форум просматривают: Yandex [bot] и гости: 2

cron