Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include sourcemod
- #include sdktools
- #include sdkhooks
- float LastDrop[MAXPLAYERS+1];
- public Action OnPlayerRunCmd(int client, int& buttons, int& impulse, float vel[3], float angles[3], int& weapon)
- {
- if(buttons & IN_ZOOM)
- {
- if(bIsSurvivor(client))
- {
- //decl String:weaponn[32];
- //GetEntityClassname(iCurrentWeapon, weaponn, sizeof(weaponn));
- new item_slot = 0;
- if (IsValidEntity(weapon))
- {
- for (new slot = 0; slot <= 5; slot++)
- {
- item_slot = GetPlayerWeaponSlot(client, slot);
- if(IsValidEntity(item_slot))
- {
- SDKCallWeaponDrop(client, item_slot);
- break;
- }
- }
- }
- }
- }
- }
- stock SDKCallWeaponDrop(client, weapon)
- {
- decl Float:vecAngles[3], Float:vecTarget[3], Float:vecVelocity[3];
- if((GetEngineTime() - LastDrop[client]) > 1)
- {
- if (GetPlayerEye(client, vecTarget))
- {
- GetClientEyeAngles(client, vecAngles);
- GetAngleVectors(vecAngles, vecVelocity, NULL_VECTOR, NULL_VECTOR)
- vecVelocity[0] *= 800.0;
- vecVelocity[1] *= 800.0;
- vecVelocity[2] *= 800.0;
- SDKHooks_DropWeapon(client, weapon, NULL_VECTOR, NULL_VECTOR);
- TeleportEntity(weapon, NULL_VECTOR, NULL_VECTOR, vecVelocity)
- LastDrop[client] = GetEngineTime();
- }
- }
- }
- stock bool:GetPlayerEye(client, Float:vecTarget[3])
- {
- decl Float:Origin[3], Float:Angles[3];
- GetClientEyePosition(client, Origin);
- GetClientEyeAngles(client, Angles);
- new Handle:trace = TR_TraceRayFilterEx(Origin, Angles, MASK_SHOT, RayType_Infinite, TraceEntityFilterPlayer);
- if (TR_DidHit(trace))
- {
- TR_GetEndPosition(vecTarget, trace);
- CloseHandle(trace);
- return true;
- }
- CloseHandle(trace);
- return false;
- }
- public bool:TraceEntityFilterPlayer(entity, contentsMask)
- {
- return entity > GetMaxClients() || !entity;
- }
- stock bool bIsSurvivor(int client)
- {
- return client > 0 && client <= MaxClients && IsClientInGame(client) && GetClientTeam(client) == 2 && !IsClientInKickQueue(client) && IsPlayerAlive(client);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement