Guest User

V2 - Dynamic Vehicles

a guest
Jan 4th, 2012
769
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 6.61 KB | None | 0 0
  1. //  ------------------------------------------------------------
  2. //  ----------- Dynamic Vehicle System © 2011 Jochemd ----------
  3. //  ------------------------------------------------------------
  4.  
  5. #include "a_samp"
  6.  
  7. #define MAX_DYNAMIC_GROUPS 10
  8. #define MAX_DYNAMIC_VEHICLES 100
  9. #define MainDialogID 4765
  10. #define ShowVehicleSpawnDialog(%0) ShowPlayerDialog(%0,MainDialogID - 1,DIALOG_STYLE_LIST,"Dynamic list of vehicles",MainDialogString,"Select","Quit")
  11. #if !defined isnull
  12.     #define isnull(%1) \
  13.                 ((!(%1[0])) || (((%1[0]) == '\1') && (!(%1[1]))))
  14. #endif
  15.  
  16. forward _OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]);
  17.  
  18. enum DynamicGroups
  19. {
  20.     DialogString[500],
  21.     DialogID,
  22.     ContainingVehicles
  23. };
  24.  
  25. enum DynamicVehicles
  26. {
  27.     DynVehGroup,
  28.     DynVehModel,
  29.     DynVehColor1,
  30.     DynVehColor2
  31. };
  32.  
  33. new DynamicVehicleGroupInfo[MAX_DYNAMIC_GROUPS][DynamicGroups],
  34.     DynamicVehicleInfo[MAX_DYNAMIC_VEHICLES][DynamicVehicles],
  35.     DynamicGroupCount = 0,
  36.     DynamicVehicleCount = 0,
  37.     MainDialogString[500],
  38.     strr[128],
  39.     vNames[212][50] =
  40.     {
  41.        "Landstalker",       "Bravura",          "Buffalo",          "Linerunner",       "Pereniel",         "Sentinel",
  42.        "Dumper",            "Firetruck",        "Trashmaster",      "Stretch",          "Manana",           "Infernus",
  43.        "Voodoo",            "Pony",             "Mule",             "Cheetah",          "Ambulance",        "Leviathan",
  44.        "Moonbeam",          "Esperanto",        "Taxi",             "Washington",       "Bobcat",           "Mr Whoopee",
  45.        "BF Injection",      "Hunter",           "Premier",          "Enforcer",         "Securicar",        "Banshee",
  46.        "Predator",          "Bus",              "Rhino",            "Barracks",         "Hotknife",         "Trailer",
  47.        "Previon",           "Coach",            "Cabbie",           "Stallion",         "Rumpo",            "RC Bandit",
  48.        "Romero",            "Packer",           "Monster Truck",    "Admiral",          "Squalo",           "Seasparrow",
  49.        "Pizzaboy",          "Tram",             "Trailer",          "Turismo",          "Speeder",          "Reefer",
  50.        "Tropic",            "Flatbed",          "Yankee",           "Caddy",            "Solair",           "RC Van",
  51.        "Skimmer",           "PCJ-600",          "Faggio",           "Freeway",          "RC Baron",         "RC Raider",
  52.        "Glendale",          "Oceanic",          "Sanchez",          "Sparrow",          "Patriot",          "Quad",
  53.        "Coastguard",        "Dinghy",           "Hermes",           "Sabre",            "Rustler",          "ZR-350",
  54.        "Walton",            "Regina",           "Comet",            "BMX",              "Burrito",          "Camper",
  55.        "Marquis",           "Baggage",          "Dozer",            "Maverick",         "News Chopper",     "Rancher",
  56.        "Police Rancher",    "Virgo",            "Greenwood",        "Jetmax",           "Hotring",          "Sandking",
  57.        "Blista Compact",    "Police Maverick""Boxville",         "Benson",           "Mesa",             "RC Goblin",
  58.        "Hotring Racer",     "Hotring Racer",    "Bloodring Banger", "Rancher",          "Super GT",         "Elegant",
  59.        "Journey",           "Bike",             "Mountain Bike",    "Beagle",           "Cropdust",         "Stunt",
  60.        "Tanker",            "RoadTrain",        "Nebula",           "Majestic",         "Buccaneer",        "Shamal",
  61.        "Hydra",             "FCR-900",          "NRG-500",          "HPV-1000",         "Cement Truck",     "Tow Truck",
  62.        "Fortune",           "Cadrona",          "Enforcer",         "Willard",          "Forklift",         "Tractor",
  63.        "Combine",           "Feltzer",          "Remington",        "Slamvan",          "Blade",            "Freight",
  64.        "Streak",            "Vortex",           "Vincent",          "Bullet",           "Clover",           "Sadler",
  65.        "Firetruck (LA)",    "Hustler",          "Intruder",         "Primo",            "Cargobob",         "Tampa",
  66.        "Sunrise",           "Merit",            "Utility",          "Nevada",           "Yosemite",         "Windsor",
  67.        "Monster Truck A",   "Monster Truck B",  "Uranus",           "Jester",           "Sultan",           "Stratum",
  68.        "Elegy",             "Raindance",        "RC Tiger",         "Flash",            "Tahoma",           "Savanna",
  69.        "Bandito",           "Freight",          "Trailer",          "Kart",             "Mower",            "Duneride",
  70.        "Sweeper",           "Broadway",         "Tornado",          "AT-400",           "DFT-30",           "Huntley",
  71.        "Stafford",          "BF-400",           "Newsvan",          "Tug",              "Trailer",          "Emperor",
  72.        "Wayfarer",          "Euros",            "Hotdog",           "Club",             "Trailer",          "Trailer",
  73.        "Andromada",         "Dodo",             "RC Cam",           "Launch",           "Police Car (LSPD)","Police Car (SFPD)",
  74.        "Police Car (LVPD)", "Police Ranger",    "Picador",          "S.W.A.T. Van",     "Alpha",            "Phoenix",
  75.        "Glendale",          "Sadler",           "Luggage Trailer",  "Luggage Trailer""Stair Trailer",    "Boxville",
  76.        "Farm Plow",         "Utility Trailer"
  77.     };
  78.  
  79. stock CreateDynamicVehicleGroup(groupname[64])
  80. {
  81.     DynamicVehicleGroupInfo[DynamicGroupCount][DialogID] = (MainDialogID + DynamicGroupCount);
  82.     format(strr,sizeof(strr),"%s\n",groupname);
  83.     strcat(MainDialogString,strr);
  84.     DynamicGroupCount ++;
  85.     return DynamicGroupCount - 1;
  86. }
  87.  
  88. stock AddDynamicVehicle(groupid, modelid, color1 = -1, color2 = -1)
  89. {
  90.     DynamicVehicleInfo[DynamicVehicleCount][DynVehGroup] = groupid;
  91.     DynamicVehicleInfo[DynamicVehicleCount][DynVehModel] = modelid;
  92.     DynamicVehicleInfo[DynamicVehicleCount][DynVehColor1] = color1;
  93.     DynamicVehicleInfo[DynamicVehicleCount][DynVehColor2] = color2;
  94.     DynamicVehicleGroupInfo[groupid][ContainingVehicles] ++;
  95.     if(DynamicVehicleCount == 0) format(strr,sizeof(strr),"%s",vNames[modelid - 400]);
  96.     else format(strr,sizeof(strr),"\n%s",vNames[modelid - 400]);
  97.     strcat(DynamicVehicleGroupInfo[groupid][DialogString],strr,sizeof(strr));
  98.     DynamicVehicleCount ++;
  99.     return DynamicVehicleCount - 1;
  100. }
  101.  
  102. public _OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  103. {
  104.     if(response)
  105.     {
  106.         new VehiclesBeforeGroup[MAX_PLAYERS];
  107.         if(dialogid == MainDialogID - 1)
  108.         {
  109.             printf(DynamicVehicleGroupInfo[listitem][DialogString]);
  110.             ShowPlayerDialog(playerid,MainDialogID + listitem,DIALOG_STYLE_LIST,"Dynamic list of vehicles",DynamicVehicleGroupInfo[listitem][DialogString],"Select","Quit");
  111.             SetPVarInt(playerid,"BrowsingGroup",listitem);
  112.             return 1;
  113.         }
  114.         for(new g = 0; g < MAX_DYNAMIC_GROUPS; g ++)
  115.         {
  116.             if(dialogid == DynamicVehicleGroupInfo[g][DialogID])
  117.             {
  118.                 if(IsPlayerInAnyVehicle(playerid)) RemovePlayerFromVehicle(playerid);
  119.                 new Float:Pos[4],vehicleid,id = listitem + VehiclesBeforeGroup[playerid];
  120.                 GetPlayerPos(playerid,Pos[0],Pos[1],Pos[2]);
  121.                 GetPlayerFacingAngle(playerid,Pos[3]);
  122.                 vehicleid = CreateVehicle(DynamicVehicleInfo[id][DynVehModel],Pos[0],Pos[1],Pos[2],Pos[3],DynamicVehicleInfo[id][DynVehColor1],DynamicVehicleInfo[id][DynVehColor2],-1);
  123.                 PutPlayerInVehicle(playerid,vehicleid,0);
  124.                 format(strr,sizeof(strr),"Success: You have spawned a %s (ID: %d).",vNames[DynamicVehicleInfo[id][DynVehModel] - 400],vehicleid);
  125.                 SendClientMessage(playerid,0xFFFFFFF,strr);
  126.                 return 1;
  127.             }
  128.             else
  129.             {
  130.                 VehiclesBeforeGroup[playerid] += DynamicVehicleGroupInfo[g][ContainingVehicles];
  131.             }
  132.         }
  133.         return 1;
  134.     }
  135.     return 1;
  136. }
Advertisement
Add Comment
Please, Sign In to add comment