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

    1. Red Dead Redemption 2

      1. Gameplay
      2. Missions
      3. Help & Support
    2. Red Dead Online

      1. Gameplay
      2. Find Lobbies & Outlaws
      3. Help & Support
    1. Crews & Posses

      1. Recruitment
    2. Events

    1. GTA Online

      1. Diamond Casino & Resort
      2. DLC
      3. Find Lobbies & Players
      4. Guides & Strategies
      5. Vehicles
      6. Content Creator
      7. Help & Support
    2. Grand Theft Auto Series

    3. GTA 6

    4. GTA V

      1. PC
      2. Guides & Strategies
      3. Help & Support
    5. GTA IV

      1. Episodes from Liberty City
      2. Multiplayer
      3. Guides & Strategies
      4. Help & Support
      5. GTA Mods
    6. GTA Chinatown Wars

    7. GTA Vice City Stories

    8. GTA Liberty City Stories

    9. GTA San Andreas

      1. Guides & Strategies
      2. Help & Support
      3. GTA Mods
    10. GTA Vice City

      1. Guides & Strategies
      2. Help & Support
      3. GTA Mods
    11. GTA III

      1. Guides & Strategies
      2. Help & Support
      3. GTA Mods
    12. Top Down Games

      1. GTA Advance
      2. GTA 2
      3. GTA
    13. Wiki

      1. Merchandising
    1. GTA Modding

      1. GTA V
      2. GTA IV
      3. GTA III, VC & SA
      4. Tutorials
    2. Mod Showroom

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

      1. DYOM
      2. OpenIV
      3. GTA: Underground
      4. GTA: Liberty City
      5. GTA: State of Liberty
    1. Red Dead Redemption

    2. Rockstar Games

    1. Off-Topic

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

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

    2. Forum Support

    3. Site Suggestions

Sign in to follow this  
Aktarus

[Raycast] What the function START_SHAPE_TEST_CAPSULE does?

Recommended Posts

Aktarus

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

Share this post


Link to post
Share on other sites
sollaholla

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

Share this post


Link to post
Share on other sites
Aktarus

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

Share this post


Link to post
Share on other sites
sollaholla

 

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

Share this post


Link to post
Share on other sites
Aktarus

Wow! Sure it helps Sollaholla.

I am going to try.

 

Thanks again

Share this post


Link to post
Share on other sites
Aktarus

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

Share this post


Link to post
Share on other sites
sollaholla

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

Share this post


Link to post
Share on other sites
Aktarus

Thanks. Problem solved. :lol:

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • 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.