Stefantjuh97

Police Flash V2.0

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