Guest User

Vehicle Menu

a guest
Jul 17th, 2012
297
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 15.22 KB | None | 0 0
  1. /*
  2. .:[Vehicle Spawner V. 1.1]:. by x96664
  3. Please don't remove my credits!
  4. Use /v to open vehicle dialog.
  5. */
  6. #include <a_samp>
  7. #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
  8. //Colors
  9. #define COLOR_WHITE 0xFFFFFFAA
  10. #define COLOR_RED 0xff0000a7
  11. //RC vehicles
  12. #define RC_BANDIT 441
  13. #define RC_BARON 464
  14. #define RC_GOBLIN 501
  15. #define RC_RAIDER 465
  16. #define D_TRAM 449
  17. #define RC_TIGER 564
  18. #define RC_CAM 594
  19. //Dialogs I'm using bigger dialog ids to don't make conflict with your server dialogs.
  20. #define Dialog_Unique_Vehicle 10000
  21. #define Dialog_Trailers_Vehicle 10001
  22. #define Dialog_Boats_Vehicle 10002
  23. #define Dialog_Station_Vehicle 10003
  24. #define Dialog_Sport_Vehicle 10004
  25. #define Dialog_Saloon_Vehicle 10005
  26. #define Dialog_Public_Service_Vehicle 10006
  27. #define Dialog_Off-Road_Vehicle 10007
  28. #define Dialog_LowRyder_Vehicle 10008
  29. #define Dialog_Industry_Vehicle 10009
  30. #define Dialog_Convertable_Vehicle 10010
  31. #define Dialog_Bike_Vehicle 10011
  32. #define Dialog_Helicopters 10012
  33. #define Dialog_Airplanes 10013
  34. #define Dialog_Rc_Vehicle 10014
  35. #define Dialog_Vehicle 10015
  36. //Defines
  37. #define MAX_PLAYERVEHICLES 1
  38. #define VehicleSpawnerLimit 1
  39. //Forward
  40. forward VehicleSpawner(playerid,model);
  41. forward VehicleDeleter(vehicleid);
  42. forward VehicleSpawnerLimiter(playerid);
  43. //new
  44. new VehicleSpawn[MAX_PLAYERS];
  45. new PlayerVehicle[MAX_PLAYERS][MAX_PLAYERVEHICLES];
  46. new Turn[MAX_PLAYERS];
  47. //vehicles
  48. new Airplanes[] = { 592, 577, 511, 512, 593, 520, 553, 476, 519, 460, 513 };
  49. new Helicopters[] = { 548, 425, 417, 487, 488, 497, 563, 447, 469 };
  50. new Bikes[] = { 581, 509, 481, 462, 521, 463, 510, 522, 461, 448, 471, 468, 586 };
  51. new Convertibles[] = { 480, 533, 439, 555 };
  52. 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 };
  53. new Lowriders[] = { 536, 575, 534, 567, 535, 566, 576, 412 };
  54. new Offroad[] = { 568, 424, 573, 579, 400, 500, 444, 556, 557, 470, 489, 505, 495 };
  55. new Pulic_Services[] = { 416, 433, 431, 438, 437, 523, 427, 490, 528, 407, 544, 596, 598, 597, 599, 432, 601, 420 };
  56. 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 };
  57. new Sport[] = { 602, 429, 496, 402, 541, 415, 589, 587, 565, 494, 502, 503, 411, 559, 603, 475, 506, 451, 558, 477 };
  58. new Station[] = { 418, 404, 479, 458, 561 };
  59. new Boats[] = { 472, 473, 493, 595, 484, 430, 453, 452, 446, 454 };
  60. new Trailers[] = { 435, 450, 591, 606, 607, 610, 569, 590, 584, 570, 608, 611 };
  61. 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 };
  62. new RC_Vehicles[] = { 441, 464, 465, 501, 564, 594 };
  63. public OnFilterScriptInit()
  64. {
  65. print("\n--------------------------------------");
  66. print("|Vehicle spawner by x96664 loaded! |");
  67. print("--------------------------------------\n");
  68. SetTimer("VehicleSpawnerLimiter", 1000, true);
  69. return 1;
  70. }
  71. public OnFilterScriptExit()
  72. { print("\n--------------------------------------");
  73. print("|Vehicle spawner by x96664 unloaded! |");
  74. print("--------------------------------------\n");
  75. return 1;
  76. }
  77. public OnPlayerCommandText(playerid, cmdtext[])
  78. {
  79. dcmd(v, 1,cmdtext);
  80. return 0;
  81. }
  82.  
  83. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  84. {
  85. if(newkeys == KEY_SECONDARY_ATTACK ){
  86. if(!IsPlayerInAnyVehicle(playerid)){
  87. new Float:x, Float:y, Float:z, vehicle;
  88. GetPlayerPos(playerid, x, y, z );
  89. GetVehicleWithinDistance(playerid, x, y, z, 20.0, vehicle);
  90. if(IsVehicleRc(vehicle)){
  91. PutPlayerInVehicle(playerid, vehicle, 0);
  92. }
  93. }
  94. else {
  95. new vehicleID = GetPlayerVehicleID(playerid);
  96. if(IsVehicleRc(vehicleID) || GetVehicleModel(vehicleID) == RC_CAM){
  97. if(GetVehicleModel(vehicleID) != D_TRAM){
  98. new Float:x, Float:y, Float:z;
  99. GetPlayerPos(playerid, x, y, z);
  100. SetPlayerPos(playerid, x+0.5, y, z+1.0);
  101. }
  102. }
  103. }
  104. }
  105. }
  106. public OnVehicleSpawn(vehicleid)
  107. {
  108. for(new i=0;i<MAX_PLAYERS;i++)
  109. {
  110. for(new u=0;u<MAX_PLAYERVEHICLES;u++)
  111. {
  112. if(vehicleid==PlayerVehicle[i][u])
  113. {
  114. VehicleDeleter(vehicleid);
  115. PlayerVehicle[i][u]=0;
  116. Turn[i]--;
  117. }
  118. }
  119. }
  120. return 1;
  121. }
  122. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  123. {
  124. if(dialogid== Dialog_Vehicle)
  125. {
  126. if ( response==1 )
  127. {
  128. if(listitem==0)ShowPlayerDialog( playerid, Dialog_Airplanes, 2, "{ffffff}Airplanes:", "Andromada\nAT-400\nBeagle\nCropduster\nDodo\nHydra\nNevada\nRustler\nShamal\nSkimmer\nStuntplane", "Spawn", "Back" );
  129. if(listitem==1)ShowPlayerDialog( playerid, Dialog_Helicopters, 2, "{ffffff}Helicopters:", "Cargobob\nHunter\nLeviathan\nMaverick\nNews Maverick\nPolice Maverick\nRaindance\nSeasparrow\nSparrow", "Spawn", "Back" );
  130. 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", "Spawn", "Back" );
  131. if(listitem==3)ShowPlayerDialog( playerid, Dialog_Convertable_Vehicle, 2, "{ffffff}Convertibles:", "Comet\nFeltzer\nStallion\nWindsor", "Spawn", "Back" );
  132. 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", "Spawn", "Back" );
  133. if(listitem==5)ShowPlayerDialog( playerid, Dialog_LowRyder_Vehicle, 2, "{ffffff}Lowriders:", "Blade\nBroadway\nRemington\nSavanna\nSlamvan\nTahoma\nTornado\nVoodoo", "Spawn", "Back" );
  134. 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", "Spawn", "Back" );
  135. 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", "Spawn", "Back" );
  136. 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", "Spawn", "Back" );
  137. 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", "Spawn", "Back" );
  138. if(listitem==10)ShowPlayerDialog( playerid, Dialog_Station_Vehicle, 2, "{ffffff}Station Wagons:", "Moonbeam\nPerenniel\nRegina\nSolair\nStratum", "Spawn", "Back" );
  139. if(listitem==11)ShowPlayerDialog( playerid, Dialog_Boats_Vehicle, 2, "{ffffff}Boats:", "Coastguard\nDinghy\nJetmax\nLaunch\nMarquis\nPredator\nReefer\nSpeeder\nSquallo\nTropic", "Spawn", "Back" );
  140. 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", "Spawn", "Back" );
  141. 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", "Spawn", "Back" );
  142. if(listitem==14)ShowPlayerDialog( playerid, Dialog_Rc_Vehicle, 2, "{ffffff}RC Vehicles:", "RC Bandit\nRC Baron\nRC Raider\nRC Goblin\nRC Tiger\nRC Cam", "Spawn", "Back" );
  143. }
  144. }
  145. if(dialogid== Dialog_Airplanes){if ( response ){
  146. VehicleSpawner(playerid,Airplanes[ listitem ]);}}
  147. if(dialogid== Dialog_Helicopters){
  148. if ( response ){
  149. VehicleSpawner(playerid,Helicopters[ listitem ]);
  150. }else ShowVehicleDialog(playerid);
  151. }
  152. if(dialogid== Dialog_Bike_Vehicle){
  153. if ( response ){
  154. VehicleSpawner(playerid,Bikes[ listitem ]);
  155. }else ShowVehicleDialog(playerid);
  156. }
  157. if(dialogid== Dialog_Convertable_Vehicle){
  158. if ( response ){
  159. VehicleSpawner(playerid,Convertibles[ listitem ]);
  160. }else ShowVehicleDialog(playerid);
  161. }
  162. if(dialogid== Dialog_Industry_Vehicle){
  163. if ( response ){
  164. VehicleSpawner(playerid,Industrials[ listitem ]);
  165. }else ShowVehicleDialog(playerid);
  166. }
  167. if(dialogid== Dialog_LowRyder_Vehicle){
  168. if ( response ){
  169. VehicleSpawner(playerid,Lowriders[ listitem ]);
  170. }else ShowVehicleDialog(playerid);
  171. }
  172. if(dialogid== Dialog_Off-Road_Vehicle){
  173. if ( response ){
  174. VehicleSpawner(playerid,Offroad[ listitem ]);
  175. }else ShowVehicleDialog(playerid);
  176. }
  177. if(dialogid== Dialog_Public_Service_Vehicle){
  178. if ( response ){
  179. VehicleSpawner(playerid,Pulic_Services[ listitem ]);
  180. }else ShowVehicleDialog(playerid);
  181. }
  182. if(dialogid== Dialog_Saloon_Vehicle){
  183. if ( response ){
  184. VehicleSpawner(playerid,Saloons[ listitem ]);
  185. }else ShowVehicleDialog(playerid);
  186. }
  187. if(dialogid== Dialog_Sport_Vehicle){
  188. if ( response ){
  189. VehicleSpawner(playerid,Sport[ listitem ]);
  190. }else ShowVehicleDialog(playerid);
  191. }
  192. if(dialogid== Dialog_Station_Vehicle){
  193. if ( response ){
  194. VehicleSpawner(playerid,Station[ listitem ]);
  195. }else ShowVehicleDialog(playerid);
  196. }
  197. if(dialogid== Dialog_Boats_Vehicle){
  198. if ( response ){
  199. VehicleSpawner(playerid,Boats[ listitem ]);
  200. }else ShowVehicleDialog(playerid);
  201. }
  202. if(dialogid== Dialog_Trailers_Vehicle){
  203. if ( response ){
  204. VehicleSpawner(playerid,Trailers[ listitem ]);
  205. }else ShowVehicleDialog(playerid);
  206. }
  207. if(dialogid== Dialog_Unique_Vehicle){
  208. if ( response ){
  209. VehicleSpawner(playerid,Unique[ listitem ]);
  210. }else ShowVehicleDialog(playerid);
  211. }
  212. if(dialogid== Dialog_Rc_Vehicle){
  213. if ( response ){
  214. VehicleSpawner(playerid,RC_Vehicles[ listitem ]);
  215. }else ShowVehicleDialog(playerid);
  216. }
  217. return 1;
  218. }
  219. dcmd_v(playerid, params[])
  220. {
  221. #pragma unused params
  222. ShowVehicleDialog(playerid);
  223. return 1;
  224. }
  225.  
  226. stock ShowVehicleDialog(playerid)
  227. {
  228. ShowPlayerDialog(playerid, Dialog_Vehicle, 2, "{ffffff}Vehicle 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" );
  229. }
  230.  
  231. public VehicleSpawnerLimiter(){
  232. new i;
  233. for(i=0;i<=MAX_PLAYERS;i++){
  234. if(VehicleSpawn[i]>0){
  235. VehicleSpawn[i]--;
  236. }
  237. }
  238. }
  239.  
  240. VehicleDeleter(vehicleid)
  241. {
  242. for(new i=0;i<MAX_PLAYERS;i++)
  243. {
  244. new Float:X,Float:Y,Float:Z;
  245. if(IsPlayerInVehicle(i, vehicleid))
  246. {
  247. RemovePlayerFromVehicle(i);
  248. GetPlayerPos(i,X,Y,Z);
  249. SetPlayerPos(i,X,Y+3,Z);
  250. }
  251. SetVehicleParamsForPlayer(vehicleid,i,0,1);
  252. }
  253. SetTimerEx("VehRes", 50000, 0, "d", vehicleid);
  254. }
  255.  
  256. forward VehRes(vehicleid);
  257. public VehRes(vehicleid) return DestroyVehicle(vehicleid);
  258.  
  259. VehicleSpawner(playerid,model)
  260. {
  261. if(VehicleSpawn[playerid]==0)
  262. {
  263. new vehicleid;
  264. new Float:x, Float:y, Float:z, Float:a;
  265. if(GetPlayerVehicleID(playerid) != 0)
  266. {
  267. GetVehiclePos(GetPlayerVehicleID(playerid), x, y, z);
  268. GetVehicleZAngle(GetPlayerVehicleID(playerid), a);
  269. for(new i; i < MAX_PLAYERVEHICLES; i++)
  270. {
  271. if(PlayerVehicle[playerid][i] == GetPlayerVehicleID(playerid))
  272. {
  273. PlayerVehicle[playerid][i] = 0;
  274. break;
  275. }
  276. }
  277. DestroyVehicle(GetPlayerVehicleID(playerid));
  278. }
  279. else
  280. {
  281. GetPlayerPos(playerid, x, y, z);
  282. GetPlayerFacingAngle(playerid, a);
  283. }
  284. vehicleid = CreateVehicle(model, x, y, z, a, -1, -1, -1);
  285. SetVehiclePos(vehicleid, x, y, z);
  286. SetVehicleZAngle(vehicleid, a);
  287. SetVehicleVirtualWorld(vehicleid, GetPlayerVirtualWorld(playerid));
  288. LinkVehicleToInterior(vehicleid, GetPlayerInterior(playerid));
  289. PutPlayerInVehicle(playerid, vehicleid, 0);
  290. SetVehicleHealth(vehicleid, 1000.0);
  291. for(new i = 0; i < MAX_PLAYERVEHICLES; i++)
  292. {
  293. if(Turn[playerid] == MAX_PLAYERVEHICLES)
  294. {
  295. VehicleDeleter(PlayerVehicle[playerid][0]);
  296. for(new c; c < MAX_PLAYERVEHICLES - 1; c++) PlayerVehicle[playerid][c] = PlayerVehicle[playerid][c + 1];
  297. PlayerVehicle[playerid][MAX_PLAYERVEHICLES - 1] = 0;
  298. Turn[playerid]--;
  299. }
  300. if(!PlayerVehicle[playerid][i])
  301. {
  302. PlayerVehicle[playerid][i] = vehicleid;
  303. Turn[playerid]++;
  304. break;
  305. }
  306. }
  307. }
  308. }
  309. GetVehicleWithinDistance( playerid, Float:x1, Float:y1, Float:z1, Float:dist, &veh){
  310. for(new i = 1; i < MAX_VEHICLES; i++){
  311. if(GetVehicleModel(i) > 0){
  312. if(GetPlayerVehicleID(playerid) != i ){
  313. new Float:x, Float:y, Float:z;
  314. new Float:x2, Float:y2, Float:z2;
  315. GetVehiclePos(i, x, y, z);
  316. x2 = x1 - x; y2 = y1 - y; z2 = z1 - z;
  317. new Float:vDist = (x2*x2+y2*y2+z2*z2);
  318. if( vDist < dist){
  319. veh = i;
  320. dist = vDist;
  321. }
  322. }
  323. }
  324. }
  325. }
  326. IsVehicleRc( vehicleid ){
  327. new model = GetVehicleModel(vehicleid);
  328. switch(model){
  329. case RC_GOBLIN, RC_BARON, RC_BANDIT, RC_RAIDER, RC_TIGER: return 1;
  330. default: return 0;
  331. }
  332. return 0;
  333. }
Advertisement
Add Comment
Please, Sign In to add comment