Advertisement
RedWingz

VehicleSpawner.pwn ~ RedWingz

May 28th, 2012
1,077
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 13.97 KB | None | 0 0
  1. ////////////////////////////////////////////////////////////////////////////////
  2. /////////////////////////////~ Vehicle Spawner ~////////////////////////////////
  3. ///////////////////////////~ Scripted by RedWingz ~/////////////////////////////
  4. ////////////////////////////////~ 28/05/12 ~////////////////////////////////////
  5. ////////////////////////////////////////////////////////////////////////////////
  6.  
  7. //============================================================================//
  8. //                                 Includes                                   //
  9. //============================================================================//
  10.  
  11. #include <a_samp>
  12. #define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
  13.  
  14. //============================================================================//
  15. //                                 Defines                                    //
  16. //============================================================================//
  17.  
  18. #define COLOR_LIMEGREEN 0x32CD32AA
  19. #define COLOR_RED 0xFF0000A7
  20.  
  21. //============================================================================//
  22. //                               RC Vehicles                                  //
  23. //============================================================================//
  24.  
  25. #define RC_BANDIT   441
  26. #define D_TRAM      449
  27. #define RC_BARON    464
  28. #define RC_RAIDER   465
  29. #define RC_GOBLIN   501
  30. #define RC_TIGER    564
  31. #define RC_CAM      594
  32.  
  33. //============================================================================//
  34. //                                 Dialogs                                    //
  35. //============================================================================//
  36.  
  37. #define Dialog_Unique_Vehicle 10000
  38. #define Dialog_Trailers_Vehicle 10001
  39. #define Dialog_Boats_Vehicle 10002
  40. #define Dialog_Station_Vehicle 10003
  41. #define Dialog_Sport_Vehicle 10004
  42. #define Dialog_Saloon_Vehicle 10005
  43. #define Dialog_Public_Service_Vehicle 10006
  44. #define Dialog_Off-Road_Vehicle 10007
  45. #define Dialog_LowRyder_Vehicle 10008
  46. #define Dialog_Industry_Vehicle 10009
  47. #define Dialog_Convertable_Vehicle 10010
  48. #define Dialog_Bike_Vehicle 10011
  49. #define Dialog_Helicopters 10012
  50. #define Dialog_Airplanes 10013
  51. #define Dialog_Rc_Vehicle 10014
  52. #define Dialog_Vehicle 10015
  53.  
  54. //============================================================================//
  55. //                               Forward(s)                                   //
  56. //============================================================================//
  57.  
  58. forward VehicleSpawner(playerid,model);
  59.  
  60. //============================================================================//
  61. //                                  New                                       //
  62. //============================================================================//
  63.  
  64. new VehicleSpawn[MAX_PLAYERS];
  65.  
  66. //============================================================================//
  67. //                               Vehicles                                     //
  68. //============================================================================//
  69.  
  70. new Airplanes[] = { 592, 577, 511, 512, 593, 520, 553, 476, 519, 460, 513 };
  71. new Helicopters[] = { 548, 425, 417, 487, 488, 497, 563, 447, 469 };
  72. new Bikes[] = { 581, 509, 481, 462, 521, 463, 510, 522, 461, 448, 471, 468, 586 };
  73. new Industrials[] = { 499, 422, 482, 498, 609, 524, 578, 455, 403, 414, 582, 443, 514, 413, 515, 440, 543, 605, 459, 531, 408, 552, 478, 456, 554 };
  74. new Lowriders[] = { 536, 575, 534, 567, 535, 566, 576, 412 };
  75. new Offroad[] = { 568, 424, 573, 579, 400, 500, 444, 556, 557, 470, 489, 505, 495 };
  76. new Pulic_Services[] = { 416, 433, 431, 438, 437, 523, 427, 490, 528, 407, 544, 596, 598, 597, 599, 432, 601, 420 };
  77. new Saloons[] = { 445, 504, 401, 518, 527, 542, 507, 562, 585, 419, 526, 604, 466, 492, 474, 546, 517, 410, 551, 516, 467, 600, 426, 436, 547, 405, 580, 560, 550, 549, 540, 491, 529, 421 };
  78. new Sport[] = { 602, 429, 496, 402, 541, 415, 589, 587, 565, 494, 502, 503, 411, 559, 603, 475, 506, 451, 558, 477 };
  79. new Station[] = { 418, 404, 479, 458, 561 };
  80. new Boats[] = { 472, 473, 493, 595, 484, 430, 453, 452, 446, 454 };
  81. new Trailers[] = { 435, 450, 591, 606, 607, 610, 569, 590, 584, 570, 608, 611 };
  82. new Unique[] = { 485, 537, 457, 483, 508, 532, 486, 406, 530, 538, 434, 545, 588, 571, 572, 423, 442, 428, 409, 574, 449, 525, 583, 539 };
  83. new RC_Vehicles[] = { 441, 464, 465, 501, 564, 594 };
  84.  
  85. public OnFilterScriptInit()
  86. {
  87.     print("\n--------------------------------------");
  88.     print(" ~ Vehicle Spawner Loaded! ~");
  89.     print(" ~ Scripted by RedWingz ~");
  90.     print("--------------------------------------\n");
  91.     SetTimer("VehicleSpawnLimiter", 1000, true);
  92.     return 1;
  93. }
  94.  
  95. public OnFilterScriptExit()
  96. {   print("\n--------------------------------------");
  97.     print(" ~ Vehicle Spawner Unloaded! ~");
  98.     print(" ~ Scripted by RedWingz! ~");
  99.     print("--------------------------------------\n");
  100.     return 1;
  101. }
  102. public OnPlayerSpawn(playerid)
  103. {
  104.   SendClientMessage(playerid, COLOR_LIMEGREEN, "You can spawn a Vehicle by using the command /v !");
  105. }
  106. public OnPlayerCommandText(playerid, cmdtext[])
  107. {
  108. dcmd(v, 1,cmdtext);
  109. return 0;
  110. }
  111. dcmd_v(playerid, params[])
  112. {
  113. #pragma unused params
  114. ShowVehicleDialog(playerid);
  115. return 1;
  116. }
  117.  
  118. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  119. {
  120.  
  121.     if(newkeys == KEY_SECONDARY_ATTACK ){
  122.         if(!IsPlayerInAnyVehicle(playerid)){
  123.             new Float:x, Float:y, Float:z, vehicle;
  124.             GetPlayerPos(playerid, x, y, z );
  125.             GetVehicleWithinDistance(playerid, x, y, z, 20.0, vehicle);
  126.  
  127.             if(IsVehicleRc(vehicle)){
  128.               PutPlayerInVehicle(playerid, vehicle, 0);
  129.             }
  130.         }
  131.  
  132.         else {
  133.             new vehicleID = GetPlayerVehicleID(playerid);
  134.             if(IsVehicleRc(vehicleID) || GetVehicleModel(vehicleID) == RC_CAM){
  135.               if(GetVehicleModel(vehicleID) != D_TRAM){
  136.                 new Float:x, Float:y, Float:z;
  137.                 GetPlayerPos(playerid, x, y, z);
  138.                 SetPlayerPos(playerid, x+0.5, y, z+1.0);
  139.                 }
  140.             }
  141.         }
  142.     }
  143. }
  144. GetVehicleWithinDistance( playerid, Float:x1, Float:y1, Float:z1, Float:dist, &veh){
  145.     for(new i = 1; i < MAX_VEHICLES; i++){
  146.         if(GetVehicleModel(i) > 0){
  147.             if(GetPlayerVehicleID(playerid) != i ){
  148.             new Float:x, Float:y, Float:z;
  149.             new Float:x2, Float:y2, Float:z2;
  150.             GetVehiclePos(i, x, y, z);
  151.             x2 = x1 - x; y2 = y1 - y; z2 = z1 - z;
  152.             new Float:vDist = (x2*x2+y2*y2+z2*z2);
  153.             if( vDist < dist){
  154.             veh = i;
  155.             dist = vDist;
  156.                 }
  157.             }
  158.         }
  159.     }
  160. }
  161. IsVehicleRc( vehicleid ){
  162.   new model = GetVehicleModel(vehicleid);
  163.   switch(model){
  164.   case RC_GOBLIN, RC_BARON, RC_BANDIT, RC_RAIDER, RC_TIGER: return 1;
  165.   default: return 0;
  166.     }
  167.  
  168.   return 0;
  169. }
  170.  
  171. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  172. {
  173. if(dialogid== Dialog_Vehicle)
  174. {
  175. if ( response==1 )
  176. {
  177. if(listitem==0)ShowPlayerDialog( playerid, Dialog_Airplanes, 2, "{ffffff}Airplanes:", "Andromada\nAT-400\nBeagle\nCropduster\nDodo\nHydra\nNevada\nRustler\nShamal\nSkimmer\nStuntplane", "Select", "Back" );
  178. if(listitem==1)ShowPlayerDialog( playerid, Dialog_Helicopters, 2, "{ffffff}Helicopters:", "Cargobob\nHunter\nLeviathan\nMaverick\nNews Maverick\nPolice Maverick\nRaindance\nSeasparrow\nSparrow", "Select", "Back" );
  179. if(listitem==2)ShowPlayerDialog( playerid, Dialog_Bike_Vehicle, 2, "{ffffff}Bikes:", "BF-400\nBike\nBMX\nFaggio\nFCR-900\nFreeway\nMountain Bike\nNRG-500\nPCJ-600\nPizzaboy\nQuad\nSanchez\nWayfarer", "Select", "Back" );
  180. if(listitem==3)ShowPlayerDialog( playerid, Dialog_Convertable_Vehicle, 2, "{ffffff}Convertibles:", "Comet\nFeltzer\nStallion\nWindsor", "Select", "Back" );
  181. if(listitem==4)ShowPlayerDialog( playerid, Dialog_Industry_Vehicle, 2, "{ffffff}Industrial:", "Benson\nBobcat\nBurrito\nBoxville\nBoxburg\nCement Truck\nDFT-30\nFlatbed\nLinerunner\nMule\nNewsvan\nPacker\nPetrol Tanker\nPony\nRoadtrain\nRumpo\nSadler\nSadler Shit\nTopfun\nTractor\nTrashmaster\nUtility Van\nWalton\nYankee\nYosemite", "Select", "Back" );
  182. if(listitem==5)ShowPlayerDialog( playerid, Dialog_LowRyder_Vehicle, 2, "{ffffff}Lowriders:", "Blade\nBroadway\nRemington\nSavanna\nSlamvan\nTahoma\nTornado\nVoodoo", "Select", "Back" );
  183. if(listitem==6)ShowPlayerDialog( playerid, Dialog_Off-Road_Vehicle, 2, "{ffffff}Off Road:", "Bandito\nBF Injection\nDune\nHuntley\nLandstalker\nMesa\nMonster\nMonster A\nMonster B\nPatriot\nRancher A\nRancher B\nSandking", "Select", "Back" );
  184. if(listitem==7)ShowPlayerDialog( playerid, Dialog_Public_Service_Vehicle, 2, "{ffffff}Public Service Vehicles:", "Ambulance\nBarracks\nBus\nCabbie\nCoach\nCop Bike (HPV-1000)\nEnforcer\nFBI Rancher\nFBI Truck\nFiretruck\nFiretruck LA\nPolice Car (LSPD)\nPolice Car (LVPD)\nPolice Car (SFPD)\nRanger\nRhino\nS.W.A.T\nTaxi", "Select", "Back" );
  185. if(listitem==8)ShowPlayerDialog( playerid, Dialog_Saloon_Vehicle, 2, "{ffffff}Saloons:", "Admiral\nBlooDialog_Weapon_Riflesng Banger\nBravura\nBuccaneer\nCadrona\nClover\nElegant\nElegy\nEmperor\nEsperanto\nFortune\nGlendale Shit\nGlendale\nGreenwood\nHermes\nIntruder\nMajestic\nManana\nMerit\nNebula\nOceanic\nPicador\nPremier\nPrevion\nPrimo\nSentinel\nStafford\nSultan\nSunrise\nTampa\nVincent\nVirgo\nWillard\nWashington", "Select", "Back" );
  186. if(listitem==9)ShowPlayerDialog( playerid, Dialog_Sport_Vehicle, 2, "{ffffff}Sport Vehicles:", "Alpha\nBanshee\nBlista Compact\nBuffalo\nBullet\nCheetah\nClub\nEuros\nFlash\nHotring Racer\nHotring Racer A\nHotring Racer B\nInfernus\nJester\nPhoenix\nSabre\nSuper GT\nTurismo\nUranus\nZR-350", "Select", "Back" );
  187. if(listitem==10)ShowPlayerDialog( playerid, Dialog_Station_Vehicle, 2, "{ffffff}Station Wagons:", "Moonbeam\nPerenniel\nRegina\nSolair\nStratum", "Select", "Back" );
  188. if(listitem==11)ShowPlayerDialog( playerid, Dialog_Boats_Vehicle, 2, "{ffffff}Boats:", "Coastguard\nDinghy\nJetmax\nLaunch\nMarquis\nPredator\nReefer\nSpeeder\nSquallo\nTropic", "Select", "Back" );
  189. if(listitem==12)ShowPlayerDialog( playerid, Dialog_Trailers_Vehicle, 2, "{ffffff}Trailers:", "Article Trailer\nArticle Trailer 2\nArticle Trailer 3\nBaggage Trailer A\nBaggage Trailer B\nFarm Trailer\nFreight Flat Trailer (Train)\nFreight Box Trailer (Train)\nPetrol Trailer\nStreak Trailer (Train)\nStairs Trailer\nUtility Trailer", "Select", "Back" );
  190. if(listitem==13)ShowPlayerDialog( playerid, Dialog_Unique_Vehicle, 2, "{ffffff}Unique Vehicles:", "Baggage\nBrownstreak (Train)\nCaddy\nCamper\nCamper A\nCombine Harvester\nDozer\nDumper\nForklift\nFreight (Train)\nHotknife\nHustler\nHotdog\nKart\nMower\nMr Whoopee\nRomero\nSecuricar\nStretch\nSweeper\nTram\nTowtruck\nTug\nVortex", "Select", "Back" );
  191. if(listitem==14)ShowPlayerDialog( playerid, Dialog_Rc_Vehicle, 2, "{ffffff}RC Vehicles:", "RC Bandit\nRC Baron\nRC Raider\nRC Goblin\nRC Tiger\nRC Cam", "Select", "Back" );
  192. }
  193. }
  194. if(dialogid== Dialog_Airplanes){if ( response ){
  195. VehicleSpawner(playerid,Airplanes[ listitem ]);}}
  196. if(dialogid== Dialog_Helicopters){
  197. if ( response ){
  198. VehicleSpawner(playerid,Helicopters[ listitem ]);
  199. }else ShowVehicleDialog(playerid);
  200. }
  201. if(dialogid== Dialog_Bike_Vehicle){
  202. if ( response ){
  203. VehicleSpawner(playerid,Bikes[ listitem ]);
  204. }else ShowVehicleDialog(playerid);
  205. }
  206. if(dialogid== Dialog_Convertable_Vehicle){
  207. if ( response ){
  208. new Convertibles[] = { 480, 533, 439, 555 };
  209. VehicleSpawner(playerid,Convertibles[ listitem ]);
  210. }else ShowVehicleDialog(playerid);
  211. }
  212. if(dialogid== Dialog_Industry_Vehicle){
  213. if ( response ){
  214. VehicleSpawner(playerid,Industrials[ listitem ]);
  215. }else ShowVehicleDialog(playerid);
  216. }
  217. if(dialogid== Dialog_LowRyder_Vehicle){
  218. if ( response ){
  219. VehicleSpawner(playerid,Lowriders[ listitem ]);
  220. }else ShowVehicleDialog(playerid);
  221. }
  222. if(dialogid== Dialog_Off-Road_Vehicle){
  223. if ( response ){
  224. VehicleSpawner(playerid,Offroad[ listitem ]);
  225. }else ShowVehicleDialog(playerid);
  226. }
  227. if(dialogid== Dialog_Public_Service_Vehicle){
  228. if ( response ){
  229. VehicleSpawner(playerid,Pulic_Services[ listitem ]);
  230. }else ShowVehicleDialog(playerid);
  231. }
  232. if(dialogid== Dialog_Saloon_Vehicle){
  233. if ( response ){
  234. VehicleSpawner(playerid,Saloons[ listitem ]);
  235. }else ShowVehicleDialog(playerid);
  236. }
  237. if(dialogid== Dialog_Sport_Vehicle){
  238. if ( response ){
  239. VehicleSpawner(playerid,Sport[ listitem ]);
  240. }else ShowVehicleDialog(playerid);
  241. }
  242. if(dialogid== Dialog_Station_Vehicle){
  243. if ( response ){
  244. VehicleSpawner(playerid,Station[ listitem ]);
  245. }else ShowVehicleDialog(playerid);
  246. }
  247. if(dialogid== Dialog_Boats_Vehicle){
  248. if ( response ){
  249. VehicleSpawner(playerid,Boats[ listitem ]);
  250. }else ShowVehicleDialog(playerid);
  251. }
  252. if(dialogid== Dialog_Trailers_Vehicle){
  253. if ( response ){
  254. VehicleSpawner(playerid,Trailers[ listitem ]);
  255. }else ShowVehicleDialog(playerid);
  256. }
  257. if(dialogid== Dialog_Unique_Vehicle){
  258. if ( response ){
  259. VehicleSpawner(playerid,Unique[ listitem ]);
  260. }else ShowVehicleDialog(playerid);
  261. }
  262. if(dialogid== Dialog_Rc_Vehicle){
  263. if ( response ){
  264. VehicleSpawner(playerid,RC_Vehicles[ listitem ]);
  265. }else ShowVehicleDialog(playerid);
  266. }
  267. return 1;
  268. }
  269.  
  270. stock ShowVehicleDialog(playerid)
  271. {
  272. ShowPlayerDialog(playerid, Dialog_Vehicle, 2, "{ffffff}Categories:", "Airplanes\nHelicopters\nBikes\nConvertibles\nIndustrial\nLowriders\nOff Road\nPublic Service Vehicles\nSaloons\nSport Vehicles\nStation Wagons\nBoats\nTrailers\nUnique Vehicles\nRC Vehicles", "Select", "Back" );
  273. }
  274.  
  275. public VehicleSpawner(playerid,model){
  276.     if(IsPlayerInAnyVehicle(playerid)){
  277.         SendClientMessage(playerid, COLOR_RED, "Error: You're already in a vehicle!");
  278.     }
  279.     else{
  280.     if(VehicleSpawn[playerid]==0){
  281.     new Float:x,Float:y,Float:z,Float:a, vehicleid;
  282.     GetPlayerPos(playerid,x,y,z);
  283.     GetPlayerFacingAngle(playerid,a);
  284.     vehicleid = CreateVehicle(model,x+1,y+1,z,a,-1,-1,-1);
  285.     PutPlayerInVehicle(playerid, vehicleid, 0);
  286.     SetVehicleHealth(vehicleid,  1000.0);
  287.     LinkVehicleToInterior(vehicleid, GetPlayerInterior(playerid));
  288.     }
  289.   }
  290. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement