#include <amxmodx>
#include <amxmisc>
#include <dhudmessage>
#include <cstrike>
#include <colorchat>
#include <engine>
#include <fun>
#include <hamsandwich>
#include <fakemeta>
#include <xs>
#include <sqlx>
new Szint[33], Kulcs[33], name[32][32];
new bool:Belepve[33], bool:Beirtjelszot[33], bool:Beirtjelszot1[33], bool:Beirtfelhasznalot[33], bool:Beirtfelhasznalot1[33], Regisztralt[33], Felhasznalonev[33][100], Jelszo[33][100], regJelszo[33][100], regFh[33][100];
new const REGMENU[][][] = { { "\w[Státusz]: \dNem Regisztrált", "\w[Státusz]: \dKijelentkezve" } };
new const SQLINFO[][] = { "", "", "", "" };
new Handle:g_SqlTuple;
public plugin_init()
{
register_impulse(201, "Ellenorzes")
register_clcmd("Reg_Felhasznalonev", "regisztralas_felh");
register_clcmd("Reg_Jelszo", "regisztralas_jelszo");
register_clcmd("Log_Felhasznalonev", "bejelentkezes_felh");
register_clcmd("Log_Jelszo", "bejelentkezes_jelszo");
}
public Ellenorzes(id)
{
if(Belepve[id] == false)
{
Menu_Fo(id);
}
else
{
Szint[id] ++
Kulcs[id] ++
}
}
public Menu_Fo(id)
{
new String[121];
formatex(String, charsmax(String), "\r- \dRegisztrációs rendszer^n%s", REGMENU[0][Regisztralt[id]]);
new menu = menu_create(String, "Menu_Fo_h");
formatex(String, charsmax(String), "Regisztáció^n");
menu_additem(menu, String, "2",0);
formatex(String, charsmax(String), "Bejelentkezés");
menu_additem(menu, String, "1",0);
menu_display(id, menu, 0);
return PLUGIN_HANDLED;
}
public Menu_Fo_h(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu);
return;
}
new data[9], szName[64];
new access, callback;
menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
new key = str_to_num(data);
switch(key)
{
case 1: Menu_Bejelentkezes(id);
case 2: Menu_Regisztracio(id);
}
}
public Menu_Regisztracio(id)
{
new String[121], Nev[32];
get_user_name(id, Nev, 31);
formatex(String, charsmax(String), "\r- \dRegisztráció^n%s", REGMENU[0][Regisztralt[id]]);
new menu = menu_create(String, "Menu_Regisztracio_h");
if(Regisztralt[id] == 0)
{
formatex(String, charsmax(String), "\wFelhasználónév: \r%s^n", regFh[id]);
menu_additem(menu, String, "1",0);
formatex(String, charsmax(String), "\wJelszó: \r%s^n", regJelszo[id]);
menu_additem(menu, String, "2",0);
}
else
{
formatex(String, charsmax(String), "\rNév: \d%s^n\wTe már regisztráltál a szerverre.", Nev, regFh[id]);
menu_additem(menu, String, "",0);
}
if(Beirtfelhasznalot[id] == true && Beirtjelszot[id] == true)
{
formatex(String, charsmax(String), "\yRegisztráció");
menu_additem(menu, String, "3",0);
}
menu_display(id, menu, 0);
return PLUGIN_HANDLED;
}
public Menu_Regisztracio_h(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu);
return;
}
new data[9], szName[64];
new access, callback;
menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
new key = str_to_num(data);
switch(key)
{
case 1: client_cmd(id, "messagemode Reg_Felhasznalonev");
case 2: client_cmd(id, "messagemode Reg_Jelszo");
case 3:
{
Regisztralt[id] = 1;
ColorChat(id, GREEN, "[Reg.] ^1Sikeresen regisztráltál a szerverre.");
SQL_Update_Reg(id);
}
}
}
public Menu_Bejelentkezes(id)
{
new String[121];
formatex(String, charsmax(String), "\r- \dBejelentkezés^n%s", REGMENU[0][Regisztralt[id]]);
new menu = menu_create(String, "Menu_Bejelentkezes_h");
formatex(String, charsmax(String), "Felhasználónév: \r%s^n", Felhasznalonev[id]);
menu_additem(menu, String, "1",0);
formatex(String, charsmax(String), "Jelszó: \r%s^n", Jelszo[id]);
menu_additem(menu, String, "2",0);
formatex(String, charsmax(String), "\yBejelentkezés^n");
menu_additem(menu, String, "3",0);
menu_display(id, menu, 0);
return PLUGIN_HANDLED;
}
public Menu_Bejelentkezes_h(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu);
return;
}
new data[9], szName[64], Nev[32];
get_user_name(id, Nev, 31);
new access, callback;
menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
new key = str_to_num(data);
switch(key)
{
case 1: client_cmd(id, "messagemode Log_Felhasznalonev");
case 2: client_cmd(id, "messagemode Log_Jelszo");
case 3:
{
if(equali(Jelszo[id], regJelszo[id]) && (equali(Felhasznalonev[id], regFh[id])))
{
Belepve[id] = true;
ColorChat(id, GREEN, "[Információ] ^1Üdv újra itt ^4%s ^1!", Nev);
}
else ColorChat(id, GREEN, "[Információ] ^1Hibás Felhasználónév vagy Jelszó.");
}
}
}
public regisztralas_felh(id)
{
new adat[32];
new hosszusag = strlen(adat);
read_args(adat, charsmax(adat));
remove_quotes(adat);
if(hosszusag >= 5)
{
regFh[id] = adat;
Beirtfelhasznalot[id] = true;
Menu_Regisztracio(id);
}
else
{
regFh[id] = adat;
Beirtfelhasznalot[id] = true;
Menu_Regisztracio(id);
}
return PLUGIN_CONTINUE;
}
public regisztralas_jelszo(id)
{
new adat[32];
new hosszusag = strlen(adat);
read_args(adat, charsmax(adat));
remove_quotes(adat);
if(hosszusag >= 5) {
regJelszo[id] = adat;
Beirtjelszot[id] = true;
Menu_Regisztracio(id);
}
else
{
regJelszo[id] = adat;
Beirtjelszot[id] = true;
Menu_Regisztracio(id);
}
return PLUGIN_CONTINUE;
}
public bejelentkezes_jelszo(id)
{
new adat[32];
new hosszusag = strlen(adat);
read_args(adat, charsmax(adat));
remove_quotes(adat);
if(hosszusag >= 5)
{
Jelszo[id] = adat;
Beirtjelszot1[id] = true;
Menu_Bejelentkezes(id);
}
else
{
Jelszo[id] = adat;
Beirtjelszot1[id] = true;
Menu_Bejelentkezes(id);
}
return PLUGIN_CONTINUE;
}
public bejelentkezes_felh(id)
{
new adat[32];
new hosszusag = strlen(adat);
read_args(adat, charsmax(adat));
remove_quotes(adat);
if(hosszusag >= 5)
{
Felhasznalonev[id] = adat;
Beirtfelhasznalot1[id] = true;
Menu_Bejelentkezes(id);
}
else
{
Felhasznalonev[id] = adat;
Beirtfelhasznalot1[id] = true;
Menu_Bejelentkezes(id);
}
return PLUGIN_CONTINUE;
}
public client_disconnect(id)
{
if(!is_user_bot(id)) Update(id);
Regisztralt[id] = 0;
Belepve[id] = false;
Beirtjelszot[id] = false;
Beirtjelszot1[id] = false;
Beirtfelhasznalot[id] = false;
Beirtfelhasznalot1[id] = false;
regFh[id][0] = EOS;
regJelszo[id][0] = EOS;
Felhasznalonev[id][0] = EOS;
Jelszo[id][0] = EOS;
Kulcs[id] = 0
Szint[id] = 0
copy(name[id], charsmax(name[]), "");
}
public client_putinserver(id)
{
if(!is_user_bot(id))
{
get_user_name(id, name[id], charsmax(name));
Load(id);
}
Felhasznalonev[id] = "";
Jelszo[id] = "";
}
public plugin_cfg()
{
g_SqlTuple = SQL_MakeDbTuple(SQLINFO[0], SQLINFO[1], SQLINFO[2], SQLINFO[3]);
static Query[10048];
new Len;
Len += formatex(Query[Len], charsmax(Query), "CREATE TABLE IF NOT EXISTS `ujgu`");
Len += formatex(Query[Len], charsmax(Query)-Len, "(`Nev` varchar(32) NOT NULL, ");
Len += formatex(Query[Len], charsmax(Query)-Len, "`Felhasznalonev` varchar(32) NOT NULL,");
Len += formatex(Query[Len], charsmax(Query)-Len, "`Jelszo` varchar(32) NOT NULL,");
Len += formatex(Query[Len], charsmax(Query)-Len, "`Kulcs` int(11) NOT NULL,");
Len += formatex(Query[Len], charsmax(Query)-Len, "`Szint` int(11) NOT NULL,");
SQL_ThreadQuery(g_SqlTuple, "createTableThread", Query);
}
public Load(id)
{
static Query[10048];
new Data[1];
Data[0] = id;
formatex(Query, charsmax(Query), "SELECT * FROM `ujgu` WHERE Nev = ^"%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)
{
SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Felhasznalonev"), regFh[id], charsmax(regFh[]));
SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Jelszo"), regJelszo[id], charsmax(regJelszo[]));
Kulcs[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Kulcs"));
Szint[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Szint"));
}
else Save(id);
}
}
public Save(id)
{
static Query[256];
formatex(Query, charsmax(Query), "INSERT INTO `ujgu` (`Nev`) VALUES (^"%s^");", name[id]);
SQL_ThreadQuery(g_SqlTuple, "QuerySetData", Query);
}
public SQL_Update_Reg(id)
{
static Query[10048];
new Len;
Len += formatex(Query[Len], charsmax(Query), "UPDATE `ujgu` SET Felhasznalonev = ^"%s^", ", regFh[id]);
Len += formatex(Query[Len], charsmax(Query)-Len, "Jelszo = ^"%s^", ", regJelszo[id]);
Len += formatex(Query[Len], charsmax(Query)-Len, "Regisztralt = ^"%i^" WHERE Nev = ^"%s^";", Regisztralt[id], name[id]);
SQL_ThreadQuery(g_SqlTuple, "QuerySetData", Query);
}
public Update(id)
{
static Query[10048];
new Len;
Len += formatex(Query[Len], charsmax(Query), "UPDATE `ujgu` SET Kulcs = ^"%i^", ",Kulcs[id]);
Len += formatex(Query[Len], charsmax(Query)-Len, "Szint = ^"%i^", ", Szint[id]);
SQL_ThreadQuery(g_SqlTuple, "QuerySetData", Query);
}
public createTableThread(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime)
{
if(FailState == TQUERY_CONNECT_FAILED) set_fail_state("[HIBA*] NEM TUDTAM CSATLAKOZNI AZ ADATBAZISHOZ!");
else if(FailState == TQUERY_QUERY_FAILED)
set_fail_state("Query Error");
if(Errcode)
log_amx("[HIBA*] HIBAT DOBTAM: %s",Error);
}
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;
}
}