Advertisement
Stefantjuh97

Police Flash V2.0

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