ПрограммированиеФорумГрафика

DirectX внедрение рисунка в другое приложение

#0
15:33, 23 дек 2015

Ситуация.
Есть запущенная игра (Dota2 например), используется DirectX.
Хочу написать приложение, которое "внедряется" в окно этой игры и что-то там рисует.

Вопрос.
Возможно ли какими-либо средствами нарисовать что-либо (например таблицу статистики игроков) в окне этой запущенной игры? Если можно, то как это сделать, какие функции вызывать?

P.S.
Хочется отображать статистику для такой известной игры, но не хочется делать второе окно. Хочется что бы статистика была внутри окна игры.

#1
15:45, 23 дек 2015

Сделать можно, но забанят как за читерство.

#2
15:46, 23 дек 2015

Может не выйдет(так как движок Valve может от такого защищать).
Поищи может специальные tools есть для таких вещей для DOTA2.

Раньше такое для Warcraft 3 делали.

#3
16:10, 23 дек 2015

Делал так.
Но например nprotect game guard сразу выдаёт ахтунг при старте чёто про читы и не Грузит игру. Какой нибудь Фрост может прописать автобан:)
Где геймгвард грохнут, на ряде пираток работает на ура.

Если вам только для статистики без читов, то не стоит рисковать. Обидно сидеть в бане незачто)

#4
16:42, 23 дек 2015

Да, только для статистики. Которая будет браться из веб-сервисов steam web api /dota web api.
В итоге чтобы окно статистики, которое "внедряем" в игру было таким например http://i.imgur.com/c8RSvUq.jpg

Есть идеи как конкретно это сделать?

P.S.Если делать отдельным приложением - пользователю будет не удобно переключаться между окнами. Специальные tools ищу, пока не нашел.
Спасибо всем за полезные советы.

#5
16:52, 23 дек 2015

JamesKirk
Может так?..
Главная игра в оконном режиме на весь экран, поверх нее полупрозрачное окно со статистикой, опционально - прозрачно для мышки.

#6
17:16, 23 дек 2015

-Eugene-
Интересная идея, но есть одно но. Мне кажется не самая удобная реализация, т.к. это будет мешать во время игры.
Иными словами, проще тогда вообще сделать это окно не привязанным к окну игры.

Но лучше, чтобы окно со статистикой рисовалось в самом окне игры и пряталось\раскрывалось по некоторой горячей клавише.

#7
13:11, 24 дек 2015

http://zhyk.ru/forum/showthread.php?t=408953
Вроде никаких неудобств. Только сделать игнорирование мышки

#8
13:20, 24 дек 2015

Я директ-х хукал. Зато gui софта был как родной, с картинками полупрозрачностями и даже полупрозрачнымы списками прокрутки. По факту там интергировался оверлей со своим io и граф движком. Разумеется там ещё ввод вывод перехватывался и сеть

Из альтернативы , иногда юзают внутренние средства движка игры для создания нативных родных окошек со своими данными, но это тоже гемор + нужно знать как эти api юзать , с какими данными и правильно заполнять стек.

#9
13:23, 24 дек 2015

В первом способе важно не забывать сохранять стейты используемого d3ddevice и после своих рисовалок возвращать. Иначе в игре начинаются всякие чудеса с текстурами ,GUI и прочим

#10
9:12, 25 дек 2015

JamesKirk
>
Посмотри здесь - всё подробно расписано и есть исходники. Так рисуется консолька:

+ Показать

Ещё загляни сюда (поддержка d3d8, d3d9, d3d11) и сюда (самое новое в конце), должно пригодиться.
+ Конвертер D3D8to9, если нужно.

Например, с помощью всего этого из ВарКрафта можно сделать следующее:

+ Показать

Это действительно WarCraft III!

ПрограммированиеФорумГрафика

Тема в архиве.