Advertisement
Guest User

Untitled

a guest
Jun 26th, 2013
920
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.44 KB | None | 0 0
  1. //----------------------------------------------------------
  2. //
  3. // CBUG TOP LIST 1.0
  4. // A CBUG top listing filterscript by `justinnater`
  5. //
  6. //----------------------------------------------------------
  7.  
  8. #include <a_samp>
  9. #include <zcmd>
  10. #include <sscanf2>
  11. #include <dini>
  12.  
  13. #define COLOR_WHITE 0xFFFFFFFF
  14.  
  15. new matching[MAX_PLAYERS];
  16. new ammo[MAX_PLAYERS];
  17. new ptickcount[MAX_PLAYERS];
  18. new Weapons[MAX_PLAYERS][11], Ammo[MAX_PLAYERS][11];
  19.  
  20. #define MAX_CHARS MAX_PLAYER_NAME+1
  21. #define MAX_STRING 256
  22.  
  23. new Float:px[MAX_PLAYERS],Float:py[MAX_PLAYERS],Float:pz[MAX_PLAYERS];
  24. new
  25. top1,
  26. top2,
  27. top3,
  28. top4,
  29. top5;
  30.  
  31. new
  32. topname1[MAX_STRING],
  33. topname2[MAX_STRING],
  34. topname3[MAX_STRING],
  35. topname4[MAX_STRING],
  36. topname5[MAX_STRING];
  37.  
  38. public OnFilterScriptInit()
  39. {
  40. new file[24];
  41. format(file,sizeof(file),"cbugrecords.txt");
  42. if(dini_Exists(file)) return loadglobals();
  43. else
  44. {
  45. dini_Create(file);
  46. dini_IntSet(file,"top1",-1);
  47. dini_IntSet(file,"top2",-1);
  48. dini_IntSet(file,"top3",-1);
  49. dini_IntSet(file,"top4",-1);
  50. dini_IntSet(file,"top5",-1);
  51. dini_Set(file,"topname1","None");
  52. dini_Set(file,"topname2","None");
  53. dini_Set(file,"topname3","None");
  54. dini_Set(file,"topname4","None");
  55. dini_Set(file,"topname5","None");
  56. loadglobals();
  57. }
  58. for(new h=0; h<=MAX_PLAYERS; h++)
  59. {
  60. if(IsPlayerConnected(h))
  61. {
  62. matching[h]=0;
  63. ammo[h]=-1;
  64. }
  65. }
  66. return 1;
  67. }
  68. public OnFilterScriptExit()
  69. {
  70. new file[24];
  71. format(file,sizeof(file),"cbugrecords.txt");
  72. dini_IntSet(file,"top1",top1);
  73. dini_IntSet(file,"top2",top2);
  74. dini_IntSet(file,"top3",top3);
  75. dini_IntSet(file,"top4",top4);
  76. dini_IntSet(file,"top5",top5);
  77.  
  78. dini_Set(file,"topname1",topname1);
  79. dini_Set(file,"topname2",topname2);
  80. dini_Set(file,"topname3",topname3);
  81. dini_Set(file,"topname4",topname4);
  82. dini_Set(file,"topname5",topname5);
  83. return 1;
  84. }
  85. public OnPlayerConnect(playerid)
  86. {
  87. matching[playerid]=0;
  88. ammo[playerid]=-1;
  89. return 1;
  90. }
  91. public OnPlayerUpdate(playerid)
  92. {
  93. if(matching[playerid]==1 && GetPlayerWeapon(playerid)==24)
  94. {
  95. new playerammo=GetPlayerAmmo(playerid);
  96. if(playerammo!=ammo[playerid])
  97. {
  98. ammo[playerid]=playerammo;
  99. if(ammo[playerid]==6) return ptickcount[playerid]=GetTickCount();
  100. if(ammo[playerid]==0)
  101. {
  102. ammo[playerid]=-1;
  103. matching[playerid]=0;
  104. new string[32];
  105. new time=GetTickCount()-ptickcount[playerid];
  106. format(string,sizeof(string),"Time: %s seconds (/records)",Comma(time));
  107. SendClientMessage(playerid,COLOR_WHITE,string);
  108. SetPlayerPos(playerid,px[playerid],py[playerid],pz[playerid]);
  109. for(new j=0; j<11; j++) GivePlayerWeapon(playerid, Weapons[playerid][j], Ammo[playerid][j]);
  110. if(top1==-1)
  111. {
  112. top1=time;
  113. topname1=PlayerName(playerid);
  114. return 1;
  115. }
  116. else if(time<top1)
  117. {
  118. top5=top4;
  119. top4=top3;
  120. top3=top2;
  121. top2=top1;
  122. top1=time;
  123. topname5=topname4;
  124. topname4=topname3;
  125. topname3=topname2;
  126. topname2=topname1;
  127. topname1=PlayerName(playerid);
  128. return 1;
  129. }
  130. else if(top2==-1)
  131. {
  132. top2=time;
  133. topname2=PlayerName(playerid);
  134. return 1;
  135. }
  136. else if(time<top2)
  137. {
  138. top5=top4;
  139. top4=top3;
  140. top3=top2;
  141. top2=time;
  142. topname5=topname4;
  143. topname4=topname3;
  144. topname3=topname2;
  145. topname2=PlayerName(playerid);
  146. return 1;
  147. }
  148. else if(top3==-1)
  149. {
  150. top3=time;
  151. topname3=PlayerName(playerid);
  152. return 1;
  153. }
  154. else if(time<top3)
  155. {
  156. top5=top4;
  157. top4=top3;
  158. top3=time;
  159. topname5=topname4;
  160. topname4=topname3;
  161. topname3=PlayerName(playerid);
  162. return 1;
  163. }
  164. else if(top4==-1)
  165. {
  166. top4=time;
  167. topname4=PlayerName(playerid);
  168. return 1;
  169. }
  170. else if(time<top4)
  171. {
  172. top5=top4;
  173. top4=time;
  174. topname5=topname4;
  175. topname4=PlayerName(playerid);
  176. return 1;
  177. }
  178. else if(top5==-1)
  179. {
  180. top5=time;
  181. topname5=PlayerName(playerid);
  182. return 1;
  183. }
  184. else if(time<top5)
  185. {
  186. top5=time;
  187. topname5=PlayerName(playerid);
  188. return 1;
  189. }
  190. return 1;
  191. }
  192. }
  193. }
  194. return 1;
  195. }
  196. CMD:cbug(playerid,params[])
  197. {
  198. new Float:x,Float:y,Float:z;
  199. GetPlayerPos(playerid,x,y,z);
  200. px[playerid]=x,py[playerid]=y,pz[playerid]=z;
  201. for(new j=0; j<11; j++) GetPlayerWeaponData(playerid, j, Weapons[playerid][j], Ammo[playerid][j]);
  202. ResetPlayerWeapons(playerid);
  203. GivePlayerWeapon(playerid,24,7);
  204. ammo[playerid]=7;
  205. matching[playerid]=1;
  206. SetPlayerPos(playerid,1544.1321,-1353.3595,329.4742);
  207. return 1;
  208. }
  209. CMD:records(playerid,params[])
  210. {
  211. new string[512];
  212. format(string,sizeof(string),"1: %s [%s]\n2: %s [%s]\n3: %s [%s]\n4: %s [%s]\n5: %s [%s]",Comma(top1),topname1,Comma(top2),topname2,Comma(top3),topname3,Comma(top4),topname4,Comma(top5),topname5);
  213. ShowPlayerDialog(playerid, 4313, DIALOG_STYLE_MSGBOX, "Records:", string, "Close", "");
  214. return 1;
  215. }
  216. stock Comma(numbers) //by Gamer931215
  217. {
  218. new temp[24],counter = -1;
  219. valstr(temp,numbers);
  220. for(new i = strlen(temp);i > 0; i--)
  221. {
  222. counter++;
  223. if(counter == 3)
  224. {
  225. strins(temp,",",i);
  226. counter = 0;
  227. }
  228. }
  229. return temp;
  230. }
  231. stock PlayerName(playerid)
  232. {
  233. new name[MAX_PLAYER_NAME];
  234. GetPlayerName(playerid, name, MAX_PLAYER_NAME);
  235. return name;
  236. }
  237. stock loadglobals()
  238. {
  239. new file[24];
  240. format(file,sizeof(file),"cbugrecords.txt");
  241. top1=dini_Int(file,"top1");
  242. top2=dini_Int(file,"top2");
  243. top3=dini_Int(file,"top3");
  244. top4=dini_Int(file,"top4");
  245. top5=dini_Int(file,"top5");
  246. topname1=dini_Get(file,"topname1");
  247. topname2=dini_Get(file,"topname2");
  248. topname3=dini_Get(file,"topname3");
  249. topname4=dini_Get(file,"topname4");
  250. topname5=dini_Get(file,"topname5");
  251. return 1;
  252. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement