Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <amxmodx>
- #include <amxmisc>
- new mc_malamapa // Menu
- new mcbc_malamapa // Menu Callback
- new gWpisal[32]
- new gCount=0
- new gMaps[300][32]
- new gMapsCount=0
- new gVoteRunning=0
- new gVotes[5]
- new gMapsInVote[5]
- new gGranaMalaMapa
- public plugin_init()
- {
- register_plugin("Mala Mapa", "1.1", "Kobra")
- register_clcmd ( "say", "sprawdz" )
- register_clcmd ( "say_team", "sprawdz" )
- wczytaj_mapy()
- }
- public wczytaj_mapy()
- {
- new rsFile[128],s[128],i
- new current_map[19]
- get_mapname(current_map, 20)
- get_configsdir(rsFile, 128)
- format(rsFile, 128 ,"%s/maps_small.ini", rsFile)
- i=fopen(rsFile,"rt")
- gMapsCount=0
- if(i==0)
- {
- log_amx("Error loading config file! [%s]", rsFile)
- }
- else
- {
- log_amx("Reading config file [%s]", rsFile)
- while (!feof(i))
- {
- fgets(i,s,30)
- trim(s)
- if(s[0]!=0)
- {
- if(equal(current_map, s))
- {
- gGranaMalaMapa=1
- }
- log_amx("Loaded [%s]", s);
- copy(gMaps[gMapsCount], 30, s)
- gMapsCount++
- }
- }
- fclose(i)
- }
- log_amx("Loaded maps: %d", gMapsCount)
- return PLUGIN_CONTINUE
- }
- public client_connect(id)
- {
- if(gGranaMalaMapa)
- return PLUGIN_CONTINUE
- if(player_count()<=6)
- {
- client_print(0,print_chat, "Potrzebnych glosow na zmiane na mala mape: %d", (player_count()/2)+1-gCount)
- }
- return PLUGIN_CONTINUE
- }
- public client_disconnect(id)
- {
- if(gGranaMalaMapa)
- return PLUGIN_CONTINUE
- if(gWpisal[id]==1)
- {
- gCount--
- gWpisal[id]=0
- }
- if(player_count()<=6)
- {
- client_print(0,print_chat, "Potrzebnych glosow na zmiane na mala mape: %d", (player_count()/2)+1-gCount)
- }
- return PLUGIN_CONTINUE
- }
- public sprawdz(id)
- {
- new txt[90], username[32]
- get_user_name(id, username, 32)
- read_args(txt, 90 )
- if(equali(txt, "^"mala mapa^""))
- {
- if(gGranaMalaMapa)
- {
- client_print(0, print_chat, "Mala mapa jest obecnie grana!")
- return PLUGIN_CONTINUE
- }
- if(gVoteRunning)
- return PLUGIN_CONTINUE
- if(player_count()<=8)
- {
- if(gWpisal[id]==0)
- {
- gCount++
- gWpisal[id]=1
- client_print(0,print_chat, "[%s] zaglosowal na zmiane na mala mape", username)
- client_print(0,print_chat, "Potrzebnych glosow na zmiane na mala mape: %d", (player_count()/2)+1-gCount)
- }
- else
- {
- gCount--
- gWpisal[id]=0
- client_print(0,print_chat, "[%s] wypisal sie z glosowania na zmiane na mala mape", username)
- client_print(0,print_chat, "Potrzebnych glosow na zmiane na mala mape: %d", (player_count()/2)+1-gCount)
- }
- if((player_count()/2)+1-gCount<=0) // odpalamy vote
- {
- client_print(0, 3, "Za 10 sekund zaczynamy glosowanie na mapa mape...")
- set_task(10.0, "run_vote2")
- }
- }
- }
- return PLUGIN_CONTINUE
- }
- public run_vote2() {
- run_vote()
- }
- public run_vote()
- {
- gVoteRunning=1
- new a, toLog[128]
- new iterateVotes
- new rand = random_num(0, gMapsCount-1)
- for(iterateVotes=0; iterateVotes<3; iterateVotes++)
- {
- rand=-1
- while(rand == -1)
- {
- rand = random_num(0, gMapsCount-1)
- for(a = 0; a<iterateVotes; a++)
- {
- if(rand == gMapsInVote[a])
- {
- rand = -1
- }
- }
- }
- gMapsInVote[iterateVotes] = rand
- format(toLog, 200, "%s %s", toLog, gMaps[rand])
- }
- mc_malamapa = menu_create("Glosowanie na mala mape rozpoczete", "mh_c_malamapa")
- mcbc_malamapa = menu_makecallback("mcb_c_malamapa")
- menu_additem(mc_malamapa, gMaps[gMapsInVote[0]], "ma_c_malamapa", ADMIN_ALL, mcbc_malamapa)
- menu_additem(mc_malamapa, gMaps[gMapsInVote[1]], "ma_c_malamapa", ADMIN_ALL, mcbc_malamapa)
- menu_additem(mc_malamapa, gMaps[gMapsInVote[2]], "ma_c_malamapa", ADMIN_ALL, mcbc_malamapa)
- new iPlayers[32],iNum
- get_players(iPlayers, iNum)
- for(new i=0;i<iNum;i++) // wyswietlamy menu dla kazdego gracz, ktory jest polaczony
- {
- if(is_user_connected(iPlayers[i]))
- {
- menu_display(iPlayers[i], mc_malamapa, 0)
- }
- }
- set_task(10.0, "change_map", 666)
- }
- public change_map()
- {
- new winner=0
- for(new i=1; i<3; i++)
- {
- if(gVotes[i]>gVotes[winner])
- {
- winner = i
- }
- }
- menu_destroy(mc_malamapa)
- client_print(0, print_chat,"Koniec glosowania!")
- client_print(0, print_chat,"Mapa zostanie zmieniona na %s (glosow: %i)", gMaps[gMapsInVote[winner]], gVotes[winner])
- log_amx("Mala mapa: %s (glosow: %i)", gMaps[gMapsInVote[winner]], gVotes[winner])
- server_cmd("changelevel %s", gMaps[gMapsInVote[winner]])
- }
- public player_count()
- {
- new iPlayers[32], iNum, count
- get_players(iPlayers, iNum)
- for(new i=0;i<iNum;i++)
- {
- if(is_user_connected(iPlayers[i]) && !is_user_bot(iPlayers[i]) && !is_user_hltv(iPlayers[i]))
- {
- count++
- }
- }
- return count
- }
- public mh_c_malamapa(id, menu, item)
- {
- if(item>-1 && item<3)
- {
- new name[31]
- get_user_name (id, name, 32)
- gVotes[item]++
- client_print(0,print_chat,"%s zaglosowal na %s (glosow: %i)", name, gMaps[gMapsInVote[item]], gVotes[item])
- }
- }
- public ma_c_malamapa(id) {
- }
- public mcb_c_malamapa(id, menu, item) {
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement