Jump to content
View in the app

A better way to browse. Learn more.

RDR2Mods.com

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

HughJanus

Recognized Creator
  • Joined

  • Last visited

Everything posted by HughJanus

  1. I didnt find this method in the native database (searched for "glow"). Where did you find it?
  2. Where did you put Lennys Simple Trainer? Because if it works, you have probably already put it into the root folder.
  3. You mean the vanilla weapon glow for all pickup-able weapons? Havent looked into it, so I cant say if theres a way to disable it.
  4. Someone in the nexus forum apparently uploaded the files on mediafire: http://www.mediafire.com/file/uwa7nsoxxs6akbl/ScriptHookRDR2_1.0.1232.17.zip/file Have not downloaded and checked it, though. So be careful. And no, unfortunately there is no way around scripthook.
  5. The "problems" are not really problems but just the effects of the mod. If someone gets shot in the leg, he will stumble. These are the rules^^ We just added the option because we were asked to. Some people obviously wanted to take revenge on some characters which were excluded from the mod before :P
  6. I dont know how much of that will be possible (I guess you will need an OpenIV version which lets you edit game files). I wish you luck, and if you have any questions about RDR2 modding, this is probably the best site available (the guys who are making the first response mod are very knowledgeable and they help out here a lot).
  7. HughJanus commented on admin's native in PHYSICS
    Has anyone used that and can properly explain how to attach it e.g. to the arm of an NPC? (like arresting someone, handcuffing him and leading him with a rope to the sheriff)
  8. I agree. Havent found a way to do that, though. The trickiest part is lassoing someone by the neck. It only occurs 1% of the time or so, it seems.
  9. Describe your problem. UnknownOutlaw23 has already told you how to find the root folder. What are you talking about Lennys Simple Trainer?
  10. What a dumb mistake. The iterator has the same name as the counter for the peds, so it overwrote the counter.
  11. Now I have set some values to be shown on screen for the current target (the one the player is free aiming at / the last NPC he free aimed at). The damage done is the delta between the map and the current health - this increases steadily, the current health (ped health) decreases steadily. So it seems neither the map is updated, nor is the ped health increased. The max health is the max health of the ped (is correct), the last dam bone is also correct (the "Legbone" is just a value of the legbones vector, to see if it even aligns with the last dam bone, so the code for increasing the health is (should be) executed). To see if the code in those brackets (increasing health, updating the map) even triggers, I wrote a draw text function in each bracket (one for leg (YOLOYOLOYOLO_LEG), one for arm (YOLOYOLOYOLO_ARM), etc.) and the text gets drawn, so the health should also be increased and the map should be updated. But it doesnt happen for some reason. I even tried setting the health to a fixed value to increase it to (ENTITY::SET_ENTITY_HEALTH(peds, 100)), but that doesnt change anything. Those two methods dont seem to work in those brackets: pedmaplimbhealth[peds[i]] = ENTITY::GET_ENTITY_HEALTH(peds[i]); ENTITY::SET_ENTITY_HEALTH
  12. Depending on the language setting of your operating system, the "Program Data" folder may have a different name.
  13. I havent checked, but I dont suppose that is the case. I guess I made a mistake in the logic I use, but I cant seem to find it. I even wrote it down on paper, but it all checks out^^
  14. I am first getting the health of the NPC and am saving it to the map (the map does not get touched after that). Then, every script iteration I do a "get health" and check if its less than the value remembered in the map. If so, I calculate the delta. Then I check the last bone that was damaged and multiply the delta according to the modifier for the specific body part and give that number of health back. (so e.g. if an NPC lost 10 health and the leg was last damaged, 9 health should be given back to him, if the modifier for the leg is 90% or 0.9). After that, I set the map to the current health and the whole thing triggers again when the health is lowered.
  15. What I am trying to do is giving back health to NPCs if they got hit in certain bones - this way I try to implement body part specific damage. Example: if NPC01 was hit in the leg, check how much health it lost and give it back a part of it. Somehow it wont work, though. Here is the code I am using: //modifiers for health not deducted for the affected body parts float ini_legdamagemod = 0.99; // 99% of deducted health will be given back float ini_armdamagemod = 0.99; // 99% of deducted health will be given back float ini_torsodamagemod = 0.0; // 0% of deducted health will be given back float ini_headdamagemod = 0.0; // 0% of deducted health will be given back float ini_neckdamagemod = 0.0; // 0% of deducted health will be given back //container for peds and a health value to calculate the body part damage std::map<Ped, int> pedmaplimbhealth; //container for affected bones vector<int> legbones, armbones, torsobones, headbones, neckbones; legbones.push_back(6884); legbones.push_back(65478); legbones.push_back(51120); legbones.push_back(33646); legbones.push_back(43312); armbones.push_back(54187); armbones.push_back(53675); armbones.push_back(41357); armbones.push_back(41341); armbones.push_back(41405); armbones.push_back(41326); armbones.push_back(41325); armbones.push_back(35876); armbones.push_back(16829); armbones.push_back(16781); armbones.push_back(16765); armbones.push_back(16749); armbones.push_back(11300); torsobones.push_back(14410); torsobones.push_back(14411); torsobones.push_back(14412); torsobones.push_back(14413); torsobones.push_back(14414); torsobones.push_back(14415); headbones.push_back(21030); neckbones.push_back(14284); neckbones.push_back(14285); neckbones.push_back(14286); neckbones.push_back(14287); neckbones.push_back(14288); while(true) { if (MOD IS ENABLED) { //get all peds near player const int ARR_SIZE = 1024; Ped peds[ARR_SIZE]; int count = worldGetAllPeds(peds, ARR_SIZE); //filling the ped container for (int i = 0; i < count; i++) { if (pedmaplimbhealth.find(peds[i]) == pedmaplimbhealth.end()) { pedmaplimbhealth[peds[i]] = ENTITY::GET_ENTITY_HEALTH(peds[i]); } } //checking if ped health has decreased and if so, give health back according to modifiers if (pedmaplimbhealth[peds[i]] > ENTITY::GET_ENTITY_HEALTH(peds[i])) { float damagedone = pedmaplimbhealth[peds[i]] - ENTITY::GET_ENTITY_HEALTH(peds[i]); int act_Bone; if (PED::GET_PED_LAST_DAMAGE_BONE(peds[i], &act_Bone)) { for (vector<int>::size_type i = 0; i != legbones.size(); i++) { if (act_Bone == PED::GET_PED_BONE_INDEX(peds[i], legbones[i])) { int healthback = (int)(damagedone * ini_legdamagemod); if (ENTITY::GET_ENTITY_HEALTH(peds[i]) < ini_dyingmovementthreshold && (healthback + ENTITY::GET_ENTITY_HEALTH(peds[i])) > ini_dyingmovementthreshold) ENTITY::SET_ENTITY_HEALTH(peds[i], ini_dyingthreshold - 1, 0); else ENTITY::SET_ENTITY_HEALTH(peds[i], ENTITY::GET_ENTITY_HEALTH(peds[i]) + healthback, 0); pedmaplimbhealth[peds[i]] = ENTITY::GET_ENTITY_HEALTH(peds[i]); PED::CLEAR_PED_LAST_DAMAGE_BONE(peds[i]); } } for (vector<int>::size_type i = 0; i != armbones.size(); i++) { if (act_Bone == PED::GET_PED_BONE_INDEX(peds[i], armbones[i])) { int healthback = (int)(damagedone * ini_armdamagemod); if (ENTITY::GET_ENTITY_HEALTH(peds[i]) < ini_dyingmovementthreshold && (healthback + ENTITY::GET_ENTITY_HEALTH(peds[i])) > ini_dyingmovementthreshold) ENTITY::SET_ENTITY_HEALTH(peds[i], ini_dyingthreshold - 1, 0); else ENTITY::SET_ENTITY_HEALTH(peds[i], ENTITY::GET_ENTITY_HEALTH(peds[i]) + healthback, 0); pedmaplimbhealth[peds[i]] = ENTITY::GET_ENTITY_HEALTH(peds[i]); PED::CLEAR_PED_LAST_DAMAGE_BONE(peds[i]); } } for (vector<int>::size_type i = 0; i != torsobones.size(); i++) { if (act_Bone == PED::GET_PED_BONE_INDEX(peds[i], torsobones[i])) { int healthback = (int)(damagedone * ini_torsodamagemod); if (ENTITY::GET_ENTITY_HEALTH(peds[i]) < ini_dyingmovementthreshold && (healthback + ENTITY::GET_ENTITY_HEALTH(peds[i])) > ini_dyingmovementthreshold) ENTITY::SET_ENTITY_HEALTH(peds[i], ini_dyingthreshold - 1, 0); else ENTITY::SET_ENTITY_HEALTH(peds[i], ENTITY::GET_ENTITY_HEALTH(peds[i]) + healthback, 0); pedmaplimbhealth[peds[i]] = ENTITY::GET_ENTITY_HEALTH(peds[i]); PED::CLEAR_PED_LAST_DAMAGE_BONE(peds[i]); } } for (vector<int>::size_type i = 0; i != headbones.size(); i++) { if (act_Bone == PED::GET_PED_BONE_INDEX(peds[i], headbones[i])) { int healthback = (int)(damagedone * ini_headdamagemod); if (ENTITY::GET_ENTITY_HEALTH(peds[i]) < ini_dyingmovementthreshold && (healthback + ENTITY::GET_ENTITY_HEALTH(peds[i])) > ini_dyingmovementthreshold) ENTITY::SET_ENTITY_HEALTH(peds[i], ini_dyingthreshold - 1, 0); else ENTITY::SET_ENTITY_HEALTH(peds[i], ENTITY::GET_ENTITY_HEALTH(peds[i]) + healthback, 0); pedmaplimbhealth[peds[i]] = ENTITY::GET_ENTITY_HEALTH(peds[i]); PED::CLEAR_PED_LAST_DAMAGE_BONE(peds[i]); } } for (vector<int>::size_type i = 0; i != neckbones.size(); i++) { if (act_Bone == PED::GET_PED_BONE_INDEX(peds[i], neckbones[i])) { int healthback = (int)(damagedone * ini_neckdamagemod); if (ENTITY::GET_ENTITY_HEALTH(peds[i]) < ini_dyingmovementthreshold && (healthback + ENTITY::GET_ENTITY_HEALTH(peds[i])) > ini_dyingmovementthreshold) ENTITY::SET_ENTITY_HEALTH(peds[i], ini_dyingthreshold - 1, 0); else ENTITY::SET_ENTITY_HEALTH(peds[i], ENTITY::GET_ENTITY_HEALTH(peds[i]) + healthback, 0); pedmaplimbhealth[peds[i]] = ENTITY::GET_ENTITY_HEALTH(peds[i]); PED::CLEAR_PED_LAST_DAMAGE_BONE(peds[i]); } } } } } } For some reason the NPCs still keep dying from three or four leg shots (if health is set to 100). Does anyone have any idea why that is the case?
  16. Has anyone figured out any other bones yet? I think I found two more: right upper arm 46065 left upper arm 37873
  17. To be honest, we never tested it that thoroughly to be able to really pinpoint the exact way this variable works. Our testing was more a comparison of different values. If I say 70%, I mean the value is 70 in the ini. I suppose that 100 is the usual value, but we have not verified that. You can try standing 100m away from an NPC with a setting of 100 and then 200 and see if that really doubles the accuracy. The whole thing also depends on the distance between the shooting NPC and the player (the closer the NPC is, the more often its shots hit the target).
  18. You have to try what suits your playstyle. I have increased the amount of damage NPC weapons do to 220% and have lowered the accuracy to 70%.
  19. The behavior you described is a combination of an artery shot and the dying stage. If you shoot an NPC the way your crosshair turns red (in vanilla the NPC then would always start coughing and running around bleeding) and you manage to get its health below the DyingMovementThreshold, it will go into one of the Dying States which will make it roll around (still bleeding and coughing from the artery shot. So if you want that behavior, aim for the neck or the pelvis (those two spots seem to produce artery shots the most) and if the NPC starts walking around, coughing, just shoot its legs and it will go down and go into the behavior you want.
  20. Press F9 in game and you should see a text appear on screen.
  21. Not that I know of. But what should it do? I suppose you want to be able to configure melee damage for both the player and NPCs and also the health. What else? Maybe we can implement some ideas into this mod, if it doesnt drift off too far from the current scope.
  22. It didnt happen after the latest update, it was the one before that already erased some comments and descriptions.
  23. It seems some information from earlier is still missing (e.g. in the native PLAY_PAIN there was a description with the painIDs which is missing). Is there any way to fix that or did you overwrite earlier comments and descriptions while updating?
  24. In v1.42 of Ped Damage Overhaul, you can alter the accuracy in the ini. It will be released this weekend. Edit: And NPC and player weapon damage can be adjusted already in Ped Damage Overhaul. Edit 2: v1.42 released already 🙂
  25. My solution currently looks as follows: Hash pedweaphash; Vector3 vec = ENTITY::GET_WORLD_POSITION_OF_ENTITY_BONE(peds[i], PED::GET_PED_BONE_INDEX(peds[i], 11300)); WEAPON::GET_CURRENT_PED_WEAPON(peds[i], &pedweaphash, false, 0, false); WEAPON::SET_PED_DROPS_INVENTORY_WEAPON(peds[i], pedweaphash, vec.x, vec.y, vec.z, 30); So I first get the position of the right hand, then I get the current ped weapon and then I drop the current weapon out of the peds inventory at the position of the right hand. The drawbacks of this method is that weapons dropped this way appear partly invisible and they are also marked with a "weapon pickup" symbol on the radar. In GTA 5 there is this native (which only needs a ped parameter and then makes the ped drop the current weapon - no drawbacks): void SET_PED_DROPS_WEAPON(Ped ped) // 0x6B7513D9966FBEC0 0x3D3329FA Has anyone found this one in RDR 2 yet?

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.