#include <amxmodx>
#include <colorchat>
#include <savedata>
#include <engine>
new regisztralva[33], bool:belepve[33], bool:irt[33], bool:irt1[33], regjelszo[32][33], jelszo[32][33]
new const file[] = "regadatok"
public plugin_init()
{
register_plugin("Regisztrációs Rendszer", "1.2", "V!RUSHD")
register_impulse(201, "letiltas")
register_clcmd("REG_JELSZO", "regisztralas")
register_clcmd("LOG_JELSZO", "belepes")
register_clcmd("JELENLEGI_JELSZO", "kerdes")
register_clcmd("UJ_JELSZO", "csere")
set_task(1.0, "idoellenorzes",_,_,_,"b")
}
public letiltas(id) {
if(!belepve[id])
{
fomenu(id)
return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}
public idoellenorzes()
{
new p[32],n;
get_players(p,n,"ch")
for(new i=0;i<n;i++)
{
new id = p[i];
if(!belepve[id])
{
message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0, 0, 0}, id);
write_short(100000);
write_short(100000);
write_short(1<<2);
write_byte(0);
write_byte(0);
write_byte(0);
write_byte(255);
message_end();
}
}
}
public fomenu(id)
{
if(belepve[id] == true)
{
menu(id)
}
else if(regisztralva[id] == 1)
{
logmenu(id)
}
else if(regisztralva[id] == 0)
{
regmenu(id)
}
}
public regmenu(id)
{
new nev[32], fh[121], jsz[121]
get_user_name(id, nev, 31)
new menu = menu_create("\rRegisztrációs Rendszer^n\rStátusz: \dNem Regisztrált", "reg_handler")
format(fh, charsmax(fh), "\rFelhasználónév: \d%s", nev)
menu_additem(menu,fh, "1",0)
if(irt[id] == true)
{
format(jsz, charsmax(jsz), "\rJelszĂł: \d%s^n", regjelszo[id])
menu_additem(menu,jsz, "2",0)
menu_additem(menu, "\yRegisztrálás", "3", 0)
}
else
{
format(jsz, charsmax(jsz), "\rJelszĂł: ^n")
menu_additem(menu,jsz, "2",0)
menu_additem(menu, "\yRegisztrálás", "4", 0)
}
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
menu_setprop(menu, MPROP_EXITNAME, "Kilépés")
menu_display(id, menu, 0)
return PLUGIN_HANDLED
}
public logmenu(id)
{
new nev[32], fh[121], jsz[121]
get_user_name(id, nev, 31)
new menu = menu_create("\rRegisztrációs Rendszer^n\rStátusz: \dRegisztrálva", "log_handler")
format(fh, charsmax(fh), "\rFelhasználónév: \d%s", nev)
menu_additem(menu,fh, "1",0)
if(irt1[id] == true)
{
format(jsz, charsmax(jsz), "\rJelszĂł: \d%s^n", jelszo[id])
menu_additem(menu,jsz, "2",0)
}
else
{
format(jsz, charsmax(jsz), "\rJelszĂł: ^n")
menu_additem(menu,jsz, "2",0)
}
menu_additem(menu, "\yBelépés", "3", 0)
menu_additem(menu, "\wElfelejtettem a \rJelszavam", "4", 0)
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
menu_setprop(menu, MPROP_EXITNAME, "Kilépés")
menu_display(id, menu, 0)
return PLUGIN_HANDLED
}
public menu(id)
{
new menu = menu_create("\rRegisztrációs Rendszer:^nStátusz: \dBejelentkezve", "menu_handler")
menu_additem(menu, "\rKijelentkezés", "1", 0)
menu_additem(menu, "\rJelszó Váltás", "2", 0)
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
menu_setprop(menu, MPROP_EXITNAME, "Kilépés")
menu_display(id, menu, 0)
return PLUGIN_HANDLED
}
public reg_handler(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
new data[9], access, callback, szName[64]
menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback)
new key = str_to_num(data)
switch(key)
{
case 1:
{
regmenu(id)
}
case 2:
{
client_cmd(id, "messagemode REG_JELSZO")
}
case 3:
{
regisztralva[id] = 1
irt[id] = false
ColorChat(id, GREEN, "[Információ] ^1Sikeresen regisztráltál a Szerverre.Jelszavad:^3 %s", regjelszo[id])
}
case 4:
{
regmenu(id)
ColorChat(id, GREEN, "[Információ] ^1Nem adtál meg ^3Jelszót.")
}
}
menu_destroy(menu)
return PLUGIN_HANDLED
}
public log_handler(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
new data[9], access, callback, szName[64]
menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback)
new key = str_to_num(data)
switch(key)
{
case 1:
{
logmenu(id)
}
case 2:
{
client_cmd(id, "messagemode LOG_JELSZO")
}
case 3:
{
if(equali(jelszo[id], regjelszo[id]))
{
irt1[id] = false
belepve[id] = true
ColorChat(id, GREEN, "[Információ] ^1Sikeresen Bejelentkeztél.")
}
else
{
ColorChat(id, GREEN, "[Információ] ^1Hibás ^3Jelszót ^1adtál meg!")
}
}
case 4:
{
ColorChat(id, GREEN, "[Információ] ^1Keres fel minket Skypon: ^3.......")
}
}
menu_destroy(menu)
return PLUGIN_HANDLED
}
public menu_handler(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
new data[9], access, callback, szName[64]
menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback)
new key = str_to_num(data)
switch(key)
{
case 1:
{
belepve[id] = false
jelszo[id] = ""
ColorChat(id, GREEN, "[Információ] ^1Sikeresen ^3Kijelentkeztél.")
}
case 2:
{
client_cmd(id, "messagemode JELENLEGI_JELSZO")
}
}
menu_destroy(menu)
return PLUGIN_HANDLED
}
public regisztralas(id)
{
new adat[32]
new hosszusag = strlen(adat)
read_args(adat, charsmax(adat))
remove_quotes(adat)
if(hosszusag >= 5) {
regjelszo[id] = adat
irt[id] = true
regmenu(id)
}
else {
regjelszo[id] = adat
irt[id] = true
regmenu(id)
}
return PLUGIN_CONTINUE
}
public belepes(id)
{
new adat[32]
read_args(adat, charsmax(adat))
remove_quotes(adat)
if(equal(adat, ""))
return PLUGIN_HANDLED
jelszo[id] = adat
irt1[id] = true
logmenu(id)
return PLUGIN_HANDLED
}
public kerdes(id)
{
new adat[32]
read_args(adat, charsmax(adat))
remove_quotes(adat)
if(equal(adat, ""))
return PLUGIN_HANDLED
if(equali(regjelszo[id], adat))
{
client_cmd(id, "messagemode UJ_JELSZO")
}
else
{
ColorChat(id, GREEN, "[Információ] ^1Rossz ^3Jelszót ^1adtál meg.")
}
return PLUGIN_HANDLED
}
public csere(id)
{
new adat[32]
read_args(adat, charsmax(adat))
remove_quotes(adat)
if(equal(adat, ""))
return PLUGIN_HANDLED
regjelszo[id] = adat
return PLUGIN_HANDLED
}
public client_authorized(id)
{
if( !is_user_hltv(id) && !is_user_bot(id) )
{
Load(id)
}
}
public client_disconnect(id)
{
Save(id)
jelszo[id] = ""
belepve[id] = false
irt[id] = false
irt1[id] = false
}
Load(id)
{
new nev[35]
get_user_name(id, nev, sizeof(nev)-1)
new adatok[20]
format(adatok, 19, "%s %i", regjelszo[id], regisztralva[id]);
if(fvault_get_data(file, nev, adatok, 19))
{
new pw[33], reg[33]
parse(adatok, pw, 32, reg, 32);
regjelszo[id] = pw
regisztralva[id] = str_to_num(reg)
}
else
{
regjelszo[id] = ""
regisztralva[id] = 0;
}
}
Save(id)
{
new nev[35]
get_user_name(id, nev, sizeof(nev)-1)
new adatok[20]
format(adatok, 19, "%s %i", regjelszo[id], regisztralva[id]);
fvault_set_data(file, nev, adatok)
}