Quantcast

Jump to content

» «
Photo

Can't open trunk of car using TASK_OPEN_VEHICLE_DOOR

4 replies to this topic
BiiXteR
  • BiiXteR

    Player Hater

  • Members
  • Joined: 03 Aug 2015
  • Sweden

#1

Posted A week ago Edited by BiiXteR, A week ago.

I've found the native TASK_OPEN_VEHICLE_DOOR, however I can't seem to make it open the trunk of any vehicle.

 

My current code looks like this: 

int doorTrunkIndex = Function.Call<int>(Hash.GET_ENTITY_BONE_INDEX_BY_NAME, vehicle, "boot");
Function.Call(Hash.TASK_OPEN_VEHICLE_DOOR, playerPed, vehicle, 1.0f, doorTrunkIndex, 1.0f);

I also tried supplying the doorIndex manually by entering some values: 

  • 0 seems to be the front doors, the ped seems to open on the side which he is closest too. So standing right of the vehicle will open right front door, and left will open left.
  • 1 is the back doors, the ped also opens the one closest to him here.
  • 2 seems to have the exact same result as 1.
  • 3 does nothing.
  • 4 does nothing.
  • 5 does nothing.
  • 6 does nothing.
  • 7, 8, 9 and 10 also does nothing.

I also tried using the native called SET_VEHICLE_DOOR_OPEN, which could open the trunk when the doorIndex 5 was used, however it doesn't make the player walk up to the trunk and actually open it. (It did open, but the player didn't physically walk over to the trunk and open it, it just opened magically)


NightShark
  • NightShark

    Play Smarter Not Harder

  • Members
  • Joined: 06 Aug 2017
  • United-Kingdom

#2

Posted A week ago

Try this

public static void ToggleCarDoor(int Door)
{
     Vehicle v = null;
     if (Game.Player.Character.IsInVehicle())
     {
         v = Game.Player.Character.CurrentVehicle;
     }
     if (v != null && VehicleHasDoor(v,Door))
     {
          float angle = Function.Call<float>(Hash.GET_VEHICLE_DOOR_ANGLE_RATIO, v, Door);
          if (angle < 0.01f)
          {
               Function.Call(Hash.SET_VEHICLE_DOOR_OPEN, v, Door, false, false);
          }
          else
          {
               Function.Call(Hash.SET_VEHICLE_DOOR_SHUT, v, Door, false);
          }
     }
}

public bool VehicleHasDoor(Vehicle veh,int Door)
{
     List<string> bones = new List<string> { "door_dside_f", "door_pside_f", "door_dside_r", "door_pside_r", "bonnet", "boot","trunk1"};
     return ((Function.Call<int>(Hash.GET_ENTITY_BONE_INDEX_BY_NAME, veh, bones[Door])) != -1);
}

BiiXteR
  • BiiXteR

    Player Hater

  • Members
  • Joined: 03 Aug 2015
  • Sweden

#3

Posted A week ago

 

Try this

public static void ToggleCarDoor(int Door)
{
     Vehicle v = null;
     if (Game.Player.Character.IsInVehicle())
     {
         v = Game.Player.Character.CurrentVehicle;
     }
     if (v != null && VehicleHasDoor(v,Door))
     {
          float angle = Function.Call<float>(Hash.GET_VEHICLE_DOOR_ANGLE_RATIO, v, Door);
          if (angle < 0.01f)
          {
               Function.Call(Hash.SET_VEHICLE_DOOR_OPEN, v, Door, false, false);
          }
          else
          {
               Function.Call(Hash.SET_VEHICLE_DOOR_SHUT, v, Door, false);
          }
     }
}

public bool VehicleHasDoor(Vehicle veh,int Door)
{
     List<string> bones = new List<string> { "door_dside_f", "door_pside_f", "door_dside_r", "door_pside_r", "bonnet", "boot","trunk1"};
     return ((Function.Call<int>(Hash.GET_ENTITY_BONE_INDEX_BY_NAME, veh, bones[Door])) != -1);
}

 

This opens/closes the trunk, but it doesn't make the player/ped actually do it. It just magically opens.

I want the player to actually walk up to the trunk and open/close it.


NightShark
  • NightShark

    Play Smarter Not Harder

  • Members
  • Joined: 06 Aug 2017
  • United-Kingdom

#4

Posted A week ago Edited by NightShark, A week ago.

Sorry, didn't read the last part of your post.
You would need to do it all manually by

  • tasking the player to go to the back of the vehicle
  • turn to face it
  • then play an appropriate animation for opening the trunk (good luck searching through all those to find one).

you may even need/want to adjust the boot open angle to match the movement, instead of just toggling it open/closed

TASK_GOTO_ENTITY_OFFSET
 
TASK_TURN_PED_TO_FACE_COORD

TASK_PLAY_ANIM


BiiXteR
  • BiiXteR

    Player Hater

  • Members
  • Joined: 03 Aug 2015
  • Sweden

#5

Posted A week ago

Sorry, didn't read the last part of your post.
You would need to do it all manually by

  • tasking the player to go to the back of the vehicle
  • turn to face it
  • then play an appropriate animation for opening the trunk (good luck searching through all those to find one).

you may even need/want to adjust the boot open angle to match the movement, instead of just toggling it open/closed

TASK_GOTO_ENTITY_OFFSET
 
TASK_TURN_PED_TO_FACE_COORD

TASK_PLAY_ANIM

 

Ah damn, no easy way out on this one then I guess :p

 

What does the 2 Any parameters on TASK_GOTO_ENTITY_OFFSET do?





1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users