Объявления

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

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

Герои Меча и Магии III: Возрождение Эрафии, Герои Меча и Магии III Дыхание Смерти, Герои Меча и Магии III Клинок Армагеддона, Герои Меча и Магии III Хроники Героев
offlineRolex  
имя: Alex
Ветеран
Ветеран
 
Сообщения: 898
Зарегистрирован: 22 сен 2020, 18:58
Откуда: УКРАИНА
Пол: Мужчина
Поблагодарили: 53 раз.

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

Сообщение Rolex » 03 фев 2021, 19:26

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

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 » 03 фев 2021, 19:32

Потому что мы Склепу вручную прописываем этот флаг во время первого визита. Пирамиде так нельзя. Склеп, если я правильно понимаю, вообще не использует этот флаг. У него просто или есть охрана, или нет. А вот у Пирамиды этот флаг используется.

Хотя не факт. код с &2000000 у меня так и не заработал. Но это можно проверить при желании.

Знаете что? Попробуйте Пирамиде выставлять флаг посещения вручную, как Склепу. Будет ли она Visited при отказе? Это самый быстрый способ проверить.
Вернуться к началу

offlineRolex  
имя: Alex
Ветеран
Ветеран
 
Сообщения: 898
Зарегистрирован: 22 сен 2020, 18:58
Откуда: УКРАИНА
Пол: Мужчина
Поблагодарили: 53 раз.

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

Сообщение Rolex » 03 фев 2021, 19:38

Ясно. Может для Пирамиды можно найти какой-то костыль? Понятно, что универсальный подход будет лучше, но в то же время и сложней в реализации.

AlexSpl писал(а):

Знаете что? Попробуйте Пирамиде выставлять флаг посещения вручную, как Склепу. Будет ли она Visited при отказе? Это самый быстрый способ проверить.

Попробуем. Интересно будет проверить.
Последний раз редактировалось Rolex 03 фев 2021, 21:12, всего редактировалось 1 раз.
Вернуться к началу

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 » 03 фев 2021, 19:45

Проверил. Используется. Но Visited с точки зрения игры означает, что Пирамида пустая. У Склепа эта инфа хотя бы не отображается. Стоп :smile1: А нам какая разница вообще? Мы просто переопределим понятие Visited. Для других игроков она всё равно не будет Visited. А отличать Visted в нашем понимании от Visited в понимании игры можно просто по отсутствию охраны (& 1).
Вернуться к началу

offlineRolex  
имя: Alex
Ветеран
Ветеран
 
Сообщения: 898
Зарегистрирован: 22 сен 2020, 18:58
Откуда: УКРАИНА
Пол: Мужчина
Поблагодарили: 53 раз.

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

Сообщение Rolex » 03 фев 2021, 19:50

Добавил в showPyramid:
mapItem->SetAsVisited(o_ActivePlayerID);

Вместо (Не посещено) получилось (Посещено) после отказа от боя. Осталось с оригинального сообщения убрать (Посещено) и всмето него вывести охрану.
Последний раз редактировалось Rolex 03 фев 2021, 19:52, всего редактировалось 2 раз(а).
Вернуться к началу

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 » 03 фев 2021, 19:51

Я тоже об этом подумал (см. выше) :smile1:

Насчёт o_ActivePlayerID. Я не на 100% уверен. Но это - активный игрок. Т.е. если Вы будете так писать, то Вы сможете просматривать чужие объекты во время ожидания своего хода. Пока думаю, что o_GameMgr->GetMeID() решает эту проблему.

Хотя в данном случае действительно всё равно.
Вернуться к началу

offlineRolex  
имя: Alex
Ветеран
Ветеран
 
Сообщения: 898
Зарегистрирован: 22 сен 2020, 18:58
Откуда: УКРАИНА
Пол: Мужчина
Поблагодарили: 53 раз.

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

Сообщение Rolex » 03 фев 2021, 20:10

