hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.04.24. 02:15



Jelenlévő felhasználók

Jelenleg 125 felhasználó van jelen :: 0 regisztrált, 0 rejtett és 125 vendég

A legtöbb felhasználó (1565 fő) 2020.11.21. 11:26-kor tartózkodott itt.

Regisztrált felhasználók: nincs regisztrált felhasználó az elmúlt 5 percben aktív felhasználók alapján

Utoljára aktív
Ahhoz hogy lásd ki volt utoljára aktív, be kell jelentkezned.



Az oldal teljeskörű
használatához regisztrálj.

Regisztráció

Kereső


Új téma nyitása  Hozzászólás a témához  [ 7 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: Regisztráció Rendszer SQL
HozzászólásElküldve: 2018.06.01. 10:37 
Offline
Tud valamit

Csatlakozott: 2016.12.25. 12:43
Hozzászólások: 129
Megköszönt másnak: 35 alkalommal
Megköszönték neki: 4 alkalommal
Helló!

Valaki bele írna egy sql mentést?
  1. #include <amxmodx>
  2. #include <amxmisc>
  3.  
  4. #define PLUGIN "Regisztrációs Rendszer"
  5. #define VERSION "1.0"
  6. #define AUTHOR "Pista"
  7.  
  8. #define MAXPLAYERS 33
  9.  
  10. new const Prefix[] = "Információ"
  11.  
  12. new jFelhasznalo[MAXPLAYERS][32], jJelszo[MAXPLAYERS][32], jTalalt[MAXPLAYERS], jFolyamatban[MAXPLAYERS], jRegMod[MAXPLAYERS], jFelhasznaloBetolt[MAXPLAYERS]
  13. new bool:jBejelentkezve[MAXPLAYERS]
  14.  
  15. public plugin_init()
  16. {
  17.     register_plugin(PLUGIN, VERSION, AUTHOR)
  18.     register_clcmd("say /reg", "cmd_RegMenu")
  19.     register_concmd("FELHASZNALONEV", "cmdFelhasznalo")
  20.     register_concmd("JELSZO", "cmdJelszo")
  21. }
  22. public cmd_RegMenu(id)
  23. {
  24.     new String[128]
  25.     formatex(String, charsmax(String), "RegisztráciĂłs Rendszer")
  26.     new Menu = menu_create(String, "cmd_RegMenu_h")
  27.    
  28.     if(strlen(jFelhasznalo[id]) > 0)
  29.     {
  30.         formatex(String, charsmax(String), "\wFelhasználĂłnĂ©v:\y %s", jFelhasznalo[id])
  31.         menu_additem(Menu, String, "1")
  32.        
  33.         formatex(String, charsmax(String), "\wJelszĂł:\y %s^n", jJelszo[id])
  34.         menu_additem(Menu, String, "2")
  35.     }
  36.     else
  37.     {
  38.         formatex(String, charsmax(String), "\wFelhasználĂłnĂ©v:\y %s^n\r2.\w JelszĂł:\y", jFelhasznalo[id])
  39.         menu_additem(Menu, String, "1")
  40.     }
  41.     if(strlen(jFelhasznalo[id]) > 0 && strlen(jJelszo[id]) > 0)
  42.     {
  43.         if(jTalalt[id])
  44.         {
  45.             formatex(String, charsmax(String), "\wBejelentkezĂ©s")
  46.             menu_additem(Menu, String, "3")
  47.         }
  48.         else
  49.         {
  50.             formatex(String, charsmax(String), "\wRegisztráciĂł")
  51.             menu_additem(Menu, String, "4")
  52.         }
  53.     }
  54.     menu_display(id, Menu)
  55. }
  56. public cmd_RegMenu_h(id, Menu, Item)
  57. {
  58.     if(Item == MENU_EXIT)
  59.     {
  60.         menu_destroy(Menu)
  61.         return PLUGIN_HANDLED
  62.     }
  63.     new Data[32], szName[64]
  64.     new access, callback
  65.     menu_item_getinfo(Menu, Item, access, Data, charsmax(Data), szName, charsmax(szName), callback)
  66.     new Key = str_to_num(Data)
  67.    
  68.     switch(Key)
  69.     {
  70.         case 1:
  71.         {
  72.             client_cmd(id, "messagemode FELHASZNALONEV")
  73.             cmd_RegMenu(id)
  74.         }
  75.         case 2:
  76.         {
  77.             client_cmd(id, "messagemode JELSZO")
  78.             cmd_RegMenu(id)
  79.         }
  80.         case 3:
  81.         {
  82.             if(jFolyamatban[id] == 0)
  83.             {
  84.                 jFolyamatban[id] = 1
  85.                 jRegMod[id] = 1
  86.             }
  87.             else
  88.             {
  89.                 cmd_RegMenu(id)
  90.             }
  91.         }
  92.         case 4:
  93.         {
  94.             if(jFolyamatban[id] == 0)
  95.             {
  96.                 jFolyamatban[id] = 1
  97.                 jRegMod[id] = 2
  98.             }
  99.             else
  100.             {
  101.                 cmd_RegMenu(id)
  102.             }
  103.         }
  104.     }
  105.     menu_destroy(Menu)
  106.     return PLUGIN_HANDLED
  107. }
  108. public cmdFelhasznalo(id)
  109. {
  110.     if(jBejelentkezve[id])
  111.     {
  112.         return PLUGIN_HANDLED
  113.     }
  114.    
  115.     if(jFelhasznaloBetolt[id] == 1)
  116.     {
  117.         cmd_RegMenu(id)
  118.         return PLUGIN_HANDLED
  119.     }
  120.    
  121.     new BeirtAdat[32], Hossz
  122.     BeirtAdat[0] = EOS
  123.     read_args(BeirtAdat, 31)
  124.     remove_quotes(BeirtAdat)
  125.    
  126.     Hossz = strlen(BeirtAdat)
  127.    
  128.     if(Hossz < 4)
  129.     {
  130.         print_color(id, "!g[%s]!y Ez nem lehet rövidebb mint 4 karakter!", Prefix)
  131.         return PLUGIN_HANDLED
  132.     }
  133.    
  134.     if(Hossz > 19)
  135.     {
  136.         print_color(id, "!g[%s]!y Ez nem lehet hosszabb mint 19 karakter!", Prefix)
  137.         return PLUGIN_HANDLED
  138.     }
  139.     copy(jFelhasznalo[id], 31, BeirtAdat)
  140.     cmd_RegMenu(id)
  141.     return PLUGIN_HANDLED
  142. }
  143. public cmdJelszo(id)
  144. {
  145.     if(jBejelentkezve[id] || strlen(jFelhasznalo[id]) == 0)
  146.     {
  147.         return PLUGIN_HANDLED
  148.     }
  149.    
  150.     new BeirtAdat[32], Hossz
  151.     BeirtAdat[0] = EOS
  152.     read_args(BeirtAdat, 31)
  153.     remove_quotes(BeirtAdat)
  154.    
  155.     Hossz = strlen(BeirtAdat)
  156.    
  157.     if(Hossz < 4)
  158.     {
  159.         print_color(id, "!g[%s]!y Ez nem lehet rövidebb mint 4 karakter!", Prefix)
  160.         return PLUGIN_HANDLED
  161.     }
  162.    
  163.     if(Hossz > 19)
  164.     {
  165.         print_color(id, "!g[%s]!y Ez nem lehet hosszabb mint 19 karakter!", Prefix)
  166.         return PLUGIN_HANDLED
  167.     }
  168.    
  169.     copy(jJelszo[id], 31, BeirtAdat)
  170.     cmd_RegMenu(id)
  171.     return PLUGIN_HANDLED
  172. }
  173. stock print_color(const id, const input[], any:...)
  174. {
  175.     new count = 1, players[32]
  176.     static msg[191]
  177.     vformat(msg, 190, input, 3)
  178.    
  179.     replace_all(msg, 190, "!g", "^4")
  180.     replace_all(msg, 190, "!y", "^1")
  181.     replace_all(msg, 190, "!t", "^3")
  182.     replace_all(msg, 190, "á", "á")
  183.     replace_all(msg, 190, "é", "Ă©")
  184.     replace_all(msg, 190, "í", "Ă­")
  185.     replace_all(msg, 190, "ó", "Ăł")
  186.     replace_all(msg, 190, "ö", "ö")
  187.     replace_all(msg, 190, "ő", "Ĺ‘")
  188.     replace_all(msg, 190, "ú", "Ăş")
  189.     replace_all(msg, 190, "ü", "ĂĽ")
  190.     replace_all(msg, 190, "ű", "ű")
  191.     replace_all(msg, 190, "Á", "Á")
  192.     replace_all(msg, 190, "É", "É")
  193.     replace_all(msg, 190, "Í", "ĂŤ")
  194.     replace_all(msg, 190, "Ó", "Ă“")
  195.     replace_all(msg, 190, "Ö", "Ă–")
  196.     replace_all(msg, 190, "Ő", "Ő")
  197.     replace_all(msg, 190, "Ú", "Ăš")
  198.     replace_all(msg, 190, "Ü", "Ăś")
  199.     replace_all(msg, 190, "Ű", "Ĺ°")      
  200.      
  201.     if (id) players[0] = id; else get_players(players, count, "ch")
  202.     {
  203.         for (new i = 0; i < count; i++)
  204.         {
  205.             if (is_user_connected(players[i]))
  206.             {
  207.                 message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
  208.                 write_byte(players[i])
  209.                 write_string(msg)
  210.                 message_end()
  211.             }
  212.                     }
  213.     }
  214.     return PLUGIN_HANDLED
  215. }


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Regisztráció Rendszer SQL
HozzászólásElküldve: 2018.06.01. 11:28 
Offline
Tud valamit
Avatar

Csatlakozott: 2017.12.04. 09:15
Hozzászólások: 116
Megköszönt másnak: 58 alkalommal
Megköszönték neki: 2 alkalommal
Szia, tessék.:)
  1. #include <amxmodx>
  2. #include <fakemeta>
  3. #include <sqlx>
  4.  
  5. #define PLUGIN "Registration System"
  6. #define VERSION "1.3"
  7. #define AUTHOR "mforce"
  8.  
  9.  
  10. new const PREFIX[] = "RegSystem"
  11.    
  12. new const SQL_INFO[][] = {
  13.     "127.0.0.1",    // HOST
  14.     "username",     // USERNAME
  15.     "password",     // PASSWORD
  16.     "database"      // DATABASE
  17. }
  18.  
  19. enum _:reginfo
  20. {
  21.     usernamechk[32],
  22.     passwordchk[32]
  23. }
  24.  
  25. new Handle:g_SqlTuple;
  26. new Array:reglist
  27. new loaded, data[reginfo];
  28. new username[33][32], password[33][32], writepass[33][32], bool:loggedin[33], bool:registered[33];
  29.  
  30. public plugin_init() {
  31.     register_plugin(PLUGIN, VERSION, AUTHOR)
  32.    
  33.     register_clcmd("say /reg", "reg_menu")
  34.     register_clcmd("TYPE_PASSWORD", "Type_password")
  35.     register_clcmd("NEW_PASSWORD", "New_password")
  36.     register_cvar("reg_system", AUTHOR, FCVAR_SERVER | FCVAR_SPONLY);
  37.     register_dictionary("reg_system.txt");
  38.     reglist = ArrayCreate(reginfo)
  39.     register_forward(FM_ClientUserInfoChanged, "ClientUserInfoChanged")
  40.     set_task(60.0, "regcheck", .flags = "b");
  41. }
  42.  
  43. public regcheck() {
  44.     new players[32], num;
  45.     get_players(players, num, "ch")
  46.     for(new i = 0; i < num; i++) {
  47.         new tempid = players[i]
  48.         if(!loggedin[tempid]) {
  49.             ChatColor(tempid, "^4[%s]^1 %L ^3/reg", PREFIX, LANG_SERVER, "HELP", LANG_SERVER, registered[tempid] ? "FOR_LOGIN":"FOR_REGISTER");
  50.         }
  51.     }
  52. }
  53.  
  54. public client_putinserver(id) {
  55.     if(!is_user_bot(id) && !is_user_hltv(id)) {
  56.         get_user_name(id, username[id], charsmax(username[]));
  57.         for(new i = 0; i < loaded; i++) {
  58.             ArrayGetArray(reglist, i, data)
  59.        
  60.             if(equal(username[id], data[usernamechk])) {
  61.                 copy(password[id], charsmax(password[]), data[passwordchk])
  62.                 registered[id] = true;
  63.                 set_task(10.0, "reg_menu", id);
  64.             }
  65.         }
  66.     }
  67. }
  68.  
  69. public client_disconnect(id) {
  70.     loggedin[id] = false;
  71.     registered[id] = false;
  72.     username[id] = "";
  73.     password[id] = "";
  74.     writepass[id] = "";
  75.     if(task_exists(id)) remove_task(id);
  76. }
  77.  
  78. public reg_menu(id) {
  79.     new temp[128], loggedinmsg[32], registeredmsg[32], logoffmsg[32], notreggedname[32], exitname[32];
  80.     formatex(notreggedname, charsmax(notreggedname), "%L", LANG_SERVER, "NOTREGGED");
  81.     formatex(loggedinmsg, charsmax(loggedinmsg), "%L", LANG_SERVER, loggedin[id] ? "LOGGED_IN":"REGISTERED");
  82.     formatex(temp, charsmax(temp), "\r[\y%s\r] %L", PREFIX, LANG_SERVER, "REG_MENU_TITLE", AUTHOR, registered[id] ? loggedinmsg:notreggedname);
  83.     new menu = menu_create(temp, "reg_menu_h" )
  84.  
  85.     formatex(temp, charsmax(temp), "%L", LANG_SERVER, "USERNAME", username[id])
  86.     menu_additem(menu,temp, "0",0)
  87.     formatex(temp, charsmax(temp), "%L", LANG_SERVER, "PASSWORD", writepass[id])
  88.     menu_additem(menu,temp, "1",0)
  89.     formatex(registeredmsg, charsmax(registeredmsg), "%L", LANG_SERVER, registered[id] ? "LOGIN":"REGISTER")
  90.     formatex(logoffmsg, charsmax(logoffmsg), "%L", LANG_SERVER, "LOGOFF")
  91.     formatex(temp, charsmax(temp), "%s^n", loggedin[id] ? logoffmsg:registeredmsg)
  92.     menu_additem(menu,temp, "2",0)
  93.     if(loggedin[id]) {
  94.         formatex(temp, charsmax(temp), "%L", LANG_SERVER, "CHGPASS")
  95.         menu_additem(menu,temp, "3",0)
  96.     }
  97.     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
  98.     formatex(exitname, charsmax(exitname), "%L", LANG_SERVER, "EXIT")
  99.     menu_setprop(menu, MPROP_EXITNAME, exitname);
  100.     menu_display(id, menu, 0)
  101.     return PLUGIN_HANDLED;
  102. }
  103.  
  104. public reg_menu_h(id, menu, item) {
  105.     if(item == MENU_EXIT) {
  106.         menu_destroy(menu);
  107.         return PLUGIN_HANDLED;
  108.     }
  109.     new command[6], name[64], access, callback;
  110.     menu_item_getinfo(menu, item, access, command, sizeof command - 1, name, sizeof name - 1, callback);
  111.  
  112.     switch(item)
  113.     {
  114.         case 0: {
  115.             reg_menu(id)
  116.         }
  117.         case 1: {
  118.             if(!loggedin[id]) {
  119.                 client_cmd(id, "messagemode TYPE_PASSWORD")
  120.             }
  121.             else reg_menu(id)
  122.         }
  123.         case 2: {
  124.             if(registered[id]) {
  125.                 if(!loggedin[id]) {
  126.                     if(strlen(password[id]) >= 6 && equal(writepass[id], password[id])) {
  127.                         ChatColor(id, "^4[%s]^1 %L ^3/reg", PREFIX, LANG_SERVER, "SUCCESS_LOGIN")
  128.                         loggedin[id] = true;
  129.                     }
  130.                     else {
  131.                         ChatColor(id, "^4[%s]^1 %L", PREFIX, LANG_SERVER, "WRONG_PASS")
  132.                         writepass[id] = "";
  133.                         reg_menu(id)
  134.                     }
  135.                 }
  136.                 else {
  137.                     loggedin[id] = false;
  138.                     ChatColor(id, "^4[%s]^1 %L ^3/reg", PREFIX, LANG_SERVER, "SUCCESS_LOGOFF")
  139.                     writepass[id] = "";
  140.                 }
  141.             }
  142.             else {
  143.                 if(strlen(writepass[id]) >= 6) {
  144.                     ChatColor(id, "^4[%s]^1 %L", PREFIX, LANG_SERVER, "SUCCESS_REGISTER")
  145.                     copy(password[id], charsmax(password[]), writepass[id]);
  146.                     registered[id] = true;
  147.                     save(id);
  148.                     reg_menu(id)
  149.                 }
  150.                 else reg_menu(id)
  151.             }
  152.         }
  153.         case 3: {
  154.             if(loggedin[id]) {
  155.                 client_cmd(id, "messagemode NEW_PASSWORD")
  156.             }
  157.             else reg_menu(id)
  158.         }
  159.     }
  160.    
  161.     menu_destroy(menu);
  162.     return PLUGIN_HANDLED;
  163. }
  164.  
  165. public Type_password(id) {
  166.     new adat[32]
  167.     read_args(adat, charsmax(adat))
  168.     remove_quotes(adat)
  169.     if(strlen(adat) < 6) {
  170.         ChatColor(id, "^4[%s]^1 %L", PREFIX, LANG_SERVER, "PASS_CHANGE1")
  171.     }
  172.     else {
  173.         copy(writepass[id], charsmax(writepass[]), adat)
  174.     }
  175.     reg_menu(id)
  176. }
  177.  
  178. public New_password(id) {
  179.     if(!loggedin[id]) return;
  180.    
  181.     new adat[32]
  182.     read_args(adat, charsmax(adat))
  183.     remove_quotes(adat)
  184.     if(strlen(adat) < 6) {
  185.         ChatColor(id, "^4[%s]^1 %L", PREFIX, LANG_SERVER, "PASS_CHANGE1")
  186.     }
  187.     else {
  188.         copy(writepass[id], charsmax(writepass[]), adat)
  189.         copy(password[id], charsmax(password[]), adat)
  190.         ChatColor(id, "^4[%s]^1 %L", PREFIX, LANG_SERVER, "PASS_CHANGE2")
  191.         update(id);
  192.     }
  193.     reg_menu(id)
  194. }
  195.  
  196. public ClientUserInfoChanged(id, buffer) {
  197.     if (!is_user_connected(id))
  198.         return FMRES_IGNORED
  199.     static name[32], val[32]
  200.     get_user_name(id, name, charsmax(name))
  201.     engfunc(EngFunc_InfoKeyValue, buffer, "name", val, charsmax(val))
  202.     if (equal(val, name))
  203.         return FMRES_IGNORED
  204.     engfunc(EngFunc_SetClientKeyValue, id, buffer, "name", name)
  205.     client_cmd(id, "name ^"%s^"; setinfo name ^"%s^"", name, name)
  206.     ChatColor(id, "^4[%s]^1 %L", PREFIX, LANG_SERVER, "NAMECHANGE_BLOCK")
  207.     return FMRES_SUPERCEDE
  208. }
  209.  
  210. public plugin_natives() {
  211.     register_native("is_user_loggedin", "native_loggedin", 1);
  212.     register_native("is_user_registered", "native_registered", 1);
  213. }
  214. public native_loggedin(index) {
  215.     return loggedin[index];
  216. }
  217. public native_registered(index) {
  218.     return registered[index];
  219. }
  220.  
  221. stock ChatColor(const id, const szMessage[], any:...) {
  222.     static pnum, players[32], szMsg[190], IdMsg;
  223.     vformat(szMsg, charsmax(szMsg), szMessage, 3);
  224.    
  225.     if(!IdMsg) IdMsg = get_user_msgid("SayText");
  226.    
  227.     if(id) {
  228.         if(!is_user_connected(id)) return;
  229.         players[0] = id;
  230.         pnum = 1;
  231.     }
  232.     else get_players(players, pnum, "ch");
  233.    
  234.     for(new i; i < pnum; i++) {
  235.         message_begin(MSG_ONE, IdMsg, .player = players[i]);
  236.         write_byte(players[i]);
  237.         write_string(szMsg);
  238.         message_end();
  239.     }
  240. }
  241.  
  242. public plugin_cfg() {
  243.     new Query[512];
  244.     g_SqlTuple = SQL_MakeDbTuple(SQL_INFO[0],SQL_INFO[1],SQL_INFO[2],SQL_INFO[3])
  245.     formatex(Query, charsmax(Query), "CREATE TABLE IF NOT EXISTS registration_system (`username` varchar(32) NOT NULL,`password` varchar(32) NOT NULL,`id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY)")
  246.     SQL_ThreadQuery(g_SqlTuple,"createTableThread", Query)
  247.     load()
  248. }
  249.  
  250. public createTableThread(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) {
  251.     if(FailState == TQUERY_CONNECT_FAILED)
  252.         set_fail_state("Nem tudtam csatlakozni az adatbazishoz.");
  253.     else if(FailState == TQUERY_QUERY_FAILED)
  254.         set_fail_state("Query Error");
  255.     if(Errcode)
  256.         log_amx("Hibat dobtam: %s",Error);
  257. }
  258.  
  259. public load() {
  260.     new Query[512];
  261.     formatex(Query, charsmax(Query), "SELECT * FROM `registration_system`;")
  262.     SQL_ThreadQuery(g_SqlTuple, "QuerySelectData", Query)
  263. }
  264.  
  265. public QuerySelectData(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) {
  266.     if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED) {
  267.         log_amx("%s", Error)
  268.         return
  269.     }
  270.     else {
  271.         while(SQL_MoreResults(Query)) {
  272.             SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "username"), data[usernamechk], charsmax(data[usernamechk]));
  273.             SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "password"), data[passwordchk], charsmax(data[passwordchk]));
  274.             ArrayPushArray(reglist, data)
  275.             loaded++
  276.             SQL_NextRow(Query)
  277.         }
  278.     }
  279. }
  280.  
  281. public save(id) {
  282.     copy(data[usernamechk], charsmax(data[usernamechk]), username[id])
  283.     copy(data[passwordchk], charsmax(data[passwordchk]), password[id])
  284.     ArrayPushArray(reglist, data)
  285.     loaded++
  286.     new text[512];
  287.     formatex(text, charsmax(text), "INSERT INTO `registration_system` (`username`, `password`) VALUES (^"%s^", ^"%s^");", username[id], password[id])
  288.     SQL_ThreadQuery(g_SqlTuple, "QuerySetData", text)
  289. }
  290.  
  291. public update(id) {
  292.     for(new i = 0; i < loaded; i++) {
  293.             ArrayGetArray(reglist, i, data)
  294.        
  295.             if(equal(data[usernamechk], username[id])) {
  296.                 copy(data[passwordchk], charsmax(data[passwordchk]), password[id])
  297.                 ArraySetArray(reglist, i, data)
  298.             }
  299.     }
  300.     new text[512];
  301.     formatex(text, charsmax(text), "UPDATE `registration_system` SET password = ^"%s^" WHERE username = ^"%s^";", password[id], username[id])
  302.     SQL_ThreadQuery(g_SqlTuple, "QuerySetData", text)
  303. }
  304.  
  305. public QuerySetData(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) {
  306.     if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED) {
  307.         log_amx("%s", Error)
  308.         return
  309.     }
  310. }
  311.  
  312. public plugin_end() {
  313.     SQL_FreeHandle(g_SqlTuple)
  314. }

