#define OFS_BasePlayer2 0xBCE6C8
#define PTR_Team 0x299F4
#define PTR_Smoke 0x28188
#define StringWeaponSmoke 0x35E20D79
//--------------------------------------------------------------------------------------------------------
struct CTeam{
BYTE iTeam;
};
//--------------------------------------------------------------------------------------------------------
bool IndyCroot::MakePoint(unsigned long ADRexec, int OFSexec, int PTRexec){
if (!IsBadReadPtr((void*)ADRexec, sizeof(unsigned long))){
if (!IsBadReadPtr((void*)(*(unsigned long*)ADRexec + OFSexec), sizeof(unsigned long))){
*(int*)(*(unsigned long*)ADRexec + OFSexec) = PTRexec;
}
}
return 0;
}
//--------------------------------------------------------------------------------------------------------
void WeaponClasses(){
IndyCrOot:
if(cItem.Smoke){
unsigned long PtrRB = *(LPBOOL)(OFS_BasePlayer2);
CTeam* GetSlot = (CTeam*)(PtrRB + PTR_Team );{
MakePoint(OFS_BasePlayer2, PTR_Smoke + (GetSlot->iTeam * 0x158), StringWeaponSmoke);
}
Sleep (0.5);
}
goto IndyCrOot;//cReated by IndyCrOot!!
}


//--------------------------------------------------------------------------------------------------------
HRESULT WINAPI hkEndScene(LPDIRECT3DDEVICE9 pDevice){
while(!npDevice) {
npDevice = pDevice;
}
WeaponClasses();//Fungsi Thread Hack
return oEndScene(pDevice);
}