#include <sourcemod>
#include <sdktools_sound>
#include <cstrike>
#define DPRE_CACHE
//#define DNEW_SOUNDRAW
#if defined DNEW_SOUNDRAW
#define g_RoundDraw "new_sound/radio/rounddraw.wav"
#endif
public void OnPluginStart()
{
HookEvent("round_end", Event_RoundEnd); //EventHookMode_Pre
UserMsg g_um_SendAudio;
if ((g_um_SendAudio = GetUserMessageId("SendAudio")) != INVALID_MESSAGE_ID)
{
HookUserMessage(g_um_SendAudio, UserMsgSendAudio, true);
}
}
#if defined DPRE_CACHE
public void OnMapStart()
{
PrecacheSound("radio/moveout.wav", false);
PrecacheSound("radio/letsgo.wav", false);
PrecacheSound("radio/locknload.wav", false);
PrecacheSound("radio/go.wav", false);
PrecacheSound("radio/bombpl.wav", false);
PrecacheSound("radio/bombdef.wav", false);
PrecacheSound("radio/ctwin.wav", false);
PrecacheSound("radio/terwin.wav", false);
PrecacheSound("radio/rounddraw.wav", false);
#if defined DNEW_SOUNDRAW
PrecacheSound(g_RoundDraw, false);
#endif
}
#endif
public Action UserMsgSendAudio(UserMsg msg_id, BfRead msg, const int[] players, int playersNum, bool reliable, bool init)
{
char msg_str[32];
msg.ReadString(msg_str, sizeof(msg_str));
if (!strcmp(msg_str[6], "moveout"))
{
return Plugin_Handled;
}
else if (!strcmp(msg_str[6], "letsgo"))
{
return Plugin_Handled;
}
else if (!strcmp(msg_str[6], "locknload"))
{
return Plugin_Handled;
}
else if (!strcmp(msg_str[6], "go"))
{
return Plugin_Handled;
}
return Plugin_Continue;
}
public void Event_RoundEnd(Event event, const char[] name, bool dontBroadcast)
{
//if (!dontBroadcast)event.BroadcastDisabled = true; //EventHookMode_Pre
#if defined DNEW_SOUNDRAW
bool bSendSoundNewDraw = false;
#endif
CSRoundEndReason i_reasonId = view_as<CSRoundEndReason>(event.GetInt("reason"));
for (int i = 1; i <= MaxClients; ++i)
{
if (IsClientInGame(i))
{
if (i_reasonId == CSRoundEnd_Draw || i_reasonId == CSRoundEnd_GameStart)
{
#if defined DNEW_SOUNDRAW
bSendSoundNewDraw = true;
#endif
StopSound(i, SNDCHAN_STATIC, "radio/rounddraw.wav");
}
else
{
StopSound(i, SNDCHAN_STATIC, "radio/ctwin.wav");
StopSound(i, SNDCHAN_STATIC, "radio/terwin.wav");
}
}
}
#if defined DNEW_SOUNDRAW
if (bSendSoundNewDraw)EmitSoundToAll(g_RoundDraw);
#endif
}