#include <amxmodx>
#include <amxmisc>
#include <print_color>
 
#define PLUGIN "Korvegizene menure"
#define VERSION "1.0"
#define AUTHOR ""
 
#define rzenemin 0 //ez mindig maradjon nulla!
#define rzenemax 8 //amennyi zened van 0tol szamolva, tehat 3 az 0,1,2.
 
new randomkibe;
new Zene[33], valasztott[8]; //ha tobb zenet akarsz ezt is noveled!
 
#pragma tabsize 0;
 
new const Prefix[] = "[Szerver]";
enum _:adatok{
    eleres[64],
    cime[64]
}
new const ZeneBla[][adatok] ={
    {"sound/zene/zene_1.mp3", "Zene 1"},
    {"sound/zene/zene_2.mp3", "Zene 2"},
    {"sound/zene/zene_3.mp3", "Zene 3"},
    {"sound/zene/zene_4.mp3", "Zene 4"},
    {"sound/zene/zene_5.mp3", "Zene 5"},
    {"sound/zene/zene_6.mp3", "Zene 6"},
    {"sound/zene/zene_7.mp3", "Zene 7"},
    {"sound/zene/zene_8.mp3", "Zene 8"}
};
public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR);
    
    register_clcmd("say /zene", "zene_fomenu_f");
    
    register_logevent("Randomazosszeset", 2, "1=Round_End");
}
public zene_fomenu_f(id, k){
    new cim[121];
    format(cim, charsmax(cim), "\rZene fomenu");
    new menu = menu_create(cim, "zene_fomenu_f_h");
    
    formatex(cim, charsmax(cim), "\yRandom az osszeset");
    menu_additem(menu, cim, "1",0);
    formatex(cim, charsmax(cim), "\yEgyfele zenet valasztok");
    menu_additem(menu, cim, "2",0);
    menu_display(id, menu, 0);
}
public zene_fomenu_f_h(id, menu, item){
    if(item == MENU_EXIT){
        menu_destroy(menu);
        return;
    }
    new data[9], szName[64];
    new access, callback;
    menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
    new k = str_to_num(data);
    Zene[id] = k;
    
    switch(k){
        
        case 1:{
            print_color(id, "%s !yKivalasztottad a !trandom!y zeneket.", Prefix);
            print_color(0, "%s !yA kor vegen a zenek!t random !yfognak szolni!", Prefix);
            Randomazosszeset(k);
            randomkibe = false;
        }
        case 2: zene_fomenu(id, k);
            
    }
    
}
public zene_fomenu(id, k){
    new cim[121];
    format(cim, charsmax(cim), "\rZene menu | valassz zenet");
    new menu = menu_create(cim, "zene_fomenu_h");
    
    for(new i = 0; i < sizeof(ZeneBla); i++){
        new Sor[7]; num_to_str(i, Sor, 6);
        formatex(cim, charsmax(cim), "\d%s", ZeneBla[i][cime]);
        menu_additem(menu, cim, Sor);
    }
    menu_display(id, menu, 0);
}
public zene_fomenu_h(id, menu, item){
    if(item == MENU_EXIT){
        menu_destroy(menu);
        return;
    }
    new data[9], szName[64];
    new access, callback;
    menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
    new k = str_to_num(data);
    Zene[id] = k;
    
    for(new i = 0; i < sizeof(ZeneBla); i++){
        if(Zene[id] != i){
            valasztott[i] = false;
        }
        else if(Zene[id] == i){
            valasztott[i] = true;
            randomkibe = true;
            print_color(id, "%s !yKivalasztottad a(z)!t %s !yzenet.", Prefix, ZeneBla[i][cime]);
            print_color(0, "%s !yA kor vegen csak!t %s !yzene fog szolni!.", Prefix, ZeneBla[i][cime]);
            Randomazosszeset(k);
        }
        
    }
}
public Randomazosszeset(k)
{
    new randomz = random_num(rzenemin, rzenemax);
    new Players[32], PlayersNum, id;
    get_players(Players, PlayersNum, "c");
    for(new i; i < PlayersNum; i++){
        for(new i; i < sizeof(ZeneBla); i++){
            if(!randomkibe){
                client_cmd(id, "mp3 play %s", ZeneBla[randomz][eleres]);
                print_color(id, "%s !yZene cime:!t %s", Prefix, ZeneBla[randomz][cime]);
                break;
            }
        }
        for(Zene[id] = i; i < sizeof(ZeneBla); i++){
            
            if(valasztott[i] && randomkibe){
                client_cmd(id, "mp3 play %s", ZeneBla[i][eleres]);
                print_color(id, "%s !yZene cime:!t %s", Prefix, ZeneBla[i][cime]);
                break;
            }
        }
    }
    return PLUGIN_HANDLED;
}
public client_connect(id){
    randomkibe = false;
}
public plugin_precache(){
    for(new i;i < sizeof(ZeneBla); i++){
        precache_sound(ZeneBla[i][eleres]);
    }
}