Berserker
Posts: 16657
|
|
04.11.2010 20:12 |
|
Bes
Posts: 5422
|
Скажите,как можно получать в игре (окно героя,в частности) спец.текст по существу (т.е. его описание,что можно менять через UN:G1/#/2/$)???
требуется для DL-шаблона
|
|
14.11.2010 02:48 |
|
GhostManSD
Posts: 1054
|
Bes, не пробовали работать через UN:C?
1. Найти в ArtMoney описания копейщика, алебардщика, арбалетчика.
2. Найти указатель на описание каждого.
3. Адрес будет таков: [адрес описания копейщика]+4*[номер существа].
4. Далее скрипт а-ля !!UN:C[полученный адрес]/4/?v1;
В v1 запишется адрес текста с описанием. Далее потребуется перенести содержимое этого адреса в z-переменную, но здесь я Вам не помощник: обращайтесь к отцам, потому как я в работе с памятью не силен.
Κακῆς ἀπ' ἀρχῆς γίγνεται τέλος κακόν.
(This post was last modified: 14.11.2010 03:43 by GhostManSD.)
|
|
14.11.2010 03:43 |
|
Berserker
Posts: 16657
|
$7D0CAC + НомерМонстра * 116
Там указатель на строку с описанием. Нужно лишь её (строку) скопировать.
kernel32.dll "lstrcpyA" (АдресПриёмника, АдресИсточника) STDCALL;
По Эре стандартно:
- Загрузить dll kernel32.dll
- Получить адрес функции lstrcpyA
- Выполнить её с двумя параметрами, где второй параметр - адрес нужной z-переменной = $9273E8 + 512 * (Индекс - 1)
Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
|
|
14.11.2010 14:47 |
|
Bes
Posts: 5422
|
я с ERA-командами ниразу не пользовался
Quote:
- Загрузить dll kernel32.dll
- Получить адрес функции lstrcpyA
- Выполнить её с двумя параметрами, где второй параметр - адрес нужной z-переменной = $9273E8 + 512 * (Индекс - 1)
- !!VRz1:S^kernel32.dll^; записать имя dll
!!SN:Lz1/?v2; теперь v2 хранит номер dll
- !!VRz2:S^lstrcpyA^; записать имя функции
!!SN:Av2/z2/?v3; записать адрес функции в v3
А вот с третьим пунктом неразобрался.. какие значения мне написать в первом и втором параметре !!SN:Ev3/1/ #1/ #2; ???
например,если взть z3,то
$9273E8 + 512 * ( 3 - 1) = $9273E8 +1024 = $92840C [или 9602060]
(This post was last modified: 14.11.2010 23:06 by Bes.)
|
|
14.11.2010 23:05 |
|
Berserker
Posts: 16657
|
(14.11.2010 23:05)Bes Wrote: какие значения мне написать в первом и втором параметре !!SN:Ev3/1/#1/#2; ???
Code:
(CDECL_OR_STDCALL) = 1;
...
!!VR$Адрес z-переменной$:S(Индекс z-переменной)-1*512+9597928;
!!VR$адрес поля текста описания$:S(Номер монстра)*116+8195244;
!!UN:C$адрес поля текста описания$/4/?$адрес текста описания$;
!!SN:Ev3/(CDECL_OR_STDCALL)/$Адрес z-переменной$/$адрес текста описания$;
Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
|
|
14.11.2010 23:35 |
|
Bes
Posts: 5422
|
Berserker,спасибо огромное!!!
всё получилось..
|
|
16.11.2010 14:31 |
|
Berserker
Posts: 16657
|
|
16.11.2010 15:16 |
|
SAG
Posts: 173
|
(16.08.2010 14:41)MOP Wrote: ; Врата Замка Инферно:
где были мои глаза?
однако этот ценный скрипт и патч под WT не работают...MOP дружище, посмотри почему глюкает. для активации Эры в WT нужно поставить патч http://www.heroes-iii.com/files/2.zip
|
|
09.12.2010 14:42 |
|
MOP
Posts: 1468
|
(09.12.2010 14:42)SAG Wrote: (16.08.2010 14:41)MOP Wrote: ; Врата Замка Инферно:
где были мои глаза?
однако этот ценный скрипт и патч под WT не работают...MOP дружище, посмотри почему глюкает. для активации Эры в WT нужно поставить патч http://www.heroes-iii.com/files/2.zip
Извиняюсь, только заметил пост.
1. Это исходник к bin-файлу, то есть, его надо пропустить через BinGen.exe.
2. Патчился экзешник или память? Патч для exe. Для памяти нужно увеличить адреса на 400000h.
3. В чём глюк и по какому адресу, если имел место вылет?
4. Не думаю, что в обработку диалога Портала Инферно мог вкрасться другой код - если в WT, конечно, не делали/пробовали сделать то же самое.
Разбираться с WT и патчем к нему мне обойдётся дорого по деньгам.
Circle of destruction, hammer comes crushing
Powerhouse of energy
Whipping up a fury, dominating flurry
We create the battery
(This post was last modified: 11.12.2010 20:51 by MOP.)
|
|
11.12.2010 20:45 |
|
SAG
Posts: 173
|
(11.12.2010 20:45)MOP Wrote: Извиняюсь, только заметил пост.
2. Патчился экзешник или память? Патч для exe. Для памяти нужно увеличить адреса на 400000h.
3. В чём глюк и по какому адресу, если имел место вылет?
только счас заметил ответ. патчил память (просто скомпилировал и положил в EraPlugins).
глюк - кажется просто вылет в момент подгрузки Era на старте карты.
|
|
26.12.2010 18:02 |
|
Berserker
Posts: 16657
|
|
26.12.2010 18:07 |
|
Bes
Posts: 5422
|
Делаю bin, где смещаю кнопки битвы, помещаю в папку ERAPlugins, запускаю ФМ (ERA,TE не важно), выбираю "новая" или "загрузить" и игра закрывается (тихо,без окошек вылета).
В чём трабла?
Если этот же патч непосредственно в exe встроить, то всё нормально
|
|
20.01.2011 17:23 |
|
Berserker
Posts: 16657
|
|
20.01.2011 18:09 |
|
feanor
Posts: 624
|
sergroj Wrote:1. На самом деле, Славин файл - это exe.
Для WoG 3.58f:
400000 + А, если А < 29C000,
465000 + А, если А >= 29C000.
|
|
20.01.2011 18:16 |
|