#include new iEntity[MAXPLAYERS+1] = {-1, -1, ...}, iWeapon[MAXPLAYERS+1] = {-1, -1, ...}; public OnPluginStart() { HookEvent("player_spawn", OnPlayerSpawn); HookEvent("player_death", OnPlayerDeath); } public OnMapStart() { PrecacheModel("models/weapons/w_eq_fraggrenade.mdl"); PrecacheModel("models/weapons/w_c4.mdl"); } public Action:OnPlayerRunCmd(client, &buttons, &impulse, Float:vel[3], Float:angles[3], &weapon) { if(iEntity[client] < 0 && IsPlayerAlive(client)) { iEntity[client] = CreateEntityByName("prop_dynamic_override"); DispatchKeyValue(iEntity[client], "model", "models/weapons/w_eq_fraggrenade.mdl"); DispatchKeyValue(iEntity[client], "spawnflags", "256"); DispatchKeyValue(iEntity[client], "solid", "0"); DispatchSpawn(iEntity[client]); SetVariantString("!activator"); AcceptEntityInput(iEntity[client], "SetParent", client, iEntity[client]); SetVariantString("primary"); AcceptEntityInput(iEntity[client], "SetParentAttachment", iEntity[client], iEntity[client]); AcceptEntityInput(iEntity[client], "ClearParent"); new Float:fPos[3]; GetEntPropVector(iEntity[client], Prop_Send, "m_vecOrigin", fPos); PrintToChat(client, "%f %f %f", fPos[0], fPos[1], fPos[2]); AcceptEntityInput(iEntity[client], "kill"); iEntity[client] = -1; if(iWeapon[client] > 0) { TeleportEntity(iWeapon[client], fPos, NULL_VECTOR, NULL_VECTOR); } } } public OnPlayerSpawn(Handle:event, const String:name[], bool:dontBroadcast) { new client = GetClientOfUserId(GetEventInt(event, "userid")); if (!client && GetClientTeam(client) < 2) return; if(iWeapon[client] > 0) { AcceptEntityInput(iWeapon[client], "kill"); } iWeapon[client] = CreateEntityByName("prop_dynamic_override"); DispatchKeyValue(iWeapon[client], "model", "models/weapons/w_c4.mdl"); DispatchKeyValue(iWeapon[client], "spawnflags", "256"); DispatchKeyValue(iWeapon[client], "solid", "0"); DispatchSpawn(iWeapon[client]); } public OnPlayerDeath(Handle:event, const String:name[], bool:dontBroadcast) { new client = GetClientOfUserId(GetEventInt(event, "userid")); if (!client) return; OnClientDisconnect(client); } public OnClientDisconnect(client) { if(iWeapon[client] > 0) { AcceptEntityInput(iWeapon[client], "kill"); iWeapon[client] = -1; } }