MagicStyle Posted June 3, 2015 Share Posted June 3, 2015 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) Link to comment Share on other sites More sharing options...
Jitnaught Posted June 3, 2015 Share Posted June 3, 2015 (edited) 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 June 3, 2015 by LetsPlayOrDy MagicStyle 1 Link to comment Share on other sites More sharing options...
c39687 Posted June 3, 2015 Share Posted June 3, 2015 getting the bone damaged from a dead ped worked fine for me in iv MagicStyle 1 Link to comment Share on other sites More sharing options...
MagicStyle Posted June 5, 2015 Author Share Posted June 5, 2015 (edited) 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 June 5, 2015 by MagicStyle Link to comment Share on other sites More sharing options...
Jitnaught Posted June 6, 2015 Share Posted June 6, 2015 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 } } } MagicStyle 1 Link to comment Share on other sites More sharing options...
GeorgeZhang Posted July 18, 2015 Share Posted July 18, 2015 is there a way to make ped immune to headshots? or reduce the damage of headshots?(with scipt of course) Link to comment Share on other sites More sharing options...
Foxtrot64 Posted July 18, 2015 Share Posted July 18, 2015 Here's a list of bone indexes: http://pastebin.com/D7JMnX1g Lesnikus 1 Link to comment Share on other sites More sharing options...
Lesnikus Posted August 14, 2015 Share Posted August 14, 2015 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? Link to comment Share on other sites More sharing options...
InfamousSabre Posted August 14, 2015 Share Posted August 14, 2015 (edited) 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 August 14, 2015 by InfamousSabre Lesnikus 1 Link to comment Share on other sites More sharing options...
Lesnikus Posted August 14, 2015 Share Posted August 14, 2015 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 ... Link to comment Share on other sites More sharing options...
InfamousSabre Posted August 15, 2015 Share Posted August 15, 2015 As far as I know, no. Not without direct memory access anyway. Maybe one of those unknown natives though. Who knows? Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now