Guest User

erorcun

a guest
Sep 16th, 2009
327
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.92 KB | None | 0 0
  1. /*
  2. Seifistration System with login menu by Seif
  3. GUI modification by erorcun
  4. */
  5. /*x---------------------------------Important-------------------------------------x*/
  6. //**INCLUDES**//
  7. #include <a_samp>
  8. //**PRAGMAS**//
  9.  
  10. //**MISC**//
  11.  
  12. /*x---------------------------------Defining-------------------------------------x*/
  13. //**COLORS*//
  14. #define GREEN 0x21DD00FF
  15. #define RED 0xE60000FF
  16. #define ADMIN_RED 0xFB0000FF
  17. #define YELLOW 0xFFFF00FF
  18. #define ORANGE 0xF97804FF
  19. #define LIGHTRED 0xFF8080FF
  20. #define LIGHTBLUE 0x00C2ECFF
  21. #define PURPLE 0xB360FDFF
  22. #define PLAYER_COLOR 0xFFFFFFFF
  23. #define BLUE 0x1229FAFF
  24. #define LIGHTGREEN 0x38FF06FF
  25. #define DARKPINK 0xE100E1FF
  26. #define DARKGREEN 0x008040FF
  27. #define ANNOUNCEMENT 0x6AF7E1FF
  28. #define COLOR_SYSTEM 0xEFEFF7AA
  29. #define GREY 0xCECECEFF
  30. #define PINK 0xD52DFFFF
  31. #define DARKGREY 0x626262FF
  32. #define AQUAGREEN 0x03D687FF
  33. #define NICESKY 0x99FFFFAA
  34. #define WHITE 0xFFFFFFFF
  35. //**MISC**//
  36. #define ACCOUNTS_FOLDER "/sAccounts/%s.ini"
  37. #define LOGIN_DELAY 3 // Seconds. Default = 3 seconds
  38. //**VARIABLES**//
  39. enum aInfo
  40. {
  41. aPassword[128],
  42. aLogged,
  43. };
  44. new AccountInfo[MAX_PLAYERS][aInfo];
  45. new register[MAX_PLAYERS];
  46. new login[MAX_PLAYERS];
  47. forward LogIn(playerid);
  48. forward OnPlayerUpdate(playerid);
  49. /*x---------------------------------CallBacks-------------------------------------x*/
  50. public OnGameModeInit()
  51. {
  52. SendRconCommand("reloadfs Seifistration");
  53. return 1;
  54. }
  55.  
  56. public OnPlayerConnect(playerid)
  57. {
  58. AccountInfo[playerid][aLogged] = 0;
  59. return 1;
  60. }
  61.  
  62. public OnPlayerDisconnect(playerid, reason)
  63. {
  64. OnPlayerUpdate(playerid);
  65. AccountInfo[playerid][aLogged] = 0;
  66. register[playerid] = 0;
  67. login[playerid] = 0;
  68. return 1;
  69. }
  70.  
  71. public OnPlayerSpawn(playerid)
  72. {
  73. new name[MAX_PLAYER_NAME];
  74. GetPlayerName(playerid, name, sizeof(name));
  75. new string[128];
  76. format(string, sizeof(string), ACCOUNTS_FOLDER, name);
  77. if (AccountInfo[playerid][aLogged] == 0)
  78. {
  79. if (!fexist(string))
  80. {
  81. new kayitmsg[256];
  82. format(kayitmsg,256,"Welcome to the server\n\n%s please open a new account\n\nEnter the new password:",name);
  83. ShowPlayerDialog(playerid,0,DIALOG_STYLE_INPUT,"Register",kayitmsg,"Register","Quit");
  84. register[playerid] = 1;
  85. login[playerid] = 0;
  86. }
  87. else if (fexist(string))
  88. {
  89. new girismsg[256];
  90. format(girismsg,256,"Welcome to the server\n\nUser Name: %s\n\nEnter your password:",name);
  91. ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Login",girismsg,"Login","Quit");
  92. register[playerid] = 0;
  93. login[playerid] = 1;
  94. }
  95. }
  96. return 1;
  97. }
  98.  
  99. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  100. {
  101. if (response == 1)
  102. {
  103. if(dialogid == 0)
  104. {
  105. Encrypt(inputtext);
  106. new player[MAX_PLAYER_NAME];
  107. GetPlayerName(playerid, player, 50);
  108. new string3[32];
  109. new playername3[MAX_PLAYER_NAME];
  110. GetPlayerName(playerid, playername3, sizeof(playername3));
  111. format(string3, sizeof(string3), ACCOUNTS_FOLDER, playername3);
  112. new ip[20];
  113. GetPlayerIp(playerid,ip,sizeof(ip));
  114. new File: hFile = fopen(string3, io_write);
  115. if (hFile)
  116. {
  117. strmid(AccountInfo[playerid][aPassword], inputtext, 0, strlen(inputtext), 255);
  118. new var[128];
  119. format(var, 128, "Password=%s\n", AccountInfo[playerid][aPassword]);fwrite(hFile, var);
  120. format(var, 128, "IP=%s\n",ip);fwrite(hFile, var);
  121. fclose(hFile);
  122. printf("%s is signed up.",playername3);
  123. SendClientMessage(playerid, GREEN, "|- Have you registered. You can login now. -|");
  124. new girismsg[256];
  125. format(girismsg,256,"Welcome to the server\n\nUser Name: %s\n\nEnter your password:",playername3);
  126. ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Login",girismsg,"Login","Quit");
  127. register[playerid] = 0;
  128. login[playerid] = 1;
  129. }
  130. }
  131. if(dialogid == 1)
  132. {
  133. Encrypt(inputtext);
  134. new string2[128];
  135. new playername2[MAX_PLAYER_NAME];
  136. GetPlayerName(playerid, playername2, sizeof(playername2));
  137. format(string2, sizeof(string2), ACCOUNTS_FOLDER, playername2);
  138. new File: UserFile = fopen(string2, io_read);
  139. if ( UserFile )
  140. {
  141. new PassData[256];
  142. new keytmp[256], valtmp[256];
  143. fread( UserFile , PassData , sizeof( PassData ) );
  144. keytmp = ini_GetKey( PassData );
  145. if( strcmp( keytmp , "Password" , true ) == 0 )
  146. {
  147. valtmp = ini_GetValue( PassData );
  148. strmid(AccountInfo[playerid][aPassword], valtmp, 0, strlen(valtmp)-1, 255);
  149. }
  150. if(strcmp(AccountInfo[playerid][aPassword],inputtext, true ) == 0 )
  151. {
  152. for(new p = 0; p < strlen(AccountInfo[playerid][aPassword]); p++)
  153. {
  154. inputtext[p] = '?';
  155. }
  156. SetTimerEx("LogIn", LOGIN_DELAY*1000, 0, "d", playerid);
  157. printf("%s is logged in.",playername2);
  158. new key[256] , val[256];
  159. new Data[256];
  160. while ( fread( UserFile , Data , sizeof( Data ) ) )
  161. {
  162. key = ini_GetKey( Data );
  163. /*if(strcmp(key, "AdminLevel", true) == 0) // This is only an example if you want to add more stuff to store in a file.
  164. {
  165. val = ini_GetValue( Data );
  166. AccountInfo[playerid][AdminLevel] = strval(val); // Uncommenting this will give you errors if the variable isn't defined.
  167. }*/
  168. }
  169. fclose(UserFile);
  170.  
  171. }
  172. else
  173. {
  174. new girismsg[256];
  175. printf("%s is used the wrong password.",playername2);
  176. format(girismsg,256,"WRONG PASSWORD\n\nPlease enter your password:");
  177. ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Login",girismsg,"Login","Quit");
  178. login[playerid] = 1;
  179. register[playerid] = 0;
  180. fclose(UserFile);
  181. return 1;
  182. }
  183. }
  184. }
  185. if(dialogid == 2)
  186. {
  187. Encrypt(inputtext);
  188. new string2[128];
  189. new playername2[MAX_PLAYER_NAME];
  190. GetPlayerName(playerid, playername2, sizeof(playername2));
  191. format(string2, sizeof(string2), ACCOUNTS_FOLDER, playername2);
  192. new File: UserFile = fopen(string2, io_read);
  193. if ( UserFile )
  194. {
  195. new PassData[256];
  196. new keytmp[256], valtmp[256];
  197. fread( UserFile , PassData , sizeof( PassData ) );
  198. keytmp = ini_GetKey( PassData );
  199. if( strcmp( keytmp , "Password" , true ) == 0 )
  200. {
  201. valtmp = ini_GetValue( PassData );
  202. strmid(AccountInfo[playerid][aPassword], valtmp, 0, strlen(valtmp)-1, 255);
  203. }
  204. if(strcmp(AccountInfo[playerid][aPassword],inputtext, true ) == 0 )
  205. {
  206. for(new p = 0; p < strlen(AccountInfo[playerid][aPassword]); p++)
  207. {
  208. inputtext[p] = '?';
  209. }
  210. SetTimerEx("LogIn", LOGIN_DELAY*1000, 0, "d", playerid);
  211. printf("%s is logged in.",playername2);
  212. new key[256] , val[256];
  213. new Data[256];
  214. while ( fread( UserFile , Data , sizeof( Data ) ) )
  215. {
  216. key = ini_GetKey( Data );
  217. /*if(strcmp(key, "AdminLevel", true) == 0) // This is only an example if you want to add more stuff to store in a file.
  218. {
  219. val = ini_GetValue( Data );
  220. AccountInfo[playerid][AdminLevel] = strval(val); // Uncommenting this will give you errors if the variable isn't defined.
  221. }*/
  222. }
  223. fclose(UserFile);
  224.  
  225. }
  226. else
  227. {
  228. new girismsg[256];
  229. printf("%s is used the wrong password.",playername2);
  230. format(girismsg,256,"WRONG PASSWORD\n\nPlease enter your password:");
  231. ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Login",girismsg,"Login","Quit");
  232. login[playerid] = 1;
  233. register[playerid] = 0;
  234. fclose(UserFile);
  235. return 1;
  236. }
  237. }
  238. }
  239. }
  240. else return Kick(playerid);
  241. return 0;
  242. }
  243.  
  244. public OnPlayerDeath(playerid, killerid, reason)
  245. {
  246. return 1;
  247. }
  248.  
  249. public OnVehicleSpawn(vehicleid)
  250. {
  251. return 1;
  252. }
  253.  
  254. public OnVehicleDeath(vehicleid, killerid)
  255. {
  256. return 1;
  257. }
  258.  
  259. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  260. {
  261. return 1;
  262. }
  263.  
  264. public OnPlayerExitVehicle(playerid, vehicleid)
  265. {
  266. return 1;
  267. }
  268.  
  269. public OnPlayerStateChange(playerid, newstate, oldstate)
  270. {
  271. return 1;
  272. }
  273.  
  274. public OnPlayerEnterCheckpoint(playerid)
  275. {
  276. return 1;
  277. }
  278.  
  279. public OnPlayerLeaveCheckpoint(playerid)
  280. {
  281. return 1;
  282. }
  283.  
  284. public OnPlayerEnterRaceCheckpoint(playerid)
  285. {
  286. return 1;
  287. }
  288.  
  289. public OnPlayerLeaveRaceCheckpoint(playerid)
  290. {
  291. return 1;
  292. }
  293.  
  294. public OnRconCommand(cmd[])
  295. {
  296. return 1;
  297. }
  298.  
  299. public OnObjectMoved(objectid)
  300. {
  301. return 1;
  302. }
  303.  
  304. public OnPlayerObjectMoved(playerid, objectid)
  305. {
  306. return 1;
  307. }
  308.  
  309. public OnPlayerPickUpPickup(playerid, pickupid)
  310. {
  311. return 1;
  312. }
  313.  
  314. public OnPlayerSelectedMenuRow(playerid, row)
  315. {
  316. return 1;
  317. }
  318.  
  319. public OnPlayerExitedMenu(playerid)
  320. {
  321. return 1;
  322. }
  323.  
  324. stock ini_GetKey( line[] )
  325. {
  326. new keyRes[256];
  327. keyRes[0] = 0;
  328. if ( strfind( line , "=" , true ) == -1 ) return keyRes;
  329. strmid( keyRes , line , 0 , strfind( line , "=" , true ) , sizeof( keyRes) );
  330. return keyRes;
  331. }
  332.  
  333. stock ini_GetValue( line[] )
  334. {
  335. new valRes[256];
  336. valRes[0]=0;
  337. if ( strfind( line , "=" , true ) == -1 ) return valRes;
  338. strmid( valRes , line , strfind( line , "=" , true )+1 , strlen( line ) , sizeof( valRes ) );
  339. return valRes;
  340. }
  341.  
  342. public LogIn(playerid)
  343. {
  344. AccountInfo[playerid][aLogged] = 1;
  345. register[playerid] = 0;
  346. login[playerid] = 0;
  347. return 1;
  348. }
  349.  
  350. public OnPlayerUpdate(playerid)
  351. {
  352. if(IsPlayerConnected(playerid))
  353. {
  354. if(AccountInfo[playerid][aLogged] == 1)
  355. {
  356. new string3[128];
  357. new playername3[MAX_PLAYER_NAME];
  358. GetPlayerName(playerid, playername3, sizeof(playername3));
  359. format(string3, sizeof(string3), ACCOUNTS_FOLDER, playername3);
  360. new ip[20];
  361. GetPlayerIp(playerid,ip,sizeof(ip));
  362. new File: hFile = fopen(string3, io_write);
  363. if (hFile)
  364. {
  365. new var[128];
  366. format(var, 128, "Password=%s\n", AccountInfo[playerid][aPassword]);fwrite(hFile, var);
  367. format(var, 128, "IP=%s\n",ip);fwrite(hFile, var);
  368. fclose(hFile);
  369. }
  370. }
  371. }
  372. return 1;
  373. }
  374.  
  375. Encrypt(string[])
  376. {
  377. for(new x=0; x < strlen(string); x++)
  378. {
  379. string[x] += (3^x) * (x % 15);
  380. if(string[x] > (0xff))
  381. {
  382. string[x] -= 256;
  383. }
  384. }
  385. }
Advertisement
Add Comment
Please, Sign In to add comment