Struct para Light Chams
Code:
struct sChamsColor
{
sChamsColor(VOID)
{
};
sChamsColor(INT A, INT R, INT G, INT B)
{
a = A;
r = R;
g = G;
b = B;
};
D3DCOLOR GetD3DColor()
{
return D3DCOLOR_ARGB(a, r, g, b);
}
D3DCOLOR GetInverseD3DColor()
{
return D3DCOLOR_ARGB(255, ((r - 255) * (-1)), ((g - 255) * (-1)), ((b - 255) * (-1)));
}
sChamsColor GetChamsColor()
{
return sChamsColor(a, r, g, b);
}
sChamsColor GetInverseChamsColor()
{
return sChamsColor(255, ((r - 255) * (-1)), ((g - 255) * (-1)), ((b - 255) * (-1)));
}
INT a, r, g, b;
};
VOID SetLightChams(LPDIRECT3DDEVICE9 pDevice, sChamsColor Color)
{
D3DMATERIAL9 pMaterial;
D3DCOLORVALUE pColor;
RtlZeroMemory(&pMaterial, sizeof(D3DMATERIAL9));
pDevice->SetRenderState(D3DRS_LIGHTING, TRUE);
pColor.a = (FLOAT)Color.a / 255;
pColor.r = (FLOAT)Color.r / 255;
pColor.g = (FLOAT)Color.g / 255;
pColor.b = (FLOAT)Color.b / 255;
pMaterial.Ambient = pColor;
pMaterial.Diffuse = pColor;
pMaterial.Emissive = pColor;
pMaterial.Specular = pColor;
pDevice->SetMaterial(&pMaterial);
}
Code:
HRESULT WINAPI hkDIP(LPDIRECT3DDEVICE9 pDevice, D3DPRIMITIVETYPE a, INT b, UINT c, UINT d, UINT e, UINT f)
{
if((*(BYTE *)GameStatus == 1) && D3DChams)
{
if(GetCharacterStrides(pDevice, d, f))
{
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
D3D->SetLightChams(pDevice, sChamsColor(255, 000, 255, 000));
oDIP(pDevice, a, b, c, d, e, f);
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
D3D->SetLightChams(pDevice, sChamsColor(255, 000, 255, 000).GetInverseChamsColor());
}
}
return oDIP(pDevice, a, b, c, d, e, f);
}
