Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
    1. Welcome to GTAForums!

    1. GTANet.com

    1. GTA Online

      1. The Criminal Enterprises
      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

[C#] How to Get Trailer ID ?


Lestium
 Share

Recommended Posts

Hey,

I need help for Get trailer ID (for open trailer doors and attach vehicle to this). I have tested this native : GET_VEHICLE_TRAILER_VEHICLE , but crash the game

    int GetTrailer(int Veh)    {        int Tr = 0;        while (!Function.Call<bool>(Hash.GET_VEHICLE_TRAILER_VEHICLE, Tr, Veh))        {            Tr++;        }        return Tr;    }

Help me, please

 

 

Sorry for my bad english.

Link to comment
Share on other sites

int GetTrailer (int veh){   int trailer = -1;   Function.Call<bool>(Hash.GET_VEHICLE_TRAILER_VEHICLE, veh, trailer);   return trailer;}

Untested, btw.

If you want to know how to use a native, you can look at the NativeDB page (scroll down to see how to use the GET_VEHICLE_TRAILER_VEHICLE native, you'll see it).

The main problem you had with your code is you were trying to get a trailer vehicle from the trailer ID, which was 0.

The other was your whole while (..) tr++ stuff, which you didn't need to do since the native already gives you the ID of the trailer, so you don't need a loop or anything like that.

Edited by LetsPlayOrDy
Link to comment
Share on other sites

Here's what i would do:

Vehicle GetAttachedTrailer(Vehicle veh){    if (Function.Call<bool>(Hash.GET_VEHICLE_TRAILER_VEHICLE, veh))    {        return Function.Call<Vehicle>(Hash.GET_VEHICLE_TRAILER_VEHICLE, veh)    }    else return null;}void AttachTrailer(Vehicle trailer, Vehicle veh){    Vehicle currentTrailer = GetAttachedTrailer(veh);    if (currentTrailer != null && currentTrailer.Handle != trailer.Handle)    {        Function.Call(DETACH_VEHICLE_FROM_TRAILER(veh));        currentTrailer.Delete();        Function.Call(ATTACH_VEHICLE_TO_TRAILER(veh, trailer, 0f));    }    else if (currentTrailer.Handle == trailer.Handle)    {        UI.Notify("Specified trailer already attached to vehicle");    }    else     {        Function.Call(ATTACH_VEHICLE_TO_TRAILER(veh, trailer, 0f));    }}

Or at least something along those lines as it haven't been tested.

Link to comment
Share on other sites

  • 2 months later...

Here's what i would do:

Vehicle GetAttachedTrailer(Vehicle veh){    if (Function.Call<bool>(Hash.GET_VEHICLE_TRAILER_VEHICLE, veh))    {        return Function.Call<Vehicle>(Hash.GET_VEHICLE_TRAILER_VEHICLE, veh)    }    else return null;}void AttachTrailer(Vehicle trailer, Vehicle veh){    Vehicle currentTrailer = GetAttachedTrailer(veh);    if (currentTrailer != null && currentTrailer.Handle != trailer.Handle)    {        Function.Call(DETACH_VEHICLE_FROM_TRAILER(veh));        currentTrailer.Delete();        Function.Call(ATTACH_VEHICLE_TO_TRAILER(veh, trailer, 0f));    }    else if (currentTrailer.Handle == trailer.Handle)    {        UI.Notify("Specified trailer already attached to vehicle");    }    else     {        Function.Call(ATTACH_VEHICLE_TO_TRAILER(veh, trailer, 0f));    }}

Or at least something along those lines as it haven't been tested.

 

 

int GetTrailer (int veh){   int trailer = -1;   Function.Call<bool>(Hash.GET_VEHICLE_TRAILER_VEHICLE, veh, trailer);   return trailer;}

Untested, btw.

If you want to know how to use a native, you can look at the NativeDB page (scroll down to see how to use the GET_VEHICLE_TRAILER_VEHICLE native, you'll see it).

The main problem you had with your code is you were trying to get a trailer vehicle from the trailer ID, which was 0.

The other was your whole while (..) tr++ stuff, which you didn't need to do since the native already gives you the ID of the trailer, so you don't need a loop or anything like that.

 

Thanks for your helps, but dosen't work again (the game has stopped working) :(

Link to comment
Share on other sites

You should pass Vehicle instead of integer. It seems that the bool returns whether a trailer is found or not.

Vehicle trailer;if(Function.Call<bool>(Hash.GET_VEHICLE_TRAILER_VEHICLE, veh, trailer)){   //do something with the trailer}

Please test it out. Hope it helps :)

Edited by GeorgeZhang
Link to comment
Share on other sites

You should pass Vehicle instead of integer. It seems that the bool returns whether a trailer is found or not.

Vehicle trailer;if(Function.Call<bool>(Hash.GET_VEHICLE_TRAILER_VEHICLE, veh, trailer)){   //do something with the trailer}

Please test it out. Hope it helps :)

Thank, but doesn't work again,

 

i tested my idea :

            Vehicle[] Nearby = World.GetNearbyVehicles(Game.Player.Character, Convert.ToSingle(10.0), 3);            Vehicle CurrentVeh = Game.Player.Character.CurrentVehicle;            foreach (Vehicle veh in Nearby)            {                if (veh != CurrentVeh)                {                    Function.Call<bool>(Hash.GET_VEHICLE_TRAILER_VEHICLE, CurrentVeh, veh);                }            }

This returns false when the trailer is nearby (it's okay), but when trailer is attached, game stopped working..

Link to comment
Share on other sites

 

You should pass Vehicle instead of integer. It seems that the bool returns whether a trailer is found or not.

Vehicle trailer;if(Function.Call<bool>(Hash.GET_VEHICLE_TRAILER_VEHICLE, veh, trailer)){   //do something with the trailer}

Please test it out. Hope it helps :)

Thank, but doesn't work again,

 

i tested my idea :

            Vehicle[] Nearby = World.GetNearbyVehicles(Game.Player.Character, Convert.ToSingle(10.0), 3);            Vehicle CurrentVeh = Game.Player.Character.CurrentVehicle;            foreach (Vehicle veh in Nearby)            {                if (veh != CurrentVeh)                {                    Function.Call<bool>(Hash.GET_VEHICLE_TRAILER_VEHICLE, CurrentVeh, veh);                }            }

This returns false when the trailer is nearby (it's okay), but when trailer is attached, game stopped working..

 

But the code seems to assign all vehicles nearby to your trailer, which is likely what crashed the game? Maybe you should try passing another Vehicle variable?

Link to comment
Share on other sites

I found how to use OutputArgument, it works with this code :



Vehicle GetTrailer(Vehicle veh)
{
OutputArgument outputArgument = new OutputArgument();
if (Function.Call<bool>(Hash.GET_VEHICLE_TRAILER_VEHICLE, veh, outputArgument))
{
return outputArgument.GetResult<Vehicle>();
}
else
{
return null;
}
}


Thank you to those who helped me!

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.