PHP Code:
#include <sourcemod>
#include <sdktools_functions>
#include <sdktools_entinput>
#pragma newdecls required
#pragma semicolon 1
public void OnPluginStart() {
HookEvent("player_death", Event_PlayerDeath, EventHookMode_Pre);
}
public void Event_PlayerDeath(Event hEvent, const char[] sEventName, bool bDontBroadcast)
{
int client = GetClientOfUserId(hEvent.GetInt("userid"));
if (0 < client <= MaxClients && IsClientInGame(client))
{
int offset = FindDataMapInfo(client, "m_hMyWeapons") - 4;
for (int i = 0; i < 48; i++)
{
offset += 4;
int iWeapon = GetEntDataEnt2(client, offset);
if (IsValidEdict(iWeapon))
{
int iAmmo = FindDataMapInfo(client, "m_iAmmo") + (GetEntProp(iWeapon, Prop_Data, "m_iPrimaryAmmoType") * 4);
SetEntData(client, iAmmo, 0, 4, true);
iAmmo = FindDataMapInfo(client, "m_iAmmo") + (GetEntProp(iWeapon, Prop_Data, "m_iSecondaryAmmoType") * 4);
SetEntData(client, iAmmo, 0, 4, true);
if (RemovePlayerItem(client, iWeapon))
AcceptEntityInput(iWeapon, "Kill");
}
}
}
}
This should prevent weapons from dropping when the player gets killed. [Untested]
__________________