- #include <amxmodx> 
- #include <engine> 
- #include <sqlx> 
- #include <colorchat> 
-   
- #pragma semicolon 1; 
-   
- enum Login 
- { 
- 	unknown, 
- 	signing_up, //Regisztrál 
- 	logging_in, //Bejelentkezik 
- 	logged_in //Bejelentkezett 
- } 
-   
- new Login:User[33]; 
- new username[33][64], password[33][32], password2[33][32]; 
- new info_hud_message[33][64], HudObj, info_hud_color[3]; // 0-Piros; 1-Zöld; 2-Kék; 
-   
- new Pont[33], bool:VIP[33], bool:Is_Prefix[33], Prefix[33][32]; 
-   
- #define	GetBit(%1,%2)		(%1 & (1 << (%2 & 31))) 
- #define	SetBit(%1,%2)		%1 |= (1 << (%2 & 31)) 
- #define	ResetBit(%1,%2)		%1 &= ~(1 << (%2 & 31)) 
- new bitadmin; 
- new bitelo; 
-   
- new const SQL_INFO[][] = { 
- 	"127.0.0.1",    // HOST 
- 	"root",     // USERNAME 
- 	"ymAdCAx8RFym1Y3",     // PASSWORD 
- 	"danika"      // DATABASE 
- }; 
-   
- new Handle:g_SqlTuple; 
-   
- public plugin_init() 
- { 
- 	register_plugin("Mod", "1.0", "LyleChriss && Maxi"); 
-   
- 	register_impulse(201, "Main_Menu"); 
- 	register_clcmd("say /menu", "Main_Menu"); 
-   
- 	register_clcmd("Felhasznalonev", "cmd_Username"); 
- 	register_clcmd("Jelszo", "cmd_Password"); 
- 	register_clcmd("Jelszo_ujra", "cmd_Password2"); 
-   
- 	HudObj = CreateHudSyncObj(); 
- 	set_task(1.0, "InfoHUD", _, _, _, "b"); 
-   
- 	register_event("DeathMsg", "eDeathMsg", "a"); 
-   
- 	register_clcmd("say", "HandlerSay"); 
- 	register_clcmd("say_team", "HandlerSayTeam"); 
- 	register_event("ResetHUD", "eResetHUD", "be"); 
- } 
-   
- public eDeathMsg() 
- { 
- 	new id = read_data(1); 
- 	new victim = read_data(2); 
- 	ResetBit(bitelo, victim); 
-   
- 	if(id != victim && is_user_alive(id) && User[id] == logged_in) 
- 	{ 
- 		switch(VIP[id]) 
- 		{ 
- 			case false:{ 
- 				Pont[id]++; 
- 				ColorChat(id, NORMAL, "Kaptál ^4egy ^1pontot!"); 
- 			} 
- 			case true:{ 
- 				Pont[id]+=2; 
- 				ColorChat(id, NORMAL, "Kaptál ^4két ^1pontot"); 
- 			} 
- 		} 
- 	} 
- } 
-   
- public eResetHUD(id) 		SetBit(bitelo, id); 
-   
- public client_putinserver(id) 
- { 
- 	if(get_user_flags(id) & ADMIN_CHAT) SetBit(bitadmin, id); 
- 	else ResetBit(bitadmin, id); 
- }      
-   
- public client_disconnect(id) 
- { 
- 	if(!is_user_bot(id) || !is_user_hltv(id)) 
- 	{ 
- 		Update_SQL(id); 
- 	} 
-   
- 	username[id][0] = EOS; 
- 	password[id][0] = EOS; 
- 	password2[id][0] = EOS; 
- 	User[id] = unknown; 
- 	Pont[id] = 0; 
- 	VIP[id] = false; 
- 	Is_Prefix[id] = false; 
- 	Prefix[id][0] = EOS; 
- 	ResetBit(bitelo, id); 
- } 
-   
- public InfoHUD() 
- { 
- 	new players[32], pnum, id; 
- 	get_players(players, pnum, "chi"); 
-   
- 	for(new i; i<pnum; i++) 
- 	{ 
- 		id=players[i]; 
- 		set_hudmessage(info_hud_color[0], info_hud_color[1], info_hud_color[2], -1.0, -1.0, 0, 6.0, 12.0, 0.8, 0.8, -1); 
- 		ShowSyncHudMsg(id, HudObj, "%s", info_hud_message[id]); 
- 	} 
- } 
-   
- public HUD_EndOfString(taskid)  info_hud_message[taskid-1000][0] = EOS; 
-   
- public Main_Menu(id) 
- { 
- 	new menu = menu_create("Valami Mod | Főmenü", "Main_Menu_Handler"); 
-   
- 	menu_additem(menu, "Jelentkezz be!", "", 0); 
- 	menu_additem(menu, "Még nincs felhasználód? Regisztrálj!", "", 0); 
-   
- 	menu_display(id, menu); 
- } 
-   
- public Main_Menu_Handler(id, menu, item) 
- { 
- 	switch(item) 
- 	{ 
- 		case MENU_EXIT:{ 
- 			menu_destroy(menu); 
- 			return; 
- 		} 
- 		case 0:{ 
- 			Main_Menu_Login(id); 
- 			User[id] = logging_in; 
- 		} 
- 		case 1:{ 
- 			Main_Menu_Register(id); 
- 			User[id] = signing_up; 
- 		} 
- 	} 
- 	menu_destroy(menu); 
- } 
-   
- public Main_Menu_Register(id) 
- { 
- 	new menu = menu_create("Valami Mod | Regisztráció", "Main_Menu_Register_Handler"); 
-   
- 	new text[128]; 
- 	formatex(text, charsmax(text), "Felhasználónév: %s", username[id]); 
- 	menu_additem(menu, text, "", 0); 
-   
- 	formatex(text, charsmax(text), "Jelszó: %s", show_stars(strlen(password[id]))); 
- 	menu_additem(menu, text, "", 0); 
-   
- 	formatex(text, charsmax(text), "Jelszó újra: %s", show_stars(strlen(password2[id]))); 
- 	menu_additem(menu, text, "", 0); 
-   
- 	menu_additem(menu, "Regisztráció", "", 0); 
-   
- 	menu_display(id, menu); 
- } 
-   
- public Main_Menu_Register_Handler(id, menu, item) 
- { 
- 	switch(item) 
- 	{ 
- 		case MENU_EXIT:{ 
- 			menu_destroy(menu); 
- 			return; 
- 		} 
- 		case 0:{ 
- 			client_cmd(id, "messagemode Felhasznalonev"); 
- 			Main_Menu_Register(id); 
- 		} 
- 		case 1:{ 
- 			client_cmd(id, "messagemode Jelszo"); 
- 			Main_Menu_Register(id); 
- 		} 
- 		case 2:{ 
- 			client_cmd(id, "messagemode Jelszo_ujra"); 
- 			Main_Menu_Register(id); 
- 		} 
- 		case 3: Register_Check(id); 
- 	} 
- 	menu_destroy(menu); 
- } 
-   
- public Main_Menu_Login(id) 
- { 
- 	new menu = menu_create("Valami Mod | Bejelentkezés", "Main_Menu_Login_Handler"); 
-   
- 	new text[128]; 
- 	formatex(text, charsmax(text), "Felhasználónév: %s", username[id]); 
- 	menu_additem(menu, text, "", 0); 
-   
- 	formatex(text, charsmax(text), "Jelszó: %s", show_stars(strlen(password[id]))); 
- 	menu_additem(menu, text, "", 0); 
-   
- 	menu_additem(menu, "Bejelentkezés", "", 0); 
-   
- 	menu_display(id, menu); 
- } 
-   
- public Main_Menu_Login_Handler(id, menu, item) 
- { 
- 	switch(item) 
- 	{ 
- 		case MENU_EXIT:{ 
- 		menu_destroy(menu); 
- 		return; 
- 		} 
- 		case 0:{ 
- 			client_cmd(id, "messagemode Felhasznalonev"); 
- 			Main_Menu_Login(id); 
- 		} 
- 		case 1:{ 
- 			client_cmd(id, "messagemode Jelszo"); 
- 			Main_Menu_Login(id); 
- 		} 
- 		case 2: Login_Check(id); 
- 	} 
- 	menu_destroy(menu); 
- } 
-   
- public Register_Check(id) 
- { 
- 	if(User[id] == logging_in ||User[id] == logged_in || User[id] == unknown) 
- 		return; 
-   
- 	if(!equal(password[id], password2[id])) 
- 	{ 
- 		formatex(info_hud_message[id], charsmax(info_hud_message[]), "A két jelszó nem egyezik!"); 
- 		info_hud_color[0] = 255, info_hud_color[1] = 0, info_hud_color[2] = 0; 
- 		Main_Menu_Register(id); 
- 		return; 
- 	} 
-   
- 	else if((strlen(password[id])) > 16 || (strlen(password2[id])) > 16) 
- 	{ 
- 		formatex(info_hud_message[id], charsmax(info_hud_message[]), "A jelszó nem lehet hosszabb 16 karakternél!"); 
- 		info_hud_color[0] = 255, info_hud_color[1] = 0, info_hud_color[2] = 0; 
- 		Main_Menu_Register(id); 
- 		return; 
- 	} 
-   
- 	else if((strlen(password[id])) < 6 || (strlen(password2[id])) < 6) 
- 	{ 
- 		formatex(info_hud_message[id], charsmax(info_hud_message[]), "A jelszó nem lehet rövidebb 6 karakternél!"); 
- 		info_hud_color[0] = 255, info_hud_color[1] = 0, info_hud_color[2] = 0; 
- 		Main_Menu_Register(id); 
- 		return; 
- 	} 
-   
- 	else 
- 	{ 
- 		formatex(info_hud_message[id], charsmax(info_hud_message[]), "Regisztráció folyamatban... Kérlek várj!"); 
- 		info_hud_color[0] = 0, info_hud_color[1] = 255, info_hud_color[2] = 0; 
- 		Sql_Register_Check(id); 
- 		Main_Menu_Register(id); 
- 	} 
- } 
-   
- public Login_Check(id) 
- { 
- 	if(User[id] == logged_in || User[id] == unknown) 
- 		return; 
- 	formatex(info_hud_message[id], charsmax(info_hud_message[]), "Bejelentkezés folyamatban... Kérlek várj!"); 
- 	info_hud_color[0] = 0, info_hud_color[1] = 255, info_hud_color[2] = 0; 
- 	Sql_Login_Check(id); 
- 	Main_Menu_Login(id); 
- } 
-   
- public cmd_Username(id) 
- { 
- 	if(User[id] == logged_in || User[id] == unknown) 
- 		return; 
-   
- 	username[id][0] = EOS; 
- 	set_task(0.1, "HUD_EndOfString", 1000+id); 
- 	read_args(username[id], charsmax(username [])); 
- 	remove_quotes(username[id]); 
- 	switch(User[id]) 
- 	{ 
- 		case signing_up: Main_Menu_Register(id); 
- 		case logging_in: Main_Menu_Login(id); 
- 	} 
- } 
-   
- public cmd_Password(id) 
- { 
- 	if(User[id] == logged_in || User[id] == unknown) 
- 		return; 
-   
- 	password[id][0] = EOS; 
- 	set_task(0.1, "HUD_EndOfString", 1000+id); 
- 	read_args(password[id], charsmax(password [])); 
- 	remove_quotes(password[id]); 
- 	switch(User[id]) 
- 	{ 
- 		case signing_up: Main_Menu_Register(id); 
- 		case logging_in: Main_Menu_Login(id); 
- 	} 
- } 
-   
- public cmd_Password2(id) 
- { 
- 	if(User[id] == logged_in || User[id] == logging_in || User[id] == unknown) 
- 		return; 
-   
- 	password2[id][0] = EOS; 
- 	set_task(0.1, "HUD_EndOfString", 1000+id); 
- 	read_args(password2[id], charsmax(password2[])); 
- 	remove_quotes(password2[id]); 
- 	Main_Menu_Register(id); 
- } 
-   
- public Sql_Register_Check(id) 
- { 
- 	static Query[512]; 
-   
- 	new Data[2]; 
- 	Data[0] = id; 
- 	Data[1] = get_user_userid(id); 
-   
- 	formatex(Query, charsmax(Query), "SELECT * FROM `register` WHERE username = '%s'", username[id]); 
-   
- 	SQL_ThreadQuery(g_SqlTuple, "Sql_Register_Thread", Query, Data, 2); 
- } 
-   
- public Sql_Register_Thread(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) 
- { 
- 	if(FailState == TQUERY_CONNECT_FAILED) 
- 		set_fail_state("Nem tudtam csatlakozni az adatbazishoz."); 
- 	else if(FailState == TQUERY_QUERY_FAILED) 
- 		set_fail_state("Query Error"); 
- 	if(Errcode) 
- 		log_amx("Hibat dobtam: %s",Error); 
-   
- 	new id = Data[0]; 
-   
- 	if(Data[1] != get_user_userid(id)) 
- 		return; 
-   
- 	new RowsFound = SQL_NumRows(Query); 
-   
- 	if(RowsFound) 
- 	{ 
- 		formatex(info_hud_message[id], charsmax(info_hud_message[]), "Ez a felhasználónév már foglalt!"); 
- 		info_hud_color[0] = 255, info_hud_color[1] = 0, info_hud_color[2] = 0; 
- 		Main_Menu_Register(id); 
- 	} 
- 	else Sql_Account_Create(id); 
- } 
-   
- public Sql_Account_Create(id) 
- { 
- 	static Query[512]; 
-   
- 	formatex(Query, charsmax(Query), "INSERT INTO `register` (username, password) VALUES('%s', '%s')", username[id], password[id]); 
-   
- 	new Data[2]; 
- 	Data[0] = id; 
- 	Data[1] = get_user_userid(id); 
-   
- 	SQL_ThreadQuery(g_SqlTuple, "Sql_Account_Create_Thread", Query, Data, 2); 
- } 
-   
- public Sql_Account_Create_Thread(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) 
- { 
- 	if(FailState == TQUERY_CONNECT_FAILED) 
- 		set_fail_state("Nem tudtam csatlakozni az adatbazishoz."); 
- 	else if(FailState == TQUERY_QUERY_FAILED) 
- 		set_fail_state("Query Error"); 
- 	if(Errcode) 
- 		log_amx("Hibat dobtam: %s",Error); 
-   
- 	new id = Data[0]; 
-   
- 	if(Data[1] != get_user_userid(id)) 
- 		return; 
-   
- 	formatex(info_hud_message[id], charsmax(info_hud_message[]), "Sikeres Regisztráció! Jelentkezz be!"); 
- 	info_hud_color[0] = 0, info_hud_color[1] = 255, info_hud_color[2] = 0; 
- 	set_task(5.0, "HUD_EndOfString", 1000+id); 
- 	User[id] = logging_in; 
- 	Main_Menu_Login(id); 
- } 
-   
- public Sql_Login_Check(id) 
- { 
- 	static Query[512]; 
-   
- 	new Data[2]; 
- 	Data[0] = id; 
- 	Data[1] = get_user_userid(id); 
-   
- 	formatex(Query, charsmax(Query), "SELECT * FROM `register` WHERE username = '%s'", username[id]); 
-   
- 	SQL_ThreadQuery(g_SqlTuple, "Sql_Login_Thread", Query, Data, 2); 
- } 
-   
- public Sql_Login_Thread(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) 
- { 
- 	if(FailState == TQUERY_CONNECT_FAILED) 
- 		set_fail_state("Nem tudtam csatlakozni az adatbazishoz."); 
- 	else if(FailState == TQUERY_QUERY_FAILED) 
- 		set_fail_state("Query Error"); 
- 	if(Errcode) 
- 		log_amx("Hibat dobtam: %s",Error); 
-   
- 	new id = Data[0]; 
-   
- 	if(Data[1] != get_user_userid(id)) 
- 		return; 
-   
- 	new RowsFound = SQL_NumRows(Query); 
-   
- 	if(RowsFound) 
- 	{ 
- 		new tmp_pass[32]; 
-   
- 		SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "password"), tmp_pass, charsmax(tmp_pass)); 
-   
- 		if(equal(password[id], tmp_pass)) 
- 		{ 
- 			User[id] = logged_in; 
- 			formatex(info_hud_message[id], charsmax(info_hud_message[]), "Sikeres bejelentkezés!"); 
- 			info_hud_color[0] = 0, info_hud_color[1] = 255, info_hud_color[2] = 0; 
- 			set_task(5.0, "HUD_EndOfString", 1000+id); 
- 			Pont[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "pontok")); 
- 			new vip, prefix; 
- 			vip = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "is_vip")); 
- 			prefix = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "is_prefix")); 
-   
- 			switch(vip) 
- 			{ 
- 				case 0: VIP[id] = false; 
- 				case 1: VIP[id] = true; 
- 			} 
- 			switch(prefix) 
- 			{ 
- 				case 0: Is_Prefix[id] = false; 
- 				case 1:{ 
- 					Is_Prefix[id] = true; 
- 					SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "prefix"), Prefix[id], charsmax(Prefix[])); 
- 				} 
- 			} 
- 		} 
- 		else 
- 		{ 
- 			formatex(info_hud_message[id], charsmax(info_hud_message[]), "Érvénytelen jelszó!"); 
- 			info_hud_color[0] = 255, info_hud_color[1] = 0, info_hud_color[2] = 0; 
- 			Main_Menu_Login(id); 
- 		} 
- 	} 
- 	else 
- 	{ 
- 		formatex(info_hud_message[id], charsmax(info_hud_message[]), "Érvénytelen felhasználónév!"); 
- 		info_hud_color[0] = 255, info_hud_color[1] = 0, info_hud_color[2] = 0; 
- 		Main_Menu_Login(id); 
- 	} 
- } 
-   
- public Update_SQL(id) 
- { 
-     static Query[512]; 
-   
-     formatex(Query, charsmax(Query), "UPDATE `register` SET `pontok` = '%d' WHERE `username` = '%s';", Pont[id], username[id]); 
-     SQL_ThreadQuery(g_SqlTuple, "Sql_Update_Thread", Query); 
- } 
-   
- public Sql_Update_Thread(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) 
- { 
-     if(FailState == TQUERY_CONNECT_FAILED) 
-         set_fail_state("Nem tudtam csatlakozni az adatbazishoz."); 
-     else if(FailState == TQUERY_QUERY_FAILED) 
-         set_fail_state("Query Error"); 
-     if(Errcode) 
-         log_amx("Hibat dobtam: %s",Error); 
- } 
-   
- public plugin_cfg() 
- { 
- 	g_SqlTuple = SQL_MakeDbTuple(SQL_INFO[0], SQL_INFO[1], SQL_INFO[2], SQL_INFO[3]); 
- } 
-   
- public HandlerSay(id) return uzenetformazas(id, false); 
- public HandlerSayTeam(id) return uzenetformazas(id, true); 
-   
- uzenetformazas(id, bool:csapat) 
- { 
- #define MAX_BIT 180 
- 	static uzenet[MAX_BIT], stringkonvertalas[charsmax(uzenet) * 2 + 1];  
- 	read_args(uzenet, charsmax(uzenet)); 
- 	remove_quotes(uzenet); 
-   
- 	if(uzenet[0] == EOS || uzenet[0] == '/' || equal(uzenet, " ")) 
- 		return PLUGIN_HANDLED_MAIN; 
-   
- 	static fullos, tagek[MAX_BIT], team_lekeres, sTeam[16]; 
- 	team_lekeres  = get_user_team(id, sTeam, charsmax(sTeam)); 
-   
- 	switch(team_lekeres) 
- 	{ 
- 		case 1: fullos = formatex(tagek, charsmax(tagek), "%s%s", GetBit(bitelo, id) ? "^1" : "^1*Halott* ", csapat ? "^1[T] " : ""); 
- 		case 2: fullos = formatex(tagek, charsmax(tagek), "%s%s", GetBit(bitelo, id) ? "^1" : "^1*Halott* ", csapat ? "^1[CT] " : ""); 
- 		default:fullos = formatex(tagek, charsmax(tagek), "^1*Spec* "); 
- 	} 
-   
- 	if(Prefix[id][0] && Is_Prefix[id]) 
- 		fullos += formatex(tagek[fullos], charsmax(tagek) - fullos, "^4[%s] ", Prefix[id]);	 
-   
- 	fullos += formatex(tagek[fullos], charsmax(tagek) - fullos, "^3%%s1^1 :  %%s2"); 
-   
- 	stringkonvertalas = uzenet; 
- 	replace_all( stringkonvertalas, charsmax( stringkonvertalas ), "", " " ); 
- 	replace_all( stringkonvertalas, charsmax( stringkonvertalas ), "", " " );  
-   
- 	static bitlimit; bitlimit = MAX_BIT; 
- 	while(fullos + strlen(stringkonvertalas) > MAX_BIT) stringkonvertalas[bitlimit -= 10] = 0; 
-   
- 	static players[32], pcount; get_players(players, pcount, "c"); 
- 	switch(csapat) 
- 	{ 
- 		case true: 
- 		{ 
- 			for(new i; i < pcount; i++) 
- 			{			 
- 				if(GetBit(bitadmin, players[i]) || (GetBit(bitelo, id) == GetBit(bitelo, players[i]) && team_lekeres == get_user_team(players[i]))) 
- 					PrintChat(players[i], id, tagek, stringkonvertalas); 
- 			}								 
- 		} 
- 		case false: 
- 		{	 
- 			for(new i; i < pcount; i++) 
- 				PrintChat(players[i], id, tagek, stringkonvertalas); 
- 		} 
- 	} 
- 	static sAuthId[25], sName[32]; 
- 	get_user_name(id, sName, charsmax(sName));  
- 	get_user_authid(id, sAuthId, charsmax(sAuthId)); 
- 	log_message("^"%s<%d><%s><%s>^" %s ^"%s^"", sName, get_user_userid(id), sAuthId, sTeam, csapat ? "say_team" : "say" , stringkonvertalas);	 
- 	return PLUGIN_HANDLED; 
- } 
-   
- PrintChat(iReceiver, iSender, const tagek[], const uzenet[]) 
- { 
- 	message_begin(MSG_ONE, 76, .player=iReceiver); 
- 	write_byte(iSender); 
- 	write_string(tagek); 
- 	write_string(""); 
- 	write_string(uzenet); 
- 	message_end(); 
- } 
-   
- stock show_stars(i_Lenght) 
- { 
- 	static s_Stars[32] = "*******************************", sStars2[32]; 
- 	formatex(sStars2, 31, "%s", s_Stars[31-i_Lenght]); 
- 	return sStars2; 
- } 
-