Current time: 22.11.2024, 11:15 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
Плагины. Обсуждение
» Plugins. Discussion & Questions
Author Message
Bes Offline

Posts: 5422
Post: #151

т.е., если я правильно понимаю, достаточно взять exe-шник от GOG версии, накатить на него ВСЁ, что сейчас есть на h3era.exe, то мы сможем без исходников прикрутить эту поддержку доп.столбца?
Я понимаю, что все адреса нынешней ERA сместятся хрен знает куда. не о том вопрос...
19.09.2020 04:44
Visit this user's website Find all posts by this user Quote this message in a reply
igrik Offline

Posts: 2819
Post: #152

Чёто я шибко сомневаюсь.
Дайте экзешник GOGa, скажу наверняка...


game bug fixes extended.dll || My Plugins || My GitHub
19.09.2020 05:23
Visit this user's website Find all posts by this user Quote this message in a reply
daemon_n Offline
Administrators

Posts: 4343
Post: #153

igrik, вот - Ру exe из официальной ГОГ версии
Вот мне делать нечего посреди ночи148

UPD:И вот что мы имеем (Click to View)


Image: widget.png?style=banner2

Новейший Heroes Launcher
19.09.2020 05:35
Visit this user's website Find all posts by this user Quote this message in a reply
Bes Offline

Posts: 5422
Post: #154

да всем нам, по ходу, не спится перед выходными
19.09.2020 05:36
Visit this user's website Find all posts by this user Quote this message in a reply
igrik Offline

Posts: 2819
Post: #155

Да, действительно.
Размер структуры монстра в нашем exe 116 байт.
В этом exe GOG Rus - размер структуры 120 байт.
Причем все поля ниже name_plural берутся со сдвигом на 1 параметр больше, в сравнении с нашим exe.

И локализация этого exe точно заточена под русский язык, потому что в самом exe я встретил несколько предложений на русском.

Но прикрутить такое обозначение к нашему экзешнику: во-первых = дикий геморой, во-вторых = сразу отлетят HD, Тифон, половина моих плагинов и т.д.
Ну вы в общем поняли...


game bug fixes extended.dll || My Plugins || My GitHub
19.09.2020 12:02
Visit this user's website Find all posts by this user Quote this message in a reply
SergOz Offline

Posts: 1315
Post: #156

Немного разобрался с хуками на исполняемый код.
В теме UN:C igrik дал ссылку на ERM_Hooker. Скачал. Не знаю чем открыть файл.
Интересно же что в нём... 42


Карта-мод "Война на Холсте"
21.09.2020 03:06
Find all posts by this user Quote this message in a reply
daemon_n Offline
Administrators

Posts: 4343
Post: #157

SergOz, хукер уже давно поставляется с Эрой (2.8 или 2.9) - по сути, это слегка изменённая dll.


Image: widget.png?style=banner2

Новейший Heroes Launcher
21.09.2020 03:12
Visit this user's website Find all posts by this user Quote this message in a reply
SergOz Offline

Posts: 1315
Post: #158

daemon_n, это радует, но где он? И опять же - чем открыть? что в нём? как пользоваться?


Карта-мод "Война на Холсте"
21.09.2020 03:30
Find all posts by this user Quote this message in a reply
daemon_n Offline
Administrators

Posts: 4343
Post: #159

SergOz, конечно же в плагинах!
Открыть дебаггером


Image: widget.png?style=banner2

Новейший Heroes Launcher
21.09.2020 03:43
Visit this user's website Find all posts by this user Quote this message in a reply
SergOz Offline

Posts: 1315
Post: #160

daemon_n, Laie_69


Карта-мод "Война на Холсте"
21.09.2020 03:44
Find all posts by this user Quote this message in a reply
daemon_n Offline
Administrators

Posts: 4343
Post: #161

SergOz, расскажи потом, пожалуйста, как им пользоваться)
Хотя я понял так. С его помощью можно создать триггер на чуть ли не любое событие. Лучший пример для меня - 80 wog base.erm скрипт.


Image: widget.png?style=banner2

Новейший Heroes Launcher
21.09.2020 06:17
Visit this user's website Find all posts by this user Quote this message in a reply
igrik Offline

Posts: 2819
Post: #162

(21.09.2020 03:30)SergOz Wrote:  daemon_n, это радует, но где он? И опять же - чем открыть? что в нём? как пользоваться?
ERM Hooker - это плагин. Открывать его ничем не нужно. Он просто должен находиться в папке "EraPlugins" и всё.

Данный плагин позволяет ставить "крючки" в код игры. Как это выглядит:
Объясню на примере обычного текста, например из Колобка:

