Advertisement
Guest User

Untitled

a guest
Nov 16th, 2018
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.84 KB | None | 0 0
  1. // Include
  2. #include <a_samp>
  3. #include <a_mysql>
  4. #include <zcmd>
  5. #include <YSI\y_va>
  6. #include <sscanf2>
  7. #include <streamer>
  8. #include <foreach>
  9. // Define
  10. #define SCM SendClientMessage
  11. #define GAMEMODE_VERSION "v0.01"
  12. #define function%0(%1) forward%0(%1); public%0(%1)
  13. #define KickEx(%1) SetTimerEx ("Kick_Ban", 500, false, "ii", %1, false)
  14. #define Ban(%1) SetTimerEx ("kick_Ban", 500, false, "ii", %1, true)
  15. // Color
  16. #define COLOR_RED 0xFF0000FF
  17. #define COLOR_LIGHTRED 0xF05D5DFF
  18. #define COLOR_BLUE 0x0008FFFF
  19. #define COLOR_LIGHTBLUE 0x05BFFCFF
  20. #define COLOR_YELLOW 0xFAFA0CFF
  21. #define COLOR_GREEN 0x09FF00FF
  22. #define COLOR_LIGHTGREEN 0x13800FFF
  23.  
  24. main() {
  25. print("\n----------------------------------");
  26. print("The server is starting....");
  27. print("----------------------------------\n");
  28. }
  29. // New
  30. new PlayerLogTries[MAX_PLAYERS];
  31. new SQL = -1, gString[1024], gQuery[512];
  32. function Kick_Ban (playerid, bool: kickban ) return (!kickban) ? Kick (playerid) : Ban (playerid);
  33. //Enum
  34. enum {
  35. DIALOG_REGISTER,
  36. DIALOG_EMAIL,
  37. DIALOG_AGE,
  38. DIALOG_GENDER,
  39. DIALOG_LOGIN
  40. };
  41. enum pInfo {
  42. pSQLID,
  43. pName[24],
  44. pPassword[32],
  45. pEmail[32],
  46. pGender,
  47. pSkin,
  48. pAge
  49. };
  50. new PlayerInfo[MAX_PLAYERS][pInfo];
  51. //public importante
  52. public OnGameModeInit() {
  53. SQL = mysql_connect("localhost", "root", "samp_db", "");
  54. if(mysql_errno() != 0)
  55. {
  56. printf("Conexiunea la baza de date a esuat ---> Server Inchis ~~~");
  57. }
  58. else
  59. {
  60. printf("Conexiunea la baza de date a reusit!");
  61. }
  62. SetGameModeText(GAMEMODE_VERSION);
  63. AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  64. return 1;
  65. }
  66.  
  67. public OnPlayerRequestClass(playerid, classid) {
  68. SpawnPlayer(playerid);
  69. return 1;
  70. }
  71. public OnPlayerConnect(playerid)
  72. {
  73. ResetVars(playerid);
  74. gQuery[0] = (EOS);
  75. mysql_format(SQL, gQuery, 256, "SELECT * FROM `users` WHERE `Name` = '%s' LIMIT 1", GetName(playerid));
  76. mysql_tquery(SQL, gQuery, "CheckAccount", "d");
  77. return 1;
  78. }
  79. public OnPlayerSpawn(playerid) {
  80. SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]);
  81. return 1;
  82. }
  83. // Function
  84. function UpdateVar(playerid, var_name[], var_value) {
  85. if(playerid == INVALID_PLAYER_ID) return 1;
  86. gQuery[0] = (EOS);
  87. mysql_format(SQL, gQuery, 256, "UPDATE `users` SET `%s` = '%d' WHERE `ID` = '%d' LIMIT 1", var_name, var_value, PlayerInfo[pInfo][pSQLID]);
  88. mysql_tquery(SQL, gQuery, "", "");
  89. return 1;
  90. }
  91. function CheckAccount(playerid) {
  92. switch(cache_num_rows()) {
  93. case 0: ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Register", "Acest cont nu este inregistrat!", "Register", "Cancel");
  94. case 1: ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", "Te rog sa scrii parola contului tau.", "Login", "Cancel");
  95. }
  96. return 1;
  97. }
  98. function newAccount(playerid) {
  99. PlayerInfo[playerid][pSQLID] = cache_insert_id();
  100. printf("Un nou cont a fost creat in baza de date: %d, %s, %s, %s, %s, %d", PlayerInfo[pInfo][pSQLID], PlayerInfo[pInfo][pName], PlayerInfo[pInfo][pPassword], PlayerInfo[pInfo][pEmail], PlayerInfo[pInfo][pGender], PlayerInfo[pInfo][pAge]);
  101. return 1;
  102. }
  103. function OnPlayerLogin(playerid) {
  104. switch(cache_num_rows()) {
  105. case 0: {
  106. PlayerLogTries[playerid]++;
  107. ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", "Te rog sa scrii parola contului tau.", "Login", "Cancel");
  108. va_SendClientMessage(playerid, COLOR_LIGHTRED, "Parola incorecta! Mai ai %d/3 incercari", PlayerLogTries[playerid]);
  109. if(PlayerLogTries[playerid] == 3) return KickEx(playerid);
  110. }
  111. case 1: {
  112. PlayerInfo[playerid][pSQLID] = cache_get_field_content_int(0, "ID");
  113. PlayerInfo[playerid][pName] = cache_get_field_content_int(0, "Name");
  114. PlayerInfo[playerid][pGender] = cache_get_field_content_int(0, "Gender");
  115. PlayerInfo[playerid][pSkin] = cache_get_field_content_int(0, "Skin");
  116. PlayerInfo[playerid][pAge] = cache_get_field_content_int(0, "Age");
  117.  
  118. cache_get_field_content(0, "Email", PlayerInfo[playerid][pEmail]);
  119. cache_get_field_content(0, "Password", PlayerInfo[playerid][pPassword]);
  120.  
  121. va_SendClientMessage(playerid, -1, "Welcome back, %s!", GetName(playerid));
  122. SpawnPlayer(playerid);
  123. }
  124. }
  125. return 1;
  126. }
  127. // Public create
  128. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
  129. gQuery[0] = (EOS);
  130. switch(dialogid) {
  131. case DIALOG_LOGIN: {
  132. if(!response) return KickEx(playerid);
  133. mysql_format(SQL, gQuery, 256, "SELECT * FROM `users` WHERE `Name`='%s' AND `Password`='%s' LIMIT 1", GetName(playerid), inputtext);
  134. mysql_tquery(SQL, gQuery, "OnPlayerLogin", "i");
  135. }
  136. case DIALOG_REGISTER: {
  137. if(!response) return KickEx(playerid);
  138. if(strlen(inputtext) < 6 || strlen(inputtext) > 32) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Register", "Now you are in the step to register, please put your password below\n\n{ffffff}You must have at least 6 characters and a maximum of 32 characters", "Register", "Cancel");
  139.  
  140. format(PlayerInfo[playerid][pPassword], 32, inputtext);
  141. mysql_format(SQL, gQuery, 256, "INSERT INTO `users` (`Name`, `Password`) VALUES ('%s', '%s')", GetName(playerid), inputtext);
  142. mysql_tquery(SQL, gQuery, "newAccount", "i", playerid);
  143. ShowPlayerDialog(playerid, DIALOG_EMAIL, DIALOG_STYLE_INPUT, "Email", "Te rog sa-ti introduci adresa de mail pentru a trece mai departe.", "Select", "Cancel");
  144. }
  145. case DIALOG_EMAIL: {
  146. if(!response) {
  147. ShowPlayerDialog(playerid, DIALOG_EMAIL, DIALOG_STYLE_INPUT, "Email", "Te rog sa-ti introduci adresa de mail pentru a trece mai departe.", "Select", "Cancel");
  148. SendClientMessage(playerid, -1, "Trebuie sa introduci o adresa de mail valida.");
  149. return 1;
  150. }
  151. format(PlayerInfo[playerid][pEmail], 32, inputtext);
  152. va_SendClientMessage(playerid, -1, "Adresa ta de mail este %s", PlayerInfo[playerid][pEmail]);
  153. mysql_format(SQL, gQuery, 256, "UPDATE `users` SET `Email` = '%s' WHERE ID = '%d' LIMIT 1", inputtext, PlayerInfo[playerid][pSQLID]);
  154. mysql_tquery(SQL, gQuery, "", "");
  155. ShowPlayerDialog(playerid, DIALOG_GENDER, DIALOG_STYLE_MSGBOX, "Gender", "Te rog sa iti setezi sexul pentru a trece mai departe.", "Masculin", "Feminin");
  156. }
  157. case DIALOG_GENDER: {
  158. switch(response) {
  159. case 0: {
  160. PlayerInfo[playerid][pGender] = 1;
  161. PlayerInfo[playerid][pSkin] = 12;
  162. }
  163. case 1: {
  164. PlayerInfo[playerid][pGender] = 0;
  165. PlayerInfo[playerid][pSkin] = 250;
  166. }
  167. }
  168. UpdateVar(playerid, "Skin", PlayerInfo[playerid][pSkin]);
  169. UpdateVar(playerid, "Gender", PlayerInfo[playerid][pGender]);
  170. va_SendClientMessage(playerid, -1, "Sexul pe care l-ai selectat este %s.", (PlayerInfo[playerid][pGender] == 0) ? ("Masculin") : ("Feminin"));
  171. ShowPlayerDialog(playerid, DIALOG_AGE, DIALOG_STYLE_INPUT, "Age", "Te rog selecteaza-ti varsta caracterului tau.", "Select", "Cancel");
  172. }
  173. case DIALOG_AGE: {
  174. if(!response) {
  175. ShowPlayerDialog(playerid, DIALOG_AGE, DIALOG_STYLE_INPUT, "Age", "Te rog selecteaza-ti varsta caracterului tau.", "Select", "Cancel");
  176. SendClientMessage(playerid, -1, "Selecteaza varsta caracterului tau.");
  177. return 1;
  178. }
  179. if(strval(inputtext) < 12 || strval(inputtext) > 60) return ShowPlayerDialog(playerid, DIALOG_AGE, DIALOG_STYLE_INPUT, "Age", "Varsta caracterului tau trebuie sa fie intre 12 si 60 de ani.", "Select", "Cancel");
  180. PlayerInfo[playerid][pAge] = strval(inputtext);
  181. UpdateVar(playerid, "Age", PlayerInfo[playerid][pAge]);
  182. va_SendClientMessage(playerid, -1, "Varsta caracterului tau este %s", PlayerInfo[playerid][pAge]);
  183. SpawnPlayer(playerid);
  184. }
  185. }
  186. return 1;
  187. }
  188. // Stock
  189. stock ResetVars(playerid) {
  190. PlayerLogTries[playerid] = 0;
  191. return 1;
  192. }
  193. stock GetName(playerid) {
  194. new Name[MAX_PLAYER_NAME];
  195. GetPlayerName(playerid, Name, sizeof(Name));
  196. return Name;
  197. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement