Advertisement
IlanZiin

Gamemode Base MySQL R41 1.0

Sep 3rd, 2017
742
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 5.81 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.     print("\n----------------------------------");
  30.     print(" Blank Gamemode by your name here");
  31.     print("----------------------------------\n");
  32. }
  33.  
  34. new MySQL:Conexao;
  35. new query[250];
  36.  
  37. public OnGameModeInit()
  38. {
  39.     Conexao = mysql_connect(host, usuario, senha, database);
  40.     if(mysql_errno() != 0) print("Nao foi possivel conectar na database MySQL"), SendRconCommand("exit");
  41.     else print("Conectado com sucesso na database MySQL");
  42.     query[0] = EOS;
  43.     strcat(query, "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)");
  44.     mysql_query(Conexao, query, false);
  45.     return 1;
  46. }
  47.  
  48. public OnGameModeExit()
  49. {
  50.     return 1;
  51. }
  52.  
  53. public OnPlayerConnect(playerid)
  54. {
  55.     new row;
  56.     format(query, sizeof(query), "SELECT * FROM usuarios WHERE Nick='%s' LIMIT 1", PlayerName(playerid));
  57.     mysql_query(Conexao, query, true);
  58.     cache_get_row_count(row);
  59.     cache_get_value_name_int(0, "Senha", Player[playerid][Senha]);
  60.     if(row > 0)
  61.     {
  62.         ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Login no servidor", "Você é registrado, digite sua senha abaixo", "Logar", "Sair");
  63.     }
  64.     else
  65.     {
  66.         ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, "Registro no servidor", "Você não é registrado, digite uma senha abaixo", "Registrar", "Sair");
  67.     }
  68.     return 1;
  69. }
  70.  
  71. public OnPlayerDisconnect(playerid, reason)
  72. {
  73.     if(Player[playerid][Logado]) SalvarConta(playerid);
  74.     return 1;
  75. }
  76.  
  77. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  78. {
  79.     switch(dialogid)
  80.     {
  81.         case DIALOG_REGISTRO:
  82.         {
  83.             if(!response)
  84.             {
  85.                 KickZ(playerid);
  86.             }
  87.             if(strlen(inputtext) < 4 || strlen(inputtext) > 20)
  88.             {
  89.                 SendClientMessage(playerid, -1, "Digite uma senha de mais de 4 caracteres e menos de 20");
  90.                 ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, "Registro no servidor", "Você não é registrado, digite uma senha abaixo", "Registrar", "Sair");
  91.                 return 1;
  92.             }
  93.             if(!strval(inputtext))
  94.             {
  95.                 ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, "Registro no servidor", "Você não é registrado, digite uma senha abaixo", "Registrar", "Sair");
  96.                 SendClientMessage(playerid, -1, "Digite apenas numeros");
  97.                 return 1;
  98.             }
  99.             CriarConta(playerid, inputtext);
  100.             SetSpawnInfo( playerid, 0, 0, 1958.33, 1343.12, 15.36, 269.15, 26, 36, 28, 150, 0, 0 );
  101.             SpawnPlayer(playerid);
  102.         }
  103.         case DIALOG_LOGIN:
  104.         {
  105.             if(!response)
  106.             {
  107.                 KickZ(playerid);
  108.             }
  109.             if(strlen(inputtext) < 4 || strlen(inputtext) > 20)
  110.             {
  111.                 SendClientMessage(playerid, -1, "Digite uma senha de mais de 4 caracteres e menos de 20");
  112.                 ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Login no servidor", "Você é registrado, digite sua senha abaixo", "Logar", "Sair");
  113.                 return 1;
  114.             }
  115.             if(strval(inputtext) == Player[playerid][Senha])
  116.             {
  117.                 SendClientMessage(playerid, -1, "Logado com sucesso");
  118.                 CarregarConta(playerid);
  119.                 SetSpawnInfo(playerid, 0, 0, 1958.33, 1343.12, 15.36, 269.15, 26, 36, 28, 150, 0, 0 );
  120.                 SpawnPlayer(playerid);
  121.             }
  122.             else
  123.             {
  124.                 SendClientMessage(playerid, -1, "Senha incorreta");
  125.                 ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Login no servidor", "Você é registrado, digite sua senha abaixo", "Logar", "Sair");
  126.                 return 1;
  127.             }
  128.         }
  129.     }
  130.     return 1;
  131. }
  132.  
  133. PlayerName(playerid)
  134. {
  135.     new nome[24];
  136.     GetPlayerName(playerid, nome, 24);
  137.     return nome;
  138. }
  139.  
  140. CriarConta(playerid, senhaz[])
  141. {
  142.     query[0] = EOS;
  143.     format(query, sizeof(query), "INSERT INTO usuarios(Nick, Senha) VALUES ('%s', '%s')", PlayerName(playerid), senhaz);
  144.     mysql_query(Conexao, query, true);
  145.     SendClientMessage(playerid, -1, "Conta criada com sucesso na database MySQL");
  146.     CarregarConta(playerid);
  147.     return 1;
  148. }
  149.  
  150. SalvarConta(playerid)
  151. {
  152.     if(Player[playerid][Logado] == 0) return 0;
  153.     format(query, sizeof(query), "SELECT * FROM usuarios WHERE Nick='%s'", PlayerName(playerid));
  154.     mysql_query(Conexao,query,true);
  155.     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]);
  156.     mysql_query(Conexao, query, false);
  157.     return 1;
  158. }
  159.  
  160. CarregarConta(playerid)
  161. {
  162.     format(query, sizeof(query), "SELECT * FROM usuarios WHERE Nick='%s'", PlayerName(playerid));
  163.     mysql_query(Conexao,query,true);
  164.    
  165.     cache_get_value_name_int(0, "ID", Player[playerid][ID]);
  166.     cache_get_value_name_int(0, "Dinheiro", Player[playerid][Dinheiro]);
  167.     cache_get_value_name_int(0, "Nivel", Player[playerid][Nivel]);
  168.    
  169.     SetPlayerScore(playerid, Player[playerid][Nivel]);
  170.     GivePlayerMoney(playerid, Player[playerid][Dinheiro]);
  171.     Player[playerid][Logado] = 1;
  172.     SendClientMessage(playerid, -1, "Dados da conta foram carregados na database MySQL carregado");
  173.     return 1;
  174. }
  175.  
  176. public KickP(playerid)
  177. {
  178.     SetTimerEx("KickP2", 1, false, "i", playerid);
  179.     return 1;
  180. }
  181.  
  182. public KickP2(playerid)
  183. {
  184.     Kick(playerid);
  185.     return 1;
  186. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement