Guest User

Untitled

a guest
Jan 23rd, 2018
44
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 15.05 KB | None | 0 0
  1. /*
  2. Rank System(C) 2011 , All Rights Reseverd.
  3. By Sufyan
  4.  
  5. i am releasing this script on my birthday :))
  6. D : 29/07 xD Enjoy !!!
  7. */
  8. #include <a_samp>
  9. #include <dini>
  10.  
  11. #define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1 // Top of Script put this
  12. new Text:R_1[MAX_PLAYERS],Text:Stats[MAX_PLAYERS];
  13. new Text:spree;
  14.  
  15. new st[128];
  16. new name[24];
  17. new Killername[24];
  18. new Text:Textdraw0;
  19. new Text:Textdraw1;
  20. new Text:Textdraw2;
  21. new Text:Textdraw3;
  22. new Text:Textdraw4;
  23. new Text:Textdraw5;
  24.  
  25. #define COLOR_YELLOW 0xFFFF00AA
  26. #define COLOR_PINK 0xFF66FFAA
  27. #define COLOR_AQUA 0x7CFC00AA
  28. #define COLOR_WHITE 0xFFFFFFAA
  29. #define Ranks 353
  30. new Kills[MAX_PLAYERS],Deaths[MAX_PLAYERS];
  31.  
  32.  
  33. public OnFilterScriptInit()
  34. {
  35. print("\n--------------------------------------");
  36. print(" Rank System Version 1 By Sufyan ");
  37. print("--------------------------------------\n");
  38.  
  39. if(!dini_Exists("Deaths.cfg"))
  40. {
  41. dini_Create("Deaths.cfg");
  42. }
  43.  
  44. if(!dini_Exists("Kills.cfg"))
  45. {
  46. dini_Create("Kills.cfg");
  47. }
  48. Textdraw0 = TextDrawCreate(24.000000,137.000000,"Top5Killers");
  49. Textdraw1 = TextDrawCreate(1.000000,155.000000,"1. Player Kills Rank");
  50. Textdraw2 = TextDrawCreate(1.000000,167.000000,"2. Player Kills Rank");
  51. Textdraw3 = TextDrawCreate(1.000000,179.000000,"3, Player Kills Rank");
  52. Textdraw4 = TextDrawCreate(1.000000,193.000000,"4. Player Kills Rank");
  53. Textdraw5 = TextDrawCreate(1.000000,206.000000,"5. Player Kills Rank");
  54. TextDrawAlignment(Textdraw0,0);
  55. TextDrawAlignment(Textdraw1,0);
  56. TextDrawAlignment(Textdraw2,0);
  57. TextDrawAlignment(Textdraw3,0);
  58. TextDrawAlignment(Textdraw4,0);
  59. TextDrawAlignment(Textdraw5,0);
  60. TextDrawBackgroundColor(Textdraw0,0x000000ff);
  61. TextDrawBackgroundColor(Textdraw1,0x000000ff);
  62. TextDrawBackgroundColor(Textdraw2,0x000000ff);
  63. TextDrawBackgroundColor(Textdraw3,0x000000ff);
  64. TextDrawBackgroundColor(Textdraw4,0x000000ff);
  65. TextDrawBackgroundColor(Textdraw5,0x000000ff);
  66. TextDrawFont(Textdraw0,0);
  67. TextDrawLetterSize(Textdraw0,0.399999,1.000000);
  68. TextDrawFont(Textdraw1,3);
  69. TextDrawLetterSize(Textdraw1,0.399999,1.000000);
  70. TextDrawFont(Textdraw2,3);
  71. TextDrawLetterSize(Textdraw2,0.399999,1.000000);
  72. TextDrawFont(Textdraw3,3);
  73. TextDrawLetterSize(Textdraw3,0.400000,1.000000);
  74. TextDrawFont(Textdraw4,3);
  75. TextDrawLetterSize(Textdraw4,0.399999,1.000000);
  76. TextDrawFont(Textdraw5,3);
  77. TextDrawLetterSize(Textdraw5,0.399999,1.000000);
  78. TextDrawColor(Textdraw0,0xff0000ff);
  79. TextDrawColor(Textdraw1,0xffffffff);
  80. TextDrawColor(Textdraw2,0xffffffff);
  81. TextDrawColor(Textdraw3,0xffffffff);
  82. TextDrawColor(Textdraw4,0xffffffff);
  83. TextDrawColor(Textdraw5,0xffffffff);
  84. TextDrawSetOutline(Textdraw0,1);
  85. TextDrawSetOutline(Textdraw1,1);
  86. TextDrawSetOutline(Textdraw2,1);
  87. TextDrawSetOutline(Textdraw3,1);
  88. TextDrawSetOutline(Textdraw4,1);
  89. TextDrawSetOutline(Textdraw5,1);
  90. TextDrawSetProportional(Textdraw0,1);
  91. TextDrawSetProportional(Textdraw1,1);
  92. TextDrawSetProportional(Textdraw2,1);
  93. TextDrawSetProportional(Textdraw3,1);
  94. TextDrawSetProportional(Textdraw4,1);
  95. TextDrawSetProportional(Textdraw5,1);
  96. TextDrawSetShadow(Textdraw0,1);
  97. TextDrawSetShadow(Textdraw2,1);
  98. TextDrawSetShadow(Textdraw3,1);
  99. TextDrawSetShadow(Textdraw4,1);
  100. TextDrawSetShadow(Textdraw5,1);
  101. return 1;
  102. }
  103.  
  104. public OnFilterScriptExit()
  105. {
  106. printf("*** Rank System Unloaded *** ");
  107.  
  108. return 1;
  109. }
  110.  
  111.  
  112.  
  113.  
  114. public OnPlayerRequestClass(playerid, classid)
  115. {
  116. SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
  117. SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
  118. SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
  119. return 1;
  120. }
  121.  
  122. public OnPlayerConnect(playerid)
  123. {
  124.  
  125. new Pname[MAX_PLAYER_NAME];
  126. GetPlayerName(playerid, Pname, MAX_PLAYER_NAME);
  127. Deaths[playerid] = dini_Int("Deaths.cfg", Pname);
  128. Kills[playerid] = dini_Int("Kills.cfg", Pname);
  129. new Name[MAX_PLAYER_NAME];
  130. GetPlayerName(playerid,Name,sizeof(Name));
  131. new str[256];
  132. format(str,sizeof(str),"-> Welcome %s to the Server ! Enjoy Your Stay !!!",Name);
  133. // SendClientMessage(playerid,COLOR_AQUA,"This Server Using Rank System V.1 By Sufyan");
  134. SendClientMessage(playerid,COLOR_YELLOW,str);
  135. R_1[playerid] = TextDrawCreate(498.000000, 100.000000, " ");
  136. TextDrawBackgroundColor(R_1[playerid], 255);
  137. TextDrawFont(R_1[playerid], 2);
  138. TextDrawLetterSize(R_1[playerid], 0.250000, 0.899999);
  139. TextDrawColor(R_1[playerid], -1);
  140. TextDrawSetOutline(R_1[playerid], 0);
  141. TextDrawSetProportional(R_1[playerid], 1);
  142. TextDrawSetShadow(R_1[playerid], 1);
  143.  
  144. Stats[playerid] = TextDrawCreate(499.000000, 110.000000, "~r~Kills: ~w~0 ~g~Deaths: ~w~0");
  145. TextDrawBackgroundColor(Stats[playerid], 255);
  146. TextDrawFont(Stats[playerid], 2);
  147. TextDrawLetterSize(Stats[playerid], 0.159999, 1.000000);
  148. TextDrawColor(Stats[playerid], -1);
  149. TextDrawSetOutline(Stats[playerid], 0);
  150. TextDrawSetProportional(Stats[playerid], 1);
  151. TextDrawSetShadow(Stats[playerid], 1);
  152.  
  153.  
  154. //In OnGameModeInit or any other place, we procced to create our textdraw:
  155. spree = TextDrawCreate(233.000000,411.000000,"Player Double Kill");
  156. TextDrawAlignment(spree,0);
  157. TextDrawBackgroundColor(spree,0x000000ff);
  158. TextDrawFont(spree,3);
  159. TextDrawLetterSize(spree,0.499999,0.899999);
  160. TextDrawColor(spree,0xffffffff);
  161. TextDrawSetOutline(spree,1);
  162. TextDrawSetProportional(spree,1);
  163. TextDrawSetShadow(spree,1);
  164.  
  165. TextDrawShowForAll(Textdraw0);
  166. TextDrawShowForAll(Textdraw1);
  167. TextDrawShowForAll(Textdraw2);
  168. TextDrawShowForAll(Textdraw3);
  169. TextDrawShowForAll(Textdraw4);
  170. TextDrawShowForAll(Textdraw5);
  171.  
  172.  
  173. return 1;
  174. }
  175.  
  176. public OnPlayerDisconnect(playerid, reason)
  177. {
  178.  
  179. new Pname[MAX_PLAYER_NAME];
  180. GetPlayerName(playerid, Pname, MAX_PLAYER_NAME);
  181. dini_IntSet("Deaths.cfg", Pname, Deaths[playerid]);
  182. dini_IntSet("Kills.cfg", Pname, Kills[playerid]);
  183. return 1;
  184. }
  185.  
  186. public OnPlayerSpawn(playerid)
  187. {
  188. TextDrawShowForPlayer(playerid,Text:Stats[playerid]);
  189. TextDrawShowForPlayer(playerid,Text:R_1[playerid]);
  190. SetCameraBehindPlayer(playerid);
  191.  
  192.  
  193. return 1;
  194. }
  195.  
  196. public OnPlayerDeath(playerid, killerid, reason)
  197. {
  198. Kills[killerid]++;
  199. Deaths[playerid]++;
  200. UpdateTopList();
  201. GetPlayerName(playerid,name,sizeof(name));
  202. GetPlayerName(killerid,Killername,sizeof(Killername));
  203.  
  204. Kills[playerid] = 0;
  205. Kills[killerid]++;
  206. if(Kills[killerid] == 2)
  207. {
  208. format(st,sizeof(st),"~r~%s is ~n~double Kill !",Killername);
  209. GameTextForAll(st,5000,4);
  210. TextDrawSetString(spree, st);
  211. TextDrawShowForAll(spree);
  212. }
  213. if(Kills[killerid] == 3)
  214. {
  215. format(st,sizeof(st),"~r~%s is on a~w~killing spree!",Killername);
  216. GameTextForAll(st,5000,4);
  217. TextDrawSetString(spree, st);
  218. TextDrawShowForAll(spree);
  219. }
  220. if(Kills[killerid] == 6)
  221. {
  222. format(st,sizeof(st),"~~%s Wiked sick",Killername);
  223. GameTextForAll(st,5000,4);
  224. }
  225. if(Kills[killerid] == 9)
  226. {
  227. format(st,sizeof(st),"~r~%s is ~r~Godlike!",Killername);
  228. GameTextForAll(st,5000,4);
  229. }
  230. if(Kills[killerid] == 13)
  231. {
  232. format(st,sizeof(st),"~r~%s is ~w~Wiked Sick!",Killername);
  233. GameTextForAll(st,5000,4);
  234. }
  235.  
  236. return 1;
  237. }
  238.  
  239. dcmd_rank( playerid, params[] )
  240. {
  241. new id;
  242. if (strlen(params))
  243. {
  244. id = strval(params);
  245. if(IsPlayerConnected(id))
  246. {
  247. new str[256];
  248.  
  249. SendClientMessage(playerid,COLOR_YELLOW,"Current Rank:");
  250. SendClientMessage(playerid,COLOR_WHITE,GetPlayerRank(id));
  251. format(str,sizeof(str)," Kills: %d Deaths: %d ",GetPlayerKills(playerid),GetPlayerDeaths(playerid));
  252. SendClientMessage(playerid,0x00FF00AA,str);
  253.  
  254.  
  255. }
  256. else
  257. {
  258. SendClientMessage(playerid,0x00FF00AA, "Player Not Found !");
  259. }
  260. }
  261. else
  262. {
  263. SendClientMessage(playerid,0x00FF00AA, "Usage: \"/rank <playerid>\"");
  264.  
  265. }
  266. return 1;
  267. }
  268. dcmd_ranks( playerid, params[])
  269. {
  270. #pragma unused params
  271. ShowPlayerDialog(playerid,Ranks,DIALOG_STYLE_MSGBOX,"Ranks By Sufyan","0-10 Newbie Shooter\n10-75 Killer Shooter\n25-75 Master Shooter\n150-300 Pro Shooter\n300-450 Striker Shooter\n450-675 Freekill Shooter\n675-1000 Psycho Shooter\n\
  272. 1000-1500 Fatal Shooter\n1500-2250 Havoc Shooter\n2250-3375 Extreme Shooter\n3375-5100 Wild Shooter\n5100-7650 Hazardous Shooter\n7650-11475 IGI Shooter\n11475-17500 Tactical Shooter\n17500-26250 Dedicated Shooter\n26250-39375 Insane Shooter",">>","Close");
  273. return 1;
  274. }
  275. public OnPlayerText(playerid, text[])
  276. {
  277. return 1;
  278. }
  279.  
  280. public OnPlayerCommandText(playerid, cmdtext[])
  281. {
  282. dcmd(rank,4,cmdtext);
  283. dcmd(ranks,5,cmdtext);
  284.  
  285. return 0;
  286. }
  287.  
  288.  
  289. stock GetPlayerRank(playerid)
  290. {
  291.  
  292. if(Kills[playerid]<10)
  293. {
  294. return "Newbie Shooter";
  295. }
  296. else if(Kills[playerid]<25 && Kills[playerid]>=10)
  297. {
  298. return "Killer Shooter";
  299. }
  300. else if(Kills[playerid]<75 && Kills[playerid]>=25)
  301. {
  302. return "Master Shooter";
  303. }
  304. else if(Kills[playerid]<150 && Kills[playerid]>=300)
  305. {
  306. return "Pro Shooter";
  307. }
  308. else if(Kills[playerid]<300 && Kills[playerid]>=450)
  309. {
  310. return "Striker Shooter";
  311. }
  312. else if(Kills[playerid]<450 && Kills[playerid]>= 675)
  313. {
  314. return "Freekill Shooter";
  315. }
  316. else if(Kills[playerid]<675 && Kills[playerid]>= 1000)
  317. {
  318. return "Psycho Shooter";
  319. }
  320. else if(Kills[playerid]<1000 && Kills[playerid]>= 1500)
  321. {
  322. return "Fatal Shooter";
  323. }
  324. else if(Kills[playerid]<1500 && Kills[playerid]>= 2250)
  325. {
  326. return "Havoc Shooter";
  327. }
  328. else if(Kills[playerid]<2250 && Kills[playerid]>= 3375)
  329. {
  330. return "Extreme Shooter";
  331. }
  332. else if(Kills[playerid]<3375 && Kills[playerid]>= 5100)
  333. {
  334. return "Wild Shooter";
  335. }
  336. else if(Kills[playerid]<5100 && Kills[playerid]>= 7650)
  337. {
  338. return "Hazardous Shooter";
  339. }
  340. else if(Kills[playerid]<7650 && Kills[playerid]>= 11475)
  341. {
  342. return "IGI Shooter";
  343. }
  344. else if(Kills[playerid]<11475 && Kills[playerid]>= 17500)
  345. {
  346. return "Tactical Shooter";
  347. }
  348. else if(Kills[playerid]<17500 && Kills[playerid]>= 26250)
  349. {
  350. return "Dedicated Shooter";
  351. }
  352. else if(Kills[playerid]<26250 && Kills[playerid]>= 39375)
  353. {
  354. return "Insane Shooter";
  355. }
  356. else if(Kills[playerid]<39375 && Kills[playerid]>= 60000)
  357. {
  358. return "The Real Shooter";
  359. }
  360. else if(Kills[playerid]<60000 && Kills[playerid]>= 100000)
  361. {
  362. return "Professional Shooter";
  363. }
  364. else if(Kills[playerid]> 100000)
  365. {
  366. return "Rockstar Shooter";
  367. }
  368. return 1;
  369. }
  370.  
  371. stock GetPlayerKills(playerid)
  372. {
  373. return Kills[playerid];
  374. }
  375. stock GetPlayerDeaths(playerid)
  376. {
  377. return Deaths[playerid];
  378. }
  379. public OnPlayerUpdate(playerid)
  380. {
  381. new str[256];
  382. format(str,sizeof(str),"~r~Kills: ~w~%d ~g~Deaths: ~w~%d",Kills[playerid],Deaths[playerid]);
  383. TextDrawSetString(Text:Stats[playerid],str);
  384. if(Kills[playerid]<10)
  385. {
  386. TextDrawSetString(Text:R_1[playerid],"~r~RANK:~w~Newbie Shooter");
  387. }
  388. else if(Kills[playerid]<25 && Kills[playerid]>=10)
  389. {
  390. TextDrawSetString(Text:R_1[playerid],"~r~RANK:~w~Killer Shooter");
  391. }
  392. else if(Kills[playerid]<75 && Kills[playerid]>=25)
  393. {
  394. TextDrawSetString(Text:R_1[playerid],"~r~RANK:~w~Master Shooter");
  395. }
  396. else if(Kills[playerid]<150 && Kills[playerid]>=75)
  397. {
  398. TextDrawSetString(Text:R_1[playerid],"~r~RANK:~w~Pro Shooter");
  399. }
  400. else if(Kills[playerid]<300 && Kills[playerid]>=150)
  401. {
  402. TextDrawSetString(Text:R_1[playerid],"~r~RANK:~w~Striker Shooter");
  403. }
  404. else if(Kills[playerid]<450 && Kills[playerid]>= 300)
  405. {
  406. TextDrawSetString(Text:R_1[playerid],"~r~RANK:~w~Freekill Shooter");
  407. }
  408. else if(Kills[playerid]<675 && Kills[playerid]>= 1000)
  409. {
  410. TextDrawSetString(Text:R_1[playerid],"~r~RANK:~w~Psycho Shooter");
  411. }
  412. else if(Kills[playerid]<1000 && Kills[playerid]>= 1500)
  413. {
  414. TextDrawSetString(Text:R_1[playerid],"~r~RANK:~w~Fatal Shooter");
  415. }
  416. else if(Kills[playerid]<1500 && Kills[playerid]>= 2250)
  417. {
  418. TextDrawSetString(Text:R_1[playerid],"~r~RANK:~w~Havoc Shooter");
  419. }
  420. else if(Kills[playerid]<2250 && Kills[playerid]>= 3375)
  421. {
  422. TextDrawSetString(Text:R_1[playerid],"~r~RANK:~w~Extreme Shooter");
  423. }
  424. else if(Kills[playerid]<3375 && Kills[playerid]>= 5100)
  425. {
  426. TextDrawSetString(Text:R_1[playerid],"~r~RANK:~w~Wild Shooter");
  427. }
  428. else if(Kills[playerid]<5100 && Kills[playerid]>= 7650)
  429. {
  430. TextDrawSetString(Text:R_1[playerid],"~r~RANK:~w~Hazardous Shooter");
  431. }
  432. else if(Kills[playerid]<7650 && Kills[playerid]>= 11475)
  433. {
  434. TextDrawSetString(Text:R_1[playerid],"~r~RANK:~w~IGI Shooter"); /*Scripted By Sufyan*/
  435. }
  436. else if(Kills[playerid]<11475 && Kills[playerid]>= 17500)
  437. {
  438. TextDrawSetString(Text:R_1[playerid],"~r~RANK:~w~Tactical Shooter");
  439. }
  440. else if(Kills[playerid]<17500 && Kills[playerid]>= 26250)
  441. {
  442. TextDrawSetString(Text:R_1[playerid],"~r~RANK:~w~Dedicated Shooter");
  443. }
  444. else if(Kills[playerid]<26250 && Kills[playerid]>= 39375)
  445. {
  446. TextDrawSetString(Text:R_1[playerid],"~r~RANK:~w~Insane Shooter");
  447. }
  448. else if(Kills[playerid]<39375 && Kills[playerid]>= 60000)
  449. {
  450. TextDrawSetString(Text:R_1[playerid],"~r~RANK:~w~The Real Shooter");
  451. }
  452. else if(Kills[playerid]<60000 && Kills[playerid]>= 100000)
  453. {
  454. TextDrawSetString(Text:R_1[playerid],"~r~RANK:~w~Professional Shooter");
  455. }
  456. else if(Kills[playerid]> 100000)
  457. {
  458. TextDrawSetString(Text:R_1[playerid],"~r~RANK:~w~Rockstar Shooter");
  459. }
  460.  
  461.  
  462. /* if(Kills[playerid] == 11)
  463. {
  464. new str2[256];
  465. new name[MAX_PLAYER_NAME];
  466. GetPlayerName(playerid,name,sizeof(name));
  467. format(str2,sizeof(str2),">> %s is Now Killer Shooter ",name);
  468. SendClientMessageToAll(COLOR_YELLOW,str2);
  469. }
  470. else if(Kills[playerid] == 26)
  471. {
  472.  
  473.  
  474. }*/
  475. return 1;
  476. }
  477.  
  478.  
  479.  
  480. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  481. {
  482. if(dialogid == Ranks)
  483. {
  484. if(!response) return SendClientMessage(playerid, 0xFFFFFFFF, "You canceled!");
  485. ShowPlayerDialog(playerid,3,DIALOG_STYLE_MSGBOX,"Ranks By Sufyan","33975-60000 The Real Shooter\n60000-100000 Professional Shooter\n100000 + Rockstar Shooter","Close","");
  486. }
  487. return 1;
  488. }
  489.  
  490. forward texthidea();
  491. public texthidea()
  492. {
  493. TextDrawHideForAll(spree);
  494. return 1;
  495. }
  496. /*
  497. Thanks to Sufyan for make this script for you.
  498. Thanks to Knight_Rider and Venice for testing This Script.
  499.  
  500. Enjoy !!!
  501. */
  502.  
  503.  
  504. stock UpdateTopList()
  505. {
  506. new r[5],t[5];
  507. for(new i;i<MAX_PLAYERS; i++)
  508. {
  509. if(r[0] < Kills[i] && t[1] != i)
  510. {
  511. r[4] = r[3];
  512. t[4] = t[3];
  513. r[3] = r[2];
  514. t[3] = r[2];
  515. r[2] = r[1];
  516. t[2] = t[1];
  517. r[1] = r[0];
  518. t[1] = t[0];
  519. t[0] = i;
  520. r[0] = Kills[i];
  521. }
  522. new str[128];
  523. format(str,128,"1. %s %d %s",getname(t[0]),Kills[t[0]],GetPlayerRank(t[0]));
  524. TextDrawSetString(Textdraw1,str);
  525. format(str,128,"2. %s %d %s",getname(t[1]),Kills[t[1]],GetPlayerRank(t[1]));
  526. TextDrawSetString(Textdraw1,str);
  527. format(str,128,"3. %s %d %s",getname(t[2]),Kills[t[2]],GetPlayerRank(t[2]));
  528. TextDrawSetString(Textdraw1,str);
  529. format(str,128,"4. %s %d %s",getname(t[3]),Kills[t[3]],GetPlayerRank(t[3]));
  530. TextDrawSetString(Textdraw1,str);
  531. format(str,128,"5. %s %d %s",getname(t[4]),Kills[t[4]],GetPlayerRank(t[4]));
  532. TextDrawSetString(Textdraw1,str);
  533. }
  534. return 1;
  535. }
Add Comment
Please, Sign In to add comment