#include <amxmodx>
 
#define PLUGIN  "Simple RoundEndSounds"
#define VERSION "1.1"
#define AUTHOR  "mforce"
 
 
#define MAX_MUSIC 32
new const PREFIX[] = ".:DarK~DemonS:."
 
new musics[MAX_MUSIC][64], music_count, play_count, bool:musicon[33];
 
public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR);
    register_clcmd("say /korvegi", "music_on")
    register_event("SendAudio", "PlayMusic", "a", "2&%!MRAD_ctwin")
    register_event("SendAudio", "PlayMusic", "a", "2&%!MRAD_terwin")
    set_task(120.0, "hirdetes", 0, _, _, "b")
}
 
public plugin_precache() {
    new sBuffer[192], sFile[128], sData[64], pFile;
    get_localinfo("amxx_configsdir", sFile, charsmax(sFile));
    format(sFile, charsmax(sFile), "%s/korvegi_zene.ini", sFile);
 
    pFile = fopen(sFile, "rt");
 
    if(pFile) {    
        while(music_count < MAX_MUSIC && !feof(pFile)) {
            fgets(pFile, sBuffer, charsmax(sBuffer));
            trim(sBuffer);
            if(sBuffer[0] != ';' && parse(sBuffer, sData, charsmax(sData))) {
                if(contain(sData, ".mp3") != -1) {
                    precache_sound(sData)
                    copy(musics[music_count++], charsmax(musics[]), sData)
                }
            }
        }
        fclose(pFile);
    }
    else
        write_file(sFile, ";^"mappa/valami.mp3^"");
 
    if(!music_count) set_fail_state("Nem talaltunk zeneket! Ellenorizd a fajlt ^"addons/amxmodx/configs/korvegi_zene.ini^"");
	
}

public hirdetes()
{
	ChatColor(0, "^4[%s]^1 A körvégi zenék Ki/Be kapcsoláshoz: ^4/korvegi^1.", PREFIX)
}

public music_on(id) {
    switch(musicon[id]) {
        case true: {
            ChatColor(id, "^4[%s]^1 Kikapcsoltad a körvégi zenéket.", PREFIX)
            musicon[id] = false;
            client_cmd(id, "setinfo korvegi 0")
        }
        case false: {
            ChatColor(id, "^4[%s]^1 Bekapcsoltad a körvégi zenéket.", PREFIX)
            musicon[id] = true;
            client_cmd(id, "setinfo korvegi 1")
        }
    }
}
 
public client_putinserver(id) {
    if(user_roundmusic(id)) {
        musicon[id] = true;
    }
}
 
public client_disconnect(id) {
    musicon[id] = false;
}
 
public PlayMusic() {
    new Mp3File[128], players[32], num, tempid;
    formatex(Mp3File, charsmax(Mp3File), "sound/%s", musics[play_count == music_count ? (play_count = 0) : play_count++]);
    get_players(players, num, "c");
    for(new i; i < num; i++) {
        tempid = players[i];
        if(musicon[tempid]) {
            client_cmd(tempid, "mp3 play %s", Mp3File);
        }
    }
}
 
stock bool:user_roundmusic(id) {
    new azonosit[8];
    get_user_info(id, "korvegi", azonosit, charsmax(azonosit));
    if(equal(azonosit, "0")) return false;
    return true;
}
 
stock ChatColor(const id, const szMessage[], any:...) {
    static pnum, players[32], szMsg[190], IdMsg;
    vformat(szMsg, charsmax(szMsg), szMessage, 3);
   
    if(!IdMsg) IdMsg = get_user_msgid("SayText");
   
    if(id) {
        if(!is_user_connected(id)) return;
        players[0] = id;
        pnum = 1;
    }
    else get_players(players, pnum, "ch");
   
    for(new i; i < pnum; i++) {
        message_begin(MSG_ONE, IdMsg, .player = players[i]);
        write_byte(players[i]);
        write_string(szMsg);
        message_end();
    }
}