Guest User

Untitled

a guest
Jun 22nd, 2013
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2. © Stefantjuh97
  3. SAMP Forum name: Stefand.
  4. Release Date: 18-6-2012
  5. Version: 3.0
  6.  
  7.  
  8. Changelog V2.0
  9. Fixed:
  10. - Headlights keep flashing when you are out of the vehicle.
  11.   Thanks to BrandyPenguin
  12.  
  13. - if you did /flash 2 times without /flashoff you had a bugged vehicle.
  14.  
  15. Added:
  16. - Working for ambulance
  17. - Working for Firetruck
  18.  
  19. Changelog V3.0
  20. Fixed:
  21. - /flash for turning flash on and /flash for turning it off
  22.   Thanks to BrandyPenguin
  23.  
  24. Added:
  25. - Nothing
  26. */
  27.  
  28. #include <a_samp>
  29. #include <zcmd>
  30.  
  31. #define FILTERSCRIPT
  32.  
  33. forward FlasherFunc();
  34.  
  35. new obj[MAX_VEHICLES] = { INVALID_OBJECT_ID, ... };
  36. new obj2[MAX_VEHICLES] = { INVALID_OBJECT_ID, ... };
  37. new LightPwr[MAX_VEHICLES];
  38. new Flasher[MAX_VEHICLES] = 0;
  39. new FlasherState[MAX_VEHICLES];
  40. new FlashTimer;
  41.  
  42. public OnFilterScriptInit()
  43. {
  44.     print("\n--------------------------------------");
  45.     print(" Police Flash lights V2.1");
  46.     print(" By Stefantjuh97");
  47.     print("--------------------------------------\n");
  48.  
  49.     for (new x=0; x<MAX_VEHICLES; x++)
  50.     {
  51.         LightPwr[x]=1;
  52.         Flasher[x]=0;
  53.         FlasherState[x]=0;
  54.     }
  55.  
  56.     FlashTimer = SetTimer("FlasherFunc",200,1); // "200" is the speed from the flashing headlights
  57.     return 1;
  58. }
  59.  
  60. public OnFilterScriptExit()
  61. {
  62.     KillTimer(FlashTimer);
  63.     for (new i = 0; i < MAX_VEHICLES; i++)
  64.     {
  65.         DestroyObject(obj[i]);
  66.         DestroyObject(obj2[i]);
  67.     }
  68.     return 1;
  69. }
  70.  
  71.  
  72.  
  73.  
  74. public OnVehicleSpawn(vehicleid)
  75. {
  76.     DestroyObject(obj[vehicleid]);
  77.     DestroyObject(obj2[vehicleid]);
  78.     Flasher[vehicleid] = 0;
  79.     return 1;
  80. }
  81.  
  82. public OnVehicleDeath(vehicleid, killerid)
  83. {
  84.     DestroyObject(obj[vehicleid]);
  85.     DestroyObject(obj2[vehicleid]);
  86.     Flasher[vehicleid] = 0;
  87.     return 1;
  88. }
  89.  
  90. command(flash, playerid, params[])
  91. {
  92.     if(!IsPlayerAdmin(playerid)) return 1;
  93.     new vehicleid,panels,doors,lights,tires;
  94.     vehicleid = GetPlayerVehicleID(playerid);
  95.     if(!Flasher[vehicleid]) {
  96.         if (GetPlayerState(playerid) != PLAYER_STATE_DRIVER)
  97.         {
  98.             return SendClientMessage(playerid, -1, "* You are not the driver!");
  99.         }
  100.         if (!GetVehicleModel(vehicleid)) return SendClientMessage(playerid, -1, "* You are not in a vehicle!");
  101.         if (IsValidObject(obj[vehicleid]) || IsValidObject(obj2[vehicleid]))
  102.         {
  103.             SendClientMessage(playerid, -1, "You switched off the lights."), DestroyObject(obj[vehicleid]), DestroyObject(obj2[vehicleid]);
  104.             GetVehicleDamageStatus(vehicleid,panels,doors,lights,tires);
  105.             if(LightPwr[vehicleid] == 1)
  106.             UpdateVehicleDamageStatus(vehicleid, panels, doors, 0, tires);
  107.             else
  108.             UpdateVehicleDamageStatus(vehicleid, panels, doors, 5, tires);
  109.             Flasher[vehicleid] = 0;
  110.         }
  111.         switch (GetVehicleModel(vehicleid))
  112.         {
  113.             case 596:
  114.             {
  115.                 obj[vehicleid] = CreateObject(18646, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
  116.                 obj2[vehicleid] = CreateObject(18646, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
  117.                 AttachObjectToVehicle(obj[vehicleid], vehicleid, 0.599999,-0.375000,0.899999,0.000000,0.000000,0.000000);
  118.                 AttachObjectToVehicle(obj2[vehicleid], vehicleid, -0.599999,-0.375000,0.899999,0.000000,0.000000,0.000000);
  119.                 GetVehicleDamageStatus(vehicleid,panels,doors,lights,tires);
  120.                 Flasher[vehicleid] = 1;
  121.             }
  122.             case 597:
  123.             {
  124.                 obj[vehicleid] = CreateObject(18646, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
  125.                 obj2[vehicleid] = CreateObject(18646, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
  126.                 AttachObjectToVehicle(obj[vehicleid], vehicleid, 0.599999,-0.375000,0.899999,0.000000,0.000000,0.000000);
  127.                 AttachObjectToVehicle(obj2[vehicleid], vehicleid, -0.599999,-0.375000,0.899999,0.000000,0.000000,0.000000);
  128.  
  129.                 GetVehicleDamageStatus(vehicleid,panels,doors,lights,tires);
  130.                 Flasher[vehicleid] = 1;
  131.             }
  132.             case 598:
  133.             {
  134.                 obj[vehicleid] = CreateObject(18646, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
  135.                 obj2[vehicleid] = CreateObject(18646, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
  136.                 AttachObjectToVehicle(obj[vehicleid], vehicleid, 0.524999, -0.300000, 0.899999, 0.000000, 0.000000, 0.000000);
  137.                 AttachObjectToVehicle(obj2[vehicleid], vehicleid, -0.524999, -0.300000, 0.899999, 0.000000, 0.000000, 0.000000);
  138.                 GetVehicleDamageStatus(vehicleid,panels,doors,lights,tires);
  139.                 Flasher[vehicleid] = 1;
  140.             }
  141.             case 599:
  142.             {
  143.                 obj[vehicleid] = CreateObject(18646, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
  144.                 obj2[vehicleid] = CreateObject(18646, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
  145.                 AttachObjectToVehicle(obj[vehicleid], vehicleid, 0.524999,0.000000,1.125000,0.000000,0.000000,0.000000);
  146.                 AttachObjectToVehicle(obj2[vehicleid], vehicleid, -0.524999,0.000000,1.125000,0.000000,0.000000,0.000000);
  147.                 GetVehicleDamageStatus(vehicleid,panels,doors,lights,tires);
  148.                 Flasher[vehicleid] = 1;
  149.             }
  150.             case 541://bullet
  151.             {
  152.                 obj[vehicleid] = CreateObject(18646, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
  153.                 AttachObjectToVehicle(obj[vehicleid], vehicleid, 0.375000,0.524999,0.375000,0.000000,0.000000,0.000000);
  154.  
  155.                 GetVehicleDamageStatus(vehicleid,panels,doors,lights,tires);
  156.                 Flasher[vehicleid] = 1;
  157.             }
  158.             case 426://premier
  159.             {
  160.                 obj[vehicleid] = CreateObject(18646, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
  161.                 AttachObjectToVehicle(obj[vehicleid], vehicleid, 0.524999,0.749999,0.375000,0.000000,0.000000,0.000000);
  162.  
  163.                 GetVehicleDamageStatus(vehicleid,panels,doors,lights,tires);
  164.                 Flasher[vehicleid] = 1;
  165.             }
  166.             case 427://enforcer
  167.             {
  168.                 GetVehicleDamageStatus(vehicleid,panels,doors,lights,tires);
  169.                 Flasher[vehicleid] = 1;
  170.             }
  171.             case 416://Ambulance
  172.             {
  173.                 GetVehicleDamageStatus(vehicleid,panels,doors,lights,tires);
  174.                 Flasher[vehicleid] = 1;
  175.             }
  176.             case 407://FireTruck
  177.             {
  178.                 GetVehicleDamageStatus(vehicleid,panels,doors,lights,tires);
  179.                 Flasher[vehicleid] = 1;
  180.             }
  181.             case 560://sultan
  182.             {
  183.                 obj[vehicleid] = CreateObject(18646, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
  184.                 AttachObjectToVehicle(obj[vehicleid], vehicleid, 0.225000,0.750000,0.449999,0.000000,0.000000,0.000000);
  185.                 GetVehicleDamageStatus(vehicleid,panels,doors,lights,tires);
  186.                 Flasher[vehicleid] = 1;
  187.             }
  188.             case 490://FBI
  189.             {
  190.                 obj[vehicleid] = CreateObject(18646, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
  191.                 AttachObjectToVehicle(obj[vehicleid], vehicleid, 0.000000,1.125000,0.599999,0.000000,0.000000,0.000000);
  192.                 GetVehicleDamageStatus(vehicleid,panels,doors,lights,tires);
  193.                 Flasher[vehicleid] = 1;
  194.             }
  195.             default:
  196.             {
  197.                 return SendClientMessage(playerid, -1, "You are not in a CODE 2 compatible police vehicle!");
  198.             }
  199.         }
  200.         return SendClientMessage(playerid, -1, "Lights on, you are now in a CODE 2 run!");
  201.     } else {
  202.         if (IsValidObject(obj[vehicleid]) || IsValidObject(obj2[vehicleid])) {
  203.             SendClientMessage(playerid, -1, "You switched off the lights."), DestroyObject(obj[vehicleid]), DestroyObject(obj2[vehicleid]);
  204.         }
  205.         GetVehicleDamageStatus(vehicleid,panels,doors,lights,tires);
  206.         if(LightPwr[vehicleid] == 1)
  207.             UpdateVehicleDamageStatus(vehicleid, panels, doors, 0, tires);
  208.         else
  209.             UpdateVehicleDamageStatus(vehicleid, panels, doors, 5, tires);
  210.         Flasher[vehicleid] = 0;
  211.     }
  212.     return 1;
  213. }
  214.  
  215. public FlasherFunc() {
  216.     new panelsx,doorsx,lightsx,tiresx;
  217.     for (new p=0; p<MAX_VEHICLES; p++)
  218.     {
  219.         if (Flasher[p] == 1)
  220.         {
  221.             if (FlasherState[p] == 1)
  222.             {
  223.                 GetVehicleDamageStatus(p,panelsx,doorsx,lightsx,tiresx);
  224.                 UpdateVehicleDamageStatus(p, panelsx, doorsx, 4, tiresx);
  225.                 FlasherState[p] = 0;
  226.             }
  227.             else
  228.             {
  229.                 GetVehicleDamageStatus(p,panelsx,doorsx,lightsx,tiresx);
  230.                 UpdateVehicleDamageStatus(p, panelsx, doorsx, 1, tiresx);
  231.                 FlasherState[p] = 1;
  232.             }
  233.         }
  234.     }
  235.     return 1;
  236. }
Advertisement
Add Comment
Please, Sign In to add comment