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

Sign in to follow this  
MagicStyle

Check if someone was headshotted

Recommended Posts

MagicStyle

Hello,
is it possible to check if someone was headshotted?

the only headshot relating functions i found are these:

 

Any REGISTER_PEDHEADSHOT(Ped ped)
void UNREGISTER_PEDHEADSHOT(Ped ped)
BOOL IS_PEDHEADSHOT_VALID(Ped ped)
BOOL IS_PEDHEADSHOT_READY(Ped ped)
char *GET_PEDHEADSHOT_TXD_STRING(Ped ped)

 

 

Share this post


Link to post
Share on other sites
Jitnaught

 

BOOL PED::GET_PED_LAST_DAMAGE_BONE(Ped ped, Any *outBone)// 0xD75960F6BD9EA49C 0xAB933841

You'll have to find what the output for the head bone is.

If the ped you are checking for a headshot has been killed, it may not work, as I tried this on IV and would always result in an error.

Edited by LetsPlayOrDy
  • Like 1

Share this post


Link to post
Share on other sites
c39687

getting the bone damaged from a dead ped worked fine for me in iv

  • Like 1

Share this post


Link to post
Share on other sites
MagicStyle

Is there a list with the names of all bones? And with which ped do i have to call the function, i try to check this for EVERY pedestrian.

Is there a table variable which contains all peds around the player? If not, how could i create one? Any ideas?

Edited by MagicStyle

Share this post


Link to post
Share on other sites
Jitnaught

Is there a list with the names of all bones? And with which ped do i have to call the function, i try to check this for EVERY pedestrian.

Is there a table variable which contains all peds around the player? If not, how could i create one? Any ideas?

I don't know of any list of all the bones, that's why I said you'll have to find it out yourself by shooting a ped in the head and then getting the value it returns.

 

Here's some code that gets peds within ~200 feet of you. The distance can't be changed.

int *handles = new int[maxAmount * 2 + 2];	//0 index is the size of the array	handles[0] = maxAmount;	int count = PED::GET_PED_NEARBY_PEDS(PLAYER::PLAYER_PED_ID(), (Any*)handles, -1);	if (handles != NULL)	{		for (int i = 0; i < count; i++)		{			int offsettedID = i * 2 + 2;			if (handles[offsettedID] != NULL && ENTITY::DOES_ENTITY_EXIST(handles[offsettedID]))			{				//the code you want to do to the ped			}		}	}
  • Like 1

Share this post


Link to post
Share on other sites
GeorgeZhang

is there a way to make ped immune to headshots? or reduce the damage of headshots?(with scipt of course)

Share this post


Link to post
Share on other sites
Lesnikus

Here's a list of bone indexes: http://pastebin.com/D7JMnX1g

How to use it? I tried everything. I used a different number:

Any iii = 31086; //or Any iii =1; Any iii = 18; etcif (PED::GET_PED_LAST_DAMAGE_BONE(peds[offsettedID], &iii)){	ENTITY::SET_ENTITY_HEALTH(playerPed, 0);}

The condition is triggered, regardless of the damaged bone (leg, arm, head, and so there is no difference). Why is that?

Share this post


Link to post
Share on other sites
InfamousSabre

A better question is: Why would it have worked that way at all? The function doesn't return anything other than: "Yes, this ped has a damaged bone." or "Nope, sorry. Couldn't find a damaged bone.".

It has one output parameter. This is the damaged bone. You call the function, then, if it found a damaged bone, check the variable you used for the output parameter.

Any bone;BOOL damaged;damaged = PED::GET_PED_LAST_DAMAGE_BONE(playerPed, &bone);if (damaged && bone == 31086)  //or == 1, or == 18, etc{	ENTITY::SET_ENTITY_HEALTH(playerPed, 0);}
Edited by InfamousSabre
  • Like 1

Share this post


Link to post
Share on other sites
Lesnikus

 

A better question is: Why would it have worked that way at all? The function doesn't return anything other than: "Yes, this ped has a damaged bone." or "Nope, sorry. Couldn't find a damaged bone.".

It has one output parameter. This is the damaged bone. You call the function, then, if it found a damaged bone, check the variable you used for the output parameter.

 

Any bone;BOOL damaged;damaged = PED::GET_PED_LAST_DAMAGE_BONE(playerPed, &bone);if (damaged && bone == 31086)  //or == 1, or == 18, etc{	ENTITY::SET_ENTITY_HEALTH(playerPed, 0);}

You are a genius! It works. But can we find out what damaged the bone? Bullet, collision with a car, fire ...

Share this post


Link to post
Share on other sites
InfamousSabre

As far as I know, no. Not without direct memory access anyway. Maybe one of those unknown natives though. Who knows?

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  

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