Zur13
Posts: 223
|
Как в ЕРМ скрипте обнаружить нажатия на кнопки Передачи всех артефактов/артефактов куклы героя или обмена всеми артефактами/обмена артефактами с кукол героев на экране встречи героев?
|
|
07.07.2020 00:43 |
|
igrik
Posts: 2819
|
|
07.07.2020 00:45 |
|
Zur13
Posts: 223
|
(07.07.2020 00:45)igrik Wrote: Кнопки которые HD-шные?
Да, они же вроде только HD модом добавляются, в оригинале их небыло.
|
|
07.07.2020 01:13 |
|
igrik
Posts: 2819
|
|
07.07.2020 01:28 |
|
wessonsm
Posts: 792
|
Zur13, daemon_n, проверил, !?CM3 действительно срабатывает для HD-шного окна встречи героев.
Id кнопок можно проверить вот так (по правому клику):
Кнопки передачи артов 450-452.
(This post was last modified: 07.07.2020 08:42 by wessonsm.)
|
|
07.07.2020 08:42 |
|
Zur13
Posts: 223
|
(07.07.2020 03:27)daemon_n Wrote: А CM:I?y1; ? Если не ошибаюсь, Id этих кнопок статичный. Я пытался данный код улучшить для передачи военных машин. Есть даже эрм скрипт для этого в вог скриптс. Там много авторов, но сделано через позицию курсора на экране в момент клика. Вполне все отслеживалось. Могу, конечно, путаться, но проверить стоит.
Как пример - без hd mod id кнопок героев на кп 39-43, с - 39-46. Справка содержит инфо лишь о первых 5. Так что данный момент работает.
(07.07.2020 08:42)wessonsm Wrote: Zur13, daemon_n, проверил, !?CM3 действительно срабатывает для HD-шного окна встречи героев.
Id кнопок можно проверить вот так (по правому клику):
Кнопки передачи артов 450-452.
Подумал что в первый раз когда сам проверял что-то накосячил, но нет, проверил только что еще раз, у меня для правой кнопки мыши срабатывает перехват, а для левой - нет.
(This post was last modified: 07.07.2020 12:50 by Zur13.)
|
|
07.07.2020 12:48 |
|
igrik
Posts: 2819
|
(07.07.2020 12:48)Zur13 Wrote: Подумал что в первый раз когда сам проверял что-то накосячил, но нет, проверил только что еще раз, у меня для правой кнопки мыши срабатывает перехват, а для левой - нет.
Поэтому я и написал, что для ERMа это практически неподъемная задача. Для ЛКМ.
Проблема вот в чём:
- HD мод ставит перехват на функцию обработки событий в окне встречи героев и запускает свою функцию, скажем "Heroes_Meet_Proc", и выполняет сначала свои действия, а лишь потом запускает оригинальный обработчик (и то не всегда). Например, обработав действия своих кнопок, HD выходит из функции и НЕ запускает орининальный обработчик. Именно поэтому не ловится ЛКМ по нажатию на HD-шные кнопки
Выглядит это так:
Code:
0x5B0100_Hook Heroes_Meet_Proc ()
{
- сначала идет обработка действий HD по новым кнопкам. И если это кнопки HD, то выполняются действия с артами или монстрами, а потом идет возврат из этой функции минуя нижеследующую строку.
- а только потом запускается оригинальный обработчик действий, на котором висят хуки Вога, которые и дают возможность работать ERMу
}
В итоге чтобы сделать обработку ERMа до действий HD, нужно выловить динамический адрес функции Heroes_Meet_Proc (что легко сделать), и найти в ней место для ERM хука (вот в этом самая большая сложность)
Но я попробую что то придумать. Хотя и не обещаю, что получится.
game bug fixes extended.dll || My Plugins || My GitHub
|
|
07.07.2020 13:16 |
|
Zur13
Posts: 223
|
(07.07.2020 13:16)igrik Wrote: (07.07.2020 12:48)Zur13 Wrote: Подумал что в первый раз когда сам проверял что-то накосячил, но нет, проверил только что еще раз, у меня для правой кнопки мыши срабатывает перехват, а для левой - нет.
Поэтому я и написал, что для ERMа это практически неподъемная задача. Для ЛКМ.
Проблема вот в чём:
- HD мод ставит перехват на функцию обработки событий в окне встречи героев и запускает свою функцию, скажем "Heroes_Meet_Proc", и выполняет сначала свои действия, а лишь потом запускает оригинальный обработчик (и то не всегда). Например, обработав действия своих кнопок, HD выходит из функции и НЕ запускает орининальный обработчик. Именно поэтому не ловится ЛКМ по нажатию на HD-шные кнопки
Выглядит это так:
Code:
0x5B0100_Hook Heroes_Meet_Proc ()
{
- сначала идет обработка действий HD по новым кнопкам. И если это кнопки HD, то выполняются действия с артами или монстрами, а потом идет возврат из этой функции минуя нижеследующую строку.
- а только потом запускается оригинальный обработчик действий, на котором висят хуки Вога, которые и дают возможность работать ERMу
}
В итоге чтобы сделать обработку ERMа до действий HD, нужно выловить динамический адрес функции Heroes_Meet_Proc (что легко сделать), и найти в ней место для ERM хука (вот в этом самая большая сложность)
Но я попробую что то придумать. Хотя и не обещаю, что получится.
Буду очень благодарен, я уже на финальной стадии, осталось чуть ИИ научить пользоваться модом и выложу раннюю версию.
|
|
07.07.2020 13:24 |
|
planetavril
Posts: 87
|
someone could create a plugin to enable blocked buildings and be able to choose which ones to unlock?for example enable:mage guild 4 and 5 for all town,hrd2,hrd2upg for the castle,extra animation for tower and inferno,disable dock and boat for necropolis
|
|
07.07.2020 14:17 |
|
Berserker
Posts: 16657
|
|
07.07.2020 14:21 |
|
XEPOMAHT
Posts: 2356
|
(07.07.2020 14:21)Berserker Wrote: зависимости строения жёстко закодированы в коде?
Нет, там простая таблица.
(07.07.2020 14:21)Berserker Wrote: Есть возможность их элегантно поменять плагином?
Да хоть ERM-ом:
ERM-HELP Wrote:СА:B#/$
Настройка зданий города: # = 1 – построить здание $ # = 2 – разрушить здание $ # = 3 – проверить, построено ли здание $ (во флаг 1) # = 4 – разрешить для постройки здание $ # = 5 – запретить для постройки здание $ # = 6 – построить здание в городе, используя внутреннюю функцию
Шестая опция - улучшение первой, она позволяет строить многоуровневые здания (гильдия магов, к примеру) без ошибок.
CD:B0/#1/#2/$
Глобальное разрешение/запрещение построек #1 – тип города #2 – номер здания $ – 0=запретить, 1=разрешить
CD:B1/#1/#2/$1/$2
Установить зависимость построек для здания. #1 – тип города #2 – номер здания $1 – первое значение (байты 0..3), см. номера зданий $2 – второе значение (байты 4..5), см. номера зданий
CD:B2/#1/#2/#3/#4/#5/#6/#7/#8/#9/#10/#11/#12/#13/#14/#15/#16
Установить зависимость построек для здания #1 – тип города #2 – тип здания #3…#16 – номера зданий, от которых зависит здание #2
Можно использовать как инструкцию, опускать ненужные параметры. Нельзя проверить или получить.
CD:B3/#1/#2/$1/$2
Установить исключающие зависимости для здания. #1 – тип города #2 – номер здания $1 – первое значение (байты 0..3), см. номера зданий $2 – второе значение (байты 4..5), см. номера зданий
Но перевод строений из декораций в постройки (и наоборот) - уже кодом в функции, которая их проверяет и указывает зависимости строительства декораций (например в определённых городах при строительстве Ратуши/Префектуры/Муниципалитета автоматически строятся "дочерние" им декорации и т.д.), в ERA+ за счёт этого и были добавлены новые объекты строительства.
(This post was last modified: 07.07.2020 14:56 by XEPOMAHT.)
|
|
07.07.2020 14:36 |
|
planetavril
Posts: 87
|
It should be so?
ZVSE
!!IF:M^Now^;
CA-1:B1/1;
CA-1:B3/1;
CA-1:B4/3;
CD:B0/0/4/1;
CD:B1/0/4/4/2;
CD:B2/0/4/3/2/1;
(This post was last modified: 07.07.2020 15:41 by planetavril.)
|
|
07.07.2020 15:19 |
|
daemon_n
Posts: 4343
|
|
07.07.2020 15:35 |
|