#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
#include <dhudmessage>
#include <colorchat>
#include <hamsandwich>
#include <fakemeta>
#include <engine>
#include <sqlx>
#define TASKID 1337
#define PREFIX_MEN " Team"
#define PREFIX_MSG "Információ"
new const SqlN[][] = {"127.0.0.1", "", "", "" };
public plugin_init() {
sql_tuple_create();
register_clcmd("Felhasznalonev", "cmdFelhasznalonev");
register_clcmd("Jelszo", "cmdJelszo");
register_clcmd("say /reg", "cmdChooseteam");
register_menu("Main Menu", MENU_KEY_1|MENU_KEY_2|MENU_KEY_4|MENU_KEY_0, "menu_main");
register_menu("Reg-Log Menu", MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_0, "menu_reglog")
}
new Nyelv[33]
new Handle:g_SqlTuple;
new bool:g_Bejelentkezve[33];
new g_Felhasznalonev[33][100], g_Jelszo[33][100];
new g_RegisztracioVagyBejelentkezes[33], g_Id[33], g_Folyamatban[33];
public i_Reset(id)
{
g_Id[id] = 0;
}
public client_disconnect(id)
{
g_Folyamatban[id] = 0;
if(g_Bejelentkezve[id])
sql_update_account(id, 0);
g_Bejelentkezve[id] = false;
g_Felhasznalonev[id][0] = EOS;
g_Jelszo[id][0] = EOS;
i_Reset(id);
if(task_exists(id))
remove_task(id)
}
public cmdReg(id)
{
if(!g_Bejelentkezve[id])
showMenu_Main(id);
return PLUGIN_HANDLED;
}
public cmdChooseteam(id)
{
if(!g_Bejelentkezve[id])
showMenu_Main(id);
//else
//fomenu(id);
return PLUGIN_HANDLED;
}
showMenu_Main(id)
{
static Menu[1024]; new Len;
Len += formatex(Menu[Len], charsmax(Menu) - Len, "\r \yRegisztrációs Menü^n");
Len += formatex(Menu[Len], charsmax(Menu) - Len, "^n")
Len += formatex(Menu[Len], charsmax(Menu) - Len, "\r1.\w Regisztráció^n")
Len += formatex(Menu[Len], charsmax(Menu) - Len, "\r2.\w Bejelentkezés^n")
Len += formatex(Menu[Len], charsmax(Menu) - Len, "^n^n")
Len += formatex(Menu[Len], charsmax(Menu) - Len, "\r4.\w Jelenlegi Nyelv: \yMagyar \d[HU]^n")
Len += formatex(Menu[Len], charsmax(Menu) - Len, "^n")
Len += formatex(Menu[Len], charsmax(Menu) - Len, "\r0.\w Kilépés")
set_pdata_int(id, 205, 0);
show_menu(id, MENU_KEY_1|MENU_KEY_2|MENU_KEY_4|MENU_KEY_0, Menu, -1, "Main Menu");
return PLUGIN_HANDLED;
}
public menu_main(id, key)
{
if (!is_user_connected(id))
return PLUGIN_HANDLED;
if (g_Bejelentkezve[id])
return PLUGIN_HANDLED;
if(key == 0 || key == 1)
{
switch(key)
{
case 0: g_RegisztracioVagyBejelentkezes[id] = 1;
case 1: g_RegisztracioVagyBejelentkezes[id] = 2;
}
showMenu_RegLog(id);
}
else if(key == 3)
{
new pw[8];
get_user_info(id, "lang", pw, charsmax(pw));
if((contain(pw, "hu") != -1) || Nyelv[id] == 0)
{
set_user_info(id, "lang", "en");
Nyelv[id] = 1;
}
else
{
set_user_info(id, "lang", "hu");
Nyelv[id] = 0;
}
showMenu_Main(id);
}
return PLUGIN_HANDLED;
}
showMenu_RegLog(id)
{
static Menu[512]; new Len;
Len += formatex(Menu[Len], charsmax(Menu) - Len, " \yRegisztrációs Menü^n");
Len += formatex(Menu[Len], charsmax(Menu) - Len, "^n")
Len += formatex(Menu[Len], charsmax(Menu) - Len, "\r1.\w Felhasználónév:\r %s^n", g_Felhasznalonev[id])
Len += formatex(Menu[Len], charsmax(Menu) - Len, "\r2.\w JelszĂł:\r %s^n", g_Jelszo[id])
Len += formatex(Menu[Len], charsmax(Menu) - Len, "^n")
if(g_RegisztracioVagyBejelentkezes[id] == 1 )
Len += formatex(Menu[Len], charsmax(Menu) - Len, "\r3.\y Regisztráció^n")
else
Len += formatex(Menu[Len], charsmax(Menu) - Len, "\r3.\y Bejelentkezés^n")
Len += formatex(Menu[Len], charsmax(Menu) - Len, "^n")
Len += formatex(Menu[Len], charsmax(Menu) - Len, "\r0.\w Vissza")
set_pdata_int(id, 205, 0)
show_menu(id, MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_0, Menu, -1, "Reg-Log Menu")
}
public menu_reglog(id, key)
{
if (!is_user_connected(id))
return PLUGIN_HANDLED;
if (g_Bejelentkezve[id])
return PLUGIN_HANDLED;
switch(key)
{
case 0:
{
client_cmd(id, "messagemode Felhasznalonev");
showMenu_RegLog(id);
}
case 1:
{
client_cmd(id, "messagemode Jelszo");
showMenu_RegLog(id);
}
case 2: cmdRegisztracioBejelentkezes(id);
case 9: showMenu_Main(id);
}
return PLUGIN_HANDLED;
}
public cmdFelhasznalonev(id)
{
if(g_Bejelentkezve[id])
return PLUGIN_HANDLED;
g_Felhasznalonev[id][0] = EOS;
read_args(g_Felhasznalonev[id], 99);
remove_quotes(g_Felhasznalonev[id]);
showMenu_RegLog(id);
return PLUGIN_HANDLED;
}
public cmdJelszo(id)
{
if(g_Bejelentkezve[id])
return PLUGIN_HANDLED;
g_Jelszo[id][0] = EOS;
read_args(g_Jelszo[id], 99);
remove_quotes(g_Jelszo[id]);
showMenu_RegLog(id);
return PLUGIN_HANDLED;
}
public cmdRegisztracioBejelentkezes(id)
{
if(g_Bejelentkezve[id])
return PLUGIN_HANDLED;
if((strlen(g_Jelszo[id]) > 16))
{
if(g_RegisztracioVagyBejelentkezes[id] == 1)
client_printcolor(id, "!g[%s]!n A JelszĂł nem lehet hosszabb, mint 16 Karakter!", PREFIX_MSG);
else
client_printcolor(id, "!g[%s]!n Hibás Felhasználónév, vagy Jelszó!", PREFIX_MSG);
showMenu_RegLog(id);
return PLUGIN_HANDLED;
}
if((strlen(g_Jelszo[id]) < 4))
{
if(g_RegisztracioVagyBejelentkezes[id] == 1)
client_printcolor(id, "!g[%s]!n A Jelszó nem lehet rövidebb, mint 4 Karakter!", PREFIX_MSG);
else
client_printcolor(id, "!g[%s]!n Hibás Felhasználónév, vagy Jelszó!", PREFIX_MSG);
showMenu_RegLog(id);
return PLUGIN_HANDLED;
}
switch(g_RegisztracioVagyBejelentkezes[id])
{
case 1:
{
if(g_Folyamatban[id] == 0)
{
client_printcolor(id, "!g[%s]!n Regisztráció Folyamatban... Kérlek Várj!", PREFIX_MSG);
sql_account_check(id);
showMenu_RegLog(id);
g_Folyamatban[id] = 1;
}
else showMenu_RegLog(id);
}
case 2:
{
if(g_Folyamatban[id] == 0)
{
client_printcolor(id, "!g[%s]!n Bejelentkezés Folyamatban... Kérlek Várj!", PREFIX_MSG);
sql_account_check(id);
showMenu_RegLog(id);
g_Folyamatban[id] = 1;
}
else showMenu_RegLog(id);
}
}
return PLUGIN_CONTINUE;
}
public sql_tuple_create()
{
g_SqlTuple = SQL_MakeDbTuple(SqlN[0], SqlN[1], SqlN[2], SqlN[3]);
sql_active_check();
}
public sql_active_check()
{
new szQuery[2048], len = 0;
len += format(szQuery[len], 2048, "UPDATE rwt_s10_register SET ");
len += format(szQuery[len], 2048-len,"Aktivitas = '0' ");
len += format(szQuery[len], 2048-len,"WHERE Aktivitas = '1'");
SQL_ThreadQuery(g_SqlTuple,"sql_active_check_thread", szQuery);
}
public sql_active_check_thread(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;
}
return;
}
public sql_account_check(id)
{
new szQuery[2048]
new len = 0
new a[191]
format(a, 190, "%s", g_Felhasznalonev[id])
replace_all(a, 190, "\", "\\")
replace_all(a, 190, "'", "\'")
len += format(szQuery[len], 2048, "SELECT * FROM rwt_s10_register ")
len += format(szQuery[len], 2048-len,"WHERE Felhasznalonev = '%s'", a)
new szData[2];
szData[0] = id;
szData[1] = get_user_userid(id);
SQL_ThreadQuery(g_SqlTuple,"sql_account_check_thread", szQuery, szData, 2)
}
public sql_account_check_thread(FailState, Handle:Query, Error[], Errcode, szData[], 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 = szData[0];
if (szData[1] != get_user_userid(id))
return;
new iRowsFound = SQL_NumRows(Query);
if(g_RegisztracioVagyBejelentkezes[id] == 1)
{
if(iRowsFound > 0)
{
client_printcolor(id, "!g[%s]!n Ez a Felhasználónév már Regisztrálva van!", PREFIX_MSG);
g_Folyamatban[id] = 0;
showMenu_RegLog(id);
}
else sql_account_create(id);
}
else if(g_RegisztracioVagyBejelentkezes[id] == 2)
{
if(iRowsFound == 0)
{
client_printcolor(id, "!g[%s]!n Hibás Felhasználónév, vagy Jelszó!", PREFIX_MSG);
g_Folyamatban[id] = 0;
showMenu_RegLog(id);
}
else sql_account_load(id);
}
return;
}
public sql_account_create(id)
{
new Query[2048], Len = 0;
new a[191], b[191], c[191];
format(a, 190, "%s", g_Felhasznalonev[id]);
format(b, 190, "%s", g_Jelszo[id]);
replace_all(a, 190, "\", "\\")
replace_all(a, 190, "'", "\'")
replace_all(b, 190, "\", "\\")
replace_all(b, 190, "'", "\'")
new Name[32]; get_user_name(id, Name, 31);
format(c, 190, "%s", Name);
replace_all(c, 190, "\", "\\")
replace_all(c, 190, "'", "\'")
Len += format(Query[Len], charsmax(Query), "INSERT INTO rwt_s10_register ");
Len += format(Query[Len], charsmax(Query)-Len, "(Felhasznalonev, Jelszo,Jatekosnev) VALUES ('%s', '%s', '%s')", a, b, c);
new Data[2]
Data[0] = id;
Data[1] = get_user_userid(id);
SQL_ThreadQuery(g_SqlTuple,"sql_account_create_thread", Query, Data, 2)
}
public sql_account_create_thread(FailState, Handle:Query, Error[], Errcode, szData[], 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 = szData[0];
if (szData[1] != get_user_userid(id))
return;
client_printcolor(id, "!g[%s]!n Sikeres Regisztráció! Jelentkezz Be!", PREFIX_MSG);
client_printcolor(id, "!g[%s]!n Felhasználóneved:!t %s!n | Jelszavad:!t %s", PREFIX_MSG, g_Felhasznalonev[id], g_Jelszo[id]);
g_Folyamatban[id] = 0;
g_RegisztracioVagyBejelentkezes[id] = 2;
showMenu_RegLog(id);
return;
}
public sql_account_load(id)
{
new szQuery[2048], len = 0;
new a[64]
format(a, 63, "%s", g_Felhasznalonev[id])
replace_all(a, 63, "\", "\\")
replace_all(a, 63, "'", "\'")
len += format(szQuery[len], 2048, "SELECT * FROM rwt_s10_register ")
len += format(szQuery[len], 2048-len,"WHERE Felhasznalonev = '%s'", a)
new szData[2];
szData[0] = id;
szData[1] = get_user_userid(id);
SQL_ThreadQuery(g_SqlTuple,"sql_account_load_thread", szQuery, szData, 2)
}
public sql_account_load_thread(FailState, Handle:Query, Error[], Errcode, szData[], 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 = szData[0];
if (szData[1] != get_user_userid(id))
return ;
new szSqlPassword[64]
SQL_ReadResult(Query, 2, szSqlPassword, 63)
if(equal(g_Jelszo[id], szSqlPassword))
{
if (SQL_ReadResult(Query, 4) > 0)
{
client_printcolor(id, "!g[%s]!n Ebbe a Felhasználófiókba már valaki Bejelentkezett!", PREFIX_MSG);
g_Folyamatban[id] = 0;
showMenu_RegLog(id);
return;
}
g_Id[id] = SQL_ReadResult(Query, 0);
sql_update_account(id, 1);
/*Skin[id] = 1
Nyelv[id] = 0
Korvegi[id] = 1
*/
client_printcolor(id, "!g[%s] !nSzia,!t %s!n (#!g%d!n) Sikeresen Bejelenetkeztél!", PREFIX_MSG, g_Felhasznalonev[id], g_Id[id]);
g_Folyamatban[id] = 0;
g_Bejelentkezve[id] = true;
client_cmd(id, "chooseteam");
//Vilagosodas(id);
//fomenu(id);
}
else
{
client_printcolor(id, "!g[%s]!n Hibás Felhasználónév, vagy Jelszó!", PREFIX_MSG);
g_Folyamatban[id] = 0;
showMenu_RegLog(id);
}
}
public sql_update_account(id, logged)
{
new szQuery[2048], Len;
new client_name_fix[33], client_name[33];
get_user_name(id, client_name, 32);
format(client_name_fix, 32, "%s", client_name);
replace_all(client_name_fix, 32, "\", "\\")
replace_all(client_name_fix, 32, "'", "\'")
Len += format(szQuery[Len], 2048, "UPDATE rwt_s10_register SET ")
Len += format(szQuery[Len], 2048-Len, "Jatekosnev = '%s', ", client_name_fix)
Len += format(szQuery[Len], 2048-Len,"Aktivitas = '%d' ", logged)
Len += format(szQuery[Len], 2048-Len,"WHERE Id = '%d'", g_Id[id])
SQL_ThreadQuery(g_SqlTuple,"sql_update_account_thread", szQuery)
}
public sql_update_account_thread(FailState, Handle:Query, Error[], Errcode, szData[], 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;
}
return;
}
stock client_printcolor(const id, const input[], any:...)
{
new count = 1, players[32]
static msg[191]
vformat(msg, 190, input, 3)
replace_all(msg, 190, "!g", "^4")
replace_all(msg, 190, "!n", "^1")
replace_all(msg, 190, "!t", "^3")
if (id) players[0] = id; else get_players(players, count, "ch")
{
for (new i = 0; i < count; i++)
{
if (is_user_connected(players[i]))
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
write_byte(players[i])
write_string(msg)
message_end()
}
}
}
return PLUGIN_HANDLED
}