Advertisement
Guest User

Untitled

a guest
May 31st, 2017
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 21.32 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. #include <dcmd>
  9. //**PRAGMAS**//
  10.  
  11. //**MISC**//
  12.  
  13. /*x---------------------------------Defining-------------------------------------x*/
  14. //**COLORS*//
  15. #define GREEN 0x21DD00FF
  16. #define RED 0xE60000FF
  17. #define ADMIN_RED 0xFB0000FF
  18. #define YELLOW 0xFFFF00FF
  19. #define ORANGE 0xF97804FF
  20. #define LIGHTRED 0xFF8080FF
  21. #define LIGHTBLUE 0x00C2ECFF
  22. #define PURPLE 0xB360FDFF
  23. #define PLAYER_COLOR 0xFFFFFFFF
  24. #define BLUE 0x1229FAFF
  25. #define LIGHTGREEN 0x38FF06FF
  26. #define DARKPINK 0xE100E1FF
  27. #define DARKGREEN 0x008040FF
  28. #define ANNOUNCEMENT 0x6AF7E1FF
  29. #define COLOR_SYSTEM 0xEFEFF7AA
  30. #define GREY 0xCECECEFF
  31. #define PINK 0xD52DFFFF
  32. #define DARKGREY 0x626262FF
  33. #define AQUAGREEN 0x03D687FF
  34. #define NICESKY 0x99FFFFAA
  35. #define WHITE 0xFFFFFFFF
  36. //**MISC**//
  37. #define ACCOUNTS_FOLDER "/Accounts/%s.ini"
  38. #define BLACKLIST_FOLDER "/Blacklist/%s.txt"
  39. #define LOGIN_DELAY 3 // Seconds. Default = 3 seconds
  40. //**VARIABLES**//
  41. enum aInfo
  42. {
  43. aPassword[128],
  44. aLogged,
  45. Score,
  46. Money,
  47. AdminLevel,
  48.  
  49. }
  50. ;
  51. new AccountInfo[MAX_PLAYERS][aInfo];
  52. new register[MAX_PLAYERS];
  53. new login[MAX_PLAYERS];
  54. forward GivePlayerEP(playerid, amount);
  55. forward LogIn(playerid);
  56. forward OnPlayerUpdate(playerid);
  57. forward GetPlayerMotel(playerid);
  58. forward SetPlayerMotel(playerid, id);
  59. forward PayTimer();
  60. forward GivePlayerServerMoney(playerid, Float:amount);
  61. forward GetPlayerServerMoney(playerid);
  62. /*x---------------------------------CallBacks-------------------------------------x*/
  63.  
  64. public OnPlayerConnect(playerid)
  65. {
  66. AccountInfo[playerid][aLogged] = 0;
  67. AccountInfo[playerid][AdminLevel] = 0;
  68. AccountCheck(playerid);
  69. return 1;
  70. }
  71.  
  72. public OnPlayerDisconnect(playerid, reason)
  73. {
  74. OnPlayerUpdate(playerid);
  75. AccountInfo[playerid][aLogged] = 0;
  76. register[playerid] = 0;
  77. login[playerid] = 0;
  78. return 1;
  79. }
  80.  
  81. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  82. {
  83. if (response == 1)
  84. {
  85. if(dialogid == 12345)
  86. {
  87. if(strlen(inputtext))
  88. {
  89. Encrypt(inputtext);
  90. new player[MAX_PLAYER_NAME];
  91. GetPlayerName(playerid, player, 50);
  92. new string3[32];
  93. new playername3[MAX_PLAYER_NAME];
  94. GetPlayerName(playerid, playername3, sizeof(playername3));
  95. format(string3, sizeof(string3), ACCOUNTS_FOLDER, playername3);
  96. new ip[20];
  97. GetPlayerIp(playerid,ip,sizeof(ip));
  98. new File: hFile = fopen(string3, io_write);
  99. if (hFile)
  100. {
  101. strmid(AccountInfo[playerid][aPassword], inputtext, 0, strlen(inputtext), 255);
  102. new var[128];
  103. format(var, 128, "Password=%s\n", AccountInfo[playerid][aPassword]);fwrite(hFile, var);
  104. format(var, 128, "IP=%s\n",ip);fwrite(hFile, var);
  105. fclose(hFile);
  106. printf("%s is signed up.",playername3);
  107. SendClientMessage(playerid, GREEN, "|- Ihr Eintrag wurde erfolgreich durchgeführt. Jetzt können Sie sich anmelden. -|");
  108. new girismsg[256];
  109. format(girismsg,256,"Welcome\n\nUsername: %s\n\nPlease enter your password:",playername3);
  110. ShowPlayerDialog(playerid,12346,DIALOG_STYLE_INPUT,"Login",girismsg,"Login","Reset");
  111. register[playerid] = 0;
  112. login[playerid] = 1;
  113. }
  114. }
  115. else if(!strlen(inputtext))
  116. {
  117. new name[MAX_PLAYER_NAME];
  118. GetPlayerName(playerid, name, sizeof(name));
  119. new kayitmsg[256];
  120. format(kayitmsg,256,"Welcome\n\n%s please register your name\n\nEnter new password",name);
  121. ShowPlayerDialog(playerid,12345,DIALOG_STYLE_INPUT,"Register",kayitmsg,"Register"," Reset");
  122. register[playerid] = 1;
  123. login[playerid] = 0;
  124. }
  125. }
  126. if(dialogid == 12346)
  127. {
  128. Encrypt(inputtext);
  129. new string2[128];
  130. new playername2[MAX_PLAYER_NAME];
  131. GetPlayerName(playerid, playername2, sizeof(playername2));
  132. format(string2, sizeof(string2), ACCOUNTS_FOLDER, playername2);
  133. new File: UserFile = fopen(string2, io_read);
  134. if ( UserFile )
  135. {
  136. new PassData[256];
  137. new keytmp[256], valtmp[256];
  138. fread( UserFile , PassData , sizeof( PassData ) );
  139. keytmp = ini_GetKey( PassData );
  140. if( strcmp( keytmp , "Password" , true ) == 0 )
  141. {
  142. valtmp = ini_GetValue( PassData );
  143. strmid(AccountInfo[playerid][aPassword], valtmp, 0, strlen(valtmp)-1, 255);
  144. }
  145. if(strcmp(AccountInfo[playerid][aPassword],inputtext, true ) == 0)
  146. {
  147. if(strlen(inputtext))
  148. {
  149. for(new p = 0; p < strlen(AccountInfo[playerid][aPassword]); p++)
  150. {
  151. inputtext[p] = '?';
  152. }
  153. SetTimerEx("LogIn", LOGIN_DELAY*1000, 0, "d", playerid);
  154. printf("%s is logged in.",playername2);
  155. new key[256] , val[256];
  156. new Data[256];
  157. while ( fread( UserFile , Data , sizeof( Data ) ) )
  158. {
  159. key = ini_GetKey( Data );
  160. if(strcmp(key, "Score", true) == 0)
  161. {
  162. val = ini_GetValue(Data);
  163. SetPlayerScore(playerid, strval(val));
  164. }
  165. else if(strcmp(key, "Money", true) == 0)
  166. {
  167. val = ini_GetValue(Data);
  168. ResetPlayerMoney(playerid);
  169. GivePlayerMoney(playerid, strval(val));
  170. }
  171. else if(strcmp(key, "AdminLevel", true) == 0)
  172. {
  173. val = ini_GetValue(Data);
  174. AccountInfo[playerid][AdminLevel] = strval(val);
  175. }
  176. }
  177. fclose(UserFile);
  178.  
  179. }
  180. }
  181. else
  182. {
  183. if(strlen(inputtext))
  184. {
  185. new girismsg[256];
  186. format(girismsg,256,"INCORRECT PASSWORD\n\nPlease enter your password:");
  187. ShowPlayerDialog(playerid,12347,DIALOG_STYLE_INPUT,"Login",girismsg,"Login","Reset");
  188. login[playerid] = 1;
  189. register[playerid] = 0;
  190. fclose(UserFile);
  191. return 1;
  192. }
  193. }
  194. if(!strlen(inputtext))
  195. {
  196. new girismsg[256];
  197. printf("%s falsches Passwort verwendet wurde.",playername2);
  198. format(girismsg,256,"INCORRECT PASSWORD\n\nPlease enter your password:");
  199. ShowPlayerDialog(playerid,12347,DIALOG_STYLE_INPUT,"Login",girismsg,"Login","Reset");
  200. login[playerid] = 1;
  201. register[playerid] = 0;
  202. fclose(UserFile);
  203. return 1;
  204. }
  205. }
  206. }
  207. if(dialogid == 12347)
  208. {
  209. Encrypt(inputtext);
  210. new string2[128];
  211. new playername2[MAX_PLAYER_NAME];
  212. GetPlayerName(playerid, playername2, sizeof(playername2));
  213. format(string2, sizeof(string2), ACCOUNTS_FOLDER, playername2);
  214. new File: UserFile = fopen(string2, io_read);
  215. if ( UserFile )
  216. {
  217. new PassData[256];
  218. new keytmp[256], valtmp[256];
  219. fread( UserFile , PassData , sizeof( PassData ) );
  220. keytmp = ini_GetKey( PassData );
  221. if( strcmp( keytmp , "Password" , true ) == 0 )
  222. {
  223. valtmp = ini_GetValue( PassData );
  224. strmid(AccountInfo[playerid][aPassword], valtmp, 0, strlen(valtmp)-1, 255);
  225. }
  226. if(strcmp(AccountInfo[playerid][aPassword],inputtext, true ) == 0)
  227. {
  228. if(strlen(inputtext))
  229. {
  230. for(new p = 0; p < strlen(AccountInfo[playerid][aPassword]); p++)
  231. {
  232. inputtext[p] = '?';
  233. }
  234. SetTimerEx("LogIn", LOGIN_DELAY*1000, 0, "d", playerid);
  235. printf("%s is logged in.",playername2);
  236. new key[256] , val[256];
  237. new Data[256];
  238. while ( fread( UserFile , Data , sizeof( Data ) ) )
  239. {
  240. key = ini_GetKey( Data );
  241. if(strcmp(key, "Score", true) == 0)
  242. {
  243. val = ini_GetValue(Data);
  244. SetPlayerScore(playerid, strval(val));
  245. }
  246. else if(strcmp(key, "Money", true) == 0)
  247. {
  248. val = ini_GetValue(Data);
  249. ResetPlayerMoney(playerid);
  250. GivePlayerMoney(playerid, strval(val));
  251. }
  252. else if(strcmp(key, "AdminLevel", true) == 0)
  253. {
  254. val = ini_GetValue(Data);
  255. AccountInfo[playerid][AdminLevel] = strval(val);
  256. }
  257.  
  258. }
  259. fclose(UserFile);
  260.  
  261. }
  262. }
  263. else
  264. {
  265. if(strlen(inputtext))
  266. {
  267. new girismsg[256];
  268. printf("%s falsches Passwort verwendet wurde.",playername2);
  269. format(girismsg,256,"INCORRECT PASSWORD\n\nPlease enter your password:");
  270. ShowPlayerDialog(playerid,12347,DIALOG_STYLE_INPUT,"Login",girismsg,"Login","Reset");
  271. login[playerid] = 1;
  272. register[playerid] = 0;
  273. fclose(UserFile);
  274. return 1;
  275. }
  276. }
  277. if(!strlen(inputtext))
  278. {
  279. new girismsg[256];
  280. printf("%s falsches Passwort verwendet wurde.",playername2);
  281. format(girismsg,256,"INCORRECT PASSWORD\n\nPlease enter your password:");
  282. ShowPlayerDialog(playerid,12347,DIALOG_STYLE_INPUT,"Login",girismsg,"Login","Reset");
  283. login[playerid] = 1;
  284. register[playerid] = 0;
  285. fclose(UserFile);
  286. return 1;
  287. }
  288. }
  289. }
  290. }
  291. else
  292. {
  293. if(dialogid == 12345 || dialogid == 12346 || dialogid == 12347)
  294. {
  295. AccountCheck(playerid);
  296. }
  297. }
  298. return 0;
  299. }
  300.  
  301. public OnPlayerDeath(playerid, killerid, reason)
  302. {
  303. return 1;
  304. }
  305.  
  306. public OnVehicleSpawn(vehicleid)
  307. {
  308. return 1;
  309. }
  310.  
  311. public OnVehicleDeath(vehicleid, killerid)
  312. {
  313. return 1;
  314. }
  315.  
  316. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  317. {
  318. return 1;
  319. }
  320.  
  321. public OnPlayerExitVehicle(playerid, vehicleid)
  322. {
  323. return 1;
  324. }
  325.  
  326. public OnPlayerStateChange(playerid, newstate, oldstate)
  327. {
  328. return 1;
  329. }
  330.  
  331. public OnPlayerEnterCheckpoint(playerid)
  332. {
  333. return 1;
  334. }
  335.  
  336. public OnPlayerLeaveCheckpoint(playerid)
  337. {
  338. return 1;
  339. }
  340.  
  341. public OnPlayerEnterRaceCheckpoint(playerid)
  342. {
  343. return 1;
  344. }
  345.  
  346. public OnPlayerLeaveRaceCheckpoint(playerid)
  347. {
  348. return 1;
  349. }
  350.  
  351. public OnRconCommand(cmd[])
  352. {
  353. return 1;
  354. }
  355.  
  356. public OnObjectMoved(objectid)
  357. {
  358. return 1;
  359. }
  360.  
  361. public OnPlayerObjectMoved(playerid, objectid)
  362. {
  363. return 1;
  364. }
  365.  
  366. public OnPlayerPickUpPickup(playerid, pickupid)
  367. {
  368. return 1;
  369. }
  370.  
  371. public OnPlayerSelectedMenuRow(playerid, row)
  372. {
  373. return 1;
  374. }
  375.  
  376. public OnPlayerExitedMenu(playerid)
  377. {
  378. return 1;
  379. }
  380.  
  381. stock ini_GetKey( line[] )
  382. {
  383. new keyRes[256];
  384. keyRes[0] = 0;
  385. if ( strfind( line , "=" , true ) == -1 ) return keyRes;
  386. strmid( keyRes , line , 0 , strfind( line , "=" , true ) , sizeof( keyRes) );
  387. return keyRes;
  388. }
  389.  
  390. stock ini_GetValue( line[] )
  391. {
  392. new valRes[256];
  393. valRes[0]=0;
  394. if ( strfind( line , "=" , true ) == -1 ) return valRes;
  395. strmid( valRes , line , strfind( line , "=" , true )+1 , strlen( line ) , sizeof( valRes ) );
  396. return valRes;
  397. }
  398.  
  399. AccountCheck(playerid)
  400. {
  401. new name[MAX_PLAYER_NAME];
  402. GetPlayerName(playerid, name, sizeof(name));
  403. new string[128];
  404. format(string, sizeof(string), ACCOUNTS_FOLDER, name);
  405. if (AccountInfo[playerid][aLogged] == 0)
  406. {
  407. if (!fexist(string))
  408. {
  409. new kayitmsg[256];
  410. format(kayitmsg,256,"Welcome\n\n%s please register your name\n\nEnter your new password:",name);
  411. ShowPlayerDialog(playerid,12345,DIALOG_STYLE_INPUT,"Register",kayitmsg,"Register"," Reset");
  412. register[playerid] = 1;
  413. login[playerid] = 0;
  414. }
  415. else if (fexist(string))
  416. {
  417. new girismsg[256];
  418. format(girismsg,256,"Welcome\n\nUsername: %s\n\nPlease enter your password:",name);
  419. ShowPlayerDialog(playerid,12346,DIALOG_STYLE_INPUT,"Login",girismsg,"Login","Reset");
  420. register[playerid] = 0;
  421. login[playerid] = 1;
  422. }
  423. }
  424. return 1;
  425. }
  426.  
  427. public LogIn(playerid)
  428. {
  429. AccountInfo[playerid][aLogged] = 1;
  430. register[playerid] = 0;
  431. login[playerid] = 0;
  432. return 1;
  433. }
  434.  
  435. public OnPlayerUpdate(playerid)
  436. {
  437. if(IsPlayerConnected(playerid))
  438. {
  439. if(AccountInfo[playerid][aLogged] == 1)
  440. {
  441. AccountInfo[playerid][Money] = GetPlayerMoney(playerid);
  442. AccountInfo[playerid][Score] = GetPlayerScore(playerid);
  443. new string3[128];
  444. new playername3[MAX_PLAYER_NAME];
  445. GetPlayerName(playerid, playername3, sizeof(playername3));
  446. format(string3, sizeof(string3), ACCOUNTS_FOLDER, playername3);
  447. new ip[20];
  448. GetPlayerIp(playerid,ip,sizeof(ip));
  449. new File: hFile = fopen(string3, io_write);
  450. if (hFile)
  451. {
  452. new var[128];
  453. format(var, 128, "Password=%s\n", AccountInfo[playerid][aPassword]);fwrite(hFile, var);
  454. format(var, 128, "IP=%s\n",ip);fwrite(hFile, var);
  455. format(var, 128, "AdminLevel=%i\n", AccountInfo[playerid][AdminLevel]);fwrite(hFile, var);
  456. format(var, 128, "Score=%i\n", AccountInfo[playerid][Score]);fwrite(hFile, var);
  457. format(var, 128, "Money=%i\n", AccountInfo[playerid][Money]);fwrite(hFile, var);
  458. fclose(hFile);
  459. }
  460. }
  461. }
  462. return 1;
  463. }
  464.  
  465. Encrypt(string[])
  466. {
  467. for(new x=0; x < strlen(string); x++)
  468. {
  469. string[x] += (3^x) * (x % 15);
  470. if(string[x] > (0xff))
  471. {
  472. string[x] -= 256;
  473. }
  474. }
  475. }
  476.  
  477. public OnPlayerCommandText(playerid, cmdtext[])
  478. {
  479. dcmd(kick, 4, cmdtext);
  480. dcmd(ban, 3, cmdtext);
  481. return 0;
  482. }
  483.  
  484. dcmd_kick(playerid, params[])
  485. {
  486. if(AccountInfo[playerid][AdminLevel] < 2) SendClientMessage(playerid, RED, "-Warning- You need to be level 2 to use this command!");
  487. else
  488. {
  489. new id, reason[64];
  490. if(sscanf(params, "is", id, reason)) SendClientMessage(playerid, RED, "-Warning- Syntax: /kick [id] [reason]");
  491. else if(id == INVALID_PLAYER_ID) SendClientMessage(playerid, RED, "-Warning- This is an invalid ID!");
  492. else
  493. {
  494. new string[256];
  495. new name[100];
  496. new name2[100];
  497. GetPlayerName(playerid, name, 100);
  498. GetPlayerName(id, name2, 100);
  499. format(string, 256, "-PlayerInfo- Administrator %s has kicked %s[%i] (Reason: %s)", name, name2, id, reason);
  500. SendClientMessageToAll(YELLOW, string);
  501. Kick(id);
  502. }
  503. }
  504. return 1;
  505. }
  506.  
  507. dcmd_ban(playerid, params[])
  508. {
  509. if(AccountInfo[playerid][AdminLevel] < 3) SendClientMessage(playerid, RED, "-Warning- You need to be level 3 to use this command!");
  510. else
  511. {
  512. new id, reason[64];
  513. if(sscanf(params, "is", id, reason)) SendClientMessage(playerid, RED, "-Warning- Syntax: /ban [id] [time (minutes)] [reason]");
  514. else if(id == INVALID_PLAYER_ID) SendClientMessage(playerid, RED, "-Warning- This is an invalid ID!");
  515. else
  516. {
  517. new string[256];
  518. new name[100];
  519. new name2[100];
  520. GetPlayerName(playerid, name, 100);
  521. GetPlayerName(id, name2, 100);
  522. format(string, 256, "-PlayerInfo- Administrator %s has banned %s[%i] (Reason: %s)", name, name2, id, reason);
  523. SendClientMessageToAll(YELLOW, string);
  524. Ban(id);
  525. }
  526. }
  527. return 1;
  528. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement