Advertisement
FlacoBey

Untitled

Feb 17th, 2019
184
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.31 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_ZOOM)
  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
Advertisement