Advertisement
Xaviour212

Ulric Vehicle System v1.6 for 0.3b

Apr 17th, 2011
651
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 15.84 KB | None | 0 0
  1. /*==========================Ulric Vehicle System================================
  2.     Credits to:
  3.         - Xaviour212, make this filterscript
  4.         - Sheen, helping me
  5. //==========================Change log==========================================
  6.     In v1.6 :
  7.         - Fixed /vbuy bug
  8.         - New CMD : /vfind, /vunfind, /vadmpark
  9.         - Type /vfind - for find you car
  10.         - Type /vunfind - for destroy checkpoint of /vfind
  11.         - Type /vadmpark (RCON CMD) -  for park car
  12. ====================Dont Remove The Credits, Please.....======================*/
  13.  
  14. #include <a_samp>
  15. #include <dini>
  16.  
  17. #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
  18.  
  19. #define Blue 0x0259EAAA
  20. #define Red 0xFF0000AA
  21. #define Green 0x16EB43FF
  22.  
  23. new file[256];
  24. new VehNames[212][] =
  25. {
  26.         "Landstalker","Bravura","Buffalo","Linerunner","Pereniel","Sentinel","Dumper","Firetruck","Trashmaster",
  27.         "Stretch","Manana","Infernus","Voodoo","Pony","Mule","Cheetah","Ambulance","Leviathan","Moonbeam","Esperanto",
  28.         "Taxi","Washington","Bobcat","Mr Whoopee","BF Injection","Hunter","Premier","Enforcer","Securicar","Banshee",
  29.         "Predator","Bus","Rhino","Barracks","Hotknife","Trailer","Previon","Coach","Cabbie","Stallion","Rumpo",
  30.         "RC Bandit","Romero","Packer","Monster","Admiral","Squalo","Seasparrow","Pizzaboy","Tram","Trailer",
  31.         "Turismo","Speeder","Reefer","Tropic","Flatbed","Yankee","Caddy","Solair","Berkley's RC Van","Skimmer",
  32.         "Pcj - 600","Faggio","Freeway","RC Baron","RC Raider","Glendale","Oceanic","Sanchez","Sparrow","Patriot",
  33.         "Quad","Coastguard","Dinghy","Hermes","Sabre","Rustler","Zr3 50","Walton","Regina","Comet","Bmx",
  34.         "Burrito","Camper","Marquis","Baggage","Dozer","Maverick","News Chopper","Rancher","FBI Rancher","Virgo",
  35.         "Greenwood","Jetmax","Hotring","Sandking","Blista Compact","Police Maverick","Boxville","Benson","Mesa",
  36.         "RC Goblin","Hotring Racer A","Hotring Racer B","Bloodring Banger","Rancher","Super GT","Elegant",
  37.         "Journey","Bike","Mountain Bike","Beagle","Cropdust","Stunt","Tanker","RoadTrain","Nebula","Majestic",
  38.         "Buccaneer","Shamal","Hydra","FCR - 900","NRG - 500","Hpv - 1000","Cement Truck","Tow Truck","Fortune","Cadrona",
  39.         "FBI Truck","Willard","Forklift","Tractor","Combine","Feltzer","Remington","Slamvan","Blade","Freight",
  40.         "Streak","Vortex","Vincent","Bullet","Clover","Sadler","Firetruck","Hustler","Intruder","Primo","Cargobob",
  41.         "Tampa","Sunrise","Merit","Utility","Nevada","Yosemite","Windsor","Monster A","Monster B","Uranus",
  42.         "Jester","Sultan","Stratum","Elegy","Raindance","RC Tiger","Flash","Tahoma","Savanna","Bandito","Freight",
  43.         "Trailer","Kart","Mower","Duneride","Sweeper","Broadway","Tornado","AT-400","DFT-30","Huntley","Stafford",
  44.         "BF-400","Newsvan","Tug","Trailer A","Emperor","Wayfarer","Euros","Hotdog","Club","Trailer B","Trailer C",
  45.         "Andromada","Dodo","RC Cam","Launch","Police Car (LSPD)","Police Car (SFPD)","Police Car (LVPD)","Police Ranger",
  46.         "Picador","S.W.A.T. Van","Alpha","Phoenix","Glendale","Sadler","Luggage Trailer A","Luggage Trailer B",
  47.         "Stair Trailer","Boxville","Farm Plow","Utility Trailer"
  48. };
  49.  
  50. public OnFilterScriptInit()
  51. {
  52.     new playerid;
  53.     print("\n--------------------------------------");
  54.     print(" Ulric Vehicle System by Xaviour212");
  55.     print("--------------------------------------\n");
  56.     AddStaticVehicle(500,2487.1797,-1682.7505,13.0802,92.0700,4,1);
  57.     return 1;
  58. }
  59.  
  60. public OnVehicleSpawn(vehicleid)
  61. {
  62.     new playerid;
  63.     if(dini_Exists(VFile(GetPlayerVehicleID(playerid))))
  64.     {
  65.         SetVehiclePos(vehicleid, dini_Float(VFile(GetPlayerVehicleID(playerid)), "X"), dini_Float(VFile(GetPlayerVehicleID(playerid)), "Y"), dini_Float(VFile(GetPlayerVehicleID(playerid)), "Z"));
  66.     }
  67.     return 1;
  68. }
  69.  
  70. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  71. {
  72.     new string[100];
  73.     if(dini_Int(VFile(vehicleid),"UnBuyable") == 0 && dini_Int(VFile(vehicleid),"Owned") == 1)
  74.     {
  75.         format(string, sizeof(string), "~r~This %s has belogs to %s. And this car is not available for purchase", VehNames[GetVehicleModel(vehicleid)-400],dini_Get(VFile(vehicleid),"Owner"));
  76.         GameTextForPlayer(playerid, string, 3000, 3);
  77.     }
  78.     else if(dini_Int(VFile(vehicleid),"UnBuyable") == 1)
  79.     {
  80.         format(string, sizeof(string), "~b~This %s in Unbuyable by Administration server", VehNames[GetVehicleModel(vehicleid)-400]);
  81.         GameTextForPlayer(playerid, string, 3000, 4);
  82.     }
  83.     else if(dini_Int(VFile(vehicleid),"UnBuyable") == 0 && dini_Int(VFile(vehicleid),"Owned") == 0)
  84.     {
  85.         format(string, sizeof(string), "~g~This %s in Buyable. \nThe cost is $80000", VehNames[GetVehicleModel(vehicleid)-400]);
  86.         GameTextForPlayer(playerid, string, 3000, 4);
  87.     }
  88.     else if(dini_Int(VFile(vehicleid),"Lock") == 1 && GetPlayerVehicleID(playerid)!=Pc(playerid))
  89.     {
  90.         RemovePlayerFromVehicle(playerid);
  91.         format(string, sizeof(string), "~g~This %s locked by %s", VehNames[GetVehicleModel(vehicleid)-400],dini_Get(VFile(vehicleid),"Owner"));
  92.         GameTextForPlayer(playerid, string, 3000, 3);
  93.     }
  94.     return 1;
  95. }
  96.  
  97. public OnPlayerCommandText(playerid, cmdtext[])
  98. {
  99.     dcmd(vbuy,4,cmdtext);
  100.     dcmd(vsell,5,cmdtext);
  101.     dcmd(vcall,5,cmdtext);
  102.     dcmd(vunbuyable,10,cmdtext);
  103.     dcmd(vbuyable,8,cmdtext);
  104.     dcmd(vlock,5,cmdtext);
  105.     dcmd(vunlock,7,cmdtext);
  106.     dcmd(vpark,5,cmdtext);
  107.     dcmd(vhelp,5,cmdtext);
  108.     //New in v1.6
  109.     dcmd(vfind,5,cmdtext);
  110.     dcmd(vunfind,7,cmdtext);
  111.     dcmd(vadmpark,8,cmdtext);
  112.    
  113.     return 0;
  114. }
  115.  
  116. dcmd_vbuy(playerid, params[])
  117. {
  118.     #pragma unused params
  119.     new vehicleid = GetPlayerVehicleID(playerid), string[50];
  120.     if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,Red,"[ERROR]You must in Vehicle to use this command");
  121.     if(dini_Int(VFile(vehicleid),"Owned")== 1) return SendClientMessage(playerid,Red,"[ERROR]This car is already owned");
  122.     if(dini_Int(VFile(vehicleid),"UnBuyable")== 1) return SendClientMessage(playerid,Red,"[ERROR]This car in unbuyable");
  123.     if(dini_Int(PFile(playerid),"HaveCar")== 1) return SendClientMessage(playerid,Red,"[ERROR]You already have a Car");
  124.     if(GetPlayerMoney(playerid)<8000) return SendClientMessage(playerid,Red,"[ERROR]You dont have a $ 80000");
  125.     if(!dini_Exists(PFile(playerid)))
  126.     {
  127.         dini_Create(PFile(playerid));
  128.         dini_IntSet(PFile(playerid),"HaveCar",1);
  129.         dini_IntSet(PFile(playerid),"CarID",vehicleid);
  130.     }
  131.     else if(dini_Exists(PFile(playerid)))
  132.     {
  133.         dini_IntSet(PFile(playerid),"HaveCar",1);
  134.         dini_IntSet(PFile(playerid),"CarID",vehicleid);
  135.     }
  136.     if(!dini_Exists(VFile(vehicleid)))
  137.     {
  138.         dini_Create(VFile(vehicleid));
  139.         dini_IntSet(VFile(vehicleid),"Owned",1);
  140.         dini_Set(VFile(vehicleid),"Owner", Gn(playerid));
  141.     }
  142.     else if(dini_Exists(VFile(vehicleid)))
  143.     {
  144.         dini_IntSet(VFile(vehicleid),"Owned",1);
  145.         dini_Set(VFile(vehicleid),"Owner",Gn(playerid));
  146.     }
  147.     format(string, sizeof(string), "You has buy a %s", VehNames[GetVehicleModel(vehicleid)-400]);
  148.     SendClientMessage(playerid, Green, string);
  149.     SendClientMessage(playerid, Blue, "To call your vehicle, type /vcall. Type /vhelp to help command");
  150.     GivePlayerMoney(playerid, -80000);
  151.     return 1;
  152. }
  153.  
  154. dcmd_vsell(playerid, params[])
  155. {
  156.     #pragma unused params
  157.     new vehicleid = GetPlayerVehicleID(playerid);
  158.     if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,Red,"[ERROR]You must in Vehicle to use this command");
  159.     if(dini_Int(PFile(playerid),"HaveCar") == 0) return SendClientMessage(playerid, Red, "[ERROR]You dont have a car");
  160.     if(vehicleid!=Pc(playerid)) return SendClientMessage(playerid,Red,"[ERROR]This vehicle is not your car");
  161.     dini_IntSet(VFile(vehicleid),"Owner",0);
  162.     dini_IntSet(VFile(vehicleid),"Owned",0);
  163.     dini_IntSet(VFile(vehicleid),"UnBuyable",0);
  164.     dini_IntSet(PFile(playerid),"HaveCar",0);
  165.     dini_Set(PFile(playerid),"CarID","None");
  166.     dini_Remove(VFile(vehicleid));
  167.     SendClientMessage(playerid, Green,"You has sell your car. Now you can buy a car again");
  168.     GivePlayerMoney(playerid, 80000);
  169.     SetVehicleToRespawn(vehicleid);
  170.     return 1;
  171. }
  172.  
  173. dcmd_vcall(playerid, params[])
  174. {
  175.     #pragma unused params
  176.     if(dini_Int(PFile(playerid),"HaveCar") == 0)return SendClientMessage(playerid,Red,"[ERROR]You dont have a car");
  177.     if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, Red, "[ERROR]You must not used vehicle to call you car");
  178.     new Float:p[4];
  179.     GetPlayerPos(playerid,p[0],p[1],p[2]);
  180.     GetPlayerFacingAngle(playerid,p[3]);
  181.     SetVehiclePos(Pc(playerid),p[0],p[1],p[2]);
  182.     SetVehicleZAngle(Pc(playerid),p[3]);
  183.     PutPlayerInVehicle(playerid,Pc(playerid),0);
  184.     SendClientMessage(playerid, Green, "You has call you vehicle. Enjoy with you car");
  185.     return 1;
  186. }
  187.  
  188. dcmd_vunbuyable(playerid, params[])
  189. {
  190.     #pragma unused params
  191.     new vehicleid = GetPlayerVehicleID(playerid), string[50];
  192.     if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,Red,"[ERROR]Only RCON Admin can use this command");
  193.     if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,Red,"[ERROR]You must in vehicle to use this command");
  194.     if(dini_Int(VFile(vehicleid),"UnBuyable")== 1) return SendClientMessage(playerid, Red, "[ERROR]This vehicle already in unbuyable");
  195.     if(!dini_Exists(VFile(vehicleid)))
  196.     {
  197.         dini_Create(VFile(vehicleid));
  198.         dini_IntSet(VFile(vehicleid),"UnBuyable",1);
  199.         dini_IntSet(VFile(vehicleid),"Owned",0);
  200.         dini_IntSet(VFile(vehicleid),"Owner",0);
  201.     }
  202.     else
  203.     {
  204.         dini_IntSet(VFile(vehicleid),"UnBuyable",1);
  205.         dini_IntSet(VFile(vehicleid),"Owned",0);
  206.         dini_IntSet(VFile(vehicleid),"Owner",0);
  207.     }
  208.     format(string, sizeof(string), "Now this %s is in unbuyable", VehNames[GetVehicleModel(vehicleid)-400]);
  209.     SendClientMessage(playerid, Green, string);
  210.     return 1;
  211. }
  212.  
  213. dcmd_vbuyable(playerid, params[])
  214. {
  215.     #pragma unused params
  216.     new vehicleid = GetPlayerVehicleID(playerid), string[50];
  217.     if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,Red,"[ERROR]Only RCON Admin can use this command");
  218.     if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,Red,"[ERROR]You must in vehicle to use this command");
  219.     if(dini_Int(VFile(vehicleid),"UnBuyable")== 0) return SendClientMessage(playerid, Red, "[ERROR]This vehicle already in buyable");
  220.     if(!dini_Exists(VFile(vehicleid)))
  221.     {
  222.         dini_Create(VFile(vehicleid));
  223.         dini_IntSet(VFile(vehicleid),"UnBuyable",0);
  224.         dini_IntSet(VFile(vehicleid),"Owned",0);
  225.         dini_IntSet(VFile(vehicleid),"Owner",0);
  226.     }
  227.     else
  228.     {
  229.         dini_IntSet(VFile(vehicleid),"UnBuyable",0);
  230.         dini_IntSet(VFile(vehicleid),"Owned",0);
  231.         dini_IntSet(VFile(vehicleid),"Owner",0);
  232.     }
  233.     format(string, sizeof(string), "Now this %s is in buyable", VehNames[GetVehicleModel(vehicleid)-400]);
  234.     SendClientMessage(playerid, Green, string);
  235.     return 1;
  236. }
  237.  
  238. dcmd_vlock(playerid, params[])
  239. {
  240.     #pragma unused params
  241.     new vehicleid = GetPlayerVehicleID(playerid), string[50];
  242.     if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,Red,"[ERROR]You must in vehicle to use this command");
  243.     if(dini_Int(PFile(playerid),"HaveCar") == 0) return SendClientMessage(playerid, Red, "[ERROR]You dont have a car");
  244.     if(vehicleid!=Pc(playerid)) return SendClientMessage(playerid,Red,"[ERROR]This vehicle is not your car");
  245.     dini_IntSet(VFile(vehicleid),"Lock",1);
  246.     format(string, sizeof(string), "Now this %s has been locked", VehNames[GetVehicleModel(vehicleid)-400]);
  247.     SendClientMessage(playerid, Green, string);
  248.     return 1;
  249. }
  250.  
  251. dcmd_vunlock(playerid, params[])
  252. {
  253.     #pragma unused params
  254.     new vehicleid = GetPlayerVehicleID(playerid), string[100];
  255.     if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,Red,"[ERROR]You must in vehicle to use this command");
  256.     if(dini_Int(PFile(playerid),"HaveCar") == 0) return SendClientMessage(playerid, Red, "[ERROR]You dont have a car");
  257.     if(vehicleid!=Pc(playerid)) return SendClientMessage(playerid,Red,"[ERROR]This vehicle is not your car");
  258.     dini_IntSet(VFile(vehicleid),"Lock",0);
  259.     format(string, sizeof(string), "Now this %s has been unlocked", VehNames[GetVehicleModel(vehicleid)-400]);
  260.     SendClientMessage(playerid, Green, string);
  261.     return 1;
  262. }
  263.  
  264. dcmd_vpark(playerid, params[])
  265. {
  266.     #pragma unused params
  267.     new vehicleid = GetPlayerVehicleID(playerid), string[100];
  268.     new Float:A, Float:B, Float:C;
  269.     if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,Red,"[ERROR]You must in vehicle to use this command");
  270.     if(dini_Int(PFile(playerid),"HaveCar") == 0) return SendClientMessage(playerid, Red, "[ERROR]You dont have a car");
  271.     if(vehicleid!=Pc(playerid)) return SendClientMessage(playerid,Red,"[ERROR]This vehicle is not your car");
  272.     dini_IntSet(VFile(vehicleid),"Parked",1);
  273.     GetVehiclePos(Pc(playerid),A,B,C);
  274.     dini_FloatSet(VFile(vehicleid),"X",A);
  275.     dini_FloatSet(VFile(vehicleid),"Y",B);
  276.     dini_FloatSet(VFile(vehicleid),"Z",C);
  277.     format(string, sizeof(string), "You has park you car in %f, %f, %f", A, B, C);
  278.     SendClientMessage(playerid, Green, string);
  279.     return 1;
  280. }
  281.  
  282. dcmd_vfind(playerid, params[])
  283. {
  284.     #pragma unused params
  285.     if(dini_Int(PFile(playerid),"HaveCar") == 0) return SendClientMessage(playerid, Red, "[ERROR]You dont have a car");
  286.     new Float:A, Float:B, Float:C;
  287.     GetVehiclePos(Pc(playerid),A,B,C);
  288.     SetPlayerRaceCheckpoint(playerid, 1, A, B, C, 0.0, 0.0, 0.0, 2);
  289.     SendClientMessage(playerid, Green, "Follow checkpoint to find you car");
  290.     return 1;
  291. }
  292.  
  293. dcmd_vunfind(playerid, params[])
  294. {
  295.     #pragma unused params
  296.     DisablePlayerRaceCheckpoint(playerid);
  297.     SendClientMessage(playerid, Green, "Checkpoint has been destroyed");
  298.     return 1;
  299. }
  300.  
  301. dcmd_vhelp(playerid, params[])
  302. {
  303.     #pragma unused params
  304.     SendClientMessage(playerid, Blue, "Ulric Vehicle System by ~Xaviour212~");
  305.     SendClientMessage(playerid, Green, "Type /vbuy to buy a vehicle");
  306.     SendClientMessage(playerid, Green, "Type /vsell to sell you car");
  307.     SendClientMessage(playerid, Green, "Type /vcall to call your vehicle");
  308.     SendClientMessage(playerid, Green, "Type /vlock to lock your car");
  309.     SendClientMessage(playerid, Green, "Type /vunlock to unlock your car");
  310.     SendClientMessage(playerid, Green, "Type /vpark to park your vehicle");
  311.     SendClientMessage(playerid, Green, "Type /vfind to find you car");
  312.     SendClientMessage(playerid, Green, "Type /vunfind to destroy a checkpoint from /vfind");
  313.     if(IsPlayerAdmin(playerid))
  314.     {
  315.         SendClientMessage(playerid, Blue, "Rcon Commands");
  316.         SendClientMessage(playerid, Green, "Type /vbuyable to set a car to buyable");
  317.         SendClientMessage(playerid, Green, "Type /vunbuyable to set a car to unbuyable");
  318.         SendClientMessage(playerid, Green, "Type /vadmpark to park a vehicle");
  319.     }
  320.     return 1;
  321. }
  322.  
  323. dcmd_vadmpark(playerid, params[])
  324. {
  325.     #pragma unused params
  326.     new vehicleid = GetPlayerVehicleID(playerid), string[100];
  327.     new Float:A, Float:B, Float:C;
  328.     if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,Red,"[ERROR]Only RCON admin can use this command");
  329.     if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,Red,"[ERROR]You must in vehicle to use this command");
  330.     dini_IntSet(VFile(vehicleid),"Parked",1);
  331.     GetVehiclePos(Pc(playerid),A,B,C);
  332.     dini_FloatSet(VFile(vehicleid),"X",A);
  333.     dini_FloatSet(VFile(vehicleid),"Y",B);
  334.     dini_FloatSet(VFile(vehicleid),"Z",C);
  335.     format(string, sizeof(string), "You has park this %s in %f, %f, %f", VehNames[GetVehicleModel(vehicleid)-400], A, B, C);
  336.     SendClientMessage(playerid, Green, string);
  337.     return 1;
  338. }
  339.  
  340. public OnPlayerEnterRaceCheckpoint(playerid)
  341. {
  342.     DisablePlayerRaceCheckpoint(playerid);
  343.     SendClientMessage(playerid, Green, "Your car has been found");
  344.     return 1;
  345. }
  346.  
  347. stock Gn(playerid)
  348. {
  349.     new pname[24];
  350.     GetPlayerName(playerid,pname,MAX_PLAYER_NAME);
  351.     return pname;
  352. }
  353.  
  354. stock PFile(playerid)
  355. {
  356.     format(file,64,"Cars/Users/%s.ini",Gn(playerid));
  357.     return file;
  358. }
  359.  
  360. stock VFile(vehicleid)
  361. {
  362.     new Car[64];
  363.     format(Car,64,"Cars/%d.ini",vehicleid);
  364.     return Car;
  365. }
  366.  
  367. stock Pc(playerid) return dini_Int(PFile(playerid),"CarId");
  368.  
  369. stock Rv(playerid) return dini_Int(PFile(playerid),"RCarID");
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement