F1N4L_

Salvamento BINI hashed

Mar 19th, 2016
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.96 KB | None | 0 0
  1.  
  2. #include a_samp // By SA:MP Team
  3. #include zcmd // By Zeex
  4. #include sscanf2 // By Y_Less
  5. #include bini // By Ips Bruno
  6. native WP_Hash(buffer[], len, const str[]);
  7.  
  8. #define DIALOG_REGISTRO 1000
  9. #define DIALOG_LOGIN 1001
  10.  
  11. enum pInfo
  12. {
  13. pNome[MAX_PLAYER_NAME],
  14. pSenha[20],
  15. pDinheiro,
  16. pScore,
  17. pIP[20],
  18. pAdmin,
  19.  
  20. bool:pLogado
  21. }
  22.  
  23. new User[MAX_PLAYERS][pInfo];
  24.  
  25. public OnGameModeInit()
  26. {
  27. return 1;
  28. }
  29.  
  30. public OnGameModeExit()
  31. {
  32. INI_Exit();
  33. return 1;
  34. }
  35.  
  36. public OnPlayerConnect(playerid)
  37. {
  38. for(new i; pInfo:i < pInfo; i++)
  39. {
  40. User[playerid][pInfo:i] = 0;
  41. }
  42.  
  43. if(fexist(PastaContas(playerid)))
  44. {
  45. INI_Open(PastaContas(playerid));
  46. INI_ReadString(PastaContas(playerid), "Senha");
  47. ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "TITULO DA DIALOG", "TEXTO DA DIALOG DE LOGIN", "LOGAR","SAIR");
  48. }
  49. else
  50. {
  51. ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, "TITULO DA DIALOG", "TEXTO DA DIALOG DE REGISTRO", "REGISTRAR","SAIR");
  52. }
  53.  
  54. return 1;
  55. }
  56.  
  57. public OnPlayerDisconnect(playerid, reason)
  58. {
  59. if(User[playerid][pLogado] == true)
  60. {
  61. INI_WriteInt(PastaContas(playerid), "Dinheiro", User[playerid][pDinheiro]);
  62. INI_WriteInt(PastaContas(playerid), "Admin", User[playerid][pAdmin]);
  63. INI_WriteInt(PastaContas(playerid), "Score", User[playerid][pScore]);
  64. INI_Save();
  65. }
  66.  
  67. for(new i; pInfo:i < pInfo; i++)
  68. {
  69. User[playerid][pInfo:i] = 0;
  70. }
  71.  
  72. return 1;
  73. }
  74.  
  75. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  76. {
  77. if(dialogid == DIALOG_REGISTRO)
  78. {
  79. if(response)
  80. {
  81. if(!strlen(inputtext))
  82. {
  83. SendClientMessage(playerid, -1, "Senha inválida!");
  84. ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, "TITULO DA DIALOG", "TEXTO DA DIALOG DE REGISTRO", "REGISTRAR","SAIR");
  85. return 1;
  86. }
  87.  
  88. if(strlen(inputtext) < 3 || strlen(inputtext) > 20)
  89. {
  90. SendClientMessage(playerid, -1, "Tamanho de senha inválido. Utilize entre 3 - 20");
  91. ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, "TITULO DA DIALOG", "TEXTO DA DIALOG DE REGISTRO", "REGISTRAR","SAIR");
  92. return 1;
  93. }
  94. new
  95. HASHPASS[129]
  96. ;
  97. WP_Hash(HASHPASS, sizeof(HASHPASS), inputtext);
  98.  
  99. INI_Create(PastaContas(playerid));
  100. INI_WriteString(PastaContas(playerid), "Nome", GetName(playerid));
  101. INI_WriteString(PastaContas(playerid), "Senha", HASHPASS);
  102. INI_WriteString(PastaContas(playerid), "IP", GetIP(playerid));
  103. INI_WriteInt(PastaContas(playerid), "Dinheiro", User[playerid][pDinheiro]=0);
  104. INI_WriteInt(PastaContas(playerid), "Score", User[playerid][pScore]=0);
  105. INI_WriteInt(PastaContas(playerid), "Admin", User[playerid][pAdmin]=0);
  106. User[playerid][pLogado] = true;
  107.  
  108. SendClientMessage(playerid, -1, "Você se registrou com sucesso no servidor.");
  109. }
  110. else
  111. {
  112. Kick(playerid);
  113. }
  114. }
  115. /*
  116. Definimos a resposta do diálogo DIALOG_LOGIN.
  117. */
  118. else if(dialogid == DIALOG_LOGIN)
  119. {
  120. if(response)
  121. {
  122. if(!strlen(inputtext))
  123. {
  124. SendClientMessage(playerid, -1, "Você errou a senha!");
  125. ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "TITULO DA DIALOG", "TEXTO DA DIALOG DE LOGIN", "LOGAR","SAIR");
  126. return 1;
  127. }
  128. new
  129. HASHPASS[129]
  130. ;
  131. WP_Hash(HASHPASS, sizeof(HASHPASS), inputtext);
  132.  
  133. if(strcmp(HASHPASS, INI_ReadString(PastaContas(playerid), "Senha"), false) == 0)
  134. {
  135. User[playerid][pDinheiro] = INI_ReadInt(PastaContas(playerid), "Dinheiro");
  136. ResetPlayerMoney(playerid);
  137. GivePlayerMoney(playerid, User[playerid][pDinheiro]);
  138. User[playerid][pAdmin] = INI_ReadInt(PastaContas(playerid), "Admin");
  139. User[playerid][pScore] = INI_ReadInt(PastaContas(playerid), "Score");
  140. SetPlayerScore(playerid, User[playerid][pScore]);
  141.  
  142. User[playerid][pLogado] = true;
  143.  
  144. SendClientMessage(playerid, -1, "Você logou com sucesso!");
  145. }
  146. else
  147. {
  148. SendClientMessage(playerid, -1, "Você errou a senha!");
  149. ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "TITULO DA DIALOG", "TEXTO DA DIALOG DE LOGIN", "LOGAR","SAIR");
  150. }
  151. }
  152. else
  153. {
  154. Kick(playerid);
  155. }
  156. }
  157. return 1;
  158. }
  159.  
  160. CMD:setdinheiro(playerid, params[])
  161. {
  162. new ID, Quantia, String[128];
  163.  
  164. if(sscanf(params, "ui", ID, Quantia)) return SendClientMessage(playerid, -1, "/setdinheiro [id] [quantia]");
  165.  
  166. ResetPlayerMoney(playerid);
  167. GivePlayerMoney(playerid, User[playerid][pDinheiro] = Quantia);
  168.  
  169. format(String, sizeof(String), "Você setou %i de dinheiro para o player %s", Quantia, GetName(playerid));
  170. SendClientMessage(playerid, -1, String);
  171.  
  172. return 1;
  173. }
  174.  
  175. CMD:mym(playerid, params[])
  176. {
  177. new String[128];
  178. format(String, sizeof(String), "Você setou %i de dinheiro para o player %s", User[playerid][pDinheiro]);
  179. SendClientMessage(playerid, -1, String);
  180.  
  181. return 1;
  182. }
  183.  
  184. CMD:setscore(playerid, params[])
  185. {
  186. new ID, Score, String[128];
  187.  
  188. if(sscanf(params, "ui", ID, Score)) return SendClientMessage(playerid, -1, "/setscore [id] [score]");
  189.  
  190. SetPlayerScore(playerid, User[playerid][pScore] = Score);
  191.  
  192. format(String, sizeof(String), "Você setou %i de score para o player %s", Score, GetName(playerid));
  193. SendClientMessage(playerid, -1, String);
  194.  
  195. return 1;
  196. }
  197.  
  198. CMD:setadmin(playerid, params[])
  199. {
  200. new ID, Level, String[128];
  201.  
  202. if(sscanf(params, "ui", ID, Level)) return SendClientMessage(playerid, -1, "/setadmin [id] [level]");
  203.  
  204. User[playerid][pAdmin] = Level;
  205.  
  206. format(String, sizeof(String), "Você setou level admin %i para o player %s", Level, GetName(playerid));
  207. SendClientMessage(playerid, -1, String);
  208.  
  209. return 1;
  210. }
  211.  
  212. stock GetName(playerid)
  213. {
  214. new Nome[MAX_PLAYER_NAME];
  215.  
  216. GetPlayerName(playerid, Nome, sizeof(Nome));
  217.  
  218. return Nome;
  219. }
  220.  
  221. stock GetIP(playerid)
  222. {
  223. new IP[30];
  224.  
  225. GetPlayerIp(playerid, IP, sizeof(IP));
  226.  
  227. return IP;
  228. }
  229.  
  230. stock PastaContas(playerid)
  231. {
  232. new Contas[24];
  233.  
  234. format(Contas, sizeof(Contas), "Contas/%s.ini", GetName(playerid));
  235.  
  236. return Contas;
  237. }
Advertisement
Add Comment
Please, Sign In to add comment