Guest User

SpeedCap.inc

a guest
Jun 9th, 2017
428
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.53 KB | None | 0 0
  1. //SpeedCap.inc by WhatName.
  2. /*
  3. Credits to: WhatName for SpeedCap.inc, Nas for useful suggestions, Pottus for helping, Incognito for streamer and samp team for a-samp
  4. */
  5.  
  6. #if defined _SpeedCap_included
  7. #endinput
  8. #define _SpeedCap_included
  9. #endif
  10.  
  11. #if defined _inc_streamer
  12. #else
  13. #error "SpeedCap: please include streamer before SpeedCap."
  14. #endif
  15.  
  16. /*
  17. native CreateSpeedCap(capid, Float:x, Float:y, Float:z, Float:radius, Float:speed_limit);
  18. native RemoveSpeedCap(capid);
  19. native RemoveAllSpeedCap();
  20. native GetSpeedCapSpeedLimit(capid);
  21. */
  22.  
  23. #define MAX_SPEED_CAP 500
  24.  
  25. enum INC_Speed_Limit
  26. {
  27. Float:sl_speed,
  28. sl_areaid
  29. }
  30. new SL_Speed[MAX_SPEED_CAP][INC_Speed_Limit];
  31.  
  32. stock GetSpeedCapSpeedLimit(capid)
  33. {
  34. return floatround(SL_Speed[capid][sl_speed], floatround_round);
  35. }
  36.  
  37. stock CreateSpeedCap(capid, Float:x, Float:y, Float:z, Float:radius, Float:speed_limit)
  38. {
  39. SL_Speed[capid][sl_speed] = speed_limit;
  40. SL_Speed[capid][sl_areaid] = CreateDynamicSphere(x, y, z, radius);
  41. return 1;
  42. }
  43.  
  44. stock RemoveSpeedCap(capid)
  45. {
  46. SL_Speed[capid][sl_speed] = 0.0000;
  47. SL_Speed[capid][sl_areaid] = CreateDynamicSphere(-99999, -99999, -99999, -99999);
  48. return 1;
  49. }
  50.  
  51. stock RemoveAllSpeedCap()
  52. {
  53. for(new sl_i = 0; sl_i < MAX_SPEED_CAP; sl_i++)
  54. {
  55. SL_Speed[sl_i][sl_speed] = 0.0000;
  56. SL_Speed[sl_i][sl_areaid] = CreateDynamicSphere(-99999, -99999, -99999, -99999);
  57. }
  58. return 1;
  59. }
  60.  
  61. forward OnPlayerDriveFast(playerid, capid);
  62.  
  63. sl_GetSpeed(playerid)
  64. {
  65. new Float:sl_vx, Float:sl_vy, Float:sl_vz;
  66. GetVehicleVelocity(GetPlayerVehicleID(playerid), sl_vx, sl_vy, sl_vz);
  67. return floatround(floatsqroot(floatabs(floatpower(sl_vx, 2) + floatpower(sl_vy, 2) + floatpower(sl_vz, 2)))*180.0000, floatround_round);
  68. }
  69.  
  70. public OnPlayerEnterDynamicArea(playerid, areaid)
  71. {
  72. if(!INVALID_PLAYER_ID || !IsPlayerNPC(playerid))
  73. {
  74. new v_speed = sl_GetSpeed(playerid);
  75.  
  76. for(new x = 0; x < MAX_SPEED_CAP;x++)
  77. {
  78. if(areaid == SL_Speed[x][sl_areaid])
  79. {
  80. if(GetPlayerVehicleID(playerid) != 0)
  81. {
  82. if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  83. {
  84. if(v_speed > SL_Speed[x][sl_speed])
  85. {
  86. OnPlayerDriveFast(playerid, x);
  87. break;
  88. }
  89. }
  90. }
  91. }
  92. }
  93. }
  94. #if defined SL_OnPlayerEnterDyanmicArea
  95. SL_OnPlayerEnterDyanmicArea();
  96. #endif
  97. return 1;
  98. }
  99.  
  100. #if defined _ALS_OnPlayerEnterDyanmicArea
  101. #undef OnPlayerEnterDyanmicArea
  102. #else
  103. #define _ALS_OnPlayerEnterDyanmicArea
  104. #endif
  105. #define OnPlayerEnterDyanmicArea SL_OnPlayerEnterDyanmicArea
  106. #if defined SL_OnPlayerEnterDyanmicArea
  107. forward SL_OnPlayerEnterDyanmicArea();
  108. #endif
  109.  
  110. #if defined FILTERSCRIPT
  111.  
  112. public OnFilterScriptInit()
  113. {
  114. printf("===========================================");
  115. printf("|| ||");
  116. printf("|| SpeedCap inc by Whatname loaded. ||");
  117. printf("|| ||");
  118. printf("===========================================");
  119. #if defined SL_OnFilterScriptInit
  120. SL_OnFilterScriptInit();
  121. #endif
  122. return 1;
  123. }
  124.  
  125. #if defined _ALS_OnFilterScriptInit
  126. #undef OnFilterScriptInit
  127. #else
  128. #define _ALS_OnFilterScriptInit
  129. #endif
  130. #define OnFilterScriptInit SL_OnFilterScriptInit
  131. #if defined SL_OnFilterScriptInit
  132. forward SL_OnFilterScriptInit();
  133. #endif
  134.  
  135. public OnFilterScriptExit()
  136. {
  137. RemoveAllSpeedCap();
  138. printf("=============================================");
  139. printf("|| ||");
  140. printf("|| SpeedCap inc by Whatname unloaded. ||");
  141. printf("|| ||");
  142. printf("=============================================");
  143. #if defined SL_OnFilterScriptExit
  144. SL_OnFilterScriptExit();
  145. #endif
  146. return 1;
  147. }
  148.  
  149. #if defined _ALS_OnFilterScriptExit
  150. #undef OnFilterScriptExit
  151. #else
  152. #define _ALS_OnFilterScriptExit
  153. #endif
  154. #define OnFilterScriptExit SL_OnFilterScriptExit
  155. #if defined SL_OnFilterScriptExit
  156. forward SL_OnFilterScriptExit();
  157. #endif
  158.  
  159. #else
  160.  
  161. public OnGameModeInit()
  162. {
  163. printf("===========================================");
  164. printf("|| ||");
  165. printf("|| SpeedCap inc by Whatname loaded. ||");
  166. printf("|| ||");
  167. printf("===========================================");
  168. #if defined SL_OnGameModeInit
  169. SL_OnGameModeInit();
  170. #endif
  171. return 1;
  172. }
  173.  
  174. #if defined _ALS_OnGameModeInit
  175. #undef OnGameModeInit
  176. #else
  177. #define _ALS_OnGameModeInit
  178. #endif
  179. #define OnGameModeInit SL_OnGameModeInit
  180. #if defined SL_OnGameModeInit
  181. forward SL_OnGameModeInit();
  182. #endif
  183.  
  184. public OnGameModeExit()
  185. {
  186. RemoveAllSpeedCap();
  187. printf("=============================================");
  188. printf("|| ||");
  189. printf("|| SpeedCap inc by Whatname unloaded. ||");
  190. printf("|| ||");
  191. printf("=============================================");
  192. #if defined SL_OnGameModeExit
  193. SL_OnGameModeExit();
  194. #endif
  195. return 1;
  196. }
  197.  
  198. #if defined _ALS_OnGameModeExit
  199. #undef OnGameModeExit
  200. #else
  201. #define _ALS_OnGameModeExit
  202. #endif
  203. #define OnGameModeExit SL_OnGameModeExit
  204. #if defined SL_OnGameModeExit
  205. forward SL_OnGameModeExit();
  206. #endif
  207.  
  208. #endif
  209.  
  210. //EOF.
Advertisement
Add Comment
Please, Sign In to add comment