В showPyramid добавил mapItem->SetAsVisited(o_GameMgr->GetMeID()).

Как я понимаю теперь нам нужно переприсвоить оригинальному сообщению в функции showGuardsRMB по Пирамиде первую строку с названием объекта, чтобы убрать два перевода строк и строку (Посещено). Как вообще более правильно поправить код, чтобы вывод был общей охраны (Толпа 20-49 и тп) из ARRAYTXT, как на скрине со Склепом без разбивки на отряды по ПКМ (разбивка только в диалоге при посещении)?

PS: Количество стеков золотых големов определяется неверно. Видимо, там какой-то свой алгоритм разбивки, который отличается от Заброшенной шахты, а потому для него getStacksCount не работает. Либо его нужно допиливать и под Пирамиду, либо под Пирамиду писать свою функцию getStacksCountPyramid. Потому как показывает, что будет 1 отряд на 40, а получаем 2 по 20 или 3 отряда (14 / 13 / 13), или что будет 2 отряда золотых по 20, а получаем 4 по 10, или показывает 3 или 4 отряда, а в итоге получаем 5 отрядов по 8. Алмазных всегда 2 по 10.
***
При этом заметил очень интересный момент, не знаю, есть ли это в ФизМиге, но я не знал. Оказывается, что если охрану Пирамиды не пробиваешь полностью (остается хотя бы 1 золотой или 1 алмазный голем), то для следующего героя охрана полностью восстанавливается до стандартных 20 алмазных и 40 золотых. У Заброшенной шахты, да и у других объектов подобного нет, выходит то кол-во монстров, которое оставалось на момент последней битвы.
Последний раз редактировалось Rolex 03 фев 2021, 22:30, всего редактировалось 10 раз(а).
Вернуться к началу

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 » 03 фев 2021, 20:21

Поставить хук туда, где добавляется "\n\n(Visited)" и переписать сообщение на своё. Завтра гляну.
Вернуться к началу

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 » 04 фев 2021, 08:45

Цитата:
PS: Количество стеков золотых големов определяется неверно. Видимо, там какой-то свой алгоритм разбивки, который отличается от Заброшенной шахты, а потому для него getStacksCount не работает. Либо его нужно допиливать и под Пирамиду, либо под Пирамиду писать свою функцию getStacksCountPyramid. Потому как показывает, что будет 1 отряд на 40, а получаем 2 по 20 или 3 отряда (14 / 13 / 13), или что будет 2 отряда золотых по 20, а получаем 4 по 10, или показывает 3 или 4 отряда, а в итоге получаем 5 отрядов по 8. Алмазных всегда 2 по 10.

Можете написать координаты (входа в Пирамиду), где это происходит?

Цитата:
При этом заметил очень интересный момент, не знаю, есть ли это в ФизМиге, но я не знал. Оказывается, что если охрану Пирамиды не пробиваешь полностью (остается хотя бы 1 золотой или 1 алмазный голем), то для следующего героя охрана полностью восстанавливается до стандартных 20 алмазных и 40 золотых. У Заброшенной шахты, да и у других объектов подобного нет, выходит то кол-во монстров, которое оставалось на момент последней битвы.

Это из-за того, что у Пирамиды как таковой охраны нет. Каждый раз инициируется бой с одной и той же армией (големами).
Последний раз редактировалось AlexSpl 04 фев 2021, 09:32, всего редактировалось 1 раз.
Вернуться к началу

offlineRolex  
имя: Alex
Ветеран
Ветеран
 
Сообщения: 898
Зарегистрирован: 22 сен 2020, 18:58
Откуда: УКРАИНА
Пол: Мужчина
Поблагодарили: 53 раз.

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

Сообщение Rolex » 04 фев 2021, 09:32

Карта: Мандат Рая.
Местность: Песок.

Координаты Пирамиды:
(31, 86, 0)
(32, 86, 0) - координаты входа
Вернуться к началу

Пред.След.

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

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

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