#include <amxmodx>
#include <colorchat>
#include <sqlx>
new const Prefix[] = "Torreto Regi";
new gFelhasznalo[33][100], gJelszo[33][100], gMenu[33], gId[33], gFolyamatban[33], bool:gBejelentkezes[33] , Aktivitas[33];
new Handle:SqlTuple;
new const SqlN[][] = { "164.132.201.166", "u_25503", "Tj6ZGaqL", "u_25503" }
public plugin_init() {
register_plugin("","","");
register_clcmd("say /reg", "RegisztMenu");
register_clcmd("Jelszo", "cmdJelszo");
register_clcmd("Felhasznalo", "cmdFelhasznalo");
}
public RegisztMenu(id) {
new menu = menu_create("Regisztrációs Menü", "Regi_h");
menu_additem(menu, "Regisztrálás", "0", 0);
menu_additem(menu, "Bejelentkezés", "1", 0);
menu_display(id, menu, 0);
}
public Regi_h(id, menu, item) {
switch(item) {
case MENU_EXIT: {
menu_destroy(menu);
return;
}
case 0: {
RegFomenu(id);
gMenu[id] = 0;
}
case 1: {
RegFomenu(id);
gMenu[id] = 1;
}
}
}
public client_putinserver(id)
{
gFolyamatban[id] = 0
gBejelentkezes[id] = false
copy(gJelszo[id], 31, "")
copy(gFelhasznalo[id], 31, "")
}
public RegFomenu(id) {
new cim[121];
new menu = menu_create(gMenu[id] == 0? "Reigsztrációs Menü":"Bejelentkezés Menü", "RegFo_h");
format(cim, charsmax(cim), "Felhasználónév: %s", gFelhasznalo[id]);
menu_additem(menu, cim, "0", 0);
format(cim, charsmax(cim), "Jelszo: %s", gJelszo[id]);
menu_additem(menu, cim, "1", 0);
menu_additem(menu, gMenu[id] == 0 ? "Regisztrálás!":"Bejelentkezés!", "2",0);
menu_display(id, menu, 0);
}
public RegFo_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 0: client_cmd(id, "messagemode Felhasznalo");
case 1: client_cmd(id, "messagemode Jelszo");
case 2: cmdBejelentkezes(id);
}
}
public cmdBejelentkezes(id) {
if(gBejelentkezes[id] == true)
return PLUGIN_HANDLED;
if((strlen(gFelhasznalo[id]) == 0)) {
ColorChat(id, NORMAL, "^4[%s] ^1Nem adtál meg felhaszálónevet!", Prefix);
RegFomenu(id)
return PLUGIN_HANDLED;
}
if((strlen(gJelszo[id]) == 0)) {
ColorChat(id, NORMAL, "^4[%s] ^1Nem adtál meg jelszót!", Prefix);
RegFomenu(id)
return PLUGIN_HANDLED;
}
if(gMenu[id] == 0) {
if(gFolyamatban[id] == 0) {
ColorChat(id, NORMAL, "^4[%s] ^1Regisztrálás folyamatban van.... Kérlek várj!", Prefix);
SqlAccKeszit(id);
RegFomenu(id);
gFolyamatban[id] = 1;
return PLUGIN_HANDLED;
}
else RegFomenu(id);
}
if(gMenu[id] == 1) {
if(gFolyamatban[id] == 0) {
ColorChat(id, NORMAL, "^4[%s] ^1Bejelentkezés folyamatban van.... Kérlek várj!", Prefix);
SqlAccBetolt(id);
RegFomenu(id);
gFolyamatban[id] = 1;
return PLUGIN_HANDLED;
}
else RegFomenu(id);
}
return PLUGIN_CONTINUE;
}
public cmdJelszo(id) {
if(gBejelentkezes[id] == true)
return PLUGIN_HANDLED;
gJelszo[id][0] = EOS;
read_args(gJelszo[id], 99);
remove_quotes(gJelszo[id]);
if((strlen(gJelszo[id]) < 4 || strlen(gJelszo[id]) > 20)) {
ColorChat(id, NORMAL, "^4[%s] ^1A jelszavad nem lehet rővidebb mint 4, illetve hosszabb 20 karakternél!.", Prefix);
gJelszo[id][0] = EOS;
}
RegFomenu(id);
return PLUGIN_HANDLED;
}
public cmdFelhasznalo(id) {
if(gBejelentkezes[id] == true)
return PLUGIN_HANDLED;
gFelhasznalo[id][0] = EOS;
read_args(gFelhasznalo[id], 99);
remove_quotes(gFelhasznalo[id]);
if((strlen(gFelhasznalo[id]) < 4 || strlen(gFelhasznalo[id]) > 20)) {
ColorChat(id, NORMAL, "^4[%s] ^1A felhasználóneved nem lehet rővidebb mint 4, illetve hosszabb 20 karakternél!.", Prefix);
gFelhasznalo[id][0] = EOS;
}
RegFomenu(id);
return PLUGIN_HANDLED;
}
public client_disconnect(id) {
if(gBejelentkezes[id]) {
SqlAccFissites(id);
}
gFelhasznalo[id][0] = EOS;
gJelszo[id][0] = EOS;
gBejelentkezes[id] = false;
}
public plugin_cfg() {
SqlTuple = SQL_MakeDbTuple(SqlN[0], SqlN[1], SqlN[2], SqlN[3]);
}
public SqlAccBetolt(id) {
new Query[2048], Len = 0;
new a[191];
format(a, 190, "%s", gFelhasznalo[id]);
replace_all(a, 190, "\", "\\")
replace_all(a, 190, "'", "\'")
Len += format(Query[Len], charsmax(Query), "SELECT * FROM regi_sql ");
Len += format(Query[Len], charsmax(Query)-Len, "WHERE Felhasznalo = '%s'", a);
new Data[2]
Data[0] = id;
Data[1] = get_user_userid(id);
SQL_ThreadQuery(SqlTuple, "SqlAccBetoltQwe", Query, Data, 2);
}
public SqlAccBetoltQwe(FailState,Handle:Query,Error[],Errcode,Data[],DataSize) {
if(FailState == TQUERY_CONNECT_FAILED)
{
set_fail_state("[ *HIBA* ] NEM LEHET KAPCSOLODNI AZ ADATBAZISHOZ!")
return
}
else if(FailState == TQUERY_QUERY_FAILED)
{
set_fail_state("[ *HIBA* ] A LEKERDEZES MEGSZAKADT!")
return
}
if(Errcode)
{
log_amx("[ *HIBA* ] PROBLEMA A LEKERDEZESNEL! ( %s )",Error)
return
}
new id = Data[0];
if(Data[1] != get_user_userid(id))
return;
new Found = SQL_NumRows(Query);
if(gMenu[id] == 0) {
if(Found > 0) {
ColorChat(id, NORMAL, "^4[%s] ^1Ez a felhasználónév már foglalt!", Prefix);
gFolyamatban[id] = 0;
RegFomenu(id);
}
else SqlAccKeszit(id);
}
else if(gMenu[id] == 1) {
if(Found == 0) {
ColorChat(id, NORMAL, "^4[%s] ^1Hibás jelszó vagy felhasználónév!", Prefix);
gFolyamatban[id] = 0;
RegFomenu(id);
}
else SqlAccLoad(id);
}
}
public SqlAccKeszit(id) {
new Query[2048], Len = 0;
new a[191], b[191], c[191];
format(a, 190, "%s", gFelhasznalo[id]);
format(b, 190, "%s", gJelszo[id]);
replace_all(a, 190, "\", "\\")
replace_all(a, 190, "'", "\'")
replace_all(b, 190, "\", "\\")
replace_all(b, 190, "'", "\'")
new Nev[32]; get_user_name(id, Nev, 31);
format(c, 190, "%s", Nev);
replace_all(c, 190, "\", "\\")
replace_all(c, 190, "'", "\'")
Len += format(Query[Len], charsmax(Query), "INSERT INTO regi_sql ");
Len += format(Query[Len], charsmax(Query)-Len, "(Felhasznalo, Jelszo,Jatekosnev) VALUES ('%s', '%s', '%s')", a, b, c);
new Data[2]
Data[0] = id;
Data[1] = get_user_userid(id);
SQL_ThreadQuery(SqlTuple,"SqlAccKeszitQwe", Query, Data, 2)
}
public SqlAccKeszitQwe(FailState,Handle:Query,Error[],Errcode,Data[],DataSize) {
if(FailState == TQUERY_CONNECT_FAILED)
{
set_fail_state("[ *HIBA* ] NEM LEHET KAPCSOLODNI AZ ADATBAZISHOZ!")
return
}
else if(FailState == TQUERY_QUERY_FAILED)
{
set_fail_state("[ *HIBA* ] A LEKERDEZES MEGSZAKADT!")
return
}
if(Errcode)
{
log_amx("[ *HIBA* ] PROBLEMA A LEKERDEZESNEL! ( %s )",Error)
return
}
new id = Data[0];
if(Data[1] != get_user_userid(id))
return;
ColorChat(id, NORMAL, "^4[%s] ^1Sikeresen Regisztráltál! Felhasználónév: ^4%s ^1| Jelszó: ^4%s", Prefix, gFelhasznalo[id], gJelszo[id]);
gFolyamatban[id] = 0;
gMenu[id] = 1;
RegFomenu(id);
return;
}
public SqlAccLoad(id) {
new Query[2048], Len = 0;
Len += format(Query[Len], charsmax(Query), "SELECT * FROM regi_sql ");
Len += format(Query[Len], charsmax(Query)-Len, "WHERE Felhasznalo = '%s'", gFelhasznalo[id]);
new Data[2];
Data[0] = id;
Data[1] = get_user_userid(id);
SQL_ThreadQuery(SqlTuple,"SqlAccLoadQwe", Query, Data, 2);
}
public SqlAccLoadQwe(FailState,Handle:Query,Error[],Errcode,Data[],DataSize) {
if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED)
{
log_amx("%s", Error)
return
}
else
{
new id = Data[0];
if (Data[1] != get_user_userid(id))
return ;
new Password[100];
SQL_ReadResult(Query, 2, Password, 99);
if(equal(gJelszo[id], Password))
{
Aktivitas[id] = SQL_ReadResult(Query, 4);
if(Aktivitas[id] > 0) {
RegFomenu(id);
return;
}
gId[id] = SQL_ReadResult(Query, 0);
//pelda ha 1 tombot mentesz tomb[id] = SQL_ReadResult(Query, 3); es igy tovabb
ColorChat(id, NORMAL, "^4[%s] ^3%s ^1Üdv sikeresen bejelentkeztél!", Prefix, gFelhasznalo[id]);
gFolyamatban[id] = 0
gBejelentkezes[id] = true;
}
else {
ColorChat(id, NORMAL, "^4[%s] ^1Hibás jelszó vagy felhasználónév!", Prefix);
gFolyamatban[id] = 0;
RegFomenu(id);
}
}
}
public SqlAccFissites(id) {
new Query[2048], Len = 0;
new c[191];
new Nev[32]; get_user_name(id, Nev, 31);
format(c, 190, "%s", Nev);
replace_all(c, 190, "\", "\\")
replace_all(c, 190, "'", "\'")
Len += format(Query[Len], charsmax(Query), "UPDATE regi_sql SET ");
//Len += format(Query[Len], charsmax(Query), "Tomb = '%d', ", Tomb[id]); ez egy pelda es ennyi
Len += format(Query[Len], charsmax(Query)-Len,"Jatekosnev = '%s', ", c);
Len += format(Query[Len], charsmax(Query)-Len,"Aktivitas = '%d' ", Aktivitas[id]);
Len += format(Query[Len], charsmax(Query)-Len,"WHERE Id = '%d'", gId[id]);
SQL_ThreadQuery(SqlTuple,"SqlUpdateQwe", Query);
}
public SqlUpdateQwe(FailState,Handle:Query,Error[],Errcode,Data[],DataSize) {
if(FailState == TQUERY_CONNECT_FAILED)return set_fail_state("[ *HIBA* ] NEM LEHET KAPCSOLODNI AZ ADATBAZISHOZ!")
else if(FailState == TQUERY_QUERY_FAILED) return set_fail_state("[ *HIBA* ] A LEKERDEZES MEGSZAKADT!")
if(Errcode) return log_amx("[ *HIBA* ] PROBLEMA A LEKERDEZESNEL! ( %s )",Error)
return PLUGIN_CONTINUE
}