Advertisement
Sugisaki

[AMXX] Menu Vote map

May 15th, 2015
366
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.87 KB | None | 0 0
  1. #include <amxmodx>
  2.  
  3. #define PLUGIN "Menu Vote map"
  4. #define VERSION "1.0"
  5. #define AUTHOR "Sugisaki"
  6.  
  7. #define MAX_MAPS 15
  8. #define MAXVOTE 8
  9.  
  10. #define ADMIN_ACCESS ADMIN_MAP
  11.  
  12. #define FILENAME "listmap"
  13.  
  14. new g_test[MAX_MAPS][32], g_count[MAX_MAPS], bool:blockmenu, mapwin, bool:plaver_vote[33 char], last_playervote[33 char]
  15.  
  16. public plugin_init()
  17. {
  18. register_plugin(PLUGIN, VERSION, AUTHOR)
  19. register_clcmd("say /votemap", "fw_votemap")
  20. register_concmd("amx_reloadmaps", "fw_reloadmaps")
  21. load_file()
  22. blockmenu = false
  23. }
  24. load_file()
  25. {
  26. new path[38]
  27. get_localinfo("amxx_configsdir",path,charsmax(path))
  28. formatex(path, charsmax(path), "%s/%s.txt", path, FILENAME)
  29. if(!file_exists(path))
  30. {
  31. write_file(path, "; Tus mapas aqui abajo")
  32. }
  33. new linedata[32], line
  34.  
  35. new file = fopen(path, "rt")
  36.  
  37. while (!feof(file))
  38. {
  39. fgets(file, linedata, charsmax(linedata))
  40. replace(linedata, charsmax(linedata), "^n", "")
  41. if (linedata[0] == ';' || !linedata[0]) continue
  42.  
  43. g_test[line] = linedata
  44. line++
  45. }
  46. fclose(file)
  47. }
  48. public fw_votemap(id)
  49. {
  50. if(blockmenu)
  51. {
  52. client_print(id, print_chat, "[AMXX] Se ha elegido el mapa %s, no puedes abrir el menu de votos.", g_test[mapwin])
  53. return
  54. }
  55.  
  56. new menu = menu_create("\rVote Menu", "Handler")
  57. new temp[sizeof g_test[]]
  58. for(new i = 0 ; i < sizeof g_test ; i++)
  59. {
  60. if(equal(g_test[i], "")) continue
  61. formatex(temp, charsmax(temp), "%s [%i | %i]", g_test[i], g_count[i], MAXVOTE)
  62. menu_additem(menu, temp)
  63. }
  64. menu_setprop(menu, MPROP_EXITNAME, "Salir")
  65. menu_setprop(menu, MPROP_BACKNAME, "Atras")
  66. menu_setprop(menu, MPROP_NEXTNAME, "Siguiente")
  67. menu_display(id, menu)
  68. }
  69. public Handler(id, menu, item)
  70. {
  71. if(item == MENU_EXIT)
  72. {
  73. menu_cancel(id)
  74. return PLUGIN_HANDLED
  75. }
  76. if(plaver_vote[id])
  77. {
  78. if(item == last_playervote[id])
  79. {
  80. client_print(id, print_chat, "[AMXX] Ya has votado por este mapa.")
  81. return PLUGIN_HANDLED
  82. }
  83. else
  84. {
  85. g_count[last_playervote[id]] --
  86. client_print(id, print_chat, "[AMXX] Se ha eliminado tu anterior voto hecho por %s.", g_test[item])
  87. }
  88. }
  89. new name[32]
  90. get_user_name(id, name, 31)
  91. client_print(0, print_chat, "[AMXX] %s Hizo un voto por %s.", name, g_test[item])
  92. g_count[item]++
  93. plaver_vote[id] = true
  94. last_playervote[id] = item
  95. if(g_count[item] == MAXVOTE)
  96. {
  97. blockmenu = true
  98. set_task(5.0, "changelevel", _, g_test[item], charsmax(g_test[]))
  99. mapwin = item
  100. client_print(0, print_chat, "[AMXX] Mapa se cambiara a %s", g_test[item])
  101. }
  102. menu_destroy(menu)
  103. return PLUGIN_HANDLED
  104. }
  105. public fw_reloadmaps(id)
  106. {
  107. if(!(get_user_flags(id) & ADMIN_ACCESS))
  108. {
  109. console_print(id, "[AMXX] No tienes acceso a este comando")
  110. return PLUGIN_HANDLED
  111. }
  112. load_file()
  113. console_print(id, "[AMXX] Lista de mapas recarga")
  114. return PLUGIN_HANDLED
  115. }
  116. public changelevel(map[])
  117. {
  118. server_cmd("changelevel %s", map)
  119. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement