Posted February 16, 20205 yr 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, 20205 yr by HughJanus
February 16, 20205 yr Author 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);
February 16, 20205 yr 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.
February 16, 20205 yr Author 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);
February 16, 20205 yr 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.
February 21, 20205 yr Author 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^^
February 21, 20205 yr On 2/21/2020 at 10:52 AM, 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".
March 14, 20205 yr 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
March 15, 20205 yr Author On 3/14/2020 at 6:07 PM, 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?
December 31, 20213 yr On 3/15/2020 at 3: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? My Fallout 4 and Skyrim mods: SAC - LoversLab
January 1, 20223 yr Author On 12/31/2021 at 9:51 PM, 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);
January 1, 20223 yr On 1/1/2022 at 12:26 PM, 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. My Fallout 4 and Skyrim mods: SAC - LoversLab
January 1, 20223 yr Author On 1/1/2022 at 3:09 PM, 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?
January 1, 20223 yr On 1/1/2022 at 5:53 PM, 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 My Fallout 4 and Skyrim mods: SAC - LoversLab
January 2, 20223 yr On 1/1/2022 at 5:53 PM, HughJanus said: I know there is a native with which you can send a ped to a position. Would that suffice? So, which native? My Fallout 4 and Skyrim mods: SAC - LoversLab
January 2, 20223 yr Author On 1/2/2022 at 4:35 PM, 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 😕
January 3, 20223 yr 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, 20223 yr by crossed99
January 5, 20223 yr On 1/3/2022 at 5: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? My Fallout 4 and Skyrim mods: SAC - LoversLab
January 6, 20223 yr 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, 20223 yr by crossed99
January 6, 20223 yr On 1/6/2022 at 10:03 AM, 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? My Fallout 4 and Skyrim mods: SAC - LoversLab
January 6, 20223 yr 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, 20223 yr by crossed99
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.