HLMOD.HU Forrás Megtekintés - www.hlmod.hu
  1. #include < amxmodx >
  2.  
  3. enum _:Serv_Base {
  4. Server_Caption[128],
  5. Server_IP[33]
  6. };
  7.  
  8. new const sz_file[]="addons/amxmodx/configs/servers_list.ini";
  9.  
  10. new Array:g_Messages,g_Serv[Serv_Base];
  11.  
  12. public plugin_init(){
  13. register_plugin("Multi Server Menu","1.0","Seroff");
  14. register_clcmd("say /server","client_msg");
  15. register_clcmd("say_team /server","client_msg");
  16. }
  17.  
  18. public plugin_cfg()
  19. {
  20. g_Messages=ArrayCreate(Serv_Base);
  21. new file = fopen(sz_file, "rt"),buffer[256];
  22. if(!file) return set_fail_state("File ^"addons/amxmodx/configs/servers_list.ini^" not found");
  23. while(file && !feof(file))
  24. {
  25. fgets(file, buffer, charsmax(buffer));
  26. if(buffer[0]=='"')
  27. {
  28. parse(buffer, g_Serv[Server_Caption], 127, g_Serv[Server_IP], 32);
  29. ArrayPushArray(g_Messages,g_Serv);
  30. }
  31. }
  32. return fclose(file);
  33. }
  34.  
  35. public client_msg(id){
  36. new i,msg[160],i_m[10];
  37. new g_Menu = menu_create("\rTovábbi szerverek\d:", "menu_handler");
  38. for(i=0;i<ArraySize(g_Messages);i++){
  39. num_to_str(i+1, i_m,sizeof(i_m)-1);
  40. ArrayGetArray(g_Messages, i, g_Serv);
  41. formatex(msg,sizeof(msg)-1,"\y %s \r- \w ip\d:\r %s",g_Serv[Server_Caption],g_Serv[Server_IP]);
  42. menu_additem(g_Menu, msg, i_m,0);
  43. }
  44. menu_setprop(g_Menu, MPROP_NEXTNAME, "Tovább");
  45. menu_setprop(g_Menu, MPROP_BACKNAME, "Vissza");
  46. menu_setprop(g_Menu, MPROP_EXITNAME, "Mégse");
  47. menu_setprop(g_Menu, MPROP_EXIT, MEXIT_ALL);
  48. menu_display(id, g_Menu, 0);
  49. return 1;
  50. }
  51.  
  52. public menu_handler(id, menu, item)
  53. {
  54. if (item == MENU_EXIT)
  55. {
  56. menu_destroy(menu);
  57. return 1;
  58. }
  59. new s_Data[6], s_Name[64], i_Access, i_Callback;
  60. menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback);
  61. new i_Key = str_to_num(s_Data);
  62. ArrayGetArray(g_Messages, -1+i_Key, g_Serv);
  63. console_cmd(id,"connect %s",g_Serv[Server_IP]);
  64. menu_destroy(menu)
  65. return 1
  66. }
  67.