Advertisement
Guest User

Untitled

a guest
Oct 14th, 2013
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 4.94 KB | None | 0 0
  1. #include <amxmodx>
  2. #include <amxmisc>
  3.  
  4. new mc_malamapa // Menu
  5. new mcbc_malamapa // Menu Callback
  6.  
  7. new gWpisal[32]
  8. new gCount=0
  9. new gMaps[300][32]
  10. new gMapsCount=0
  11. new gVoteRunning=0
  12. new gVotes[5]
  13. new gMapsInVote[5]
  14. new gGranaMalaMapa
  15.  
  16. public plugin_init()
  17. {
  18.     register_plugin("Mala Mapa", "1.1", "Kobra")
  19.     register_clcmd ( "say", "sprawdz" )
  20.     register_clcmd ( "say_team", "sprawdz" )
  21.     wczytaj_mapy()
  22. }
  23.  
  24. public wczytaj_mapy()
  25. {
  26.     new rsFile[128],s[128],i
  27.     new current_map[19]
  28.     get_mapname(current_map, 20)
  29.     get_configsdir(rsFile, 128)
  30.     format(rsFile, 128 ,"%s/maps_small.ini", rsFile)
  31.     i=fopen(rsFile,"rt")
  32.     gMapsCount=0
  33.     if(i==0)
  34.     {
  35.         log_amx("Error loading config file! [%s]", rsFile)
  36.     }
  37.     else
  38.     {
  39.         log_amx("Reading config file [%s]", rsFile)
  40.         while (!feof(i))
  41.         {
  42.             fgets(i,s,30)
  43.             trim(s)
  44.             if(s[0]!=0)
  45.             {
  46.                 if(equal(current_map, s))
  47.                 {
  48.                     gGranaMalaMapa=1
  49.                 }
  50.                 log_amx("Loaded [%s]", s);
  51.                 copy(gMaps[gMapsCount], 30, s)
  52.                 gMapsCount++
  53.             }
  54.         }
  55.         fclose(i)
  56.     }
  57.     log_amx("Loaded maps: %d", gMapsCount)
  58.     return PLUGIN_CONTINUE
  59. }
  60.  
  61. public client_connect(id)
  62. {
  63.     if(gGranaMalaMapa)
  64.         return PLUGIN_CONTINUE
  65.  
  66.     if(player_count()<=6)
  67.     {
  68.         client_print(0,print_chat, "Potrzebnych glosow na zmiane na mala mape: %d", (player_count()/2)+1-gCount)
  69.     }
  70.     return PLUGIN_CONTINUE
  71. }
  72.  
  73. public client_disconnect(id)
  74. {
  75.     if(gGranaMalaMapa)
  76.         return PLUGIN_CONTINUE
  77.  
  78.     if(gWpisal[id]==1)
  79.     {
  80.         gCount--
  81.         gWpisal[id]=0
  82.     }
  83.     if(player_count()<=6)
  84.     {
  85.         client_print(0,print_chat, "Potrzebnych glosow na zmiane na mala mape: %d", (player_count()/2)+1-gCount)
  86.     }
  87.     return PLUGIN_CONTINUE
  88. }
  89.  
  90. public sprawdz(id)
  91. {
  92.     new txt[90], username[32]
  93.     get_user_name(id, username, 32)
  94.     read_args(txt, 90 )
  95.     if(equali(txt, "^"mala mapa^""))
  96.     {
  97.         if(gGranaMalaMapa)
  98.         {
  99.             client_print(0, print_chat, "Mala mapa jest obecnie grana!")
  100.             return PLUGIN_CONTINUE
  101.         }
  102.  
  103.         if(gVoteRunning)
  104.             return PLUGIN_CONTINUE
  105.         if(player_count()<=8)
  106.         {
  107.             if(gWpisal[id]==0)
  108.             {
  109.                 gCount++
  110.                 gWpisal[id]=1
  111.                 client_print(0,print_chat, "[%s] zaglosowal na zmiane na mala mape", username)
  112.                 client_print(0,print_chat, "Potrzebnych glosow na zmiane na mala mape: %d", (player_count()/2)+1-gCount)
  113.             }
  114.             else
  115.             {
  116.                 gCount--
  117.                 gWpisal[id]=0
  118.                 client_print(0,print_chat, "[%s] wypisal sie z glosowania na zmiane na mala mape", username)
  119.                 client_print(0,print_chat, "Potrzebnych glosow na zmiane na mala mape: %d", (player_count()/2)+1-gCount)
  120.             }
  121.  
  122.             if((player_count()/2)+1-gCount<=0) // odpalamy vote
  123.             {
  124.                 client_print(0, 3, "Za 10 sekund zaczynamy glosowanie na mapa mape...")
  125.                 set_task(10.0, "run_vote2")
  126.             }
  127.         }
  128.     }
  129.     return PLUGIN_CONTINUE
  130. }
  131.  
  132. public run_vote2() {
  133.     run_vote() 
  134. }
  135.  
  136. public run_vote()
  137. {
  138.     gVoteRunning=1
  139.     new a, toLog[128]
  140.     new iterateVotes
  141.     new rand = random_num(0, gMapsCount-1)
  142.  
  143.     for(iterateVotes=0; iterateVotes<3; iterateVotes++)
  144.     {
  145.         rand=-1
  146.         while(rand == -1)
  147.         {
  148.             rand = random_num(0, gMapsCount-1)
  149.             for(a = 0; a<iterateVotes; a++)
  150.             {
  151.                 if(rand == gMapsInVote[a])
  152.                 {
  153.                     rand = -1
  154.                 }
  155.             }
  156.         }
  157.         gMapsInVote[iterateVotes] = rand
  158.         format(toLog, 200, "%s %s", toLog, gMaps[rand])
  159.     }
  160.  
  161.     mc_malamapa = menu_create("Glosowanie na mala mape rozpoczete", "mh_c_malamapa")
  162.     mcbc_malamapa = menu_makecallback("mcb_c_malamapa")
  163.     menu_additem(mc_malamapa, gMaps[gMapsInVote[0]], "ma_c_malamapa", ADMIN_ALL, mcbc_malamapa)
  164.     menu_additem(mc_malamapa, gMaps[gMapsInVote[1]], "ma_c_malamapa", ADMIN_ALL, mcbc_malamapa)
  165.     menu_additem(mc_malamapa, gMaps[gMapsInVote[2]], "ma_c_malamapa", ADMIN_ALL, mcbc_malamapa)
  166.  
  167.     new iPlayers[32],iNum
  168.     get_players(iPlayers, iNum)
  169.     for(new i=0;i<iNum;i++) // wyswietlamy menu dla kazdego gracz, ktory jest polaczony
  170.     {
  171.         if(is_user_connected(iPlayers[i]))
  172.         {
  173.             menu_display(iPlayers[i], mc_malamapa, 0)
  174.         }
  175.     }
  176.  
  177.     set_task(10.0, "change_map", 666)
  178. }
  179.  
  180. public change_map()
  181. {
  182.     new winner=0
  183.     for(new i=1; i<3; i++)
  184.     {
  185.         if(gVotes[i]>gVotes[winner])
  186.         {
  187.             winner = i
  188.         }
  189.     }
  190.     menu_destroy(mc_malamapa)
  191.  
  192.     client_print(0, print_chat,"Koniec glosowania!")
  193.     client_print(0, print_chat,"Mapa zostanie zmieniona na %s (glosow: %i)", gMaps[gMapsInVote[winner]], gVotes[winner])
  194.     log_amx("Mala mapa: %s (glosow: %i)", gMaps[gMapsInVote[winner]], gVotes[winner])
  195.     server_cmd("changelevel %s", gMaps[gMapsInVote[winner]])
  196. }
  197.  
  198. public player_count()
  199. {
  200.     new iPlayers[32], iNum, count
  201.     get_players(iPlayers, iNum)
  202.     for(new i=0;i<iNum;i++)
  203.     {
  204.         if(is_user_connected(iPlayers[i]) && !is_user_bot(iPlayers[i]) && !is_user_hltv(iPlayers[i]))
  205.         {
  206.             count++
  207.         }
  208.     }
  209.     return count
  210. }
  211.  
  212. public mh_c_malamapa(id, menu, item)
  213. {
  214.     if(item>-1 && item<3)
  215.     {
  216.         new name[31]
  217.         get_user_name (id, name, 32)
  218.         gVotes[item]++
  219.         client_print(0,print_chat,"%s zaglosowal na %s (glosow: %i)", name, gMaps[gMapsInVote[item]], gVotes[item])
  220.     }
  221. }
  222.  
  223. public ma_c_malamapa(id) {
  224. }
  225.  
  226. public mcb_c_malamapa(id, menu, item) {
  227. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement