Advertisement
Guest User

[AMXX] Simple music menu

a guest
Mar 13th, 2017
353
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 1.88 KB | None | 0 0
  1. #include <amxmodx>
  2.  
  3. #define PLUGIN  "New Plug-In"
  4. #define VERSION "1.0"
  5. #define AUTHOR  "Author"
  6.  
  7. new Array:g_musics
  8. new Array:g_m_name
  9. new g_menu
  10. public plugin_init()
  11. {
  12.     register_plugin(PLUGIN, VERSION, AUTHOR)
  13.     register_clcmd("say /music", "pfn_show_menu")
  14. }
  15.  
  16. public plugin_precache()
  17. {
  18.     new FILE[] = "addons/amxmodx/configs/music.ini";
  19.     if(!file_exists(FILE))
  20.     {
  21.         set_fail_state("Archivo music.ini no existe");
  22.         return
  23.     }
  24.     g_musics = ArrayCreate(128, 64);
  25.     g_m_name = ArrayCreate(128)
  26.     g_menu = menu_create("Musicas", "mh_musica")
  27.     new fh = fopen(FILE, "r")
  28.     if(!fh)
  29.     {
  30.         set_fail_state("Error abriendo music.ini");
  31.         return
  32.     }
  33.     new line[132], name[32], loc[100], count
  34.     count = 0
  35.     while(!feof(fh))
  36.     {
  37.         fgets(fh, line, charsmax(line))
  38.         trim(line)
  39.         if(!line[0] || line[0] == ';')
  40.         {
  41.             continue;
  42.         }
  43.         parse(line, name, charsmax(name), loc, charsmax(loc))
  44.         trim(name)
  45.         trim(loc)
  46.         if(!loc[0] || !name[0])
  47.         {
  48.             continue;
  49.         }
  50.         if(file_exists(loc))
  51.         {
  52.             ArraySetString(g_musics, count, loc)
  53.             ArraySetString(g_m_name, count, name)
  54.             if(is_mp3(loc))
  55.             {
  56.                 precache_generic(loc)
  57.             }
  58.             else
  59.             {
  60.                 precache_sound(loc)
  61.             }
  62.             menu_additem(g_menu, name)
  63.         }
  64.         else
  65.         {
  66.             log_amx("[MUSICAS] Archivo %s no existe", loc)
  67.         }
  68.     }
  69.     fclose(fh)
  70.     menu_setprop(g_menu, MPROP_EXIT, MEXIT_ALL)
  71. }
  72. public pfn_show_menu(id)
  73. {
  74.     menu_display(id, g_menu)
  75. }
  76. public mh_musica(id, menu, item)
  77. {
  78.     if(item == MENU_EXIT)
  79.     {
  80.         return
  81.     }
  82.     if(item >= ArraySize(g_musics))
  83.     {
  84.         return
  85.     }
  86.  
  87.     new file[64]
  88.     ArrayGetString(g_musics, item, file, charsmax(file))
  89.     client_cmd(id, "%s ^"%s^"", is_mp3(file) ? "mp3 play" : "spk", file)
  90.     client_print(id, print_chat, "[MUSICA] Estas escuchando %a", ArrayGetStringHandle(g_m_name, item))
  91.  
  92. }
  93. stock bool:is_mp3(file[])
  94. {
  95.     if(equali(file[strlen(file) - 4], ".mp3"))
  96.     {
  97.         return true;
  98.     }
  99.     return false
  100. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement