Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.03.2009, 19:18   #1
user_jasser
я не ~
Пользователь
 
Аватар для user_jasser
 
Регистрация: 19.09.2008
Сообщений: 58
По умолчанию использование DirectX в чужей игре

Такой вот вопросик: моя длл подклинивает к чужой игрушке-рпгешке и ставит хук на юзания directx, а именно на ф-ии: Direct3DCreate, ::CreateDevice, ::EndScene. Короче все вроде хорошо и чайник в начале появляеться, но вот когда меняется камера, чайник проподает из видимости.. Вобщем как это исправить? В идеале хочу в игрушку добавить доп. интерфейс.. Можеть есть там способ как добавить рект с картинкой?
user_jasser вне форума Ответить с цитированием
Старый 20.03.2009, 19:34   #2
Kostia
Участник клуба
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Сообщений: 1,690
По умолчанию

нужно использовать экранные координаты, а не пространственные
http://programmersforum.ru/showthrea...t=15961&page=2
пост #12
Код правда старый и не эффективный, но рабочий
___________________
Если нужно на Си, то могу завтра небольшой пример написать на Dev-C++(VS не имею в наличие)

Последний раз редактировалось Kostia; 20.03.2009 в 19:49.
Kostia вне форума Ответить с цитированием
Старый 20.03.2009, 21:26   #3
user_jasser
я не ~
Пользователь
 
Аватар для user_jasser
 
Регистрация: 19.09.2008
Сообщений: 58
По умолчанию

Kostia
собрал как у тебя:

Код:
  device.CreateVertexBuffer(sizeof(sVertexRHW) * 4,
        0, D3DFVF_XYZRHW or D3DFVF_TEX1,
        D3DPOOL_DEFAULT, vBuffer);
  LoadTextureFromFile(0, 'D:\Program\C++\source\HookDirect3D\sprite.bmp', Texture);
так загружал.
Код:
function EndScene8Callback(self: pointer): HRESULT; stdcall;
var TextRect: TRect; Center: TPoint;
begin
  Center.x:= 350;
  Center.y:= 350;
  TextRect:= Rect(300,300,300,300);
  DrawSprite(Texture, TextRect, Center, 90);
  
  Result:= EndScene8Next(self);
end;
так ловицо сallback ф-ия и предает дальше управление в игру.

из за чего может не выводить картинку? еще ставил хук на SetTransform , в игре начинает черти что твориться и картинка эта где не лень вылазело .
user_jasser вне форума Ответить с цитированием
Старый 21.03.2009, 08:02   #4
Kostia
Участник клуба
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Сообщений: 1,690
По умолчанию

Возможно нужно отключить обработку света
device.SetRenderState(D3DRS_LIGHTIN G, 0);
______________
Собственно пошарил в гугле и написал небольшой хук. Проверял на Two Worls, работает.
Использовал материалы этой статьи: http://tracker2k.kiev.ua/5.html
______________
В dll нужно указывать прямой путь к файлу текстуры.(т.е. нужно код под себя подправить)
Вложения
Тип файла: rar directx_dll_injection_src.rar (373.6 Кб, 17 просмотров)

Последний раз редактировалось Kostia; 21.03.2009 в 10:28.
Kostia вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Автоматизация в игре axumac Свободное общение 3 22.01.2009 20:37
Звуки к игре Crivel Gamedev - cоздание игр: Unity, OpenGL, DirectX 8 07.09.2008 23:40
OnMouseDown в игре. Titan123 Gamedev - cоздание игр: Unity, OpenGL, DirectX 10 29.07.2008 13:10
Препятствия в игре. Манжосов Денис :) Gamedev - cоздание игр: Unity, OpenGL, DirectX 2 07.06.2008 14:14
Вопрос по игре!!! Ыть Паскаль, Turbo Pascal, PascalABC.NET 2 28.03.2008 09:02