diff -r 9f6ca48d8e9c -r efc5409a141d hedgewars/uStats.pas --- a/hedgewars/uStats.pas Sun Aug 18 17:52:32 2013 +0400 +++ b/hedgewars/uStats.pas Tue Aug 20 14:40:27 2013 +0400 @@ -166,11 +166,11 @@ end; if SendHealthStatsOn then - for t:= 0 to Pred(ClansCount) do - with ClansArray[t]^ do - begin - SendStat(siClanHealth, IntToStr(Color) + ' ' + IntToStr(ClanHealth)); - end; + for t:= 0 to Pred(ClansCount) do + with ClansArray[t]^ do + begin + SendStat(siClanHealth, IntToStr(Color) + ' ' + IntToStr(ClanHealth)); + end; Kills:= 0; KillsClan:= 0; @@ -211,103 +211,103 @@ winnersClan : PClan; begin if SendHealthStatsOn then - msd:= 0; msdhh:= nil; - msk:= 0; mskhh:= nil; - mskcnt:= 0; - maxTeamKills := 0; - maxTurnSkips := 0; - maxTeamDamage := 0; - winnersClan:= nil; + msd:= 0; msdhh:= nil; + msk:= 0; mskhh:= nil; + mskcnt:= 0; + maxTeamKills := 0; + maxTurnSkips := 0; + maxTeamDamage := 0; + winnersClan:= nil; - for t:= 0 to Pred(TeamsCount) do - with TeamsArray[t]^ do - begin - if not ExtDriven then - SendStat(siTeamStats, GetTeamStatString(TeamsArray[t])); - for i:= 0 to cMaxHHIndex do - begin - if Hedgehogs[i].stats.MaxStepDamageGiven > msd then - begin - msdhh:= @Hedgehogs[i]; - msd:= Hedgehogs[i].stats.MaxStepDamageGiven - end; - if Hedgehogs[i].stats.MaxStepKills >= msk then - if Hedgehogs[i].stats.MaxStepKills = msk then - inc(mskcnt) - else - begin - mskcnt:= 1; - mskhh:= @Hedgehogs[i]; - msk:= Hedgehogs[i].stats.MaxStepKills - end; - end; + for t:= 0 to Pred(TeamsCount) do + with TeamsArray[t]^ do + begin + if not ExtDriven then + SendStat(siTeamStats, GetTeamStatString(TeamsArray[t])); + for i:= 0 to cMaxHHIndex do + begin + if Hedgehogs[i].stats.MaxStepDamageGiven > msd then + begin + msdhh:= @Hedgehogs[i]; + msd:= Hedgehogs[i].stats.MaxStepDamageGiven + end; + if Hedgehogs[i].stats.MaxStepKills >= msk then + if Hedgehogs[i].stats.MaxStepKills = msk then + inc(mskcnt) + else + begin + mskcnt:= 1; + mskhh:= @Hedgehogs[i]; + msk:= Hedgehogs[i].stats.MaxStepKills + end; + end; - { send player stats for winner teams } - if Clan^.ClanHealth > 0 then - begin - winnersClan:= Clan; - SendStat(siPlayerKills, IntToStr(Clan^.Color) + ' ' + - IntToStr(stats.Kills) + ' ' + TeamName); - end; + { send player stats for winner teams } + if Clan^.ClanHealth > 0 then + begin + winnersClan:= Clan; + SendStat(siPlayerKills, IntToStr(Clan^.Color) + ' ' + + IntToStr(stats.Kills) + ' ' + TeamName); + end; - { determine maximum values of TeamKills, TurnSkips, TeamDamage } - if stats.TeamKills > maxTeamKills then - begin - maxTeamKills := stats.TeamKills; - maxTeamKillsName := TeamName; - end; - if stats.TurnSkips > maxTurnSkips then - begin - maxTurnSkips := stats.TurnSkips; - maxTurnSkipsName := TeamName; - end; - if stats.TeamDamage > maxTeamDamage then - begin - maxTeamDamage := stats.TeamDamage; - maxTeamDamageName := TeamName; - end; + { determine maximum values of TeamKills, TurnSkips, TeamDamage } + if stats.TeamKills > maxTeamKills then + begin + maxTeamKills := stats.TeamKills; + maxTeamKillsName := TeamName; + end; + if stats.TurnSkips > maxTurnSkips then + begin + maxTurnSkips := stats.TurnSkips; + maxTurnSkipsName := TeamName; + end; + if stats.TeamDamage > maxTeamDamage then + begin + maxTeamDamage := stats.TeamDamage; + maxTeamDamageName := TeamName; + end; - end; + end; - { now send player stats for loser teams } - for t:= 0 to Pred(TeamsCount) do - begin - with TeamsArray[t]^ do - begin - if Clan^.ClanHealth = 0 then - begin - SendStat(siPlayerKills, IntToStr(Clan^.Color) + ' ' + - IntToStr(stats.Kills) + ' ' + TeamName); - end; - end; - end; + { now send player stats for loser teams } + for t:= 0 to Pred(TeamsCount) do + begin + with TeamsArray[t]^ do + begin + if Clan^.ClanHealth = 0 then + begin + SendStat(siPlayerKills, IntToStr(Clan^.Color) + ' ' + + IntToStr(stats.Kills) + ' ' + TeamName); + end; + end; + end; - if msdhh <> nil then - SendStat(siMaxStepDamage, IntToStr(msd) + ' ' + msdhh^.Name + ' (' + msdhh^.Team^.TeamName + ')'); - if mskcnt = 1 then - SendStat(siMaxStepKills, IntToStr(msk) + ' ' + mskhh^.Name + ' (' + mskhh^.Team^.TeamName + ')'); + if msdhh <> nil then + SendStat(siMaxStepDamage, IntToStr(msd) + ' ' + msdhh^.Name + ' (' + msdhh^.Team^.TeamName + ')'); + if mskcnt = 1 then + SendStat(siMaxStepKills, IntToStr(msk) + ' ' + mskhh^.Name + ' (' + mskhh^.Team^.TeamName + ')'); - if maxTeamKills > 1 then - SendStat(siMaxTeamKills, IntToStr(maxTeamKills) + ' ' + maxTeamKillsName); - if maxTurnSkips > 2 then - SendStat(siMaxTurnSkips, IntToStr(maxTurnSkips) + ' ' + maxTurnSkipsName); - if maxTeamDamage > 30 then - SendStat(siMaxTeamDamage, IntToStr(maxTeamDamage) + ' ' + maxTeamDamageName); + if maxTeamKills > 1 then + SendStat(siMaxTeamKills, IntToStr(maxTeamKills) + ' ' + maxTeamKillsName); + if maxTurnSkips > 2 then + SendStat(siMaxTurnSkips, IntToStr(maxTurnSkips) + ' ' + maxTurnSkipsName); + if maxTeamDamage > 30 then + SendStat(siMaxTeamDamage, IntToStr(maxTeamDamage) + ' ' + maxTeamDamageName); - if KilledHHs > 0 then - SendStat(siKilledHHs, IntToStr(KilledHHs)); + if KilledHHs > 0 then + SendStat(siKilledHHs, IntToStr(KilledHHs)); - // now to console - if winnersClan <> nil then - begin - WriteLnToConsole('WINNERS'); + // now to console + if winnersClan <> nil then + begin + WriteLnToConsole('WINNERS'); WriteLnToConsole(inttostr(winnersClan^.TeamsNumber)); - for t:= 0 to winnersClan^.TeamsNumber - 1 do - WriteLnToConsole(winnersClan^.Teams[t]^.TeamName); - end - else - WriteLnToConsole('DRAW'); - + for t:= 0 to winnersClan^.TeamsNumber - 1 do + WriteLnToConsole(winnersClan^.Teams[t]^.TeamName); + end + else + WriteLnToConsole('DRAW'); + ScriptCall('onAchievementsDeclaration'); end;