Core.Object | +--Engine.Actor | +--Engine.Info | +--Engine.ReplicationInfo | +--Engine.GameReplicationInfo
string
AdminEmail
AdminName
GameClass
GameEndedComments
GameName
MOTDLine1
MOTDLine2
MOTDLine3
MOTDLine4
int
NumPlayers
PlayerReplicationInfo
PRIArray[32]
ElapsedTime,
RemainingMinute
float
SecondCount
ServerName
ServerRegion
ShortName
SumFrags
UpdateTimer
bool
bClassicDeathMessages
bStopCountDown
bTeamGame
simulated
Debug(Canvas canvas, int mode)
PostBeginPlay()
Timer()
00001 //============================================================================= 00002 // GameReplicationInfo. 00003 //============================================================================= 00004 class GameReplicationInfo extends ReplicationInfo 00005 native; 00006 // nativereplication; 00007 00008 var string GameName; // Assigned by GameInfo. 00009 var string GameClass; // Assigned by GameInfo. 00010 var bool bTeamGame; // Assigned by GameInfo. 00011 var bool bClassicDeathMessages; 00012 var bool bStopCountDown; 00013 var int RemainingTime, ElapsedTime, RemainingMinute; 00014 var float SecondCount; 00015 00016 var int NumPlayers; 00017 var int SumFrags; 00018 var float UpdateTimer; 00019 00020 var() globalconfig string ServerName; // Name of the server, i.e.: Bob's Server. 00021 var() globalconfig string ShortName; // Abbreviated name of server, i.e.: B's Serv (stupid example) 00022 var() globalconfig string AdminName; // Name of the server admin. 00023 var() globalconfig string AdminEmail; // Email address of the server admin. 00024 var() globalconfig int ServerRegion; // Region of the game server.(name changed, region collided with actor::region) 00025 00026 00027 var() globalconfig string MOTDLine1; // Message 00028 var() globalconfig string MOTDLine2; // Of 00029 var() globalconfig string MOTDLine3; // The 00030 var() globalconfig string MOTDLine4; // Day 00031 00032 var string GameEndedComments; // set by gameinfo when game ends 00033 00034 var PlayerReplicationInfo PRIArray[32]; 00035 00036 replication 00037 { 00038 reliable if ( Role == ROLE_Authority ) 00039 GameName, GameClass, bTeamGame, ServerName, ShortName, AdminName, 00040 AdminEmail, ServerRegion, MOTDLine1, MOTDLine2, 00041 MOTDLine3, MOTDLine4, RemainingMinute, bStopCountDown, GameEndedComments, 00042 NumPlayers; 00043 00044 reliable if ( bNetInitial && (Role==ROLE_Authority) ) 00045 RemainingTime, ElapsedTime; 00046 } 00047 00048 simulated function PostBeginPlay() 00049 { 00050 if( Level.NetMode == NM_Client ) 00051 { 00052 // clear variables so we don't display our own values if the server has them left blank 00053 ServerName = ""; 00054 AdminName = ""; 00055 AdminEmail = ""; 00056 MOTDLine1 = ""; 00057 MOTDLine2 = ""; 00058 MOTDLine3 = ""; 00059 MOTDLine4 = ""; 00060 } 00061 00062 SecondCount = Level.TimeSeconds; 00063 SetTimer(0.2, true); 00064 } 00065 00066 simulated function Timer() 00067 { 00068 local PlayerReplicationInfo PRI; 00069 local int i, FragAcc; 00070 00071 if ( Level.NetMode == NM_Client ) 00072 { 00073 if (Level.TimeSeconds - SecondCount >= Level.TimeDilation) 00074 { 00075 ElapsedTime++; 00076 if ( RemainingMinute != 0 ) 00077 { 00078 RemainingTime = RemainingMinute; 00079 RemainingMinute = 0; 00080 } 00081 if ( (RemainingTime > 0) && !bStopCountDown ) 00082 RemainingTime--; 00083 SecondCount += Level.TimeDilation; 00084 } 00085 } 00086 00087 for (i=0; i<32; i++) 00088 PRIArray[i] = None; 00089 i=0; 00090 foreach AllActors(class'PlayerReplicationInfo', PRI) 00091 { 00092 if (i<32) 00093 PRIArray[i++] = PRI; 00094 } 00095 00096 // Update various information. 00097 UpdateTimer = 0; 00098 for (i=0; i<32; i++) 00099 if (PRIArray[i] != None) 00100 FragAcc += PRIArray[i].Score; 00101 SumFrags = FragAcc; 00102 00103 if ( Level.Game != None ) 00104 NumPlayers = Level.Game.NumPlayers; 00105 } 00106 00107 simulated function Debug(Canvas canvas, int mode) 00108 { 00109 Super.Debug(canvas, mode); 00110 00111 Canvas.DrawText("GameReplicationInfo:"); 00112 Canvas.CurY -= 8; 00113 Canvas.DrawText("GameName: " $ GameName); 00114 Canvas.CurY -= 8; 00115 Canvas.DrawText("GameClass: " $ GameClass); 00116 Canvas.CurY -= 8; 00117 Canvas.DrawText("bTeamGame: " $ bTeamGame); 00118 Canvas.CurY -= 8; 00119 Canvas.DrawText("bClassicDeathMsgs: " $ bClassicDeathMessages); 00120 Canvas.CurY -= 8; 00121 Canvas.DrawText("bStopCountDown: " $ bStopCountDown); 00122 Canvas.CurY -= 8; 00123 Canvas.DrawText("RemainingTime: " $ RemainingTime); 00124 Canvas.CurY -= 8; 00125 Canvas.DrawText("ElapsedTime: " $ ElapsedTime); 00126 Canvas.CurY -= 8; 00127 Canvas.DrawText("RemainingMinute: " $ RemainingMinute); 00128 Canvas.CurY -= 8; 00129 Canvas.DrawText("SecondCount: " $ SecondCount); 00130 Canvas.CurY -= 8; 00131 Canvas.DrawText("NumPlayers: " $ NumPlayers); 00132 Canvas.CurY -= 8; 00133 Canvas.DrawText("SumFrags: " $ SumFrags); 00134 Canvas.CurY -= 8; 00135 Canvas.DrawText("UpdateTimer: " $ UpdateTimer); 00136 Canvas.CurY -= 8; 00137 Canvas.DrawText("ServerName: " $ ServerName); 00138 Canvas.CurY -= 8; 00139 Canvas.DrawText("ShortName: " $ ShortName); 00140 Canvas.CurY -= 8; 00141 Canvas.DrawText("AdminName: " $ AdminName); 00142 Canvas.CurY -= 8; 00143 Canvas.DrawText("AdminEmail: " $ AdminEmail); 00144 Canvas.CurY -= 8; 00145 Canvas.DrawText("ServerRegion: " $ ServerRegion); 00146 Canvas.CurY -= 8; 00147 Canvas.DrawText("MOTDLine1: " $ MOTDLine1); 00148 Canvas.CurY -= 8; 00149 Canvas.DrawText("MOTDLine2: " $ MOTDLine2); 00150 Canvas.CurY -= 8; 00151 Canvas.DrawText("MOTDLine3: " $ MOTDLine3); 00152 Canvas.CurY -= 8; 00153 Canvas.DrawText("MOTDLine4: " $ MOTDLine4); 00154 Canvas.CurY -= 8; 00155 Canvas.DrawText("GameEndedComments: " $ GameEndedComments); 00156 Canvas.CurY -= 8; 00157 } 00158 00159 defaultproperties 00160 { 00161 bStopCountDown=True 00162 ServerName="Dot Cafe's House of Pain" 00163 ShortName="Rune Server" 00164 RemoteRole=ROLE_SimulatedProxy 00165 NetUpdateFrequency=4.000000 00166 }