Ők köszönték meg duvilax nek ezt a hozzászólást: KillerBoy12 (2018.06.01. 12:04)
  Népszerűség: 2.27%


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Regisztráció Rendszer SQL
HozzászólásElküldve: 2018.06.01. 12:59 
Offline
Tud valamit
Avatar

Csatlakozott: 2018.02.07. 01:13
Hozzászólások: 127
Megköszönt másnak: 7 alkalommal
Megköszönték neki: 25 alkalommal
te most adtal neki 1 masik reget pedig o abba kerte...
duvilax írta:
Szia, tessék.:)
  1. #include <amxmodx>
  2. #include <fakemeta>
  3. #include <sqlx>
  4.  
  5. #define PLUGIN "Registration System"
  6. #define VERSION "1.3"
  7. #define AUTHOR "mforce"
  8.  
  9.  
  10. new const PREFIX[] = "RegSystem"
  11.    
  12. new const SQL_INFO[][] = {
  13.     "127.0.0.1",    // HOST
  14.     "username",     // USERNAME
  15.     "password",     // PASSWORD
  16.     "database"      // DATABASE
  17. }
  18.  
  19. enum _:reginfo
  20. {
  21.     usernamechk[32],
  22.     passwordchk[32]
  23. }
  24.  
  25. new Handle:g_SqlTuple;
  26. new Array:reglist
  27. new loaded, data[reginfo];
  28. new username[33][32], password[33][32], writepass[33][32], bool:loggedin[33], bool:registered[33];
  29.  
  30. public plugin_init() {
  31.     register_plugin(PLUGIN, VERSION, AUTHOR)
  32.    
  33.     register_clcmd("say /reg", "reg_menu")
  34.     register_clcmd("TYPE_PASSWORD", "Type_password")
  35.     register_clcmd("NEW_PASSWORD", "New_password")
  36.     register_cvar("reg_system", AUTHOR, FCVAR_SERVER | FCVAR_SPONLY);
  37.     register_dictionary("reg_system.txt");
  38.     reglist = ArrayCreate(reginfo)
  39.     register_forward(FM_ClientUserInfoChanged, "ClientUserInfoChanged")
  40.     set_task(60.0, "regcheck", .flags = "b");
  41. }
  42.  
  43. public regcheck() {
  44.     new players[32], num;
  45.     get_players(players, num, "ch")
  46.     for(new i = 0; i < num; i++) {
  47.         new tempid = players[i]
  48.         if(!loggedin[tempid]) {
  49.             ChatColor(tempid, "^4[%s]^1 %L ^3/reg", PREFIX, LANG_SERVER, "HELP", LANG_SERVER, registered[tempid] ? "FOR_LOGIN":"FOR_REGISTER");
  50.         }
  51.     }
  52. }
  53.  
  54. public client_putinserver(id) {
  55.     if(!is_user_bot(id) && !is_user_hltv(id)) {
  56.         get_user_name(id, username[id], charsmax(username[]));
  57.         for(new i = 0; i < loaded; i++) {
  58.             ArrayGetArray(reglist, i, data)
  59.        
  60.             if(equal(username[id], data[usernamechk])) {
  61.                 copy(password[id], charsmax(password[]), data[passwordchk])
  62.                 registered[id] = true;
  63.                 set_task(10.0, "reg_menu", id);
  64.             }
  65.         }
  66.     }
  67. }
  68.  
  69. public client_disconnect(id) {
  70.     loggedin[id] = false;
  71.     registered[id] = false;
  72.     username[id] = "";
  73.     password[id] = "";
  74.     writepass[id] = "";
  75.     if(task_exists(id)) remove_task(id);
  76. }
  77.  
  78. public reg_menu(id) {
  79.     new temp[128], loggedinmsg[32], registeredmsg[32], logoffmsg[32], notreggedname[32], exitname[32];
  80.     formatex(notreggedname, charsmax(notreggedname), "%L", LANG_SERVER, "NOTREGGED");
  81.     formatex(loggedinmsg, charsmax(loggedinmsg), "%L", LANG_SERVER, loggedin[id] ? "LOGGED_IN":"REGISTERED");
  82.     formatex(temp, charsmax(temp), "\r[\y%s\r] %L", PREFIX, LANG_SERVER, "REG_MENU_TITLE", AUTHOR, registered[id] ? loggedinmsg:notreggedname);
  83.     new menu = menu_create(temp, "reg_menu_h" )
  84.  
  85.     formatex(temp, charsmax(temp), "%L", LANG_SERVER, "USERNAME", username[id])
  86.     menu_additem(menu,temp, "0",0)
  87.     formatex(temp, charsmax(temp), "%L", LANG_SERVER, "PASSWORD", writepass[id])
  88.     menu_additem(menu,temp, "1",0)
  89.     formatex(registeredmsg, charsmax(registeredmsg), "%L", LANG_SERVER, registered[id] ? "LOGIN":"REGISTER")
  90.     formatex(logoffmsg, charsmax(logoffmsg), "%L", LANG_SERVER, "LOGOFF")
  91.     formatex(temp, charsmax(temp), "%s^n", loggedin[id] ? logoffmsg:registeredmsg)
  92.     menu_additem(menu,temp, "2",0)
  93.     if(loggedin[id]) {
  94.         formatex(temp, charsmax(temp), "%L", LANG_SERVER, "CHGPASS")
  95.         menu_additem(menu,temp, "3",0)
  96.     }
  97.     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
  98.     formatex(exitname, charsmax(exitname), "%L", LANG_SERVER, "EXIT")
  99.     menu_setprop(menu, MPROP_EXITNAME, exitname);
  100.     menu_display(id, menu, 0)
  101.     return PLUGIN_HANDLED;
  102. }
  103.  
  104. public reg_menu_h(id, menu, item) {
  105.     if(item == MENU_EXIT) {
  106.         menu_destroy(menu);
  107.         return PLUGIN_HANDLED;
  108.     }
  109.     new command[6], name[64], access, callback;
  110.     menu_item_getinfo(menu, item, access, command, sizeof command - 1, name, sizeof name - 1, callback);
  111.  
  112.     switch(item)
  113.     {
  114.         case 0: {
  115.             reg_menu(id)
  116.         }
  117.         case 1: {
  118.             if(!loggedin[id]) {
  119.                 client_cmd(id, "messagemode TYPE_PASSWORD")
  120.             }
  121.             else reg_menu(id)
  122.         }
  123.         case 2: {
  124.             if(registered[id]) {
  125.                 if(!loggedin[id]) {
  126.                     if(strlen(password[id]) >= 6 && equal(writepass[id], password[id])) {
  127.                         ChatColor(id, "^4[%s]^1 %L ^3/reg", PREFIX, LANG_SERVER, "SUCCESS_LOGIN")
  128.                         loggedin[id] = true;
  129.                     }
  130.                     else {
  131.                         ChatColor(id, "^4[%s]^1 %L", PREFIX, LANG_SERVER, "WRONG_PASS")
  132.                         writepass[id] = "";
  133.                         reg_menu(id)
  134.                     }
  135.                 }
  136.                 else {
  137.                     loggedin[id] = false;
  138.                     ChatColor(id, "^4[%s]^1 %L ^3/reg", PREFIX, LANG_SERVER, "SUCCESS_LOGOFF")
  139.                     writepass[id] = "";
  140.                 }
  141.             }
  142.             else {
  143.                 if(strlen(writepass[id]) >= 6) {
  144.                     ChatColor(id, "^4[%s]^1 %L", PREFIX, LANG_SERVER, "SUCCESS_REGISTER")
  145.                     copy(password[id], charsmax(password[]), writepass[id]);
  146.                     registered[id] = true;
  147.                     save(id);
  148.                     reg_menu(id)
  149.                 }
  150.                 else reg_menu(id)
  151.             }
  152.         }
  153.         case 3: {
  154.             if(loggedin[id]) {
  155.                 client_cmd(id, "messagemode NEW_PASSWORD")
  156.             }
  157.             else reg_menu(id)
  158.         }
  159.     }
  160.    
  161.     menu_destroy(menu);
  162.     return PLUGIN_HANDLED;
  163. }
  164.  
  165. public Type_password(id) {
  166.     new adat[32]
  167.     read_args(adat, charsmax(adat))
  168.     remove_quotes(adat)
  169.     if(strlen(adat) < 6) {
  170.         ChatColor(id, "^4[%s]^1 %L", PREFIX, LANG_SERVER, "PASS_CHANGE1")
  171.     }
  172.     else {
  173.         copy(writepass[id], charsmax(writepass[]), adat)
  174.     }
  175.     reg_menu(id)
  176. }
  177.  
  178. public New_password(id) {
  179.     if(!loggedin[id]) return;
  180.    
  181.     new adat[32]
  182.     read_args(adat, charsmax(adat))
  183.     remove_quotes(adat)
  184.     if(strlen(adat) < 6) {
  185.         ChatColor(id, "^4[%s]^1 %L", PREFIX, LANG_SERVER, "PASS_CHANGE1")
  186.     }
  187.     else {
  188.         copy(writepass[id], charsmax(writepass[]), adat)
  189.         copy(password[id], charsmax(password[]), adat)
  190.         ChatColor(id, "^4[%s]^1 %L", PREFIX, LANG_SERVER, "PASS_CHANGE2")
  191.         update(id);
  192.     }
  193.     reg_menu(id)
  194. }
  195.  
  196. public ClientUserInfoChanged(id, buffer) {
  197.     if (!is_user_connected(id))
  198.         return FMRES_IGNORED
  199.     static name[32], val[32]
  200.     get_user_name(id, name, charsmax(name))
  201.     engfunc(EngFunc_InfoKeyValue, buffer, "name", val, charsmax(val))
  202.     if (equal(val, name))
  203.         return FMRES_IGNORED
  204.     engfunc(EngFunc_SetClientKeyValue, id, buffer, "name", name)
  205.     client_cmd(id, "name ^"%s^"; setinfo name ^"%s^"", name, name)
  206.     ChatColor(id, "^4[%s]^1 %L", PREFIX, LANG_SERVER, "NAMECHANGE_BLOCK")
  207.     return FMRES_SUPERCEDE
  208. }
  209.  
  210. public plugin_natives() {
  211.     register_native("is_user_loggedin", "native_loggedin", 1);
  212.     register_native("is_user_registered", "native_registered", 1);
  213. }
  214. public native_loggedin(index) {
  215.     return loggedin[index];
  216. }
  217. public native_registered(index) {
  218.     return registered[index];
  219. }
  220.  
  221. stock ChatColor(const id, const szMessage[], any:...) {
  222.     static pnum, players[32], szMsg[190], IdMsg;
  223.     vformat(szMsg, charsmax(szMsg), szMessage, 3);
  224.    
  225.     if(!IdMsg) IdMsg = get_user_msgid("SayText");
  226.    
  227.     if(id) {
  228.         if(!is_user_connected(id)) return;
  229.         players[0] = id;
  230.         pnum = 1;
  231.     }
  232.     else get_players(players, pnum, "ch");
  233.    
  234.     for(new i; i < pnum; i++) {
  235.         message_begin(MSG_ONE, IdMsg, .player = players[i]);
  236.         write_byte(players[i]);
  237.         write_string(szMsg);
  238.         message_end();
  239.     }
  240. }
  241.  
  242. public plugin_cfg() {
  243.     new Query[512];
  244.     g_SqlTuple = SQL_MakeDbTuple(SQL_INFO[0],SQL_INFO[1],SQL_INFO[2],SQL_INFO[3])
  245.     formatex(Query, charsmax(Query), "CREATE TABLE IF NOT EXISTS registration_system (`username` varchar(32) NOT NULL,`password` varchar(32) NOT NULL,`id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY)")
  246.     SQL_ThreadQuery(g_SqlTuple,"createTableThread", Query)
  247.     load()
  248. }
  249.  
  250. public createTableThread(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) {
  251.     if(FailState == TQUERY_CONNECT_FAILED)
  252.         set_fail_state("Nem tudtam csatlakozni az adatbazishoz.");
  253.     else if(FailState == TQUERY_QUERY_FAILED)
  254.         set_fail_state("Query Error");
  255.     if(Errcode)
  256.         log_amx("Hibat dobtam: %s",Error);
  257. }
  258.  
  259. public load() {
  260.     new Query[512];
  261.     formatex(Query, charsmax(Query), "SELECT * FROM `registration_system`;")
  262.     SQL_ThreadQuery(g_SqlTuple, "QuerySelectData", Query)
  263. }
  264.  
  265. public QuerySelectData(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) {
  266.     if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED) {
  267.         log_amx("%s", Error)
  268.         return
  269.     }
  270.     else {
  271.         while(SQL_MoreResults(Query)) {
  272.             SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "username"), data[usernamechk], charsmax(data[usernamechk]));
  273.             SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "password"), data[passwordchk], charsmax(data[passwordchk]));
  274.             ArrayPushArray(reglist, data)
  275.             loaded++
  276.             SQL_NextRow(Query)
  277.         }
  278.     }
  279. }
  280.  
  281. public save(id) {
  282.     copy(data[usernamechk], charsmax(data[usernamechk]), username[id])
  283.     copy(data[passwordchk], charsmax(data[passwordchk]), password[id])
  284.     ArrayPushArray(reglist, data)
  285.     loaded++
  286.     new text[512];
  287.     formatex(text, charsmax(text), "INSERT INTO `registration_system` (`username`, `password`) VALUES (^"%s^", ^"%s^");", username[id], password[id])
  288.     SQL_ThreadQuery(g_SqlTuple, "QuerySetData", text)
  289. }
  290.  
  291. public update(id) {
  292.     for(new i = 0; i < loaded; i++) {
  293.             ArrayGetArray(reglist, i, data)
  294.        
  295.             if(equal(data[usernamechk], username[id])) {
  296.                 copy(data[passwordchk], charsmax(data[passwordchk]), password[id])
  297.                 ArraySetArray(reglist, i, data)
  298.             }
  299.     }
  300.     new text[512];
  301.     formatex(text, charsmax(text), "UPDATE `registration_system` SET password = ^"%s^" WHERE username = ^"%s^";", password[id], username[id])
  302.     SQL_ThreadQuery(g_SqlTuple, "QuerySetData", text)
  303. }
  304.  
  305. public QuerySetData(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) {
  306.     if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED) {
  307.         log_amx("%s", Error)
  308.         return
  309.     }
  310. }
  311.  
  312. public plugin_end() {
  313.     SQL_FreeHandle(g_SqlTuple)
  314. }


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Regisztráció Rendszer SQL
HozzászólásElküldve: 2018.06.01. 16:45 
Offline
Jómunkásember

