Advertisement
IlanZiin

Gamemode Base MySQL R41 2.0

Feb 6th, 2018
1,139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 5.99 KB | None | 0 0
  1. #include <a_samp>
  2. #include <a_mysql>
  3.  
  4. #define host      "localhost"
  5. #define usuario   "root"
  6. #define database  "db"
  7. #define senha     "" // No caso estou usando wamp e não precisa de senha :P
  8.  
  9. #define DIALOG_REGISTRO 1
  10. #define DIALOG_LOGIN 2
  11.  
  12. #define KickZ(%0) SetTimerEx("KickP", 500, false, "i", %0)
  13.  
  14. forward KickP(playerid);
  15. forward KickP2(playerid);
  16.  
  17. enum PlayerD
  18. {
  19.     ID,
  20.     Senha,
  21.     Dinheiro,
  22.     Nivel,
  23.     Logado
  24. }
  25. new Player[MAX_PLAYERS][PlayerD];
  26.  
  27. main(){}
  28.  
  29. new MySQL:Conexao;
  30. new query[250];
  31.  
  32. public OnGameModeInit()
  33. {
  34.     Conexao = mysql_connect(host, usuario, senha, database);
  35.     if(mysql_errno() != 0) print("Nao foi possivel conectar na database MySQL"), SendRconCommand("exit");
  36.     else print("Conectado com sucesso na database MySQL");
  37.     mysql_tquery(Conexao, "CREATE TABLE IF NOT EXISTS usuarios(ID int AUTO_INCREMENT PRIMARY KEY, Nick varchar(20) NOT NULL,Senha int(20) NOT NULL,Dinheiro int NOT NULL DEFAULT 5000, Nivel int NOT NULL DEFAULT 1)");
  38.     return 1;
  39. }
  40.  
  41. public OnGameModeExit()
  42. {
  43.     return 1;
  44. }
  45.  
  46. public OnPlayerConnect(playerid)
  47. {
  48.     format(query, sizeof(query), "SELECT * FROM usuarios WHERE Nick='%s' LIMIT 1", PlayerName(playerid));
  49.     mysql_tquery(Conexao, query, "OnPlayerRegistrado", "d", playerid);
  50.     return 1;
  51. }
  52.  
  53. public OnPlayerDisconnect(playerid, reason)
  54. {
  55.     if(Player[playerid][Logado])
  56.     {
  57.         SalvarConta(playerid);
  58.         LimparVariaveis(playerid);
  59.     }
  60.     return 1;
  61. }
  62.  
  63. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  64. {
  65.     switch(dialogid)
  66.     {
  67.         case DIALOG_REGISTRO:
  68.         {
  69.             if(!response)
  70.             {
  71.                 KickZ(playerid);
  72.             }
  73.             if(strlen(inputtext) < 4 || strlen(inputtext) > 20)
  74.             {
  75.                 SendClientMessage(playerid, -1, "Digite uma senha de mais de 4 caracteres e menos de 20");
  76.                 ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, "Registro no servidor", "Você não é registrado, digite uma senha abaixo", "Registrar", "Sair");
  77.                 return 1;
  78.             }
  79.             if(!strval(inputtext))
  80.             {
  81.                 ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, "Registro no servidor", "Você não é registrado, digite uma senha abaixo", "Registrar", "Sair");
  82.                 SendClientMessage(playerid, -1, "Digite apenas numeros");
  83.                 return 1;
  84.             }
  85.             CriarConta(playerid, inputtext);
  86.             SetSpawnInfo( playerid, 0, 0, 1958.33, 1343.12, 15.36, 269.15, 26, 36, 28, 150, 0, 0 );
  87.             SpawnPlayer(playerid);
  88.         }
  89.         case DIALOG_LOGIN:
  90.         {
  91.             if(!response)
  92.             {
  93.                 KickZ(playerid);
  94.             }
  95.             if(strlen(inputtext) < 4 || strlen(inputtext) > 20)
  96.             {
  97.                 SendClientMessage(playerid, -1, "Digite uma senha de mais de 4 caracteres e menos de 20");
  98.                 ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Login no servidor", "Você é registrado, digite sua senha abaixo", "Logar", "Sair");
  99.                 return 1;
  100.             }
  101.             if(strval(inputtext) == Player[playerid][Senha])
  102.             {
  103.                 SendClientMessage(playerid, -1, "Logado com sucesso");
  104.                 CarregarConta(playerid);
  105.                 SetSpawnInfo(playerid, 0, 0, 1958.33, 1343.12, 15.36, 269.15, 26, 36, 28, 150, 0, 0 );
  106.                 SpawnPlayer(playerid);
  107.             }
  108.             else
  109.             {
  110.                 SendClientMessage(playerid, -1, "Senha incorreta");
  111.                 ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Login no servidor", "Você é registrado, digite sua senha abaixo", "Logar", "Sair");
  112.                 return 1;
  113.             }
  114.         }
  115.     }
  116.     return 1;
  117. }
  118. //
  119.  
  120. forward OnPlayerRegistrado(playerid);
  121. public OnPlayerRegistrado(playerid) // Ingles + Portugues. HEHEHE
  122. {
  123.     new row;
  124.     cache_get_row_count(row);
  125.     cache_get_value_name_int(0, "Senha", Player[playerid][Senha]);
  126.     if(row > 0)
  127.     {
  128.         ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Login no servidor", "Você é registrado, digite sua senha abaixo", "Logar", "Sair");
  129.     }
  130.     else
  131.     {
  132.         ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, "Registro no servidor", "Você não é registrado, digite uma senha abaixo", "Registrar", "Sair");
  133.     }
  134.     return 1;
  135. }
  136.  
  137. forward OnPlayerCarregar(playerid);
  138. public OnPlayerCarregar(playerid)
  139. {
  140.     cache_get_value_name_int(0, "ID", Player[playerid][ID]);
  141.     cache_get_value_name_int(0, "Dinheiro", Player[playerid][Dinheiro]);
  142.     cache_get_value_name_int(0, "Nivel", Player[playerid][Nivel]);
  143.  
  144.     SetPlayerScore(playerid, Player[playerid][Nivel]);
  145.     GivePlayerMoney(playerid, Player[playerid][Dinheiro]);
  146.     Player[playerid][Logado] = 1;
  147.     SendClientMessage(playerid, -1, "Dados da conta foram carregados na database MySQL carregado");
  148.     return 1;
  149. }
  150.  
  151. public KickP(playerid)
  152. {
  153.     SetTimerEx("KickP2", 1, false, "i", playerid);
  154.     return 1;
  155. }
  156.  
  157. public KickP2(playerid)
  158. {
  159.     Kick(playerid);
  160.     return 1;
  161. }
  162.  
  163. //
  164.  
  165. PlayerName(playerid)
  166. {
  167.     new nome[24];
  168.     GetPlayerName(playerid, nome, 24);
  169.     return nome;
  170. }
  171.  
  172. CriarConta(playerid, senhaz[])
  173. {
  174.     query[0] = EOS;
  175.     format(query, sizeof(query), "INSERT INTO usuarios(Nick, Senha) VALUES ('%s', '%s')", PlayerName(playerid), senhaz);
  176.     mysql_tquery(Conexao, query);
  177.     SendClientMessage(playerid, -1, "Conta criada com sucesso na database MySQL");
  178.     CarregarConta(playerid);
  179.     return 1;
  180. }
  181.  
  182. SalvarConta(playerid)
  183. {
  184.     if(!Player[playerid][Logado]) return 0;
  185.     format(query, sizeof(query), "UPDATE usuarios SET Nick='%s', Nivel=%d, Dinheiro=%d WHERE ID=%d", PlayerName(playerid), GetPlayerScore(playerid), GetPlayerMoney(playerid), Player[playerid][ID]);
  186.     mysql_pquery(Conexao, query);
  187.     return 1;
  188. }
  189.  
  190. CarregarConta(playerid)
  191. {
  192.     format(query, sizeof(query), "SELECT * FROM usuarios WHERE Nick='%s'", PlayerName(playerid));
  193.     mysql_tquery(Conexao,query, "OnPlayerCarregar", "d", playerid);
  194.     return 1;
  195. }
  196.  
  197. LimparVariaveis(playerid)
  198. {
  199.     Player[playerid][ID] = 0;
  200.     Player[playerid][Dinheiro] = 0;
  201.     Player[playerid][Senha] = 0;
  202.     Player[playerid][Nivel] = 0;
  203.     Player[playerid][Logado] = 0;
  204.     return 1;
  205. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement