Advertisement
Guest User

Untitled

a guest
Jan 2nd, 2019
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.99 KB | None | 0 0
  1. // Login & Register System
  2. //------------------------
  3. native WP_Hash(buffer[], len, const str[]);
  4.  
  5. #define dregister 2011
  6. #define dlogin 2012
  7. #define UserPath "Users/%s.ini"
  8.  
  9. enum PlayerInfo
  10. {
  11. Pass[129],
  12. Adminlevel,
  13. VIPlevel,
  14. Money,
  15. Scores,
  16. Kills,
  17. Deaths
  18. }
  19. new pInfo[MAX_PLAYERS][PlayerInfo];
  20.  
  21. stock Path(playerid)
  22. {
  23. new str[128],name[MAX_PLAYER_NAME];
  24. GetPlayerName(playerid,name,sizeof(name));
  25. format(str,sizeof(str),UserPath,name);
  26. return str;
  27. }
  28.  
  29. forward loadaccount_user(playerid, name[], value[]);
  30. public loadaccount_user(playerid, name[], value[])
  31. {
  32. INI_String("Password", pInfo[playerid][Pass],129);
  33. INI_Int("AdminLevel",pInfo[playerid][Adminlevel]);
  34. INI_Int("VIPLevel",pInfo[playerid][VIPlevel]);
  35. INI_Int("Money",pInfo[playerid][Money]);
  36. INI_Int("Scores",pInfo[playerid][Scores]);
  37. INI_Int("Kills",pInfo[playerid][Kills]);
  38. INI_Int("Deaths",pInfo[playerid][Deaths]);
  39. return 1;
  40. }
  41.  
  42. public OnPlayerConnect(playerid)
  43. {
  44. if(fexist(Path(playerid)))
  45. {
  46. INI_ParseFile(Path(playerid),"loadaccount_%s", .bExtra = true, .extra = playerid);
  47. ShowPlayerDialog(playerid,dlogin,DIALOG_STYLE_INPUT,"Login","Welcome, this username is registered.\nPlease enter your password to login","Login","Quit");
  48. }
  49. else
  50. {
  51. ShowPlayerDialog(playerid,dregister,DIALOG_STYLE_INPUT,"Register","Welcome, this username isn't registered.\nPlease enter your passwords to register and save your stats","Register","Quit");
  52. return 1;
  53. }
  54. }
  55.  
  56. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  57. {
  58. if(dialogid == dregister)
  59. {
  60. if(!response) return Kick(playerid);
  61. if(response)
  62. {
  63. if(!strlen(inputtext))
  64. {
  65. ShowPlayerDialog(playerid,dregister,DIALOG_STYLE_INPUT,"Register","Welcome, this username isn't registered\nPlease enter your password to register and save your stats\nPlease enter a password!","Register","Quit");
  66. return 1;
  67. }
  68. new hashpass[129];
  69. WP_Hash(hashpass,sizeof(hashpass),inputtext);
  70. new INI:file = INI_Open(Path(playerid));
  71. INI_SetTag(file,"Player's Data");
  72. INI_WriteString(file,"Password",hashpass);
  73. INI_WriteInt(file,"AdminLevel",0);
  74. INI_WriteInt(file,"VIPLevel",0);
  75. INI_WriteInt(file,"Money",25000);
  76. INI_WriteInt(file,"Scores",0);
  77. INI_WriteInt(file,"Kills",0);
  78. INI_WriteInt(file,"Deaths",0);
  79. INI_Close(file);
  80. SendClientMessage(playerid,-1,"Successfully registered.");
  81. return 1;
  82. }
  83. }
  84. if(dialogid == dlogin)
  85. {
  86. if(!response) return Kick(playerid);
  87. if(response)
  88. {
  89. new hashpass[129];
  90. WP_Hash(hashpass,sizeof(hashpass),inputtext);
  91. if(!strcmp(hashpass, pInfo[playerid][Pass], false))
  92. {
  93. INI_ParseFile(Path(playerid),"loadaccount_%s",.bExtra = true, .extra = playerid);
  94. SendClientMessage(playerid,-1,"Welcome, you have successfully logged in!");
  95. }
  96. else
  97. {
  98. ShowPlayerDialog(playerid,dlogin,DIALOG_STYLE_INPUT,"Login","Welcome, this username is registered.\nPlease enter your password to Login\nIncorrect password!","Login","Quit");
  99. return 1;
  100. }
  101. }
  102. }
  103. return 1;
  104. }
  105.  
  106. public OnPlayerDisconnect(playerid, reason)
  107. {
  108. new INI:file = INI_Open(Path(playerid));
  109. INI_SetTag(file,"Player's Data");
  110. INI_WriteInt(file,"AdminLevel",pInfo[playerid][Adminlevel]);
  111. INI_WriteInt(file,"VIPLevel",pInfo[playerid][VIPlevel]);
  112. INI_WriteInt(file,"Money",GetPlayerMoney(playerid));
  113. INI_WriteInt(file,"Scores",GetPlayerScore(playerid));
  114. INI_WriteInt(file,"Kills",pInfo[playerid][Kills]);
  115. INI_WriteInt(file,"Deaths",pInfo[playerid][Deaths]);
  116. INI_Close(file);
  117. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement