Guest User

Stuck with it

a guest
Nov 13th, 2011
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.30 KB | None | 0 0
  1. #include <a_samp>
  2. #include <zcmd>
  3.  
  4. #define PARKED 0
  5. #define DRIVE 1
  6.  
  7. #define SLOT 1 //By default uses slot 1, change it if you need slot 1 for other thing.
  8.  
  9. #define MSGCASH_COLOR 0x44cc22ff
  10. #define MSGSUCC_COLOR 0x55ffaaff
  11. #define MSGFAIL_COLOR 0xff55aaff
  12. #define MSGCOMM_COLOR 0x55aaffff
  13. #define MSGINFO_COLOR 0xccff99ff
  14. #define MSGDBUG_COLOR 0xaa5555ff
  15. #define MSGCMDS_COLOR 0xafafafff
  16. #define MSGTITL_COLOR 0xcfcfcfff
  17.  
  18. enum VehicleInf
  19. {
  20. pDriver,
  21. pPassenger,
  22. BeltOn,
  23. MPH,
  24. KMH,
  25. pSeat,
  26. pVehID,
  27. pStick,
  28. VehFroze,
  29. Engine,
  30. Alarm,
  31. Doors,
  32. };
  33. new VehicleInfo[MAX_PLAYERS][VehicleInf];
  34. new LightPwr[MAX_VEHICLES];
  35. new Flasher[MAX_VEHICLES];
  36. new FlasherState[MAX_VEHICLES];
  37. new FlashTimer;
  38.  
  39. public OnFilterScriptInit()
  40. {
  41. print("\n--------------------------------------");
  42. print(" Seatbelt system by willsuckformoney");
  43. print("--------------------------------------\n");
  44. SetTimer("Update",500,true);
  45. for (new x=0; x<MAX_VEHICLES; x++)
  46. {
  47. LightPwr[x]=1;
  48. Flasher[x]=0;
  49. FlasherState[x]=0;
  50. }
  51. FlashTimer = SetTimer("FlasherFunc",100,1);
  52. return 1;
  53. }
  54.  
  55. public OnFilterScriptExit()
  56. {
  57. KillTimer(FlashTimer);
  58. return 1;
  59. }
  60.  
  61. public OnPlayerConnect(playerid)
  62. {
  63. SetPVarInt(playerid,"Alive",0);
  64. VehicleInfo[playerid][pDriver] = 0;
  65. VehicleInfo[playerid][pPassenger] = 0;
  66. VehicleInfo[playerid][BeltOn] = 0;
  67. VehicleInfo[playerid][MPH] = 0;
  68. VehicleInfo[playerid][KMH] = 0;
  69. VehicleInfo[playerid][pSeat] = false;
  70. VehicleInfo[playerid][pVehID] = false;
  71. VehicleInfo[playerid][pStick] = 0;
  72. VehicleInfo[playerid][VehFroze] = 1;
  73. return 1;
  74. }
  75.  
  76. public OnPlayerSpawn(playerid)
  77. {
  78. SetPVarInt(playerid,"Alive",1);
  79. VehicleInfo[playerid][pDriver] = 0;
  80. VehicleInfo[playerid][pPassenger] = 0;
  81. VehicleInfo[playerid][BeltOn] = 0;
  82. VehicleInfo[playerid][MPH] = 0;
  83. VehicleInfo[playerid][KMH] = 0;
  84. VehicleInfo[playerid][pSeat] = false;
  85. VehicleInfo[playerid][pVehID] = false;
  86. VehicleInfo[playerid][pStick] = 0;
  87. return 1;
  88. }
  89.  
  90. public OnPlayerDeath(playerid, killerid, reason)
  91. {
  92. SetPVarInt(playerid,"Alive",0);
  93. VehicleInfo[playerid][pDriver] = 0;
  94. VehicleInfo[playerid][pPassenger] = 0;
  95. VehicleInfo[playerid][BeltOn] = 0;
  96. VehicleInfo[playerid][MPH] = 0;
  97. VehicleInfo[playerid][KMH] = 0;
  98. VehicleInfo[playerid][pSeat] = false;
  99. VehicleInfo[playerid][pVehID] = false;
  100. VehicleInfo[playerid][pStick] = 0;
  101. return 1;
  102. }
  103.  
  104. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  105. {
  106. if(newkeys == KEY_SECONDARY_ATTACK)
  107. {
  108. if(IsPlayerInAnyVehicle(playerid))
  109. {
  110. if(VehicleInfo[playerid][VehFroze] == 1)
  111. {
  112. RemovePlayerFromVehicle(playerid);
  113. }
  114. }
  115. }
  116. return 1;
  117. }
  118.  
  119. public OnPlayerStateChange(playerid, newstate, oldstate)
  120. {
  121. if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  122. {
  123. if(VehicleInfo[playerid][VehFroze] == 1)
  124. {
  125. TogglePlayerControllable(playerid,false);
  126. SendClientMessage(playerid,MSGCOMM_COLOR,"/stick 1 to put the car in Drive.");
  127. }
  128. }
  129. if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  130. {
  131. if(IsPlayerInAnyVehicle(playerid))
  132. {
  133. VehicleInfo[playerid][pDriver] = 1; VehicleInfo[playerid][pPassenger] = 0;
  134. SendClientMessage(playerid,MSGCOMM_COLOR,"Buckle up! Its the law. (( /seatbelt ))");
  135. }
  136. }
  137. if(GetPlayerState(playerid) == PLAYER_STATE_PASSENGER)
  138. {
  139. if(IsPlayerInAnyVehicle(playerid))
  140. {
  141. VehicleInfo[playerid][pDriver] = 0; VehicleInfo[playerid][pPassenger] = 1;
  142. SendClientMessage(playerid,MSGCOMM_COLOR,"Buckle up! Its the law. (( /seatbelt ))");
  143. }
  144. }
  145. if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
  146. {
  147. VehicleInfo[playerid][pDriver] = 0; VehicleInfo[playerid][pPassenger] = 0;
  148. TogglePlayerControllable(playerid,true);
  149. }
  150. return 1;
  151. }
  152.  
  153. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  154. {
  155. if (LightPwr[vehicleid] == 0)
  156. {
  157. new panels,doors,lights,tires;
  158. GetVehicleDamageStatus(vehicleid,panels,doors,lights,tires);
  159. UpdateVehicleDamageStatus(vehicleid, panels, doors, 5, tires);
  160. }
  161. else
  162. {
  163. new panels,doors,lights,tires;
  164. GetVehicleDamageStatus(vehicleid,panels,doors,lights,tires);
  165. UpdateVehicleDamageStatus(vehicleid, panels, doors, 0, tires);
  166. }
  167. return 1;
  168. }
  169.  
  170. public OnPlayerExitVehicle(playerid, vehicleid)
  171. {
  172. Flasher[vehicleid] = 0;
  173. if (LightPwr[vehicleid] == 0)
  174. {
  175. new panels,doors,lights,tires;
  176. GetVehicleDamageStatus(vehicleid,panels,doors,lights,tires);
  177. UpdateVehicleDamageStatus(vehicleid, panels, doors, 5, tires);
  178. }
  179. else
  180. {
  181. new panels,doors,lights,tires;
  182. GetVehicleDamageStatus(vehicleid,panels,doors,lights,tires);
  183. UpdateVehicleDamageStatus(vehicleid, panels, doors, 0, tires);
  184. }
  185. return 1;
  186. }
  187.  
  188.  
  189. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  190. {
  191. if (LightPwr[vehicleid] == 0)
  192. {
  193. new panels,doors,lights,tires;
  194. GetVehicleDamageStatus(vehicleid,panels,doors,lights,tires);
  195. UpdateVehicleDamageStatus(vehicleid, panels, doors, 5, tires);
  196. }
  197. return 1;
  198. }
  199.  
  200. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  201. {
  202. if (LightPwr[vehicleid] == 0)
  203. {
  204. new panels,doors,lights,tires;
  205. GetVehicleDamageStatus(vehicleid,panels,doors,lights,tires);
  206. UpdateVehicleDamageStatus(vehicleid, panels, doors, 5, tires);
  207. }
  208. return 1;
  209. }
  210.  
  211. public OnVehicleStreamIn(vehicleid, forplayerid)
  212. {
  213. if (LightPwr[vehicleid] == 0)
  214. {
  215. new panels,doors,lights,tires;
  216. GetVehicleDamageStatus(vehicleid,panels,doors,lights,tires);
  217. UpdateVehicleDamageStatus(vehicleid, panels, doors, 5, tires);
  218. }
  219. return 1;
  220. }
  221.  
  222. public OnVehicleDamageStatusUpdate(vehicleid,playerid)
  223. {
  224. new Float:health;
  225. if(IsPlayerInAnyVehicle(playerid))
  226. {
  227. if(VehicleInfo[playerid][BeltOn] == 0)
  228. {
  229. if(GetPlayerSpeed(playerid) >= 10)
  230. {
  231. GetPlayerHealth(playerid,health);
  232. SetPlayerHealth(playerid,health-17*3/6);
  233. }
  234. }
  235. }
  236. return 1;
  237. }
  238.  
  239. CMD:systemhelp(playerid,params[])
  240. {
  241. SendClientMessage(playerid,MSGINFO_COLOR,"/lightsflashoff - Flash your head lights like a cop cars.");
  242. SendClientMessage(playerid,MSGINFO_COLOR,"/lightsflash - Stop flashing your head lights - regular head lights.");
  243. SendClientMessage(playerid,MSGINFO_COLOR,"/lightson - Turn on your lights to see like at night.");
  244. SendClientMessage(playerid,MSGINFO_COLOR,"/lightswat - One light on.");
  245. SendClientMessage(playerid,MSGINFO_COLOR,"/lightsoff - Turn your lights off.");
  246. return 1;
  247. }
  248.  
  249. CMD:lightsoff(playerid,params[])
  250. {
  251. new vehicleid,panels,doors,lights,tires;
  252. vehicleid = GetPlayerVehicleID(playerid);
  253. GetVehicleDamageStatus(vehicleid,panels,doors,lights,tires);
  254. UpdateVehicleDamageStatus(vehicleid, panels, doors, 5, tires);
  255. LightPwr[vehicleid] = 0;
  256. Flasher[vehicleid] = 0;
  257. return 1;
  258. }
  259.  
  260. CMD:lightswat(playerid,params[])
  261. {
  262. new vehicleid,panels,doors,lights,tires;
  263. vehicleid = GetPlayerVehicleID(playerid);
  264. GetVehicleDamageStatus(vehicleid,panels,doors,lights,tires);
  265. UpdateVehicleDamageStatus(vehicleid, panels, doors, 3, tires);
  266. LightPwr[vehicleid] = 1;
  267. Flasher[vehicleid] = 0;
  268. return 1;
  269. }
  270.  
  271. CMD:lightson(playerid,params[])
  272. {
  273. new vehicleid,panels,doors,lights,tires;
  274. vehicleid = GetPlayerVehicleID(playerid);
  275. GetVehicleDamageStatus(vehicleid,panels,doors,lights,tires);
  276. UpdateVehicleDamageStatus(vehicleid, panels, doors, 0, tires);
  277. LightPwr[vehicleid] = 1;
  278. Flasher[vehicleid] = 0;
  279. return 1;
  280. }
  281.  
  282. CMD:lightsflash(playerid,params[])
  283. {
  284. new vehicleid,panels,doors,lights,tires;
  285. vehicleid = GetPlayerVehicleID(playerid);
  286. GetVehicleDamageStatus(vehicleid,panels,doors,lights,tires);
  287. Flasher[vehicleid] = 1;
  288. return 1;
  289. }
  290.  
  291. CMD:lightsflashoff(playerid,params[])
  292. {
  293. new vehicleid,panels,doors,lights,tires;
  294. vehicleid = GetPlayerVehicleID(playerid);
  295. GetVehicleDamageStatus(vehicleid,panels,doors,lights,tires);
  296. if (LightPwr[vehicleid] == 1)
  297. UpdateVehicleDamageStatus(vehicleid, panels, doors, 0, tires);
  298. else
  299. UpdateVehicleDamageStatus(vehicleid, panels, doors, 5, tires);
  300. Flasher[vehicleid] = 0;
  301. return 1;
  302. }
  303.  
  304. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  305. {
  306. if(dialogid == 171)
  307. {
  308. if(response)
  309. {
  310. new Float:x,Float:y,Float:z,Float:ang;
  311. SetVehicleNumberPlate(GetPlayerVehicleID(playerid), inputtext);
  312. GetVehiclePos(GetPlayerVehicleID(playerid),x,y,z);
  313. GetVehicleZAngle(GetPlayerVehicleID(playerid),ang);
  314. SetVehicleToRespawn(GetPlayerVehicleID(playerid));
  315. SetVehiclePos(GetPlayerVehicleID(playerid),x,y,z);
  316. PutPlayerInVehicle(playerid,GetPlayerVehicleID(playerid),0);
  317. SetVehicleZAngle(GetPlayerVehicleID(playerid),ang);
  318. }
  319. }
  320. return 1;
  321. }
  322. //
  323. forward Update(playerid);
  324. public Update(playerid)
  325. {
  326. if(IsPlayerInAnyVehicle(playerid))
  327. {
  328. VehicleInfo[playerid][pSeat] = GetPlayerVehicleSeat(playerid);
  329. VehicleInfo[playerid][pVehID] = GetPlayerVehicleID(playerid);
  330. }
  331. if(!IsPlayerInAnyVehicle(playerid))
  332. {
  333. if(VehicleInfo[playerid][BeltOn] == 1)
  334. {
  335. SendClientMessage(playerid,MSGFAIL_COLOR,"You cannot leave your car with your seatbelt on. (( /seatbelt ))");
  336. PutPlayerInVehicle(playerid,VehicleInfo[playerid][pVehID],VehicleInfo[playerid][pSeat]);
  337. }
  338. }
  339. if(IsPlayerAlive(playerid))
  340. {
  341. new Float:Health;
  342. GetPlayerHealth(playerid,Health);
  343. SetPlayerHealth(playerid,Health+0.25);
  344. }
  345. if(IsPlayerInAnyVehicle(playerid))
  346. {
  347. if(VehicleInfo[playerid][VehFroze] == 1)
  348. {
  349. TogglePlayerControllable(playerid,false);
  350. } else return TogglePlayerControllable(playerid,true);
  351. }
  352. SetWorldTime(24);
  353. SetPlayerTime(playerid,24,0);
  354. return 1;
  355. }
  356.  
  357. stock IsPlayerAlive(playerid)
  358. {
  359. if(GetPVarInt(playerid, "Alive") == 1) return 1;
  360. return 0;
  361. }
  362.  
  363. stock IsABike(vehicleid) //Made by me :D
  364. {
  365. new result;
  366. new model = GetVehicleModel(vehicleid);
  367. switch(model)
  368. {
  369. case 509, 481, 510, 462, 448, 581, 522, 461, 521, 523, 463, 586, 468, 471: result = model;
  370. default: result = 0;
  371. }
  372. return result;
  373. }
  374.  
  375. stock GetPlayerSpeed(playerid) //MPH
  376. {
  377. new vehicleid,Float:speed_x,Float:speed_y,Float:speed_z,Float:final_speed,final_speed_int;
  378. vehicleid = GetPlayerVehicleID(playerid);
  379. GetVehicleVelocity(vehicleid,speed_x,speed_y,speed_z);
  380. final_speed = floatsqroot(((speed_x*speed_x)+(speed_y*speed_y))+(speed_z*speed_z))*85.4166672;
  381. final_speed_int = floatround(final_speed,floatround_round);
  382. return VehicleInfo[playerid][MPH] = final_speed_int;
  383. }
  384.  
  385. stock GetPlayerSpeedEx(playerid) //KMH
  386. {
  387. new vehicleid,Float:speed_x,Float:speed_y,Float:speed_z,Float:final_speed,final_speed_int;
  388. vehicleid = GetPlayerVehicleID(playerid);
  389. GetVehicleVelocity(vehicleid,speed_x,speed_y,speed_z);
  390. final_speed = floatsqroot(((speed_x*speed_x)+(speed_y*speed_y))+(speed_z*speed_z))*136.666667;
  391. final_speed_int = floatround(final_speed,floatround_round);
  392. return VehicleInfo[playerid][KMH] = final_speed_int;
  393. }
  394.  
  395. forward FlasherFunc();
  396. public FlasherFunc() {
  397. for (new p=0; p<MAX_PLAYERS; p++)
  398. {
  399. if (IsPlayerInAnyVehicle(p) && IsPlayerConnected(p) && !IsPlayerNPC(p))
  400. {
  401. new id;
  402. new panelsx,doorsx,lightsx,tiresx;
  403. id = GetPlayerVehicleID(p);
  404. if (Flasher[id] == 1)
  405. {
  406. if (FlasherState[id] == 1)
  407. {
  408. GetVehicleDamageStatus(id,panelsx,doorsx,lightsx,tiresx);
  409. UpdateVehicleDamageStatus(id, panelsx, doorsx, 4, tiresx);
  410. FlasherState[id] = 0;
  411. }
  412. else {
  413. GetVehicleDamageStatus(id,panelsx,doorsx,lightsx,tiresx);
  414. UpdateVehicleDamageStatus(id, panelsx, doorsx, 1, tiresx);
  415. FlasherState[id] = 1;
  416. }
  417. }
  418. }
  419. }
  420. return 1;
  421. }
  422.  
  423. stock DelPrint(string1[])
  424. {
  425. strmid(string1, string1, 0, strlen(string1)-1, 255);
  426. //printf("%s", string1);
  427. return 1;
  428. }
  429.  
  430. /*
  431. * First version released by mike, this one created by DracoBlue
  432. * Has also a fix to use "-" and "+" in the beginning of the number.
  433. */
  434. stock IsNumeric(const string[]) {
  435. new length=strlen(string);
  436. if (length==0) return false;
  437. for (new i = 0; i < length; i++) {
  438. if (
  439. (string[i] > '9' || string[i] < '0' && string[i]!='-' && string[i]!='+') // Not a number,'+' or '-'
  440. || (string[i]=='-' && i!=0) // A '-' but not at first.
  441. || (string[i]=='+' && i!=0) // A '+' but not at first.
  442. ) return false;
  443. }
  444. if (length==1 && (string[0]=='-' || string[0]=='+')) return false;
  445. return true;
  446. }
  447.  
Advertisement
Add Comment
Please, Sign In to add comment