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. Forum Support

    3. Suggestions

[Raycast] What the function START_SHAPE_TEST_CAPSULE does?


Aktarus
 Share

Recommended Posts

Hi guys. I am triyng to understand how Raycast works. My objective is to scan around a ped (like a sonar) until find another ped. It seems that Raycast is a solution for my case. But what START_SHAPE_TEST_CAPSULE does exactly?

Is it only a straight line? Here is the doc from dev-c.com/nativedb/func :

 

 

WORLDPROBE::START_SHAPE_TEST_CAPSULE

 

Hashes: 0x28579D1B8F8AAC80 0x591EA833

int START_SHAPE_TEST_CAPSULE(float x1, float y1, float z1, float x2, float y2, float z2, float radius, int flags, Entity entity, int p9) // 0x28579D1B8F8AAC80 0x591EA833

Raycast from point to point, where the ray has a radius.

flags:
vehicles=10
peds =12

Iterating through flags yields many ped / vehicle/ object combinations

p9 = 7, but no idea what it does

Entity is an entity to ignore

Edited by Aktarus
Link to comment
Share on other sites

START_SHAPE_TEST_CAPSULE is what you'd expect; it's a capsule. It can also be a sphere as well.
What language are you going to be using? .NET has a very simplified function for this.

Edited by sollaholla
Link to comment
Share on other sites

START_SHAPE_TEST_CAPSULE is what you'd expect; it's a capsule. It can also be a sphere as well.

What language are you going to be using? .NET has a very simplified function for this.

 

Hi, I am using C#. Could you tell me what is the simplified function?

Thank you

Link to comment
Share on other sites

 

START_SHAPE_TEST_CAPSULE is what you'd expect; it's a capsule. It can also be a sphere as well.

What language are you going to be using? .NET has a very simplified function for this.

 

Hi, I am using C#. Could you tell me what is the simplified function?

Thank you

 

Yes, of course. Use this method and it should be much easier for you:

public static RaycastResult Raycast(Vector3 source, Vector3 direction, float maxDistance, IntersectOptions options, Entity ignoreEntity = null)

In the RaycastResult struct, there are many parameters that hold information about what the ray hit, it's hit location, etc.

 

There's also this function, since you where asking about capsule casting:

public static RaycastResult RaycastCapsule(Vector3 source, Vector3 target, float radius, IntersectOptions options, Entity ignoreEntity = null)

All of these can be found in the World class.

 

Hope this helps, cheers.

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

So the code below works partially, because it stops after few seconds. I have an error in the console that's say: "Object reference not set to an instance of an object".

public async Task OnTick(){   Vector3 Pos = Function.Call<Vector3>(Hash.GET_ENTITY_COORDS, pedOfOrigin);   Vector3 newPositionTarget = new Vector3    {         X = Pos.X + 30f,         Y = Pos.Y,         Z = Pos.Z     };    RaycastResult RaycastPed = World.RaycastCapsule(pedOfOrigin.Position, newPositionTarget, 60f, IntersectOptions.Peds1, null);    Ped foundPed = new Ped(RaycastPed.HitEntity.Handle);    Vector3 foundPedPos = Function.Call<Vector3>(Hash.GET_ENTITY_COORDS, foundPed);    pedOfOrigin.Task.RunTo(foundPed.Position, true);}

Does anyone knows what that means?

Thanks in advance

Edited by Aktarus
Link to comment
Share on other sites

So the code below works partially, because it stops after few seconds. I have an error in the console that's say: "Object reference not set to an instance of an object".

public async Task OnTick(){   Vector3 Pos = Function.Call<Vector3>(Hash.GET_ENTITY_COORDS, pedOfOrigin);   Vector3 newPositionTarget = new Vector3    {         X = Pos.X + 30f,         Y = Pos.Y,         Z = Pos.Z     };    RaycastResult RaycastPed = World.RaycastCapsule(pedOfOrigin.Position, newPositionTarget, 60f, IntersectOptions.Peds1, null);    Ped foundPed = new Ped(RaycastPed.HitEntity.Handle);    Vector3 foundPedPos = Function.Call<Vector3>(Hash.GET_ENTITY_COORDS, foundPed);    pedOfOrigin.Task.RunTo(foundPed.Position, true);}

Does anyone knows what that means?

Thanks in advance

I'm sure that it's because foundPed is returning null. Before getting the position of the ped you should check RaycastPed.DitHitEntity.

Edited by sollaholla
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.