Core.Object | +--Engine.Actor | +--Engine.Pawn | +--Engine.PlayerPawn | +--Engine.Spectator | +--Botpack.CHSpectator
Actor
OldTarget
void
Fire(optional float)
FixFOV()
Jump(optional float)
NextWeapon()
PrevWeapon()
Verbose()
ViewPlayerNum(optional int)
ViewSelf()
00001 //============================================================================= 00002 // CHSpectator. 00003 //============================================================================= 00004 class CHSpectator extends Spectator; 00005 00006 var Actor OldTarget; 00007 00008 event PostBeginPlay() 00009 { 00010 Super.PostBeginPlay(); 00011 if ( Level.NetMode != NM_Client ) 00012 HUDType = Level.Game.HUDType; 00013 } 00014 00015 exec function Jump( optional float F ) 00016 { 00017 ViewClass(class'SpectatorCam', true); 00018 While ( (ViewTarget != None) && ViewTarget.IsA('SpectatorCam') && SpectatorCam(ViewTarget).bSkipView ) 00019 ViewClass(class'SpectatorCam', true); 00020 if ( ViewTarget.IsA('SpectatorCam') ) 00021 bBehindView = false; 00022 } 00023 00024 exec function Verbose() 00025 { 00026 if ( Bot(ViewTarget) != None ) 00027 Bot(ViewTarget).bVerbose = true; 00028 } 00029 00030 function FixFOV() 00031 { 00032 if ( (ViewTarget != None) && !ViewTarget.IsA('SpectatorCam') ) 00033 { 00034 FOVAngle = 90; 00035 DesiredFOV = 90; 00036 DefaultFOV = 90; 00037 } 00038 else 00039 { 00040 FOVAngle = Default.DefaultFOV; 00041 DesiredFOV = Default.DefaultFOV; 00042 DefaultFOV = Default.DefaultFOV; 00043 } 00044 } 00045 00046 exec function NextWeapon() 00047 { 00048 OldTarget = ViewTarget; 00049 Fire(); 00050 } 00051 00052 exec function PrevWeapon() 00053 { 00054 if ( OldTarget != None ) 00055 ViewTarget = OldTarget; 00056 else if ( (Role == ROLE_Authority) && !Level.Game.IsA('Intro') ) 00057 ViewPlayerNum(-2); 00058 OldTarget = None; 00059 if ( ViewTarget == None ) 00060 bBehindView = false; 00061 else 00062 bBehindView = bChaseCam; 00063 } 00064 00065 00066 exec function ViewPlayerNum(optional int num) 00067 { 00068 bChaseCam = true; 00069 bBehindView = true; 00070 Super.ViewPlayerNum(num); 00071 FixFOV(); 00072 } 00073 00074 exec function ViewClass( class<actor> aClass, optional bool bQuiet ) 00075 { 00076 Super.ViewClass(aClass, bQuiet); 00077 FixFOV(); 00078 } 00079 00080 exec function ViewSelf() 00081 { 00082 Super.ViewSelf(); 00083 FixFOV(); 00084 } 00085 00086 exec function CheatView( class<actor> aClass ) 00087 { 00088 Super.CheatView(aClass); 00089 FixFOV(); 00090 } 00091 00092 exec function Fire( optional float F ) 00093 { 00094 if ( (Role == ROLE_Authority) && (Level.Game == None || !Level.Game.IsA('Intro')) ) 00095 { 00096 ViewPlayerNum(-1); 00097 if ( ViewTarget == None ) 00098 bBehindView = false; 00099 else 00100 bBehindView = bChaseCam; 00101 } 00102 } 00103 00104 defaultproperties 00105 { 00106 HUDType=Class'Botpack.CHSpectatorHUD' 00107 FovAngle=110.000000 00108 CollisionRadius=17.000000 00109 }