Wake of Gods Forum | Форум Во Имя Богов

Full Version: Плагины. Обсуждение
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
т.е., если я правильно понимаю, достаточно взять exe-шник от GOG версии, накатить на него ВСЁ, что сейчас есть на h3era.exe, то мы сможем без исходников прикрутить эту поддержку доп.столбца?
Я понимаю, что все адреса нынешней ERA сместятся хрен знает куда. не о том вопрос...
Чёто я шибко сомневаюсь.
Дайте экзешник GOGa, скажу наверняка...
igrik, вот - Ру exe из официальной ГОГ версии
Вот мне делать нечего посреди ночи148

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

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

Но прикрутить такое обозначение к нашему экзешнику: во-первых = дикий геморой, во-вторых = сразу отлетят HD, Тифон, половина моих плагинов и т.д.
Ну вы в общем поняли...
Немного разобрался с хуками на исполняемый код.
В теме UN:C igrik дал ссылку на ERM_Hooker. Скачал. Не знаю чем открыть файл.
Интересно же что в нём... 42
SergOz, хукер уже давно поставляется с Эрой (2.8 или 2.9) - по сути, это слегка изменённая dll.
daemon_n, это радует, но где он? И опять же - чем открыть? что в нём? как пользоваться?
SergOz, конечно же в плагинах!
Открыть дебаггером
daemon_n, Laie_69
SergOz, расскажи потом, пожалуйста, как им пользоваться)
Хотя я понял так. С его помощью можно создать триггер на чуть ли не любое событие. Лучший пример для меня - 80 wog base.erm скрипт.
(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 скриптов под них (для обучения)
Но вопросы лучше задавать тут, а не в той уже умершей теме.
igrik, большое спасибо за подробный ответ!
Я вчера, разбирясь с хуками, всё так и понял. Базу хуков тоже видел и некоторые меня очень порадовали и я их скопировал на свой комп. Но, я не понял как узнавать адрес хука, чтобы подставить в
и был почти уверен, что ERM_Hooker это что-то типа базы с адресами, потому и хотел его вскрыть (попрактиковаться в хакерстве).

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

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

Для всего сказанного выше отлично подойдёт ERM Hooker, если разобраться в его работе и научиться применять?
Night, для всего этого нужно ещё базовое знание ассемблера и низкроуровневого отладчика вроде OllyDebugger или x32dbg. Если бы всё было элементарно, чужой скомпилированный код читался бы как текст на родном языке и ничего искать не нужно было. igrik и товарищи писали руководства по нахождению адресов в соседних темах.
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
Reference URL's