Guest User

SVStream

a guest
Dec 29th, 2022
55
1
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 10.33 KB | None | 1 0
  1. /*x---------------------------------Important-------------------------------------x*/
  2. //**INCLUDES**//
  3. #include <a_samp>
  4. //**DEFINES**//
  5. #define RECOVERYLENGH   20 // seconds
  6. #define HEALTHLOSS      2 // For the vehicle dammage function
  7. /*x---------------------------------Defining-------------------------------------x*/
  8. //**VARIABLES**//
  9. new fvh[700];
  10. new fv[700];
  11. new vd[700];
  12. new ve[700];
  13. new vs[700];
  14. new Float:vhpd[700][3];
  15. enum SPS
  16. {
  17.     Float:VEHX,
  18.     Float:VEHY,
  19.     Float:VEHZ
  20. }
  21.  
  22. //**FORWARDS**//
  23. forward FrzVehHP(veh,Float:hp);
  24. forward FrzVeh(veh,Float:VX,Float:VY,Float:VZ,Float:VA);
  25. forward VehResprayed(veh,Float:VX,Float:VY,Float:VZ,Float:VA);
  26. forward VehDes(veh);
  27. forward VehDmgToPlayer(playerid, vehicleid);
  28. forward AntiVehExp(vehicleid);
  29. forward VehRecov(vehicleid);
  30. forward VehStats(vehicleid);
  31. //**NATIVES**//
  32. /*
  33.     native FreezeVehicleHealth(vehicleid,Float:vhp,toggle);
  34.     native FreezeVehicle(vehicleid,toggle);
  35.     native ResprayVehicle(vehicleid);
  36.     native SetVehiclePosEx(vehicleid, Float:VX,Float:VY,Float:VZ,Float:VA);
  37.     native GetVehicleName(vehicleid);
  38.     native EraseVehicle(vehicleid);
  39.     native AffectVehicleDamageToPlayer(playerid, vehicleid, toggle);
  40.     native AllowVehicleExplosion(vehicleid,allow);
  41.     native DisplayVehicleStats(vehicleid, display);
  42.     native KillVehicle(vehicleid);
  43. */
  44. /*x---------------------------------CallBacks-------------------------------------x*/
  45. stock FreezeVehicleHealth(vehicleid,Float:vhp,toggle)
  46. {
  47.     SetVehicleHealth(vehicleid,vhp);
  48.     if (toggle == 0) fvh[vehicleid] = SetTimerEx("FrzVehHP",500,1,"if",vehicleid,vhp);
  49.     else KillTimer(fvh[vehicleid]);
  50. }
  51.  
  52. stock FreezeVehicle(vehicleid,toggle)
  53. {
  54.     new Float:fvX,Float:fvY,Float:fvZ,Float:fvA;
  55.     new mp = GetMaxPlayers();
  56.     for(new all = 0; all < mp; all++)
  57.     {
  58.         if (GetPlayerState(all) == 2)
  59.         {
  60.             if (GetPlayerVehicleID(all) == vehicleid)
  61.             {
  62.                 TogglePlayerControllable(all,0);
  63.                 TogglePlayerControllable(all,1);
  64.             }
  65.         }
  66.     }
  67.     GetVehiclePos(vehicleid,fvX,fvY,fvZ);
  68.     GetVehicleZAngle(vehicleid,fvA);
  69.     if (toggle == 0) fv[vehicleid] = SetTimerEx("FrzVeh",200,1,"iffff",vehicleid,fvX,fvY,fvZ,fvA);
  70.     else KillTimer(fv[vehicleid]);
  71. }
  72.  
  73. stock ResprayVehicle(vehicleid)
  74. {
  75.     new Float:fvX,Float:fvY,Float:fvZ,Float:fvA;
  76.     GetVehiclePos(vehicleid,fvX,fvY,fvZ);
  77.     GetVehicleZAngle(vehicleid,fvA);
  78.     new colors = random(100);
  79.     new count = 0;
  80.     for(new playerid = 0; playerid < GetMaxPlayers(); playerid++)
  81.     {
  82.         if (GetPlayerState(playerid) == 2 && IsPlayerInVehicle(playerid,vehicleid))
  83.         {
  84.             new Float:PX,Float:PY,Float:PZ,Float:PA,Float:px,Float:py,Float:pz;
  85.             GetPlayerPos(playerid,PX,PY,PZ);
  86.             GetPlayerPos(playerid,px,py,pz);
  87.             GetPlayerFacingAngle(playerid,PA);
  88.             py -= (5 * floatcos(-PA, degrees));
  89.             px -= (5 * floatsin(-PA, degrees));
  90.             PZ += 1;
  91.             SetPlayerCameraPos(playerid,px,py,PZ);
  92.             SetPlayerCameraLookAt(playerid,PX,PY,PZ);
  93.             GivePlayerMoney(playerid,100);
  94.             SetVehiclePos(vehicleid, 2067.7327,-1831.5408,13.2523);
  95.             SetVehicleZAngle(vehicleid, 185.7243);
  96.             SetTimerEx("VehResprayed",3000,0,"iffff",vehicleid,fvX,fvY,fvZ,fvA);
  97.             break;
  98.         }
  99.         else if (GetPlayerState(playerid) != 2 && !IsPlayerInVehicle(playerid,vehicleid) && count == 0)
  100.         {
  101.             SetVehicleToRespawn(vehicleid);
  102.             ChangeVehicleColor(vehicleid,colors,colors);
  103.             SetTimerEx("VehResprayed",1000,0,"iffff",vehicleid,fvX,fvY,fvZ,fvA);
  104.             break;
  105.         }
  106.     }
  107. }
  108.  
  109. stock SetVehiclePosEx(vehicleid, Float:VX,Float:VY,Float:VZ,Float:VA)
  110. {
  111.     SetVehiclePos(vehicleid,VX,VY,VZ);
  112.     SetVehicleZAngle(vehicleid,VA);
  113. }
  114.  
  115. new VehicleNames[212][] =
  116. {
  117.     {"Landstalker"},{"Bravura"},{"Buffalo"},{"Linerunner"},{"Perrenial"},{"Sentinel"},{"Dumper"},
  118.     {"Firetruck"},{"Trashmaster"},{"Stretch"},{"Manana"},{"Infernus"},{"Voodoo"},{"Pony"},{"Mule"},
  119.     {"Cheetah"},{"Ambulance"},{"Leviathan"},{"Moonbeam"},{"Esperanto"},{"Taxi"},{"Washington"},
  120.     {"Bobcat"},{"Mr Whoopee"},{"BF Injection"},{"Hunter"},{"Premier"},{"Enforcer"},{"Securicar"},
  121.     {"Banshee"},{"Predator"},{"Bus"},{"Rhino"},{"Barracks"},{"Hotknife"},{"Trailer 1"},{"Previon"},
  122.     {"Coach"},{"Cabbie"},{"Stallion"},{"Rumpo"},{"RC Bandit"},{"Romero"},{"Packer"},{"Monster"},
  123.     {"Admiral"},{"Squalo"},{"Seasparrow"},{"Pizzaboy"},{"Tram"},{"Trailer 2"},{"Turismo"},
  124.     {"Speeder"},{"Reefer"},{"Tropic"},{"Flatbed"},{"Yankee"},{"Caddy"},{"Solair"},{"Berkley's RC Van"},
  125.     {"Skimmer"},{"PCJ-600"},{"Faggio"},{"Freeway"},{"RC Baron"},{"RC Raider"},{"Glendale"},{"Oceanic"},
  126.     {"Sanchez"},{"Sparrow"},{"Patriot"},{"Quad"},{"Coastguard"},{"Dinghy"},{"Hermes"},{"Sabre"},
  127.     {"Rustler"},{"ZR-350"},{"Walton"},{"Regina"},{"Comet"},{"BMX"},{"Burrito"},{"Camper"},{"Marquis"},
  128.     {"Baggage"},{"Dozer"},{"Maverick"},{"News Chopper"},{"Rancher"},{"FBI Rancher"},{"Virgo"},{"Greenwood"},
  129.     {"Jetmax"},{"Hotring"},{"Sandking"},{"Blista Compact"},{"Police Maverick"},{"Boxville"},{"Benson"},
  130.     {"Mesa"},{"RC Goblin"},{"Hotring Racer A"},{"Hotring Racer B"},{"Bloodring Banger"},{"Rancher"},
  131.     {"Super GT"},{"Elegant"},{"Journey"},{"Bike"},{"Mountain Bike"},{"Beagle"},{"Cropdust"},{"Stunt"},
  132.     {"Tanker"}, {"Roadtrain"},{"Nebula"},{"Majestic"},{"Buccaneer"},{"Shamal"},{"Hydra"},{"FCR-900"},
  133.     {"NRG-500"},{"HPV1000"},{"Cement Truck"},{"Tow Truck"},{"Fortune"},{"Cadrona"},{"FBI Truck"},
  134.     {"Willard"},{"Forklift"},{"Tractor"},{"Combine"},{"Feltzer"},{"Remington"},{"Slamvan"},
  135.     {"Blade"},{"Freight"},{"Streak"},{"Vortex"},{"Vincent"},{"Bullet"},{"Clover"},{"Sadler"},
  136.     {"Firetruck LA"},{"Hustler"},{"Intruder"},{"Primo"},{"Cargobob"},{"Tampa"},{"Sunrise"},{"Merit"},
  137.     {"Utility"},{"Nevada"},{"Yosemite"},{"Windsor"},{"Monster A"},{"Monster B"},{"Uranus"},{"Jester"},
  138.     {"Sultan"},{"Stratum"},{"Elegy"},{"Raindance"},{"RC Tiger"},{"Flash"},{"Tahoma"},{"Savanna"},
  139.     {"Bandito"},{"Freight Flat"},{"Streak Carriage"},{"Kart"},{"Mower"},{"Duneride"},{"Sweeper"},
  140.     {"Broadway"},{"Tornado"},{"AT-400"},{"DFT-30"},{"Huntley"},{"Stafford"},{"BF-400"},{"Newsvan"},
  141.     {"Tug"},{"Trailer 3"},{"Emperor"},{"Wayfarer"},{"Euros"},{"Hotdog"},{"Club"},{"Freight Carriage"},
  142.     {"Trailer 3"},{"Andromada"},{"Dodo"},{"RC Cam"},{"Launch"},{"Police Car (LSPD)"},{"Police Car (SFPD)"},
  143.     {"Police Car (LVPD)"},{"Police Ranger"},{"Picador"},{"S.W.A.T. Van"},{"Alpha"},{"Phoenix"},{"Glendale"},
  144.     {"Sadler"},{"Luggage Trailer A"},{"Luggage Trailer B"},{"Stair Trailer"},{"Boxville"},{"Farm Plow"},
  145.     {"Utility Trailer"}
  146. };
  147.  
  148. GetVehicleName(vehicleid) {
  149.     new vehmodel = GetVehicleModel(vehicleid);
  150.  
  151.     new nameVeh[75];
  152.     if (vehmodel < 400 || vehmodel > 611) {
  153.         strcat(nameVeh, "Nenhum");
  154.         return nameVeh;
  155.     }
  156.     strcat(nameVeh, VehicleNames[vehmodel - 400]);
  157.     return nameVeh;
  158. }
  159.  
  160. stock EraseVehicle(vehicleid)
  161. {
  162.     for(new playerid = 0; playerid < GetMaxPlayers(); playerid++)
  163.     {
  164.         new Float:PX,Float:PY,Float:PZ;
  165.         if (IsPlayerInVehicle(playerid,vehicleid))
  166.         {
  167.             GetPlayerPos(playerid,PX,PY,PZ);
  168.             SetPlayerPos(playerid,PX,PY,PZ+2);
  169.             SetVehicleToRespawn(vehicleid);
  170.             SetVehicleParamsForPlayer(vehicleid,playerid,0,1);
  171.             SetTimerEx("VehDes",3000,0,"d",vehicleid);
  172.             break;
  173.         }
  174.         else SetTimerEx("VehDes",3000,0,"d",vehicleid),break;
  175.     }
  176. }
  177.  
  178. stock AffectVehicleDamageToPlayer(playerid, vehicleid, toggle) // Credit goes to Alistair for this function
  179. {
  180.     if (toggle == 0) vd[vehicleid] = SetTimerEx("VehDmgToPlayer",200,1,"ii",playerid, vehicleid);
  181.     else if (toggle == 1) KillTimer(vd[vehicleid]);
  182. }
  183.  
  184. stock AllowVehicleExplosion(vehicleid,allow)
  185. {
  186.     if (allow == 0) ve[vehicleid] = SetTimerEx("AntiVehExp",300,1,"i",vehicleid);
  187.     else if (allow == 1) KillTimer(ve[vehicleid]);
  188. }
  189.  
  190. stock DisplayVehicleStats(vehicleid, display)
  191. {
  192.     if (display == 0) vs[vehicleid] = SetTimerEx("VehStats",500,1,"i",vehicleid);
  193.     else if (display == 1) KillTimer(vs[vehicleid]);
  194. }
  195.  
  196. stock KillVehicle(vehicleid)
  197. {
  198.     new Float:VX,Float:VY,Float:VZ;
  199.     GetVehiclePos(vehicleid,VX,VY,VZ);
  200.     SetVehicleHealth(vehicleid, 0);
  201.     CreateExplosion(VX,VY,VZ,1,3);
  202. }
  203.  
  204. public FrzVehHP(veh,Float:hp)
  205. {
  206.     SetVehicleHealth(veh,hp);
  207. }
  208.  
  209. public FrzVeh(veh,Float:VX,Float:VY,Float:VZ,Float:VA)
  210. {
  211.     SetVehiclePos(veh,VX,VY,VZ);
  212.     SetVehicleZAngle(veh,VA);
  213. }
  214.  
  215. public VehResprayed(veh,Float:VX,Float:VY,Float:VZ,Float:VA)
  216. {
  217.     SetVehiclePos(veh,VX,VY,VZ);
  218.     SetVehicleZAngle(veh,VA);
  219.     SetVehicleHealth(veh,1000.0);
  220.     for(new playerid = 0; playerid < GetMaxPlayers(); playerid++) if (IsPlayerInVehicle(playerid,veh)) SetCameraBehindPlayer(playerid);
  221. }
  222.  
  223. public VehDes(veh) DestroyVehicle(veh);
  224.  
  225. public VehDmgToPlayer(playerid, vehicleid)
  226. {
  227.     if (IsPlayerInVehicle(playerid,vehicleid))
  228.     {
  229.         GetVehicleHealth(vehicleid, vhpd[vehicleid][0]);
  230.         if (floatcmp(vhpd[vehicleid][0], vhpd[vehicleid][1]) == -1)
  231.         {
  232.             GetPlayerHealth(playerid, vhpd[vehicleid][2]);
  233.             SetPlayerHealth(playerid, floatsub(vhpd[vehicleid][2], HEALTHLOSS));
  234.         }
  235.         vhpd[vehicleid][1] = vhpd[vehicleid][0];
  236.     }
  237. }
  238.  
  239. public AntiVehExp(vehicleid)
  240. {
  241.     for(new playerid = 0; playerid < GetMaxPlayers(); playerid++)
  242.     {
  243.         if (IsPlayerInVehicle(playerid, vehicleid))
  244.         {
  245.             new Float:vhp;
  246.             GetVehicleHealth(vehicleid, vhp);
  247.             if (vhp <= 400)
  248.             {
  249.                 KillTimer(ve[vehicleid]);
  250.                 SetVehicleHealth(vehicleid,401);
  251.                 TogglePlayerControllable(playerid,0);
  252.                 GameTextForPlayer(playerid, "~g~~h~Recovering...", RECOVERYLENGH+1*1000, 6);
  253.                 SetTimerEx("VehRecov",RECOVERYLENGH*1000,false,"i",vehicleid);
  254.                 break;
  255.             }
  256.         }
  257.     }
  258. }
  259.  
  260. public VehRecov(vehicleid)
  261. {
  262.     for(new playerid = 0; playerid < GetMaxPlayers(); playerid++)
  263.     {
  264.         new Float:hp;
  265.         GetPlayerHealth(playerid,hp);
  266.         if (IsPlayerInVehicle(playerid, vehicleid))
  267.         {
  268.             if (hp > 15)
  269.             {
  270.                 SetVehicleHealth(vehicleid,600);
  271.                 SetPlayerHealth(playerid,15);
  272.                 TogglePlayerControllable(playerid,1);
  273.                 ve[vehicleid] = SetTimerEx("AntiVehExp",300,1,"i",vehicleid);
  274.                 break;
  275.             }
  276.             else
  277.             {
  278.                 SetVehicleHealth(vehicleid,600);
  279.                 TogglePlayerControllable(playerid,1);
  280.                 ve[vehicleid] = SetTimerEx("AntiVehExp",300,1,"i",vehicleid);
  281.                 break;
  282.             }
  283.         }
  284.     }
  285. }
  286.  
Add Comment
Please, Sign In to add comment