- #include <amxmodx> 
- #include <nvault> 
-   
- #define PLUGIN "FragVerseny ize" 
- #define VERSION "1.0" 
- #define AUTHOR "6almasok" 
-   
- /*	Átírta ~ mforce @ hlmod.hu 
- 	( bekóláztam és nem tudtam aludni ) 
- 	Teszt pls én még soha nem használtam a plugint, de az a sok minusz tömb, meg -200 sor magáért beszél xD 
- 	Szövegeket nem néztem át, tehát csak kódvezetés lett javítva átnézés alapján.	*/ 
-   
-   
- new oles[33], kezdesido[32], befejido[32], bool:fragverse, bool:vege, x_tempid, vault, Hudbj 
-   
- new const hudmessages[][] = { 
- 	"A fragverseny veget ert^nHelyezesek:", 
- 	"Jelenleg fragverseny van, tart:", 
- 	"Egy admin leallitotta a fragversenyt!^nNincs nyertes!", 
- 	"Fragverseny elkezdodik" 
- } 
-   
- public plugin_init() { 
- 	register_plugin(PLUGIN, VERSION, AUTHOR) 
-   
- 	register_clcmd("say /fragverseny", "verseny") 
-   
- 	register_clcmd("KEZDES_IDO", "kezd_kuld") 
- 	register_clcmd("VEGETERESI_IDO", "befej_kuld") 
- 	register_clcmd("Indok", "players_nullazo") 
-   
- 	register_event("DeathMsg", "death", "a") 
-   
- 	vault = nvault_open("frag_verseny") 
- 	Hudbj = CreateHudSyncObj() 
- } 
- public death() { 
- 	if(fragverse) { 
- 		new killer = read_data(1) 
- 		new victim = read_data(2) 
-   
- 		if(killer != victim) 
- 			oles[killer]++ 
- 	} 
- } 
-   
- public verseny(id) { 
- 	if(get_user_flags(id) & ADMIN_RCON) { 
- 		new cim[128] 
- 		new Idoo[10]; 
- 		get_time("%H:%M:%S", Idoo, charsmax(Idoo)) 
- 		format(cim, charsmax(cim), "Fragverseny Beallitasok^n\rIdo: \d%s", Idoo) 
- 		new menu = menu_create(cim, "ido_menu_h" ) 
-   
- 		if(!fragverse) { 
- 			format(cim, charsmax(cim),"\wKezdesi Ido: [\d%s\w] \y(Pl.: 18:00)", kezdesido) 
- 			menu_additem(menu, cim, "0",0) 
- 			format(cim, charsmax(cim),"\wVegeteresi Ido: [\d%s\w] \y(Pl.: 20:00)", befejido) 
- 			menu_additem(menu, cim, "1",0) 
- 			menu_additem(menu, "\dFragverseny Inditasa","2", 0) 
- 			menu_additem(menu, "\rBEALLITASOK!","3", 0) 
- 		} 
- 		else { 
- 			format(cim, charsmax(cim), "\wJelenleg megy a fragverseny! (%s-%s-ig)", kezdesido, befejido) 
- 			menu_additem(menu, cim, "0",0) 
- 			menu_additem(menu, "\rBEALLITASOK!", "3", 0) 
- 		} 
-   
- 		menu_setprop(menu, MPROP_EXIT, MEXIT_ALL); 
- 		menu_setprop(menu, MPROP_EXIT, "Kilepes"); 
- 		menu_display(id, menu, 0); 
- 	} 
-   
- 	else ChatColor(id, "^4Nincs jogod hozzá, ne is próbálkozz! Vili?!") 
- } 
-   
- public ido_menu_h(id, menu, item) { 
- 	switch(item) { 
- 		case 0: { 
- 			if(!fragverse) client_cmd(id, "messagemode KEZDES_IDO"); 
- 			else verseny(id); 
- 		} 
- 		case 1: { 
- 			if(!fragverse) client_cmd(id, "messagemode VEGETERESI_IDO"); 
- 			else verseny(id); 
- 		} 
- 		case 2: { 
- 			if(strlen(befejido) > 0 && strlen(kezdesido) > 0) { 
- 				if(!fragverse) { 
- 					idozonacheck() 
- 					ChatColor(id, "^1Elinditottad a szamlalot, ha annyi lesz az ido amennyit beutottel akkor elindul a fragverseny!") 
- 				} 
- 			} 
- 			else { 
- 				ChatColor(id, "^1Nem adtad meg a kezdesi es a befejezesi idot!") 
- 				verseny(id) 
- 			} 
- 		} 
- 		case 3: beallitasok(id) 
- 	} 
-   
- 	menu_destroy(menu); 
- 	return PLUGIN_HANDLED; 
- } 
-   
- public beallitasok(id) { 
- 	new cim[121] 
- 	format(cim, charsmax(cim), "\yFragverseny \dbeallitasok") 
- 	new menu = menu_create(cim, "beallit_menu_h") 
-   
- 	if(fragverse) menu_additem(menu, "Fragverseny Leallitasa", "0", 0); 
- 	menu_additem(menu, "Nullazo Menu", "1", 0) 
-   
- 	menu_setprop(menu, MPROP_EXIT, MEXIT_ALL); 
- 	menu_setprop(menu, MPROP_EXIT, "Kilepes"); 
- 	menu_display(id, menu, 0); 
- } 
- public beallit_menu_h(id, menu, item) { 
- 	switch(item) { 
- 		case 0: rakerdezes(id) 
- 		case 1: nullazomen(id) 
- 	} 
-   
- 	menu_destroy(menu); 
- 	return PLUGIN_HANDLED; 
- } 
-   
- public nullazomen(id) { 
- 	new cim[121] 
- 	format(cim, charsmax(cim), "\yValassz Nullazasi Lehetoseget!") 
- 	new menu = menu_create(cim, "nulllehet_menu_h" )	 
-   
- 	menu_additem(menu, "\wOsszes Oles Nullazasa", "0", 0) 
- 	menu_additem(menu, "\wKivalasztott Jatekos Oleseinek Nullazasa", "1", 0) 
-   
- 	menu_setprop(menu, MPROP_EXIT, MEXIT_ALL); 
- 	menu_setprop(menu, MPROP_EXIT, "Kilepes"); 
- 	menu_display(id, menu, 0); 
- } 
- public nulllehet_menu_h(id, menu, item) { 
- 	switch(item) { 
- 		case 0: { 
- 			new p[32], n 
- 			get_players(p, n, "c") 
- 			for(new i; i < n; i++) { 
- 				oles[p[i]] = 0 
- 				ChatColor(0, "^1Az osszes jatekos olese ^3Nullazva^1 lett egy ^4ADMIN ^1altal!") 
- 			} 
- 		} 
- 		case 1: nullazomenu(id) 
- 	} 
-   
- 	menu_destroy(menu); 
- 	return PLUGIN_HANDLED; 
- } 
-   
- public nullazomenu(id) { 
- 	new cim[121]; format(cim, charsmax(cim), "\wKinek szeretned nullazni az Oleset?"); 
- 	new menu = menu_create(cim, "players_kills_handler" ) 
-   
- 	new players[32], pnum, tempid; 
- 	new szName[32], szUserId[32]; 
-   
- 	get_players( players, pnum, "c" ); 
-   
- 	for(new i; i<pnum; i++) { 
- 		tempid = players[i]; 
- 		get_user_name(tempid, szName, charsmax(szName)); 
- 		formatex(szUserId, charsmax(szUserId), "%d", get_user_userid(tempid)); 
- 		menu_additem(menu, szName, szUserId, 0); 
- 	} 
-   
- 	menu_setprop(menu, MPROP_EXIT, MEXIT_ALL); 
- 	menu_setprop(menu, MPROP_BACKNAME, "Vissza"); 
- 	menu_setprop(menu, MPROP_NEXTNAME, "Következő"); 
- 	menu_setprop(menu, MPROP_EXITNAME, "Kilépés"); 
- 	menu_display(id, menu, 0); 
- } 
- public players_kills_handler(id, menu, item) { 
- 	if(item == MENU_EXIT) { 
- 		menu_destroy(menu); 
- 		return PLUGIN_HANDLED; 
- 	} 
-   
- 	new szData[6], szName[64]; 
- 	new _access, item_callback; 
- 	menu_item_getinfo(menu, item, _access, szData, charsmax(szData), szName, charsmax(szName), item_callback); 
-   
- 	new userid = str_to_num(szData); 
- 	x_tempid = find_player("k", userid); 
-   
- 	client_cmd(id, "messagemode Indok"); 
-   
- 	menu_destroy(menu); 
- 	return PLUGIN_HANDLED; 
- } 
- public players_nullazo(id) { 
- 	new uzenet[32], kuldoneve[32], kaponeve[32] 
- 	read_args(uzenet, charsmax(uzenet)) 
- 	remove_quotes(uzenet) 
- 	get_user_name(id, kuldoneve, charsmax(kuldoneve)) 
- 	get_user_name(x_tempid, kaponeve, charsmax(kaponeve)) 
-   
- 	oles[x_tempid] = 0 
- 	ChatColor(0, "^4[Frag-V]^3 %s^1 lenullazta ^3%s ^1oleseit! ^1Indok: ^4%s", kuldoneve, kaponeve, uzenet) 
- } 
- public rakerdezes(id) { 
- 	new cim[121] 
- 	format(cim, charsmax(cim), "\rBiztosan leakarod allitani a Fragversenyt?") 
- 	new menu = menu_create(cim, "rakerd_menu_h" )	 
-   
- 	menu_additem(menu, "Igen", "0",0) 
- 	menu_additem(menu, "Nem", "1",0) 
-   
- 	menu_setprop(menu, MPROP_EXIT, MEXIT_ALL); 
- 	menu_setprop(menu, MPROP_EXIT, "Kilepes"); 
- 	menu_display(id, menu, 0); 
- } 
- public rakerd_menu_h(id, menu, item) { 
- 	switch(item) { 
- 		case 0: { 
- 			if(fragverse) { 
- 				fragverse = false 
- 				set_hudmessage(255, 0, 0, -1.0, 0.15, 2, 6.0, 15.0) 
- 				show_hudmessage(0, hudmessages[2]) 
- 			} 
- 		} 
- 		case 1: verseny(id) 
- 	} 
-   
- 	menu_destroy(menu); 
- 	return PLUGIN_HANDLED; 
- } 
-   
- public idozonacheck() { 
- 	new Idoo[10] 
- 	get_time("%H:%M", Idoo, charsmax(Idoo)) 
-   
- 	if(!fragverse) { 
- 		set_hudmessage(0, 255, 0, -1.0, 0.10, 0, 1.0, 1.0) 
- 		show_hudmessage(0, "%s %s-kor...", hudmessages[3], kezdesido) 
- 	} 
-   
- 	if(equal(Idoo, kezdesido)) { 
- 		server_cmd("sv_restart 1") 
- 		fragverse = true 
- 		alegjobbak() 
- 	} 
- 	else if(equal(Idoo, befejido)) { 
- 		fragverse = false 
- 		vege = true 
- 		alegjobbak() 
- 	} 
-   
- 	if(!vege) set_task(1.0, "idozonacheck"); 
- } 
- public alegjobbak() { 
- 	new players[32], num; 
- 	get_players(players, num, "c"); 
- 	SortCustom1D(players, num, "sors_legelso") 
-   
- 	new top1 = players[0] 
- 	new top2 = players[1] 
- 	new top3 = players[2] 
-   
- 	new top1neve[32], top2neve[32], top3neve[32]; 
- 	get_user_name(top1, top1neve, charsmax(top1neve)) 
- 	get_user_name(top2, top2neve, charsmax(top2neve)) 
- 	get_user_name(top3, top3neve, charsmax(top3neve)) 
-   
- 	if(vege) { 
- 		set_hudmessage(0, 255, 0, -1.0, 0.05, 0, 6.0, 30.0) 
- 		switch(num) { 
- 			case 1: ShowSyncHudMsg(0, Hudbj, "%s^n1. %s", hudmessages[0], top1neve); 
- 			case 2: ShowSyncHudMsg(0, Hudbj, "%s^n1. %s || 2. %s", hudmessages[0], top1neve, top2neve); 
- 			case 3: ShowSyncHudMsg(0, Hudbj, "%s^n1. %s || 2. %s || 3. %s", hudmessages[0], top1neve, top2neve, top3neve); 
- 		} 
- 		vege = false 
- 	} 
- 	else { 
- 		set_hudmessage(0, 85, 255, -1.0, 0.05, 0, 6.0, 1.0) 
- 		switch(num) { 
- 			case 1: ShowSyncHudMsg(0, Hudbj, "%s %s-%s^n ^n1. %s KILL's: %d",hudmessages[1],kezdesido,befejido,top1neve, oles[top1]) 
- 			case 2: ShowSyncHudMsg(0, Hudbj, "%s %s-%s^n ^n1. %s KILL's: %d || 2. %s KILL's: %d",hudmessages[1],kezdesido,befejido, top1neve, oles[top1], top2neve, oles[top2]) 
- 			case 3: ShowSyncHudMsg(0, Hudbj, "%s %s-%s^n ^n1. %s KILL's: %d || 2. %s KILL's: %d || 3. %s KILL's :%d",hudmessages[1],kezdesido,befejido, top1neve, oles[top1], top2neve, oles[top2],top3neve, oles[top3]) 
- 		} 
- 		set_task(1.0, "alegjobbak") 
- 	} 
- } 
-   
- public sors_legelso(id1, id2) { 
- 	if(oles[id1] > oles[id2]) 
- 		return -1; 
- 	else 
- 		return 1; 
-   
- 	return 0; 
- } 
-   
- public kezd_kuld(id) { 
- 	read_args(kezdesido, charsmax(kezdesido)) 
- 	remove_quotes(kezdesido) 
- 	new hossz = strlen(kezdesido) 
-   
- 	new Ido[10]; 
- 	get_time("%H:%M", Ido, charsmax(Ido)) 
-   
- 	if(!equal(Ido,kezdesido)) { 
- 		if(hossz != 5) { 
- 			ChatColor(id, "^1Helytelen karakter ^4formatum!") 
- 			client_cmd(id, "messagemode KEZDES_IDO") 
- 		} 
- 		else verseny(id); 
- 	} 
- 	else ChatColor(id, "^4A kezdesi ido nem lehet annyi mint ami a JELENLEGI ido!"); 
- } 
-   
- public befej_kuld(id) { 
- 	read_args(befejido, charsmax(befejido)) 
- 	remove_quotes(befejido) 
- 	new hossz = strlen(befejido) 
-   
- 	new Ido[10]; 
- 	get_time("%H:%M", Ido, charsmax(Ido)) 
-   
- 	if(!equal(Ido,befejido)) { 
- 		if(hossz != 5) { 
- 			ChatColor(id, "^1Helytelen karakter ^4formatum!") 
- 			client_cmd(id, "messagemode VEGETERESI_IDO") 
- 		} 
- 		else verseny(id); 
- 	} 
- 	else ChatColor(id, "^4A befejezesi ido nem lehet annyi mint ami a JELENLEGI ido!") 
- } 
-   
- public mentes(id) { 
- 	new vaultkey[64],vaultdata[256], name[32] 
- 	get_user_name(id, name, charsmax(name)) 
- 	formatex(vaultkey,charsmax(vaultkey),"%s-FRAG", name) 
- 	formatex(vaultdata,charsmax(vaultdata),"%i", oles[id]) 
- 	nvault_set(vault,vaultkey,vaultdata) 
- } 
-   
- public betoltes(id) { 
- 	new vaultkey[64],vaultdata[256], name[32], m_o[32] 
- 	get_user_name(id, name, charsmax(name)) 
- 	formatex(vaultkey,charsmax(vaultkey),"%s-FRAG", name) 
- 	formatex(vaultdata,255,"%i",oles[id]) 
- 	if(nvault_get(vault,vaultkey,vaultdata,charsmax(vaultdata))) { 
- 		parse(vaultdata, m_o, charsmax(m_o)) 
- 		oles[id] = str_to_num(m_o) 
- 	} 
- } 
-   
- public client_disconnect(id) { 
- 	if(fragverse) { 
- 		mentes(id) 
- 	} 
-   
- 	oles[id] = 0; 
- } 
-   
- public client_authorized(id) { 
- 	if(fragverse) { 
- 		betoltes(id) 
- 	} 
- } 
-   
- stock ChatColor(const id, const szMessage[], any:...) { 
- 	static pnum, players[32], szMsg[190], IdMsg;  
- 	vformat(szMsg, charsmax(szMsg), szMessage, 3); 
-   
- 	if(!IdMsg) IdMsg = get_user_msgid("SayText"); 
-   
- 	if(id) { 
- 		if(!is_user_connected(id)) return; 
- 		players[0] = id; 
- 		pnum = 1;  
- 	}  
- 	else get_players(players, pnum, "ch"); 
-   
- 	for(new i; i < pnum; i++) { 
- 		message_begin(MSG_ONE, IdMsg, .player = players[i]); 
- 		write_byte(players[i]); 
- 		write_string(szMsg); 
- 		message_end(); 
- 	} 
- }