Guest User

mjenjac

a guest
Apr 20th, 2014
1,001
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.64 KB | None | 0 0
  1. /*/////////////////////////////////////////
  2. Verzija: r1.4
  3. Skripter: CandY
  4. *//////////////////////////////////////////
  5.  
  6. #define FILTERSCRIPT
  7.  
  8. #include <a_samp>
  9.  
  10. #define PRESSED(%0) \
  11. (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
  12.  
  13. #define SpeedCheck(%0,%1,%2,%3,%4) floatround(floatsqroot(%4?(%0*%0+%1*%1+%2*%2):(%0*%0+%1*%1) ) *%3*1.6)
  14.  
  15. new BrzinaLimit[MAX_PLAYERS];
  16. new Brzina[MAX_VEHICLES];
  17. new Text:Brzinatxd[MAX_PLAYERS];
  18.  
  19. #define MAX_BRZINA 5
  20. #define VOZILO_BRZINA 31
  21.  
  22. #if defined FILTERSCRIPT
  23.  
  24. public OnFilterScriptInit()
  25. {
  26. print("\n--------------------------------------");
  27. print(" Mjenjanje brzina by CandY ");
  28. print("--------------------------------------\n");
  29. return 1;
  30. }
  31.  
  32. public OnFilterScriptExit()
  33. {
  34. print("\n--------------------------------------");
  35. print(" Mjenjanje brzina by CandY ");
  36. print("--------------------------------------\n");
  37. return 1;
  38. }
  39.  
  40. #else
  41.  
  42. main()
  43. {
  44. return 1;
  45. }
  46.  
  47. #endif
  48.  
  49. public OnGameModeInit()
  50. {
  51. return 1;
  52. }
  53.  
  54. public OnGameModeExit()
  55. {
  56. return 1;
  57. }
  58.  
  59. public OnPlayerRequestClass(playerid, classid)
  60. {
  61. return 1;
  62. }
  63.  
  64. public OnPlayerConnect(playerid)
  65. {
  66. Brzinatxd[playerid] = TextDrawCreate(558.5,333,"_");
  67. TextDrawFont(Brzinatxd[playerid], 3);
  68. TextDrawLetterSize(Brzinatxd[playerid], 0.53, 1.20);
  69. TextDrawColor(Brzinatxd[playerid], -16776961);
  70. TextDrawBackgroundColor(Brzinatxd[playerid], 51);
  71. TextDrawSetOutline(Brzinatxd[playerid], 0);
  72. TextDrawSetProportional(Brzinatxd[playerid], 1);
  73. TextDrawSetShadow(Brzinatxd[playerid], 1);
  74. BrzinaLimit[playerid] = 0;
  75. return 1;
  76. }
  77.  
  78. public OnPlayerDisconnect(playerid, reason)
  79. {
  80. TextDrawDestroy(Brzinatxd[playerid]);
  81. BrzinaLimit[playerid] = 0;
  82. return 1;
  83. }
  84.  
  85. public OnPlayerSpawn(playerid)
  86. {
  87. BrzinaLimit[playerid] = 0;
  88. return 1;
  89. }
  90.  
  91. public OnPlayerDeath(playerid, killerid, reason)
  92. {
  93. BrzinaLimit[playerid] = 0;
  94. return 1;
  95. }
  96.  
  97. public OnVehicleSpawn(vehicleid)
  98. {
  99. Brzina[vehicleid] = 0;
  100. return 1;
  101. }
  102.  
  103. public OnVehicleDeath(vehicleid, killerid)
  104. {
  105. Brzina[vehicleid] = 0;
  106. return 1;
  107. }
  108.  
  109. public OnPlayerText(playerid, text[])
  110. {
  111. return 1;
  112. }
  113.  
  114. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  115. {
  116. BrzinaLimit[playerid] = Brzina[vehicleid] * 20;
  117. if(GetVehicleModel(vehicleid) == 481 || GetVehicleModel(vehicleid) == 509 || GetVehicleModel(vehicleid) == 510)
  118. {
  119. BrzinaLimit[playerid] = 999;
  120. }
  121. return 1;
  122. }
  123.  
  124. public OnPlayerExitVehicle(playerid, vehicleid)
  125. {
  126. BrzinaLimit[playerid] = 0;
  127. return 1;
  128. }
  129.  
  130. public OnPlayerStateChange(playerid, newstate, oldstate)
  131. {
  132. return 1;
  133. }
  134.  
  135. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  136. {
  137. if (PRESSED(KEY_YES)) // Brzina visa
  138. {
  139. if(!IsPlayerInAnyVehicle(playerid)) return 1;
  140. new string[128];
  141. if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 481 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 509 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 510) return 1;
  142. if(Brzina[GetPlayerVehicleID(playerid)] <= MAX_BRZINA)
  143. {
  144. Brzina[GetPlayerVehicleID(playerid)] ++;
  145. format(string, sizeof(string), "Brzina: %d", Brzina[GetPlayerVehicleID(playerid)]);
  146. TextDrawSetString(Brzinatxd[playerid], string);
  147. TextDrawShowForPlayer(playerid, Brzinatxd[playerid]);
  148. }
  149. else
  150. {
  151. }
  152. }
  153. if (PRESSED(KEY_NO)) // Brzina manja
  154. {
  155. new string[128];
  156. if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 481 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 509 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 510) return 1;
  157. if(Brzina[GetPlayerVehicleID(playerid)] > -1)
  158. {
  159. Brzina[GetPlayerVehicleID(playerid)] --;
  160. format(string, sizeof(string), "Brzina: %d", Brzina[GetPlayerVehicleID(playerid)]);
  161. if(Brzina[GetPlayerVehicleID(playerid)] == -1)
  162. {
  163. }
  164. TextDrawSetString(Brzinatxd[playerid], string);
  165. TextDrawShowForPlayer(playerid, Brzinatxd[playerid]);
  166. }
  167. }
  168. return 1;
  169. }
  170. stock ModifyVehicleSpeed(vehicleid,mph)
  171. {
  172. new Float:Vx,Float:Vy,Float:Vz,Float:DV,Float:multiple;
  173. GetVehicleVelocity(vehicleid,Vx,Vy,Vz);
  174. DV = floatsqroot(Vx*Vx + Vy*Vy + Vz*Vz);
  175. if(DV > 0)
  176. {
  177. multiple = ((mph + DV * 100) / (DV * 100));
  178. return SetVehicleVelocity(vehicleid,Vx*multiple,Vy*multiple,Vz*multiple);
  179. }
  180. return 0;
  181. }
  182. stock IsVehicleDrivingBackwards(vehicleid)
  183. {
  184. new
  185. Float:Float[3]
  186. ;
  187. if(GetVehicleVelocity(vehicleid, Float[1], Float[2], Float[0]))
  188. {
  189. GetVehicleZAngle(vehicleid, Float[0]);
  190. if(Float[0] < 90)
  191. {
  192. if(Float[1] > 0 && Float[2] < 0) return true;
  193. }
  194. else if(Float[0] < 180)
  195. {
  196. if(Float[1] > 0 && Float[2] > 0) return true;
  197. }
  198. else if(Float[0] < 270)
  199. {
  200. if(Float[1] < 0 && Float[2] > 0) return true;
  201. }
  202. else if(Float[1] < 0 && Float[2] < 0) return true;
  203. }
  204. return false;
  205. }
  206. stock GetVehicleSpeed(vehicleid, get3d)
  207. {
  208. new Float:x, Float:y, Float:z;
  209. GetVehicleVelocity(vehicleid, x, y, z);
  210. return SpeedCheck(x, y, z, 100.0, get3d);
  211. }
  212.  
  213. IsAPlane(carid)
  214. {
  215. switch(GetVehicleModel(carid)) {
  216. case 592, 577, 511, 512, 593, 520, 553, 476, 519, 460, 513, 548, 425, 417, 487, 488, 497, 563, 447, 469: return 1;
  217. }
  218. return 0;
  219. }
  220.  
  221. public OnPlayerUpdate(playerid)
  222. {
  223. new string[128];
  224. BrzinaLimit[playerid] = Brzina[GetPlayerVehicleID(playerid)] * VOZILO_BRZINA;
  225. if(Brzina[GetPlayerVehicleID(playerid)] == -1)
  226. {
  227. BrzinaLimit[playerid] = 0;
  228. }
  229. if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  230. {
  231. new a, b, c;
  232. GetPlayerKeys(playerid, a, b ,c);
  233. if(IsVehicleDrivingBackwards(GetPlayerVehicleID(playerid)))
  234. {
  235. if(Brzina[GetPlayerVehicleID(playerid)] == -1)
  236. {
  237. return 1;
  238. }
  239. else
  240. {
  241. ModifyVehicleSpeed(GetPlayerVehicleID(playerid), - GetVehicleSpeed(GetPlayerVehicleID(playerid), 0));
  242. }
  243. }
  244. if(a == 8 && GetVehicleSpeed(GetPlayerVehicleID(playerid), 0) > BrzinaLimit[playerid])
  245. {
  246. if(IsVehicleDrivingBackwards(GetPlayerVehicleID(playerid)))
  247. {
  248. if(Brzina[GetPlayerVehicleID(playerid)] != -1) return ModifyVehicleSpeed(GetPlayerVehicleID(playerid), - GetVehicleSpeed(GetPlayerVehicleID(playerid), 0));
  249. }
  250. if(!IsVehicleDrivingBackwards(GetPlayerVehicleID(playerid)))
  251. {
  252. if(Brzina[GetPlayerVehicleID(playerid)] == -1) return ModifyVehicleSpeed(GetPlayerVehicleID(playerid), - GetVehicleSpeed(GetPlayerVehicleID(playerid), 0));
  253. }
  254. new newspeed = GetVehicleSpeed(GetPlayerVehicleID(playerid), 0) - BrzinaLimit[playerid];
  255. ModifyVehicleSpeed(GetPlayerVehicleID(playerid), -newspeed);
  256. }
  257. if(GetVehicleModel(GetPlayerVehicleID(playerid)) != 481 || GetVehicleModel(GetPlayerVehicleID(playerid)) != 509 || GetVehicleModel(GetPlayerVehicleID(playerid)) != 510 || !IsAPlane(GetPlayerVehicleID(playerid)))
  258. {
  259. if(IsPlayerConnected(playerid) && IsPlayerInAnyVehicle(playerid))
  260. {
  261. TextDrawShowForPlayer(playerid,Brzinatxd[playerid]);
  262. format(string,sizeof(string),"Brzina: %d",Brzina[GetPlayerVehicleID(playerid)]);
  263. if(Brzina[GetPlayerVehicleID(playerid)] == -1)
  264. {
  265. format(string,sizeof(string),"Brzina: R");
  266. }
  267. TextDrawSetString(Brzinatxd[playerid],string);
  268. }
  269. }
  270. else if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 481 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 509 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 510 || !IsAPlane(GetPlayerVehicleID(playerid)))
  271. {
  272. BrzinaLimit[playerid] = 999;
  273. }
  274. return 1;
  275. }
  276. if(!IsPlayerInAnyVehicle(playerid))
  277. {
  278. TextDrawHideForPlayer(playerid,Brzinatxd[playerid]);
  279. }
  280. return 1;
  281. }
Advertisement
Add Comment
Please, Sign In to add comment