Advertisement
Guest User

Untitled

a guest
Feb 28th, 2015
270
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.43 KB | None | 0 0
  1. // Includes
  2. #include <a_samp>
  3. #include <YSI\y_ini>
  4.  
  5. #define DIALOG_REGISTER 1
  6. #define DIALOG_LOGIN 2
  7. #define DIALOG_CLASS 3
  8.  
  9. #define PATH "/Users/%s.ini"
  10.  
  11. enum pInfo
  12. {
  13. pPass,
  14. pCash,
  15. pAdmin
  16. }
  17. new PlayerInfo[MAX_PLAYERS][pInfo];
  18.  
  19. forward LoadUser_data(playerid,name[],value[]);
  20. public LoadUser_data(playerid,name[],value[])
  21. {
  22. INI_Int("Password",PlayerInfo[playerid][pPass]);
  23. INI_Int("Cash",PlayerInfo[playerid][pCash]);
  24. INI_Int("Admin",PlayerInfo[playerid][pAdmin]);
  25. return 1;
  26. }
  27.  
  28. stock UserPath(playerid)
  29. {
  30. new string[128],playername[MAX_PLAYER_NAME];
  31. GetPlayerName(playerid,playername,sizeof(playername));
  32. format(string,sizeof(string),PATH,playername);
  33. return string;
  34. }
  35.  
  36. stock udb_hash(buf[])
  37. {
  38. new length=strlen(buf);
  39. new s1 = 1;
  40. new s2 = 0;
  41. new n;
  42. for (n=0; n<length; n++)
  43. {
  44. s1 = (s1 + buf[n]) % 65521;
  45. s2 = (s2 + s1) % 65521;
  46. }
  47. return (s2 << 16) + s1;
  48. }
  49.  
  50. main()
  51. {
  52. print("\n----------------------------------");
  53. print(" Blank Gamemode by your name here");
  54. print("----------------------------------\n");
  55. }
  56.  
  57. public OnGameModeInit()
  58. {
  59. SetGameModeText("Blank Script");
  60. return 1;
  61. }
  62.  
  63. public OnPlayerRequestClass(playerid, classid)
  64. {
  65. SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
  66. SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
  67. SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
  68. return 1;
  69. }
  70.  
  71. public OnPlayerConnect(playerid)
  72. {
  73. if(fexist(UserPath(playerid)))
  74. {
  75. INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
  76. ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Login", "Type your password below to login.", "Login", "Quit");
  77. }
  78. else
  79. {
  80. ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Registering...", "Type your password below to register a new account.", "Register", "Quit");
  81. }
  82. return 1;
  83. }
  84.  
  85. public OnPlayerDisconnect(playerid, reason)
  86. {
  87. new INI:File = INI_Open(UserPath(playerid));
  88. INI_SetTag(File,"data");
  89. INI_WriteInt(File,"Cash",GetPlayerMoney(playerid));
  90. INI_WriteInt(File,"Admin",PlayerInfo[playerid][pAdmin]);
  91. INI_Close(File);
  92. return 1;
  93. }
  94.  
  95. public OnPlayerRequestSpawn(playerid)
  96. {
  97. return 0;
  98. }
  99.  
  100. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  101. {
  102. switch( dialogid )
  103. {
  104. case DIALOG_REGISTER:
  105. {
  106. if (!response) return Kick(playerid);
  107. if(response)
  108. {
  109. if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Registering...", "You have entered an invalid password.\nType your password below to register a new account.", "Register", "Quit");
  110. new INI:File = INI_Open(UserPath(playerid));
  111. INI_SetTag(File,"data");
  112. INI_WriteInt(File,"Password",udb_hash(inputtext));
  113. INI_WriteInt(File,"Cash",0);
  114. INI_WriteInt(File,"Admin",0);
  115. INI_Close(File);
  116.  
  117. ShowPlayerDialog(playerid, DIALOG_CLASS, DIALOG_STYLE_LIST, "Choose a class:", "Terrorist\nMilitart", "Spawn", "");
  118. }
  119. }
  120.  
  121. case DIALOG_LOGIN:
  122. {
  123. if ( !response ) return Kick ( playerid );
  124. if( response )
  125. {
  126. if(udb_hash(inputtext) == PlayerInfo[playerid][pPass])
  127. {
  128. INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
  129. GivePlayerMoney(playerid, PlayerInfo[playerid][pCash]);
  130. ShowPlayerDialog(playerid, DIALOG_CLASS, DIALOG_STYLE_LIST, "Choose a class:", "Terrorist\nMilitart", "Spawn", "");
  131. }
  132. else
  133. {
  134. ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Login", "You have entered an incorrect password.\nType your password below to login.", "Login", "Quit");
  135. }
  136. return 1;
  137. }
  138. }
  139.  
  140. case DIALOG_CLASS:
  141. {
  142. switch(listitem)
  143. {
  144. case 0:
  145. {
  146. SetSpawnInfo(playerid, 0, 0, 1958.33, 1343.12, 15.36, 269.15, 0, 0, 0, 0, 0, 0);
  147. SpawnPlayer(playerid);
  148. }
  149. case 1:
  150. {
  151. SetSpawnInfo(playerid, 0, 0, 1958.33, 1343.12, 15.36, 269.15, 0, 0, 0, 0, 0, 0);
  152. SpawnPlayer(playerid);
  153. }
  154. }
  155. }
  156. }
  157. return 1;
  158. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement