X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fgame%2Fg_player.pas;h=4e5b60e453dce9ab8e20e4fcaf921b15e256fb32;hb=d791e7c0f4d07c19dd8d325c32b34aa9b32c51c4;hp=d0275d093fca62244370f201ff0cabb68bcb98f8;hpb=3fb071dcefe7c3d8081e5a3906c1983d02b5ccd0;p=d2df-sdl.git diff --git a/src/game/g_player.pas b/src/game/g_player.pas index d0275d0..4e5b60e 100644 --- a/src/game/g_player.pas +++ b/src/game/g_player.pas @@ -112,6 +112,7 @@ type Name: String; Team: Byte; Frags: SmallInt; + Assists: SmallInt; Deaths: SmallInt; Lives: Byte; Kills: Word; @@ -160,6 +161,7 @@ type FKills: Integer; FMonsterKills: Integer; FFrags: Integer; + FAssists: Integer; FFragCombo: Byte; FLastFrag: LongWord; FComboEvnt: Integer; @@ -383,6 +385,7 @@ type 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; @@ -419,6 +422,7 @@ type 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; @@ -1497,6 +1501,7 @@ begin 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; @@ -2779,7 +2784,7 @@ var X, Y, SY, a, p, m: Integer; tw, th: Word; cw, ch: Byte; - s: string; + s, t: string; stat: TPlayerStatArray; begin X := gPlayerScreenSize.X; @@ -2835,10 +2840,12 @@ begin 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(); @@ -2858,6 +2865,10 @@ begin 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; @@ -3839,6 +3850,23 @@ begin FNextWeapDelay := 0; end; +// Assists block +procedure TPlayer.Assist(); +var + DoAssists: Boolean; +begin + DoAssists := (gGameSettings.GameMode = GM_TDM) or (gGameSettings.GameMode = GM_CTF); + + if (DoAssists or (gGameSettings.GameMode = GM_TDM)) then + begin + if a = 4 then + begin + Inc(KP.FAssists); + end; + end; +end; + + function TPlayer.hasAmmoForWeapon (weapon: Byte): Boolean; begin result := false; @@ -4515,6 +4543,7 @@ begin FNoTarget := False; FNoReload := False; FFrags := 0; + FAssists := 0; FLastFrag := 0; FComboEvnt := -1; FKills := 0; @@ -6155,6 +6184,8 @@ begin utils.writeInt(st, LongInt(FMonsterKills)); // Ôðàãîâ utils.writeInt(st, LongInt(FFrags)); + // Àññèñòîâ + utils.writeInt(st, LongInt(FAssists)); // Ôðàãîâ ïîäðÿä utils.writeInt(st, Byte(FFragCombo)); // Âðåìÿ ïîñëåäíåãî ôðàãà @@ -6259,6 +6290,8 @@ begin FMonsterKills := utils.readLongInt(st); // Ôðàãîâ FFrags := utils.readLongInt(st); + // Àññèñòîâ + FAssists := utils.readLongInt(st); // Ôðàãîâ ïîäðÿä FFragCombo := utils.readByte(st); // Âðåìÿ ïîñëåäíåãî ôðàãà