Pagina 1 din 1

Min Players Map Changer

Scris: Joi Noi 28, 2024 8:45 pm
de Diliul
Majoritatea Administratorilor (serverelor CS) se intalneau cu probleme hartilor si jucatorilor , de exemplu cand pe server e harta noua (posibil este prea mare), dar nu o joaca nimeni sau e noaptea si sunt putini jucatori.
Cu ajutorul acestui plugin puteti uita de acest fel de probleme.

Acest plugin in functie de playeri schimba singur harta.
Daca sunt mai putini de 10 jucatori pe server, se incepe o votarea pentru a schimba harta.
Numarul minim de jucatori il setati in CVAR (Default: 10 jucatori)
Harta pentru vot o setati in CVAR (Default: de_dust2_2x2)
Daca majoriteatea jucatilor au votat "Pentru" , harta se schimba , daca nu sunt destui voturi , mapa va fi extinsa.


Astept pareri.

Descarcare: Click Aici ! [Hot files] / Link 2 [GirlShare] !


Nume: Min Players Map Changer
Autor: ExoTiQ
Versiune: 1.0
Min Players Map Changer

Cod: Selectaţi tot

#include <amxmodx>
#include <amxmisc>
#include <colorchat>

#define PLUGIN "MinPlayersMapChanger"
#define VERSION "1.0"
#define AUTHOR "ExoTiQ"

new mpm_map, mpm_players
new vote_yes, vote_no
new mmp_on = 1
new menu

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	mpm_map = register_cvar("amx_mpm_map", "de_dust2_2x2")
	mpm_players = register_cvar("amx_mpm_players", "10")
}

public mpm(id) {
	if(get_playersnum() <= get_pcvar_num(mpm_players)) {
		new mpm_map_str[32], nameMap[128]
		get_pcvar_string(mpm_map, mpm_map_str, charsmax(mpm_map_str))
		format(nameMap, 127, "\ySchimbam Harta pe %s?", mpm_map_str)
		menu=menu_create(nameMap,"mpm_menu")
		menu_additem(menu,"\wDa","1")
		menu_additem(menu,"\wNu","2")
		menu_setprop(menu,MPROP_EXIT,MEXIT_NEVER)
	
		menu_display(id,menu,0)
		
		
		set_task(get_cvar_float("amx_vote_time"), "mpm_result")
	}
}

public mpm_menu(id,menu,item) {
	new data[6],iName[64],access, callback, Name[32]
	get_user_name(id, Name, charsmax(Name))
 	menu_item_getinfo(menu,item,access,data,5,iName,63,callback)
	new key = str_to_num(data)
	
	switch(key) {
		case 1:{
			vote_yes = vote_yes + 1
			ColorChat(0, BLUE, "^01[^04Map Changer Information^01] Jucatorul ^03%s ^01a votat ^04[Pentru].", Name)
		}
		case 2:{
			vote_no = vote_no + 1
			ColorChat(0, RED, "^01[^04Map Changer Information^01] Jucatorul ^03%s ^01a votat ^04[Contra].", Name)
		}
	}
	return PLUGIN_HANDLED
}

public mpm_result() {
	new Map[32], mpm_map_str[32]
	menu_destroy(menu)
	get_mapname(Map, charsmax(Map)) 
	get_pcvar_string(mpm_map, mpm_map_str, charsmax(mpm_map_str)) 
	if(vote_yes >= vote_no) {
		ColorChat(0, RED, "^01[^04Map Changer Information^01] Votarea s-a incheiat, urmatoarea harta va fi ^03%s^01.", mpm_map_str)
		set_task(4.0, "mpm_changelevel")
	}
	else {
		ColorChat(0, RED, "^01[^04Map Changer Information^01] Datorita votarii, harta curenta va fi extinsa pentru ^03%d^01 minute.", get_cvar_num("amx_extendmap_step"))
		vote_yes = 0
		vote_no = 0
		set_task((get_cvar_float("amx_extendmap_step")*30), "mpm_extend")
	}
}

public mpm_changelevel() {
	new mpm_map_str[32]
	get_pcvar_string(mpm_map, mpm_map_str, charsmax(mpm_map_str)) 
	server_cmd("changelevel %s", mpm_map_str) 
}

public mpm_extend() {
	mmp_on = 1
}

public client_putinserver(id) {
	if(mmp_on != 1) 
		return PLUGIN_HANDLED

	new Players[32], Map[32], mpm_map_str[32]
	get_mapname(Map, charsmax(Map))
	get_pcvar_string(mpm_map, mpm_map_str, charsmax(mpm_map_str))
	if(equali(Map, mpm_map_str))
		return PLUGIN_HANDLED

	new playerCount, i, player
	get_players(Players, playerCount, "ch") 
	mmp_on = 0
	for (i=0; i<playerCount; i++) {
		player = Players
		
		set_task(20.0, "mpm", player)
	}
	return PLUGIN_CONTINUE
}

public client_disconnect(id) {
	if(mmp_on != 1) 
		return PLUGIN_HANDLED

	new Players[32], Map[32], mpm_map_str[32]
	get_mapname(Map, charsmax(Map))
	get_pcvar_string(mpm_map, mpm_map_str, charsmax(mpm_map_str))
	if(equali(Map, mpm_map_str))
		return PLUGIN_HANDLED

	new playerCount, i, player
	get_players(Players, playerCount, "ch") 
	for (i=0; i<playerCount; i++) {
		player = Players
		
		set_task(20.0, "mpm", player)
	}
	return PLUGIN_CONTINUE
}


Comenzi:-

Cvaruri:

Cod: Selectaţi tot

amx_mpm_map - (default: de_dust2_2x2) Aici setati harta pentru vot.
amx_mpm_players - (default: 10) - Aici setati numarul minim de jucatori.
Instalare:

1. Fisierul MinPlayersMapChanger.amxx il puneti in addons/amxmodx/plugins
2. Fisierul MinPlayersMapChanger.sma il puneti in addons/amxmodx/scripting
3. Intrati in fisierul addons/amxmodx/configs/plugins.ini si adaugati la sfarsitul fisierului:

Cod: Selectaţi tot

MinPlayersMapChanger.amxx

Descarcare: Click Aici !