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

Full Version: Вопросы по моддингу
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Не за что. Поместите в папку EraPlugins у обоих игроков. Скриптов не нужно.
Скажите,как можно получать в игре (окно героя,в частности) спец.текст по существу (т.е. его описание,что можно менять через UN:G1/#/2/$)??? Sorry

требуется для DL-шаблона
Bes, не пробовали работать через UN:C?
1. Найти в ArtMoney описания копейщика, алебардщика, арбалетчика.
2. Найти указатель на описание каждого.
3. Адрес будет таков: [адрес описания копейщика]+4*[номер существа].
4. Далее скрипт а-ля !!UN:C[полученный адрес]/4/?v1;

В v1 запишется адрес текста с описанием. Далее потребуется перенести содержимое этого адреса в z-переменную, но здесь я Вам не помощник: обращайтесь к отцам, потому как я в работе с памятью не силен.
$7D0CAC + НомерМонстра * 116
Там указатель на строку с описанием. Нужно лишь её (строку) скопировать.
kernel32.dll "lstrcpyA" (АдресПриёмника, АдресИсточника) STDCALL;

По Эре стандартно:
  • Загрузить dll kernel32.dll
  • Получить адрес функции lstrcpyA
  • Выполнить её с двумя параметрами, где второй параметр - адрес нужной z-переменной = $9273E8 + 512 * (Индекс - 1)
я с ERA-командами ниразу не пользовался Sorry

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]
(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-переменной$/$адрес текста описания$;
Berserker,спасибо огромное!!! Sm
всё получилось..
Bes, да не за что Rolleyes
(16.08.2010 14:41)MOP Wrote: [ -> ]; Врата Замка Инферно:
где были мои глаза?
однако этот ценный скрипт и патч под WT не работают...MOP дружище, посмотри почему глюкает. для активации Эры в WT нужно поставить патч http://www.heroes-iii.com/files/2.zip
(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 и патчем к нему мне обойдётся дорого по деньгам.
(11.12.2010 20:45)MOP Wrote: [ -> ]Извиняюсь, только заметил пост.
2. Патчился экзешник или память? Патч для exe. Для памяти нужно увеличить адреса на 400000h.
3. В чём глюк и по какому адресу, если имел место вылет?
только счас заметил ответ. патчил память (просто скомпилировал и положил в EraPlugins).
глюк - кажется просто вылет в момент подгрузки Era на старте карты.
Quote:просто скомпилировал и положил в EraPlugins
Тогда патч трактуется как для памяти.
Quote:Для памяти нужно увеличить адреса на 400000h
Делаю bin, где смещаю кнопки битвы, помещаю в папку ERAPlugins, запускаю ФМ (ERA,TE не важно), выбираю "новая" или "загрузить" и игра закрывается (тихо,без окошек вылета).
В чём трабла?

Если этот же патч непосредственно в exe встроить, то всё нормально Sorry
EraPlugins трактует патчи как для памяти. А ты смещения в файле используешь. В лучшем случае нужно увеличивать адреса на 400000h.
sergroj Wrote:1. На самом деле, Славин файл - это exe.
Для WoG 3.58f:
400000 + А, если А < 29C000,
465000 + А, если А >= 29C000.
Reference URL's