Guest User

Register system bug

a guest
Aug 12th, 2018
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.00 KB | None | 0 0
  1. #include <a_samp>
  2. #include <zcmd>
  3. #include <a_mysql>
  4. main(){}
  5.  
  6. new SQL = -1, gQuery[256];
  7.  
  8. new string[128];
  9.  
  10. new pLogged[MAX_PLAYERS];
  11.  
  12. #define function%0(%1) forward%0(%1); public %0(%1)
  13. #define SCM SendClientMessage
  14.  
  15. enum pInfo {
  16. pSQLID,
  17. pName[MAX_PLAYER_NAME],
  18. pPassword[32]
  19. }
  20. new PlayerInfo[MAX_PLAYERS][pInfo];
  21.  
  22. enum {
  23. DIALOG_REGISTER,
  24. DIALOG_LOGIN
  25. }
  26.  
  27. public OnGameModeInit() {
  28. SQL = mysql_connect("localhost", "root", "samp_db", "");
  29. return 1;
  30. }
  31.  
  32. public OnPlayerRequestClass() {
  33. return 1;
  34. }
  35.  
  36. public OnPlayerConnect(playerid) {
  37. gQuery[0] = EOS;
  38. mysql_format(SQL, gQuery, sizeof(gQuery), "SELECT * FROM `users` WHERE `Name` = '%s' LIMIT 1", GetName(playerid));
  39. mysql_tquery(SQL, gQuery, "checkAccount", "i", playerid);
  40.  
  41. pLogged[playerid] = 0;
  42. return 1;
  43. }
  44.  
  45. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
  46.  
  47. switch(dialogid) {
  48. case DIALOG_REGISTER: {
  49. if(!response) return Kick(playerid);
  50. SCM(playerid, -1, "TE-AI INREGISTRAT PE SERVER."); //register message
  51. gQuery[0] = EOS;
  52. mysql_format(SQL, gQuery, sizeof(gQuery), "INSERT INTO `users` (`Name`, `Password`) VALUES ('%s', '%s')", GetName(playerid), inputtext);
  53. mysql_tquery(SQL, gQuery, "insertAccount", "i", playerid);
  54.  
  55. format(PlayerInfo[playerid][pPassword], 32, inputtext);
  56. }
  57. case DIALOG_LOGIN: {
  58. if(!response) return Kick(playerid);
  59. mysql_format(SQL, gQuery, sizeof(gQuery), "SELECT * FROM `users` WHERE `Name` = '%s' AND `Password` = '%s' LIMIT 1", GetName(playerid), inputtext);
  60. mysql_tquery(SQL, gQuery, "onLogin", "i", playerid);
  61. }+
  62. }
  63. return 1;
  64. }
  65.  
  66. stock GetName(playerid) {
  67. new playerName[24];
  68. GetPlayerName(playerid, playerName, 24);
  69. return playerName;
  70. }
  71.  
  72. function OnLogin(playerid) {
  73. switch(cache_num_rows() ) {
  74. case 0: SCM(playerid, -1, "Parola incorecta."); //incorrect password message
  75. case 1: {
  76. new result[64];
  77.  
  78. PlayerInfo[playerid][pSQLID] = cache_get_field_content_int(0, "ID");
  79.  
  80. cache_get_field_content(0, "Name", result); format(PlayerInfo[playerid][pName], MAX_PLAYER_NAME, result);
  81. cache_get_field_content(0, "Password", result); format(PlayerInfo[playerid][pPassword], 32, result);
  82.  
  83. printf("%s s-a logat pe server.", GetName(playerid)); //debug with player who logged in
  84. SCM(playerid, -1, "TE-AI LOGAT PE SERVER."); //login message
  85. }
  86. }
  87. return 1;
  88. }
  89.  
  90. function checkAccount(playerid){
  91. switch(cache_num_rows()) {
  92. case 0: ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Register (NU AI UN CONT)", "Parola:", "Insert", "Cancel"); //if i don't have an account
  93. case 1: ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login (AI DEJA UN CONT)", "Parola:", "Login", "Cancel"); //if i have an account
  94. }
  95. return 1;
  96. }
  97.  
  98. function insertAccount(playerid) {
  99. PlayerInfo[playerid][pSQLID] = cache_insert_id();
  100. printf("%s s-a inregistrat cu SQLID: %d", GetName(playerid), PlayerInfo[playerid][pSQLID]);//debug with player who registered
  101. return 1;
  102. }
Advertisement
Add Comment
Please, Sign In to add comment