Advertisement
Guest User

Untitled

a guest
Jan 19th, 2019
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.94 KB | None | 0 0
  1. bool IsRemotekill = true;
  2. typedef bool(__cdecl *_IntersectSegment)(const IntersectQuery &Query, IntersectInfo *pInfo);
  3. _IntersectSegment pIntersectSegment;
  4. bool hkIntersectSegment(RemoteQuery* rQuery, RemoteInfo* rInfo)
  5. {
  6. oRemoteKill = (tRemoteKill)(0x683A30);
  7. DWORD pLTClientShell = *(DWORD*)(CShell + 0x12994FC);
  8. CPlayer* Me = GetPlayerByIndex(pLTClientShell,GetMyIndex(pLTClientShell));
  9. if (IsRemotekill)
  10. {
  11. for (int i = 0; i < 16; i++)
  12. {
  13. CPlayer* pPlayer = GetPlayerByIndex(pLTClientShell, i);
  14. if (IsVisible(GetBonePosition(Me->Object, 6), GetBonePosition(pPlayer->Object, 6)) && isValidClient(pPlayer) && Me != pPlayer && Me->Team != pPlayer->Team)
  15. {
  16. D3DXVECTOR3 Pos = GetBonePosition(pPlayer->Object, 6);
  17. rQuery->rFrom = Pos + D3DXVECTOR3(0.0f, 50.0f, 0.0f);
  18. rQuery->rTo = Pos - D3DXVECTOR3(0.0f, 50.0f, 0.0f);
  19. rQuery->rFlags = ::INTERSECT_OBJECTS | ::IGNORE_NONSOLID | ::INTERSECT_HPOLY;
  20. rQuery->rFilterFn = FilterObjs;
  21.  
  22. bool Result = oRemoteKill(*rQuery, rInfo);
  23. if (Result)
  24. {
  25. rInfo->hObjImpact = pPlayer->Object;
  26. rInfo->vImpactPos = Pos;
  27. }
  28. return oRemoteKill(*rQuery, rInfo);
  29. }
  30. }
  31. }
  32. return oRemoteKill(*rQuery, rInfo);
  33. }
  34. #define aILTClient 0x12994F0
  35. void StartRemote()
  36. {
  37. if (! IsGameReadyForHook()) return;
  38. DWORD crossfire = (DWORD)GetModuleHandleA(eCF);
  39. if (crossfire == NULL) return;
  40. if ( CShell !=NULL)
  41. {
  42. uint32_t LTClient = *reinterpret_cast<uint32_t*>( CShell + aILTClient);
  43. oRemoteKill = (tRemoteKill)*reinterpret_cast<uint32_t*>(LTClient + 0x7C);
  44. *reinterpret_cast<uint32_t*>(LTClient + 0x7C) = (uint32_t)hkIntersectSegment;
  45. }
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement