#include <amxmodx>
#include <colorchat>
#include <engine>
#include <sqlx>
new const PLUGIN[] = "Regrendszer"
new const VERISON[] = "1.0"
new const AUTHOR[] = "exodus"
new const PREFIX[] = "[exodus Regisztrációs Rendszer]"
new const SQL_INFO[][] =
{
"", // HOST
"", // USERNAME
"", // PASSWORD
"" // DATABASE
}
new const REGMENU[][] =
{
{"\w[Státusz]: \dNem Regisztrált", "\w[Státusz]: \dKijelentkezve"}
};
new bool:Belepve[33], bool:Beirtjelszot[33], bool:Beirtjelszot1[33], bool:Beirtfelhasznalot[33], bool:Beirtfelhasznalot1[33], Regisztralt[33], Felhasznalonev[32][33], Jelszo[32][33];
new regJelszo[32][33], regFh[32][33];
new name[33][32]
new Handle:g_SqlTuple;
public plugin_init( )
{
register_plugin(PLUGIN,VERISON,AUTHOR);
register_clcmd("say /reg", "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 Menu_Regisztracio(id)
{
new String[121];
formatex(String, charsmax(String), "%s \r- \dRegisztráció^n%s^n", PREFIX, REGMENU[Regisztralt[id]]);
new menu = menu_create(String, "Menu_Regisztracio_h");
formatex(String, charsmax(String), "\rFelhasználónév: \d%s ^n", regFh[id]);
menu_additem(menu, String, "1",0);
formatex(String, charsmax(String), "\rJelszó: \d%s ^n", regJelszo[id]);
menu_additem(menu, String, "2",0);
if(Beirtfelhasznalot[id] == true && Beirtjelszot[id] == true)
{
formatex(String, charsmax(String), "Regisztrálás^n");
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;
Beirtfelhasznalot[id] = false;
Beirtjelszot[id] = false;
ColorChat(id, GREEN, "%s ^1Sikeresen regisztráltál a szerverre.", PREFIX);
}
}
update(id);
}
public Menu_Bejelentkezes(id)
{
new String[121];
formatex(String, charsmax(String), "%s \r- \dBejelentkezés^n%s^n", PREFIX, REGMENU[0][Regisztralt[id]]);
new menu = menu_create(String, "Menu_Bejelentkezes_h");
formatex(String, charsmax(String), "\rFelhasználónév: \d%s^n", Felhasznalonev[id]);
menu_additem(menu, String, "1",0);
formatex(String, charsmax(String), "\rJelszó: \d%s^n", Jelszo[id]);
menu_additem(menu, String, "2",0);
formatex(String, charsmax(String), "Bejelentkezés");
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];
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]))
{
Beirtfelhasznalot1[id] = false;
Beirtjelszot1[id] = false;
Belepve[id] = true;
ColorChat(id, GREEN, "%s ^1Sikeresen Bejelentkeztel.", PREFIX);
}
else
{
ColorChat(id, GREEN, "%s ^1Hibás felhasználónév vagy jelszó.", PREFIX);
}
}
}
}
public Menu_Fo(id)
{
new String[121];
formatex(String, charsmax(String), "%s \r- \dRegisztrációs rendszer^n%s^n", PREFIX, REGMENU[0][Regisztralt[id]]);
new menu = menu_create(String, "Menu_Fo_h");
formatex(String, charsmax(String), "\yRegisztáció^n");
menu_additem(menu, String, "2",0);
formatex(String, charsmax(String), "\yBejelentkezés^n");
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 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 Ellenorzes(id)
{
if(Belepve[id] == false)
{
Menu_Fo(id);
}
else
{
ColorChat(id, GREEN, "%s ^1Te már be vagy jelentkezve", PREFIX);
}
}
public client_putinserver(id)
{
Regisztralt[id] = 0;
Belepve[id] = false;
Beirtfelhasznalot[id] = false;
Beirtfelhasznalot1[id] = false;
Beirtjelszot[id] = false;
Beirtjelszot1[id] = false;
Felhasznalonev[id] = "";
Jelszo[id] = "";
regFh[id] = "";
regJelszo[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);
}
}
public plugin_cfg_reg() {
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 `exodus_reg` (`username` varchar(32) NOT NULL,`Regisztralt` int(11) NOT NULL,`Felhasznalonev` varchar(32) NOT NULL,`Jelszo` varchar(32) NOT NULL,`id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY)")
SQL_ThreadQuery(g_SqlTuple,"createTableThread", Query)
}
public load(id) {
new Query[512], Data[1]
Data[0] = id
formatex(Query, charsmax(Query), "SELECT * FROM `exodus_reg` WHERE username = ^"%s^";", name[id])
SQL_ThreadQuery(g_SqlTuple, "QuerySelectData_reg", Query, Data, 1)
}
public QuerySelectData_reg(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)
{
Regisztralt[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Regisztralt"))
SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Felhasznalonev"), regFh[id], charsmax(regFh[]))
SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Jelszo"), regJelszo[id], charsmax(regJelszo[]))
}
else {
save(id)
}
}
}
public save(id) {
new text[512];
formatex(text, charsmax(text), "INSERT INTO `exodus_reg` (`username`, `Felhasznalonev`) VALUES (^"%s^", ^"0^");", name[id])
SQL_ThreadQuery(g_SqlTuple, "QuerySetData_reg", text)
}
public QuerySetData_reg(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 `exodus_reg` SET Regisztralt = ^"%i^", Felhasznalonev = ^"%s^", Jelszo = ^"%s^" WHERE username = ^"%s^";", Regisztralt[id],regFh[id],regJelszo[id], name[id])
SQL_ThreadQuery(g_SqlTuple, "QuerySetData_reg", text)
}