ENGLISH:
Hi all,
I'm trying to create a ESP drawing a box in player's position.
I've managed to get the position X, Y and Z (3D coordinates) of player, but now I need to convert this 3D coordinates do 2D (screen coordinates: X, Y).
I've found this function:
WorldToScreen
Код:
bool WorldToScreen(D3DXVECTOR3 inpos, D3DXVECTOR3 &outpos, LPDIRECT3DDEVICE9 pDevice)
{
DWORD dwRenderData = (DWORD)GetModuleHandleA("i3GfxDx.dll") + 0x18B0D4;
CRenderData* RenderData = (CRenderData*)(dwRenderData);
D3DXMATRIX identity;
D3DXVECTOR3 vScreen;
D3DVIEWPORT9 g_ViewPort;
pDevice->GetViewport(&g_ViewPort);
g_ViewPort.X = g_ViewPort.Y = 0;
g_ViewPort.MinZ = 0;
g_ViewPort.MaxZ = 1;
D3DXVec3Project(&vScreen, &inpos, &g_ViewPort,
&RenderData->RenderData->ProjectMatrix,
&RenderData->RenderData->ViewMatrix,
&RenderData->RenderData->WorldMatrix);
if (vScreen.z < 1.0f && vScreen.x > 0.0f && vScreen.y > 0.0f && vScreen.x < g_ViewPort.Width && vScreen.y < g_ViewPort.Height)
{
outpos.x = vScreen.x;
outpos.y = vScreen.y;
outpos.z = vScreen.z;
return true;
}
return false;
}
However, this function is for Russian Point Blank (i3GfxDx.dll+
0x18B0D4), and I'm trying to create it for Point Blank Kaybo.
So, I just want to know how can I convert PointBlank's 3D coordinates do 2d (screen) coordinates...
I don't want sources, just tips, instructions, etc..
Thank you
RUSSIAN / русский (google translator):
Привет всем,
Я пытаюсь создать рисования коробки в положение игрока.
Мне удалось получить позицию X, Y и Z (3D координатах) игрок, но сейчас мне нужно, чтобы преобразовать эту 3D-координаты делать 2D (экранные координаты: X, Y).
Я нашел эту функцию:
WorldToScreen
Код:
bool WorldToScreen(D3DXVECTOR3 inpos, D3DXVECTOR3 &outpos, LPDIRECT3DDEVICE9 pDevice)
{
DWORD dwRenderData = (DWORD)GetModuleHandleA("i3GfxDx.dll") + 0x18B0D4;
CRenderData* RenderData = (CRenderData*)(dwRenderData);
D3DXMATRIX identity;
D3DXVECTOR3 vScreen;
D3DVIEWPORT9 g_ViewPort;
pDevice->GetViewport(&g_ViewPort);
g_ViewPort.X = g_ViewPort.Y = 0;
g_ViewPort.MinZ = 0;
g_ViewPort.MaxZ = 1;
D3DXVec3Project(&vScreen, &inpos, &g_ViewPort,
&RenderData->RenderData->ProjectMatrix,
&RenderData->RenderData->ViewMatrix,
&RenderData->RenderData->WorldMatrix);
if (vScreen.z < 1.0f && vScreen.x > 0.0f && vScreen.y > 0.0f && vScreen.x < g_ViewPort.Width && vScreen.y < g_ViewPort.Height)
{
outpos.x = vScreen.x;
outpos.y = vScreen.y;
outpos.z = vScreen.z;
return true;
}
return false;
}
Однако, эта функция предназначена для русского Point Blank (i3GfxDx.dll +
0x18B0D4 ), и я пытаюсь создать его для Point Blank Kaybo.
Таким образом, я просто хочу знать, каким образом можно преобразовать 3D-Координаты в 2d (экран) Координаты ...
Я не хочу источников, только советы, инструкции и т.д..
спасибо