- #include <amxmodx> 
- #include <amxmisc> 
-   
- new const PLUGIN[] = "Regisztracios Menu"; 
- new const VERSION[] = "1.0"; 
- new const AUTHOR[] = "Star"; 
-   
- new const Prefix[] = "[Regi]"; 
-   
- new Username[33][32], Password[33][32]; 
- new bool: LoggedIn[33]; 
- new Menu[33]; 
-   
- enum _:info 
- { 
-     uname[32], 
-     pass[32] 
- }; 
-   
- new Array:regusers, data[info]; 
-   
- public plugin_init() { 
-     register_plugin(PLUGIN, VERSION, AUTHOR); 
-      
-     regusers = ArrayCreate(info); 
-      
-     LoadUsers(); 
-      
-     register_clcmd("say /reg", "Regsztracios_Menu"); 
-      
-     register_clcmd("Felhasznalo", "GetUsername"); 
-     register_clcmd("Jelszo", "GetPassword"); 
- } 
-   
- public client_putinserver(id) 
- { 
-     LoggedIn[id] = false; 
-     Username[id] = ""; 
-     Password[id] = ""; 
- } 
-   
- public Regisztracio_Menu(id) 
- { 
-     new menu = menu_create("\wRegsztracios Menu", "RegFo_h"); 
-      
-     if(!LoggedIn[id]) 
-     { 
-         menu_additem(menu, "Regisztracio", "1", 0); 
-         menu_additem(menu, "Bejelentkezes", "2", 0); 
-     } 
-     else menu_additem(menu, "Kijeletkezes", "1", 0); 
-      
-     menu_display(id, menu, 0); 
- } 
- public RegFo_h(id, menu, item) 
- { 
-     if(item == MENU_EXIT) 
-     { 
-         menu_destroy(menu); 
-         return; 
-     } 
-      
-     if(LoggedIn[id]) 
-     { 
-         LoggedIn[id] = false; 
-         client_print(id, print_chat, "%s Sikeresen kijelentkeztel.", Prefix); 
-         return; 
-     } 
-      
-     Menu[id] = item; 
-     Reg_Menu(id); 
- } 
- public Reg_Menu(id) 
- { 
-     new cim[121]; 
-     new menu = menu_create(Menu[id] == 1 ? "\wRegisztracio" : "\wBejelentkezes", "Reg_h"); 
-      
-     formatex(cim, charsmax(cim), "Felhasznalonev: \r%s", Username[id]); 
-     menu_additem(menu, cim, "1", 0); 
-      
-     formatex(cim, charsmax(cim), "Jelszo: \r%s", Password[id]); 
-     menu_additem(menu, cim, "2", 0); 
-      
-     menu_additem(menu, Menu[id] == 1 ? "Regisztralas!" : "Bejelentkezes!", "3", 0); 
- } 
- public Reg_h(id, menu, item) 
- { 
-     if(item == MENU_EXIT) 
-     { 
-         menu_destroy(menu); 
-         return; 
-     } 
-      
-     switch(item) 
-     { 
-         case 1:client_cmd(id, "messagemode Felhasznalo"); 
-         case 2:client_cmd(id, "messagemode Jelszo"); 
-         case 3: 
-         { 
-             new User = CheckUser(Username[id]); 
-             if(Menu[id] == 1) 
-             { 
-                 if(User == -1) 
-                 { 
-                     client_print(id, print_chat, "%s Sikeresen regisztraltal, most mar bejelentkezhetsz! Felhasznalo: %s | Jelszo: %s", Prefix, Username[id], Password[id]); 
-                     SaveUser(Username[id], Password[id]) 
-                     Menu[id] = 2; 
-                     Reg_Menu(id); 
-                 } 
-                 else 
-                 { 
-                     client_print(id, print_chat, "%s Ez a felhasznalo mar letezik!", Prefix); 
-                     Reg_Menu(id); 
-                 } 
-             } 
-             else if(Menu[id] == 2) 
-             { 
-                 if(User > -1) 
-                 { 
-                     ArrayGetArray(regusers, User, data); 
-                     if(equal(data[pass], Password[id])) 
-                     { 
-                         client_print(id, print_chat, "%s Sikeresen bejelentkeztel.", Prefix); 
-                         LoggedIn[id] = true; 
-                     } 
-                     else 
-                     { 
-                         client_print(id, print_chat, "%s Hibas jelszo, probald ujra.", Prefix); 
-                         Reg_Menu(id); 
-                     } 
-                 } 
-                 else client_print(id, print_chat, "%s %s felhasznalo nics regisztralva a szerveren!", Prefix, Username[id]); 
-             } 
-         } 
-     } 
- } 
-   
- public GetUsername(id) { 
-     new u[32]; 
-     read_args(u, charsmax(u)); 
-     remove_quotes(u); 
-     if(strlen(u) < 6) 
-     { 
-         client_print(id, print_chat, "%s A felhasznalonevednek hosszabb kell hogy legyen mint 6 karakter!", Prefix); 
-         client_cmd(id, "messagemode Felhasznalo"); 
-     } 
-     else copy(Username[id], charsmax(Username[]), u); 
-      
-     Reg_Menu(id); 
- } 
-   
- public GetPassword(id) { 
-     new p[32]; 
-     read_args(p, charsmax(p)); 
-     remove_quotes(p); 
-     if(strlen(p) < 6) 
-     { 
-         client_print(id, print_chat, "%s A jelszavad hosszabb kell hogy legyen mint 6 karakter!", Prefix); 
-         client_cmd(id, "messagemode Jelszo"); 
-     } 
-     else copy(Password[id], charsmax(Password[]), p); 
-      
-     Reg_Menu(id); 
- } 
-   
- public CheckUser(const sName[]) 
- { 
-     for(new i = 0; i < ArraySize(regusers); i++) 
-     { 
-         ArrayGetArray(regusers, i, data); 
-      
-         if(equal(sName, data[uname])) return i; 
-     } 
-     return -1; 
- } 
-   
- public LoadUsers() 
- { 
-     new file[200]; 
-   
-     get_configsdir(file, 199); 
-     format(file, 199, "%s/regusers.ini", file); 
-      
-     if (!file_exists(file)) 
-         return PLUGIN_HANDLED; 
-      
-     new pFile  = fopen(file, "rt"); 
-      
-     if(pFile) 
-     { 
-         new Line[192]; 
-          
-         new s[2][32]; 
-         while(!feof(pFile)) 
-         { 
-             fgets(pFile, Line, 191); 
-             if(Line[0] == ';' || strlen(Line) < 5) 
-                 continue; 
-   
-             parse(Line, s[0], 31, s[1], 31); 
-              
-             copy(data[uname], charsmax(data[uname]), s[0]); 
-             copy(data[pass], charsmax(data[pass]), s[1]); 
-              
-             ArrayPushArray(regusers, data); 
-         } 
-         fclose(pFile); 
-     } 
-     return 0; 
- } 
-   
- public SaveUser(const sName[], const sPass[]) 
- { 
-     new file[200]; 
-      
-     copy(data[uname], charsmax(data[uname]), sName); 
-     copy(data[pass], charsmax(data[pass]), sPass); 
-      
-     ArrayPushArray(regusers, data); 
-   
-     get_configsdir(file, 199); 
-     format(file, 199, "%s/regusers.ini", file); 
-      
-     new pFile  = fopen(file, "at"); 
-      
-     if(pFile) 
-     { 
-         new line[70]; 
-          
-         formatex(line, 69, "^"%s^" ^"%s^"", sName, sPass); 
-          
-         fputs(pFile, line); 
-         fclose(pFile); 
-     } 
-     return PLUGIN_HANDLED; 
- }