Advertisement
Vlad64

Untitled

Feb 14th, 2013
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.91 KB | None | 0 0
  1. #include <a_samp>
  2. #include <YSI\y_ini>
  3. #include <zcmd>
  4. #define DIALOG_REGISTER 1
  5. #define DIALOG_LOGIN 2
  6. #define DIALOG_SUCCESS_1 3
  7. #define DIALOG_SUCCESS_2 4
  8. #define DIALOG_BAN 5
  9. #define DIALOG_BANIP 6
  10. #define PATH "/Users/%s.ini"
  11. #define COL_WHITE "{FFFFFF}"
  12. #define COL_RED "{F81414}"
  13. #define COL_GREEN "{00FF22}"
  14. #define COL_LIGHTBLUE "{00CED1}"
  15. #define COLOR_GREY 0xAFAFAFAA
  16. #define COLOR_GREEN 0x33AA33AA
  17. #define COLOR_RED 0xAA3333AA
  18. #define COLOR_YELLOW 0xFFFF00AA
  19. #define COLOR_WHITE 0xFFFFFFAA
  20. #define COLOR_BLUE 0x0000BBAA
  21. #define COLOR_LIGHTBLUE 0x33CCFFAA
  22. #define COLOR_ORANGE 0xFF9900AA
  23. #define COLOR_RED 0xAA3333AA
  24. #define COLOR_LIME 0x10F441AA
  25. #define COLOR_MAGENTA 0xFF00FFFF
  26. #define COLOR_NAVY 0x000080AA
  27. #define COLOR_AQUA 0xF0F8FFAA
  28. #define COLOR_CRIMSON 0xDC143CAA
  29. #define COLOR_FLBLUE 0x6495EDAA
  30. #define COLOR_BISQUE 0xFFE4C4AA
  31. #define COLOR_BLACK 0x000000AA
  32. #define COLOR_CHARTREUSE 0x7FFF00AA
  33. #define COLOR_BROWN 0XA52A2AAA
  34. #define COLOR_CORAL 0xFF7F50AA
  35. #define COLOR_GOLD 0xB8860BAA
  36. #define COLOR_GREENYELLOW 0xADFF2FAA
  37. #define COLOR_INDIGO 0x4B00B0AA
  38. #define COLOR_IVORY 0xFFFF82AA
  39. #define COLOR_LAWNGREEN 0x7CFC00AA
  40. #define COLOR_SEAGREEN 0x20B2AAAA
  41. #define COLOR_LIMEGREEN 0x32CD32AA //<--- Dark lime
  42. #define COLOR_MIDNIGHTBLUE 0X191970AA
  43. #define COLOR_MAROON 0x800000AA
  44. #define COLOR_OLIVE 0x808000AA
  45. #define COLOR_ORANGERED 0xFF4500AA
  46. #define COLOR_PINK 0xFFC0CBAA // - Light light pink
  47. #define COLOR_SPRINGGREEN 0x00FF7FAA
  48. #define COLOR_TOMATO 0xFF6347AA // - Tomato >:/ sounds wrong lol... well... :P
  49. #define COLOR_YELLOWGREEN 0x9ACD32AA //- like military green
  50. #define COLOR_MEDIUMAQUA 0x83BFBFAA
  51. #define COLOR_MEDIUMMAGENTA 0x8B008BAA // dark magenta ^^
  52.  
  53. enum pInfo
  54. {
  55. pPass,
  56. pCash,
  57. pAdmin,
  58. pKills,
  59. pDeaths,
  60. pBanned
  61. }
  62. new PlayerInfo[MAX_PLAYERS][pInfo];
  63.  
  64. forward LoadUser_data(playerid,name[],value[]);
  65. public LoadUser_data(playerid,name[],value[])
  66. {
  67. INI_Int("Password",PlayerInfo[playerid][pPass]);
  68. INI_Int("Cash",PlayerInfo[playerid][pCash]);
  69. INI_Int("Admin",PlayerInfo[playerid][pAdmin]);
  70. INI_Int("Kills",PlayerInfo[playerid][pKills]);
  71. INI_Int("Deaths",PlayerInfo[playerid][pDeaths]);
  72. INI_Int("Banned",PlayerInfo[playerid][pBanned]);
  73. return 1;
  74. }
  75.  
  76. stock UserPath(playerid)
  77. {
  78. new string[128],playername[MAX_PLAYER_NAME];
  79. GetPlayerName(playerid,playername,sizeof(playername));
  80. format(string,sizeof(string),PATH,playername);
  81. return string;
  82. }
  83.  
  84. /*Credits to Dracoblue*/
  85. stock udb_hash(buf[]) {
  86. new length=strlen(buf);
  87. new s1 = 1;
  88. new s2 = 0;
  89. new n;
  90. for (n=0; n<length; n++)
  91. {
  92. s1 = (s1 + buf[n]) % 65521;
  93. s2 = (s2 + s1) % 65521;
  94. }
  95. return (s2 << 16) + s1;
  96. }
  97.  
  98. //COMMANDS
  99. CMD:makeadmin(playerid,params[])
  100. {
  101. if(IsPlayerAdmin(playerid))
  102. {
  103. if(isnull(params))
  104. {
  105. SendClientMessage(playerid,COLOR_WHITE,"Syntax: /makeadmin [playerid]");
  106. }
  107. else
  108. {
  109. new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128], string1[128];
  110. GetPlayerName(player1, playername, sizeof(playername));
  111. GetPlayerName(playerid, adminname, sizeof(adminname));
  112. format(string, sizeof(string), "Congratulations! You have been promoted to admin lvl 1 by %s",adminname);
  113. SendClientMessage(player1,COLOR_GREEN,string);
  114. format(string1, sizeof(string1), "You made %s a level 1 admin!",playername);
  115. SendClientMessage(playerid,COLOR_WHITE,string1);
  116. new INI:File = INI_Open(UserPath(player1));
  117. INI_WriteInt(File,"Admin",1);
  118. INI_Close(File);
  119. printf("Admin %s made %s a level 1 admin!",adminname,playername);
  120. }
  121. }
  122. else
  123. {
  124. SendClientMessage(playerid,COLOR_RED,"You have no access to this command!");
  125. }
  126. return 1;
  127. }
  128.  
  129. CMD:freeze(playerid,params[])
  130. {
  131. if(PlayerInfo[playerid][pAdmin] >=1)
  132. {
  133. new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128], string1[128];
  134. GetPlayerName(player1, playername, sizeof(playername));
  135. GetPlayerName(playerid, adminname, sizeof(adminname));
  136. if(isnull(params))
  137. {
  138. SendClientMessage(playerid,COLOR_WHITE,"Syntax: /freeze [playerid]");
  139. }
  140. else
  141. {
  142. format(string, sizeof(string), "You have frozen %s!",playername);
  143. SendClientMessage(playerid,COLOR_RED,string);
  144. format(string1, sizeof(string1), "You have been frozen by admin %s!",adminname);
  145. SendClientMessage(player1,COLOR_RED,string1);
  146. printf("Admin %s frozen %s!",adminname,playername);
  147. TogglePlayerControllable(player1,0);
  148. }
  149. }
  150. else return SendClientMessage(playerid,COLOR_RED,"You have no access to this command!");
  151. return 1;
  152. }
  153.  
  154. CMD:unfreeze(playerid,params[])
  155. {
  156. if(PlayerInfo[playerid][pAdmin] >= 1)
  157. {
  158. new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128], string1[128];
  159. GetPlayerName(player1, playername, sizeof(playername));
  160. GetPlayerName(playerid, adminname, sizeof(adminname));
  161. if(isnull(params))
  162. {
  163. SendClientMessage(playerid,COLOR_WHITE,"Syntax: /unfreeze [playerid]");
  164. }
  165. else
  166. {
  167. format(string, sizeof(string), "You have unfrozen %s!",playername);
  168. SendClientMessage(playerid,COLOR_RED,string);
  169. format(string1, sizeof(string1), "You have been unfrozen by admin %s!",adminname);
  170. SendClientMessage(player1,COLOR_RED,string1);
  171. printf("Admin %s unfrozen %s!",adminname,playername);
  172. TogglePlayerControllable(player1,1);
  173. }
  174. }
  175. else return SendClientMessage(playerid,COLOR_RED,"You have no access to this command!");
  176. return 1;
  177. }
  178.  
  179. CMD:ban(playerid,params[])
  180. {
  181. if(PlayerInfo[playerid][pAdmin] >=2)
  182. {
  183. new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  184. GetPlayerName(player1, playername, sizeof(playername));
  185. GetPlayerName(playerid, adminname, sizeof(adminname));
  186. if(isnull(params))
  187. {
  188. SendClientMessage(playerid,COLOR_WHITE,"Syntax: /ban [playerid][reason]");
  189. }
  190. else
  191. {
  192. format(string, sizeof(string), "Ban: %s was banned by %s! Reason: %s",playername,adminname,params[2]);
  193. SendClientMessageToAll(COLOR_RED,string);
  194. ShowPlayerDialog(player1,DIALOG_BAN,DIALOG_STYLE_MSGBOX,"Banned","You have been account-banned!\nFor unban request please visit our forum: <changeme>","Ok, bye","");
  195. new INI:File = INI_Open(UserPath(player1));
  196. INI_WriteInt(File,"Banned",1);
  197. INI_Close(File);
  198. Kick(player1);
  199. printf("Admin %s banned %s for %s",adminname,playername,params[2]);
  200. }
  201. }
  202. else return SendClientMessage(playerid,COLOR_RED,"You have no access to this command!");
  203. return 1;
  204. }
  205.  
  206. CMD:banip(playerid,params[])
  207. {
  208. if(PlayerInfo[playerid][pAdmin] >=3)
  209. {
  210. new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  211. GetPlayerName(player1, playername, sizeof(playername));
  212. GetPlayerName(playerid, adminname, sizeof(adminname));
  213. if(isnull(params))
  214. {
  215. SendClientMessage(playerid,COLOR_WHITE,"Syntax: /banip [playerid][reason]");
  216. }
  217. else
  218. {
  219. format(string, sizeof(string), "IP Ban: %s was ip-banned by %s! Reason: %s",playername,adminname,params[2]);
  220. SendClientMessageToAll(COLOR_RED,string);
  221. ShowPlayerDialog(player1,DIALOG_BANIP,DIALOG_STYLE_MSGBOX,"IP-Banned","You have been IP-Banned!\nFor unban request please visit our forum: <changeme>","Ok, bye","");
  222. new INI:File = INI_Open(UserPath(player1));
  223. INI_WriteInt(File,"Banned",1);
  224. INI_Close(File);
  225. Ban(player1);
  226. printf("Admin %s ip-banned %s for %s!",adminname,playername,params[2]);
  227. }
  228. }
  229. else return SendClientMessage(playerid,COLOR_RED,"You have no access to this command!");
  230. return 1;
  231. }
  232.  
  233. CMD:ahelp(playerid,params[])
  234. {
  235. if(PlayerInfo[playerid][pAdmin] >= 1)
  236. {
  237. SendClientMessage(playerid,COLOR_WHITE,"|____________________Admin Help____________________|");
  238. SendClientMessage(playerid,COLOR_WHITE,"Level 1: /ahelp /freeze /unfreeze");
  239. SendClientMessage(playerid,COLOR_WHITE,"Level 2: /ban /banip");
  240. }
  241. else return SendClientMessage(playerid,COLOR_RED,"You have no access to this command!");
  242. return 1;
  243. }
  244.  
  245. #if defined FILTERSCRIPT
  246.  
  247. public OnFilterScriptInit()
  248. {
  249. print("\n--------------------------------------");
  250. print(" Blank Filterscript by your name here");
  251. print("--------------------------------------\n");
  252. return 1;
  253. }
  254.  
  255. public OnFilterScriptExit()
  256. {
  257. return 1;
  258. }
  259.  
  260. #else
  261.  
  262. main()
  263. {
  264. print("\n----------------------------------");
  265. print("National War Gamemode");
  266. print("Created by Vlad");
  267. print("----------------------------------\n");
  268. }
  269.  
  270. #endif
  271.  
  272. public OnGameModeInit()
  273. {
  274. SetGameModeText("National War");
  275. AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  276. return 1;
  277. }
  278.  
  279. public OnGameModeExit()
  280. {
  281. return 1;
  282. }
  283.  
  284. public OnPlayerRequestClass(playerid, classid)
  285. {
  286. return 1;
  287. }
  288.  
  289. public OnPlayerConnect(playerid)
  290. {
  291. if(fexist(UserPath(playerid)))
  292. {
  293. INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
  294. ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,""COL_WHITE"Login",""COL_WHITE"Type your password below to login.","Login","Quit");
  295. }
  296. else
  297. {
  298. ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT,""COL_WHITE"Registering...",""COL_WHITE"Type your password below to register a new account.","Register","Quit");
  299. }
  300.  
  301. if(PlayerInfo[playerid][pBanned] >= 1)
  302. {
  303. SendClientMessage(playerid,COLOR_RED,"Your account is banned!");
  304. SendClientMessage(playerid,COLOR_RED,"For unban request please visit our forum: <changeme>");
  305. Kick(playerid);
  306. }
  307. return 1;
  308. }
  309. public OnPlayerDisconnect(playerid, reason)
  310. {
  311. return 1;
  312. }
  313.  
  314. public OnPlayerSpawn(playerid)
  315. {
  316. return 1;
  317. }
  318.  
  319. public OnPlayerDeath(playerid, killerid, reason)
  320. {
  321. return 1;
  322. }
  323.  
  324. public OnVehicleSpawn(vehicleid)
  325. {
  326. return 1;
  327. }
  328.  
  329. public OnVehicleDeath(vehicleid, killerid)
  330. {
  331. return 1;
  332. }
  333.  
  334. public OnPlayerText(playerid, text[])
  335. {
  336. return 1;
  337. }
  338.  
  339. public OnPlayerCommandText(playerid, cmdtext[])
  340. {
  341. return 0;
  342. }
  343.  
  344. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  345. {
  346. return 1;
  347. }
  348.  
  349. public OnPlayerExitVehicle(playerid, vehicleid)
  350. {
  351. return 1;
  352. }
  353.  
  354. public OnPlayerStateChange(playerid, newstate, oldstate)
  355. {
  356. return 1;
  357. }
  358.  
  359. public OnPlayerEnterCheckpoint(playerid)
  360. {
  361. return 1;
  362. }
  363.  
  364. public OnPlayerLeaveCheckpoint(playerid)
  365. {
  366. return 1;
  367. }
  368.  
  369. public OnPlayerEnterRaceCheckpoint(playerid)
  370. {
  371. return 1;
  372. }
  373.  
  374. public OnPlayerLeaveRaceCheckpoint(playerid)
  375. {
  376. return 1;
  377. }
  378.  
  379. public OnRconCommand(cmd[])
  380. {
  381. return 1;
  382. }
  383.  
  384. public OnPlayerRequestSpawn(playerid)
  385. {
  386. return 1;
  387. }
  388.  
  389. public OnObjectMoved(objectid)
  390. {
  391. return 1;
  392. }
  393.  
  394. public OnPlayerObjectMoved(playerid, objectid)
  395. {
  396. return 1;
  397. }
  398.  
  399. public OnPlayerPickUpPickup(playerid, pickupid)
  400. {
  401. return 1;
  402. }
  403.  
  404. public OnVehicleMod(playerid, vehicleid, componentid)
  405. {
  406. return 1;
  407. }
  408.  
  409. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  410. {
  411. return 1;
  412. }
  413.  
  414. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  415. {
  416. return 1;
  417. }
  418.  
  419. public OnPlayerSelectedMenuRow(playerid, row)
  420. {
  421. return 1;
  422. }
  423.  
  424. public OnPlayerExitedMenu(playerid)
  425. {
  426. return 1;
  427. }
  428.  
  429. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  430. {
  431. return 1;
  432. }
  433.  
  434. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  435. {
  436. return 1;
  437. }
  438.  
  439. public OnRconLoginAttempt(ip[], password[], success)
  440. {
  441. return 1;
  442. }
  443.  
  444. public OnPlayerUpdate(playerid)
  445. {
  446. return 1;
  447. }
  448.  
  449. public OnPlayerStreamIn(playerid, forplayerid)
  450. {
  451. return 1;
  452. }
  453.  
  454. public OnPlayerStreamOut(playerid, forplayerid)
  455. {
  456. return 1;
  457. }
  458.  
  459. public OnVehicleStreamIn(vehicleid, forplayerid)
  460. {
  461. return 1;
  462. }
  463.  
  464. public OnVehicleStreamOut(vehicleid, forplayerid)
  465. {
  466. return 1;
  467. }
  468.  
  469. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  470. {
  471. switch( dialogid )
  472. {
  473. case DIALOG_REGISTER:
  474. {
  475. if (!response) return Kick(playerid);
  476. if(response)
  477. {
  478. if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, ""COL_WHITE"Registering...",""COL_RED"You have entered an invalid password.\n"COL_WHITE"Type your password below to register a new account.","Register","Quit");
  479. new INI:File = INI_Open(UserPath(playerid));
  480. INI_SetTag(File,"data");
  481. INI_WriteInt(File,"Password",udb_hash(inputtext));
  482. INI_WriteInt(File,"Cash",0);
  483. INI_WriteInt(File,"Admin",0);
  484. INI_WriteInt(File,"Kills",0);
  485. INI_WriteInt(File,"Deaths",0);
  486. INI_Close(File);
  487.  
  488. SetSpawnInfo(playerid, 0, 0, 1958.33, 1343.12, 15.36, 269.15, 0, 0, 0, 0, 0, 0);
  489. SpawnPlayer(playerid);
  490. ShowPlayerDialog(playerid, DIALOG_SUCCESS_1, DIALOG_STYLE_MSGBOX,""COL_WHITE"Success!",""COL_GREEN"Great! Your Y_INI system works perfectly. Relog to save your stats!","Ok","");
  491. }
  492. }
  493.  
  494. case DIALOG_LOGIN:
  495. {
  496. if ( !response ) return Kick ( playerid );
  497. if( response )
  498. {
  499. if(udb_hash(inputtext) == PlayerInfo[playerid][pPass])
  500. {
  501. INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
  502. GivePlayerMoney(playerid, PlayerInfo[playerid][pCash]);
  503. ShowPlayerDialog(playerid, DIALOG_SUCCESS_2, DIALOG_STYLE_MSGBOX,""COL_WHITE"Success!",""COL_GREEN"You have successfully logged in!","Ok","");
  504. }
  505. else
  506. {
  507. ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,""COL_WHITE"Login",""COL_RED"You have entered an incorrect password.\n"COL_WHITE"Type your password below to login.","Login","Quit");
  508. }
  509. return 1;
  510. }
  511. }
  512. }
  513. return 1;
  514. }
  515. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  516. {
  517. return 1;
  518. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement