HELLO Does anyone know how to MAKE IT WHERE NPC ONLY CHASE A USER FROM A CERTAIN TEAM, for eXAMPLE TEAM 2 IS THE ONLY TEAM THAT CAN BE CHASED AND TRACKED DOWN BY NPC.
THIS IS THE CURRENT CODE: using { /Fortnite.com/AI }
using { /Verse.org/Simulation }
using { /Fortnite.com/Characters }
using { /Fortnite.com/Animation/PlayAnimation }
using { /Verse.org/Assets }
using { /UnrealEngine.com/Temporary/SpatialMath }
Trexbehavior := class(npc_behavior):
BehaviorHelp : BehaviorHelper = BehaviorHelper{}
var Attack1 : animation_sequence = Trex_stuff.attack_tail
# This function runs when the NPC is spawned in the world and ready to follow a behavior.
OnBegin<override>()<suspends>:void=
if:
NPCAgent := GetAgent[]
NPCChar := NPCAgent.GetFortCharacter[]
NPCNav := NPCChar.GetNavigatable[]
NPCFocus := NPCChar.GetFocusInterface[]
NPCAnim := NPCChar.GetPlayAnimationController[]
then:
NPCSpawnPoint := NPCChar.GetTransform().Translation
loop:
Sleep(0.1)
if(not NPCChar.IsActive[]):
break
if(NewTarget := BehaviorHelp.FindNearestTarget[NPCChar],NewAgent := NewTarget.GetAgent[]):
spawn{NPCFocus.MaintainFocus(NewAgent)}
NavTarget := MakeNavigationTarget(NewAgent)
NPCNav.NavigateTo(NavTarget , ?MovementType := movement_types.Running, ?ReachRadius := 25.0)
NPCAnim.Play(Attack1)
Sleep(1.32)
if(Distance(NPCChar.GetTransform().Translation, NewTarget.GetTransform().Translation) < 200.0):
NewTarget.Damage(50.0)
Is it possible where it does not attack all players but only players in a certaiin TEAM!!!
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
using { /Fortnite.com/Characters }
using { /UnrealEngine.com/Temporary/SpatialMath }
See Create Your Own Device Using Verse | Unreal Editor for Fortnite Documentation | Epic Developer Community for how to create a verse device.
A Verse-authored creative device that can be placed in a level
BehaviorHelper := class(creative_device):
FindNearestTarget(FC : fort_character)<decides><transacts> : fort_character =
var MaybeTarget : ?fort_character = false
var CheckRange : float = 5000.0
for(Player : GetPlayspace().GetPlayers(), PlayerFC := Player.GetFortCharacter[]):
if:
DistanceDiffernce := Distance(PlayerFC.GetTransform().Translation, FC.GetTransform().Translation) < CheckRange
not PlayerFC = FC
then:
set MaybeTarget = option{PlayerFC}
set CheckRange = DistanceDiffernce
return MaybeTarget?