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. PC
      2. Gameplay
      3. Missions
      4. Help & Support
    2. Red Dead Online

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

      1. Recruitment
    2. Events

    1. GTA Online

      1. DLC
      2. Find Lobbies & Players
      3. Guides & Strategies
      4. Vehicles
      5. Content Creator
      6. Help & Support
      7. The Diamond Casino Heist
    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 IV 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 SA Mods
    10. GTA Vice City

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

      1. Guides & Strategies
      2. Help & Support
      3. GTA III 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

CrAzY_-7865

If is near entity

Recommended Posts

CrAzY_-7865

Hi everyone
I wanted to asks, how can I detect when my character is near an object?
If my character touches the door (and the door opens), it will automatically be teleported to a specific location.
I have no idea how to detect if it touches the door (it would be better when it opens).

Something like a portal gun.
does anyone have any ideas?

Share this post


Link to post
Share on other sites
Jitnaught

C++: ENTITY::IS_ENTITY_TOUCHING_ENTITY

C#: Game.Player.Character.IsTouching(entityHere)

 

If you don't know the entity or this doesn't work, you can get the distance between to coordinates:

C++: MISC::GET_DISTANCE_BETWEEN_COORDS

C#: Game.Player.Character.Position.DistanceTo(position)

Share this post


Link to post
Share on other sites
CrAzY_-7865
Posted (edited)
5 hours ago, Jitnaught said:

C++: ENTITY::IS_ENTITY_TOUCHING_ENTITY

C#: Game.Player.Character.IsTouching(entityHere)

 

If you don't know the entity or this doesn't work, you can get the distance between to coordinates:

C++: MISC::GET_DISTANCE_BETWEEN_COORDS

C#: Game.Player.Character.Position.DistanceTo(position)

Vector3 MyCoords = ENTITY::GET_ENTITY_COORDS(PLAYER::PLAYER_PED_ID(), !ENTITY::IS_ENTITY_DEAD(PLAYER::PLAYER_PED_ID()));
Vector3 EntityCoords = ENTITY::GET_ENTITY_COORDS(EntitySpawned, !ENTITY::IS_ENTITY_DEAD(EntitySpawned));
float DistanceOfEntity = GAMEPLAY::GET_DISTANCE_BETWEEN_COORDS(MyCoords.x, MyCoords.y, MyCoords.z, EntityCoords.x, EntityCoords.y, EntityCoords.z, false);
if (DistanceOfEntity != 0){
  notify("You're close to the entity!");
}else{
  notify("You're still too far away.");
}

Jitnaught
something like this?

Edited by CrAzY_-7865

Share this post


Link to post
Share on other sites
Jitnaught

Looks pretty good, although the distance will probably never be exactly zero. < 0.5f or similar would be best.

Share this post


Link to post
Share on other sites
CrAzY_-7865
23 hours ago, Jitnaught said:

Looks pretty good, although the distance will probably never be exactly zero. < 0.5f or similar would be best.

Yes, I noticed it. 
The only problem is that I don't understand why it runs the function in a loop. 
In this case, teleportation. 
I tried to insert a break / return, but nothing.

Share this post


Link to post
Share on other sites
Jitnaught

I'm not sure what you mean. Since you're using C++, you are running the function in the while(true) loop.

Post the code so we can help, or PM me it.

Share this post


Link to post
Share on other sites
CrAzY_-7865
Posted (edited)
4 minutes ago, Jitnaught said:

I'm not sure what you mean. Since you're using C++, you are running the function in the while(true) loop.

Post the code so we can help, or PM me it.

Vector3 MyCoords = ENTITY::GET_ENTITY_COORDS(PLAYER::PLAYER_PED_ID(), !ENTITY::IS_ENTITY_DEAD(PLAYER::PLAYER_PED_ID()));
Vector3 EntityCoords = ENTITY::GET_ENTITY_COORDS(EntitySpawned, !ENTITY::IS_ENTITY_DEAD(EntitySpawned));
float DistanceOfEntity = GAMEPLAY::GET_DISTANCE_BETWEEN_COORDS(MyCoords.x, MyCoords.y, MyCoords.z, EntityCoords.x, EntityCoords.y, EntityCoords.z, false);
if (DistanceOfEntity != 0){
  //teleport(PLAYER::PLAYER_PED_ID(), X, Y, Z, H);//but executes this function in loop
}else{
  notify("You're still too far away.");
}

 

Edited by CrAzY_-7865

Share this post


Link to post
Share on other sites
Jitnaught
Posted (edited)

The distance will almost never be exactly 0, so (DistanceOfEntity != 0) will basically always return true, which in turn means you will be teleporting forever.

Edited by Jitnaught

Share this post


Link to post
Share on other sites
CrAzY_-7865
20 minutes ago, Jitnaught said:

The distance will almost never be exactly 0, so (DistanceOfEntity != 0) will basically always return true, which in turn means you will be teleporting forever.

So if I remove "! = 0", with a return / break, will not execute no longer perform the function in a loop?

Share this post


Link to post
Share on other sites
Jitnaught

Replace it with

(DistanceOfEntity < 0.5f)

 

Then it should only teleport when you are within 0.5 units. When you teleport away, you should be farther than 0.5 units, and the loop will end.

Share this post


Link to post
Share on other sites
CrAzY_-7865
On 6/17/2019 at 1:59 AM, Jitnaught said:

Replace it with

(DistanceOfEntity < 0.5f)

 

Then it should only teleport when you are within 0.5 units. When you teleport away, you should be farther than 0.5 units, and the loop will end.

How i can get if i touch the cell gate?
The method I did above, unfortunately does not work, only works with the entities I spawned.

Share this post


Link to post
Share on other sites
CrAzY_-7865

Someone?

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.
Note: Your post will require moderator approval before it will be visible.

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.


  • 2 Users Currently Viewing
    0 members, 0 Anonymous, 2 Guests

×
×
  • Create New...

Important Information

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