Code:
Жили-были старик со старухой.
Вот и говорит старик старухе:
— Поди-ка, старуха, по коробу поскреби, по сусеку помети, не наскребешь ли муки на колобок.
Взяла старуха крылышко, по коробу поскребла, по сусеку помела и наскребла муки горсти две.
Замесила муку на сметане (add igrik: тут я хочу, чтобы старуха добавила в тесто 200 грамм коньяка), состряпала колобок, изжарила в масле и на окошко студить положила.
Колобок полежал, полежал, взял да и покатился — с окна на лавку, с лавки на пол, по полу к двери, прыг через порог — да в сени, из сеней на крыльцо, с крыльца на двор, со двора за ворота, дальше и дальше...

Т.е. я захотел в какой-то момент расширить определенные действия старухи, т.е. поставить "крючок" в текст сказки, чтобы в момент прохода по этим строкам произвести свои определенные манипуляции, а вернуться в текст книги чтобы она продолжилась дальше.
Для начала мне нужно определить адрес, куда я буду ставить "кручок" (далее я буду называть "хук", от англ. - "hook")

В данной сказке адрес - это 5 строка 25 символ, и сюда я внедряюсь путем устанавки хука.

!?FU(My_Hook);
; Далее я пишу
", налила в тесто 200 грамм коньяка, еще раз замесила тесто, оставила на пол часа подышать"
hooker->вернуться_в_вызванное_место_Сказки.

На этом все. Теперь сказка будет выглядеть так:

Code:
Жили-были старик со старухой.
Вот и говорит старик старухе:
— Поди-ка, старуха, по коробу поскреби, по сусеку помети, не наскребешь ли муки на колобок.
Взяла старуха крылышко, по коробу поскребла, по сусеку помела и наскребла муки горсти две.
Замесила муку на сметане, налила в тесто 200 грамм коньяка, еще раз замесила тесто, оставила на пол часа подышать, состряпала колобок, изжарила в масле и на окошко студить положила.
Колобок полежал, полежал, взял да и покатился — с окна на лавку, с лавки на пол, по полу к двери, прыг через порог — да в сени, из сеней на крыльцо, с крыльца на двор, со двора за ворота, дальше и дальше...


Теперь стало понятнее что такое хукер и зачем он нужен?

Вот небольшая база хуков и ERM скриптов под них (для обучения)
Но вопросы лучше задавать тут, а не в той уже умершей теме.


game bug fixes extended.dll || My Plugins || My GitHub
21.09.2020 14:15
Visit this user's website Find all posts by this user Quote this message in a reply
SergOz Offline

Posts: 1315
Post: #163

igrik, большое спасибо за подробный ответ!
Я вчера, разбирясь с хуками, всё так и понял. Базу хуков тоже видел и некоторые меня очень порадовали и я их скопировал на свой комп. Но, я не понял как узнавать адрес хука, чтобы подставить в
и был почти уверен, что ERM_Hooker это что-то типа базы с адресами, потому и хотел его вскрыть (попрактиковаться в хакерстве).

P.S. А бабка точно добавляла спиртное в колобок - иначе бы он не был таким борзым


Карта-мод "Война на Холсте"
(This post was last modified: 21.09.2020 15:04 by SergOz.)
21.09.2020 15:03
Find all posts by this user Quote this message in a reply
Night Offline

Posts: 462
Post: #164

igrik, То есть hook, это словно влезть в очередь (в исполняемых командах игры) и при этом, чтобы очередь не возмущалась, а осталась при мнение, что так и должно быть? Отжали место, ну и ладно - верная аналогия?

То есть, если мне захотелось сделать:
1) Лазурным драконам убрать призыв водных элементов, а сделать каждый ход от него ледяное кольцо.
2) Перехватить в момент использования заклинания "Вызвать корабль" надписи "здесь нет места для лодки", пояснить игре, что всё написано, а взамен дать скастоваться заклинанию вертикаль из New Skills мода?

Для всего сказанного выше отлично подойдёт ERM Hooker, если разобраться в его работе и научиться применять?
21.09.2020 15:24
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16657
Post: #165

Night, для всего этого нужно ещё базовое знание ассемблера и низкроуровневого отладчика вроде OllyDebugger или x32dbg. Если бы всё было элементарно, чужой скомпилированный код читался бы как текст на родном языке и ничего искать не нужно было. igrik и товарищи писали руководства по нахождению адресов в соседних темах.


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
21.09.2020 15:51
Find all posts by this user Quote this message in a reply
« Next Oldest | Next Newest »
Post Reply 


Forum Jump:

Powered by MyBB Copyright © 2002-2024 MyBB Group