FlacoBey

Untitled

Feb 18th, 2019
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.37 KB | None | 0 0
  1. #include sourcemod
  2. #include sdktools
  3. #include sdkhooks
  4.  
  5. float LastDrop[MAXPLAYERS+1];
  6.  
  7. public Action OnPlayerRunCmd(int client, int& buttons, int& impulse, float vel[3], float angles[3], int& weapon)
  8. {
  9. if(buttons & IN_USE && buttons & IN_SPEED)
  10. {
  11. if(bIsSurvivor(client))
  12. {
  13. //decl String:weaponn[32];
  14. //GetEntityClassname(iCurrentWeapon, weaponn, sizeof(weaponn));
  15. new item_slot = 0;
  16. if (IsValidEntity(weapon))
  17. {
  18. for (new slot = 0; slot <= 5; slot++)
  19. {
  20. item_slot = GetPlayerWeaponSlot(client, slot);
  21. if(IsValidEntity(item_slot))
  22. {
  23. SDKCallWeaponDrop(client, item_slot);
  24. break;
  25. }
  26. }
  27. }
  28. }
  29. }
  30. }
  31.  
  32. stock SDKCallWeaponDrop(client, weapon)
  33. {
  34. decl Float:vecAngles[3], Float:vecTarget[3], Float:vecVelocity[3];
  35. if((GetEngineTime() - LastDrop[client]) > 1)
  36. {
  37. if (GetPlayerEye(client, vecTarget))
  38. {
  39. GetClientEyeAngles(client, vecAngles);
  40. GetAngleVectors(vecAngles, vecVelocity, NULL_VECTOR, NULL_VECTOR)
  41. vecVelocity[0] *= 800.0;
  42. vecVelocity[1] *= 800.0;
  43. vecVelocity[2] *= 800.0;
  44.  
  45. SDKHooks_DropWeapon(client, weapon, NULL_VECTOR, NULL_VECTOR);
  46.  
  47. TeleportEntity(weapon, NULL_VECTOR, NULL_VECTOR, vecVelocity)
  48. LastDrop[client] = GetEngineTime();
  49. }
  50. }
  51. }
  52.  
  53. stock bool:GetPlayerEye(client, Float:vecTarget[3])
  54. {
  55. decl Float:Origin[3], Float:Angles[3];
  56. GetClientEyePosition(client, Origin);
  57. GetClientEyeAngles(client, Angles);
  58.  
  59. new Handle:trace = TR_TraceRayFilterEx(Origin, Angles, MASK_SHOT, RayType_Infinite, TraceEntityFilterPlayer);
  60. if (TR_DidHit(trace))
  61. {
  62. TR_GetEndPosition(vecTarget, trace);
  63. CloseHandle(trace);
  64. return true;
  65. }
  66. CloseHandle(trace);
  67. return false;
  68. }
  69.  
  70. public bool:TraceEntityFilterPlayer(entity, contentsMask)
  71. {
  72. return entity > GetMaxClients() || !entity;
  73. }
  74.  
  75. stock bool bIsSurvivor(int client)
  76. {
  77. return client > 0 && client <= MaxClients && IsClientInGame(client) && GetClientTeam(client) == 2 && !IsClientInKickQueue(client) && IsPlayerAlive(client);
  78. }
Advertisement
Add Comment
Please, Sign In to add comment