Csatlakozott: 2015.11.29. 17:07
Hozzászólások: 375
Megköszönt másnak: 76 alkalommal
Megköszönték neki: 53 alkalommal
Off Topic
Supra írta:
te most adtal neki 1 masik reget pedig o abba kerte...
Azt is lang fájl nélkül. :)


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Regisztráció Rendszer SQL
HozzászólásElküldve: 2018.06.01. 23:43 
Offline
Tud valamit

Csatlakozott: 2016.12.25. 12:43
Hozzászólások: 129
Megköszönt másnak: 35 alkalommal
Megköszönték neki: 4 alkalommal
Van ez a regisztrációs rendszer. Az a hiba hogy ki írja "Regisztráció folyamatban... kérlek várj!" és aztán nem csinál semmit. És a menübe se tudok vissza menni
  1. #include <amxmodx>
  2. #include <colorchat>
  3. #include <sqlx>
  4.  
  5. new const Prefix[] = "Torreto Regi";
  6.  
  7. new gFelhasznalo[33][100], gJelszo[33][100], gMenu[33], gId[33], gFolyamatban[33], bool:gBejelentkezes[33] , Aktivitas[33];
  8.  
  9. new Handle:SqlTuple;
  10.  
  11. new const SqlN[][] = { "164.132.201.166", "u_25503", "Tj6ZGaqL", "u_25503"  }
  12.  
  13.  
  14. public plugin_init() {
  15.     register_plugin("","","");
  16.    
  17.     register_clcmd("say /reg", "RegisztMenu");
  18.    
  19.     register_clcmd("Jelszo", "cmdJelszo");
  20.     register_clcmd("Felhasznalo", "cmdFelhasznalo");
  21. }
  22. public RegisztMenu(id) {
  23.     new menu = menu_create("Regisztrációs Menü", "Regi_h");
  24.    
  25.     menu_additem(menu, "Regisztrálás", "0", 0);
  26.     menu_additem(menu, "Bejelentkezés", "1", 0);
  27.    
  28.     menu_display(id, menu, 0);
  29. }
  30. public Regi_h(id, menu, item) {
  31.     switch(item) {
  32.         case MENU_EXIT: {
  33.             menu_destroy(menu);
  34.             return;
  35.         }
  36.         case 0: {
  37.             RegFomenu(id);
  38.             gMenu[id] = 0;
  39.         }
  40.         case 1: {
  41.             RegFomenu(id);
  42.             gMenu[id] = 1;
  43.         }
  44.     }
  45. }
  46. public client_putinserver(id)
  47. {
  48.     gFolyamatban[id] = 0
  49.     gBejelentkezes[id] = false
  50.     copy(gJelszo[id], 31, "")
  51.     copy(gFelhasznalo[id], 31, "")
  52. }
  53. public RegFomenu(id) {
  54.     new cim[121];
  55.     new menu = menu_create(gMenu[id] == 0? "Reigsztrációs Menü":"Bejelentkezés Menü", "RegFo_h");
  56.    
  57.     format(cim, charsmax(cim), "Felhasználónév: %s", gFelhasznalo[id]);
  58.     menu_additem(menu, cim, "0", 0);
  59.    
  60.     format(cim, charsmax(cim), "Jelszo: %s", gJelszo[id]);
  61.     menu_additem(menu, cim, "1", 0);
  62.    
  63.     menu_additem(menu, gMenu[id] == 0 ? "Regisztrálás!":"Bejelentkezés!", "2",0);
  64.    
  65.     menu_display(id, menu, 0);
  66. }
  67. public RegFo_h(id, menu, item) {
  68.     if(item == MENU_EXIT)
  69.     {
  70.         menu_destroy(menu);
  71.         return;
  72.     }
  73.        
  74.     new data[9], szName[64];
  75.     new access, callback;
  76.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  77.     new key = str_to_num(data);
  78.    
  79.     switch(key)
  80.     {
  81.         case 0: client_cmd(id, "messagemode Felhasznalo");
  82.         case 1: client_cmd(id, "messagemode Jelszo");
  83.         case 2: cmdBejelentkezes(id);
  84.     }
  85. }
  86. public cmdBejelentkezes(id) {
  87.     if(gBejelentkezes[id] == true)
  88.         return PLUGIN_HANDLED;
  89.        
  90.    
  91.     if((strlen(gFelhasznalo[id]) == 0)) {
  92.         ColorChat(id, NORMAL, "^4[%s] ^1Nem adtál meg felhaszálónevet!", Prefix);
  93.         RegFomenu(id)
  94.         return PLUGIN_HANDLED;
  95.     }
  96.     if((strlen(gJelszo[id]) == 0)) {
  97.         ColorChat(id, NORMAL, "^4[%s] ^1Nem adtál meg jelszót!", Prefix);
  98.         RegFomenu(id)
  99.         return PLUGIN_HANDLED;
  100.     }
  101.    
  102.     if(gMenu[id] ==  0) {
  103.         if(gFolyamatban[id] == 0) {
  104.             ColorChat(id, NORMAL, "^4[%s] ^1Regisztrálás folyamatban van.... Kérlek várj!", Prefix);
  105.             SqlAccBetolt(id);
  106.             RegFomenu(id);
  107.             gFolyamatban[id] = 1;
  108.             return PLUGIN_HANDLED;
  109.         }
  110.         else RegFomenu(id);
  111.     }
  112.     if(gMenu[id] ==  1) {
  113.         if(gFolyamatban[id] == 0) {
  114.             ColorChat(id, NORMAL, "^4[%s] ^1Bejelentkezés folyamatban van.... Kérlek várj!", Prefix);
  115.             SqlAccBetolt(id);
  116.             RegFomenu(id);
  117.             gFolyamatban[id] = 1;
  118.             return PLUGIN_HANDLED;
  119.         }
  120.         else RegFomenu(id);
  121.     }
  122.    
  123.     return PLUGIN_CONTINUE;
  124. }
  125. public cmdJelszo(id) {
  126.     if(gBejelentkezes[id] == true)
  127.         return PLUGIN_HANDLED;
  128.        
  129.     gJelszo[id][0] = EOS;
  130.     read_args(gJelszo[id], 99);
  131.     remove_quotes(gJelszo[id]);
  132.    
  133.     if((strlen(gJelszo[id]) < 4 || strlen(gJelszo[id]) > 20)) {
  134.         ColorChat(id, NORMAL, "^4[%s] ^1A jelszavad nem lehet rővidebb mint 4, illetve hosszabb 20 karakternél!.", Prefix);
  135.         gJelszo[id][0] = EOS;
  136.     }
  137.    
  138.     RegFomenu(id);
  139.     return PLUGIN_HANDLED;
  140. }
  141. public cmdFelhasznalo(id) {
  142.     if(gBejelentkezes[id] == true)
  143.         return PLUGIN_HANDLED;
  144.        
  145.     gFelhasznalo[id][0] = EOS;
  146.     read_args(gFelhasznalo[id], 99);
  147.     remove_quotes(gFelhasznalo[id]);
  148.    
  149.     if((strlen(gFelhasznalo[id]) < 4 || strlen(gFelhasznalo[id]) > 20)) {
  150.         ColorChat(id, NORMAL, "^4[%s] ^1A felhasználóneved nem lehet rővidebb mint 4, illetve hosszabb 20 karakternél!.", Prefix);
  151.         gFelhasznalo[id][0] = EOS;
  152.     }
  153.    
  154.     RegFomenu(id);
  155.     return PLUGIN_HANDLED;
  156. }
  157. public client_disconnect(id) {
  158.     if(gBejelentkezes[id]) {
  159.         SqlAccFissites(id);
  160.     }
  161.    
  162.     gFelhasznalo[id][0] = EOS;
  163.     gJelszo[id][0] = EOS;
  164.     gBejelentkezes[id] = false;
  165. }
  166. public plugin_cfg() {
  167.     SqlTuple = SQL_MakeDbTuple(SqlN[0], SqlN[1], SqlN[2], SqlN[3]);
  168. }
  169. public SqlAccBetolt(id) {
  170.     new Query[2048], Len = 0;
  171.    
  172.     new a[191];
  173.    
  174.     format(a, 190, "%s", gFelhasznalo[id]);
  175.    
  176.     replace_all(a, 190, "\", "\\")
  177.     replace_all(a, 190, "'", "\'")
  178.    
  179.     Len += format(Query[Len], charsmax(Query), "SELECT * FROM regi_sql ");
  180.     Len += format(Query[Len], charsmax(Query)-Len, "WHERE Felhasznalo = '%s'", a);
  181.    
  182.     new Data[2]
  183.     Data[0] = id;
  184.     Data[1] = get_user_userid(id);
  185.    
  186.     SQL_ThreadQuery(SqlTuple, "SqlAccBetoltQwe", Query, Data, 2);
  187. }
  188. public SqlAccBetoltQwe(FailState,Handle:Query,Error[],Errcode,Data[],DataSize) {
  189.     if(FailState == TQUERY_CONNECT_FAILED)
  190.     {
  191.         set_fail_state("[ *HIBA* ] NEM LEHET KAPCSOLODNI AZ ADATBAZISHOZ!")
  192.         return
  193.     }
  194.     else if(FailState == TQUERY_QUERY_FAILED)
  195.     {
  196.         set_fail_state("[ *HIBA* ] A LEKERDEZES MEGSZAKADT!")
  197.         return
  198.     }
  199.    
  200.     if(Errcode)
  201.     {
  202.         log_amx("[ *HIBA* ] PROBLEMA A LEKERDEZESNEL! ( %s )",Error)
  203.         return
  204.     }
  205.    
  206.     new id = Data[0];
  207.    
  208.     if(Data[1] != get_user_userid(id))
  209.         return;
  210.        
  211.     new Found = SQL_NumRows(Query);
  212.    
  213.     if(gMenu[id] == 0) {
  214.         if(Found > 0) {
  215.             ColorChat(id, NORMAL, "^4[%s] ^1Ez a felhasználónév már foglalt!", Prefix);
  216.             gFolyamatban[id] = 0;
  217.             RegFomenu(id);
  218.         }
  219.         else SqlAccKeszit(id);
  220.     }
  221.     else if(gMenu[id] == 1) {
  222.         if(Found == 0) {
  223.             ColorChat(id, NORMAL, "^4[%s] ^1Hibás jelszó vagy felhasználónév!", Prefix);
  224.             gFolyamatban[id] = 0;
  225.             RegFomenu(id);
  226.         }
  227.         else SqlAccLoad(id);
  228.     }
  229. }
  230. public SqlAccKeszit(id) {
  231.     new Query[2048], Len = 0;
  232.    
  233.     new a[191], b[191], c[191];
  234.    
  235.     format(a, 190, "%s", gFelhasznalo[id]);
  236.     format(b, 190, "%s", gJelszo[id]);
  237.    
  238.     replace_all(a, 190, "\", "\\")
  239.     replace_all(a, 190, "'", "\'")
  240.     replace_all(b, 190, "\", "\\")
  241.     replace_all(b, 190, "'", "\'")
  242.    
  243.     new Nev[32]; get_user_name(id, Nev, 31);
  244.    
  245.     format(c, 190, "%s", Nev);
  246.    
  247.     replace_all(c, 190, "\", "\\")
  248.     replace_all(c, 190, "'", "\'")
  249.    
  250.     Len += format(Query[Len], charsmax(Query), "INSERT INTO regi_sql ");
  251.     Len += format(Query[Len], charsmax(Query)-Len, "(Felhasznalo, Jelszo,Jatekosnev) VALUES ('%s', '%s', '%s')", a, b, c);
  252.    
  253.     new Data[2]
  254.     Data[0] = id;
  255.     Data[1] = get_user_userid(id);
  256.    
  257.     SQL_ThreadQuery(SqlTuple,"SqlAccKeszitQwe", Query, Data, 2)
  258. }
  259. public SqlAccKeszitQwe(FailState,Handle:Query,Error[],Errcode,Data[],DataSize) {
  260.     if(FailState == TQUERY_CONNECT_FAILED)
  261.     {
  262.         set_fail_state("[ *HIBA* ] NEM LEHET KAPCSOLODNI AZ ADATBAZISHOZ!")
  263.         return
  264.     }
  265.     else if(FailState == TQUERY_QUERY_FAILED)
  266.     {
  267.         set_fail_state("[ *HIBA* ] A LEKERDEZES MEGSZAKADT!")
  268.         return
  269.     }
  270.    
  271.     if(Errcode)
  272.     {
  273.         log_amx("[ *HIBA* ] PROBLEMA A LEKERDEZESNEL! ( %s )",Error)
  274.         return
  275.     }
  276.    
  277.     new id = Data[0];
  278.    
  279.     if(Data[1] != get_user_userid(id))
  280.         return;
  281.        
  282.     ColorChat(id, NORMAL, "^4[%s] ^1Sikeresen Regisztráltál! Felhasználónév: ^4%s ^1| Jelszó: ^4%s", Prefix, gFelhasznalo[id], gJelszo[id]);
  283.     gFolyamatban[id] = 0;
  284.     gMenu[id] = 1;
  285.     RegFomenu(id);
  286.     return;
  287. }
  288. public SqlAccLoad(id) {
  289.     new Query[2048], Len = 0;
  290.    
  291.     Len += format(Query[Len], charsmax(Query), "SELECT * FROM regi_sql ");
  292.     Len += format(Query[Len], charsmax(Query)-Len, "WHERE Felhasznalo = '%s'", gFelhasznalo[id]);
  293.    
  294.     new Data[2];
  295.     Data[0] = id;
  296.     Data[1] = get_user_userid(id);
  297.    
  298.     SQL_ThreadQuery(SqlTuple,"SqlAccLoadQwe", Query, Data, 2);
  299. }
  300. public SqlAccLoadQwe(FailState,Handle:Query,Error[],Errcode,Data[],DataSize) {
  301.     if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED)
  302.     {
  303.         log_amx("%s", Error)
  304.         return
  305.     }
  306.     else
  307.     {
  308.         new id = Data[0];
  309.        
  310.         if (Data[1] != get_user_userid(id))
  311.             return ;
  312.        
  313.         new Password[100];
  314.         SQL_ReadResult(Query, 2, Password, 99);
  315.        
  316.         if(equal(gJelszo[id], Password))
  317.         {
  318.             Aktivitas[id] = SQL_ReadResult(Query, 4);
  319.             if(Aktivitas[id] > 0) {
  320.                 RegFomenu(id);
  321.                 return;
  322.             }
  323.             gId[id] = SQL_ReadResult(Query, 0);
  324.             //pelda ha 1 tombot mentesz tomb[id] = SQL_ReadResult(Query, 3); es igy tovabb
  325.            
  326.             ColorChat(id, NORMAL, "^4[%s] ^3%s ^1Üdv sikeresen bejelentkeztél!", Prefix, gFelhasznalo[id]);
  327.             gFolyamatban[id] = 0
  328.             gBejelentkezes[id] = true;
  329.         }
  330.         else  {
  331.             ColorChat(id, NORMAL, "^4[%s] ^1Hibás jelszó vagy felhasználónév!", Prefix);
  332.             gFolyamatban[id] = 0;
  333.             RegFomenu(id);
  334.         }
  335.     }
  336. }
  337. public SqlAccFissites(id) {
  338.     new Query[2048], Len = 0;
  339.    
  340.     new c[191];
  341.    
  342.     new Nev[32]; get_user_name(id, Nev, 31);
  343.    
  344.     format(c, 190, "%s", Nev);
  345.    
  346.     replace_all(c, 190, "\", "\\")
  347.     replace_all(c, 190, "'", "\'")
  348.    
  349.     Len += format(Query[Len], charsmax(Query), "UPDATE regi_sql SET ");
  350.    
  351.     //Len += format(Query[Len], charsmax(Query), "Tomb = '%d', ", Tomb[id]); ez egy pelda es ennyi
  352.    
  353.     Len += format(Query[Len], charsmax(Query)-Len,"Jatekosnev = '%s', ", c);
  354.     Len += format(Query[Len], charsmax(Query)-Len,"Aktivitas = '%d' ", Aktivitas[id]);
  355.     Len += format(Query[Len], charsmax(Query)-Len,"WHERE Id = '%d'", gId[id]);
  356.    
  357.     SQL_ThreadQuery(SqlTuple,"SqlUpdateQwe", Query);
  358. }
  359. public SqlUpdateQwe(FailState,Handle:Query,Error[],Errcode,Data[],DataSize) {
  360.     if(FailState == TQUERY_CONNECT_FAILED)return set_fail_state("[ *HIBA* ] NEM LEHET KAPCSOLODNI AZ ADATBAZISHOZ!")
  361.     else if(FailState == TQUERY_QUERY_FAILED) return set_fail_state("[ *HIBA* ] A LEKERDEZES MEGSZAKADT!")
  362.     if(Errcode) return log_amx("[ *HIBA* ] PROBLEMA A LEKERDEZESNEL! ( %s )",Error)
  363.    
  364.     return PLUGIN_CONTINUE
  365. }


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Regisztráció Rendszer SQL
HozzászólásElküldve: 2018.06.02. 00:22 
Offline
Tud valamit
Avatar

Csatlakozott: 2018.02.07. 01:13
Hozzászólások: 127
Megköszönt másnak: 7 alkalommal
Megköszönték neki: 25 alkalommal
  1. #include <amxmodx>
  2. #include <colorchat>
  3. #include <sqlx>
  4.  
  5. new const Prefix[] = "Torreto Regi";
  6.  
  7. new gFelhasznalo[33][100], gJelszo[33][100], gMenu[33], gId[33], gFolyamatban[33], bool:gBejelentkezes[33] , Aktivitas[33];
  8.  
  9. new Handle:SqlTuple;
  10.  
  11. new const SqlN[][] = { "164.132.201.166", "u_25503", "Tj6ZGaqL", "u_25503"  }
  12.  
  13.  
  14. public plugin_init() {
  15.     register_plugin("","","");
  16.    
  17.     register_clcmd("say /reg", "RegisztMenu");
  18.    
  19.     register_clcmd("Jelszo", "cmdJelszo");
  20.     register_clcmd("Felhasznalo", "cmdFelhasznalo");
  21. }
  22. public RegisztMenu(id) {
  23.     new menu = menu_create("Regisztrációs Menü", "Regi_h");
  24.    
  25.     menu_additem(menu, "Regisztrálás", "0", 0);
  26.     menu_additem(menu, "Bejelentkezés", "1", 0);
  27.    
  28.     menu_display(id, menu, 0);
  29. }
  30. public Regi_h(id, menu, item) {
  31.     switch(item) {
  32.         case MENU_EXIT: {
  33.             menu_destroy(menu);
  34.             return;
  35.         }
  36.         case 0: {
  37.             RegFomenu(id);
  38.             gMenu[id] = 0;
  39.         }
  40.         case 1: {
  41.             RegFomenu(id);
  42.             gMenu[id] = 1;
  43.         }
  44.     }
  45. }
  46. public client_putinserver(id)
  47. {
  48.     gFolyamatban[id] = 0
  49.     gBejelentkezes[id] = false
  50.     copy(gJelszo[id], 31, "")
  51.     copy(gFelhasznalo[id], 31, "")
  52. }
  53. public RegFomenu(id) {
  54.     new cim[121];
  55.     new menu = menu_create(gMenu[id] == 0? "Reigsztrációs Menü":"Bejelentkezés Menü", "RegFo_h");
  56.    
  57.     format(cim, charsmax(cim), "Felhasználónév: %s", gFelhasznalo[id]);
  58.     menu_additem(menu, cim, "0", 0);
  59.    
  60.     format(cim, charsmax(cim), "Jelszo: %s", gJelszo[id]);
  61.     menu_additem(menu, cim, "1", 0);
  62.    
  63.     menu_additem(menu, gMenu[id] == 0 ? "Regisztrálás!":"Bejelentkezés!", "2",0);
  64.    
  65.     menu_display(id, menu, 0);
  66. }
  67. public RegFo_h(id, menu, item) {
  68.     if(item == MENU_EXIT)
  69.     {
  70.         menu_destroy(menu);
  71.         return;
  72.     }
  73.        
  74.     new data[9], szName[64];
  75.     new access, callback;
  76.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  77.     new key = str_to_num(data);
  78.    
  79.     switch(key)
  80.     {
  81.         case 0: client_cmd(id, "messagemode Felhasznalo");
  82.         case 1: client_cmd(id, "messagemode Jelszo");
  83.         case 2: cmdBejelentkezes(id);
  84.     }
  85. }
  86. public cmdBejelentkezes(id) {
  87.     if(gBejelentkezes[id] == true)
  88.         return PLUGIN_HANDLED;
  89.        
  90.    
  91.     if((strlen(gFelhasznalo[id]) == 0)) {
  92.         ColorChat(id, NORMAL, "^4[%s] ^1Nem adtál meg felhaszálónevet!", Prefix);
  93.         RegFomenu(id)
  94.         return PLUGIN_HANDLED;
  95.     }
  96.     if((strlen(gJelszo[id]) == 0)) {
  97.         ColorChat(id, NORMAL, "^4[%s] ^1Nem adtál meg jelszót!", Prefix);
  98.         RegFomenu(id)
  99.         return PLUGIN_HANDLED;
  100.     }
  101.    
  102.     if(gMenu[id] ==  0) {
  103.         if(gFolyamatban[id] == 0) {
  104.             ColorChat(id, NORMAL, "^4[%s] ^1Regisztrálás folyamatban van.... Kérlek várj!", Prefix);
  105.             SqlAccKeszit(id);
  106.             RegFomenu(id);
  107.             gFolyamatban[id] = 1;
  108.             return PLUGIN_HANDLED;
  109.         }
  110.         else RegFomenu(id);
  111.     }
  112.     if(gMenu[id] ==  1) {
  113.         if(gFolyamatban[id] == 0) {
  114.             ColorChat(id, NORMAL, "^4[%s] ^1Bejelentkezés folyamatban van.... Kérlek várj!", Prefix);
  115.             SqlAccBetolt(id);
  116.             RegFomenu(id);
  117.             gFolyamatban[id] = 1;
  118.             return PLUGIN_HANDLED;
  119.         }
  120.         else RegFomenu(id);
  121.     }
  122.    
  123.     return PLUGIN_CONTINUE;
  124. }
  125. public cmdJelszo(id) {
  126.     if(gBejelentkezes[id] == true)
  127.         return PLUGIN_HANDLED;
  128.        
  129.     gJelszo[id][0] = EOS;
  130.     read_args(gJelszo[id], 99);
  131.     remove_quotes(gJelszo[id]);
  132.    
  133.     if((strlen(gJelszo[id]) < 4 || strlen(gJelszo[id]) > 20)) {
  134.         ColorChat(id, NORMAL, "^4[%s] ^1A jelszavad nem lehet rÅ‘videbb mint 4, illetve hosszabb 20 karakternél!.", Prefix);
  135.         gJelszo[id][0] = EOS;
  136.     }
  137.    
  138.     RegFomenu(id);
  139.     return PLUGIN_HANDLED;
  140. }
  141. public cmdFelhasznalo(id) {
  142.     if(gBejelentkezes[id] == true)
  143.         return PLUGIN_HANDLED;
  144.        
  145.     gFelhasznalo[id][0] = EOS;
  146.     read_args(gFelhasznalo[id], 99);
  147.     remove_quotes(gFelhasznalo[id]);
  148.    
  149.     if((strlen(gFelhasznalo[id]) < 4 || strlen(gFelhasznalo[id]) > 20)) {
  150.         ColorChat(id, NORMAL, "^4[%s] ^1A felhasználóneved nem lehet rÅ‘videbb mint 4, illetve hosszabb 20 karakternél!.", Prefix);
  151.         gFelhasznalo[id][0] = EOS;
  152.     }
  153.    
  154.     RegFomenu(id);
  155.     return PLUGIN_HANDLED;
  156. }
  157. public client_disconnect(id) {
  158.     if(gBejelentkezes[id]) {
  159.         SqlAccFissites(id);
  160.     }
  161.    
  162.     gFelhasznalo[id][0] = EOS;
  163.     gJelszo[id][0] = EOS;
  164.     gBejelentkezes[id] = false;
  165. }
  166. public plugin_cfg() {
  167.     SqlTuple = SQL_MakeDbTuple(SqlN[0], SqlN[1], SqlN[2], SqlN[3]);
  168. }
  169. public SqlAccBetolt(id) {
  170.     new Query[2048], Len = 0;
  171.    
  172.     new a[191];
  173.    
  174.     format(a, 190, "%s", gFelhasznalo[id]);
  175.    
  176.     replace_all(a, 190, "\", "\\")
  177.     replace_all(a, 190, "'", "\'")
  178.    
  179.     Len += format(Query[Len], charsmax(Query), "SELECT * FROM regi_sql ");
  180.     Len += format(Query[Len], charsmax(Query)-Len, "WHERE Felhasznalo = '%s'", a);
  181.    
  182.     new Data[2]
  183.     Data[0] = id;
  184.     Data[1] = get_user_userid(id);
  185.    
  186.     SQL_ThreadQuery(SqlTuple, "SqlAccBetoltQwe", Query, Data, 2);
  187. }
  188. public SqlAccBetoltQwe(FailState,Handle:Query,Error[],Errcode,Data[],DataSize) {
  189.     if(FailState == TQUERY_CONNECT_FAILED)
  190.     {
  191.         set_fail_state("[ *HIBA* ] NEM LEHET KAPCSOLODNI AZ ADATBAZISHOZ!")
  192.         return
  193.     }
  194.     else if(FailState == TQUERY_QUERY_FAILED)
  195.     {
  196.         set_fail_state("[ *HIBA* ] A LEKERDEZES MEGSZAKADT!")
  197.         return
  198.     }
  199.    
  200.     if(Errcode)
  201.     {
  202.         log_amx("[ *HIBA* ] PROBLEMA A LEKERDEZESNEL! ( %s )",Error)
  203.         return
  204.     }
  205.    
  206.     new id = Data[0];
  207.    
  208.     if(Data[1] != get_user_userid(id))
  209.         return;
  210.        
  211.     new Found = SQL_NumRows(Query);
  212.    
  213.     if(gMenu[id] == 0) {
  214.         if(Found > 0) {
  215.             ColorChat(id, NORMAL, "^4[%s] ^1Ez a felhasználónév már foglalt!", Prefix);
  216.             gFolyamatban[id] = 0;
  217.             RegFomenu(id);
  218.         }
  219.         else SqlAccKeszit(id);
  220.     }
  221.     else if(gMenu[id] == 1) {
  222.         if(Found == 0) {
  223.             ColorChat(id, NORMAL, "^4[%s] ^1Hibás jelszó vagy felhasználónév!", Prefix);
  224.             gFolyamatban[id] = 0;
  225.             RegFomenu(id);
  226.         }
  227.         else SqlAccLoad(id);
  228.     }
  229. }
  230. public SqlAccKeszit(id) {
  231.     new Query[2048], Len = 0;
  232.    
  233.     new a[191], b[191], c[191];
  234.    
  235.     format(a, 190, "%s", gFelhasznalo[id]);
  236.     format(b, 190, "%s", gJelszo[id]);
  237.    
  238.     replace_all(a, 190, "\", "\\")
  239.     replace_all(a, 190, "'", "\'")
  240.     replace_all(b, 190, "\", "\\")
  241.     replace_all(b, 190, "'", "\'")
  242.    
  243.     new Nev[32]; get_user_name(id, Nev, 31);
  244.    
  245.     format(c, 190, "%s", Nev);
  246.    
  247.     replace_all(c, 190, "\", "\\")
  248.     replace_all(c, 190, "'", "\'")
  249.    
  250.     Len += format(Query[Len], charsmax(Query), "INSERT INTO regi_sql ");
  251.     Len += format(Query[Len], charsmax(Query)-Len, "(Felhasznalo, Jelszo,Jatekosnev) VALUES ('%s', '%s', '%s')", a, b, c);
  252.    
  253.     new Data[2]
  254.     Data[0] = id;
  255.     Data[1] = get_user_userid(id);
  256.    
  257.     SQL_ThreadQuery(SqlTuple,"SqlAccKeszitQwe", Query, Data, 2)
  258. }
  259. public SqlAccKeszitQwe(FailState,Handle:Query,Error[],Errcode,Data[],DataSize) {
  260.     if(FailState == TQUERY_CONNECT_FAILED)
  261.     {
  262.         set_fail_state("[ *HIBA* ] NEM LEHET KAPCSOLODNI AZ ADATBAZISHOZ!")
  263.         return
  264.     }
  265.     else if(FailState == TQUERY_QUERY_FAILED)
  266.     {
  267.         set_fail_state("[ *HIBA* ] A LEKERDEZES MEGSZAKADT!")
  268.         return
  269.     }
  270.    
  271.     if(Errcode)
  272.     {
  273.         log_amx("[ *HIBA* ] PROBLEMA A LEKERDEZESNEL! ( %s )",Error)
  274.         return
  275.     }
  276.    
  277.     new id = Data[0];
  278.    
  279.     if(Data[1] != get_user_userid(id))
  280.         return;
  281.        
  282.     ColorChat(id, NORMAL, "^4[%s] ^1Sikeresen Regisztráltál! Felhasználónév: ^4%s ^1| Jelszó: ^4%s", Prefix, gFelhasznalo[id], gJelszo[id]);
  283.     gFolyamatban[id] = 0;
  284.     gMenu[id] = 1;
  285.     RegFomenu(id);
  286.     return;
  287. }
  288. public SqlAccLoad(id) {
  289.     new Query[2048], Len = 0;
  290.    
  291.     Len += format(Query[Len], charsmax(Query), "SELECT * FROM regi_sql ");
  292.     Len += format(Query[Len], charsmax(Query)-Len, "WHERE Felhasznalo = '%s'", gFelhasznalo[id]);
  293.    
  294.     new Data[2];
  295.     Data[0] = id;
  296.     Data[1] = get_user_userid(id);
  297.    
  298.     SQL_ThreadQuery(SqlTuple,"SqlAccLoadQwe", Query, Data, 2);
  299. }
  300. public SqlAccLoadQwe(FailState,Handle:Query,Error[],Errcode,Data[],DataSize) {
  301.     if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED)
  302.     {
  303.         log_amx("%s", Error)
  304.         return
  305.     }
  306.     else
  307.     {
  308.         new id = Data[0];
  309.        
  310.         if (Data[1] != get_user_userid(id))
  311.             return ;
  312.        
  313.         new Password[100];
  314.         SQL_ReadResult(Query, 2, Password, 99);
  315.        
  316.         if(equal(gJelszo[id], Password))
  317.         {
  318.             Aktivitas[id] = SQL_ReadResult(Query, 4);
  319.             if(Aktivitas[id] > 0) {
  320.                 RegFomenu(id);
  321.                 return;
  322.             }
  323.             gId[id] = SQL_ReadResult(Query, 0);
  324.             //pelda ha 1 tombot mentesz tomb[id] = SQL_ReadResult(Query, 3); es igy tovabb
  325.            
  326.             ColorChat(id, NORMAL, "^4[%s] ^3%s ^1Ãœdv sikeresen bejelentkeztél!", Prefix, gFelhasznalo[id]);
  327.             gFolyamatban[id] = 0
  328.             gBejelentkezes[id] = true;
  329.         }
  330.         else  {
  331.             ColorChat(id, NORMAL, "^4[%s] ^1Hibás jelszó vagy felhasználónév!", Prefix);
  332.             gFolyamatban[id] = 0;
  333.             RegFomenu(id);
  334.         }
  335.     }
  336. }
  337. public SqlAccFissites(id) {
  338.     new Query[2048], Len = 0;
  339.    
  340.     new c[191];
  341.    
  342.     new Nev[32]; get_user_name(id, Nev, 31);
  343.    
  344.     format(c, 190, "%s", Nev);
  345.    
  346.     replace_all(c, 190, "\", "\\")
  347.     replace_all(c, 190, "'", "\'")
  348.    
  349.     Len += format(Query[Len], charsmax(Query), "UPDATE regi_sql SET ");
  350.    
  351.     //Len += format(Query[Len], charsmax(Query), "Tomb = '%d', ", Tomb[id]); ez egy pelda es ennyi
  352.    
  353.     Len += format(Query[Len], charsmax(Query)-Len,"Jatekosnev = '%s', ", c);
  354.     Len += format(Query[Len], charsmax(Query)-Len,"Aktivitas = '%d' ", Aktivitas[id]);
  355.     Len += format(Query[Len], charsmax(Query)-Len,"WHERE Id = '%d'", gId[id]);
  356.    
  357.     SQL_ThreadQuery(SqlTuple,"SqlUpdateQwe", Query);
  358. }
  359. public SqlUpdateQwe(FailState,Handle:Query,Error[],Errcode,Data[],DataSize) {
  360.     if(FailState == TQUERY_CONNECT_FAILED)return set_fail_state("[ *HIBA* ] NEM LEHET KAPCSOLODNI AZ ADATBAZISHOZ!")
  361.     else if(FailState == TQUERY_QUERY_FAILED) return set_fail_state("[ *HIBA* ] A LEKERDEZES MEGSZAKADT!")
  362.     if(Errcode) return log_amx("[ *HIBA* ] PROBLEMA A LEKERDEZESNEL! ( %s )",Error)
  363.    
  364.     return PLUGIN_CONTINUE
  365. }

tess


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Regisztráció Rendszer SQL
HozzászólásElküldve: 2018.06.02. 09:08 
Offline
Tud valamit

Csatlakozott: 2016.12.25. 12:43
Hozzászólások: 129
Megköszönt másnak: 35 alkalommal
Megköszönték neki: 4 alkalommal
Szia pontosabban mi volt a hiba? :) Mert nem jó :D


Hozzászólás jelentése
Vissza a tetejére
   
Hozzászólások megjelenítése:  Rendezés  
Új téma nyitása  Hozzászólás a témához  [ 7 hozzászólás ] 


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 1 vendég


Nyithatsz új témákat ebben a fórumban.
Válaszolhatsz egy témára ebben a fórumban.
Nem szerkesztheted a hozzászólásaidat ebben a fórumban.
Nem törölheted a hozzászólásaidat ebben a fórumban.
Nem küldhetsz csatolmányokat ebben a fórumban.

Keresés:
Ugrás:  
Powered by phpBB® Forum Software © phpBB Limited
Magyar fordítás © Magyar phpBB Közösség
Portal: Kiss Portal Extension © Michael O'Toole