Advertisement
Guest User

Untitled

a guest
Jul 30th, 2020
616
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.52 KB | None | 0 0
  1. #include <a_samp>
  2. #include <YSI_Data\y_iterate>
  3. #include <a_mysql>
  4.  
  5. #define mysql_host "localhost"
  6. #define mysql_user "root"
  7. #define mysql_pass ""
  8. #define mysql_database "test_database"
  9.  
  10. new MySQL:Database;
  11.  
  12. new PogresnaLozinka[MAX_PLAYERS];
  13.  
  14. enum PlayerInfo {
  15. ID,
  16. Name[25],
  17. Password[65],
  18. Score
  19. }
  20. new PI[MAX_PLAYERS][PlayerInfo];
  21.  
  22. enum {
  23. d_reg,
  24. d_log
  25. }
  26.  
  27. main() {
  28. print("Mod je upjesno ucitan");
  29. }
  30.  
  31. public OnGameModeInit() {
  32. Database = mysql_connect(mysql_host, mysql_user, mysql_pass, mysql_database);
  33. if(Database == MYSQL_INVALID_HANDLE || mysql_errno(Database) != 0) {
  34. print("Neuspjesno povezivanje sa databazom");
  35. SendRconCommand("exit");
  36. return 0;
  37. }
  38. return 1;
  39. }
  40.  
  41. public OnPlayerConnect(playerid) {
  42. new str[128];
  43. GetPlayerName(playerid, PI[playerid][Name], MAX_PLAYER_NAME);
  44. mysql_format(Database, str, sizeof(str), "SELECT * FROM `users` WHERE `Username` = '%e' LIMIT 1", PI[playerid][Name]);
  45. mysql_tquery(Database, str, "OnPlayerDataCheck", "i", playerid);
  46. //
  47. PogresnaLozinka[playerid] = 0;
  48. }
  49.  
  50. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
  51. switch(dialogid) {
  52. case d_reg: {
  53. if(strlen(inputtext) < 6 || strlen(inputtext) > 24) {
  54. SendClientMessage(playerid, -1, "Vasa lozinka ne moze biti kraca od 6 i duza od 24 karaktera");
  55. ShowPlayerDialog(playerid, d_reg, DIALOG_STYLE_PASSWORD, "Registracija na server","Molimo vas unesite vasu lozinku da bi ste se registrirali","Register","Quit");
  56. return 0;
  57. }
  58. else {
  59. new str[256];
  60. SHA256_PassHash(inputtext, GetName(playerid), PI[playerid][Password], 65);
  61. mysql_format(Database, str, sizeof(str),"INSERT INTO `users` (`Username`, `Password`, `Score`) VALUES ('%e', '%s', '0')", PI[playerid][Name], PI[playerid][Password]);
  62. mysql_tquery(Database, str);
  63. SetSpawnInfo(playerid, 0, 26, 1958.33, 1343.12, 15.36, 269.15, 0, 0, 0, 0, 0, 0);
  64. SpawnPlayer(playerid);
  65. SetPlayerScore(playerid, PI[playerid][Score]);
  66. }
  67. }
  68. case d_log: {
  69. if(strlen(inputtext) < 6 || strlen(inputtext) > 24) {
  70. SendClientMessage(playerid, -1, "Vasa lozinka ne moze biti kraca od 6 i duza od 24 karaktera");
  71. ShowPlayerDialog(playerid, d_reg, DIALOG_STYLE_PASSWORD, "Registracija na server","Molimo vas unesite vasu lozinku da bi ste se registrirali","Register","Quit");
  72. return 0;
  73. }
  74. else {
  75. new str[128], accpass[65];
  76. SHA256_PassHash(accpass, GetName(playerid), PI[playerid][Password], 65);
  77. if(strcmp(accpass, PI[playerid][Password]) != 0) {
  78. PogresnaLozinka[playerid]++;
  79. if(PogresnaLozinka[playerid] == 3) {
  80. Kick(playerid);
  81. }
  82. else {
  83. SendClientMessage(playerid, -1, "Pogresna lozinka, molimo vas pokusajte ponovno");
  84. ShowPlayerDialog(playerid, d_log, DIALOG_STYLE_PASSWORD, "Prijava na server","Molimo vas unesite vasu lozinku da bi ste se prijavili","Login","Quit");
  85. return 0;
  86. }
  87. }
  88. mysql_format(Database, str, sizeof(str), "SELECT * FROM `users` WHERE `Username` = '%e' LIMIT 1", PI[playerid][Name]);
  89. mysql_tquery(Database, str, "LoadAccount", "i", playerid);
  90. //
  91. SetSpawnInfo(playerid, 0, 26, 1958.33, 1343.12, 15.36, 269.15, 0, 0, 0, 0, 0, 0);
  92. SpawnPlayer(playerid);
  93. SetPlayerScore(playerid, PI[playerid][Score]);
  94. }
  95. }
  96. }
  97. return 1;
  98. }
  99.  
  100. public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid) {
  101. if(playertextid == TeleportSystem[playerid][2]) {
  102. SendClientMessage(playerid, -1, "Teleportovali ste se do opstine");
  103. SetPlayerPos(playerid, 1477.0564,-1735.4347,13.3828);
  104. }
  105. if(playertextid == TeleportSystem[playerid][3]) {
  106. SendClientMessage(playerid, -1, "Teleportovali ste se do banke");
  107. SetPlayerPos(playerid, 1467.5403,-1028.0187,23.8281);
  108. }
  109. if(playertextid == TeleportSystem[playerid][4]) {
  110. SendClientMessage(playerid, -1, "Teleportovali ste se do zlatare");
  111. SetPlayerPos(playerid, 1981.5616,-1154.2714,23.6873);
  112. }
  113. return 1;
  114. }
  115.  
  116. public OnPlayerClickMap(playerid, Float:fX, Float:fY, Float:fZ) {
  117. if(!IsPlayerAdmin(playerid)) return false;
  118. SetPlayerPos(playerid, fX, fY, fZ);
  119. return 1;
  120. }
  121.  
  122. public OnPlayerDisconnect(playerid, reason) {
  123. SavePlayer(playerid);
  124. return 1;
  125. }
  126.  
  127. forward LoadAccount(playerid);
  128. public LoadAccount(playerid) {
  129. new rows;
  130. cache_get_row_count(rows);
  131. if(!rows) return 0;
  132. else {
  133. cache_get_value_int(0, "ID", PI[playerid][ID]);
  134. cache_get_value_int(0, "Score", PI[playerid][Score]);
  135. }
  136. return 1;
  137. }
  138.  
  139. forward OnPlayerDataCheck(playerid);
  140. public OnPlayerDataCheck(playerid) {
  141. new rows;
  142. cache_get_row_count(rows);
  143. if(rows > 0) {
  144. cache_get_value(0, "Password", PI[playerid][Password], 65);
  145. ShowPlayerDialog(playerid, d_log, DIALOG_STYLE_PASSWORD, "Prijava na server","Molimo vas unesite vasu lozinku da bi ste se prijavili","Login","Quit");
  146. }
  147. else {
  148. ShowPlayerDialog(playerid, d_reg, DIALOG_STYLE_PASSWORD, "Registracija na server","Molimo vas unesite vasu lozinku da bi ste se registrirali","Register","Quit");
  149. }
  150. return 1;
  151. }
  152.  
  153. public OnGameModeExit() {
  154. foreach(new a: Player) {
  155. SavePlayer(a);
  156. }
  157. mysql_close(Database);
  158. return 0;
  159. }
  160.  
  161. stock SavePlayer(playerid) {
  162. new str[256];
  163. mysql_format(Database, str, sizeof(str),"UPDATE `users` SET `Score` = %d WHERE `ID` = %d LIMIT 1", PI[playerid][Score], PI[playerid][ID]);
  164. mysql_tquery(Database, str);
  165. return 1;
  166. }
  167.  
  168. stock GetName(playerid) {
  169. new name[MAX_PLAYER_NAME];
  170. GetPlayerName(playerid, name, sizeof(name));
  171. return name;
  172. }
  173.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement