Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

Mala Mapa


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
1 odpowiedź w tym temacie

#1 MAGNET FRA

    Nie polecam

  • Zbanowany

Reputacja: 30
Życzliwy

  • Postów:493
  • Imię:Marek
  • Lokalizacja:tam gdzie ty
Offline

Napisano 08.04.2017 10:46

Witam mam do was pytanie w której linijce  trzeba zmienic zeby  mala mapa działała do 8 graczy i pokazywalo 7 maps w vote

 

// ==========
// Kobra
// www.ledsplej.net
// Use it but give me credits!
// ==========

#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" )
	set_task(100.0,"reklama",0,"",0,"b")
	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/mapcycle_male.txt", rsFile) // should be something like addons/amxmodx/configs/
	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)) // Czytamy mapki
		{
			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()<=8) {
		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()<=8) {
		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)
				log_amx("[%s] zaglosowal na zmiane na mala mape", username)
				log_amx("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)
				log_amx("[%s] wypisal sie z glosowania na zmiane na mala mape", username)
				log_amx("Potrzebnych glosow na zmiane na mala mape: %d", (player_count()/2)+1-gCount);
			}

			if((player_count()/2)+1-gCount<=0) // odpalamy vote
			{
				run_vote()
			}
		}
	}
	return PLUGIN_CONTINUE
}

public run_vote() { // przygotowujemy vote na nextmap
	gVoteRunning=1
	new a, toLog[128]
	new iterateVotes
	new rand = random_num(0, gMapsCount-1) // pierwsza mapa losowa

	for(iterateVotes=0; iterateVotes<3; iterateVotes++) { // 3x szukamy nastepnych losowych map (ma byc 3)
		rand=-1
		while(rand == -1) {
			rand = random_num(0, gMapsCount-1)
			for(a = 0; a<iterateVotes; a++) // sprawdzamy, czy wylosowana mapa juz nie zostala wylosowana
			{
				if(rand == gMapsInVote[a]) {
					rand = -1
				}
			}
		}
		gMapsInVote[iterateVotes] = rand
		format(toLog, 200, "%s %s", toLog, gMaps[rand]) // debugger
	}

	mc_malamapa = menu_create("Wybierz mala mape", "mh_c_malamapa") // przygotowujemy menu
	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)
	/* Menu End */

	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)
	     }
	}

	log_amx("%s",toLog) // debugger
	set_task(10.0, "change_map", 666) // za 10 sekund konczymy vote
}

public change_map() {
	new winner=0
	for(new i=1; i<3; i++) { // wyszukujemy mape z najwyzsza iloscia glosow
		if(gVotes[i]>gVotes[winner]) {
			winner = i
		}
	}
	menu_destroy(mc_malamapa) // usuwamy menu - koniec glosowania!

	client_print(0, print_chat,"****************")
	client_print(0, print_chat,"*** KONIEC GLOSOWANIA! Zmieniam na mala mape: %s (glosow: %i)", gMaps[gMapsInVote[winner]], gVotes[winner]) // wyswietlamy info o malej mapie
	client_print(0, print_chat,"****************")
	log_amx("Mala mapa: %s (glosow: %i)", gMaps[gMapsInVote[winner]], gVotes[winner])
	server_cmd("changelevel %s", gMaps[gMapsInVote[winner]])
}


public reklama() {
	if(gGranaMalaMapa)
		return PLUGIN_CONTINUE
	client_print(0,print_chat,"Jesli na serwerze jest malo graczy (<=8), mozna zmienic mape na mniejsza wpisujac ^"mala mapa^" - musi to zrobic wiekszosc graczy!")
	return PLUGIN_CONTINUE
}

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) { // 3 map, nie obchodza nas inne wybory
		new name[31]
		get_user_name (id, name, 32)
		gVotes[item]++
		client_print(0,print_chat,"%s wybral %s (glosow: %i)", name, gMaps[gMapsInVote[item]], gVotes[item]) // wypisujemy jaka mape wybral gracz i ile ma glosow
		log_amx("%s wybral %s (glosow: %i)", name, gMaps[gMapsInVote[item]], gVotes[item])
	}
}

public ma_c_malamapa(id) {
}

public mcb_c_malamapa(id, menu, item) {
}

 

Załączone pliki



#2 d0naciak

    Godlike

  • Power User

Reputacja: 1 029
Hero

  • Postów:2 414
  • GG:
  • Steam:steam
  • Imię:Dawid
  • Lokalizacja:Kotlarka
Offline

Napisano 08.04.2017 21:56

Limit graczy, zmień 8 we wszystkich: 

if(player_count()<=8)

  • +
  • -
  • 1




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych