diff --git a/src/game/g_player.pas b/src/game/g_player.pas
index d0275d093fca62244370f201ff0cabb68bcb98f8..c903d13b0a780cc97c993011d746ba58be2be061 100644 (file)
--- a/src/game/g_player.pas
+++ b/src/game/g_player.pas
Name: String;
Team: Byte;
Frags: SmallInt;
+ Assists: SmallInt;
Deaths: SmallInt;
Lives: Byte;
Kills: Word;
FKills: Integer;
FMonsterKills: Integer;
FFrags: Integer;
+ FAssists: Integer;
FFragCombo: Byte;
FLastFrag: LongWord;
FComboEvnt: Integer;
property Air: Integer read FAir write FAir;
property JetFuel: Integer read FJetFuel write FJetFuel;
property Frags: Integer read FFrags write FFrags;
+ property Assists: Integer read FAssists write FAssists;
property Death: Integer read FDeath write FDeath;
property Kills: Integer read FKills write FKills;
property CurrWeap: Byte read FCurrWeap write FCurrWeap;
property eAir: Integer read FAir write FAir;
property eJetFuel: Integer read FJetFuel write FJetFuel;
property eFrags: Integer read FFrags write FFrags;
+ property eAssists: Integer read FAssists write FAssists;
property eDeath: Integer read FDeath write FDeath;
property eKills: Integer read FKills write FKills;
property eCurrWeap: Byte read FCurrWeap write FCurrWeap;
Name := gPlayers[a].FName;
Team := gPlayers[a].FTeam;
Frags := gPlayers[a].FFrags;
+ Assists := gPlayers[a].FAssists;
Deaths := gPlayers[a].FDeath;
Kills := gPlayers[a].FKills;
Color := gPlayers[a].FModel.Color;
X, Y, SY, a, p, m: Integer;
tw, th: Word;
cw, ch: Byte;
- s: string;
+ s, t: string;
stat: TPlayerStatArray;
begin
X := gPlayerScreenSize.X;
if gShowStat then
begin
s := IntToStr(Frags);
+ t := IntToStr(Assists);
e_CharFont_GetSize(gMenuFont, s, tw, th);
e_CharFont_PrintEx(gMenuFont, X-16-tw, Y, s, _RGB(255, 0, 0));
s := '';
+ t := '';
p := 1;
m := 0;
stat := g_Player_GetStats();
if Frags >= m then s := s+'+' else s := s+'-';
s := s+IntToStr(Abs(Frags-m));
+ t := IntToStr(p)+' / '+IntToStr(Length(stat))+' ';
+ if Assists >= m then t := t+'+' else t := t+'-';
+ t := t+IntToStr(Abs(Assists-m));
+
e_CharFont_GetSize(gMenuSmallFont, s, tw, th);
e_CharFont_PrintEx(gMenuSmallFont, X-16-tw, Y+32, s, _RGB(255, 0, 0));
end;
plr: TPlayer;
srv, netsrv: Boolean;
DoFrags: Boolean;
+ DoAssists: Boolean;
OldLR: Byte;
KP: TPlayer;
it: PItem;
begin
DoFrags := (gGameSettings.MaxLives = 0) or (gGameSettings.GameMode = GM_COOP);
+ DoAssists := (gGameSettings.GameMode = GM_TDM) or (gGameSettings.GameMode = GM_CTF);
Srv := g_Game_IsServer;
Netsrv := g_Game_IsServer and g_Game_IsNet;
if Srv then FDeath := FDeath + 1;
KP.FragCombo();
end;
+ // Assists block
+ if (DoAssists or (gGameSettings.GameMode = GM_TDM)) then
+ begin
+ if a = 4 then
+ begin
+ Inc(KP.FAssists);
+ end;
+ end;
+
if (gGameSettings.GameMode = GM_TDM) and DoFrags then
Inc(gTeamStat[KP.Team].Score,
IfThen(SameTeam(FUID, SpawnerUID), -1, 1));
FNoTarget := False;
FNoReload := False;
FFrags := 0;
+ FAssists := 0;
FLastFrag := 0;
FComboEvnt := -1;
FKills := 0;
utils.writeInt(st, LongInt(FMonsterKills));
// Ôðàãîâ
utils.writeInt(st, LongInt(FFrags));
+ // Àññèñòîâ
+ utils.writeInt(st, LongInt(FAssists));
// Ôðàãîâ ïîäðÿä
utils.writeInt(st, Byte(FFragCombo));
// Âðåìÿ ïîñëåäíåãî ôðàãà
FMonsterKills := utils.readLongInt(st);
// Ôðàãîâ
FFrags := utils.readLongInt(st);
+ // Àññèñòîâ
+ FAssists := utils.readLongInt(st);
// Ôðàãîâ ïîäðÿä
FFragCombo := utils.readByte(st);
// Âðåìÿ ïîñëåäíåãî ôðàãà