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

    3. Suggestions

Happy Holidays from the GTANet team!

If is near entity


CrAzY_-7865
 Share

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?

Link to comment
Share on other sites

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)

  • Like 1
Link to comment
Share on other sites

CrAzY_-7865
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
Link to comment
Share on other sites

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

Link to comment
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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

CrAzY_-7865
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
Link to comment
Share on other sites

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
Link to comment
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?

Link to comment
Share on other sites

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.

  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...
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.

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.