kostya_76
Posts: 33
|
Berserker, Так?
Ошибки указывают на строки с закрывающими фигурными скобками структур
|
|
12.02.2012 16:10 |
|
gamecreator
Posts: 7107
|
|
12.02.2012 16:33 |
|
Berserker
Posts: 16657
|
|
12.02.2012 16:46 |
|
gamecreator
Posts: 7107
|
|
12.02.2012 16:53 |
|
AVS
Posts: 16
|
Интересно насколько сложно полностью перехватить создание случайных карт? (=встроить свой генератор, если я его допишу всетаки %) )
|
|
12.02.2012 18:16 |
|
Sav
Posts: 2180
|
Если ты действительно напишешь хороший генератор, думаю желающие его встроить найдутся.
|
|
12.02.2012 18:44 |
|
kostya_76
Posts: 33
|
Berserker, Еще ошибку выдает:
|
|
12.02.2012 20:08 |
|
AVS
Posts: 16
|
(12.02.2012 00:26)kostya_76 Wrote: Создаю форму. Вызываю Form1.Show(); хоть в обработчике хука, хоть при загрузке длл - вылет.
Так тоже не получается:
VAR AOwner: TComponent;
Form1 := TForm1.Create(AOwner);
Form1.Show();
И не получится. Убери формы вообще и все связи с VCL.
Хотя в теории подружить VCL с героями возможно (но формы будут открываться отдельно от окна героев), а вот встроить их внутрь интерфейса нереально (если бы у окон героев были оконные хендлы, а их там AFAIK нет, то можно было бы вообще вставлять праактически любой виджет из VCL прямо на любое окно в игре)
(This post was last modified: 12.02.2012 20:16 by AVS.)
|
|
12.02.2012 20:15 |
|
kostya_76
Posts: 33
|
(12.02.2012 20:15)AVS Wrote: И не получится. Убери формы вообще и все связи с VCL.
Хотя в теории подружить VCL с героями возможно (но формы будут открываться отдельно от окна героев), а вот встроить их внутрь интерфейса нереально (если бы у окон героев были оконные хендлы, а их там AFAIK нет, то можно было бы вообще вставлять праактически любой виджет из VCL прямо на любое окно в игре)
Само-собой это окно отдельно от окна героев должно открываться.
|
|
12.02.2012 20:40 |
|
Berserker
Posts: 16657
|
|
12.02.2012 21:02 |
|
kostya_76
Posts: 33
|
Berserker, Не помогает - такое сообщение об ошибке.
Собственно, мне пока нужен только хук, попробую сейчас функцию
typedef __stdcall void (*THook) (void* HandlerAddr, int HookType, int PatchSize, void* CodeAddr);
(This post was last modified: 12.02.2012 21:12 by kostya_76.)
|
|
12.02.2012 21:10 |
|
AVS
Posts: 16
|
(12.02.2012 20:40)kostya_76 Wrote: Само-собой это окно отдельно от окна героев должно открываться.
Тогда при запуске в хуке Application.Initialize. Еще возможно необходимо установить Application.Handle на реальный хендл героев.
Формы создавать Tform1.Create(nil) и ставить FreeOnRelease. Уже это должно работать.
(12.02.2012 21:02)Berserker Wrote: Реквизит встроила VCL-ые формы в игру.
Ну если хукнуть главный цикл и "подсунуть под" окно героев VCL форму (чтобы окно героев было дочерним) потом наверное переписав обрабтку мыши и клавиатуры может и получится.
(12.02.2012 21:02)Berserker Wrote: zvslib1 использует формы билдера для новых воговских диалогов. Я, к сожалению, добился только глючного модального запуска и бросил.
Увы я только мельком поглядел на исходники самого вога - этой либы в них нет - а в самом воге диалоги реализованы через грязные хаки с VMT классов внурти движка героев.
|
|
12.02.2012 21:22 |
|
baratorch
Posts: 197
|
kostya_76
__stdcall void замени на void __stdcall
|
|
12.02.2012 21:43 |
|