HughJanus 244 Posted February 16, 2020 Share Posted February 16, 2020 (edited) I cant get the fleeing to work. I have tried AI::TASK_SMART_FLEE_PED(peds, playerPed, 100.0f, 100, false, false, 0); AI::TASK_SMART_FLEE_PED(peds, playerPed, 100.0f, 100, true, false, 0); AI::TASK_SMART_FLEE_PED(peds, playerPed, 100.0f, 100, false, true, 0); AI::TASK_SMART_FLEE_PED(peds, playerPed, 100.0f, 100, true, true, 0); But the NPCs only turn their back on me but keep standing still. When using the cowering task, it looks like NPCs are doing squats (they cower, get up, cower, get up,..): AI::TASK_COWER(peds, 50, 0, 0); AI::TASK_COWER(peds, 50, 1, 0); I have also tried this method, but it makes NPCs run in one direction, crashing into trees, stones, objects, etc.: AI::_0xE86A537B5A3C297C(peds, playerPed); Does anyone know how to make a ped flee or cower properly? Edited March 26, 2020 by HughJanus Quote Link to comment Share on other sites More sharing options...
HughJanus 244 Posted February 16, 2020 Author Share Posted February 16, 2020 This is my solution (dont know how or why, but after testing with several different values, this is it): AI::_0x7B74D8EEDE9B5727(peds, playerPed, 100.0f, 0.0f, 0.0f, 0.0f, 0, 0, 1500.0f, 0); Quote Link to comment Share on other sites More sharing options...
LMS 674 Posted February 16, 2020 Share Posted February 16, 2020 I've used this one successfully (_TASK_SMART_FLEE_STYLE_PED): 0xFD45175A6DFD7CE9(ped, pedToFleeFrom, 3, 0, -1.0f, -1, 0); It is also important to note that fleeing behavior can be altered using flags, but I don't think those are documented yet. 1 Quote Link to comment Share on other sites More sharing options...
HughJanus 244 Posted February 16, 2020 Author Share Posted February 16, 2020 With the one from above (my post) the ped will flee sprinting away from the playerPed. What does yours do? Do you know any of the flags? Cowering works for me this way: AI::TASK_COWER(peds, 50, 1, 0); Quote Link to comment Share on other sites More sharing options...
LMS 674 Posted February 16, 2020 Share Posted February 16, 2020 Mine does essentially the same, not sure about the internal differences. And no, unfortunately I do not know about the flags, but hopefully someone will clear that up soon. Quote Link to comment Share on other sites More sharing options...
HughJanus 244 Posted February 21, 2020 Author Share Posted February 21, 2020 If I use your method, the fleeing ped returns after a few minutes and wants to attack me. If I use the value 4 instead of 3, it doesnt. Just for information^^ Quote Link to comment Share on other sites More sharing options...
LMS 674 Posted February 21, 2020 Share Posted February 21, 2020 3 hours ago, HughJanus said: If I use your method, the fleeing ped returns after a few minutes and wants to attack me. If I use the value 4 instead of 3, it doesnt. Just for information^^ Interesting, it could be a fleeing style then (potentially bitfield). I think I got mine from the game scripts, I wonder why they chose that value then. Maybe 3 is something like "flee but still react to new threats" whereas 4 would be just "flee forever". Quote Link to comment Share on other sites More sharing options...
adv0cate 6 Posted March 14, 2020 Share Posted March 14, 2020 i use void combat_state(Ped ped, Ped player) { PED::SET_PED_COMBAT_RANGE(ped, 2); PED::SET_PED_COMBAT_MOVEMENT(ped, 2); PED::SET_PED_COMBAT_ATTRIBUTES(ped, 28, true); PED::SET_PED_COMBAT_ATTRIBUTES(ped, 50, true); WEAPON::SET_PED_DROPS_WEAPONS_WHEN_DEAD(ped, false); PED::SET_PED_FLEE_ATTRIBUTES(ped, 32768, false); PED::SET_PED_FLEE_ATTRIBUTES(ped, 16384, true); PED::SET_PED_FLEE_ATTRIBUTES(ped, 512, true); PED::SET_PED_FLEE_ATTRIBUTES(ped, 1024, true); PED::SET_PED_COMBAT_ATTRIBUTES(ped, 5, true); PED::SET_PED_COMBAT_ATTRIBUTES(ped, 17, false); PED::SET_PED_COMBAT_ATTRIBUTES(ped, 14, false); PED::SET_PED_COMBAT_ATTRIBUTES(ped, 58, true); PED::SET_PED_COMBAT_ATTRIBUTES(ped, 46, true); PED::SET_PED_CONFIG_FLAG(ped, 225, false); TASK::TASK_COMBAT_PED(ped, player, 0, 0); PED::SET_PED_KEEP_TASK(ped, 1); } to make them not flee xd most peds flee on there own Quote Link to comment Share on other sites More sharing options...
HughJanus 244 Posted March 15, 2020 Author Share Posted March 15, 2020 21 hours ago, adv0cate said: i use void combat_state(Ped ped, Ped player) { PED::SET_PED_COMBAT_RANGE(ped, 2); PED::SET_PED_COMBAT_MOVEMENT(ped, 2); PED::SET_PED_COMBAT_ATTRIBUTES(ped, 28, true); PED::SET_PED_COMBAT_ATTRIBUTES(ped, 50, true); WEAPON::SET_PED_DROPS_WEAPONS_WHEN_DEAD(ped, false); PED::SET_PED_FLEE_ATTRIBUTES(ped, 32768, false); PED::SET_PED_FLEE_ATTRIBUTES(ped, 16384, true); PED::SET_PED_FLEE_ATTRIBUTES(ped, 512, true); PED::SET_PED_FLEE_ATTRIBUTES(ped, 1024, true); PED::SET_PED_COMBAT_ATTRIBUTES(ped, 5, true); PED::SET_PED_COMBAT_ATTRIBUTES(ped, 17, false); PED::SET_PED_COMBAT_ATTRIBUTES(ped, 14, false); PED::SET_PED_COMBAT_ATTRIBUTES(ped, 58, true); PED::SET_PED_COMBAT_ATTRIBUTES(ped, 46, true); PED::SET_PED_CONFIG_FLAG(ped, 225, false); TASK::TASK_COMBAT_PED(ped, player, 0, 0); PED::SET_PED_KEEP_TASK(ped, 1); } to make them not flee xd most peds flee on there own Could you explain your code? What do the flags and attributes mean? Quote Link to comment Share on other sites More sharing options...
SAC 28 Posted December 31, 2021 Share Posted December 31, 2021 On 3/15/2020 at 5:26 PM, HughJanus said: Could you explain your code? What do the flags and attributes mean? Is this solved? How do you make the ped flee? Quote My Fallout 4 and Skyrim mods: SAC - LoversLab Link to comment Share on other sites More sharing options...
HughJanus 244 Posted January 1, 2022 Author Share Posted January 1, 2022 14 hours ago, SAC said: Is this solved? How do you make the ped flee? I use this native: static void xTASK_FLEE(Any p0, Any p1, Any p2, Any p3, float p4, Any p5, Any p6) { invoke<Void>(0xFD45175A6DFD7CE9, p0, p1, p2, p3, p4, p5, p6); } Like this: AI::xTASK_FLEE(PedToFlee, PedToFleeFrom, 4, 0, -1.0f, -1, 0); Quote Link to comment Share on other sites More sharing options...
SAC 28 Posted January 1, 2022 Share Posted January 1, 2022 2 hours ago, HughJanus said: I use this native: static void xTASK_FLEE(Any p0, Any p1, Any p2, Any p3, float p4, Any p5, Any p6) { invoke<Void>(0xFD45175A6DFD7CE9, p0, p1, p2, p3, p4, p5, p6); } Like this: AI::xTASK_FLEE(PedToFlee, PedToFleeFrom, 4, 0, -1.0f, -1, 0); I found this one, does the trick (ped runs away from itself, basically random fleeing) TASK::CLEAR_PED_TASKS_IMMEDIATELY(ped, false, false); TASK::TASK_SMART_FLEE_PED(ped, ped, -1, -1, 0, 3.0f, 0); Now what I'd like to do is make peds flee towards the PC. Quote My Fallout 4 and Skyrim mods: SAC - LoversLab Link to comment Share on other sites More sharing options...
HughJanus 244 Posted January 1, 2022 Author Share Posted January 1, 2022 2 hours ago, SAC said: I found this one, does the trick (ped runs away from itself, basically random fleeing) TASK::CLEAR_PED_TASKS_IMMEDIATELY(ped, false, false); TASK::TASK_SMART_FLEE_PED(ped, ped, -1, -1, 0, 3.0f, 0); Now what I'd like to do is make peds flee towards the PC. I know there is a native with which you can send a ped to a position. Would that suffice? Quote Link to comment Share on other sites More sharing options...
SAC 28 Posted January 1, 2022 Share Posted January 1, 2022 1 hour ago, HughJanus said: I know there is a native with which you can send a ped to a position. Would that suffice? Probably, I'll pass it the PC position Quote My Fallout 4 and Skyrim mods: SAC - LoversLab Link to comment Share on other sites More sharing options...
SAC 28 Posted January 2, 2022 Share Posted January 2, 2022 22 hours ago, HughJanus said: I know there is a native with which you can send a ped to a position. Would that suffice? So, which native? Quote My Fallout 4 and Skyrim mods: SAC - LoversLab Link to comment Share on other sites More sharing options...
HughJanus 244 Posted January 2, 2022 Author Share Posted January 2, 2022 2 hours ago, SAC said: So, which native? Oh, I thought you were already trying stuff, sorry. I have not used these functions, so I cant give any instructions on how to use them, unfortunately 😕 1 Quote Link to comment Share on other sites More sharing options...
crossed99 43 Posted January 3, 2022 Share Posted January 3, 2022 (edited) TASK::TASK_GO_TO_COORD_ANY_MEANS(ped, coords.x, coord.y, coord.z, 1.0f, 0, 0, 786603, 0xbf800000); TASK::TASK_FOLLOW_NAV_MESH_TO_COORD(ped, coords.x, coord.y, coord.z, 1.0f, -1, 0.5f, 1048580, 40000.0f); These are the ones I'm using. The params are: ped, coordinates, speed, timeout I think but not use, don't know the rest... 1.0 is walk speed, 2.0 should be jog and 3.0 is sprint. edit: oh the parameter after the timeout I think is how close they're supposed to stop to the given coords. 0 is exactly the coords. Edited January 3, 2022 by crossed99 1 Quote Link to comment Share on other sites More sharing options...
SAC 28 Posted January 5, 2022 Share Posted January 5, 2022 On 1/3/2022 at 7:00 PM, crossed99 said: TASK::TASK_GO_TO_COORD_ANY_MEANS(ped, coords.x, coord.y, coord.z, 1.0f, 0, 0, 786603, 0xbf800000); TASK::TASK_FOLLOW_NAV_MESH_TO_COORD(ped, coords.x, coord.y, coord.z, 1.0f, -1, 0.5f, 1048580, 40000.0f); These are the ones I'm using. The params are: ped, coordinates, speed, timeout I think but not use, don't know the rest... 1.0 is walk speed, 2.0 should be jog and 3.0 is sprint. edit: oh the parameter after the timeout I think is how close they're supposed to stop to the given coords. 0 is exactly the coords. Vector3 playerpos = ENTITY::GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(PLAYER::PLAYER_PED_ID(), 0.0f + 5, 0.0f + 5, 0.0f + 0); TASK::TASK_GO_TO_COORD_ANY_MEANS(ped, playerpos.x, playerpos.y, playerpos.z, 3.0f, 0, 0, 3, 0); This works just fine (the offset is just cosmetic so they don't run into the player). Questions is how to make them do some other stuff when they complete the walking. The "go to coord" function does not return a bool on completion - I suppose a while which breaks only when coordinates are near the player? Quote My Fallout 4 and Skyrim mods: SAC - LoversLab Link to comment Share on other sites More sharing options...
crossed99 43 Posted January 6, 2022 Share Posted January 6, 2022 (edited) Yes, I guess something like checking if he's moving with TASK::IS_PED_STILL and waiting until he stopped should work but you can also do a sequence of actions like this: int changePosSeq; TASK::OPEN_SEQUENCE_TASK(&changePosSeq); TASK::CLEAR_PED_TASKS(0, 1, 1); TASK::TASK_FOLLOW_NAV_MESH_TO_COORD(0, guardPos.x, guardPos.y, guardPos.z, 0.8f, -1, 0.05f, 1048580, 40000.0f); TASK::TASK_ACHIEVE_HEADING(0, guardPos.h, 1500); TASK::TASK_START_SCENARIO_IN_PLACE_HASH(0, MICS::GET_HASH_KEY(scenario), -1, true, true, 0.0f, true); TASK::CLOSE_SEQUENCE_TASK(changePosSeq); TASK::TASK_PERFORM_SEQUENCE(ped, changePosSeq); TASK::CLEAR_SEQUENCE_TASK(&changePosSeq); I use this in my gang hideouts to make them move around and do stuff. Put zeros in the sequence in place of the ped handles, only use the actual ped in the perform sequence line. Edited January 6, 2022 by crossed99 1 Quote Link to comment Share on other sites More sharing options...
SAC 28 Posted January 6, 2022 Share Posted January 6, 2022 1 hour ago, crossed99 said: I use this in my gang hideouts to make them move around and do stuff. Put zeros in the sequence in place of the ped handles, only use the actual ped in the perform sequence line. Will this sequence execution block the rest of the script until it completes, or does it execute as a parallel thread? Quote My Fallout 4 and Skyrim mods: SAC - LoversLab Link to comment Share on other sites More sharing options...
crossed99 43 Posted January 6, 2022 Share Posted January 6, 2022 (edited) No, it doesn't block the rest, you can do anything else while the ped is doing the sequence. Also, you don't have to clear the sequence immediately like I did, you can use the same sequence multiple times. Edited January 6, 2022 by crossed99 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.