Jump to content

HughJanus

Recognized Creator
  • Posts

    830
  • Joined

  • Last visited

  • Days Won

    93

 Content Type 

Profiles

Forums

Gallery

Downloads

News Articles

Modding Wiki

RDR2 Native Database

RDR2 Native Parameters

RDR2 Player Clothes Database

RDR2 Ped Voices Database

RDR2 Ped Speech Lines

RDR2 Modding Tutorials

RDR2 Ped Model Database

RDR2 Animations Database

RDRFR Changelog

RDRFR Installation Guide

RDRFR Features

RDRFR Settings

LML User Contributions

Everything posted by HughJanus

  1. I think its "American Venom", if I remember correctly. Huge spoilers, though (if you havent played it yet^^).
  2. Would be cool if when you went to a gallow carrying someone who is hogtied, you could interact with a button, so the hogtied NPC gets into the noose. Then you can activate the lever like in the game mission.
  3. I didnt find this method in the native database (searched for "glow"). Where did you find it?
  4. Where did you put Lennys Simple Trainer? Because if it works, you have probably already put it into the root folder.
  5. 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.
  6. 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.
  7. 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
  8. 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).
  9. HughJanus

    ADD_ROPE

    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)
  10. 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.
  11. Describe your problem. UnknownOutlaw23 has already told you how to find the root folder. What are you talking about Lennys Simple Trainer?
  12. What a dumb mistake. The iterator has the same name as the counter for the peds, so it overwrote the counter.
  13. 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
  14. Depending on the language setting of your operating system, the "Program Data" folder may have a different name.
  15. 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^^
  16. 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.
  17. 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?
  18. Has anyone figured out any other bones yet? I think I found two more: right upper arm 46065 left upper arm 37873
  19. 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).
  20. 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%.
  21. 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.
  22. Press F9 in game and you should see a text appear on screen.
  23. 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.
  24. It didnt happen after the latest update, it was the one before that already erased some comments and descriptions.
  25. 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?
×
×
  • Create New...