- #include <amxmodx> 
-   
- #define MAX_CHATTERS 6 
- #define MAX_CHATROOMS 32 
- #define CHAT_PREFIX '!' 
-   
- new g_chatrooms[MAX_CHATROOMS][33] //ChatSzoba ID/nev 
- new g_player_chatroom[33][33] //Jatekos ID/nev 
-   
- new g_chatroom_votelock[33] //ChatSzoba ID/Jatekos ID 
- new g_chatroom_voteopen[33] //ChatSzoba ID/Jatekos ID 
-   
- new bool:g_chatroom_locked[33] //ChatSzoba ID 
- new bool:g_voted4lock[33] //ChatSzoba ID/Jatekos ID 
- new bool:g_voted4open[33] //ChatSzoba ID/Jatekos ID 
-   
- new c_onoff,c_dead_chat,c_green_text,c_min_to_open 
-   
- new msg_say 
-   
- public plugin_init() { 
- 	register_plugin("Chat Rooms","1.0","Sh!nE") 
-   
- 	register_clcmd("say","hookit") 
-   
- 	c_onoff = register_cvar("amx_g_chatrooms","1") 
- 	c_dead_chat = register_cvar("amx_cr_deadchat","1") 
- 	c_min_to_open = register_cvar("amx_cr_min_open","2") 
- 	c_green_text = register_cvar("amx_cr_greentext","1") 
-   
- 	msg_say = get_user_msgid("SayText") 
- } 
-   
- public client_putinserver(id) if(get_pcvar_num(c_onoff)) set_task(5.0,"check_room",id) 
-   
- public check_room(id) { 
- 	static info[33],temp[192] 
- 	get_user_info(id,"my_room",info,32); 
-   
- 	format(temp,191,"^x03[Chat]^x01 Csatlakoztal a ChatSzobahoz ^x04/ide csatalakoztal^x01, leave - ^x04/elment a szobabol^x01, create - ^x04/szobanyitas^x01, tagok -^x04 /tagok^x01.") 
- 	color_print(id,temp) 
-   
- 	format(temp,191,"^x03[Chat]^x01 Sajat celu szoba - ^x04/szoba^x01,szavazunk hogy be zarjon-e a szoba- ^x04/szobazaras^x01, Szavazunk hogy legyen-e chat szoba - ^x04/szobanyitas^x01.") 
- 	color_print(id,temp) 
-   
- 	if(strlen(info)) { 
-   
- 		for(new i=0;i < MAX_CHATROOMS;i++) { 
- 			if(equali(g_chatrooms[i],info)) { 
- 				join_room(id,g_chatrooms[i]) 
-   
- 				return PLUGIN_HANDLED 
- 			} 
- 		} 
- 		open_room(id,info) 
- 	} 
- 	return PLUGIN_HANDLED 
- } 
-   
- public hookit(id) { 
- 	if(!get_pcvar_num(c_onoff)) return PLUGIN_CONTINUE 
-   
- 	new args[192],parsed[33],temp[192],i 
-   
- 	read_args(args,191) 
- 	remove_quotes(args) 
- 	parse(args,parsed,32) 
-   
- 	new chatroom=get_user_chatroom_id(id) 
-   
- 	switch(args[1]) { 
- 		case 'r':{ 
- 			if(equali(parsed,"/szoba")) { 
- 				if(strlen(g_player_chatroom[id])) { 
- 					format(temp,191,"^x03[Chat]^x01 Chat szoba:'^x04%s^x01'.",g_player_chatroom[id]) 
- 					color_print(id,temp) 
- 				} 
-   
- 				else { 
- 					format(temp,191,"^x03[Chat]^x01 Neked nincs chat szobad.") 
- 					color_print(id,temp) 
- 				} 
- 				return PLUGIN_HANDLED 
- 			} 
- 		} 
-   
- 		case 'o':{ 
- 			if(equali(parsed,"/szobanyitas")) { 
- 				if(!g_chatroom_locked[chatroom]) { 
- 					format(temp,191,"^x03[Chat]^x01 Chatszoba be zarva!") 
- 					color_print(id,temp) 
-   
- 					return PLUGIN_HANDLED 
- 				} 
- 				new name[33] 
- 				get_user_name(id,name,32) 
-   
- 				if((g_chatroom_voteopen[chatroom]+1==get_pcvar_num(c_min_to_open)) || (g_chatroom_voteopen[chatroom]+1==get_chatroom_players(chatroom))) { 
- 					new players[32],num 
- 					get_players(players,num) 
-   
- 					for(i=0;i < num;i++) { 
- 						g_voted4lock[players[i]]=false 
- 						g_voted4open[players[i]]=false 
- 					} 
-   
- 					format(temp,191,"^x03[Chat]^x01 '^x04%s^x01' Szoba megnyitva!",name) 
- 					color_print(id,temp);print_to_cr(id,temp) 
-   
- 					g_chatroom_locked[chatroom]=false 
- 					g_chatroom_voteopen[chatroom]=0 
-   
- 					return PLUGIN_HANDLED 
- 				} 
- 				else { 
- 					g_chatroom_voteopen[chatroom]++ 
-   
- 					format(temp,191,"^x03[Chat]^x01 '^x04%s^x01' Szavazas IGEN lett! %d/%d",name,g_chatroom_voteopen[chatroom],get_chatroom_players(chatroom)) 
- 					color_print(id,temp) 
- 					print_to_cr(id,temp) 
-   
- 					return PLUGIN_HANDLED 
- 				} 
- 			} 
- 		} 
-   
- 		case 'c':{ 
- 			if(equali(parsed,"/szobazaras")) { 
- 				new name[33] 
- 				get_user_name(id,name,32) 
-   
- 				if(g_chatroom_votelock[chatroom]+1==get_chatroom_players(chatroom)) { 
- 					format(temp,191,"^x03[Chat]^x01 '^x04%s^x01' A szoba be zart!",name) 
- 					color_print(id,temp) 
- 					print_to_cr(id,temp) 
-   
- 					g_chatroom_locked[chatroom]=true 
- 					g_chatroom_votelock[chatroom]=0 
- 				} 
- 				else { 
- 					g_chatroom_votelock[chatroom]++ 
-   
- 					format(temp,191,"^x03[Chat]^x01 '^x04%s^x01' A szavazas bezárja a szobat! Votes: %d/%d",name,g_chatroom_votelock[chatroom],get_chatroom_players(chatroom)) 
- 					color_print(id,temp) 
- 					print_to_cr(id,temp) 
- 				} 
- 				return PLUGIN_HANDLED 
- 			} 
- 		} 
-   
- 		case 'l':if(equali(parsed,"/leaveroom")) { 
- 			leave_room(id) 
- 			return PLUGIN_HANDLED 
- 		} 
-   
- 		case 'j':{ 
- 			new t_parse[2][33] 
-   
- 			if(equali(parsed,"/szobacsat")) { 
- 				new players[32],num,chatters 
- 				get_players(players,num) 
-   
- 				for(i=0;i < num;i++) if(strlen(g_player_chatroom[players[i]])) chatters++ 
-   
- 				if(chatters==MAX_CHATTERS) { 
- 					format(temp,191,"^x03[Chat]^x01 A Chat szoba fullon van!") 
- 					color_print(id,temp) 
-   
- 					return PLUGIN_HANDLED 
- 				} 
-   
- 				parse(args,parsed,32,t_parse[0],32,t_parse[1],32) 
-   
- 				if(!strlen(t_parse[0])) { 
- 					format(temp,191,"^x03[Chat]^x01 Kerlek valtoztas nevet!") 
- 					color_print(id,temp) 
-   
- 					return PLUGIN_HANDLED 
- 				} 
- 				else if(strlen(t_parse[1])) { 
- 					format(temp,191,"^x03[Chat]^x01 Ne rakj SPACET a neved be!") 
- 					color_print(id,temp) 
-   
- 					return PLUGIN_HANDLED 
- 				} 
-   
- 				new cr_id=find_crid_by_name(t_parse[0]) 
-   
- 				if(!strlen(g_chatrooms[cr_id])) { 
- 					format(temp,191,"^x03[Chat]^x01 Nem talat szobat!") 
- 					color_print(id,temp) 
-   
- 					return PLUGIN_HANDLED 
- 				} 
-   
- 				if(g_chatroom_locked[cr_id]) { 
- 					format(temp,191,"^x03[Chat]^x01 A szoba e zarva!") 
- 					color_print(id,temp) 
-   
- 					return PLUGIN_HANDLED 
- 				} 
-   
- 				join_room(id,t_parse[0]) 
-   
- 				return PLUGIN_HANDLED 
- 			} 
- 		} 
-   
- 		case 'm':{ 
- 			if(equali(parsed,"/makeroom")) { 
- 				new t_parse[2][33] 
- 				parse(args,parsed,32,t_parse[0],32,t_parse[1],32) 
-   
- 				if(!strlen(t_parse[0])) { 
- 					format(temp,191,"^x03[Chat]^x01 Kerlek valtoztas nevet!") 
- 					color_print(id,temp) 
-   
- 					return PLUGIN_CONTINUE 
- 				} 
-   
- 				else if(strlen(t_parse[1])) { 
- 					format(temp,191,"^x03[Chat]^x01 Ne rakj SPACET a neved be!") 
- 					color_print(id,temp) 
-   
- 					return PLUGIN_CONTINUE 
- 				} 
-   
- 				if(equali(t_parse[0],g_chatrooms[chatroom])) { 
- 					format(temp,191,"^x03[Chat]^x01 Lepjki es lepj ba ujra a neved ert!") 
- 					color_print(id,temp) 
-   
- 					return PLUGIN_CONTINUE 
- 				} 
-   
- 				open_room(id,t_parse[0]) 
-   
- 				return PLUGIN_HANDLED 
- 			} 
- 			else if(equali(parsed,"/members")) { 
- 				if(!strlen(g_player_chatroom[id])) { 
- 					format(temp,191,"^x03[Chat]^x01 Nem vagy CHat szobaba. Te csatlakozhatsz igy hogy ha beirdo /szobacsat!") 
- 					color_print(id,temp) 
-   
- 					return PLUGIN_HANDLED 
- 				} 
- 				new players[32],temp_string[MAX_CHATTERS*32],num,pname[33] 
- 				get_players(players,num) 
-   
- 				for(i=0;i < num;i++) { 
- 					if(equal(g_player_chatroom[players[i]],g_player_chatroom[id])) { 
- 						get_user_name(players[i],pname,32) 
-   
- 						if(num==i+1) format(temp_string,(MAX_CHATTERS*32)-1,"%s%s^x01.",temp_string,pname) 
-   
- 						else format(temp_string,(MAX_CHATTERS*32)-1,"%s%s^x01,^x04 ",temp_string,pname) 
- 					} 
- 				} 
-   
- 				format(temp_string,(MAX_CHATTERS*32)-1,"^x03[Chat]^x01 Online:^x04 %s",temp_string) 
- 				color_print(id,temp_string) 
-   
- 				return PLUGIN_HANDLED 
- 			} 
- 		} 
- 	} 
- 	if(strlen(g_player_chatroom[id]) && args[0]==CHAT_PREFIX) { 
- 		copy(args,191,args[1]) 
-   
- 		if(!strlen(args)) return PLUGIN_CONTINUE 
-   
- 		new players[32],num,pname[33] 
-   
- 		get_players(players,num) 
- 		get_user_name(id,pname,32) 
-   
- 		for(i=0;i < num;i++) { 
- 			if((get_pcvar_num(c_dead_chat) && (is_user_alive(id)==is_user_alive(players[i]))) || !get_pcvar_num(c_dead_chat)) { 
- 				if(equal(g_player_chatroom[players[i]],g_player_chatroom[id])) { 
- 					new status[7] 
-   
- 					if(!is_user_alive(id)) copy(status,6,"*DEAD*") 
-   
- 					if(!get_user_team(id)) copy(status,6,"*SPEC*") 
-   
- 					format(temp,191,"^x03(%s)%s %s^x01 :  %s%s",g_player_chatroom[id],status,pname,get_pcvar_num(c_green_text) ? "^x04" : "",args) 
- 					color_print(players[i],temp) 
- 				} 
- 			} 
- 		} 
- 		return PLUGIN_HANDLED 
- 	} 
- 	return PLUGIN_CONTINUE 
- } 
-   
- public open_room(id,name[]) { 
- 	new temp[192] 
- 	if(strlen(g_player_chatroom[id])) { 
- 		format(temp,191,"^x03[Chat]^x01 Te mar benn vagy 1 szobaba!('^x04%s^x01')! Valasz Chatszobat! ^x04/leaveroom^x01!",g_player_chatroom[id]) 
- 		color_print(id,temp) 
-   
- 		return PLUGIN_CONTINUE 
- 	} 
-   
- 	format(temp,191,"^x03[Chat]^x01 Te csinbaltal Chatszobat(Name:'^x04%s^x01')!",name) 
- 	color_print(id,temp) 
-   
- 	copy(g_chatrooms[get_user_chatroom_id(id)],32,name) 
-   
- 	join_room(id,name) 
-   
- 	return PLUGIN_HANDLED 
- } 
-   
- public join_room(id,name[]) { 
- 	new temp[192] 
-   
- 	if(strlen(g_player_chatroom[id])) { 
- 		format(temp,191,"^x03[Chat]^x01 Te mar benn vagy 1 szobaba!('^x04%s^x01')! Valasz Chatszobat ^x04/leaveroom^x01!",g_player_chatroom[id]) 
- 		color_print(id,temp) 
-   
- 		return PLUGIN_CONTINUE 
- 	} 
-   
- 	format(temp,191,"^x03[Chat]^x01 Te csatalkoztal '^x04%s^x01'!",name) 
- 	color_print(id,temp) 
-   
- 	new namep[33] 
- 	get_user_name(id,namep,32) 
-   
- 	copy(g_player_chatroom[id],32,name) 
-   
- 	format(temp,191,"^x03[Chat]^x01 '^x04%s^x01' Te csatakoztal!",namep) 
- 	print_to_cr(id,temp) 
-   
- 	return PLUGIN_HANDLED 
- } 
-   
- public leave_room(id) { 
- 	new temp[192] 
-   
- 	if(!strlen(g_player_chatroom[id])) { 
- 		format(temp,191,"^x03[Chat]^x01 Te nem vagy Chatszobaba! Igy tudsz csatlakozni: ^x04/szobacsat^x01!") 
- 		color_print(id,temp) 
-   
- 		return PLUGIN_CONTINUE 
- 	} 
-   
- 	format(temp,191,"^x03[Chat]^x01 Te lecsatlakoztal '^x04%s^x01'!",g_player_chatroom[id]) 
- 	color_print(id,temp) 
-   
- 	new namep[33] 
- 	get_user_name(id,namep,32) 
-   
- 	new players[32],num 
- 	get_players(players,num) 
-   
- 	new number,chatroom=get_user_chatroom_id(id) 
-   
- 	format(temp,191,"^x03[Chat]^x01 '^x04%s^x01' elment a szobabol",namep) 
- 	print_to_cr(id,temp) 
-   
- 	g_player_chatroom[id][0]=0 
-   
- 	number=get_chatroom_players(chatroom) 
-   
- 	if(!number) { 
- 		g_player_chatroom[id][0]=0 
- 		g_chatroom_locked[chatroom]=false 
- 	} 
-   
- 	g_voted4lock[id]=false 
-   
- 	return PLUGIN_HANDLED 
- } 
-   
- public client_disconnect(id) { 
- 	if(get_pcvar_num(c_onoff)) { 
- 		g_voted4lock[id]=false 
- 		g_voted4open[id]=false 
-   
- 		g_player_chatroom[id][0]=0 
-   
- 		remove_task(id) 
-   
- 		leave_room(id) 
- 	} 
- } 
-   
- get_user_chatroom_id(id) { 
- 	for(new i=0;i < MAX_CHATROOMS;i++) if(equal(g_player_chatroom[id],g_chatrooms[i])) return i 
-   
- 	return 0 
- } 
-   
- get_chatroom_players(roomid) { 
- 	new players[32],num,count 
- 	get_players(players,num) 
-   
- 	for(new i=0;i < num;i++) if(equal(g_player_chatroom[players[i]],g_chatrooms[roomid])) count++ 
-   
- 	return count 
- } 
-   
- print_to_cr(id,text[]) { 
- 	new players[32],num,temp[192] 
- 	get_players(players,num) 
-   
- 	for(new i=0;i < num;i++) { 
- 		if(equal(g_player_chatroom[players[i]],g_chatrooms[get_user_chatroom_id(id)]) && players[i]!=id) { 
- 			format(temp,191,text) 
- 			color_print(players[i],temp) 
- 		} 
- 	} 
- } 
-   
- find_crid_by_name(name[]) { 
- 	for(new i=0;i < MAX_CHATROOMS;i++) if(equal(name,g_chatrooms[i])) return i 
-   
- 	return 0 
- } 
-   
- color_print(id,text[]) { 
- 	message_begin(MSG_ONE_UNRELIABLE,msg_say,_,id) 
- 	write_byte(id) 
- 	write_string(text) 
- 	message_end() 
- } 
-   
-   
-   
-   
-   
-   
-   
-   
-   
-   
-   
-   
-   
-