I figured I might share some natives that I've found / written and use til this day:
PHP Code:
char g_sWeapons_Classnames_List[][] =
{
"weapon_deagle", "weapon_elite", "weapon_fiveseven", "weapon_glock", "weapon_ak47", "weapon_aug",
"weapon_awp", "weapon_famas", "weapon_g3sg1", "weapon_galilar", "weapon_m249", "weapon_m4a1",
"weapon_mac10", "weapon_p90", "weapon_mp5sd", "weapon_ump45", "weapon_xm1014", "weapon_bizon",
"weapon_mag7", "weapon_negev", "weapon_sawedoff", "weapon_tec9", "weapon_hkp2000", "weapon_mp7",
"weapon_mp9", "weapon_nova", "weapon_p250", "weapon_scar20", "weapon_sg553", "weapon_ssg08",
"weapon_m4a1_silencer", "weapon_usp_silencer", "weapon_cz75a", "weapon_revolver", "weapon_bayonet",
"weapon_knife_flip" /*"weapon_knife_gut", "weapon_knife_karambit", "weapon_knife_m9_bayonet",
"weapon_knife_tactical", "weapon_knife_push", "weapon_knife_butterfly", "weapon_knife_falchion",
"weapon_knife_survival_bowie", "weapon_knife_ursus", "weapon_knife_gypsy_jackknife",
"weapon_knife_stiletto", "weapon_knife_widowmaker"*/
};
int g_iItem_Definition_Index_List[] =
{
1, 2, 3, 4, 7, 8, 9, 10,
11, 13, 14, 16, 17, 19, 23, 24,
25, 26, 27, 28, 29, 30, 32, 33,
34, 35, 36, 38, 39, 40, 60, 61,
63, 64, 500, 505, 506, 507, 508, 509,
512, 514, 515, 516, 519, 520, 522, 523
};
stock bool SafeRemoveWeapon(int iClient, int iWeapon_Entity_Index)
{
if (!IsValidEntity(iWeapon_Entity_Index) || !IsValidEdict(iWeapon_Entity_Index))
return false;
if (!HasEntProp(iWeapon_Entity_Index, Prop_Send, "m_hOwnerEntity"))
return false;
int iWeapon_Owner_Entity = GetEntPropEnt(iWeapon_Entity_Index, Prop_Send, "m_hOwnerEntity");
if (iWeapon_Owner_Entity != iClient)
SetEntPropEnt(iWeapon_Entity_Index, Prop_Send, "m_hOwnerEntity", iClient);
CS_DropWeapon(iClient, iWeapon_Entity_Index, false);
if (HasEntProp(iWeapon_Entity_Index, Prop_Send, "m_hWeaponWorldModel"))
{
int iWeapon_World_Model = GetEntPropEnt(iWeapon_Entity_Index, Prop_Send, "m_hWeaponWorldModel");
if (IsValidEdict(iWeapon_World_Model) && IsValidEntity(iWeapon_World_Model))
if (!AcceptEntityInput(iWeapon_World_Model, "Kill"))
return false;
}
if (!AcceptEntityInput(iWeapon_Entity_Index, "Kill"))
return false;
return true;
}
/* stock void Weapon_Classname_By_Item_Definition_Index(int iItem_Definition_Index, char[] sWeapon_Classname, int iWeapon_Classname_Size)
{
for (int i = 0; i < sizeof(g_iItem_Definition_Index_List))
{
if (iItem_Definition_Index == g_iItem_Definition_Index_List[i])
{
Format(sWeapon_Classname, iWeapon_Classname_Size, "%s", g_sWeapons_Classnames_List[i]);
break;
}
}
}
stock int Item_Definition_Index_By_Weapon_Classname(char[] sWeapon_Classname)
{
for (int i = 0; i < sizeof(g_sWeapons_Classnames_List); i++)
if (StrEqual(sWeapon_Classname, g_sWeapons_Classnames_List[i]))
return g_iItem_Definition_Index_List[i];
return -1;
} */
stock void GetWeaponClassname(int iWeapon_Entity_Index, char[] sBuffer, int iBuffer_Size)
{
switch (GetEntProp(iWeapon_Entity_Index, Prop_Send, "m_iItemDefinitionIndex"))
{
case 60:
Format(sBuffer, iBuffer_Size, "weapon_m4a1_silencer");
case 61:
Format(sBuffer, iBuffer_Size, "weapon_usp_silencer");
case 63:
Format(sBuffer, iBuffer_Size, "weapon_cz75a");
case 64:
Format(sBuffer, iBuffer_Size, "weapon_revolver");
default:
GetEntityClassname(iWeapon_Entity_Index, sBuffer, iBuffer_Size);
}
}
stock bool IsValidClient(int iClient)
{
if (!(0 < iClient <= MaxClients) || !IsClientConnected(iClient) || !IsClientInGame(iClient) || IsFakeClient(iClient))
return false;
return true;
}