Guest User

Untitled

a guest
Apr 12th, 2013
580
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.74 KB | None | 0 0
  1. #include <a_samp>
  2. #include <YSI\y_ini>
  3. #define DIALOG_REGISTER 1
  4. #define DIALOG_LOGIN 2
  5. #define DIALOG_SUCCESS_1 3
  6. #define DIALOG_SUCCESS_2 4
  7. #define PATH "/Users/%s.ini"
  8. #define COL_WHITE "{FFFFFF}"
  9. #define COL_RED "{F81414}"
  10. #define COL_GREEN "{00FF22}"
  11. #define COL_LIGHTBLUE "{00CED1}"
  12.  
  13. public OnFilterScriptInit()
  14. {
  15. print("\n--------------------------------------");
  16. print("Admin System Loaded");
  17. print("--------------------------------------\n");
  18. return 1;
  19. }
  20.  
  21. public OnFilterScriptExit()
  22. {
  23. return 1;
  24. }
  25.  
  26. enum pInfo
  27. {
  28. pPass,
  29. pCash,
  30. pAdmin,
  31. pKills,
  32. pDeaths
  33. }
  34. new PlayerInfo[MAX_PLAYERS][pInfo];
  35. forward LoadUser_data(playerid,name[],value[]);
  36. public LoadUser_data(playerid,name[],value[])
  37. {
  38. INI_Int("Password",PlayerInfo[playerid][pPass]);
  39. INI_Int("Cash",PlayerInfo[playerid][pCash]);
  40. INI_Int("Admin",PlayerInfo[playerid][pAdmin]);
  41. INI_Int("Kills",PlayerInfo[playerid][pKills]);
  42. INI_Int("Deaths",PlayerInfo[playerid][pDeaths]);
  43. return 1;
  44. }
  45.  
  46. stock UserPath(playerid)
  47. {
  48. new string[128],playername[MAX_PLAYER_NAME];
  49. GetPlayerName(playerid,playername,sizeof(playername));
  50. format(string,sizeof(string),PATH,playername);
  51. return string;
  52. }
  53.  
  54. stock udb_hash(buf[]) {
  55. new length=strlen(buf);
  56. new s1 = 1;
  57. new s2 = 0;
  58. new n;
  59. for (n=0; n<length; n++)
  60. {
  61. s1 = (s1 + buf[n]) % 65521;
  62. s2 = (s2 + s1) % 65521;
  63. }
  64. return (s2 << 16) + s1;
  65. }
  66.  
  67. public OnPlayerConnect(playerid)
  68. {
  69. if(fexist(UserPath(playerid)))
  70. {
  71. INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
  72. ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,""COL_WHITE"Login",""COL_WHITE"Type your password below to login.","Login","Quit");
  73. }
  74. else
  75. {
  76. ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT,""COL_WHITE"Registering...",""COL_WHITE"Type your password below to register a new account.","Register","Quit");
  77. }
  78. return 1;
  79. }
  80.  
  81. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  82. {
  83. switch( dialogid )
  84. {
  85. case DIALOG_REGISTER:
  86. {
  87. if (!response) return Kick(playerid);
  88. if(response)
  89. {
  90. if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, ""COL_WHITE"Registering...",""COL_RED"You have entered an invalid password.\n"COL_WHITE"Type your password below to register a new account.","Register","Quit");
  91. new INI:File = INI_Open(UserPath(playerid));
  92. INI_SetTag(File,"data");
  93. INI_WriteInt(File,"Password",udb_hash(inputtext));
  94. INI_WriteInt(File,"Cash",0);
  95. INI_WriteInt(File,"Admin",0);
  96. INI_WriteInt(File,"Kills",0);
  97. INI_WriteInt(File,"Deaths",0);
  98. INI_Close(File);
  99.  
  100. SetSpawnInfo(playerid, 0, 0, 1958.33, 1343.12, 15.36, 269.15, 0, 0, 0, 0, 0, 0);
  101. SpawnPlayer(playerid);
  102. ShowPlayerDialog(playerid, DIALOG_SUCCESS_1, DIALOG_STYLE_MSGBOX,""COL_WHITE"Success!",""COL_GREEN"Great! Your Y_INI system works perfectly. Relog to save your stats!","Ok","");
  103. }
  104. }
  105.  
  106. case DIALOG_LOGIN:
  107. {
  108. if ( !response ) return Kick ( playerid );
  109. if( response )
  110. {
  111. if(udb_hash(inputtext) == PlayerInfo[playerid][pPass])
  112. {
  113. INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
  114. GivePlayerMoney(playerid, PlayerInfo[playerid][pCash]);
  115. ShowPlayerDialog(playerid, DIALOG_SUCCESS_2, DIALOG_STYLE_MSGBOX,""COL_WHITE"Success!",""COL_GREEN"You have successfully logged in!","Ok","");
  116. }
  117. else
  118. {
  119. ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,""COL_WHITE"Login",""COL_RED"You have entered an incorrect password.\n"COL_WHITE"Type your password below to login.","Login","Quit");
  120. }
  121. return 1;
  122. }
  123. }
  124. }
  125. return 1;
  126. }
  127.  
  128. public OnPlayerDisconnect(playerid, reason)
  129. {
  130. new INI:File = INI_Open(UserPath(playerid));
  131. INI_SetTag(File,"data");
  132. INI_WriteInt(File,"Cash",GetPlayerMoney(playerid));
  133. INI_WriteInt(File,"Admin",PlayerInfo[playerid][pAdmin]);
  134. INI_WriteInt(File,"Kills",PlayerInfo[playerid][pKills]);
  135. INI_WriteInt(File,"Deaths",PlayerInfo[playerid][pDeaths]);
  136. INI_Close(File);
  137. return 1;
  138. }
  139.  
  140. public OnPlayerDeath(playerid, killerid, reason)
  141. {
  142. PlayerInfo[killerid][pKills]++;
  143. PlayerInfo[playerid][pDeaths]++;
  144. return 1;
  145. }
Advertisement
Add Comment
Please, Sign In to add comment