Hi.
I want get the name of pawn that I'm aiming. What function I should use for this?
Thanks.
I want get the name of pawn that I'm aiming. What function I should use for this?
Thanks.
function string GetAimTargetPlayerName() { local Pawn P, PawnOwner; local actor HitActor; local vector HitLocation, HitNormal, StartTrace, EndTrace, PawnToPawn; PawnOwner = PlayerOwner.Pawn; if (PawnOwner == None) return ""; StartTrace = PawnOwner.Location; foreach WorldInfo.AllPawns(class'Pawn', P) { if (P != PawnOwner) { PawnToPawn = P.Location - StartTrace; // fast check to see if aim is within 60 degrees if (0.5 < (Normal(PawnToPawn) dot vector(PlayerOwner.Rotation))) { // perform actual trace to make sure pawn is exactly on crosshair EndTrace = StartTrace + (VSize(PawnToPawn) * 1.1) * vector(PlayerOwner.Rotation); HitActor = MyPawnOwner.Trace(HitLocation, HitNormal, EndTrace, StartTrace, true); if ( Pawn(HitActor) == None ) { // might still have hit pawn's weapon or such HitActor = (HitActor == None) ? None : Pawn(HitActor.Base); } if (Pawn(HitActor) != None && Pawn(HitActor).PlayerReplicationInfo != None) { return Pawn(HitActor).PlayerReplicationInfo.PlayerName; } } } } return ""; }
function string GetAimTargetPlayerName() { local Pawn P, PawnOwner; local actor HitActor; local vector HitLocation, HitNormal, StartTrace, EndTrace, PawnToPawn; PawnOwner = PlayerOwner.Pawn; if (PawnOwner == None) return ""; StartTrace = PawnOwner.Location; foreach WorldInfo.AllPawns(class'Pawn', P) { if (P != PawnOwner) { PawnToPawn = P.Location - StartTrace; // fast check to see if aim is within 60 degrees if (0.5 < (Normal(PawnToPawn) dot vector(PlayerOwner.Rotation))) { // perform actual trace to make sure pawn is exactly on crosshair EndTrace = StartTrace + (VSize(PawnToPawn) * 1.1) * vector(PlayerOwner.Rotation); HitActor = MyPawnOwner.Trace(HitLocation, HitNormal, EndTrace, StartTrace, true); if ( Pawn(HitActor) == None ) { // might still have hit pawn's weapon or such HitActor = (HitActor == None) ? None : Pawn(HitActor.Base); } if (Pawn(HitActor) != None && Pawn(HitActor).PlayerReplicationInfo != None) { return Pawn(HitActor).PlayerReplicationInfo.PlayerName; } } } } return ""; }
class ChallengeHUD extends HUD config; var float IdentifyFadeTime; var PlayerReplicationInfo IdentifyTarget; var Pawn PawnOwner; // pawn currently managing this HUD (may be the viewtarget of the owner rather than the owner) .... simulated function bool TraceIdentify(canvas Canvas) // you could modify this here to return the PlayerReplicationInfo instead... { local actor Other; local vector HitLocation, HitNormal, StartTrace, EndTrace; StartTrace = PawnOwner.Location; StartTrace.Z += PawnOwner.BaseEyeHeight; EndTrace = StartTrace + vector(PawnOwner.ViewRotation) * 1000.0; Other = Trace(HitLocation, HitNormal, EndTrace, StartTrace, true); if ( Pawn(Other) != None ) { if ( Pawn(Other).bIsPlayer && !Other.bHidden ) { IdentifyTarget = Pawn(Other).PlayerReplicationInfo; IdentifyFadeTime = 3.0; } } else if ( (Other != None) && SpecialIdentify(Canvas, Other) ) return false; if ( (IdentifyFadeTime == 0.0) || (IdentifyTarget == None) || IdentifyTarget.bFeigningDeath ) return false; return true; }
simulated function string TracePawnIdentify(canvas Canvas) { local actor Other; local vector HitLocation, HitNormal, StartTrace, EndTrace; StartTrace = PawnOwner.GetPawnViewLocation(); EndTrace = StartTrace + vector(PawnOwner.GetViewRotation()) * 1000.0; Other = Trace(HitLocation, HitNormal, EndTrace, StartTrace, true,,,TRACEFLAG_Blocking); if ( Pawn(Other) != None ) { return Other.GetHumanReadableName(); } return ""; }
class ChallengeHUD extends HUD config; var float IdentifyFadeTime; var PlayerReplicationInfo IdentifyTarget; var Pawn PawnOwner; // pawn currently managing this HUD (may be the viewtarget of the owner rather than the owner) .... simulated function bool TraceIdentify(canvas Canvas) // you could modify this here to return the PlayerReplicationInfo instead... { local actor Other; local vector HitLocation, HitNormal, StartTrace, EndTrace; StartTrace = PawnOwner.Location; StartTrace.Z += PawnOwner.BaseEyeHeight; EndTrace = StartTrace + vector(PawnOwner.ViewRotation) * 1000.0; Other = Trace(HitLocation, HitNormal, EndTrace, StartTrace, true); if ( Pawn(Other) != None ) { if ( Pawn(Other).bIsPlayer && !Other.bHidden ) { IdentifyTarget = Pawn(Other).PlayerReplicationInfo; IdentifyFadeTime = 3.0; } } else if ( (Other != None) && SpecialIdentify(Canvas, Other) ) return false; if ( (IdentifyFadeTime == 0.0) || (IdentifyTarget == None) || IdentifyTarget.bFeigningDeath ) return false; return true; }
simulated function string TracePawnIdentify(canvas Canvas) { local actor Other; local vector HitLocation, HitNormal, StartTrace, EndTrace; StartTrace = PawnOwner.GetPawnViewLocation(); EndTrace = StartTrace + vector(PawnOwner.GetViewRotation()) * 1000.0; Other = Trace(HitLocation, HitNormal, EndTrace, StartTrace, true,,,TRACEFLAG_Blocking); if ( Pawn(Other) != None ) { return Other.GetHumanReadableName(); } return ""; }
Comment