#include <amxmodx>
#include <hamsandwich>
#include <sqlx>
new const PLUGIN[] = "Játszott Időre Vip"
new const VERSION[] = "1.0"
new const AUTHOR[] = "exodus"
#define JOG ADMIN_LEVEL_H //A vip jog
#define IDO 15 //Mennyi idő után adjon jogot (órában számolva)
new const SQL_INFO[][] =
{
"kiszolg", // HOST
"felh", // USERNAME
"jelszo", // PASSWORD
"adatbazis" // DATABASE
}
new Jatszottido[33], name[33][32];
new Handle:g_SqlTuple;
public plugin_init()
{
register_plugin(PLUGIN,VERSION,AUTHOR)
RegisterHam(Ham_Spawn, "player", "Ellenorzes", 1);
}
public Ellenorzes(id)
{
if(Jatszottido[id] >= IDO*3600)
{
set_user_flags(id, get_user_flags(id) | JOG)
}
else
{
set_user_flags(id, get_user_flags(id) | ADMIN_USER)
}
}
public client_putinserver(id)
{
if(!is_user_bot(id))
{
get_user_name(id, name[id], charsmax(name));
load(id);
}
}
public client_disconnect(id)
{
if(!is_user_bot(id))
{
update(id)
}
Jatszottido[id] = 0
copy(name[id], charsmax(name[]), "")
}
public plugin_cfg()
{
new Query[512];
g_SqlTuple = SQL_MakeDbTuple(SQL_INFO[0],SQL_INFO[1],SQL_INFO[2],SQL_INFO[3])
formatex(Query, charsmax(Query), "CREATE TABLE IF NOT EXISTS `idore_vip` (`username` varchar(32) NOT NULL,`Ido` int(11) NOT NULL,`id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY)")
SQL_ThreadQuery(g_SqlTuple,"createTableThread", Query)
}
public createTableThread(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 load(id)
{
new Query[512], Data[1]
Data[0] = id
formatex(Query, charsmax(Query), "SELECT * FROM `idore_vip` WHERE username = ^"%s^";", name[id])
SQL_ThreadQuery(g_SqlTuple, "QuerySelectData", Query, Data, 1)
}
public QuerySelectData(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime)
{
if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED)
{
log_amx("%s", Error)
return
}
else
{
new id = Data[0];
if(SQL_NumRows(Query) > 0)
{
Jatszottido[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Ido"))
}
else
{
save(id)
}
}
}
public save(id)
{
new text[512];
formatex(text, charsmax(text), "INSERT INTO `idore_vip` (`username`, `Ido`) VALUES (^"%s^", ^"0^");", name[id])
SQL_ThreadQuery(g_SqlTuple, "QuerySetData", text)
}
public QuerySetData(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime)
{
if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED) {
log_amx("%s", Error)
return
}
}
public update(id)
{
new text[512];
formatex(text, charsmax(text), "UPDATE `idore_vip` SET Ido = ^"%i^" WHERE username = ^"%s^";", Jatszottido[id]+get_user_time(id), name[id])
SQL_ThreadQuery(g_SqlTuple, "QuerySetData", text)
}
public plugin_end()
{
SQL_FreeHandle(g_SqlTuple)
}