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


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

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

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

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

Сообщение as239 » 05 апр 2020, 09:06

Да именно так.
Вернуться к началу

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 » 05 апр 2020, 09:09

Почему у Вас canBeBlocked вместо isEntrance?
Вернуться к началу

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

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

Сообщение as239 » 05 апр 2020, 09:14

Да проверил, в актуальной версии действительно теперь так.
Я пока не обновлялся т.к. там были значительные изменения общей структуры заголовочников.
И судя по всему придется многое переделывать у себя.
Осталость только понять почему он всегда равен 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 » 05 апр 2020, 09:15

Если дело не в разнице версий API, то, возможно, там, где Вы проверяете, карта ещё не сгенерирована.
Вернуться к началу

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

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

Сообщение as239 » 05 апр 2020, 09:19

Да, похоже в этом деле.
Я проверяю в мини карте 16х16, в которой первоначально создается TreasuryBlock.
А потом уже с нее переносится на реальную карту.
Как бы в ней все-таки определить вход.

Видимо надо искать алгоритм, который устанавливает IsEntrance.
Вернуться к началу

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 » 05 апр 2020, 09:24

Понятно. Тогда не подскажу. Разве что у миникарты есть своя структура RMG_GroundTileData...
Т.е. моя идея проходить по всем тайлам миникарты 16x16. Но я не в курсе, есть ли у тайлов миникарты аналогичное поле.
Вернуться к началу

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

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

Сообщение as239 » 05 апр 2020, 09:36

Все есть, структуры и поля абсолютно те же самые - тип тот же RMG_Map.
Только видимо IsEntrance не устанавливается.
Спасибо за наводку, буду разбираться, возможно нужно просто изменить точку проверки.
Вернуться к началу

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 » 05 апр 2020, 09:55

Но при переносе миникарты isEntrance устанавливается же. Т.е. у объекта есть все данные, чтобы определить, где у него вход (интерактивная клетка). Посмотрите ещё раз на EnterX, EnterY, width и height объекта. Действительно ли вход (в системе координат миникарты) имеет координаты (X + EnterX; Y + EnterY), где X и Y - координаты объекта на миникарте?
Вернуться к началу

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

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

Сообщение RoseKavalier » 05 апр 2020, 13:58

as239 писал(а):

А как определить координату входа в объект.
Я перебираю все клетки и мне нужно понять является ли эта клетка входом в объект.
Я думал так: obj->x+(-)obj->properties->prototype->EnterX.
Где obj:
Код: Выделить всё
         RMG_MapItem *minixyz = MiniMap->GetMapItem(minx, miny, 0);
         if (!minixyz->tileData.hasObject) continue;
         RMG_Object *obj = *minixyz->objects[0];

Но например у улья EnterX=1, у консерватории EnterX=0, у арены, утопии, циклопника, фабрики боевых машин EnterX=1.
Не вижу логики.


EnterX and EnterY from object properties relate to offset from bottom right corner (the same way mask bitfield counts this tile as 0), 8 width max and 6 height max

Изображение

 
Изображение
Изображение


If you have additions to provide for H3API, they are most welcome. I continue to update it based on my projects but unfortunately I cannot cover everything.
Вернуться к началу

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

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

Сообщение as239 » 05 апр 2020, 14:38

Thanks a lot, now its clear!

And what about "isEntrance"? Is it correct?
As for me, the previous name "canBeBlocked" was correct.
Its definitely used in relief building.
F.e. i did it:
Код: Выделить всё
            minixyz1->tileData.isBlocked = 0;
            minixyz1->tileData.mustBeBlocked = 1;

There is no obstacle at the tile.
But with that code it is:
Код: Выделить всё
            minixyz1->tileData.isBlocked = 0;
            minixyz1->tileData.mustBeBlocked = 1;
            minixyz1->tileData.canBeBlocked = 1;


Unfortunately, I have no any additions for API.
I’ve only made some progress in understanding how objects are placing at the map.
Вернуться к началу

Пред.След.

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

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

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

cron