/* Plugin generated by AMXX-Studio */
 
#include <amxmodx>
#include <amxmisc>
#include <sqlx>
#include <hamsandwich>
 
#define PLUGIN "Sorozatgyilkos"
#define VERSION "1.0"
#define AUTHOR "mforce"
 
new Handle:g_SqlTuple
 
new Host[]     = "127.0.0.1"
new User[]    = "felhasznalo"
new Pass[]     = "jelszo"
new Db[]     = "adatbazis"
 
public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	RegisterHam(Ham_Spawn, "player", "spawn_event", 1)
	register_concmd("oles_add", "concmd_oles_add", ADMIN_BAN, "<nev, #userid vagy authid>")
	makeTuple()
	createTable()
}
 
public concmd_oles_add(id, level, cid) {
 
	static arg[128]
	read_argv(1, arg, sizeof(arg) - 1)
 
	new target = cmd_target(id, arg)
 
	new target_ip[35]
	get_user_ip(target, target_ip, sizeof(target_ip) - 1, 1)
	new target_steamid[35]
	get_user_authid(target, target_steamid, sizeof(target_steamid) - 1)
 
	new ErrorCode
	new Error[512]
	new Handle:SqlConnection = SQL_Connect(g_SqlTuple, ErrorCode, Error, 511)
 
	if(SqlConnection == Empty_Handle)
	{	
		set_fail_state(Error)
	}
 
	new Handle:Query = SQL_PrepareQuery(SqlConnection, "SELECT * FROM sorozatgyilkos WHERE steamid = ^"%s^" OR ip = ^"%s^"", target_steamid, target_ip)
	if(!SQL_Execute(Query))
	{
		SQL_QueryError(Query, Error, 511)
		set_fail_state(Error)
	}	
	if(SQL_NumRows(Query) < 1)
	{
		new szTemp[512]
		format(szTemp,charsmax(szTemp),"INSERT INTO sorozatgyilkos SET steamid = ^"%s^", ip = ^"%s^"", target_steamid, target_ip)
 
		SQL_ThreadQuery(g_SqlTuple,"updateTableThread", szTemp)
		if(is_user_alive(target)) user_kill(target)
 
	}
	else console_print(id,"Mar szerepel a jatekos a listaban.") 
 
	SQL_FreeHandle(Query)
	SQL_FreeHandle(SqlConnection)
}
 
public spawn_event(id) {
	new ErrorCode
	new Error[512]
	new Handle:SqlConnection = SQL_Connect(g_SqlTuple, ErrorCode, Error, 511)
 
	if(SqlConnection == Empty_Handle)
	{	
		set_fail_state(Error)
	}
	new nev[32]
	get_user_name(id, nev, charsmax(nev))
	new steamid[32]
	get_user_authid(id, steamid, charsmax(steamid))
	new ip[32]
	get_user_ip(id, ip, charsmax(ip), 1)
	new Handle:Query = SQL_PrepareQuery(SqlConnection, "SELECT * FROM sorozatgyilkos WHERE steamid = ^"%s^" OR ip = ^"%s^"", steamid, ip)
	if(!SQL_Execute(Query))
	{
		SQL_QueryError(Query, Error, 511)
		set_fail_state(Error)
	}	
	if(SQL_NumRows(Query) > 0)
	{
		set_task(3.0,"oles",id)
	}
	SQL_FreeHandle(Query)
	SQL_FreeHandle(SqlConnection)
}
public oles(id) user_kill(id)
 
public makeTuple() {
	g_SqlTuple = SQL_MakeDbTuple(Host,User,Pass,Db)
}
public createTable() {
	SQL_ThreadQuery(g_SqlTuple,"createTableThread", "CREATE TABLE IF NOT EXISTS sorozatgyilkos (`steamid` varchar(32), `ip` varchar(32))")
}
public createTableThread(FailState,Handle:Query,Error[],Errcode,Data[],DataSize) {
	if(FailState == TQUERY_CONNECT_FAILED)
		return set_fail_state("Nem tudtam csatlakozni az adatbazishoz.")
	else if(FailState == TQUERY_QUERY_FAILED)
		return set_fail_state("Query Error")
 
	if(Errcode)
		return log_amx("Hibat dobtam: %s",Error)
 
	return PLUGIN_CONTINUE
}
public plugin_end() {
	SQL_FreeHandle(g_SqlTuple)
}
public updateTableThread(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)
{
	if(FailState == TQUERY_CONNECT_FAILED)
		return set_fail_state("Nem tudtam csatlakozni az adatbazishoz.")
	else if(FailState == TQUERY_QUERY_FAILED)
		return set_fail_state("query hiba")
 
	if(Errcode)
		return log_amx("Hibat dobtam: %s",Error)
 
	return PLUGIN_CONTINUE
}
public updateTableStatsThread(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)
{
	if(FailState == TQUERY_CONNECT_FAILED)
		return set_fail_state("Nem tudtam letrehozni az adatbazist.")
	else if(FailState == TQUERY_QUERY_FAILED)
		return set_fail_state("query hiba")
 
	if(Errcode)
		return log_amx("Hibat dobtam: %s",Error)
 
	return PLUGIN_CONTINUE
}