hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.06.16. 21:11



Jelenlévő felhasználók

Jelenleg 466 felhasználó van jelen :: 0 regisztrált, 0 rejtett és 466 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  [ 2 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: Regisztrációs rendszer
HozzászólásElküldve: 2020.11.04. 00:41 
Offline
Beavatott

Csatlakozott: 2019.03.29. 22:43
Hozzászólások: 73
Sziasztok, valaki tud olyan tutoriált adni amiben le van írva hogyan tudok egy módba bele írni egy regisztrációs rendszert?
az is jó ha Angol tutoriál!
Előre is köszönöm a segítséget!

_________________
****


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Regisztrációs rendszer
HozzászólásElküldve: 2020.11.04. 16:05 
Offline
Senior Tag
Avatar

Csatlakozott: 2017.08.09. 17:01
Hozzászólások: 266
Megköszönt másnak: 61 alkalommal
Megköszönték neki: 72 alkalommal
Katonakevin írta:
Sziasztok, valaki tud olyan tutoriált adni amiben le van írva hogyan tudok egy módba bele írni egy regisztrációs rendszert?
az is jó ha Angol tutoriál!
Előre is köszönöm a segítséget!


Erre nem igazán van tutorial, annó én is rengeteget szenvedtem vele, ha vissza nézed látod őket. :lol: :lol:
Nagy Easy Derathrun fan voltam és mindenképpen akartam egy regisztrációs modot :roll:

Miután elég sokat nézegettem a forráskódot és az utolsó topicom után megfogadva a tanácsokat, elkezdtem egy mentéssel dolgozni,
az első mérföldkövem az volt hogy bevitte billentyűzetről az adatot sikeresen, onnantól már könnyű volt, és sikerült is az elsőm.

Igen, sajnos ez egy olyan dolog hogy több alapból áll össze, a billentyűzetről bevinni az adatot, ezt menüből meghívni, elmenteni, és egyéb dolgokat amiket hozzá szeretnél írni
mind mind át kell nézned hogyan működik.

Ide rakok neked pár mintát az oldalról, és egyéb helyekről:
amxx_pluginok.php?pnev=regisztr%C3%A1ci%C3%B3&pfeltolto=&pjatek=&pkategoria=&kereses=Keres%C3%A9s#

  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <engine>
  4. #include <sqlx>
  5.  
  6. #pragma semicolon 1
  7.  
  8. new const TableName[] = "Regsys_table";
  9.  
  10. enum _:Text_properties{
  11.     Chat[128],
  12.     Menu[128]
  13. };
  14. new Handle:SQLtuple;
  15. new const constText[][Text_properties] ={
  16.     {"^1Nem írtál semmit a névhez!", "Regisztálj/Jelentkezz be!"},
  17.     {"^1A beírt név túl rövid! (Minimum: %i)", "Regisztráció"},
  18.     {"^1Nem írtál semmit a jelszóhoz!", "Felhasználónév:\d %s"},
  19.     {"^1A beírt jelszó túl rövid, vagy túl hosszú! (Minimum:^3 %i^1 - Maximum:^3 %i^1)", "Bejelentkezés"},
  20.     {"^1A két jelszó nem egyezik meg!", "Jelszó:\d %s"},
  21.     {"^1Regisztráció folyamatban... kérlek várj!", "Jelszó újra:\d %s"},
  22.     {"^1Ez a felhasználónév már foglalt!", "Regisztrálok"},
  23.     {"^1Sikeres regisztráció, jelentkezz be!", "Bejelentkezek"},
  24.     {"^1Ez a felhasználónév már foglalt!", ""},
  25.     {"^1Nem sikerült bejelentkezni, rossz felhasználó vagy jelszó!", ""},
  26.     {"^1Sikeresen bejelentkeztél!", ""},
  27.     {"^1Sikeresen bannoltad a fiókot!", ""},
  28. };
  29. enum _:Reg_properties{
  30.     Username[64],
  31.     Password[64],
  32.     RePassword[64],
  33. };
  34. new g_sReg[33][Reg_properties];
  35. enum _:Account_properties{
  36.     AccountId,
  37.     Ip[64],
  38.     SteamId[64],
  39.     LastlogDate[64],
  40.     Regdate[64],
  41.     Banned,
  42.     BannedReason[64],
  43.     LoggedIn,
  44. };
  45. new g_Account[33][Account_properties];
  46. new bool:g_bMenu[33];
  47. new Forward_Load;
  48. new g_cChatPrefix, g_cMenuPrefix, g_cUsernameLength, g_cPasswordMinLength, g_cPasswordMaxLength;
  49. public plugin_init()
  50. {
  51.     register_plugin("Regrendszer", "0.1.0", "Unknown");
  52.    
  53.     SQLtuple = SQL_MakeDbTuple("", "", "", "");
  54.     p_SQLCreateTable();
  55.    
  56.     register_impulse(201, "p_checkloggedin");
  57.     register_clcmd("type_username", "p_typeusername");
  58.     register_clcmd("type_password", "p_typepassword");
  59.     register_clcmd("type_repassword", "p_typerepassword");
  60.    
  61.     Forward_Load = CreateMultiForward("LoadData", ET_IGNORE, FP_CELL);
  62.  
  63.     register_concmd("ban_account", "p_BanAcc", _, "<AccId> <tiltas/oldas(1, 0)> <tiltas oka>");
  64.  
  65.     g_cChatPrefix = register_cvar("chat_prefix", "^4[Szerver]^3 »");
  66.     g_cMenuPrefix = register_cvar("menu_prefix", "\r[Szerver]\w »\d");
  67.     g_cUsernameLength = register_cvar("username_length", "4");
  68.     g_cPasswordMinLength = register_cvar("password_minlength", "4");
  69.     g_cPasswordMaxLength = register_cvar("password_maxlength", "12");
  70. }
  71. public plugin_natives()
  72. {
  73.     register_native("reg_get_user_loggedin","p_reg_get_user_loggedin", 1);
  74.     register_native("reg_get_user_id","p_reg_get_user_id", 1);
  75. }
  76. public p_BanAcc(id)
  77. {
  78.     if(g_Account[id][LoggedIn] && get_user_flags(id) & ADMIN_IMMUNITY)
  79.     {
  80.         new sAccId[16], sType[16], sReason[64];
  81.         new iAccId, iType;
  82.  
  83.         read_argv(1, sAccId, charsmax(sAccId));
  84.         read_argv(2, sType, charsmax(sType));
  85.         read_argv(3, sReason, charsmax(sReason));
  86.  
  87.         iAccId = str_to_num(sAccId);
  88.         iType = str_to_num(sType);
  89.  
  90.         if(iAccId < 1 || iType < 0 || iType > 1)
  91.         {
  92.             console_print(id, "Rossz fiok ID formatum, vagy rossz tiltas formatum!");
  93.             console_print(id, "Fiok ID amit beirtal: %d | Amik lehetnek: Barmelyik szam amelyik nagyobb, mint 0", iAccId);
  94.             console_print(id, "Tiltas formatum amit beirtal: %d | Amik lehetnek: 1(tiltas), 0(feloldas).", iType);
  95.             return;
  96.         }
  97.  
  98.         static sQuery[512];
  99.         new sData[2], iLen;
  100.         sData[0] = id;
  101.         sData[1] = get_user_userid(id);
  102.        
  103.         iLen += formatex(sQuery[iLen], charsmax(sQuery), "UPDATE `%s` SET Banned = ^"%d^", ", TableName, iType);
  104.         iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "BannedReason = ^"%s^" WHERE AccId = ^"%d^";", sReason, iAccId);
  105.  
  106.         SQL_ThreadQuery(SQLtuple, "p_SQLUpdatethr", sQuery, sData, 2);
  107.  
  108.         client_print_color(id, print_team_default, "%s %s", show_chatprefix(), constText[11][Chat]);
  109.     }
  110.     else console_print(id, "Nem leptel be, vagy nincs jogod ehhez!");
  111. }
  112. public p_reg_get_user_loggedin(id)
  113.     return g_Account[id][LoggedIn];
  114.  
  115. public p_reg_get_user_id(id)
  116.     return g_Account[id][AccountId];
  117.  
  118. public p_regmainmenu(id)
  119. {
  120.     new sText[128], iMenu;
  121.     formatex(sText, charsmax(sText), "%s %s", show_menuprefix(), constText[0][Menu]);
  122.     iMenu = menu_create(sText, "p_regmainmenu_handler");
  123.    
  124.     menu_additem(iMenu, constText[1][Menu], "0", 0);
  125.     menu_additem(iMenu, constText[3][Menu], "1", 0);
  126.    
  127.     menu_display(id, iMenu, 0);
  128. }
  129. public p_regmainmenu_handler(id, iMenu, iItem)
  130. {
  131.     if(iItem == MENU_EXIT){ menu_destroy(iMenu); return PLUGIN_HANDLED;}
  132.    
  133.     new sData[9], sName[MAX_NAME_LENGTH], iAccess, iCallback, iKey;
  134.     menu_item_getinfo(iMenu, iItem, iAccess, sData, charsmax(sData), sName, charsmax(sName), iCallback);
  135.     iKey = str_to_num(sData);
  136.    
  137.     switch(iKey)
  138.     {
  139.         case 0: {p_regmenu(id); g_bMenu[id] = true;}
  140.         case 1: {p_logmenu(id); g_bMenu[id] = false;}
  141.     }
  142.     return PLUGIN_HANDLED;
  143. }
  144. public p_checkloggedin(id)
  145. {
  146.     if(g_Account[id][LoggedIn] == 0)
  147.         p_regmainmenu(id);
  148. }
  149. public p_regmenu(id)
  150. {
  151.     new sText[128], iMenu;
  152.     formatex(sText, charsmax(sText), "%s %s", show_menuprefix(), constText[1][Menu]);
  153.     iMenu = menu_create(sText, "p_regmenu_handler");
  154.    
  155.     formatex(sText, charsmax(sText), constText[2][Menu], g_sReg[id][Username]);
  156.     menu_additem(iMenu, sText, "0", 0);
  157.     formatex(sText, charsmax(sText), constText[4][Menu], g_sReg[id][Password]);
  158.     menu_additem(iMenu, sText, "1", 0);
  159.     formatex(sText, charsmax(sText), constText[5][Menu], g_sReg[id][RePassword]);
  160.     menu_additem(iMenu, sText, "2", 0);
  161.    
  162.     formatex(sText, charsmax(sText), "%s", constText[6][Menu]);
  163.     menu_additem(iMenu, sText, "3", 0);
  164.    
  165.     menu_display(id, iMenu, 0);
  166. }
  167. public p_regmenu_handler(id, iMenu, iItem)
  168. {
  169.     if(iItem == MENU_EXIT){ menu_destroy(iMenu); return PLUGIN_HANDLED; }
  170.    
  171.     new sData[9], sName[MAX_NAME_LENGTH], iAccess, iCallback, iKey;
  172.     menu_item_getinfo(iMenu, iItem, iAccess, sData, charsmax(sData), sName, charsmax(sName), iCallback);
  173.     iKey = str_to_num(sData);
  174.    
  175.     switch(iKey)
  176.     {
  177.         case 0: client_cmd(id, "messagemode type_username");
  178.         case 1: client_cmd(id, "messagemode type_password");
  179.         case 2: client_cmd(id, "messagemode type_repassword");
  180.         case 3: p_checkpassword(id);
  181.     }
  182.     return PLUGIN_HANDLED;
  183. }
  184. public p_checkpassword(id)
  185. {
  186.     if(!equal(g_sReg[id][Password], g_sReg[id][RePassword]))
  187.     {
  188.         client_print_color(id, print_team_default, "%s %s", show_chatprefix(), constText[4][Chat]);
  189.         g_sReg[id][Password] = "";
  190.         g_sReg[id][RePassword] = "";
  191.         p_regmenu(id);
  192.         return PLUGIN_HANDLED;
  193.     }
  194.     else
  195.     {
  196.         set_task(5.0, "p_SQLUsernameCheck", id);
  197.         client_print_color(id, print_team_default, "%s %s", show_chatprefix(), constText[5][Chat]);
  198.     }
  199.     return PLUGIN_HANDLED;
  200. }
  201. public p_logmenu(id)
  202. {
  203.     new sText[128], iMenu;
  204.     formatex(sText, charsmax(sText), "%s %s", show_menuprefix(), constText[3][Menu]);
  205.     iMenu = menu_create(sText, "p_logmenu_handler");
  206.    
  207.     formatex(sText, charsmax(sText), constText[2][Menu], g_sReg[id][Username]);
  208.     menu_additem(iMenu, sText, "0", 0);
  209.     formatex(sText, charsmax(sText), constText[4][Menu], g_sReg[id][Password]);
  210.     menu_additem(iMenu, sText, "1", 0);
  211.    
  212.     formatex(sText, charsmax(sText), "%s", constText[7][Menu]);
  213.     menu_additem(iMenu, sText, "2", 0);
  214.    
  215.     menu_display(id, iMenu, 0);
  216. }
  217. public p_logmenu_handler(id, iMenu, iItem)
  218. {
  219.     if(iItem == MENU_EXIT){ menu_destroy(iMenu); return PLUGIN_HANDLED; }
  220.    
  221.     new sData[9], sName[MAX_NAME_LENGTH], iAccess, iCallback, iKey;
  222.     menu_item_getinfo(iMenu, iItem, iAccess, sData, charsmax(sData), sName, charsmax(sName), iCallback);
  223.     iKey = str_to_num(sData);
  224.    
  225.     switch(iKey)
  226.     {
  227.         case 0: client_cmd(id, "messagemode type_username");
  228.         case 1: client_cmd(id, "messagemode type_password");
  229.         case 2: p_checkSQL(id);
  230.     }
  231.     return PLUGIN_HANDLED;
  232. }
  233. public p_checkSQL(id)
  234. {
  235.     p_SQLload(id);
  236. }
  237. public p_typeusername(id)
  238. {
  239.     new sText[64], iLen;
  240.     read_args(sText, charsmax(sText));
  241.     remove_quotes(sText);
  242.    
  243.     iLen = get_pcvar_num(g_cUsernameLength);
  244.    
  245.     if(strlen(sText) == 0)
  246.     {
  247.         client_print_color(id, print_team_default, "%s %s", show_chatprefix(), constText[0][Chat]);
  248.         show_menubool(id);
  249.         return PLUGIN_HANDLED;
  250.     }
  251.    
  252.     if(strlen(sText) < iLen)
  253.     {
  254.         client_print_color(id, print_team_default, "%s %s", show_chatprefix(), constText[1][Chat], iLen);
  255.         show_menubool(id);
  256.     }
  257.     else
  258.     {
  259.         copy(g_sReg[id][Username], charsmax(g_sReg[]), sText);
  260.         show_menubool(id);
  261.     }
  262.     return PLUGIN_HANDLED;
  263. }
  264. public p_typepassword(id)
  265. {
  266.     new sText[64], iLen[2];
  267.     read_args(sText, charsmax(sText));
  268.     remove_quotes(sText);
  269.    
  270.     iLen[0] = get_pcvar_num(g_cPasswordMinLength);
  271.     iLen[1] = get_pcvar_num(g_cPasswordMaxLength);
  272.    
  273.     if(strlen(sText) == 0)
  274.     {
  275.         client_print_color(id, print_team_default, "%s %s", show_chatprefix(), constText[2][Chat]);
  276.         show_menubool(id);
  277.         return PLUGIN_HANDLED;
  278.     }
  279.    
  280.     if(strlen(sText) < iLen[0] || strlen(sText) > iLen[1])
  281.     {
  282.         client_print_color(id, print_team_default, "%s %s", show_chatprefix(), constText[3][Chat], iLen[0], iLen[1]);
  283.         show_menubool(id);
  284.         return PLUGIN_HANDLED;
  285.     }
  286.    
  287.     copy(g_sReg[id][Password], charsmax(g_sReg[]), sText);
  288.     show_menubool(id);
  289.    
  290.     return PLUGIN_HANDLED;
  291. }
  292. public p_typerepassword(id)
  293. {
  294.     new sText[64], iLen[2];
  295.     read_args(sText, charsmax(sText));
  296.     remove_quotes(sText);
  297.    
  298.     iLen[0] = get_pcvar_num(g_cPasswordMinLength);
  299.     iLen[1] = get_pcvar_num(g_cPasswordMaxLength);
  300.    
  301.     if(strlen(sText) == 0)
  302.     {
  303.         client_print_color(id, print_team_default, "%s %s", show_chatprefix(), constText[2][Chat]);
  304.         show_menubool(id);
  305.         return PLUGIN_HANDLED;
  306.     }
  307.    
  308.     if(strlen(sText) < iLen[0] || strlen(sText) > iLen[1])
  309.     {
  310.         client_print_color(id, print_team_default, "%s %s", show_chatprefix(), constText[3][Chat], iLen[0], iLen[1]);
  311.         show_menubool(id);
  312.         return PLUGIN_HANDLED;
  313.     }
  314.    
  315.     g_sReg[id][RePassword] = sText;
  316.     show_menubool(id);
  317.    
  318.     return PLUGIN_HANDLED;
  319. }
  320. p_SQLCreateTable()
  321. {
  322.     static sQuery[512];
  323.     new iLen;
  324.    
  325.     iLen += formatex(sQuery[iLen], charsmax(sQuery), "CREATE TABLE IF NOT EXISTS `%s` ", TableName);
  326.     iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "( ");
  327.     iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "`AccId` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, ");
  328.     iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "`Username` varchar(64) NOT NULL,");
  329.     iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "`Password` varchar(64) NOT NULL,");
  330.     iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "`Regdate` varchar(64) NOT NULL,");
  331.     iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "`LastLogDate` varchar(64) NOT NULL,");
  332.     iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "`UserIp` varchar(64) NOT NULL,");
  333.     iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "`UserSteamid` varchar(64) NOT NULL,");
  334.     iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "`Banned` INT(1) NOT NULL,");
  335.     iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "`BannedReason` varchar(64) NOT NULL)");
  336.    
  337.     SQL_ThreadQuery(SQLtuple, "p_SQLCreateTableThr", sQuery);
  338. }
  339. public p_SQLUsernameCheck(id)
  340. {
  341.     static sQuery[512];
  342.     new sData[2];
  343.    
  344.     sData[0] = id;
  345.     sData[1] = get_user_userid(id);
  346.    
  347.     formatex(sQuery, charsmax(sQuery), "SELECT * FROM `%s` WHERE `Username`='%s';", TableName, g_sReg[id][Username]);
  348.     SQL_ThreadQuery(SQLtuple, "p_SQLUsernameCheckthr", sQuery, sData, 2);
  349. }
  350. public p_SQLUsernameCheckthr(iFailState, Handle:sQuery, sError[], iErrcode, sData[], iDataSize)
  351. {
  352.     if(iFailState == TQUERY_CONNECT_FAILED)
  353.         set_fail_state("*DEBUG* [UsernameCheck] Nem sikerult csatlakozni az adatbazishoz.");
  354.     else if(iFailState == TQUERY_QUERY_FAILED)
  355.         set_fail_state("*DEBUG* [UsernameCheck] Lekerdezesi hiba");
  356.     if(iErrcode)
  357.         log_amx("*DEBUG* [UsernameCheck] - %s", sError);
  358.    
  359.     new id = sData[0];
  360.    
  361.     if(sData[1] != get_user_userid(id)) return;
  362.    
  363.     new iRowsFound = SQL_NumRows(sQuery);
  364.    
  365.     if(iRowsFound > 0)
  366.     {
  367.         client_print_color(id, print_team_default, "%s %s", show_chatprefix(), constText[6][Chat]);
  368.         show_menubool(id);
  369.     }
  370.     else p_SQLinsertTable(id);
  371. }
  372. public p_SQLinsertTable(id)
  373. {
  374.     static sQuery[512];
  375.     new sHashedPassword[64], sData[2], iTime;
  376.    
  377.     hash_string(g_sReg[id][Password], Hash_Sha256, sHashedPassword, charsmax(sHashedPassword));
  378.     iTime = get_systime();
  379.     format_time(g_Account[id][Regdate], charsmax(g_Account[]), "%Y.%m.%d - %H:%M:%S", iTime);
  380.     format_time(g_Account[id][LastlogDate], charsmax(g_Account[]), "%Y.%m.%d - %H:%M:%S", iTime);
  381.    
  382.     get_user_ip(id, g_Account[id][Ip], charsmax(g_Account[]));
  383.     get_user_authid(id, g_Account[id][SteamId], charsmax(g_Account[]));
  384.     sData[0] = id;
  385.     sData[1] = get_user_userid(id);
  386.    
  387.     formatex(sQuery, charsmax(sQuery), "INSERT INTO `%s` (Username,Password,Regdate,LastLogDate,UserIp,UserSteamid,Banned,BannedReason) VALUES('%s', '%s', '%s', '%s', '%s', '%s', '%d', '%s') ", TableName, g_sReg[id][Username], sHashedPassword, g_Account[id][Regdate], g_Account[id][LastlogDate], g_Account[id][Ip], g_Account[id][SteamId], g_Account[id][Banned], g_Account[id][BannedReason]);
  388.    
  389.     SQL_ThreadQuery(SQLtuple, "p_SQLinsertTablethr", sQuery, sData, 2);
  390. }
  391. public p_SQLinsertTablethr(iFailState, Handle:sQuery, sError[], iErrcode, sData[], iDataSize)
  392. {
  393.     if(iFailState == TQUERY_CONNECT_FAILED || iFailState == TQUERY_QUERY_FAILED)
  394.     {
  395.         log_amx("*DEBUG* [Insert] - %s", sError);
  396.         return;
  397.     }
  398.    
  399.     new id = sData[0];
  400.    
  401.     if(sData[1] != get_user_userid(id)) return;
  402.    
  403.     client_print_color(id, print_team_default, "%s %s", show_chatprefix(), constText[7][Chat]);
  404. }
  405. public p_SQLload(id)
  406. {
  407.     static sQuery[512];
  408.     new sHashedPassword[64], sData[2];
  409.     hash_string(g_sReg[id][Password], Hash_Sha256, sHashedPassword, charsmax(sHashedPassword));
  410.     sData[0] = id;
  411.     sData[1] = get_user_userid(id);
  412.    
  413.     formatex(sQuery, charsmax(sQuery), "SELECT * FROM `%s` WHERE Username = ^"%s^" AND Password = ^"%s^";", TableName, g_sReg[id][Username], sHashedPassword);
  414.     SQL_ThreadQuery(SQLtuple, "p_SQLloadthr", sQuery, sData, 2);
  415. }
  416. public p_SQLloadthr(iFailState, Handle:sQuery, sError[], iErrcode, sData[], iDataSize)
  417. {
  418.     if(iFailState == TQUERY_CONNECT_FAILED)
  419.         set_fail_state("*DEBUG* [UsernameCheck] Nem sikerult csatlakozni az adatbazishoz.");
  420.     else if(iFailState == TQUERY_QUERY_FAILED)
  421.         set_fail_state("*DEBUG* [UsernameCheck] Lekerdezesi hiba");
  422.     if(iErrcode)
  423.         log_amx("*DEBUG* [UsernameCheck] - %s", sError);
  424.    
  425.     new id = sData[0];
  426.     if(get_user_userid(id) != sData[1]) return;
  427.    
  428.     new iRowsFound = SQL_NumRows(sQuery);
  429.    
  430.     if(iRowsFound > 0)
  431.     {
  432.         new iTaken = 0;
  433.         if(g_Account[id][AccountId] == SQL_ReadResult(sQuery, SQL_FieldNameToNum(sQuery, "AccId")))
  434.         {
  435.             for(new i = 1; i < 32; i++)
  436.             {
  437.                 iTaken = 1;
  438.                 g_Account[id][AccountId] = 0;
  439.                 client_print_color(id, print_team_default, "%s %s", show_chatprefix(), constText[8][Chat]);
  440.                 break;
  441.             }
  442.         }
  443.        
  444.         if(iTaken == 1) return;
  445.        
  446.         g_Account[id][AccountId] = SQL_ReadResult(sQuery, SQL_FieldNameToNum(sQuery, "AccId"));
  447.         g_Account[id][Banned] = SQL_ReadResult(sQuery, SQL_FieldNameToNum(sQuery, "Banned"));
  448.         SQL_ReadResult(sQuery, SQL_FieldNameToNum(sQuery, "BannedReason"), g_Account[id][BannedReason], charsmax(g_Account[]));
  449.        
  450.         if(g_Account[id][Banned] == 1)
  451.         {
  452.             server_cmd("kick #%d ^"Ez a fiók ki lett tiltva!.^"", get_user_userid(id));
  453.             console_print(id, "******************************************************");
  454.             console_print(id, "Ez a fiok(ID:#%d) veglegesen ki lett tiltva, oka: %s", g_Account[id][AccountId], g_Account[id][BannedReason]);
  455.             console_print(id, "Ha ugy gondolod nem volt jogos, keressd fel az fb csoportot!");
  456.             console_print(id, "Facebook csoport: IDE A LINK");
  457.             console_print(id, "FB-re az id-d és a bannolás okát kérjük!");
  458.             console_print(id, "******************************************************");
  459.             iTaken = 0;
  460.             g_Account[id][AccountId] = 0;
  461.             g_Account[id][Ip] = "";
  462.             g_Account[id][SteamId] = "";
  463.             g_Account[id][LastlogDate] = "";
  464.             g_Account[id][Regdate] = 0;
  465.             g_Account[id][Banned] = 0;
  466.             g_Account[id][BannedReason] = "";
  467.             g_Account[id][LoggedIn] = 0;
  468.             g_sReg[id][Username] = "";
  469.             g_sReg[id][Password] = "";
  470.             g_sReg[id][RePassword] = "";
  471.             return;
  472.         }
  473.        
  474.         new Forward_Testret;
  475.         ExecuteForward(Forward_Load, Forward_Testret, id);
  476.         g_Account[id][LoggedIn] = 1;
  477.         p_SQLUpdate(id);
  478.         client_print_color(id, print_team_default, "%s %s", show_chatprefix(), constText[10][Chat]);
  479.     }
  480.     else{client_print_color(id, print_team_default, "%s %s", show_chatprefix(), constText[9][Chat]); return;}
  481. }
  482. public p_SQLCreateTableThr(iFailState, Handle:sQuery, sError[], iErrcode, sData[])
  483. {
  484.     if(iFailState == TQUERY_CONNECT_FAILED)
  485.         set_fail_state("*DEBUG* [CreateTable] Nem sikerult csatlakozni az adatbazishoz.");
  486.     else if(iFailState == TQUERY_QUERY_FAILED)
  487.         set_fail_state("*DEBUG* [CreateTable] Lekerdezesi hiba");
  488.     if(iErrcode)
  489.         log_amx("*DEBUG* [CreateTable] - %s", sError);
  490. }
  491. public p_SQLUpdate(id)
  492. {
  493.     static sQuery[512];
  494.     new sData[2], iTime;
  495.     sData[0] = id;
  496.     sData[1] = get_user_userid(id);
  497.     iTime = get_systime();
  498.    
  499.     format_time(g_Account[id][LastlogDate], charsmax(g_Account[]), "%Y.%m.%d - %H:%M:%S", iTime);
  500.    
  501.     formatex(sQuery, charsmax(sQuery), "UPDATE `%s` SET LastLogDate = ^"%s^" WHERE AccId = ^"%d^";", TableName, g_Account[id][LastlogDate], g_Account[id][AccountId]);
  502.     SQL_ThreadQuery(SQLtuple, "p_SQLUpdatethr", sQuery, sData, 2);    
  503. }
  504. public p_SQLUpdatethr(iFailState, Handle:sQuery, sError[], iErrcode, sData[], iDataSize)
  505. {
  506.     if(iFailState == TQUERY_CONNECT_FAILED || iFailState == TQUERY_QUERY_FAILED)
  507.     {
  508.         log_amx("*DEBUG* [Update] - %s", sError);return;
  509.     }
  510.     new id = sData[0];
  511.     if(sData[1] != get_user_userid(id)) return;
  512. }
  513. public client_authorized(id)
  514. {
  515.     if(is_user_bot(id))
  516.         return PLUGIN_HANDLED;
  517.    
  518.     g_sReg[id][Username] = "";
  519.     g_sReg[id][Password] = "";
  520.     g_sReg[id][RePassword] = "";
  521.    
  522.     g_Account[id][AccountId] = 0;
  523.     g_Account[id][Ip] = "";
  524.     g_Account[id][SteamId] = "";
  525.     g_Account[id][LastlogDate] = "";
  526.     g_Account[id][Regdate] = 0;
  527.     g_Account[id][Banned] = 0;
  528.     g_Account[id][BannedReason] = "";
  529.     g_Account[id][LoggedIn] = 0;
  530.    
  531.     return PLUGIN_HANDLED;
  532. }
  533. public client_disconnected(id)
  534. {
  535.     if(is_user_bot(id))
  536.         return PLUGIN_HANDLED;
  537.    
  538.     g_sReg[id][Username] = "";
  539.     g_sReg[id][Password] = "";
  540.     g_sReg[id][RePassword] = "";
  541.    
  542.     g_Account[id][AccountId] = 0;
  543.     g_Account[id][Ip] = "";
  544.     g_Account[id][SteamId] = "";
  545.     g_Account[id][LastlogDate] = "";
  546.     g_Account[id][Regdate] = 0;
  547.     g_Account[id][Banned] = 0;
  548.     g_Account[id][BannedReason] = "";
  549.     g_Account[id][LoggedIn] = 0;
  550.    
  551.     return PLUGIN_HANDLED;
  552. }
  553. show_menubool(id)
  554. {
  555.     if(g_bMenu[id]) p_regmenu(id); else p_logmenu(id);
  556. }
  557. show_chatprefix()
  558. {
  559.     new sChatPrefix[64];
  560.     get_pcvar_string(g_cChatPrefix, sChatPrefix, charsmax(sChatPrefix));
  561.     return sChatPrefix;
  562. }
  563. show_menuprefix()
  564. {
  565.     new sMenuPrefix[64];
  566.     get_pcvar_string(g_cMenuPrefix, sMenuPrefix, charsmax(sMenuPrefix));
  567.     return sMenuPrefix;
  568. }


Innentől tényleg csak annyit tudok tanácsolni már ha magad akarod megírni, hogy nézegesd a scriptet, értelmezd és próbáld magad megírni(bemásolni) a szimpatikusabb alapján.

_________________
"Szeretek aludni... mert az álmaim szebbek, mint a valóság."


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  [ 2 hozzászólás ] 


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 151 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