Since you are using csx, you could use forward client_death as well, so you directly get weapon index, and team attack.
Anyway here it is :
PHP Code:
#include <amxmodx>
#include <csx>
new Trie:g_tPistolsShortNames
public plugin_init()
{
// register_plugin(PLUGIN, VERSION, AUTHOR)
register_event("DeathMsg", "Event_DeathMsg", "a", "1<0")
// register_event("TextMsg", "Event_TextMsg_Restart", "a", "2&#Game_C", "2&#Game_w")
// register_logevent("LogEvent_Round_Start", 2, "1=Round_Start")
g_tPistolsShortNames = TrieCreate()
// set any value, later we only gonna check if the string key exists in this try
TrieSetCell(g_tPistolsShortNames, "p228", CSW_P228)
TrieSetCell(g_tPistolsShortNames, "usp", CSW_USP)
TrieSetCell(g_tPistolsShortNames, "glock18", CSW_GLOCK18)
TrieSetCell(g_tPistolsShortNames, "fiveseven", CSW_FIVESEVEN)
TrieSetCell(g_tPistolsShortNames, "elites", CSW_ELITE)
TrieSetCell(g_tPistolsShortNames, "deagle", CSW_DEAGLE)
}
public plugin_end()
{
TrieDestroy(g_tPistolsShortNames)
}
public client_damage(iAttacker, iVictim, iDamage, iWeapon, iHitplace, TA)
{
if (iAttacker && iVictim)
{
g_iHits[iAttacker][iVictim]++
}
}
public Event_DeathMsg()
{
new iKiller = read_data(1)
new iVictim = read_data(2)
g_iPistolKills[iVictim] = 0
g_iKnifeKills[iVictim] = 0
if(iKiller == iVictim)
{
return
}
if (get_user_team(iKiller) != get_user_team(iVictim)){
{
new szWeapon[10]
read_data(4, szWeapon, charsmax(szWeapon))
if ( IsWeaponPistol(szWeapon) )
{
g_iPistolKills[iKiller]++
}
else if(equal(szWeapon, "knife"))
{
g_iKnifeKills[iKiller]++
}
}
}
IsWeaponPistol(const szWeaponShortName[])
{
return TrieKeyExists(g_tPistolsShortNames, szWeaponShortName)
}
// not used
stock GetWeaponIndex(const szWeaponShortName[])
{
new iId
if( TrieGetCell(g_tPistolsShortNames, szWeaponShortName, iId) )
{
return iId
}
return 0
}
__________________