Advertisement
Xaviour212

Ulric Vehicle System v1.6

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