Core.Object | +--Engine.Actor | +--Engine.Info | +--Engine.PlayerStats
float
EnterTimeSeconds
LeaveTimeSeconds
int
StatDeaths
StatFlagsR
StatFlagsS
StatKills
StatMatchesPlayed
StatMinutes
StatSuicides
void
LogStats()
//_____________________________________________________________________________
00001 //----------------------------------------------------------- 00002 // Server class used to store player stats and updating rank/ladder at logout 00003 //----------------------------------------------------------- 00004 class PlayerStats extends Info 00005 native; 00006 00007 var int StatKills; // Number of kills (ALL) 00008 var int StatDeaths; // Number of deaths (ALL) 00009 var int StatSuicides; // Number of suicides (ALL) 00010 var int StatMinutes; // Minutes Played (ALL) 00011 var int StatFlagsS; // Flags Scored (CTF) 00012 var int StatFlagsR; // Flags Returned (CTF) 00013 var int StatMatchesPlayed; // Number of matches played 00014 00015 var float EnterTimeSeconds; 00016 var float LeaveTimeSeconds; 00017 00018 //var XboxLiveManager xboxlive; // ELR Useless as the controller will do the update (must be made on clients, this don't exists elsewhere than server 00019 //StatsUpdateMyStats(kills, deaths, suicides, minutes, games, gameswon, flagscapt, flagsret) 00020 00021 //_____________________________________________________________________________ 00022 event PostBeginPlay() 00023 { 00024 Super.PostBeginPlay(); 00025 SetTimer(50.0 + frand()*20, false); // client update timer, stats will be updated on clients in this timer 00026 } 00027 00028 /* 00029 //_____________________________________________________________________________ 00030 function LogStats() 00031 { 00032 StatMinutes = int((LeaveTimeSeconds - EnterTimeSeconds)/60.0); 00033 Log("STATS for"@Owner@"::"); 00034 Log(" Kills +="@StatKills); 00035 Log(" Deaths +="@StatDeaths); 00036 Log(" Suicides +="@StatSuicides); 00037 Log(" Minutes +="@StatMinutes); 00038 Log(" Flags Scored +="@StatFlagsS); 00039 Log(" Flags Returned +="@StatFlagsR); 00040 // Log(" Matchs Won +="@StatMatchWon); 00041 // Log(" Matchs Losed +="@StatMatchLost); 00042 00043 // ELR Don't use line below, system changed (see StatUpdate in XIIIMPPlayercontroller.uc 00044 //xboxlive.StatsUpdateMyStats(StatKills, StatDeaths, StatSuicides, StatMinutes, 1, StatMatchWon, StatFlagsS, StatFlagsR); 00045 } 00046 */ 00047 00048 //_____________________________________________________________________________ 00049 event Timer() 00050 { // Send stats to client playercontroller 00051 Local string StatStr; 00052 00053 // the string that will be parsed on client for update 00054 StatMinutes = int((Level.TimeSeconds - EnterTimeSeconds)/60.0); 00055 StatStr = "?KI="$StatKills 00056 $"?DE="$StatDeaths 00057 $"?SU="$StatSuicides 00058 $"?MI="$StatMinutes 00059 $"?FS="$StatFlagsS 00060 $"?FR="$StatFlagsR 00061 $"?MP="$StatMatchesPlayed; 00062 // Send message to store stats 00063 // Log("STATS Sending update '"$StatStr$"'"); 00064 PlayerController(Owner).ClientMessage(StatStr, 'STATS'); 00065 00066 SetTimer(50.0 + frand()*20, false); // Next update 00067 } 00068 00069 defaultproperties 00070 { 00071 RemoteRole=ROLE_None 00072 }