Advertisement
Oblivion_UFF

basdasd

Feb 29th, 2020
350
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.33 KB | None | 0 0
  1. #include <a_samp>
  2. #include <a_mysql>
  3. #include <YSI\y_timers>
  4. #include <YSI\y_master>
  5. #include <YSI\y_commands>
  6. #include <YSI\y_va>
  7. #include <YSI\y_inline>
  8. #include <YSI\y_iterate>
  9. #include <easyDialog>
  10.  
  11. main(){}
  12.  
  13. enum pInfo
  14. {
  15. pSQLID,
  16. pName[24],
  17. pPassword[128],
  18. pEmail[128],
  19. pLoginTries
  20. }
  21. new PlayerInfo[MAX_PLAYERS][pInfo];
  22.  
  23. new SQL, gQuery[256], gString[512];
  24. #define function%0(%1) forward %0(%1); public %0(%1)
  25. #define SendFormatMessage va_SendClientMessage
  26.  
  27. public OnGameModeInit()
  28. {
  29. mysql_log(LOG_ERROR | LOG_WARNING, LOG_TYPE_TEXT);
  30. SQL = mysql_connect("localhost", "root", "good", "");
  31.  
  32. if(mysql_errno() != 0)
  33. print("Baza de date nu a putut fi conectata");
  34. else
  35. print("Baza de date a fost conectata cu succes.");
  36.  
  37. SetGameModeText("Diamond");
  38. AddPlayerClass(292,1653.9551,-1655.7367,22.5156,177.0045,0,0,0,0,0,0);
  39. return 1;
  40. }
  41.  
  42. public OnGameModeExit()
  43. {
  44.  
  45. return 1;
  46. }
  47.  
  48. public OnPlayerRequestClass(playerid, classid)
  49. {
  50. TogglePlayerSpectating(playerid, true);
  51. return 1;
  52. }
  53.  
  54. stock GetPlayerNameEx(playerid)
  55. {
  56. new name[24];
  57. GetPlayerName(playerid, name, 24);
  58. return name;
  59. }
  60. stock GetTimeDate()
  61. {
  62. new string[64],hour, minute, second, year, month, day;
  63.  
  64. gettime(hour, minute, second);
  65. getdate(year, month, day);
  66.  
  67. format(string, sizeof string, "%02d:%02d:%02d - %02d/%02d/%d", hour, minute, second, day, month, year);
  68.  
  69. return string;
  70. }
  71. stock ClearChat(playerid, lines = 25)
  72. {
  73. for(new i = 0; i < lines; i++)
  74. {
  75. SendClientMessage(playerid, -1, "");
  76. }
  77. return true;
  78.  
  79. }
  80.  
  81. stock mysqlQuery(const text[], va_args<>)
  82. {
  83. new string[256];
  84. va_format(string, sizeof string, text, va_start<1>);
  85. mysql_pquery(SQL, gQuery, "","");
  86. return true;
  87. }
  88.  
  89. function CheckPlayerAccount(playerid)
  90. {
  91. gString[0] = (EOS);
  92. switch(cache_num_rows())
  93. {
  94. case 0:
  95. {
  96. format(gString, sizeof gString, "Bine ai venit, %s.\nScrie o parola pentru a te inregistra pe server", GetPlayerNameEx(playerid));
  97. Dialog_Show(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Register", gString, "Register", "Quit");
  98. }
  99. case 1:
  100. {
  101. new lastLogin[64];
  102. cache_get_field_content(0, "LastLogin", lastLogin);
  103.  
  104. format(gString, sizeof gString, "Bine ai revenit, %s.\nScrie o parola pentru a te loga pe server!\n\nLastLogin: %s", GetPlayerNameEx(playerid), lastLogin);
  105. Dialog_Show(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", gString, "Login", "Quit");
  106. }
  107. }
  108. return true;
  109. }
  110.  
  111. function OnPlayerLogin(playerid)
  112. {
  113. switch(cache_num_rows())
  114. {
  115. case 0:
  116. {
  117. PlayerInfo[playerid][pLoginTries]++;
  118. if(PlayerInfo[playerid][pLoginTries] == 3)
  119. {
  120. Kick(playerid);
  121. }
  122. Dialog_Show(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", "Scrie mai jos parola contului tau:", "Login", "Quit");
  123. }
  124. case 1:
  125. {
  126. cache_get_field_content(0, "Name", PlayerInfo[playerid][pName]);
  127. cache_get_field_content(0, "Password", PlayerInfo[playerid][pPassword]);
  128. cache_get_field_content(0, "Email", PlayerInfo[playerid][pEmail]);
  129.  
  130. PlayerInfo[playerid][pSQLID] = cache_get_field_content_int(0, "ID");
  131.  
  132. ClearChat(playerid);
  133. SendFormatMessage(playerid, 0x1c5fa3, "Bine ai venit pe server, %s.", GetPlayerNameEx(playerid));
  134. TogglePlayerSpectating(playerid, false);
  135. SpawnPlayer(playerid);
  136.  
  137. }
  138. }
  139. return true;
  140. }
  141.  
  142. Dialog:DIALOG_STYLE_REGISTER(playerid, response, listitem, inputtext[])
  143. {
  144. if(!response)
  145. return Kick(playerid);
  146. if(strlen(inputtext) < 8 || strlen(inputtext) > 64)
  147. return Dialog_Show(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Register","Scrie o parola pentru a te inregistra pe server:\n{AFAFAF}Numarul de caractere trebuie sa fie format din 8 - 64 caractere.", "Register", "Quit");
  148. format(PlayerInfo[playerid][pName], 24, GetPlayerNameEx(playerid));
  149. format(PlayerInfo[playerid][pPassword], 128, inputtext);
  150.  
  151. gQuery[0] = (EOS);
  152. mysql_format(SQL, gQuery, sizeof gQuery, "INSTER INTO `server_accounts` (Name, Password, RegisterDate, LastLogin) VALUES ('%e', '%e', '%e' '%e')", GetPlayerNameEx(playerid), inputtext, GetTimeDate(), GetTimeDate());
  153.  
  154. inline CheckSQLID()
  155. {
  156. PlayerInfo[playerid][pSQLID] = cache_insert_id();
  157. printf("New Account: %s(%d).", GetPlayerNameEx(playerid), playerid);
  158. return true;
  159. }
  160.  
  161. mysql_pquery(SQL, gQuery, using inline CheckSQLID, "");
  162.  
  163. Dialog_Show(playerid, DIALOG_EMAIL, DIALOG_STYLE_INPUT, "E-Mail", "Tasteaza un e-mail valid in casuta de mai jos:", "Ok", "");
  164. return true;
  165. }
  166.  
  167. Dialog:DIALOG_EMAIL(playerid, response, listitem, inputtext[])
  168. {
  169. if(!response)
  170. return Dialog_Show(playerid, DIALOG_EMAIL, DIALOG_STYLE_INPUT, "E-Mail", "Tasteaza un e-mail valid in casuta de mai jos:", "Ok", "");
  171. if(strlen(inputtext) < 8 || strlen(inputtext) > 128 || !IsValidEmailAdress(inputtext))
  172. return Dialog_Show(playerid, DIALOG_EMAIL, DIALOG_STYLE_INPUT, "E-Mail", "Tasteaza un e-mail valid in casuta de mai jos:\n{AFAFAF}Adresa de e-mail nu este valida.", "Ok", "");
  173.  
  174. format(PlayerInfo[playerid][pEmail], 128, inputtext);
  175. mysqlQuery("UPDATE `server_accounts` SET `Email` = '%e' WHERE `ID` = '%d'", PlayerInfo[playerid][pEmail], PlayerInfo[playerid][pSQLID]);
  176. SendFormatMessage(playerid, 0x1c5fa3, "(Notice) {FFFFFF}Adresa de e-mail este: %s", PlayerInfo[playerid][pEmail]);
  177.  
  178. TogglePlayerSpectating(playerid, false);
  179. SpawnPlayer(playerid);
  180. return true;
  181. }
  182. Dialog:DIALOG_LOGIN(playerid, response, listitem, inputtext[])
  183. {
  184. if(!response)
  185. return Kick(playerid);
  186.  
  187. gQuery[0] = (EOS);
  188.  
  189. format(gQuery, sizeof gQuery, "SELECT * FROM `server_accounts` WHERE `Name` = '%e' AND `Password` = '%e' LIMIT 1", GetPlayerNameEx(playerid), inputtext);
  190. mysql_tquery(SQL, gQuery, "OnPlayerLogin", "d" playerid);
  191. return true;
  192. }
  193.  
  194. IsValidEmailAdress(const email[])
  195. {
  196. new at_pos = strfind(email, "@", true);
  197. if(at_pos >= 1)
  198. {
  199. new offset = (at_pos + 1), dot_pos = strfind(email, ".", true, offset);
  200. if(dot_pos > offset)
  201. {
  202. return 1;
  203. }
  204. }
  205. return 0;
  206. }
  207. public OnPlayerConnect(playerid)
  208. {
  209. PlayerInfo[playerid][pLoginTries] = 0;
  210.  
  211. gQuery[0] = (EOS);
  212. mysql_format(SQL, gQuery, sizeof gQuery, "SELECT * FROM `server_accounts` WHERE `Name` = '%e' LIMIT 1", GetPlayerNameEx(playerid));
  213. defer Camera(playerid);
  214. return 1;
  215. }
  216.  
  217. timer Camera[500](playerid)
  218. {
  219. SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
  220. SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
  221. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement