Current time: 10.11.2024, 19:54 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
Исследование героев
» туториал(ы)
Author Message
Berserker Offline
Administrators

Posts: 16648
Post: #376

kostya_76, скомпилировал на VirtualPascal:
http://wikisend.com/download/110454/Tent.dll

FRAME соответствует опции W в Delphi. Utils не нужен.


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
10.12.2011 13:50
Find all posts by this user Quote this message in a reply
kostya_76 Offline

Posts: 33
Post: #377

Berserker, спасибо, скачал, работает.
Только цель как-бы в другом: получить работоспособный пример-шаблон подключения длл к Эре. Причем на удобной для меня платформе. В этом смысле больше бы подошел билдерAb, но хотя-бы на дельфи для начала.
Пробовал скомпилировать эту длл в Virtual Pascal v2.1 - вообще ничего не получилось. Да и после попыток работы с ним вообще всякое желание пропадает этим заниматься.

Добавил эту самую директиву W- вместо FRAME- - не помогло.
Хотя бы знать в каком направлении копать Sm.
Имеет ли смысл пытаться в отладчике докопаться до алгоритма получения этого адреса: @HOOK_tent? Думаю, это не самый верный путь.
10.12.2011 16:07
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16648
Post: #378

Quote:получить работоспособный пример-шаблон подключения длл к Эре
Есть пример для GNU C++ и для Delphi.

В Эре 1.9+ Tools\Era\SDK


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
10.12.2011 16:22
Find all posts by this user Quote this message in a reply
kostya_76 Offline

Posts: 33
Post: #379

Berserker, Так в примере подключение через длл ЕРМ-инструкций, я естественно смотрел этот пример и пробовал подключать.
Но интересует именно встраивание хуков, в частности создание с их помощью триггеров, как в примере МоР'а. Поэтому и хочу разобраться, почему не получается.

Или вот прикладной пример: нужно встраивать программу создания зеркальной карты для подмены исходной карты, созданной генератором прямо в игре. Может когда-нибудь до этого доберусь.
10.12.2011 17:35
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16648
Post: #380

Попробуйте посмотреть в Era\Tools\Era\Sources\Era 1.9 Delphi:
triggers.pas

А вообще, создание нового события - вещь не тривиальная. Нужно сперва в дизассемблере определить параметры, место перехвата и после уже писать сам перехват. Если вы для примера укажите адрес в коде игры, в который хотите вставить перехватчик, я приведу код для перехвата. При этом важно знать, в каких регистрах и адресах памяти на момент перехвата лежат нужные вам данные.


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
10.12.2011 18:53
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16648
Post: #381

Обновим тень перемещения:
493350 - F (0, 1); THISCALL;

Теперь если поменять скриптом скорость монстра, можно и сеточку обновить...


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
18.12.2011 21:42
Find all posts by this user Quote this message in a reply
Al_Mualim Offline

Posts: 5
Post: #382

(10.12.2011 13:50)Berserker Wrote:  kostya_76, скомпилировал на VirtualPascal:
http://wikisend.com/download/110454/Tent.dll
What this dll do?


Image: ubd5434.png
23.12.2011 02:04
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16648
Post: #383

New !?FU29500 trigger for tent I suppose.


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
23.12.2011 02:17
Find all posts by this user Quote this message in a reply
MOP Offline
Moderators

Posts: 1468
Post: #384

Уже несколько человек спрашивало…
Code:
; Обновить экран встречи героев
!!UN:C6962576/4/?y1; [6A3D90h] - swapManager
!!SN:E5957888/2/y1;
Не помню, но артефакты в слотах, вроде, обновляются отдельно.


Circle of destruction, hammer comes crushing
Powerhouse of energy
Whipping up a fury, dominating flurry
We create the battery
10.02.2012 18:26
Find all posts by this user Quote this message in a reply
kostya_76 Offline

Posts: 33
Post: #385

(10.12.2011 16:22)Berserker Wrote:  
Quote:получить работоспособный пример-шаблон подключения длл к Эре
Есть пример для GNU C++ и для Delphi.

В Эре 1.9+ Tools\Era\SDK
Как создать хук с помощью этого инструмента я понял. Вот только в Делфи у меня не получается создать форму в длл. Вылетает игра. В книгах обычно примеры создания форм в длл с вызовом из приложения, также написанного на Делфи .

В билдере получается форму создавать, в Делфи - хуки)

А код для GNU С++ в билдере не компилится.

Есть длл с хуком для подмены файла карты. После генерации карты, до загрузки. Подменял под отладчиком - работает.
Создаю форму. Вызываю Form1.Show(); хоть в обработчике хука, хоть при загрузке длл - вылет.
Так тоже не получается:
VAR AOwner: TComponent;
Form1 := TForm1.Create(AOwner);
Form1.Show();

Хотя в любом случае, программа для обработки карты написана на С++, и подключать ее в Делфи - это извращение.
12.02.2012 00:26
Find all posts by this user Quote this message in a reply
kostya_76 Offline

Posts: 33
Post: #386

(12.02.2012 00:33)GreyGhost Wrote:  делфи это всего навсего расширение паскаля
Я как-бы в курсе)


(12.02.2012 00:33)GreyGhost Wrote:  а вот создание FORM(окна) для перехвата функции - это извращение.

   
Откуда такое смелое предположение о цели создания формы?
Кроме как для организации интерфейса, она мне не нужна)
В приведенном мною примере особой связи между хуком и созданием формы нет.

А вообще, спасибо за содержательный комментарий.
12.02.2012 00:54
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16648
Post: #387

GreyGhost, да брось. И чего ты пост потёр из Кино/Сериалы? )
kostya_76, а какие ошибки в билдере?


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
12.02.2012 13:16
Find all posts by this user Quote this message in a reply
gamecreator Offline

Posts: 7107
Post: #388

(12.02.2012 00:26)kostya_76 Wrote:  В билдере получается форму создавать, в Делфи - хуки)
так сделай две библиотеки Sm и вызывай одну из другой


When all gods have burnt to ashes in eternity of sorrow,
Demons gonna tear your soul because there is no tomorrow.
12.02.2012 14:08
Find all posts by this user Quote this message in a reply
kostya_76 Offline

Posts: 33
Post: #389

(12.02.2012 13:16)Berserker Wrote:  kostya_76, а какие ошибки в билдере?

Вот такие:
Я вообще не понимаю, что означает после подстановки строка:
typedef __declspec(align(1)) struct TTxtFile
А именно - что такое (align(1))

gamecreator Wrote:так сделай две библиотеки Sm и вызывай одну из другой

Если бы знал как, то наверное и хук смог бы написать на С++ без использования SDK.
12.02.2012 15:10
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16648
Post: #390

kostya_76, запрещает выравнивание полей в структуре по границе в 4 байта или более. Для билдера попробуй убрать мой макрос и обернуть эти структуры в:
Code:
#pragma pack(1)
...описание типа...
#pragma pack()


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
12.02.2012 15:29
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