Advertisement
Guest User

Untitled

a guest
Feb 3rd, 2016
1,004
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 2.20 KB | None | 0 0
  1. #include <a_samp>
  2.  
  3. public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
  4. {
  5.     if(hittype == BULLET_HIT_TYPE_VEHICLE)
  6.     {
  7.         static Float:X, Float:Y, Float:Z;
  8.         /* Show in the petrol tank - It also works when the player is inside. */
  9.         GetVehicleModelInfo(GetVehicleModel(hitid), VEHICLE_MODEL_INFO_PETROLCAP, X, Y, Z);
  10.  
  11.         if(VectorSize(fX-X, fY-Y, fZ-Z) < 0.15)
  12.         {
  13.             SetVehicleHealth(hitid, -1000.0);
  14.             return 1;
  15.         }
  16.        
  17.         /* Shot in empty vehicle */
  18.         for(new i = GetPlayerPoolSize(); i > -1; i--)
  19.         {
  20.             if(GetPlayerVehicleID(i) == hitid && GetPlayerVehicleSeat(i) == 0)
  21.                 return 1;
  22.         }
  23.  
  24.         GetVehicleHealth(hitid, X);
  25.         if(X > 0)
  26.         {
  27.             switch(weaponid)
  28.             {
  29.                 case 0 .. 15: SetVehicleHealth(hitid, X - 10);
  30.                 case 22 .. 23: SetVehicleHealth(hitid, X - 15);
  31.                 case 24: SetVehicleHealth(hitid, X - 50);
  32.                 case 25 .. 27: SetVehicleHealth(hitid, X - 30);
  33.                 case 28, 29, 32: SetVehicleHealth(hitid, X - 5);
  34.                 case 30, 31: SetVehicleHealth(hitid, X - 10);
  35.                 case 33, 34: SetVehicleHealth(hitid, X - 40);
  36.                 case 35 .. 38: SetVehicleHealth(hitid, X - 80);
  37.                 default: return 1;
  38.             }
  39.         }
  40.     }
  41.     return 1;
  42. }
  43.  
  44. /* Vehicle vs Vehicle */
  45. public OnFilterScriptInit()
  46. {
  47.     SetTimer("Timer", 500, true); //faster == less mistakes
  48.     return 1;
  49. }
  50.  
  51. new Float:PlayerVehHP[MAX_PLAYERS];
  52.  
  53. forward Timer();
  54. public Timer()
  55. {
  56.     for(new i = GetPlayerPoolSize(); i > -1; i--)
  57.     {
  58.         if(GetPlayerState(i) != PLAYER_STATE_DRIVER) continue;
  59.        
  60.         GetVehicleHealth(GetPlayerVehicleID(i), PlayerVehHP[i]);
  61.     }
  62.     return 1;
  63. }
  64.  
  65. public OnUnoccupiedVehicleUpdate(vehicleid, playerid, passenger_seat, Float:new_x, Float:new_y, Float:new_z, Float:vel_x, Float:vel_y, Float:vel_z)
  66. {
  67.     if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  68.     {
  69.         static Float:hp, Float:hpa;
  70.         GetVehicleHealth(GetPlayerVehicleID(playerid), hp);
  71.         if(hp < PlayerVehHP[playerid])
  72.         {
  73.             if(GetVehicleDistanceFromPoint(vehicleid, new_x, new_y, new_z) < 15.0)
  74.             {
  75.                 GetVehicleHealth(vehicleid, hpa);
  76.                 SetVehicleHealth(vehicleid, hpa - (PlayerVehHP[playerid] - hp));
  77.             }
  78.         }
  79.         PlayerVehHP[playerid] = hp;
  80.         return 1;
  81.     }
  82.     return 1;
  83. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement