Jump to content
    1. Welcome to GTAForums!

    1. GTANet.com

    1. GTA Online

      1. Los Santos Drug Wars
      2. Updates
      3. Find Lobbies & Players
      4. Guides & Strategies
      5. Vehicles
      6. Content Creator
      7. Help & Support
    2. Red Dead Online

      1. Blood Money
      2. Frontier Pursuits
      3. Find Lobbies & Outlaws
      4. Help & Support
    3. Crews

    1. Grand Theft Auto Series

      1. Bugs*
      2. St. Andrews Cathedral
    2. GTA VI

    3. GTA V

      1. Guides & Strategies
      2. Help & Support
    4. GTA IV

      1. The Lost and Damned
      2. The Ballad of Gay Tony
      3. Guides & Strategies
      4. Help & Support
    5. GTA San Andreas

      1. Classic GTA SA
      2. Guides & Strategies
      3. Help & Support
    6. GTA Vice City

      1. Classic GTA VC
      2. Guides & Strategies
      3. Help & Support
    7. GTA III

      1. Classic GTA III
      2. Guides & Strategies
      3. Help & Support
    8. Portable Games

      1. GTA Chinatown Wars
      2. GTA Vice City Stories
      3. GTA Liberty City Stories
    9. Top-Down Games

      1. GTA Advance
      2. GTA 2
      3. GTA
    1. Red Dead Redemption 2

      1. PC
      2. Help & Support
    2. Red Dead Redemption

    1. GTA Mods

      1. GTA V
      2. GTA IV
      3. GTA III, VC & SA
      4. Tutorials
    2. Red Dead Mods

      1. Documentation
    3. Mod Showroom

      1. Scripts & Plugins
      2. Maps
      3. Total Conversions
      4. Vehicles
      5. Textures
      6. Characters
      7. Tools
      8. Other
      9. Workshop
    4. Featured Mods

      1. Design Your Own Mission
      2. OpenIV
      3. GTA: Underground
      4. GTA: Liberty City
      5. GTA: State of Liberty
    1. Rockstar Games

    2. Rockstar Collectors

    1. Off-Topic

      1. General Chat
      2. Gaming
      3. Technology
      4. Movies & TV
      5. Music
      6. Sports
      7. Vehicles
    2. Expression

      1. Graphics / Visual Arts
      2. GFX Requests & Tutorials
      3. Writers' Discussion
      4. Debates & Discussion
    1. Announcements

    2. Support

    3. Suggestions

Happy Holidays from the GTANet team!

Give modifications to helicopters/planes


Aldebaraan
 Share

Recommended Posts

How do i give mods to some vehicles like helicopters and planes (e.g. minigun for havok and explosive mg for hunter)?

 

Also, how do i make the police helicopter always spawn with the black/white livery instead of the ambulance (red/white)?


 

            Vehicle heli = World.CreateVehicle("polmav", Game.Player.Character.Position + offset);

 

Edited by Aldebaraan
Link to comment
Share on other sites

When i want to find out how to do something to a vehicle, like enable a weapon or something i output all the relative info about said vehicle to an xml, then enable the feature with a trainer, then output all the info again and see what changed.

                XDocument vehiclesXML = XDocument.Load("Vehicles.xml");
                var rootElement = vehiclesXML.Root;
                rootElement.RemoveAll();
                var parentElement = new XElement("Vehicle");
                var modsElement = new XElement("Mods");
                var toggleModsElement = new XElement("ToggleMods");
                var neonsElement = new XElement("Neons");
                parentElement.Add(new XElement("Destroyed", "false"));
                parentElement.Add(new XElement("Handle", veh.Handle.ToString()));
                parentElement.Add(new XElement("Name", veh.DisplayName));
                parentElement.Add(new XElement("Hash", veh.Model.Hash));
                parentElement.Add(new XElement("PosX", veh.Position.X));
                parentElement.Add(new XElement("PosY", veh.Position.Y));
                parentElement.Add(new XElement("PosZ", veh.Position.Z));
                parentElement.Add(new XElement("Heading", veh.Heading));
                parentElement.Add(new XElement("PrimaryCol", veh.PrimaryColor));
                parentElement.Add(new XElement("SecondaryCol", veh.SecondaryColor));
                parentElement.Add(new XElement("Health", veh.BodyHealth));
                parentElement.Add(new XElement("EngineHealth", veh.EngineHealth));
                parentElement.Add(new XElement("WheelType", veh.WheelType));
                parentElement.Add(new XElement("RimCol", veh.RimColor));
                parentElement.Add(new XElement("SmokeCol", veh.TireSmokeColor));
                parentElement.Add(new XElement("NeonCol", veh.NeonLightsColor));
                parentElement.Add(new XElement("TrimCol", veh.TrimColor));
                parentElement.Add(new XElement("DashCol", veh.DashboardColor));
                parentElement.Add(new XElement("NumPlateType", veh.NumberPlateType));
                parentElement.Add(new XElement("NumPlate", veh.NumberPlate));
                parentElement.Add(new XElement("WindowTint", veh.WindowTint));
                parentElement.Add(new XElement("DirtLevel", veh.DirtLevel));
                parentElement.Add(new XElement("CanTiresBurst", veh.CanTiresBurst));
                parentElement.Add(new XElement("Fuel", veh.FuelLevel));
                parentElement.Add(new XElement("Livery", veh.Livery));
                if (Function.Call<bool>(Hash.GET_VEHICLE_MOD_VARIATION, veh.Handle, (int)VehicleMod.FrontWheels))
                {
                    parentElement.Add(new XElement("CustomTire", true));
                }
                else
                {
                    parentElement.Add(new XElement("CustomTire", false));
                }
                foreach (VehicleMod mod in Enum.GetValues(typeof(VehicleMod)))
                {
                    modsElement.Add(new XElement(mod.ToString(), veh.GetMod(mod)));
                }
                
                foreach (VehicleToggleMod mod in Enum.GetValues(typeof(VehicleToggleMod)))
                {
                    toggleModsElement.Add(new XElement(mod.ToString(), veh.IsToggleModOn(mod)));
                }
                foreach (VehicleNeonLight neon in Enum.GetValues(typeof(VehicleNeonLight)))
                {
                    neonsElement.Add(new XElement(neon.ToString(), veh.IsNeonLightsOn(neon)));
                }
                parentElement.Add(modsElement);
                parentElement.Add(toggleModsElement);
                parentElement.Add(neonsElement);
                rootElement.Add(parentElement);
                vehiclesXML.Save("Vehicles.xml");

This is pretty much what i use.. 

And for the livery, just set the livery.

Edited by mcal
  • Like 2
Link to comment
Share on other sites

8 hours ago, mcal said:

When i want to find out how to do something to a vehicle, like enable a weapon or something i output all the relative info about said vehicle to an xml, then enable the feature with a trainer, then output all the info again and see what changed.

                XDocument vehiclesXML = XDocument.Load("Vehicles.xml");
                var rootElement = vehiclesXML.Root;
                rootElement.RemoveAll();
                var parentElement = new XElement("Vehicle");
                var modsElement = new XElement("Mods");
                var toggleModsElement = new XElement("ToggleMods");
                var neonsElement = new XElement("Neons");
                parentElement.Add(new XElement("Destroyed", "false"));
                parentElement.Add(new XElement("Handle", veh.Handle.ToString()));
                parentElement.Add(new XElement("Name", veh.DisplayName));
                parentElement.Add(new XElement("Hash", veh.Model.Hash));
                parentElement.Add(new XElement("PosX", veh.Position.X));
                parentElement.Add(new XElement("PosY", veh.Position.Y));
                parentElement.Add(new XElement("PosZ", veh.Position.Z));
                parentElement.Add(new XElement("Heading", veh.Heading));
                parentElement.Add(new XElement("PrimaryCol", veh.PrimaryColor));
                parentElement.Add(new XElement("SecondaryCol", veh.SecondaryColor));
                parentElement.Add(new XElement("Health", veh.BodyHealth));
                parentElement.Add(new XElement("EngineHealth", veh.EngineHealth));
                parentElement.Add(new XElement("WheelType", veh.WheelType));
                parentElement.Add(new XElement("RimCol", veh.RimColor));
                parentElement.Add(new XElement("SmokeCol", veh.TireSmokeColor));
                parentElement.Add(new XElement("NeonCol", veh.NeonLightsColor));
                parentElement.Add(new XElement("TrimCol", veh.TrimColor));
                parentElement.Add(new XElement("DashCol", veh.DashboardColor));
                parentElement.Add(new XElement("NumPlateType", veh.NumberPlateType));
                parentElement.Add(new XElement("NumPlate", veh.NumberPlate));
                parentElement.Add(new XElement("WindowTint", veh.WindowTint));
                parentElement.Add(new XElement("DirtLevel", veh.DirtLevel));
                parentElement.Add(new XElement("CanTiresBurst", veh.CanTiresBurst));
                parentElement.Add(new XElement("Fuel", veh.FuelLevel));
                parentElement.Add(new XElement("Livery", veh.Livery));
                if (Function.Call<bool>(Hash.GET_VEHICLE_MOD_VARIATION, veh.Handle, (int)VehicleMod.FrontWheels))
                {
                    parentElement.Add(new XElement("CustomTire", true));
                }
                else
                {
                    parentElement.Add(new XElement("CustomTire", false));
                }
                foreach (VehicleMod mod in Enum.GetValues(typeof(VehicleMod)))
                {
                    modsElement.Add(new XElement(mod.ToString(), veh.GetMod(mod)));
                }
                
                foreach (VehicleToggleMod mod in Enum.GetValues(typeof(VehicleToggleMod)))
                {
                    toggleModsElement.Add(new XElement(mod.ToString(), veh.IsToggleModOn(mod)));
                }
                foreach (VehicleNeonLight neon in Enum.GetValues(typeof(VehicleNeonLight)))
                {
                    neonsElement.Add(new XElement(neon.ToString(), veh.IsNeonLightsOn(neon)));
                }
                parentElement.Add(modsElement);
                parentElement.Add(toggleModsElement);
                parentElement.Add(neonsElement);
                rootElement.Add(parentElement);
                vehiclesXML.Save("Vehicles.xml");

This is pretty much what i use.. 

And for the livery, just set the livery.

I tried that. Spawned a akula unmodified, entered it and fetched the data using your code + Game.Player.Character.CurrentVehicle. Tried again with fully loaded akula. The only things that changed was the color, position and plate.

Link to comment
Share on other sites

Did you check the Roof modification? <roof></roof> Thats where all vehicles weapons are located. 

Im not familiar with that vehicle in particular but thats where the Oppressors(mkI and mk II), FH-1 helicopter and the Deluxo's weapons are customised.

Link to comment
Share on other sites

Akula weapons are in Mod numbers 5 (Secondary Weapons), 9 (Bombs) and 10 (Primary Weapons), which are Frame, RightFender and Roof converting to SHVDN enum values, if that helps to spot any changes. Mod numbers start at 0.

Edited by LeeC22
Link to comment
Share on other sites

On 12/21/2020 at 5:17 PM, LeeC22 said:

Akula weapons are in Mod numbers 5 (Secondary Weapons), 9 (Bombs) and 10 (Primary Weapons), which are Frame, RightFender and Roof converting to SHVDN enum values, if that helps to spot any changes. Mod numbers start at 0.

Thanks!

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • 1 User Currently Viewing
    0 members, 0 Anonymous, 1 Guest

×
×
  • Create New...

Important Information

By using GTAForums.com, you agree to our Terms of Use and Privacy Policy.