Advertisement
Guest User

Larceny Speed Radar [INC]

a guest
Oct 22nd, 2010
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.36 KB | None | 0 0
  1. /*
  2. *
  3. * -= LSR INCLUDE =-
  4. * Larceny Speed Radar
  5. *
  6. * Autor: Larceny
  7. * Special Thanks to: Protioso ([VGS]Protioso_OC)
  8. * First Release: 18, Setember, 2010 - V1.0
  9. * Second Release: 18, Setember, 2010 - V1.2
  10. * Third Release: 19, Setember, 2010 - V1.3
  11. * Fourth Release: 20, Setember, 2010 - V1.7
  12. * Fifth Release: 20, Setember, 2010 - V1.8
  13. * Sixth Release: 22, October, 2010 - V1.9
  14. *
  15. */
  16. #include "a_samp"
  17.  
  18. #define MAX_Radar 100
  19. #define LSR_TIME_CHECK 1500 // Time in miliseconds.
  20.  
  21. /*Function List -----------------------------------------------------------------------------||
  22.  
  23. native CreateRadar(Float:x, Float:y, Float:z, speedmax, radiation, pickup, activated, virtualword = -1);
  24. native DestroyRadar(lrid);
  25. native RadarExists(lrid);
  26. native SetRadarPos(lrid, Float:x, Float:y, Float:z);
  27. native SetRadarVirtualWorld(lrid, virtualworld);
  28. native SetRadarActivate(lrid, toggle);
  29. native SetRadarMaxSpeed(lrid, speed);
  30. native SetRadarRadius(lrid, Float:radius);
  31. native SetRadarPickup(lrid, pickupid);
  32. native GetRadarPos(lrid, &Float:x, &Float:y, &Float:z);
  33. native GetRadarVirtualWorld(lrid);
  34.  
  35. /------------------------------------------------------------------------------------------------------------||*/
  36.  
  37. enum lrdef
  38. {
  39. LSR_VW,
  40. LSR_OID,
  41. Float:LSR_X,
  42. Float:LSR_Y,
  43. Float:LSR_Z,
  44. LSR_speedmax,
  45. LSR_radiation,
  46. LSR_pickup,
  47. LSR_activated
  48. };
  49.  
  50. static LSR_Timer, LSR_Total, LSR_Radar[MAX_Radar][lrdef];
  51.  
  52. #define LSR_CheckTimerAd() if(!LSR_Timer) LSR_Timer = SetTimer("CheckRadar", LSR_TIME_CHECK, 1)
  53. #define LSR_CheckTimerRe() if(!LSR_Total){KillTimer(LSR_Timer); LSR_Timer = 0;}
  54.  
  55. forward CheckRadar();
  56. forward HideRadar(playerid);
  57. forward PlayerInPoint(Float:radi, playerid, Float:x, Float:y, Float:z);
  58. forward OnPlayerEnterRadar(playerid, speed, radarid);
  59. forward UseFlashRadar();
  60. forward MoverPickup(lrid,Float:x,Float:y,Float:z);
  61.  
  62. new Text:Flash;
  63. new UseFlash;
  64.  
  65. stock CreateRadar(Float:x, Float:y, Float:z, speedmax, radiation, pickup, activated, virtualword = -1)
  66. {
  67. new bid = LSR_ProcurarIDLivre();
  68. if(bid == -1)
  69. {
  70. printf("[LSP:] Radar limit was exceeded!(Max:%d) Increase the value or delete some...", MAX_Radar);
  71. return 0;
  72. }
  73. LSR_Radar[bid][LSR_OID] = CreatePickup(pickup,1,x,y,z+2,-1);
  74. LSR_Radar[bid][LSR_X] = x;
  75. LSR_Radar[bid][LSR_Y] = y;
  76. LSR_Radar[bid][LSR_Z] = z;
  77. LSR_Radar[bid][LSR_speedmax] = speedmax;
  78. LSR_Radar[bid][LSR_VW] = virtualword;
  79. LSR_Radar[bid][LSR_radiation] = radiation;
  80. LSR_Radar[bid][LSR_pickup] = pickup;
  81. LSR_Radar[bid][LSR_activated] = activated;
  82. LSR_CheckTimerAd();
  83. LSR_Total++;
  84. return bid;
  85. }
  86.  
  87. stock DestroyRadar(lrid)
  88. {
  89. if(!LSR_Radar[lrid][LSR_OID]) return 0;
  90. LSR_Total--;
  91. DestroyPickup(LSR_Radar[lrid][LSR_pickup]);
  92. LSR_Radar[lrid][LSR_OID] = 0;
  93. LSR_CheckTimerRe()
  94. return 1;
  95. }
  96.  
  97. stock RadarExists(lrid) return (!LSR_Radar[lrid][LSR_OID]) ? 0 : 1;
  98.  
  99. stock SetRadarPos(lrid, Float:x, Float:y, Float:z)
  100. {
  101. if(!LSR_Radar[lrid][LSR_OID]) return 0;
  102. LSR_Radar[lrid][LSR_X] = x;
  103. LSR_Radar[lrid][LSR_Y] = y;
  104. LSR_Radar[lrid][LSR_Z] = z;
  105. return MoverPickup(LSR_Radar[lrid][LSR_OID], x, y, z);
  106. }
  107.  
  108. public MoverPickup(lrid,Float:x,Float:y,Float:z)
  109. {
  110. if(LSR_Radar[lrid][LSR_OID])
  111. {
  112. DestroyPickup(LSR_Radar[lrid][LSR_OID]);
  113. LSR_Radar[lrid][LSR_X] = x;
  114. LSR_Radar[lrid][LSR_Y] = y;
  115. LSR_Radar[lrid][LSR_Z] = z;
  116. CreatePickup(LSR_Radar[lrid][LSR_pickup], 1, x, y, z, -1);
  117. return 1;
  118. }
  119. return 0;
  120. }
  121.  
  122. stock SetRadarVirtualWorld(lrid, virtualworld)
  123. {
  124. if(!LSR_Radar[lrid][LSR_OID]) return 0;
  125. LSR_Radar[lrid][LSR_VW] = virtualworld;
  126. DestroyPickup(LSR_Radar[lrid][LSR_OID]);
  127. new x = LSR_Radar[lrid][LSR_X];
  128. new y = LSR_Radar[lrid][LSR_Y];
  129. new z = LSR_Radar[lrid][LSR_Z];
  130. CreatePickup(LSR_Radar[lrid][LSR_pickup], 1, x, y, z, virtualworld);
  131. return 1;
  132. }
  133.  
  134. stock SetRadarAtivate(lrid, toggle)
  135. {
  136. if(!LSR_Radar[lrid][LSR_OID]) return 0;
  137. if(toggle == 1 || toggle == true){LSR_Radar[lrid][LSR_ativado] = 1;}
  138. if(toggle == 0 || toggle == false){LSR_Radar[lrid][LSR_ativado] = 0;}
  139. return MoverPickup(LSR_Radar[lrid][LSR_OID], x, y, z);
  140. }
  141.  
  142. stock SetRadarMaxSpeed(lrid, speed)
  143. {
  144. if(!LSR_Radar[lrid][LSR_OID]) return 0;
  145. return LSR_Radar[lrid][LSR_speedmax] = speed;
  146. }
  147.  
  148. stock SetRadarRadius(lrid, Float:radius)
  149. {
  150. if(!LSR_Radar[lrid][LSR_OID]) return 0;
  151. return LSR_Radar[lrid][LSR_radiation] = radius;
  152. }
  153.  
  154.  
  155. stock SetRadarPickup(lrid, pickupid)
  156. {
  157. if(!LSR_Radar[lrid][LSR_OID]) return 0;
  158. LSR_Radar[lrid][LSR_pickup] = pickupid;
  159. return MoverPickup(lrid, LSR_Radar[lrid][LSR_X], LSR_Radar[lrid][LSR_Y], LSR_Radar[lrid][LSR_Z]+2);
  160. }
  161.  
  162. stock GetRadarPos(lrid, &Float:x, &Float:y, &Float:z)
  163. {
  164. if(!LSR_Radar[lrid][LSR_OID])
  165. {
  166. x = 0.0;
  167. y = 0.0;
  168. z = 0.0;
  169. }
  170. x = LSR_Radar[lrid][LSR_X];
  171. y = LSR_Radar[lrid][LSR_Y];
  172. z = LSR_Radar[lrid][LSR_Z];
  173. }
  174.  
  175. stock GetRadarVirtualWorld(lrid)
  176. {
  177. if(!LSR_Radar[lrid][LSR_OID]) return 0;
  178. return LSR_Radar[lrid][LSR_VW];
  179. }
  180.  
  181. public PlayerInPoint(Float:radi, playerid, Float:x, Float:y, Float:z)
  182. {
  183. if(IsPlayerConnected(playerid))
  184. {
  185. new Float:oldposx, Float:oldposy, Float:oldposz;
  186. new Float:tempposx, Float:tempposy, Float:tempposz;
  187. GetPlayerPos(playerid, oldposx, oldposy, oldposz);
  188. tempposx = (oldposx -x);
  189. tempposy = (oldposy -y);
  190. tempposz = (oldposz -z);
  191. if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
  192. {
  193. return 1;
  194. }
  195. }
  196. return 0;
  197. }
  198.  
  199. public CheckRadar()
  200. {
  201. for(new i = 0; i < MAX_PLAYERS; i++)
  202. {
  203. for(new b = 1; b <= LSR_Total; b++)
  204. {
  205. if(LSR_Radar[b][LSR_OID])
  206. {
  207. if(LSR_Radar[b][LSR_activated] == 1)
  208. {
  209. if(LSR_Radar[b][LSR_VW] == -1 || GetPlayerVirtualWorld(i) == LSR_Radar[b][LSR_VW])
  210. {
  211. if(PlayerInPoint(LSR_Radar[b][LSR_radiation], i, LSR_Radar[b][LSR_X], LSR_Radar[b][LSR_Y], LSR_Radar[b][LSR_Z]))
  212. {
  213. RadarForPlayer(i, LSR_Radar[b][LSR_speedmax], LSR_Radar[b][LSR_OID]);
  214. }
  215. }
  216. }
  217. }
  218. }
  219. }
  220. }
  221.  
  222. stock LSR_ProcurarIDLivre()
  223. {
  224. for(new b = 1; b < MAX_Radar; b++) if(!LSR_Radar[b][LSR_OID]) return b;
  225. return -1;
  226. }
  227.  
  228. stock GetSpeed(playerid, bool:velo)
  229. {
  230. new Float:Vx,Float:Vy,Float:Vz,Float:rtn;
  231. if(IsPlayerInAnyVehicle(playerid)) GetVehicleVelocity(GetPlayerVehicleID(playerid),Vx,Vy,Vz); else GetPlayerVelocity(playerid,Vx,Vy,Vz);
  232. rtn = floatsqroot(floatabs(floatpower(Vx + Vy + Vz,2)));
  233. return velo?floatround(rtn * 100 * 1.61):floatround(rtn * 100);
  234. }
  235.  
  236. stock RadarForPlayer(playerid, speedlimit, radarid)
  237. {
  238. new currentspeed = GetSpeed(playerid, true);
  239. if(currentspeed >= speedlimit)
  240. {
  241. if(UseFlash == 1){TextDrawShowForPlayer(playerid, Flash); SetTimerEx("HideRadar", 1000, 0, "d", playerid);}
  242. PlayerPlaySound(playerid,1132,0.0,0.0,0.0);
  243. OnPlayerEnterRadar(playerid, currentspeed, radarid);
  244. }
  245. return 1;
  246. }
  247. public HideRadar(playerid)
  248. {
  249. TextDrawHideForPlayer(playerid, Flash);
  250. return 1;
  251. }
  252.  
  253. public UseFlashRadar()
  254. {
  255. UseFlash = 1;
  256. Flash = TextDrawCreate(635.000000, 432.000000, "__");
  257. TextDrawBackgroundColor(Flash, 255);
  258. TextDrawFont(Flash, 1);
  259. TextDrawLetterSize(Flash, 0.500000, -45.900001);
  260. TextDrawColor(Flash, -256);
  261. TextDrawSetOutline(Flash, 0);
  262. TextDrawSetProportional(Flash, 1);
  263. TextDrawSetShadow(Flash, 1);
  264. TextDrawUseBox(Flash, 1);
  265. TextDrawBoxColor(Flash, -86);
  266. TextDrawTextSize(Flash, 6.000000, 35.000000);
  267. return 1;
  268. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement