Спасибо понял1. Все эти энтити в ебенях наверху.
2. Чит получает нулевую позицию (оффсеты неправильные)
3. W2S неправильно реализован или неправильный адрес видовой матрицы.
Если не секрет как его правильно получить?Разрешение экрана не правильно получаеш.
Я через рекласс смотрю.Если не секрет как его правильно получить?
Если не секрет как его правильно получить?
HRESULT CD3D9Renderer::AdjustWindowForChange()
{
#if !defined(XENON) && !defined(PS3)
if (IsEditorMode())
return S_OK;
if( !m_bFullScreen )
{
// Set windowed-mode style
SetWindowLong( m_hWnd, GWL_STYLE, m_dwWindowStyle );
}
else
{
// Set fullscreen-mode style
SetWindowLong( m_hWnd, GWL_STYLE, WS_POPUP|WS_VISIBLE );
}
DXUTDeviceSettings* pDev = DXUTGetCurrentDeviceSettings();
#if defined (DIRECT3D9) || defined (OPENGL)
if (m_width != m_pd3dpp->BackBufferWidth || m_height != m_pd3dpp->BackBufferHeight)
{
m_width = m_pd3dpp->BackBufferWidth;
m_height = m_pd3dpp->BackBufferHeight;
_SetVar("r_Width", m_width);
_SetVar("r_Height", m_height);
int x, y, wdt, hgt;
if (m_bFullScreen)
{
x = 0;
y = 0;
wdt = m_width;
hgt = m_height;
SetWindowPos(m_hWnd, HWND_TOPMOST, x, y, wdt, hgt, SWP_SHOWWINDOW);
}
else
{
x = (GetSystemMetrics(SM_CXFULLSCREEN)-m_width)/2;
y = (GetSystemMetrics(SM_CYFULLSCREEN)-m_height)/2;
wdt = GetSystemMetrics(SM_CXDLGFRAME)*2 + m_width;
hgt = GetSystemMetrics(SM_CYCAPTION) + GetSystemMetrics(SM_CXDLGFRAME)*2 + m_height;
SetWindowPos(m_hWnd, HWND_NOTOPMOST, x, y, wdt, hgt, SWP_SHOWWINDOW);
}
RT_SetViewport(0, 0, m_width, m_height);
m_MainViewport.nX = 0;
m_MainViewport.nY = 0;
m_MainViewport.nWidth = m_width;
m_MainViewport.nHeight = m_height;
m_MainRTViewport.nX = 0;
m_MainRTViewport.nY = 0;
m_MainRTViewport.nWidth = m_width;
m_MainRTViewport.nHeight = m_height;
}
#elif defined (DIRECT3D10)
/*{
int x, y, wdt, hgt;
if (m_bFullScreen)
{
x = 0;
y = 0;
wdt = m_width;
hgt = m_height;
SetWindowPos(m_hWnd, HWND_TOPMOST, x, y, wdt, hgt, SWP_SHOWWINDOW);
}
else
{
x = (GetSystemMetrics(SM_CXFULLSCREEN)-m_width)/2;
y = (GetSystemMetrics(SM_CYFULLSCREEN)-m_height)/2;
wdt = GetSystemMetrics(SM_CXDLGFRAME)*2 + m_width;
hgt = GetSystemMetrics(SM_CYCAPTION) + GetSystemMetrics(SM_CXDLGFRAME)*2 + m_height;
SetWindowPos(m_hWnd, HWND_NOTOPMOST, x, y, wdt, hgt, SWP_SHOWWINDOW);
}
SetViewport(0, 0, m_width, m_height);
}*/
#endif
#endif
return S_OK;
}
class IRender
{
public:
int GetWidth(){
return *(int*)((DWORD)this + 0x93EC);
}
int GetHeight(){
return *(int*)((DWORD)this + 0x93E8);
}
};
ну тут я явно всё понял , спасибо даКод:HRESULT CD3D9Renderer::AdjustWindowForChange() { #if !defined(XENON) && !defined(PS3) if (IsEditorMode()) return S_OK; if( !m_bFullScreen ) { // Set windowed-mode style SetWindowLong( m_hWnd, GWL_STYLE, m_dwWindowStyle ); } else { // Set fullscreen-mode style SetWindowLong( m_hWnd, GWL_STYLE, WS_POPUP|WS_VISIBLE ); } DXUTDeviceSettings* pDev = DXUTGetCurrentDeviceSettings(); #if defined (DIRECT3D9) || defined (OPENGL) if (m_width != m_pd3dpp->BackBufferWidth || m_height != m_pd3dpp->BackBufferHeight) { m_width = m_pd3dpp->BackBufferWidth; m_height = m_pd3dpp->BackBufferHeight; _SetVar("r_Width", m_width); _SetVar("r_Height", m_height); int x, y, wdt, hgt; if (m_bFullScreen) { x = 0; y = 0; wdt = m_width; hgt = m_height; SetWindowPos(m_hWnd, HWND_TOPMOST, x, y, wdt, hgt, SWP_SHOWWINDOW); } else { x = (GetSystemMetrics(SM_CXFULLSCREEN)-m_width)/2; y = (GetSystemMetrics(SM_CYFULLSCREEN)-m_height)/2; wdt = GetSystemMetrics(SM_CXDLGFRAME)*2 + m_width; hgt = GetSystemMetrics(SM_CYCAPTION) + GetSystemMetrics(SM_CXDLGFRAME)*2 + m_height; SetWindowPos(m_hWnd, HWND_NOTOPMOST, x, y, wdt, hgt, SWP_SHOWWINDOW); } RT_SetViewport(0, 0, m_width, m_height); m_MainViewport.nX = 0; m_MainViewport.nY = 0; m_MainViewport.nWidth = m_width; m_MainViewport.nHeight = m_height; m_MainRTViewport.nX = 0; m_MainRTViewport.nY = 0; m_MainRTViewport.nWidth = m_width; m_MainRTViewport.nHeight = m_height; } #elif defined (DIRECT3D10) /*{ int x, y, wdt, hgt; if (m_bFullScreen) { x = 0; y = 0; wdt = m_width; hgt = m_height; SetWindowPos(m_hWnd, HWND_TOPMOST, x, y, wdt, hgt, SWP_SHOWWINDOW); } else { x = (GetSystemMetrics(SM_CXFULLSCREEN)-m_width)/2; y = (GetSystemMetrics(SM_CYFULLSCREEN)-m_height)/2; wdt = GetSystemMetrics(SM_CXDLGFRAME)*2 + m_width; hgt = GetSystemMetrics(SM_CYCAPTION) + GetSystemMetrics(SM_CXDLGFRAME)*2 + m_height; SetWindowPos(m_hWnd, HWND_NOTOPMOST, x, y, wdt, hgt, SWP_SHOWWINDOW); } SetViewport(0, 0, m_width, m_height); }*/ #endif #endif return S_OK; }
v3 = this = IRenderer
Код:class IRender { public: int GetWidth(){ return *(int*)((DWORD)this + 0x93EC); } int GetHeight(){ return *(int*)((DWORD)this + 0x93E8); } };
Проект предоставляет различный материал, относящийся к сфере киберспорта, программирования, ПО для игр, а также позволяет его участникам общаться на многие другие темы. Почта для жалоб: admin@yougame.biz