AlexSpl писал(а):
Да, действительно, Вы правы, все логично.
AlexSpl писал(а):
Ок.
Объявления | ||
---|---|---|
Друзья, если не получается зарегистрироваться, напишите на почту vdv_forever@bk.ru. Я оторву свою задницу от всех дел и обязательно Вас активирую! Добро пожаловать на геройский форум! |
Re: Как создать плагин для HD модаAlexSpl писал(а): Да, действительно, Вы правы, все логично. AlexSpl писал(а): Ок. |
Re: Как создать плагин для HD модаИсправленный код. У объектов Crypt, Derelict Ship и Shipwreck не устанавливается флаг посещения (именно посещения без зачистки), поэтому можно либо просто не проверять, посещён ли банк, отображая о нём информацию всегда (но такой вариант разве что для разведки карты годится), либо завести глобальный массив (можно список) посещённых банков в коде самого плагина. Банк однозначно идентифицируется по адресу его тайла-входа (mapItem), а отмечать посещение можно в хуке showGuards. Но это уже элементарная задача, не относящаяся к реверсу.
* * * А ещё, если очень хочется, можно самому устанавливать флаг посещения банков (замените текст хука showGuards на следующий):
Заменил o_MeID на o_ActivePlayerID. Нужно как-нибудь разобраться. Когда писали с Ben80 плагины для Eagle Eye и Disguise, вроде, разобрался. А теперь вот снова всё забыл o_MeID - это идентификатор игрока, но почему-то в хот-сите он является идентификатором первого игрока даже во время хода другого. o_ActivePlayerID - это идентификатор активного игрока, т.е. того, который ходит. Но что происходит в сетевой игре? Сможет ли игрок корректно видеть информацию о банках в сетевой игре не во время его хода? Последний раз редактировалось AlexSpl 20 янв 2021, 12:32, всего редактировалось 1 раз.
|
Re: Как создать плагин для HD модаОтлично. Спасибо. Я вот думаю насчет этого:
Rolex писал(а): Доступно для найма: Гномы - 24 Понятно, что для Лагеря беженцов будет свой хук. А вот как быть с внешними жилищами существ. Можно ли их сделать через один лоухук или хайхук (получать имена нужных существ и их кол-во по ПКМ по нужному жилищу), или это придется на каждое жилище существ свой хук делать? Учитывая кол-во существ в игре - это будет жесть... |
Re: Как создать плагин для HD модаAlexSpl писал(а): Да, сетевую надо бы еще затестить. Но я вот только что в одиночке забавный момент увидел. Если мы посещаем Склеп и принимаем бой и после сдаемся, то после этого уже по правой клавише мыши можно посмотреть охрану. |
Re: Как создать плагин для HD модаЭто и с исправлением выше или без? Т.е. если вручную отмечать посещение, то охрана будет показана даже в случае отказа.
|
Re: Как создать плагин для HD модаЭто первый варинт без исправления. То есть в первом варианте мы не видим после отказа, но видим после принятия боя, после того как герой игрока сдадится/сбежит не взяв Склеп. С исправлением же мы видим в любом случае независмо от того приняли мы бой или нет.
Последний раз редактировалось Rolex 24 янв 2021, 23:42, всего редактировалось 2 раз(а).
|
Re: Как создать плагин для HD модаПолучается, в оригинале для Склепа (и двух его морских аналогов) посещение засчитывается, только если принять бой.
|
Re: Как создать плагин для HD модаЦитата: Хук на сообщение по правому клику - универсальный, в нём можно обработать любой объект. А вот на посещение будет два или три дополнительных хука. 1) Для жилищ 1-го уровня, 2) для жилищ, где можно нанять один тип существ за ресурсы, и (возможно) 3) для жилищ, где можно нанимать больше одного типа существ. |
Re: Как создать плагин для HD модаГлянул как сделано в Хота. Сравнил все в сетевой игре в Хота и в Сод с вашим плагином с исправленной showGuards. Там при входе отображается охрана и после посещения и отказа от боя также отображается охрана по ПКМ (за Посещение (Посещено/Не посещено) ничего не пишется). Но при этом в оригинале даже после того как Склеп взяли, всегда вылазит диалог "Хотите обыскать могилы", с возможностью отказатся. Только вот в оригинале охрана не отображается, то есть игрок не знает посещал ли этот Склеп до него кто-то другой и соотв скорей всего будет соглашатся. В случае с Хотой диалог с кол-вом охраны и кнопками Согласия и Отказа отображается до тех пор пока Склеп не взяли. При отказе просто по ПКМ выводится охрана. А вот как только игрок берет Склеп, то при повторном посещении ним или другим игроком диалог с охраной и возможностью отказатся не выводится, чтобы игрок не смог отказатся и сразу получил -1 к Морали ибо охраны нет и она не отобразится.
В нашем же случае получется, что когда Склеп не взят выводится диалог "Хотите обыскать могилы?" и охрана, а когда уже взят, то только диалог, но уже без охраны. Соответственно игроки будут тупо отказыватся, так как будут понимать, что Склеп уже пуст. Поэтому надо бы этот код с обновленной showGuards как-то допилить для Склепа и Кораблей, сделав так, чтобы при посещении игроком уже разграбленного Склепа не выводился диалог без охраны с возможностью отказаться от обыска, а сразу же как в Хота прилетал сюрприз в виде -1 Морали. Как будто бы посещая игрок заведомо дает свое согласие на обыск. AlexSpl писал(а): Если другой игрок в сетевой игре в оригинале c подключенным плагином показа охраны зайдет в уже разрабленный Склеп, охраны не увидит, при посещении и по ПКМ ее уже нет, но сможет отказатся от обыска уже разграбленного Склепа и по ПКМ будет выводится (Посещено), а если отключить плагин показа охраны (чистый оригинал без плагина), то в таком случае увидим (Не посещено). Если же убрать этот диалог, когда Склеп пуст и сразу кидать сюрприз, как будто бы игрок согласился на обыск уже разграбленного Склепа, тогда все будет ок. Последний раз редактировалось Rolex 25 янв 2021, 08:30, всего редактировалось 2 раз(а).
|
Re: Как создать плагин для HD модаНасчёт однозначного определения собственного номера игрока. Посмотрел код, который показывает хинты по правому клику игрокам. Думаю, правильно использовать o_GameMgr->GetMeID() вместо o_ActivePlayerID (или o_MeID). Если верить коду, эта функция всегда возвращает именно номер игрока (т.е. наш), играем ли мы синглплеер, хотсит или по сети. o_ActivePlayerID нужно использовать, если мы хотим получить номер игрока, который ходит в данный момент. o_MeID я бы вообще не использовал из-за нюансов в хотсите.
* * * Вообще, нужно как-нибудь собрать инфу, как получить ту или иную информацию, имея определённый набор данных, в один пост, а не искать её по всему форуму. Например, сижу-туплю, не знаю, как получить _Dwelling_* по _MapItem_* |
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3