Advertisement
Xaviour212

Ulric Vehicle System (0.3c)

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