Доброго времени суток всем. Вобщем возникла одна проблема с написанием WallHack
Есть код:
Пример работает отлично, но хотелось бы добавить окрашивание текстур в определённый цвет. Пробовал так:if (StridesN = 36) and (NumVertices>0) then
begin
DeviceInterface.SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
DeviceInterface.SetRenderState(D3DRS_FILLMODE, D3DFILL_SOLID);
DrawIndexedPrimitiveNext(DeviceInterface, _Type, BaseVertexIndex, MinVertexIndex, NumVertices, startIndex, primCount);
DeviceInterface.SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
end;
Файлы 'yellow.jpg' и 'lime.jpg' включены в файл проекта:var
yellow:IDirect3DTexture9;
lime:IDirect3DTexture9;
ppiD3DDevice9:IDirect3DDevice9;
...
if (StridesN = 36) and (NumVertices>0) then
begin
DeviceInterface.SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
DeviceInterface.SetRenderState(D3DRS_FILLMODE, D3DFILL_SOLID);
Deviceinterface.SetTexture(0,lime);
DrawIndexedPrimitiveNext(DeviceInterface, _Type, BaseVertexIndex, MinVertexIndex, NumVertices, startIndex, primCount);
Deviceinterface.SetTexture(0,yellow);
DeviceInterface.SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
end;
...
begin
D3DXCreateTextureFromFileW(ppiD3DDevice9,PWideChar ('yellow.jpg'), yellow);
D3DXCreateTextureFromFileW(ppiD3DDevice9,PWideChar ('lime.jpg'), lime);
...
end.и по идее должны грузиться в exe'шник игры вместе с dll'кой, но при инжекте вх - текстуры не грузятся, на их месте пустые текстуры чёрного цвета(
Может перенести загрузку текстур в EndScene9Callback?
Почему я использовал D3DXCreateTextureFromFileW вместо обычной D3DXCreateTextureFromFile?
Просто вычитал, что в Д2010 лучше так.
Пробовал также указать массив для цвета:
С++
LPDIRECT3DTEXTURE9 Yellow;
const BYTE bYellow[60] =
{
0x42, 0x4D, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x36, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01,
0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x12, 0x0B, 0x00, 0x00, 0x12, 0x0B, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00
};вроде бы по идее должно было получиться, но ничего подобногоDelphi
var
yellow:IDirect3DTexture9;
byellow:array[1..60] of dword (
$000042, $00004D, $00003C, $000000, $000000, $000000, $000000, $000000, $000000,
$000000, $000036, $000000, $000000, $000000, $000028, $000000, $000000, $000000,
$000001, $000000, $000000, $000000, $000001, $000000, $000000, $000000, $000001,
$000000, $000020, $000000, $000000, $000000, $000000, $000000, $000000, $000000,
$000000, $000000, $000012, $00000B, $000000, $000000, $000012, $00000B, $000000,
$000000, $000000, $000000, $000000, $000000, $000000, $000000, $000000, $000000,
$000000, $0000FF, $0000FF, $000000, $000000, $000000);
...
DeviceInterface.SetTexture(0,byellow[yellow]);
...
или[DCC Error] lib.dpr(90): E2010 Incompatible types: 'IDirect3DBaseTexture9' and 'Array'
В общем я без понятия уже как объяснить ему на уровне Directx что такое желтый и зелёный цвета([DCC Error] lib.dpr(90): E2010 Incompatible types: 'IDirect3DBaseTexture9' and 'Integer'
Залез в дебри С++ для поиска аналогичных функций, и нашел функциюно ничего подобного в делфи я не нашел(GenerateTexture(m_pD3Ddev, &yellow,D3DCOLOR_ARGB(255,255,0,0));
Подскажет кто-нибудь?

Digg
Google
Одноклассники


и по идее должны грузиться в exe'шник игры вместе с dll'кой, но при инжекте вх - текстуры не грузятся, на их месте пустые текстуры чёрного цвета(
Ответить с цитированием


