#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <cstrike>
#include <fun>
#include <nvault>
#include <fakemeta>
#include <fakemeta_util>
#include <hamsandwich>
#include <csx>
#include <dhudmessage>
#include <geoip>
#define PLUGIN "DerO Reg Rendszer"
#define VERSION "2.0"
#define AUTHOR "DeRoiD"
// Regisztráció
new jelszo[32], reg_pont[33], belepve[33], beirt_jelszo[32], mentett_pw[33][32], beirt_pw[33][32], olvas[33], bool:kijelentkezve[33], ef_jsz[32][33]
new users_db_file[256] , reg_vault, probal[33], irt[33]
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
reg_vault = nvault_open("Regisztraciosmenu")
check_db()
register_clcmd("REGISZTRACIOS_JELSZO", "reg_jelszo")
register_clcmd("BELEPESI_JELSZO", "belepes_jelszo")
// Add your code here...
}
public Regisztralas(id) {
new menu
new ks1[121], ks2[121], cim[121]
new nev[32]
get_user_name(id, nev, 31)
if(olvas[id] == 0){
format(cim, charsmax(cim),"\rRegisztrációs Rendszer^n \rStátusz : \dNem regisztrált")
menu = menu_create(cim,"Regisztralas_handler")
format(ks1, charsmax(ks1),"\rSzabályzat^n")
menu_additem(menu,ks1,"5",0)
menu_additem(menu,"\yElfogadom a szabályzatot!","6",0)
menu_additem(menu,"\dNem fogadom el!","7",0)
menu_display(id,menu,0)
}
if(belepve[id] == 0 && olvas[id] == 1){
if(reg_pont[id] == 0){
format(cim, charsmax(cim),"\rRegisztrációs Rendszer^nStátusz: \dNem regisztrált")
}
else if(reg_pont[id] == 1 && kijelentkezve[id] == false){
format(cim, charsmax(cim),"\rRegisztrációs Rendszer^nStátusz: \dRegisztrálva^n\rPróbálkozások : \d%d/3", probal[id])
}
else if(reg_pont[id] == 1 && kijelentkezve[id] == true){
format(cim, charsmax(cim),"Regisztrációs Rendszer^nStátusz: \dKijelentkezve^n\rPróbálkozások : \d%d/3", probal[id])
}
menu = menu_create(cim,"Regisztralas_handler")
format(ks2, charsmax(ks2),"\rFelhasználónév:\d %s", nev)
if(reg_pont[id] == 0){
if(irt[id] == 1){
format(ks1, charsmax(ks1),"\rJelszó: \d%s^n", mentett_pw[id])
}
else if(irt[id] == 0){
format(ks1, charsmax(ks1),"\rJelszó: \d^n")
}
}
else if(reg_pont[id] == 1){
format(ks1, charsmax(ks1),"\rJelszó: \d%s^n", beirt_pw[id])
}
menu_additem(menu,ks2,"0",0)
menu_additem(menu,ks1,"1",0)
if(reg_pont[id] == 0){
if(irt[id] == 0){
menu_additem(menu,"\dRegisztrálok","18",0)
}
else if(irt[id] == 1){
menu_additem(menu,"Regisztrálok","2",0)
}
}
else if(reg_pont[id] == 1){
menu_additem(menu,"Belépek","3",0)
}
if(reg_pont[id] == 1){
menu_additem(menu,"\rElfelejtettem a jelszavam!","8",0)
}
menu_display(id,menu,0)
}
else if(belepve[id] == 1 && olvas[id] == 1)
{
format(cim, charsmax(cim),"\rRegisztrációs Rendszer^nStátusz: \dBejelentkezve")
menu = menu_create(cim,"Regisztralas_handler")
format(ks1, charsmax(ks1),"\rSzabályzat^n")
menu_additem(menu,ks1,"5",0)
menu_additem(menu,"\yKijelentkezés","4",0)
menu_display(id,menu,0)
}
}
public Regisztralas_handler(id, menu, item){
if( item == MENU_EXIT )
{
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new data[9], szName[64], name[32]
get_user_name(id, name, 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 0: Regisztralas(id)
case 1:{
if(reg_pont[id] == 0){
client_cmd(id, "messagemode REGISZTRACIOS_JELSZO")
}
else if(reg_pont[id] == 1){
client_cmd(id, "messagemode BELEPESI_JELSZO") }
}
case 2:{
ef_jsz[id] = jelszo
reg_pont[id] = 1
print_color(id, "!g[Információ]!y Sikeres regisztráció! Jelszavad:!t %s", mentett_pw[id])
Regisztralas(id)
client_cmd(id,"setinfo _jelszo ^"%s^"",ef_jsz[id])
regisztralas_mentese(id)
}
case 3:{
if(equali(beirt_pw[id], mentett_pw[id])){
belepve[id] = 1
print_color(id, "!g[Információ]!y Sikeresen beléptél!")
set_task(0.0,"motor", id)
if(kijelentkezve[id]){
kijelentkezve[id] = false
}
}
else if(probal[id] >= 2)
{
server_cmd("kick #%i ^"Rossz jelszó!",get_user_userid(id))
}
else if(!equali(beirt_pw[id], mentett_pw[id]))
{
probal[id]++
print_color(id, "!g[Információ]!y Rossz jelszó!")
}
}
case 4:{
beirt_pw[id] = ""
belepve[id] = 0
kijelentkezve[id] = true
print_color(id, "!g[Információ]!y Sikeresen kijelentkeztél!")
}
case 5: {
show_motd(id,"addons/amxmodx/configs/info/szabalyzat.txt","Szabályzat")
}
case 6: {
olvas[id] = 1
print_color(id, "!g[Információ]!y Elfogadtad a szabályokat !!!")
Regisztralas(id)
}
case 7: {
print_color(id, "!g[Információ]!y Szabály elfogadása nélkül nem regisztrálhatsz!")
}
case 8: {
print_color(id, "!g[Információ]!y TeamSpeak3:!t prokillers.hu:9901")
}
case 18:{
print_color(id, "!g[Információ]!y Nem írtál be jelszót!")
Regisztralas(id)
}
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}
public belepes_jelszo(id)
{
read_args(beirt_jelszo, charsmax(beirt_jelszo))
remove_quotes(beirt_jelszo)
new hossz = strlen(beirt_jelszo)
if(equal(beirt_jelszo, ""))
return PLUGIN_HANDLED
if(hossz < 6)
{
print_color(id, "!g[Információ]!y Jelszavadnak minimum 6 betűnek kell lennie!")
client_cmd(id, "messagemode BELEPESI_JELSZO")
}
else
{
beirt_pw[id] = beirt_jelszo
Regisztralas(id)
}
return PLUGIN_CONTINUE
}
public reg_jelszo(id)
{
if(reg_pont[id] == 0){
read_args(jelszo, charsmax(jelszo))
remove_quotes(jelszo)
new hossz = strlen(jelszo)
if(equal(jelszo, ""))
return PLUGIN_HANDLED
if(hossz < 6)
{
print_color(id, "!g[Információ]!y Jelszavadnak minimum 6 betűnek kell lennie!")
client_cmd(id, "messagemode REGISZTRACIOS_JELSZO")
}
else
{
irt[id] = 1
mentett_pw[id] = jelszo
ef_jsz[id] = jelszo
Regisztralas(id)
}
}
return PLUGIN_CONTINUE
}
public regisztralas_mentese(id)
{
new Buffer[256]
new adate[128], name[32]
get_time("%x", adate, sizeof adate - 1);
get_user_name(id, name, 31)
format(Buffer, sizeof Buffer - 1, "^"%s^" ^"%s^" ^n^n^n^n", name, mentett_pw[id]);
new file = fopen(users_db_file, "at+");
fprintf(file, Buffer);
fclose(file);
return 1;
}
public nevvaltas(id)
{
if(!is_user_connected(id))
return FMRES_IGNORED
new regi_nev[32], uj_nev[32], nev[32]
get_user_name(id, nev, 31)
pev(id, pev_netname, regi_nev, charsmax(regi_nev))
if(regi_nev[0])
{
get_user_info(id, "name", uj_nev, charsmax(uj_nev))
if(!equal(regi_nev, uj_nev))
{
if(belepve[id] == 1)
{
set_user_info(id, "name", regi_nev)
print_color(id, "!g[Információ]!y A név váltás tiltott!")
return FMRES_HANDLED
}
else
{
set_user_info(id, "name", regi_nev)
print_color(id, "!g[Információ]!y A név váltás tiltott!")
return FMRES_HANDLED
}
}
}
return FMRES_IGNORED
}
public check_db()
{
new datadir[64];
get_datadir(datadir, 63);
format(users_db_file, sizeof users_db_file - 1, "%s/user_db.ini", datadir);
new file_pointer = fopen(users_db_file, "r");
if(!file_pointer)
{
server_print("NEM TALALHATO A FAJL");
write_file(users_db_file, "");
}
fclose(file_pointer);
}
stock check_user(id)
{
new szFile = fopen(users_db_file, "rt");
new Buffer[256], file_id[32], file_password[32], name[32]
get_user_name(id, name, 31)
while(!feof(szFile))
{
fgets(szFile, Buffer, 255);
if((strlen(Buffer) < 2) || Buffer[0] == ';')
continue;
parse(Buffer, file_id, 31, file_password, 31);
if(equal(file_id, name))
{
mentett_pw[id] = file_password
break;
}
}
fclose(szFile);
return 0;
}
public client_putinserver(id)
{
belepve[id] = 0
irt[id] = 0
probal[id] = 0
beirt_pw[id] = ""
check_user(id)
set_task(3.0,"Regisztralas",id)
}
public save(id)
{
new vaultkey[64],vaultdata[256], name[32]
get_user_name(id, name, 31)
format(vaultkey,63,"%s-REG", name)
format(vaultdata,255,"%i#%i",reg_pont[id], olvas[id])
nvault_set(reg_vault,vaultkey,vaultdata)
return PLUGIN_CONTINUE
}
public load(id)
{
new vaultkey[64],vaultdata[256], name[32]
get_user_name(id, name, 31)
format(vaultkey,63,"%s-REG", name)
format(vaultdata,255,"%i#%i",reg_pont[id], olvas[id])
nvault_get(reg_vault,vaultkey,vaultdata,255)
replace_all(vaultdata, 255, "#", " ")
new a3[32], a4[32]
parse(vaultdata, a3, 31, a4, 31)
reg_pont[id] = str_to_num(a3)
olvas[id] = str_to_num(a4)
return PLUGIN_CONTINUE;
}
stock print_color(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, "!y", "^1")
replace_all(msg, 190, "!t", "^3")
replace_all(msg, 190, "á", "á")
replace_all(msg, 190, "é", "Ă©")
replace_all(msg, 190, "í", "Ă")
replace_all(msg, 190, "ó", "Ăł")
replace_all(msg, 190, "ö", "ö")
replace_all(msg, 190, "ő", "Ĺ‘")
replace_all(msg, 190, "ú", "Ăş")
replace_all(msg, 190, "ü", "ĂĽ")
replace_all(msg, 190, "ű", "ű")
replace_all(msg, 190, "Á", "Ă")
replace_all(msg, 190, "É", "É")
replace_all(msg, 190, "Í", "ĂŤ")
replace_all(msg, 190, "Ó", "Ă“")
replace_all(msg, 190, "Ö", "Ă–")
replace_all(msg, 190, "Ő", "Ĺ")
replace_all(msg, 190, "Ú", "Ăš")
replace_all(msg, 190, "Ü", "Ăś")
replace_all(msg, 190, "Ű", "Ĺ°")
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
}