Core.Object | +--Engine.Actor | +--Engine.Info | +--Engine.ReplicationInfo | +--Engine.PlayerReplicationInfo
float
Deaths
Decoration
HasFlag
int
NumLives
OldScore
Ping
PlayerID
Volume
PlayerLocation
string
PlayerName
OldName,
PreviousName
Score
OldSkinCodeName,
SkinCodeName
StartTime
Texture
TalkTexture
TeamInfo
Team
TeamID
TimeAcc
class
VoiceType
bool
bBot
bFeigningDeath
bIsFemale
bIsSpectator
bOutOfLives
bReadyToPlay
bWaitingPlayer
simulated
DisplayDebug(Canvas Canvas, out float, out float)
/* DisplayDebug() list important controller attributes on canvas */
DumpContent(float TimeStamp, int tabulation)
GetHumanReadableName()
GetLocationName()
void
PostBeginPlay()
Reset()
/* Reset() reset actor to initial state - used when restarting level without reloading. */
SetPlayerName(string S)
SetWaitingPlayer(bool B)
Timer()
UpdatePlayerLocation()
00001 //============================================================================= 00002 // PlayerReplicationInfo. 00003 //============================================================================= 00004 class PlayerReplicationInfo extends ReplicationInfo 00005 native nativereplication; 00006 00007 // also replicate here player class and skins and any other seldom changed stuff 00008 var float Score; // Player's current score. 00009 var float OldScore; // Player's Old score (to handle event ScoreUpdated) 00010 var float Deaths; // Number of player's deaths. 00011 var Decoration HasFlag; 00012 var int Ping; 00013 var Volume PlayerLocation; 00014 var int NumLives; 00015 00016 var string PlayerName; // Player name, or blank if none. 00017 var string OldName, PreviousName; // Temporary value. 00018 var string OldSkinCodeName, SkinCodeName; 00019 var int PlayerID; // Unique id number. 00020 var TeamInfo Team; // Player Team 00021 var int TeamID; // Player position in team. 00022 var class<VoicePack> VoiceType; 00023 var bool bIsFemale; 00024 var bool bFeigningDeath; 00025 var bool bIsSpectator; 00026 var bool bWaitingPlayer; 00027 var bool bReadyToPlay; 00028 var bool bOutOfLives; 00029 var bool bBot; 00030 var Texture TalkTexture; 00031 00032 // Time elapsed. 00033 var int StartTime; 00034 var int TimeAcc; 00035 00036 replication 00037 { 00038 // Things the server should send to the client. 00039 reliable if ( bNetDirty && (Role == Role_Authority) ) 00040 Score, Deaths, HasFlag, Ping, PlayerLocation, 00041 PlayerName, Team, TeamID, VoiceType, bIsFemale, 00042 bFeigningDeath, bIsSpectator, bWaitingPlayer, bReadyToPlay, TalkTexture, 00043 bOutOfLives; 00044 00045 reliable if ( Role == Role_Authority ) 00046 SkinCodeName; 00047 00048 reliable if ( bNetInitial && (Role == Role_Authority) ) 00049 StartTime, bBot; 00050 } 00051 00052 function PostBeginPlay() 00053 { 00054 StartTime = Level.TimeSeconds; 00055 Timer(); 00056 SetTimer(2.0, true); 00057 } 00058 00059 /* Reset() 00060 reset actor to initial state - used when restarting level without reloading. 00061 */ 00062 function Reset() 00063 { 00064 Super.Reset(); 00065 Score = 0; 00066 Deaths = 0; 00067 HasFlag = None; 00068 bReadyToPlay = false; 00069 NumLives = 0; 00070 bOutOfLives = false; 00071 } 00072 00073 simulated function string GetLocationName() 00074 { 00075 if ( PlayerLocation != None ) 00076 return PlayerLocation.LocationName; 00077 else 00078 return""; 00079 } 00080 00081 simulated function string GetHumanReadableName() 00082 { 00083 return PlayerName; 00084 } 00085 00086 function UpdatePlayerLocation() 00087 { 00088 local Volume V; 00089 00090 PlayerLocation = None; 00091 ForEach TouchingActors(class'Volume',V) 00092 if ( (V.LocationName != "") 00093 && ((PlayerLocation == None) || (V.LocationPriority > PlayerLocation.LocationPriority)) 00094 && V.Encompasses(self) ) 00095 { 00096 PlayerLocation = V; 00097 } 00098 } 00099 00100 /* DisplayDebug() 00101 list important controller attributes on canvas 00102 */ 00103 simulated function DisplayDebug(Canvas Canvas, out float YL, out float YPos) 00104 { 00105 Canvas.DrawText(" PlayerName "$PlayerName$" Team "$Team); 00106 } 00107 00108 function Timer() 00109 { 00110 UpdatePlayerLocation(); 00111 00112 if ( FRand() < 0.65 ) 00113 return; 00114 00115 if (PlayerController(Owner) != None) 00116 Ping = int(Controller(Owner).ConsoleCommand("GETPING")); 00117 } 00118 00119 function SetPlayerName(string S) 00120 { 00121 OldName = PlayerName; 00122 PlayerName = S; 00123 } 00124 00125 function SetWaitingPlayer(bool B) 00126 { 00127 bIsSpectator = B; 00128 bWaitingPlayer = B; 00129 } 00130 00131 00132 debugonly simulated function DumpContent(float TimeStamp, int tabulation) 00133 { 00134 local int j; 00135 local string Tab; 00136 00137 for (j=0; j<tabulation; j++) Tab = Tab$" "; 00138 00139 log(Tab$"PlayerReplicationInfo's dump at "$TimeStamp$":"); 00140 //log(Tab$" Score:"$Score$" Deaths:"$Deaths$" HasFlag:"$HasFlag$" Ping:"$Ping$" PlayerLocation:"$PlayerLocation$" NumLives:"$NumLives); 00141 log(Tab$" Ping:"$Ping); 00142 //log(Tab$" PlayerName:"$PlayerName$" OldName:"$OldName$" PreviousName:"$PreviousName$" PlayerID:"$PlayerID$" Team:"$Team$" TeamID:"$TeamID$" VoiceType:"$VoiceType); 00143 log(Tab$" PlayerID:"$PlayerID); 00144 //log(Tab$" bIsFemale:"$bIsFemale$" bFeigningDeath:"$bFeigningDeath$" bIsSpectator:"$bIsSpectator$" bWaitingPlayer:"$bWaitingPlayer$" bReadyToPlay:"$bReadyToPlay$" bOutOfLives:"$bOutOfLives); 00145 //log(Tab$" bBot:"$bBot$" TalkTexture:"$TalkTexture$" StartTime:"$StartTime$" TimeAcc:"$TimeAcc); 00146 //Super.DumpContent(TimeStamp, tabulation); 00147 } 00148 00149 simulated event ScoreUpdated(); // ELR Used to update score sorting only when receiving score replication 00150 simulated event SkinUpdated(); // ELR Used to update skin only when receiving SkinCodeName replication 00151 00152 defaultproperties 00153 { 00154 RemoteRole=ROLE_SimulatedProxy 00155 }