Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Jul 7th, 2010  |  syntax: None  |  size: 44.63 KB  |  hits: 49  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. /*##################################################################################################*/
  2. /*
  3.         ######  ######  ######      #### ##    #  #### ###### ##### ##      ##      #####           #####
  4.         ##      ##   #  ##  ##     ##     ##  #  ##      ##   ##    ## #  # ##     #    ##         #    ##
  5.         ##      ##   #  ##  ##     ####     ##   ###     ##   ####  ##  #   ##         ##              ##
  6.         ##      ######  ## ##         ##    ##      ##   ##   ##    ##      ##       ##              ##
  7.         ######  ##   #  ##  ##     ####     ##   ####    ##   ##### ##      ##     #######    #    #######
  8. */
  9. /*###################################################################################################*/
  10. #include <a_samp>
  11. #include <dini>
  12. #include <dudb>
  13.  
  14. #define blue 0x00FFFFAA
  15. #define red 0xFF0000AA
  16. #define green 0x33FF33AA
  17. #define white 0xFFFFFFAA
  18. #define orange 0xFF9900AA
  19. #define COLOR_WHITE 0xFFFFFFAA
  20. #define COLOR_LIGHTBLUE 0x33CCFFAA
  21.  
  22. #define RespawnDelay 90000
  23.  
  24. #pragma unused ret_memcpy
  25. #pragma tabsize 0
  26.  
  27. #define NormPrice 90000 // the cost of a normal car
  28. #define BoatPrice 100000
  29. #define BikePrice 60000
  30. #define PlanePrice 125000
  31. #define Expensive 200000
  32. #define VeryExpensive 1000000
  33.  
  34. new     boat[11][0] = {
  35. {472}, {473}, {493}, {595}, {484}, {430}, {453}, {539}, {452}, {446}, {454}
  36. };
  37. new     bike[14][0] = {
  38. {581}, {521}, {462}, {463}, {468}, {471}, {586}, {522}, {523}, {461}, {448},
  39. {509}, {481},{510}
  40. };
  41. new     plane[10][0] = {
  42. {512}, {513}, {460}, {464}, {465}, {519}, {511}, {553}, {592}, {577}
  43. };
  44. new expensive[18][0] = {
  45. {476}, {433}, {541}, {486}, {495}, {506}, {451}, {477}, {406}, {444}, {573},
  46. {449}, {537}, {558}, {587}, {407}, {528}, {529}
  47. };
  48. new Vexpensive[4][0] = {
  49. {432}, {425}, {520}, {447}
  50. };
  51.  
  52. forward SaveFiles();
  53.  
  54. new VCount;
  55. new ModCount = 0;
  56. new ParkCount = 0;
  57. new ColourCount = 0;
  58. new CreateCount = 0;
  59.  
  60. new Float:Pos[MAX_PLAYERS][4];
  61. new Float:Angle[MAX_PLAYERS];
  62.  
  63. enum PInfo
  64. {
  65.         CarID,
  66.         OwnCar
  67. }
  68. new PlayerInfo[MAX_VEHICLES][PInfo];
  69.  
  70. enum VehInfo
  71. {
  72.         CarID,
  73.         CarName[30],
  74.         CarModel,
  75.         CarOwned,
  76.         CarOwner[MAX_PLAYER_NAME],
  77.         CarLocked,
  78.         Buyable,
  79.         Price,
  80.         Parkedx,
  81.         Parkedy,
  82.         Parkedz,
  83.         ParkedAngle,
  84.         CarMod1,
  85.     Nitros,
  86.         PaintJob,
  87.         Colour1,
  88.         Colour2
  89. };
  90.  
  91. new VehicleInfo[MAX_VEHICLES][VehInfo];
  92.  
  93. new VehNames[212][] = {
  94. "Landstalker","Bravura","Buffalo","Linerunner","Pereniel","Sentinel","Dumper","Firetruck","Trashmaster",
  95. "Stretch","Manana","Infernus","Voodoo","Pony","Mule","Cheetah","Ambulance","Leviathan","Moonbeam","Esperanto",
  96. "Taxi","Washington","Bobcat","Mr Whoopee","BF Injection","Hunter","Premier","Enforcer","Securicar","Banshee",
  97. "Predator","Bus","Rhino","Barracks","Hotknife","Trailer","Previon","Coach","Cabbie","Stallion","Rumpo",
  98. "RC Bandit","Romero","Packer","Monster","Admiral","Squalo","Seasparrow","Pizzaboy","Tram","Trailer",
  99. "Turismo","Speeder","Reefer","Tropic","Flatbed","Yankee","Caddy","Solair","Berkley's RC Van","Skimmer",
  100. "PCJ-600","Faggio","Freeway","RC Baron","RC Raider","Glendale","Oceanic","Sanchez","Sparrow","Patriot",
  101. "Quad","Coastguard","Dinghy","Hermes","Sabre","Rustler","ZR3 50","Walton","Regina","Comet","BMX",
  102. "Burrito","Camper","Marquis","Baggage","Dozer","Maverick","News Chopper","Rancher","FBI Rancher","Virgo",
  103. "Greenwood","Jetmax","Hotring","Sandking","Blista Compact","Police Maverick","Boxville","Benson","Mesa",
  104. "RC Goblin","Hotring Racer A","Hotring Racer B","Bloodring Banger","Rancher","Super GT","Elegant",
  105. "Journey","Bike","Mountain Bike","Beagle","Cropdust","Stunt","Tanker","RoadTrain","Nebula","Majestic",
  106. "Buccaneer","Shamal","Hydra","FCR-900","NRG-500","HPV1000","Cement Truck","Tow Truck","Fortune","Cadrona",
  107. "FBI Truck","Willard","Forklift","Tractor","Combine","Feltzer","Remington","Slamvan","Blade","Freight",
  108. "Streak","Vortex","Vincent","Bullet","Clover","Sadler","Firetruck","Hustler","Intruder","Primo","Cargobob",
  109. "Tampa","Sunrise","Merit","Utility","Nevada","Yosemite","Windsor","Monster A","Monster B","Uranus",
  110. "Jester","Sultan","Stratum","Elegy","Raindance","RC Tiger","Flash","Tahoma","Savanna","Bandito","Freight",
  111. "Trailer","Kart","Mower","Duneride","Sweeper","Broadway","Tornado","AT-400","DFT-30","Huntley","Stafford",
  112. "BF-400","Newsvan","Tug","Trailer A","Emperor","Wayfarer","Euros","Hotdog","Club","Trailer B","Trailer C",
  113. "Andromada","Dodo","RC Cam","Launch","Police Car (LSPD)","Police Car (SFPD)","Police Car (LVPD)","Police Ranger",
  114. "Picador","S.W.A.T. Van","Alpha","Phoenix","Glendale","Sadler","Luggage Trailer A","Luggage Trailer B",
  115. "Stair Trailer","Boxville","Farm Plow","Utility Trailer" };
  116.  
  117.  
  118. //==============================================================================
  119. public OnFilterScriptInit()
  120. {
  121.         if(!fexist("CarSys/"))
  122.         {
  123.             print(">            WARNING:\n");
  124.             print(" The  ' CarSys '   folder is missing from scriptfiles");
  125.             print("\n Please Create This Folder And Start the Filterscript Again\n");
  126.                 return 1;
  127.         }
  128.         if(!fexist("CarSys/Users"))
  129.         {
  130.             print(">            WARNING:\n");
  131.             print(" The  ' CarSys/ Users '   folder is missing from scriptfiles");
  132.             print("\n Please Create This Folder And Start the Filterscript Again\n");
  133.                 return 1;
  134.         }
  135.  
  136.         print("_____________________________________\n     Car Commands Filterscript      ");
  137.         print("\n         By LethaL Update by The_Davil \n_________________________________\n");
  138.        
  139.     SetTimer("LoadFiles",4000,0);
  140.  
  141.     return 1;
  142. }
  143. //==============================================================================
  144. public OnFilterScriptExit()
  145. {
  146.         SaveFiles();
  147. }
  148. //==============================================================================
  149. forward LoadFiles();
  150. public LoadFiles()
  151. {
  152.         new file[50], VPrice[MAX_VEHICLES];
  153.         VCount =CreateVehicle(411,0,0,0,0,0,0,-1);
  154.         DestroyVehicle(VCount);
  155.         print(" ");
  156.         print("    ________________________________________________");
  157.         print("=== [ Car System Checking Files And Updating Cars ] ===");
  158.         print(" ");
  159.         printf("                    %d Cars Found",VCount-1);
  160.         print("    ________________________________________________");
  161.         print("=== [     CarID    Info                           ] ===");
  162.         print(" ");
  163.        
  164.         for (new car=1; car < VCount; car++)
  165.         {
  166.                 format(file,sizeof(file),"CarSys/car%d.txt",car);
  167.                 if(!dini_Exists(file))
  168.                 {
  169.                         dini_Create(file); CreateCount++;
  170.                     dini_IntSet(file,"CarID",car);
  171.                     dini_Set(file,"CarName",VehNames[GetVehicleModel(car)-400] );
  172.                     dini_IntSet(file,"CarModel",GetVehicleModel(car));
  173.                     dini_IntSet(file,"CarOwned",0);
  174.                     dini_Set(file,"CarOwner","none");
  175.                     dini_IntSet(file,"CarLocked",0);
  176.                     dini_IntSet(file,"Buyable",1);
  177.                     dini_IntSet(file,"Price",50000);
  178.                     dini_IntSet(file,"Parkedx",0);
  179.                     dini_IntSet(file,"Parkedy",0);
  180.                     dini_IntSet(file,"Parkedz",0);
  181.                     dini_IntSet(file,"Parkedangle",0);
  182.                     dini_IntSet(file,"CarMod1",0);
  183.                     dini_IntSet(file,"Nitros",0);
  184.                     dini_IntSet(file,"PaintJob",-1);
  185.                     dini_IntSet(file,"Colour1",-1);
  186.                     dini_IntSet(file,"Colour2",-1);
  187.  
  188.                         VehicleInfo[car][CarID] = dini_Int(file,"CarID");
  189.                         strmid(VehicleInfo[car][CarName], dini_Get(file,"CarName"), 0, strlen(dini_Get(file,"CarName")), 255);
  190.                         VehicleInfo[car][CarModel] = dini_Int(file,"CarModel");
  191.                         VehicleInfo[car][CarOwned] = dini_Int(file,"CarOwned");
  192.                         strmid(VehicleInfo[car][CarOwner], dini_Get(file,"CarOwner"), 0, strlen(dini_Get(file,"CarOwner")), 255);
  193.                         VehicleInfo[car][CarLocked] = dini_Int(file,"CarLocked");
  194.                         VehicleInfo[car][Buyable] = dini_Int(file,"Buyable");
  195.                         VehicleInfo[car][Parkedx] = dini_Int(file,"Parkedx");
  196.                         VehicleInfo[car][Parkedy] = dini_Int(file,"Parkedy");
  197.                         VehicleInfo[car][Parkedz] = dini_Int(file,"Parkedz");
  198.                         VehicleInfo[car][ParkedAngle] = dini_Int(file,"Parkedangle");
  199.                         VehicleInfo[car][CarMod1] = dini_Int(file,"CarMod1");
  200.                         VehicleInfo[car][Nitros] = dini_Int(file,"Nitros");
  201.                     VehicleInfo[car][PaintJob] = dini_Int(file,"PaintJob");
  202.                 VehicleInfo[car][Colour1] = dini_Int(file,"Colour1");
  203.                     VehicleInfo[car][Colour2] = dini_Int(file,"Colour2");
  204.                    
  205.                         VPrice[car] = NormPrice;
  206.                 for(new v=0; v < sizeof(boat); v++) if(VehicleInfo[car][CarModel] == boat[v][0])
  207.                                 VPrice[car] = BoatPrice;
  208.                 for(new v=0; v < sizeof(bike); v++) if(VehicleInfo[car][CarModel] == bike[v][0])
  209.                                 VPrice[car] = BikePrice;
  210.                 for(new v=0; v < sizeof(plane); v++) if(VehicleInfo[car][CarModel] == plane[v][0])
  211.                                 VPrice[car] = PlanePrice;
  212.                 for(new v=0; v < sizeof(expensive); v++) if(VehicleInfo[car][CarModel] == expensive[v][0])
  213.                                 VPrice[car] = Expensive;
  214.                 for(new v=0; v < sizeof(Vexpensive); v++) if(VehicleInfo[car][CarModel] == Vexpensive[v][0])
  215.                                 VPrice[car] = VeryExpensive;
  216.  
  217.                         VehicleInfo[car][Price] = VPrice[car];
  218.                         dini_IntSet(file,"Price",VehicleInfo[car][Price]);
  219.                        
  220.                 }
  221.                 else if(dini_Exists(file))
  222.                 {
  223.                         VehicleInfo[car][CarID] = dini_Int(file,"CarID");
  224.                         strmid(VehicleInfo[car][CarName], dini_Get(file,"CarName"), 0, strlen(dini_Get(file,"CarName")), 255);
  225.                         VehicleInfo[car][CarModel] = dini_Int(file,"CarModel");
  226.                         VehicleInfo[car][CarOwned] = dini_Int(file,"CarOwned");
  227.                         strmid(VehicleInfo[car][CarOwner], dini_Get(file,"CarOwner"), 0, strlen(dini_Get(file,"CarOwner")), 255);
  228.                         VehicleInfo[car][CarLocked] = dini_Int(file,"CarLocked");
  229.                         VehicleInfo[car][Buyable] = dini_Int(file,"Buyable");
  230.                         VehicleInfo[car][Price] = dini_Int(file,"Price");
  231.                         VehicleInfo[car][Parkedx] = dini_Int(file,"Parkedx");
  232.                         VehicleInfo[car][Parkedy] = dini_Int(file,"Parkedy");
  233.                         VehicleInfo[car][Parkedz] = dini_Int(file,"Parkedz");
  234.                         VehicleInfo[car][ParkedAngle] = dini_Int(file,"Parkedangle");
  235.                         VehicleInfo[car][CarMod1] = dini_Int(file,"CarMod1");
  236.                         VehicleInfo[car][Nitros] = dini_Int(file,"Nitros");
  237.                     VehicleInfo[car][PaintJob] = dini_Int(file,"PaintJob");
  238.                 VehicleInfo[car][Colour1] = dini_Int(file,"Colour1");
  239.                     VehicleInfo[car][Colour2] = dini_Int(file,"Colour2");
  240.  
  241.                     if(dini_Int(file,"CarOwned") == 1)
  242.                     {
  243.                             printf("           %d       Owner: %s",car,VehicleInfo[car][CarOwner]);
  244.  
  245.                                 if((VehicleInfo[car][Parkedx] != 0) && (VehicleInfo[car][Parkedy] != 0)  )
  246.                                 {
  247.                                     DestroyVehicle(car);
  248.                                         CreateVehicle( VehicleInfo[car][CarModel], VehicleInfo[car][Parkedx], VehicleInfo[car][Parkedy], VehicleInfo[car][Parkedz], VehicleInfo[car][ParkedAngle], VehicleInfo[car][Colour1],  VehicleInfo[car][Colour2], RespawnDelay);
  249.                                         ParkCount++;
  250.                                 }
  251.                         if(VehicleInfo[car][CarMod1] != 0) { AddVehicleComponent(car, VehicleInfo[car][CarMod1] ); ModCount++; printf("           %d       Car Modded",car); }
  252.                                 if(VehicleInfo[car][PaintJob] != -1) ChangeVehiclePaintjob(car, VehicleInfo[car][PaintJob] );
  253.                                 if( (VehicleInfo[car][Colour1] != -1) || (VehicleInfo[car][Colour2] != -1) ) { ChangeVehicleColor(car, VehicleInfo[car][Colour1], VehicleInfo[car][Colour2] ); ColourCount++; printf("           %d       Colour Changed", car); }
  254.                         }
  255.             }
  256.         }
  257.         print("    ________________________________________________");
  258.         print("=== [ Car System Results                          ] ===");
  259.         print(" ");
  260.         printf("           Car Files Created        %d", CreateCount);
  261.         printf("           Cars Parked              %d",ParkCount);
  262.         printf("           Cars Modded              %d",ModCount);
  263.         printf("           Cars Paint Changed       %d",ColourCount);
  264.         print("    ________________________________________________");
  265.         print("=== [  Car System Loaded                          ] ===");
  266.         print(" ");
  267.        
  268.         for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i)) OnPlayerConnect(i);
  269. }
  270. //==============================================================================
  271. public SaveFiles()
  272. {
  273.         for (new car=1; car < VCount; car++)
  274.         {
  275.                 new file[50]; format(file,sizeof(file),"CarSys/car%d.txt",car);
  276.                 if(dini_Exists(file))
  277.                 {
  278.                     dini_IntSet(file,"CarOwned",VehicleInfo[car][CarOwned]);
  279.                     if(VehicleInfo[car][CarOwned] == 0) dini_Set(file,"CarOwner","none");
  280.                     if(VehicleInfo[car][CarOwned] == 1) dini_Set(file,"CarOwner",VehicleInfo[car][CarOwner]);
  281.                     dini_IntSet(file,"CarLocked",VehicleInfo[car][CarLocked]);
  282.                     dini_IntSet(file,"Buyable",VehicleInfo[car][Buyable]);
  283.                     dini_IntSet(file,"Price",VehicleInfo[car][Price]);
  284.                     dini_IntSet(file,"Parkedx",VehicleInfo[car][Parkedx]);
  285.                     dini_IntSet(file,"Parkedy",VehicleInfo[car][Parkedy]);
  286.                     dini_IntSet(file,"Parkedz",VehicleInfo[car][Parkedz]);
  287.                     dini_IntSet(file,"Parkedangle",VehicleInfo[car][ParkedAngle]);
  288.                     dini_IntSet(file,"CarMod1",VehicleInfo[car][CarMod1]);
  289.             dini_IntSet(file,"Nitros",VehicleInfo[car][Nitros]);
  290.                     dini_IntSet(file,"PaintJob",VehicleInfo[car][PaintJob]);
  291.                     dini_IntSet(file,"Colour1",VehicleInfo[car][Colour1]);
  292.                     dini_IntSet(file,"Colour2",VehicleInfo[car][Colour2]);
  293.                 }
  294.         }
  295.         print("===[CAR] Car Files Saved");
  296. }
  297. //==============================================================================
  298. public OnPlayerConnect(playerid)
  299. {
  300.         PlayerInfo[playerid][CarID] = 0;
  301.         PlayerInfo[playerid][OwnCar] = 0;
  302.        
  303.         new file[256], PlayerName[100]; GetPlayerName(playerid,PlayerName,30);
  304.         format(file,sizeof(file),"CarSys/Users/%s.txt",PlayerName);
  305.  
  306.         if(!dini_Exists(file))
  307.         {
  308.                 dini_Create(file);
  309.                 dini_IntSet(file,"CarID",0);
  310.                 dini_IntSet(file,"OwnCar",0);
  311.         }
  312.         else if(dini_Exists(file))
  313.         {
  314.                 PlayerInfo[playerid][CarID] = dini_Int(file,"CarID");
  315.                 PlayerInfo[playerid][OwnCar] = dini_Int(file,"OwnCar");
  316.         }
  317. }
  318. //==============================================================================
  319. public OnVehicleSpawn(vehicleid)
  320. {
  321.         if( VehicleInfo[vehicleid][CarOwned] == 1 )
  322.         {
  323.         SetTimerEx("UpdateCar",100000,0,"d",vehicleid);
  324.         }
  325. }
  326. //==============================================================================
  327.  
  328. forward UpdateCar(vehicleid);
  329. public UpdateCar(vehicleid)
  330. {
  331.         if( (VehicleInfo[vehicleid][Parkedx] != 0) && (VehicleInfo[vehicleid][Parkedy] != 0)  )
  332.         {
  333.             DestroyVehicle(vehicleid);
  334.         CreateVehicle( VehicleInfo[vehicleid][CarModel], VehicleInfo[vehicleid][Parkedx], VehicleInfo[vehicleid][Parkedy], VehicleInfo[vehicleid][Parkedz], VehicleInfo[vehicleid][ParkedAngle], VehicleInfo[vehicleid][Colour1],  VehicleInfo[vehicleid][Colour2], RespawnDelay);
  335.         }
  336.         if(VehicleInfo[vehicleid][CarMod1] != 0) AddVehicleComponent(vehicleid, VehicleInfo[vehicleid][CarMod1] );
  337.         if(VehicleInfo[vehicleid][PaintJob] != -1) ChangeVehiclePaintjob(vehicleid, VehicleInfo[vehicleid][PaintJob] );
  338.         if( (VehicleInfo[vehicleid][Colour1] != -1) || (VehicleInfo[vehicleid][Colour2] != -1) ) ChangeVehicleColor(vehicleid, VehicleInfo[vehicleid][Colour1], VehicleInfo[vehicleid][Colour2] );
  339. }
  340.  
  341. //==============================
  342. public OnVehicleMod(vehicleid,componentid)
  343. {
  344.         new file[50]; format(file,sizeof(file),"CarSys/car%d.txt",vehicleid);
  345.         if( dini_Exists(file) && (VehicleInfo[vehicleid][CarOwned] == 1) )
  346.         {
  347.                 if(VehicleInfo[vehicleid][CarMod1] == 0) { dini_IntSet(file,"CarMod1",componentid); VehicleInfo[vehicleid][CarMod1] = componentid; }
  348.         }
  349.         return 1;
  350. }
  351. //==============================================================================
  352. public OnVehiclePaintjob(vehicleid,paintjobid)
  353. {
  354.         new file[50]; format(file,sizeof(file),"CarSys/car%d.txt",vehicleid);
  355.         if( dini_Exists(file) && (dini_Int(file,"CarOwned") == 1) )
  356.         {
  357.                 dini_IntSet(file,"PaintJob",paintjobid);
  358.                 VehicleInfo[vehicleid][PaintJob] = paintjobid;
  359.         }
  360.         return 1;
  361. }
  362. //==============================================================================
  363. public OnVehicleRespray(vehicleid,color1,color2)
  364. {
  365.         new file[50]; format(file,sizeof(file),"CarSys/car%d.txt",vehicleid);
  366.         if( dini_Exists(file) && (dini_Int(file,"CarOwned") == 1) )
  367.         {
  368.                 dini_IntSet(file,"Colour1",color1); VehicleInfo[vehicleid][Colour1] = color1;
  369.                 dini_IntSet(file,"Colour2",color2); VehicleInfo[vehicleid][Colour2] = color2;
  370.         }
  371.         return 1;
  372. }
  373. //==============================================================================
  374. public OnPlayerDisconnect(playerid, reason)
  375. {
  376.         PlayerInfo[playerid][CarID] = 0;
  377.         PlayerInfo[playerid][OwnCar] = 0;
  378.        
  379. /*      if(PlayerInfo[playerid][CarID] != 0)
  380.         {
  381.                 for(new i=0;i<MAX_PLAYERS;i++) SetVehicleParamsForPlayer(PlayerInfo[playerid][CarID],i, 0, 0); //optional
  382.         }
  383. */
  384.         return 1;
  385. }
  386. //==============================================================================
  387. public OnPlayerSpawn(playerid)
  388. {
  389.         for(new car=0 ; car < VCount; car++)
  390.         {
  391.                 new PlayerName[100]; GetPlayerName(playerid,PlayerName,30);
  392.  
  393.                 if(VehicleInfo[car][CarLocked] == 1 && VehicleInfo[car][CarOwned] == 1 && strcmp(PlayerName,VehicleInfo[car][CarOwner],true) == 0)
  394.                 {
  395.                 SetVehicleParamsForPlayer(car, playerid, 0, 0); // unlocked
  396.         }
  397.                 else if(VehicleInfo[car][CarLocked] == 1 && VehicleInfo[car][CarOwned] == 1 && strcmp(PlayerName,VehicleInfo[car][CarOwner],true) != 0)
  398.                 {
  399.                 SetVehicleParamsForPlayer(car, playerid, 0, 1);
  400.         }
  401.         }
  402. }
  403. //==============================================================================
  404. public OnPlayerCommandText(playerid, cmdtext[])
  405. {
  406.         new idx;
  407.         new cmd[255], tmp[255], string[256], file[50];
  408.         new PlayerName[100];
  409.         cmd = strtok(cmdtext,idx);
  410.  
  411.         if(strcmp(cmdtext, "/carhelp", true)==0)        {
  412.         SendClientMessage(playerid, white,"__________________________________________________________________");
  413.         SendClientMessage(playerid, white,"ô÷åãåú ëìé äøëá:");
  414.     SendClientMessage(playerid, orange,"/buycar, /sellcar - ìîëåø åìé÷ðåú àú äøëá");
  415.     SendClientMessage(playerid, orange,"/lock, /unlock - ìñâåø åìéôúåç àú äøëá");
  416.     //SendClientMessage(playerid, orange,"/callcar - ì÷øåà ìëìé äøëá ùìê");
  417.     SendClientMessage(playerid, orange,"/remove [ID], /removeall - ìäåöéà îéùäå îñåééí îäøëá àå ìäåöéà àú ëåìí");
  418.     SendClientMessage(playerid, orange,"/cctv, /cctvoff - ìäùâéç òì äøëá ùìê åìäôñé÷");
  419.     SendClientMessage(playerid, orange,"/carinfo - ôøèéí òì äøëá");
  420.     if(IsPlayerAdmin(playerid)) SendClientMessage(playerid, red,"Admin Only: /alock, /aunlock, /lockallcars, /unlockallcars - ô÷åãåú ìðòéìú îëåðéåú");
  421.     if(IsPlayerAdmin(playerid)) SendClientMessage(playerid, red,"/unbuyable, /buyable - ìôúåç úøëá ì÷ðééä åìéñâåø");
  422.     SendClientMessage(playerid, white,"__________________________________________________________________");
  423.     return 1;
  424.     }
  425. //==============================================================================
  426.         if(strcmp(cmd, "/unlockallcars", true) == 0)
  427.         {
  428.         if(IsPlayerAdmin(playerid))
  429.                 {
  430.                         for(new cari=0; cari < VCount; cari++) for(new i=0; i < MAX_PLAYERS; i++) SetVehicleParamsForPlayer(cari,i, 0, 0);
  431.                 SendClientMessage(playerid, green,"ëåì äîëåðéåú ðéôúçå");
  432.                 PlayerPlaySound(playerid,1056,0.0,0.0,0.0);
  433.         }
  434.                 else
  435.                 {
  436.                         SendClientMessage(playerid, red, "ô÷åãä æå ø÷ ìàãîéðéí");
  437.                 }
  438.                 return 1;
  439.         }
  440. //==============================================================================
  441.         if(strcmp(cmd, "/lockallcars", true) == 0)
  442.         {
  443.         if(IsPlayerAdmin(playerid))
  444.                 {
  445.                         for(new i=0; i < MAX_PLAYERS; i++) for(new cari=0; cari < VCount; cari++) SetVehicleParamsForPlayer(cari,i, 0, 1);
  446.                 SendClientMessage(playerid, green,"ëåì äîëåðéåú ðéðòìå");
  447.                 PlayerPlaySound(playerid,1056,0.0,0.0,0.0);
  448.         }
  449.                 else
  450.                 {
  451.                         SendClientMessage(playerid, red, "ô÷åãä æå ø÷ ìàãîéðéí");
  452.                 }
  453.                 return 1;
  454.         }
  455. //==============================================================================
  456.         if(strcmp(cmd, "/aunlock", true) == 0)
  457.         {
  458.         if(IsPlayerAdmin(playerid))
  459.         {
  460.                         new carid;              GetPlayerName(playerid,PlayerName,30);
  461.                         tmp = strtok(cmdtext,idx);
  462.  
  463.                         if(!strlen(tmp))
  464.                         {
  465.                                 if(!(IsPlayerInAnyVehicle(playerid)))
  466.                                 {
  467.                                         SendClientMessage(playerid,red,"àðà ëðñ ìøëá åäùúîù òí äô÷åãä");
  468.                                 }
  469.                                 else
  470.                                 {
  471.                                         new vehicleid = GetPlayerVehicleID(playerid);
  472.                                 for (new i=0;i<MAX_PLAYERS;i++) SetVehicleParamsForPlayer(vehicleid,i, 0, 0);
  473.                                         VehicleInfo[vehicleid][CarLocked] = 1;
  474.                                         format(string,sizeof(string),"Administrator %s has unlocked the %s [ID: %d] ",PlayerName,VehicleInfo[vehicleid][CarName],vehicleid);
  475.                                         SendClientMessageToAll(blue, string);
  476.                                     PlayerPlaySound(playerid,1056,0.0,0.0,0.0);
  477.                                     return 1;
  478.                                 }
  479.                         }
  480.                         else
  481.                         {
  482.                         carid = strval(tmp);
  483.                         if(carid >= VCount) return SendClientMessage(playerid,red,"îëåðéú æàú àéðä éëåìä ìäéôúç");
  484.                         tmp = strtok(cmdtext, idx);
  485.  
  486.                 for (new i=0;i<MAX_PLAYERS;i++) SetVehicleParamsForPlayer(carid,i, 0, 0);
  487.                         VehicleInfo[carid][CarLocked] = 0;
  488.                         format(string,sizeof(string),"Administrator %s has unlocked the %s [ID: %d] ",PlayerName,VehicleInfo[carid][CarName], carid);
  489.                         SendClientMessageToAll(blue, string);
  490.                     PlayerPlaySound(playerid,1056,0.0,0.0,0.0);
  491.                         return 1;
  492.                         }
  493.                 }
  494.                 else
  495.                 {
  496.                         SendClientMessage(playerid, red, "ô÷åãä æå ø÷ ìàãîéðéí");
  497.                 }
  498.                 return 1;
  499.         }
  500. //==============================================================================
  501.         if(strcmp(cmd, "/alock", true) == 0)
  502.         {
  503.         if(IsPlayerAdmin(playerid))
  504.         {
  505.                         new carid;              GetPlayerName(playerid,PlayerName,30);
  506.                         tmp = strtok(cmdtext,idx);
  507.  
  508.                         if(!strlen(tmp))
  509.                         {
  510.                                 if(!(IsPlayerInAnyVehicle(playerid)))
  511.                                 {
  512.                                         SendClientMessage(playerid,red,"àðà äùúîù áô÷åãä æå ëùàúä áîëåðéú");
  513.                                 }
  514.                                 else
  515.                                 {
  516.                                         new vehicleid = GetPlayerVehicleID(playerid);
  517.                                 for (new i=0;i<MAX_PLAYERS;i++) SetVehicleParamsForPlayer(GetPlayerVehicleID(playerid),i, 0, 1);
  518.                                         VehicleInfo[vehicleid][CarLocked] = 1;
  519.                                         format(string,sizeof(string),"Administrator %s has locked the %s [ID: %d] ",PlayerName,VehicleInfo[vehicleid][CarName], vehicleid);
  520.                                         SendClientMessageToAll(blue, string);
  521.                                     PlayerPlaySound(playerid,1056,0.0,0.0,0.0);
  522.                                     return 1;
  523.                                 }
  524.                         }
  525.                         else
  526.                         {
  527.                         carid = strval(tmp);
  528.                         if(carid >= VCount) return SendClientMessage(playerid,red,"îëåðéú æàú àéðä éëåìä ìäéðòì");
  529.                         tmp = strtok(cmdtext, idx);
  530.                        
  531.                 for (new i=0;i<MAX_PLAYERS;i++) SetVehicleParamsForPlayer(carid,i, 0, 1);
  532.                         VehicleInfo[carid][CarLocked] = 1;
  533.                         format(string,sizeof(string),"Administrator %s has locked the %s [ID: %d] ",PlayerName,VehicleInfo[carid][CarName], carid);
  534.                         SendClientMessageToAll(blue, string);
  535.                     PlayerPlaySound(playerid,1056,0.0,0.0,0.0);
  536.                         return 1;
  537.                         }
  538.                 }
  539.                 else
  540.                 {
  541.                         SendClientMessage(playerid, red, "ô÷åãä æå ø÷ ìàãîéðéí");
  542.                 }
  543.                 return 1;
  544.         }
  545. //==============================================================================
  546.         if(strcmp(cmd, "/buyable", true) == 0)
  547.         {
  548.         if(IsPlayerAdmin(playerid))
  549.         {
  550.                         new carid;              GetPlayerName(playerid,PlayerName,30);
  551.                         tmp = strtok(cmdtext,idx);
  552.  
  553.                         if(!strlen(tmp))
  554.                         {
  555.                                 if(!(IsPlayerInAnyVehicle(playerid)))
  556.                                 {
  557.                                         SendClientMessage(playerid,red,"àðà äéëðñ àì äîëåðéú åäùúîù òí ô÷åãä æå");
  558.                                 }
  559.                                 else
  560.                                 {
  561.                                         new vehicleid = GetPlayerVehicleID(playerid);
  562.                                         VehicleInfo[vehicleid][Buyable] = 1;
  563.                                         format(string,sizeof(string),"Administrator %s has made the %s [ID: %d] buyable",PlayerName,VehicleInfo[vehicleid][CarName], vehicleid);
  564.                                         SendClientMessageToAll(blue, string);
  565.                                         PlayerPlaySound(playerid,1056,0.0, 0.0, 0.0);
  566.                                     return 1;
  567.                                 }
  568.                         }
  569.                         else
  570.                         {
  571.                         carid = strval(tmp);
  572.                         if(carid >= VCount) return SendClientMessage(playerid,red,"îëåðéú æå àéðä éëåìä ìäéôúç ì÷ðééä");
  573.                         tmp = strtok(cmdtext, idx);
  574.                        
  575.                         VehicleInfo[carid][Buyable] = 1;
  576.                         format(string,sizeof(string),"Administrator %s has made the %s [ID: %d] buyable",PlayerName,VehicleInfo[carid][CarName], carid);
  577.                         SendClientMessageToAll(blue, string);
  578.                         PlayerPlaySound(playerid,1056,0.0, 0.0, 0.0);
  579.                         }
  580.                 }
  581.                 else
  582.                 {
  583.                         SendClientMessage(playerid, red, "ô÷åãä æå ø÷ ìàãîéðéí");
  584.                 }
  585.                 return 1;
  586.         }
  587.  
  588. //==============================================================================
  589.         if(strcmp(cmd, "/unbuyable", true) == 0)
  590.         {
  591.         if(IsPlayerAdmin(playerid))
  592.         {
  593.                         new carid;              GetPlayerName(playerid,PlayerName,30);
  594.                         tmp = strtok(cmdtext,idx);
  595.  
  596.                         if(!strlen(tmp))
  597.                         {
  598.                                 if(!(IsPlayerInAnyVehicle(playerid)))
  599.                                 {
  600.                                         SendClientMessage(playerid,red,"àðà äëðñ ìøëá åäùúîù òí ô÷åãä æå");
  601.                                 }
  602.                                 else
  603.                                 {
  604.                                         new vehicleid = GetPlayerVehicleID(playerid);
  605.                                         VehicleInfo[vehicleid][Buyable] = 0;
  606.                                         format(string,sizeof(string),"Administrator %s has made the %s [ID: %d] unbuyable",PlayerName,VehicleInfo[vehicleid][CarName], vehicleid);
  607.                                         SendClientMessageToAll(blue, string);
  608.                                         PlayerPlaySound(playerid,1056,0.0, 0.0, 0.0);
  609.                                     return 1;
  610.                                 }
  611.                         }
  612.                         else
  613.                         {
  614.                         carid = strval(tmp);
  615.                         if(carid >= VCount) return SendClientMessage(playerid,red,"îëåðéú æàú àéðä éëåì ìäéôúç ì÷ðééä");
  616.                         tmp = strtok(cmdtext, idx);
  617.  
  618.                         VehicleInfo[carid][Buyable] = 0;
  619.                         format(string,sizeof(string),"Administrator %s has made the %s [ID: %d] unbuyable",PlayerName,VehicleInfo[carid][CarName], carid);
  620.                         SendClientMessageToAll(blue, string);
  621.                         PlayerPlaySound(playerid,1056,0.0, 0.0, 0.0);
  622.                         }
  623.                 }
  624.                 else
  625.                 {
  626.                         SendClientMessage(playerid, red, "ô÷åãä æå ø÷ ìàãîéðéí");
  627.                 }
  628.                 return 1;
  629.         }
  630.  
  631. //==============================================================================
  632.         if(strcmp(cmd, "/carinfo", true) == 0)
  633.         {
  634.                 new car;
  635.                 tmp = strtok(cmdtext,idx);
  636.                
  637.                 if(!strlen(tmp))
  638.                 {
  639.                     if(PlayerInfo[playerid][CarID] == 0) return SendClientMessage(playerid,red,"You dont own a car, type /carinfo [vehicleid] to see info about another vehicle");
  640.                     car = PlayerInfo[playerid][CarID];
  641.                         new modded[256];
  642.                         if(VehicleInfo[car][CarMod1] != 0 ) {
  643.                         modded = "Yes";         } else {        modded = "No"; }
  644.                         new locked[256];
  645.                         if(VehicleInfo[car][CarLocked] == 1 ) {
  646.                         locked = "Yes";         } else {        locked = "No"; }
  647.                         new parked[256];
  648.                         if(VehicleInfo[car][Parkedx] != 0 && VehicleInfo[car][Parkedy] != 0 ) {
  649.                         parked = "Yes";         } else {        parked = "No"; }
  650.                         SendClientMessage(playerid, white,"__________________________________________________________________");
  651.                         SendClientMessage(playerid, white,"                         îéãò òì äøëá:");
  652.                         format(string,sizeof(string)," CarID: %d  |  CarName: %s  |  CarModel: %d ",VehicleInfo[car][CarID] ,VehicleInfo[car][CarName] , VehicleInfo[car][CarModel]  );
  653.                         SendClientMessage(playerid, white,string);
  654.                         format(string,sizeof(string)," Locked: %s | Parked : %s | Modded: %s | Colour1: %d  |  Colour2: %d ",locked,parked,modded,VehicleInfo[car][Colour1], VehicleInfo[car][Colour2]  );
  655.                         SendClientMessage(playerid, white,string);
  656.                         format(string,sizeof(string)," Price: $%d | CarOwner %s ",VehicleInfo[car][Price], VehicleInfo[car][CarOwner] );
  657.                         SendClientMessage(playerid, white,string);
  658.                         SendClientMessage(playerid, white,"__________________________________________________________________");
  659.                         return 1;
  660.                 }
  661.                 else
  662.                 {
  663.                         car = strval(tmp);
  664.                         if(car >= VCount) return SendClientMessage(playerid,red,"àéï îéãò òì îëåðéú æå");
  665.                         tmp = strtok(cmdtext, idx);
  666.                        
  667.                         new modded[256];
  668.                         if(VehicleInfo[car][CarMod1] != 0 ) {
  669.                         modded = "Yes";         } else {        modded = "No"; }
  670.                         new locked[256];
  671.                         if(VehicleInfo[car][CarLocked] == 1 ) {
  672.                         locked = "Yes";         } else {        locked = "No"; }
  673.                         new parked[256];
  674.                         if(VehicleInfo[car][Parkedx] != 0 && VehicleInfo[car][Parkedy] != 0 ) {
  675.                         parked = "Yes";         } else {        parked = "No"; }
  676.                         SendClientMessage(playerid, white,"__________________________________________________________________");
  677.                         SendClientMessage(playerid, white,"                         îéãò òì äøëá");
  678.                         format(string,sizeof(string)," CarID: %d  |  CarName: %s  |  CarModel: %d ",VehicleInfo[car][CarID] ,VehicleInfo[car][CarName] , VehicleInfo[car][CarModel]  );
  679.                         SendClientMessage(playerid, white,string);
  680.                         format(string,sizeof(string)," Locked: %s | Parked : %s | Modded: %s | Colour1: %d  |  Colour2: %d ",locked,parked,modded,VehicleInfo[car][Colour1], VehicleInfo[car][Colour2]  );
  681.                         SendClientMessage(playerid, white,string);
  682.                         format(string,sizeof(string)," Price: $%d | CarOwner %s ",VehicleInfo[car][Price], VehicleInfo[car][CarOwner] );
  683.                         SendClientMessage(playerid, white,string);
  684.                         SendClientMessage(playerid, white,"__________________________________________________________________");
  685.                 }
  686.                 return 1;
  687.     }
  688. //==============================================================================
  689.         if(strcmp(cmd, "/buynitros", true) == 0)
  690.         {
  691.                 new vehicleid = GetPlayerVehicleID(playerid);
  692.                 GetPlayerName(playerid,PlayerName,30);
  693.         if(!(IsPlayerInAnyVehicle(playerid))) return SendClientMessage(playerid,red," àúä öøéê ìäéåú áúåê øëáê ëãé ìé÷ðåú ðéèøå!");
  694.         if(VehicleInfo[vehicleid][CarOwned] == 0 ) return SendClientMessage(playerid,red," øëá æä ìà ááòìåú àó àçã åìà éåëì ìäöèééã áðéèøå!");
  695.                 if(PlayerInfo[playerid][CarID] == 0) return SendClientMessage(playerid,red," àéï ìê øëá");
  696.                 VehicleInfo[vehicleid][Nitros] = 1;
  697.             SendClientMessage(playerid, 0xFFFF00AA, " ÷ðéú ðéèøå ìøëáê!");
  698.             PlayerPlaySound(playerid,1056,0.0,0.0,0.0);
  699.                 return 1;
  700.     }
  701. //==============================================================================
  702.         if(strcmp(cmd, "/lock", true) == 0)
  703.         {
  704.                 new vehicleid = GetPlayerVehicleID(playerid);
  705.                 GetPlayerName(playerid,PlayerName,30);
  706.  
  707.         if(!(IsPlayerInAnyVehicle(playerid))) return SendClientMessage(playerid,red,"You need to be in a vehicle to lock it");
  708.                 if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return
  709.         SendClientMessage(playerid,0xFFFF00AA,"You can only lock the doors as the driver.");
  710.                 if(GetPlayerVehicleID(playerid) >= VCount) return SendClientMessage(playerid,red,"This vehicle cannot be locked");
  711.                 if(strcmp(PlayerName,VehicleInfo[vehicleid][CarOwner],true) != 0)
  712.                 return SendClientMessage(playerid,red,"This isnt your car, so you cant lock it");
  713.         if(VehicleInfo[vehicleid][CarOwned] == 0 ) return SendClientMessage(playerid,red,"This car isnt owned therefore cannot be locked");
  714.                 if(PlayerInfo[playerid][CarID] == 0) return SendClientMessage(playerid,red,"You dont own a car");
  715.                
  716.             for (new i=0;i<MAX_PLAYERS;i++) if(i != playerid) SetVehicleParamsForPlayer(GetPlayerVehicleID(playerid),i, 0, 1);
  717.                 VehicleInfo[vehicleid][CarLocked] = 1;
  718.             SendClientMessage(playerid, 0xFFFF00AA, "Vehicle locked!");
  719.             PlayerPlaySound(playerid,1056,0.0,0.0,0.0);
  720.                 return 1;
  721.     }
  722. //==============================================================================
  723.         if(strcmp(cmd, "/unlock", true) == 0)
  724.         {
  725.                 new vehicleid = GetPlayerVehicleID(playerid);
  726.                 GetPlayerName(playerid,PlayerName,30);
  727.  
  728.         if(!(IsPlayerInAnyVehicle(playerid))) return SendClientMessage(playerid,red,"You need to be in a vehicle to unlock it");
  729.                 if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return
  730.         SendClientMessage(playerid,0xFFFF00AA,"You can only unlock the doors as the driver.");
  731.                 if(GetPlayerVehicleID(playerid) >= VCount) return SendClientMessage(playerid,red,"This vehicle cannot be unlocked");
  732.                 if(strcmp(PlayerName,VehicleInfo[vehicleid][CarOwner],true) != 0)
  733.                 return SendClientMessage(playerid,red,"This isnt your car, so you cant unlock it");
  734.         if(VehicleInfo[vehicleid][CarOwned] == 0 ) return SendClientMessage(playerid,red,"This car isnt owned therefore cannot be unlocked");
  735.                 if(PlayerInfo[playerid][CarID] == 0) return SendClientMessage(playerid,red,"You dont own a car");
  736.  
  737.             for (new i=0;i<MAX_PLAYERS;i++) if(i != playerid) SetVehicleParamsForPlayer(GetPlayerVehicleID(playerid),i, 0, 0);
  738.                 VehicleInfo[vehicleid][CarLocked] = 0;
  739.             SendClientMessage(playerid, 0xFFFF00AA, "Vehicle Unlocked!");
  740.             PlayerPlaySound(playerid,1056,0.0,0.0,0.0);
  741.                 return 1;
  742.     }
  743. //==============================================================================*/
  744.         if(strcmp(cmd, "/buycar", true) == 0)
  745.         {
  746.                 new vehicleid = GetPlayerVehicleID(playerid);
  747.  
  748.             if(GetPlayerMoney(playerid) < VehicleInfo[vehicleid][Price]) return SendClientMessage(playerid,red,"You don't have enough money to buy this car.");
  749.         if(!(IsPlayerInAnyVehicle(playerid))) return SendClientMessage(playerid,red,"You need to be in a vehicle to buy it");
  750.         if(GetPlayerVehicleID(playerid) >= VCount) return SendClientMessage(playerid,red,"This car is not for sell");
  751.         if(VehicleInfo[vehicleid][CarOwned] == 1 ) return SendClientMessage(playerid,red,"This car is already owned");
  752.                 if(PlayerInfo[playerid][CarID] != 0) return SendClientMessage(playerid,red,"You already own a car");
  753.                 if(VehicleInfo[vehicleid][Buyable] == 0) return SendClientMessage(playerid,red,"This car is not for sell");
  754.  
  755.                 format(file,sizeof(file),"CarSys/car%d.txt", GetPlayerVehicleID(playerid) );
  756.                 GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
  757.                
  758.                 if(!dini_Exists(file))
  759.                 {
  760.                         format(string,sizeof(string),"This car is not for sell.  Car id [ %d ]", vehicleid );
  761.                 SendClientMessage(playerid,red,string);
  762.                 }
  763.                 else
  764.                 {
  765.                         printf("[CAR]  [%s purchased a %s  ID %d]",PlayerName,VehicleInfo[vehicleid][CarName],VehicleInfo[vehicleid][CarID] );
  766.  
  767.                     dini_IntSet(file,"CarOwned",1);
  768.                     dini_Set(file,"CarOwner",PlayerName);
  769.                     dini_IntSet(file,"Buyable",0);
  770.                    
  771.                         VehicleInfo[vehicleid][CarOwned] = 1;
  772.                         strmid(VehicleInfo[vehicleid][CarOwner], PlayerName, 0, strlen(PlayerName), 255);
  773.                         VehicleInfo[vehicleid][Buyable] = 0;
  774.                         VehicleInfo[vehicleid][CarLocked] = 0;
  775.                         PlayerInfo[playerid][CarID] = GetPlayerVehicleID(playerid);
  776.                         PlayerInfo[playerid][OwnCar] = 1;
  777.  
  778.                         format(file,sizeof(file),"CarSys/Users/%s.txt",PlayerName);
  779.  
  780.                         dini_IntSet(file,"CarID",PlayerInfo[playerid][CarID] );
  781.                         dini_IntSet(file,"OwnCar",PlayerInfo[playerid][OwnCar] );
  782.                         printf("[CarID] %d <> [OwnCar] %d",PlayerInfo[playerid][CarID], PlayerInfo[playerid][OwnCar] );
  783.  
  784.                         format(string,sizeof(string),"You have purchased a new car.  Your Car is a %s [ ID %d ]",VehNames[GetVehicleModel(vehicleid)-400], vehicleid );
  785.                 SendClientMessage(playerid,green,string);
  786.             GivePlayerMoney(playerid,-VehicleInfo[vehicleid][Price]);
  787.                 }
  788.                 return 1;
  789.         }
  790. //==============================================================================
  791.         if(strcmp(cmd, "/sellcar", true) == 0)
  792.         {
  793.             new vehicleid = GetPlayerVehicleID(playerid);
  794.            
  795.                 format(file,sizeof(file),"CarSys/car%d.txt",GetPlayerVehicleID(playerid) );
  796.                 GetPlayerName(playerid,PlayerName,30);
  797.        
  798.                 if(strcmp(PlayerName,VehicleInfo[vehicleid][CarOwner],true) != 0)
  799.         return SendClientMessage(playerid,red,"æàú ìà äîëåðéú ùìê åàúä ìà éëåìä ìéîëåø àåúä");
  800.             if(!(IsPlayerInAnyVehicle(playerid))) return SendClientMessage(playerid,red,"àúä öøéê ìäéåú áúåê äîëåðéú ùìê ëãé ìéîëåø àåúä");
  801.             if(PlayerInfo[playerid][CarID] == 0) return SendClientMessage(playerid,red,"àéï ìê îëåðéú");
  802.                 if(VehicleInfo[vehicleid][CarOwned] != 1) return SendClientMessage(playerid,red,"äîëåðéú äæàú ìà ùééëú ìàó àçã åìà éëåìä ìäéîëø");
  803.  
  804.                 if(!dini_Exists(file))
  805.                 {
  806.                         format(string,sizeof(string),"This car cannot be sold.  Car id [ %d ]", vehicleid );
  807.                 SendClientMessage(playerid,red,string);
  808.                 }
  809.                 else
  810.                 {
  811.                         for     (new i=0;i<MAX_PLAYERS;i++) SetVehicleParamsForPlayer(vehicleid,i, 0, 0);
  812.  
  813.                     dini_IntSet(file,"CarOwned",0);
  814.                     dini_Set(file,"CarOwner","none");
  815.                     dini_IntSet(file,"CarLocked",0);
  816.                 dini_IntSet(file,"Buyable",1);
  817.                     dini_IntSet(file,"Parkedx",0);
  818.                     dini_IntSet(file,"Parkedy",0);
  819.                     dini_IntSet(file,"Parkedz",0);
  820.                     dini_IntSet(file,"Parkedangle",0);
  821.                     dini_IntSet(file,"CarMod1",0);
  822.                     dini_IntSet(file,"CarMod2",0);
  823.                     dini_IntSet(file,"CarMod3",0);
  824.                     dini_IntSet(file,"CarMod4",0);
  825.                     dini_IntSet(file,"CarMod5",0);
  826.                 dini_IntSet(file,"CarMod6",0);
  827.                     dini_IntSet(file,"CarMod7",0);
  828.                     dini_IntSet(file,"CarMod8",0);
  829.                     dini_IntSet(file,"CarMod9",0);
  830.                     dini_IntSet(file,"CarMod10",0);
  831.                     dini_IntSet(file,"Nitros",0);
  832.                     dini_IntSet(file,"PaintJob",-1);
  833.                     dini_IntSet(file,"Colour1",-1);
  834.                 dini_IntSet(file,"Colour2",-1);
  835.    
  836.                         VehicleInfo[vehicleid][CarOwned] = 0;
  837.                         strmid(VehicleInfo[vehicleid][CarOwner], dini_Get(file,"CarOwner"), 0, strlen(dini_Get(file,"CarOwner")), 255);
  838.                         VehicleInfo[vehicleid][Buyable] = 1;
  839.                         VehicleInfo[vehicleid][CarLocked] = 0;
  840.                         VehicleInfo[vehicleid][Parkedx] = 0;
  841.                         VehicleInfo[vehicleid][Parkedy] = 0;
  842.                         VehicleInfo[vehicleid][CarMod1] = 0;
  843.                         VehicleInfo[vehicleid][Nitros] = 0;
  844.                         VehicleInfo[vehicleid][PaintJob] = 0;
  845.                         VehicleInfo[vehicleid][Colour1] = -1;
  846.                         VehicleInfo[vehicleid][Colour2] = -1;
  847.                         PlayerInfo[playerid][CarID] = 0;
  848.                         PlayerInfo[playerid][OwnCar] = 0;
  849.  
  850.                         format(file,sizeof(file),"CarSys/Users/%s.txt",PlayerName);
  851.                         dini_IntSet(file,"CarID",0);
  852.                         dini_IntSet(file,"OwnCar",0);
  853.                         printf("[CarID] %d <> [OwnCar] %d",PlayerInfo[playerid][CarID], PlayerInfo[playerid][OwnCar] );
  854.  
  855.                     printf("[CAR]  %s Sold His Car, A %s ID %d",PlayerName, VehicleInfo[vehicleid][CarName], VehicleInfo[vehicleid][CarID]);
  856.                     SendClientMessage(playerid,green,"îëøúä àú äîëåðéú ùìê å÷éáìúä çöé îäëñó");
  857.                     GivePlayerMoney(playerid,VehicleInfo[vehicleid][Price]/2);
  858.             }
  859.             return 1;
  860.     }
  861. //==============================================================================
  862. //   if(strcmp(cmd, "/callcar", true) == 0)
  863.  //   {
  864.   //      GetPlayerName(playerid,PlayerName,30);
  865.    //     new car = PlayerInfo[playerid][CarID];
  866.     //    if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,red,".àúä áúåê øëá, ëãé ìùâø àú äøëá ùìê àúä çééá ìöàú");
  867.      //   if(PlayerInfo[playerid][OwnCar] == 0 && VehicleInfo[car][CarOwned] == 0) return SendClientMessage(playerid,white,".! àéï ááòìåúê øëá");
  868.       //  if(GetPlayerMoney(playerid) < 100) return SendClientMessage(playerid,red, ".$òì îðú ìùâø àú øëáê àúä öøéê 100");
  869.        // for(new i=0;i<MAX_PLAYERS;i++) if(IsPlayerInVehicle(i,car))
  870. //        {
  871.  //           format(string,sizeof(string),"[: æéîï àú äøëá ùìå, äìéëä ðòéîä [%s]",PlayerName);
  872.   //           SendClientMessage(i,0xFF9900AA,string);
  873.    //         RemovePlayerFromVehicle(i);
  874.     //    }
  875.      //   GetPlayerPos(playerid,Pos[playerid][0],Pos[playerid][1],Pos[playerid][2]);
  876.       //  SetPlayerCameraPos(playerid, Pos[playerid][0],Pos[playerid][1],Pos[playerid][2]);
  877. //        SetPlayerCameraLookAt(playerid, Pos[playerid][0],Pos[playerid][1],Pos[playerid][2]);
  878. //        PutPlayerInVehicle(playerid, car, 0);
  879.  //       GetVehicleZAngle(GetPlayerVehicleID(playerid), Angle[playerid]);
  880.   ///      SetTimerEx("TeleCar",1000,0,"i",playerid);
  881.     ///    SendClientMessage(playerid,green,".! æéîðú àú äøëá ùìê");
  882.       ///  GivePlayerMoney(playerid,-1000);
  883.         //return 1;
  884.    // }
  885. //==============================================================================
  886.         if(strcmp(cmd, "/cctv", true) == 0)
  887.         {
  888.             new car = PlayerInfo[playerid][CarID];
  889.         GetPlayerName(playerid,PlayerName,30);
  890.  
  891.             if(VehicleInfo[car][CarOwned] == 1 && strcmp(PlayerName,VehicleInfo[car][CarOwner],true) == 0)
  892.                 {
  893.                         TogglePlayerSpectating(playerid, 1);
  894.                         PlayerSpectateVehicle(playerid, car );
  895.                         SendClientMessage(playerid,green,"/cctvoff òëùéå àúä òå÷á àçøé äîëåðéú ùìê ëãé ìäôñé÷ øùåí");
  896.                         GetPlayerPos(playerid,Pos[playerid][0],Pos[playerid][1],Pos[playerid][2]);
  897.                         GetPlayerFacingAngle(playerid,Pos[playerid][3]);
  898.                 }
  899.                 else
  900.                 {
  901.                         SendClientMessage(playerid,red,"àéï ìê îëåðéú");
  902.                 }
  903.                 return 1;
  904.         }
  905. //==============================================================================
  906.         if(strcmp(cmd, "/cctvoff", true) == 0)
  907.         {
  908.             TogglePlayerSpectating(playerid, 0);
  909.                 SendClientMessage(playerid,green,"äôñ÷úä ìò÷åá àçø ëìé äøëá ùìê");
  910.                 SetTimerEx("PosAfterSpec",1700,0,"d",playerid);
  911.                 return 1;
  912.         }
  913. //==============================================================================
  914.         if(strcmp(cmd,"/remove", true)==0)
  915.         {
  916.                 new pid;
  917.                 GetPlayerName(playerid,PlayerName,30);
  918.                 new vehicleid = GetPlayerVehicleID(playerid);
  919.                 tmp = strtok(cmdtext,idx);
  920.                
  921.                 if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,red,"àúä ìà áëìé øëá");
  922.                 if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SendClientMessage(playerid,red,"ðåñòéí ìà éëåìéí ìäùúîù áôô÷åãä æå");
  923.  
  924.                 if(strcmp(PlayerName,VehicleInfo[vehicleid][CarOwner],true) != 0)
  925.                 return SendClientMessage(playerid,red,"æåäé ìà äîëåðéú ùìê åàúä ìà éëåì ìäåöéà îéîðä àðùéí");
  926.                
  927.                 if(!strlen(tmp)) return SendClientMessage(playerid,red,"USAGE: /remove [playerid]");
  928.                        
  929.                 pid = strval(tmp);
  930.                 if(!IsPlayerConnected(pid)) return SendClientMessage(playerid,red,"äùç÷ï ìà îçåáø");
  931.                 if(!IsPlayerInVehicle(pid,GetPlayerVehicleID(playerid)) ) return
  932.                         SendClientMessage(playerid,red,"äçù÷ï äæä ìà áëìé äøëá ùìê");
  933.  
  934.                 RemovePlayerFromVehicle(pid);
  935.                 GameTextForPlayer(pid,"~r~YOU'VE BEEN EJECTED!",3000,5);
  936.                 SendClientMessage(playerid,blue,"äòôúä àåúå");
  937.                 return 1;
  938.         }
  939. //==============================================================================
  940.     if(strcmp(cmd,"/removeall", true)==0)
  941.         {
  942.                 GetPlayerName(playerid,PlayerName,30);
  943.                 new vehicleid = GetPlayerVehicleID(playerid);
  944.                 new rcount = 0;
  945.                 tmp = strtok(cmdtext,idx);
  946.  
  947.                 if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,red,"àúä ìà áëìé øëá");
  948.                 if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SendClientMessage(playerid,red,"ðåñòéí ìà éëåìéí ìäùúîù áô÷åãä æå");
  949.  
  950.                 if(strcmp(PlayerName,VehicleInfo[vehicleid][CarOwner],true) != 0)
  951.                 return SendClientMessage(playerid,red,"æä ìà äîëåðéú ùìê åàúä ìà éëåì ìäåöéà îéîðä àéù");
  952.  
  953.                 for(new i=0;i<MAX_PLAYERS;i++) if( IsPlayerConnected(i) && IsPlayerInVehicle(i,vehicleid) && i != playerid )
  954.                 {
  955.                         GameTextForPlayer(i,"~r~YOU'VE BEEN EJECTED!",3000,5);
  956.                         RemovePlayerFromVehicle(i);
  957.                         rcount++;
  958.                 }
  959.                 format(string,sizeof(string),"%d Players Ejected",rcount);
  960.                 SendClientMessage(playerid,blue,string);
  961.                 return 1;
  962.         }
  963.  
  964. //-----------
  965.     return 0;
  966.     }
  967. //==============================================================================
  968. public OnPlayerStateChange(playerid, newstate, oldstate)
  969. {
  970.  if(GetPlayerVehicleID(playerid) >= VCount) return 1;
  971.  new car = GetPlayerVehicleID(playerid);     new msg[256];
  972.  if(newstate==PLAYER_STATE_DRIVER)
  973.  {
  974.   new PlayerName[100]; GetPlayerName(playerid,PlayerName,30);
  975.   if(VehicleInfo[car][CarOwned] == 1)
  976.   {
  977.             if(strcmp(PlayerName,VehicleInfo[car][CarOwner],true) == 0) {
  978.                         format(msg,sizeof(msg),".%s áøåê äáà ìøëá ùìê",VehicleInfo[car][CarOwner]);
  979.                         SendClientMessage(playerid,green,msg);
  980.             } else {
  981.    format(msg,sizeof(msg)," %s :øëá æä ùééê ì", VehicleInfo[car][CarOwner] );
  982.    SendClientMessage(playerid,green,msg); }
  983.    }
  984.  if(newstate==PLAYER_STATE_PASSENGER)
  985.  {
  986.   if(VehicleInfo[car][CarOwned] == 1)
  987.   {
  988.  
  989.   format(msg,sizeof(msg)," %s :øëá æä ùééê ì", VehicleInfo[car][CarOwner] );
  990.   //SendClientMessage(playerid,green,msg);
  991.   }
  992.  }
  993.  }
  994.  return 1;
  995. }
  996. //==============================================================================
  997. forward PosAfterSpec(playerid);
  998. public PosAfterSpec(playerid) {
  999.         SetPlayerPos(playerid,Pos[playerid][0],Pos[playerid][1],Pos[playerid][2]);
  1000.         SetPlayerFacingAngle(playerid,Pos[playerid][3]);
  1001. }
  1002. //==============================================================================
  1003. forward TeleCar(playerid);
  1004. public TeleCar(playerid) {
  1005. if(IsPlayerInAnyVehicle(playerid)) SetVehiclePos(GetPlayerVehicleID(playerid), Pos[playerid][0], Pos[playerid][1], Pos[playerid][2]+0.5);
  1006. SetVehicleZAngle(GetPlayerVehicleID(playerid), Angle[playerid]);
  1007. SetCameraBehindPlayer(playerid);
  1008. }
  1009. //==============================================================================
  1010. forward RepairCar(playerid);
  1011. public RepairCar(playerid) {
  1012. if(IsPlayerInAnyVehicle(playerid)) SetVehiclePos(GetPlayerVehicleID(playerid), Pos[playerid][0], Pos[playerid][1], Pos[playerid][2]+0.5);
  1013. SetVehicleZAngle(GetPlayerVehicleID(playerid), Angle[playerid]);
  1014. SetCameraBehindPlayer(playerid);
  1015. }
  1016. //==============================================================================
  1017.  
  1018.  
  1019. /*[[[[[[[[[[[[[[[[[[[[[[[[  =[ End OF File ]= ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]*/