Just wanted to share this awesome stuff hehe
Already made it for CS:S and wanted to port it on CS:GO using the same funcs: GetPlayerView() & RenderView() in IBaseClientDLL class and CViewSetup class.
Had some issue to draw the view on the screen with a custom size (causing black screen ingame rly weird bug) but I found that, if you assign the size of ur resolution on fields x and y of the CViewSetup class, the view you trying to draw will replace your current view on the screen.
Then, you just have to do a toggle to enable it only when you want.
It's ghetto but i didn't found something better yet...
first, here's my CViewSetup class reclassed:
Code:
Code:
class CViewSetup
{
public:
char _0x0000[16];
__int32 x; //0x0010
__int32 x_old; //0x0014
__int32 y; //0x0018
__int32 y_old; //0x001C
__int32 width; //0x0020
__int32 width_old; //0x0024
__int32 height; //0x0028
__int32 height_old; //0x002C
char _0x0030[128];
float fov; //0x00B0
float fovViewmodel; //0x00B4
Vector origin; //0x00B8
QAngle angles; //0x00C4
float zNear; //0x00D0
float zFar; //0x00D4
float zNearViewmodel; //0x00D8
float zFarViewmodel; //0x00DC
float m_flAspectRatio; //0x00E0
float m_flNearBlurDepth; //0x00E4
float m_flNearFocusDepth; //0x00E8
float m_flFarFocusDepth; //0x00EC
float m_flFarBlurDepth; //0x00F0
float m_flNearBlurRadius; //0x00F4
float m_flFarBlurRadius; //0x00F8
float m_nDoFQuality; //0x00FC
__int32 m_nMotionBlurMode; //0x0100
char _0x0104[68];
__int32 m_EdgeBlur; //0x0148
};//Size=0x014C
now we need to catch our view, rotate the yaw to display behind you and draw it on the screen.
Here's an example of what you can do:
Code:
Code:
CBaseEntity* pLocal = g_pEntList->GetClientEntity(g_pEngine->GetLocalPlayer());
if (!pLocal)
return;
//press Mouse3 to enable mirrorcam
if (!GetAsyncKeyState(VK_MBUTTON))
return;
CViewSetup myView;
//grab our view
if (g_pClient->GetPlayerView(myView))
{
myView.x = GetScreenWidth();
myView.y = GetScreenHeight();
myView.origin = pLocal->GetEyePosition();
myView.angles = pLocal->GetEyeAngle();
myView.angles.y += 180.0f; //rotate yaw
myView.fov = 90.0f; //default fov
g_pClient->RenderView(myView, 0, 2); //render our view on the screen
}
really funny and cool feature ^^
here's some media to show what you can do with that hehe:
result:
full demo here: