Есть не большой плагин. Работает на скилы, озвучка двоих троих и тд.
Проблем в том что на паблике он работает отлично, то есть с каждого нового раунда идет новый подсчет. Нужно что бы на ксдм новый отсчет начинался после респа. Убили новый отсчет и тд.
вот код.
Код:
#include <amxmodx>
#include <cstrike>
#define ACCESS_FLAG -1 //ADMIN_LEVEL_H
new g_NumKills[33]
new g_RoundNumber
new const g_szSoundList[][] =
{
"soundkill/Headshot_BL.wav",
"soundkill/Knifekill_BL.wav",
"soundkill/MultiKill_2_BL.wav",
"soundkill/MultiKill_3_BL.wav",
"soundkill/MultiKill_4_BL.wav",
"soundkill/MultiKill_5_BL.wav",
"soundkill/MultiKill_6_BL.wav",
"soundkill/MultiKill_7_BL.wav",
"soundkill/MultiKill_8_BL.wav",
"soundkill/Grenadekill_GR.wav",
"soundkill/Round_End_Defuse_GR.wav",
"soundkill/Bomb_Plant_GR.wav",
"soundkill/Round_Start_BL_4.wav"
}
enum
{
SOUND_HEADSHOT,
SOUND_KNIFE,
SOUND_2KILLS,
SOUND_3KILLS,
SOUND_4KILLS,
SOUND_5KILLS,
SOUND_6KILLS,
SOUND_7KILLS,
SOUND_8KILLS,
SOUND_GRENADE,
SOUND_DEFUSE,
SOUND_PLANT,
SOUND_START
}
public plugin_init()
{
register_plugin("Sound Annoncer", "1.0", "ill")
register_logevent("logevent_round_start",2, "1=Round_Start")
register_event("TextMsg", "event_restart", "a", "2&#Game_C", "2&#Game_w")
register_message(get_user_msgid("SendAudio"), "message_SendAudio")
}
public plugin_precache()
{
for(new i; i < sizeof g_szSoundList; i++)
{
precache_sound(g_szSoundList[i])
}
}
public client_putinserver(id)
{
g_NumKills[id] = 0
}
public logevent_round_start()
{
g_RoundNumber++
arrayset(g_NumKills, 0, 33)
client_cmd(0, "spk ^"%s^"", g_szSoundList[SOUND_START])
}
public event_restart()
{
g_RoundNumber = 0
}
public client_death(attacker, victim, weapon, hitplace, TK)
{
if(!attacker || !victim)
{
return
}
#if ACCESS_FLAG > -1
if(!(get_user_flags(attacker) && ACCESS_FLAG))
{
return
}
#endif
g_NumKills[attacker]++
if(weapon == CSW_KNIFE && g_RoundNumber > 1)
{
client_cmd(attacker, "spk ^"%s^"", g_szSoundList[SOUND_KNIFE])
}
else if(weapon == CSW_HEGRENADE)
{
client_cmd(attacker, "spk ^"%s^"", g_szSoundList[SOUND_GRENADE])
}
else
{
new iHheadShot
iHheadShot = hitplace == HIT_HEAD
if(iHheadShot)
{
client_cmd(attacker, "spk ^"%s^"", g_szSoundList[SOUND_HEADSHOT])
}
else if(2 <= g_NumKills[attacker] <= 8)
{
new iSoundNum = g_NumKills[attacker]
client_cmd(attacker, "spk ^"%s^"", g_szSoundList[iSoundNum])
}
}
}
public message_SendAudio(MsgId, MsgDest, MsgEntity)
{
static szMessage[32]
get_msg_arg_string(2, szMessage, charsmax(szMessage))
if(equali(szMessage, "%!MRAD_BOMBDEF"))
{
client_cmd(0, "spk ^"%s^"", g_szSoundList[SOUND_DEFUSE])
return PLUGIN_HANDLED
}
else if(equali(szMessage, "%!MRAD_BOMBPL"))
{
client_cmd(0, "spk ^"%s^"", g_szSoundList[SOUND_PLANT])
return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}