#include <amxmodx>
#include <amxmisc>
#define PLUGIN "win/lose"
#define VERSION "0.1"
#define AUTHOR "DarkGL"
#define MAXSLOTS 32
enum Color{
YELLOW = 1, // Yellow
GREEN, // Green Color
TEAM_COLOR, // Red, grey, blue
GREY, // grey
RED, // Red
BLUE, // Blue
}
new TeamName[][] = {
"",
"TERRORIST",
"CT",
"SPECTATOR"
}
new win[][128]={
"misc/win1.mp3",
"misc/win2.mp3",
"misc/win3.mp3",
"misc/win4.mp3",
"misc/win5.mp3",
"misc/win6.mp3"
}
new lose[][128]={
"misc/lose1.mp3",
"misc/lose2.mp3",
"misc/lose3.mp3",
"misc/lose4.mp3",
"misc/lose5.mp3",
"misc/lose6.mp3"
}
new bool:slucha[33];
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_event("SendAudio", "t_win", "a", "2&%!MRAD_terwin")
register_event("SendAudio", "ct_win", "a", "2&%!MRAD_ctwin")
register_clcmd("say /muza","muza")
}
public muza(id){
if(!slucha[id]){
slucha[id] = true;
ColorChat(id,GREEN,"Wlaczyles muzyke !!")
}
else
{
slucha[id] = false;
ColorChat(id,GREEN,"Wylaczyles muzyke !!")
}
}
public client_connect(id){
slucha[id] = true;
}
public t_win()
{
new random_win = random_num(0,sizeof(win)-1)
new random_lose = random_num(0,sizeof(lose)-1)
client_cmd(0,"stopsound")
for(new id=1;id<=get_maxplayers();id++)
{
if(!is_user_connected(id) || !slucha[id]){
continue;
}
if(get_user_team(id)==1)
{
play_sound(id,win[random_win])
}
else if(get_user_team(id)==2)
{
play_sound(id,lose[random_lose])
}
}
return PLUGIN_CONTINUE
}
public ct_win()
{
new random_win = random_num(0,sizeof(win)-1)
new random_lose = random_num(0,sizeof(lose)-1)
client_cmd(0,"stopsound")
for(new id=1;id<=get_maxplayers();id++)
{
if(!is_user_connected(id) || !slucha[id]){
continue;
}
if(get_user_team(id)==2)
{
play_sound(id,win[random_win])
}
else if(get_user_team(id)==1)
{
play_sound(id,lose[random_lose])
}
}
return PLUGIN_CONTINUE
}
public plugin_precache()
{
for(new i;i<sizeof(win);i++){
precache_sound(win[i])
}
for(new i;i<sizeof(win);i++){
precache_sound(lose[i])
}
}
public play_sound(id,sound[])
{
if( id != 0 && !is_user_connected(id) ) return PLUGIN_HANDLED
if( containi(sound,".wav") > 0) client_cmd(id,"spk %s",sound)
else if( containi(sound,".mp3") >0) client_cmd(id,"mp3 play sound/%s",sound)
return PLUGIN_CONTINUE
}
public ColorChat(id, Color:type, const msg[], {Float,Sql,Result,_}:...)
{
static message[256];
switch(type)
{
case YELLOW:{ // Yellow
message[0] = 0x01;
}
case GREEN:{// Green
message[0] = 0x04;
}
default:{ // White, Red, Blue
message[0] = 0x03;
}
}
vformat(message[1], 251, msg, 4);
// Make sure message is not longer than 192 character. Will crash the server.
message[192] = '^0';
new team, ColorChange, index, MSG_Type;
if(!id) {
index = FindPlayer();
MSG_Type = MSG_ALL;
} else {
MSG_Type = MSG_ONE;
index = id;
}
team = get_user_team(index);
ColorChange = ColorSelection(index, MSG_Type, type);
ShowColorMessage(index, MSG_Type, message);
if(ColorChange){
Team_Info(index, MSG_Type, TeamName[team]);
}
}
ShowColorMessage(id, type, message[]){
message_begin(type, 76, _, id);
write_byte(id)
write_string(message);
message_end();
}
Team_Info(id, type, team[]){
message_begin(type, 86, _, id);
write_byte(id);
write_string(team);
message_end();
return 1;
}
ColorSelection(index, type, Color:Type){
switch(Type) {
case RED: {
return Team_Info(index, type, TeamName[1]);
}
case BLUE: {
return Team_Info(index, type, TeamName[2]);
}
case GREY: {
return Team_Info(index, type, TeamName[0]);
}
}
return 0;
}
FindPlayer(){
new i = -1;
while(i <= MAXSLOTS){
if(is_user_connected(++i)){
return i;
}
}
return -1;
}