Advertisement
Jigsaw_

jigRegister

Jun 3rd, 2012
294
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 4.99 KB | None | 0 0
  1. #include <a_samp>
  2. #include <a_mysql>
  3.  
  4. enum {
  5.     DIALOG_REGISTER,
  6.     DIALOG_LOGIN
  7. }
  8.  
  9. forward jig_OnPlayerConnect(playerid);
  10. forward jig_OnPlayerLogin(playerid);
  11.  
  12. new
  13.     jDB,
  14.     jString[256],
  15.     jName[MAX_PLAYERS][24],
  16.     bool:jLogged[MAX_PLAYERS],
  17.     jTries[MAX_PLAYERS]
  18. ;
  19.  
  20. public OnFilterScriptInit() {
  21.     jDB = mysql_connect("localhost", "root", "jigRegister", "");
  22.     if(mysql_ping(jDB) < 1)
  23.         return SendRconCommand("unloadfs jigRegister");
  24.        
  25.     print("Connected!");
  26.     mysql_function_query(jDB, "CREATE TABLE IF NOT EXISTS `jUsers` (`Name` VARCHAR(24) NOT NULL,`Password` VARCHAR(32) NOT NULL, `Skin` INT(11) NOT NULL DEFAULT '299',`Money` INT(11) NOT NULL DEFAULT '5000',`Score` INT(11) NOT NULL DEFAULT '0')", false, "", "");
  27.        
  28.     print("----------------------------------");
  29.     print("            jRegister");
  30.     print("       Register/Login System");
  31.     print("     Copyright (c) 2012 Jigsaw`");
  32.     print("----------------------------------");
  33.     return 1;
  34. }
  35.  
  36. public OnFilterScriptExit() {
  37.     mysql_close(jDB);
  38.     return 1;
  39. }
  40.  
  41. public OnPlayerConnect(playerid) {
  42.     jTries[playerid] = 0;
  43.     GetPlayerName(playerid, jName[playerid], 24);
  44.    
  45.     mysql_format(jDB, jString, "SELECT * FROM `jUsers` WHERE `Name` = '%s'", jName[playerid]);
  46.     mysql_function_query(jDB, jString, true, "jig_OnPlayerConnect", "i", playerid);
  47.     return 1;
  48. }
  49.  
  50. public jig_OnPlayerConnect(playerid) {
  51.     new
  52.         jRows,
  53.         jFields
  54.     ;
  55.    
  56.     cache_get_data(jRows, jFields, jDB);
  57.     if(!jRows) {
  58.         format(jString, sizeof(jString), "{FFFFFF}Olá {1E90FF}%s{FFFFFF}\nVocê ainda não é registrado no servidor.\nDigite uma senha para se registrar.", jName[playerid]);
  59.         ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "{FFFFFF}Registro", jString, "Registrar", "Cancelar");
  60.         return 1;
  61.     }
  62.     format(jString, sizeof(jString), "{FFFFFF}Olá denovo {1E90FF}%s{FFFFFF}\nDigite sua senha para fazer login no servidor.", jName[playerid]);
  63.     ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "{FFFFFF}Login", jString, "Login", "Cancelar");
  64.     return 1;
  65. }
  66.  
  67. public OnPlayerDisconnect(playerid, reason) {
  68.     #pragma unused reason
  69.     if(jLogged[playerid]) {
  70.         mysql_format(jDB, jString,
  71.             "UPDATE `jUsers` SET `Skin` = %d, `Money` = %d, Score = %d WHERE `Name` = '%s'",
  72.             GetPlayerSkin(playerid),
  73.             GetPlayerMoney(playerid),
  74.             GetPlayerScore(playerid),
  75.             jName[playerid]
  76.         );
  77.         mysql_function_query(jDB, jString, false, "", "");
  78.         jLogged[playerid] = false;
  79.     }
  80.     return 1;
  81. }
  82.  
  83. public OnPlayerSpawn(playerid)
  84. {
  85.     return (jLogged[playerid]) ? (1) : (Kick(playerid));
  86. }
  87.  
  88. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
  89.     switch(dialogid) {
  90.         case DIALOG_REGISTER: {
  91.             if(!response)
  92.                 Kick(playerid);
  93.                
  94.             else {
  95.                 if(1 < strlen(inputtext) > 32) {
  96.                     format(jString, sizeof(jString), "{FFFFFF}Olá {1E90FF}%s{FFFFFF}\nVocê ainda não é registrado no servidor.\nDigite uma senha para se registrar.\n\n{E31919}Erro: Sua senha deve conter entre 1 e 32 caracteres.", jName[playerid]);
  97.                     ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "{FFFFFF}Registro", jString, "Registrar", "Cancelar");
  98.                 } else {
  99.                     mysql_format(jDB, jString, "INSERT INTO `jUsers` (`Name`,`Password`) VALUES ('%s','%s')", jName[playerid], inputtext);
  100.                     mysql_function_query(jDB, jString, false, "", "");
  101.                    
  102.                     format(jString, sizeof(jString), "{FFFFFF}Muito bem {1E90FF}%s{FFFFFF}\nConta registrada com sucesso.\nDigite sua senha para fazer login.", jName[playerid]);
  103.                     ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "{FFFFFF}Login", jString, "Login", "Cancelar");
  104.                 }
  105.             }
  106.         }
  107.         case DIALOG_LOGIN: {
  108.             if(!response)
  109.                 Kick(playerid);
  110.                
  111.             else {
  112.                 mysql_format(jDB, jString, "SELECT * FROM `jUsers` WHERE `Name` = '%s' AND `Password` = '%s'", jName[playerid], inputtext);
  113.                 mysql_function_query(jDB, jString, true, "jig_OnPlayerLogin", "i", playerid);
  114.             }
  115.         }
  116.     }
  117.     return 1;
  118. }
  119.  
  120. public jig_OnPlayerLogin(playerid) {
  121.     new
  122.         jRows,
  123.         jFields
  124.     ;
  125.    
  126.     cache_get_data(jRows, jFields, jDB);
  127.     if(!jRows)
  128.     {
  129.         ++ jTries[playerid];
  130.         if(jTries[playerid] == 5)
  131.             return BanEx(playerid, "5 erros de senha");
  132.            
  133.         format(jString, sizeof(jString), "{FFFFFF}Senha incorreta {1E90FF}%s{FFFFFF}\nDigite sua verdadeira senha.\nChances: {E31919}%d", jName[playerid], (5 - jTries[playerid]));
  134.         ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "{FFFFFF}Login", jString, "Login", "Cancelar");
  135.         return 1;
  136.     }
  137.     jLogged[playerid] = true;
  138.    
  139.     cache_get_field_content(0, "Money", jString, jDB);
  140.     ResetPlayerMoney(playerid); GivePlayerMoney(playerid, strval(jString));
  141.    
  142.     cache_get_field_content(0, "Score", jString, jDB);
  143.     SetPlayerScore(playerid, strval(jString));
  144.    
  145.     cache_get_field_content(0, "Skin", jString, jDB);
  146.    
  147.     SetSpawnInfo(playerid, 0, strval(jString), 1568.2737, -1892.3541, 13.5595, 0.8003, 0, 0, 0, 0, 0, 0);
  148.     SpawnPlayer(playerid);
  149.     return 1;
  150. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement