igrik
Posts: 2819
|
|
10.09.2015 22:24 |
|
gamecreator
Posts: 7107
|
|
11.09.2015 01:08 |
|
igrik
Posts: 2819
|
|
11.09.2015 09:38 |
|
gamecreator
Posts: 7107
|
|
11.09.2015 11:53 |
|
igrik
Posts: 2819
|
Запаковано в виде мода. Скачать
Это диалоговое окно выбора режима битвы. Нападешь на монстра - появится это окно. На нажатие клавиши "7" происходит отрисовка диалога в других координатах. Клавиша "5" просто информация.
game bug fixes extended.dll || My Plugins || My GitHub
|
|
11.09.2015 12:22 |
|
gamecreator
Posts: 7107
|
|
11.09.2015 15:11 |
|
igrik
Posts: 2819
|
там же. строка 054. Записана так:
upd, и да, я пробовал и так !!SN:E7510525/2/-1; результат тот же = вылет
а еще:
так !!SN:E7510525/0/-1;
и так!!SN:E7510525/1/68;, где 68-номер WoG диалога
и так!!SN:E7510525/2/68;, где 68-номер WoG диалога
и еще много чего, но всё с этим адресом
game bug fixes extended.dll || My Plugins || My GitHub
(This post was last modified: 11.09.2015 15:22 by igrik.)
|
|
11.09.2015 15:17 |
|
gamecreator
Posts: 7107
|
Ну это я увидел. А где вариант с thiscall? Напоминаю:
Quote: E #1 / #2 / ... up to 62 parameters; Execute external function
#1 = function address
#2 = calling conversion
0 - Pascal (use for all Angel.dll functions)
1 - Cdecl or Stdcall (use for WinAPI and the majority of other functions)
2 - ThisCall (use it only if you know, what you are doing)
3 - FastCall (the same as above, try to avoid)
Первый аргумент - this (третий аргумент команды соответственно).
Что конкретно неясно?
К слову, исправил на thiscall и всё заработало. Только старое изображение диалога осталось, наверное надо экран перерисовать сперва.
When all gods have burnt to ashes in eternity of sorrow,
Demons gonna tear your soul because there is no tomorrow.
|
|
11.09.2015 15:24 |
|
igrik
Posts: 2819
|
я исправил на thiscall, и у меня не работало, ни тогда, ни сейчас.
Почему я и обратился к тебе за помощью. У меня вылетает, и перепробовал я все что только мог, в том числе и thiscall
game bug fixes extended.dll || My Plugins || My GitHub
(This post was last modified: 11.09.2015 15:33 by igrik.)
|
|
11.09.2015 15:31 |
|
gamecreator
Posts: 7107
|
(11.09.2015 15:17)igrik Wrote: upd, и да, я пробовал и так !!SN:E7510525/2/-1; результат тот же = вылет
а еще:
так !!SN:E7510525/0/-1;
и так!!SN:E7510525/1/68;, где 68-номер WoG диалога
и так!!SN:E7510525/2/68;, где 68-номер WoG диалога
и еще много чего, но всё с этим адресом
Теперь понятно. Поясняю: thiscall - это вызов метода объекта (если ты знаком с ООП). Функции такого типа принимают дополнительный параметр this, указатель на сам объект. Синтаксис вызова thiscall:
Смотрим в описание функции:
(17.07.2015 16:11)gamecreator Wrote: hdlg->0x7299FD(-1)
Функция имеет один параметр, но в дополнение является методом объекта диалога. Значит нужно передать ей адрес этого объекта. Смотрим снова в описание, как же получить сам диалог, тоесть объект:
(17.07.2015 16:11)gamecreator Wrote: Получить адрес диалога можно по номеру диалога:
hdlg = cdecl 0х729AD3(int32 id)
Или получить последний (текущий?) отображаемый диалог:
hdlg = [0x887650]
Понятно?
When all gods have burnt to ashes in eternity of sorrow,
Demons gonna tear your soul because there is no tomorrow.
|
|
11.09.2015 15:36 |
|
igrik
Posts: 2819
|
йок-макарёк. Теперь понятно. Спасибо!!!
Quote:Теперь понятно. Поясняю: thiscall - это вызов метода объекта (если ты знаком с ООП). Функции такого типа принимают дополнительный параметр this, указатель на сам объект. Синтаксис вызова thiscall:
!!SN:Eфункция/2/this/параметры;
не знал. Получилось. Естественно осталось старое изображение диалога. Буду искать способы решения.
game bug fixes extended.dll || My Plugins || My GitHub
(This post was last modified: 11.09.2015 15:49 by igrik.)
|
|
11.09.2015 15:39 |
|
Bes
Posts: 5422
|
(11.09.2015 15:39)igrik Wrote: йок-макарёк.
ёк же?! не?
|
|
11.09.2015 16:16 |
|
igrik
Posts: 2819
|
|
11.09.2015 16:25 |
|
igrik
Posts: 2819
|
gamecreator | feanor, подскажите плиз:
что такое " mip = int a4" и как его получить. Вообще въехать не могу блин!
Code:
0х00408ABF Enter2ObjectGamer(v2, a5, mip);
0х00408ABF car__thiscall Enter2ObjectGamer(int AdvManager, signed int a3, int a4)
и аналогичный вопрос по " __int64 PosMixed"
Code:
0x004A8160 void __thiscall Enter2ObjectMain(int AvdManager, _Hero_ *Hero, signed int Par1, __int64 PosMixed)
game bug fixes extended.dll || My Plugins || My GitHub
(This post was last modified: 23.10.2015 18:59 by igrik.)
|
|
23.10.2015 18:57 |
|
gamecreator
Posts: 7107
|
|
23.10.2015 19:34 |
|