Sziasztok. Valaki megoldána azt, hogy a felhasználónevet is megkelljen adni úgyan úgy mint a jelsztó.
Kód: #include <amxmodx> #include <amxmisc> #include <nvault> #include <fakemeta> #include <cstrike> #include <colorchat> #include <fvault> #include <engine>
#define PLUGIN "plugin" #define VERSION "1.0" #define AUTHOR "author"
new const file[] = "regisztraciosadatok"
new jelszo[32], reg_pont[33], belepve[33], beirt_jelszo[32], mentett_pw[33][32], beirt_pw[33][32], ef_jsz[32][33] new users_db_file[256] , reg_vault, probal[33], irt[33]
public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_clcmd("say /reg", "Regisztralas") reg_vault = nvault_open("regrendszer") register_clcmd("REGISZTRACIOS_JELSZO", "reg_jelszo") register_clcmd("BELEPESI_JELSZO", "belepes_jelszo") register_forward(FM_ClientUserInfoChanged, "nevvaltas") }
public Regisztralas(id){ new menu new ks1[121], ks2[121], cim[121] new nev[32] get_user_name(id, nev, 31) if(belepve[id] == 0){ if(reg_pont[id] == 0){ format(cim, charsmax(cim), "\yStátusz: \dNem regisztrált") } else if(reg_pont[id] == 1){ format(cim, charsmax(cim), "\yStátusz: \dRegisztrálva^n\rPróbálkozások: \w%d\d/\w3", probal[id]) } menu = menu_create(cim, "reg_h") 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ó: ^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", "4", 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) } menu_display(id, menu, 0) } } public reg_h(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 ColorChat(id, GREEN, "Sikeres regisztráció! Jelszavad: %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 ColorChat(id, GREEN, "Sikeresen beléptél!") } else if(probal[id] >= 2){ server_cmd("kick #%i ^"Sok próbálkozás! (3/3)",get_user_userid(id)) } else if(!equali(beirt_pw[id], mentett_pw[id])){ probal[id]++ ColorChat(id, RED, "Hibás jelszó!") Regisztralas(id) } } case 4:{ ColorChat(id, RED, "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) { ColorChat(id, RED, "Jelszavadnak minimum ^36 ^1betű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) { ColorChat(id, RED, "^1 Jelszavadnak minimum ^36 ^1betű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) ColorChat(id, RED, "^1 A név váltás tiltott!") return FMRES_HANDLED } else { set_user_info(id, "name", regi_nev) ColorChat(id, RED, "^1 A név váltás tiltott!") return FMRES_HANDLED } } } return FMRES_IGNORED } 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#",reg_pont[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#",reg_pont[id]) nvault_get(reg_vault,vaultkey,vaultdata,255) replace_all(vaultdata, 255, "#", " ") new a3[32] parse(vaultdata, a3, 31) reg_pont[id] = str_to_num(a3) return PLUGIN_CONTINUE; } public client_disconnect(id) { save(id) Saved(id) belepve[id] = 0 irt[id] = 0 probal[id] = 0 beirt_pw[id] = "" } Loaded(id) { new nev[35] get_user_name(id, nev, sizeof(nev)-1) new adatok[20] format(adatok, 19, "%s", mentett_pw[id]); if(fvault_get_data(file, nev, adatok, 19)) { new pw[32] parse(adatok, pw, 31); mentett_pw[id] = pw } else { mentett_pw[id] = "" } } Saved(id) { new nev[35] get_user_name(id, nev, sizeof(nev)-1) new adatok[20] format(adatok, 19, "%s", mentett_pw[id]); fvault_set_data(file, nev, adatok) } public client_putinserver(id) { set_task(5.0, "Regisztralas", id) load(id) Loaded(id) } 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") 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 }
|