From 0f7bc2b6639643d6b834e3c64dfc1f66a2f0c389 Mon Sep 17 00:00:00 2001 From: FlightControl Date: Sun, 26 Feb 2017 15:25:32 +0100 Subject: [PATCH] First draft version new scoring --- .../Moose/Functional/Scoring.lua | 23 +++++--- Moose Development/Moose/Wrapper/Unit.lua | 30 ++++++---- .../l10n/DEFAULT/Moose.lua | 55 +++++++++++------- Moose Mission Setup/Moose.lua | 55 +++++++++++------- .../SCO-100 - Scoring of Statics.miz | Bin 237320 -> 247362 bytes .../SCO-101 - Scoring Client to Client.miz | Bin 227330 -> 227406 bytes 6 files changed, 98 insertions(+), 65 deletions(-) diff --git a/Moose Development/Moose/Functional/Scoring.lua b/Moose Development/Moose/Functional/Scoring.lua index 0908b541e..c3ed9d4e0 100644 --- a/Moose Development/Moose/Functional/Scoring.lua +++ b/Moose Development/Moose/Functional/Scoring.lua @@ -279,7 +279,7 @@ function SCORING:_EventOnHit( Event ) local TargetUnitName = "" local TargetGroup = nil local TargetGroupName = "" - local TargetPlayerName = "" + local TargetPlayerName = nil local TargetCoalition = nil local TargetCategory = nil @@ -491,39 +491,44 @@ function SCORING:_EventOnDeadOrCrash( Event ) PlayerKill.UNIT = PlayerKill.UNIT or Player.Hit[TargetCategory][TargetUnitName].UNIT if InitCoalition == TargetCoalition then - local ThreatLevelTarget = PlayerKill.UNIT:GetThreatLevel() + local ThreatLevelTarget, ThreatTypeTarget = PlayerKill.UNIT:GetThreatLevel() local ThreatLevelPlayer = Player.UNIT:GetThreatLevel() - local ThreatLevel = ThreatLevelTarget / ThreatLevelPlayer * 10 + local ThreatLevel = math.ceil( ThreatLevelTarget / ThreatLevelPlayer * 100 ) + self:E( { ThreatLevel = ThreatLevel, ThreatLevelTarget = ThreatLevelTarget, ThreatTypeTarget = ThreatTypeTarget, ThreatLevelPlayer = ThreatLevelPlayer } ) + Player.Penalty = Player.Penalty + ThreatLevel * 4 PlayerKill.Penalty = PlayerKill.Penalty + ThreatLevel * 4 PlayerKill.PenaltyKill = PlayerKill.PenaltyKill + 1 if Player.HitPlayers[TargetPlayerName] then -- A player killed another player - MESSAGE:New( "Player '" .. PlayerName .. "' killed friendly player '" .. TargetPlayerName .. "' " .. TargetUnitCategory .. " ( " .. TargetType .. " ) " .. + MESSAGE:New( "Player '" .. PlayerName .. "' killed friendly player '" .. TargetPlayerName .. "' " .. TargetUnitCategory .. " ( " .. ThreatTypeTarget .. " ) " .. PlayerKill.PenaltyKill .. " times. Penalty: -" .. PlayerKill.Penalty .. ". Score Total:" .. Player.Score - Player.Penalty, 5 ):ToAll() else - MESSAGE:New( "Player '" .. PlayerName .. "' killed a friendly " .. TargetUnitCategory .. " ( " .. TargetType .. " ) " .. + MESSAGE:New( "Player '" .. PlayerName .. "' killed a friendly " .. TargetUnitCategory .. " ( " .. ThreatTypeTarget .. " ) " .. PlayerKill.PenaltyKill .. " times. Penalty: -" .. PlayerKill.Penalty .. ". Score Total:" .. Player.Score - Player.Penalty, 5 ):ToAll() end self:ScoreCSV( PlayerName, "KILL_PENALTY", 1, -125, InitUnitName, InitUnitCoalition, InitUnitCategory, InitUnitType, TargetUnitName, TargetUnitCoalition, TargetUnitCategory, TargetUnitType ) else - local ThreatLevelTarget = PlayerKill.UNIT:GetThreatLevel() + + local ThreatLevelTarget, ThreatTypeTarget = PlayerKill.UNIT:GetThreatLevel() local ThreatLevelPlayer = Player.UNIT:GetThreatLevel() - local ThreatLevel = ThreatLevelTarget / ThreatLevelPlayer * 10 + local ThreatLevel = math.ceil( ThreatLevelTarget / ThreatLevelPlayer * 100 ) + self:E( { ThreatLevel = ThreatLevel, ThreatLevelTarget = ThreatLevelTarget, ThreatTypeTarget = ThreatTypeTarget, ThreatLevelPlayer = ThreatLevelPlayer } ) + Player.Score = Player.Score + ThreatLevel PlayerKill.Score = PlayerKill.Score + ThreatLevel PlayerKill.ScoreKill = PlayerKill.ScoreKill + 1 if Player.HitPlayers[TargetPlayerName] then -- A player killed another player - MESSAGE:New( "Player '" .. PlayerName .. "' killed enemy player '" .. TargetPlayerName .. "' " .. TargetUnitCategory .. " ( " .. TargetType .. " ) " .. + MESSAGE:New( "Player '" .. PlayerName .. "' killed enemy player '" .. TargetPlayerName .. "' " .. TargetUnitCategory .. " ( " .. ThreatTypeTarget .. " ) " .. PlayerKill.ScoreKill .. " times. Score: " .. PlayerKill.Score .. ". Score Total:" .. Player.Score - Player.Penalty, 5 ):ToAll() else - MESSAGE:New( "Player '" .. PlayerName .. "' killed an enemy " .. TargetUnitCategory .. " ( " .. TargetType .. " ) " .. + MESSAGE:New( "Player '" .. PlayerName .. "' killed an enemy " .. TargetUnitCategory .. " ( " .. ThreatTypeTarget .. " ) " .. PlayerKill.ScoreKill .. " times. Score: " .. PlayerKill.Score .. ". Score Total:" .. Player.Score - Player.Penalty, 5 ):ToAll() diff --git a/Moose Development/Moose/Wrapper/Unit.lua b/Moose Development/Moose/Wrapper/Unit.lua index fb9a1e581..dd7a775e8 100644 --- a/Moose Development/Moose/Wrapper/Unit.lua +++ b/Moose Development/Moose/Wrapper/Unit.lua @@ -540,13 +540,15 @@ end function UNIT:GetThreatLevel() local Attributes = self:GetDesc().attributes - self:T( Attributes ) + self:E( Attributes ) local ThreatLevel = 0 local ThreatText = "" if self:IsGround() then + self:E( "Ground" ) + local ThreatLevels = { "Unarmed", "Infantry", @@ -562,20 +564,20 @@ function UNIT:GetThreatLevel() } - if Attributes["LR SAM"] then ThreatLevel = 10 - elseif Attributes["MR SAM"] then ThreatLevel = 9 + if Attributes["LR SAM"] then ThreatLevel = 10 + elseif Attributes["MR SAM"] then ThreatLevel = 9 elseif Attributes["SR SAM"] and - not Attributes["IR Guided SAM"] then ThreatLevel = 8 + not Attributes["IR Guided SAM"] then ThreatLevel = 8 elseif ( Attributes["SR SAM"] or Attributes["MANPADS"] ) and - Attributes["IR Guided SAM"] then ThreatLevel = 7 - elseif Attributes["AAA"] then ThreatLevel = 6 - elseif Attributes["Modern Tanks"] then ThreatLevel = 5 + Attributes["IR Guided SAM"] then ThreatLevel = 7 + elseif Attributes["AAA"] then ThreatLevel = 6 + elseif Attributes["Modern Tanks"] then ThreatLevel = 5 elseif ( Attributes["Tanks"] or Attributes["IFV"] ) and - Attributes["ATGM"] then ThreatLevel = 4 + Attributes["ATGM"] then ThreatLevel = 4 elseif ( Attributes["Tanks"] or Attributes["IFV"] ) and - not Attributes["ATGM"] then ThreatLevel = 3 - elseif Attributes["Old Tanks"] or Attributes["APC"] then ThreatLevel = 2 - elseif Attributes["Infantry"] then ThreatLevel = 1 + not Attributes["ATGM"] then ThreatLevel = 3 + elseif Attributes["Old Tanks"] or Attributes["APC"] or Attributes["Artillery"] then ThreatLevel = 2 + elseif Attributes["Infantry"] then ThreatLevel = 1 end ThreatText = ThreatLevels[ThreatLevel+1] @@ -583,6 +585,8 @@ function UNIT:GetThreatLevel() if self:IsAir() then + self:E( "Air" ) + local ThreatLevels = { "Unarmed", "Tanker", @@ -600,7 +604,7 @@ function UNIT:GetThreatLevel() if Attributes["Fighters"] then ThreatLevel = 10 elseif Attributes["Multirole fighters"] then ThreatLevel = 9 - elseif Attributes["Interceptors"] then ThreatLevel = 8 + elseif Attributes["Battleplanes"] then ThreatLevel = 8 elseif Attributes["Attack helicopters"] then ThreatLevel = 7 elseif Attributes["Strategic bombers"] then ThreatLevel = 6 elseif Attributes["Bombers"] then ThreatLevel = 5 @@ -615,6 +619,8 @@ function UNIT:GetThreatLevel() if self:IsShip() then + self:E( "Ship" ) + --["Aircraft Carriers"] = {"Heavy armed ships",}, --["Cruisers"] = {"Heavy armed ships",}, --["Destroyers"] = {"Heavy armed ships",}, diff --git a/Moose Mission Setup/Moose Mission Update/l10n/DEFAULT/Moose.lua b/Moose Mission Setup/Moose Mission Update/l10n/DEFAULT/Moose.lua index 99abd8195..a65b8919a 100644 --- a/Moose Mission Setup/Moose Mission Update/l10n/DEFAULT/Moose.lua +++ b/Moose Mission Setup/Moose Mission Update/l10n/DEFAULT/Moose.lua @@ -1,5 +1,5 @@ env.info( '*** MOOSE STATIC INCLUDE START *** ' ) -env.info( 'Moose Generation Timestamp: 20170226_1154' ) +env.info( 'Moose Generation Timestamp: 20170226_1524' ) local base = _G Include = {} @@ -16675,13 +16675,15 @@ end function UNIT:GetThreatLevel() local Attributes = self:GetDesc().attributes - self:T( Attributes ) + self:E( Attributes ) local ThreatLevel = 0 local ThreatText = "" if self:IsGround() then + self:E( "Ground" ) + local ThreatLevels = { "Unarmed", "Infantry", @@ -16697,20 +16699,20 @@ function UNIT:GetThreatLevel() } - if Attributes["LR SAM"] then ThreatLevel = 10 - elseif Attributes["MR SAM"] then ThreatLevel = 9 + if Attributes["LR SAM"] then ThreatLevel = 10 + elseif Attributes["MR SAM"] then ThreatLevel = 9 elseif Attributes["SR SAM"] and - not Attributes["IR Guided SAM"] then ThreatLevel = 8 + not Attributes["IR Guided SAM"] then ThreatLevel = 8 elseif ( Attributes["SR SAM"] or Attributes["MANPADS"] ) and - Attributes["IR Guided SAM"] then ThreatLevel = 7 - elseif Attributes["AAA"] then ThreatLevel = 6 - elseif Attributes["Modern Tanks"] then ThreatLevel = 5 + Attributes["IR Guided SAM"] then ThreatLevel = 7 + elseif Attributes["AAA"] then ThreatLevel = 6 + elseif Attributes["Modern Tanks"] then ThreatLevel = 5 elseif ( Attributes["Tanks"] or Attributes["IFV"] ) and - Attributes["ATGM"] then ThreatLevel = 4 + Attributes["ATGM"] then ThreatLevel = 4 elseif ( Attributes["Tanks"] or Attributes["IFV"] ) and - not Attributes["ATGM"] then ThreatLevel = 3 - elseif Attributes["Old Tanks"] or Attributes["APC"] then ThreatLevel = 2 - elseif Attributes["Infantry"] then ThreatLevel = 1 + not Attributes["ATGM"] then ThreatLevel = 3 + elseif Attributes["Old Tanks"] or Attributes["APC"] or Attributes["Artillery"] then ThreatLevel = 2 + elseif Attributes["Infantry"] then ThreatLevel = 1 end ThreatText = ThreatLevels[ThreatLevel+1] @@ -16718,6 +16720,8 @@ function UNIT:GetThreatLevel() if self:IsAir() then + self:E( "Air" ) + local ThreatLevels = { "Unarmed", "Tanker", @@ -16735,7 +16739,7 @@ function UNIT:GetThreatLevel() if Attributes["Fighters"] then ThreatLevel = 10 elseif Attributes["Multirole fighters"] then ThreatLevel = 9 - elseif Attributes["Interceptors"] then ThreatLevel = 8 + elseif Attributes["Battleplanes"] then ThreatLevel = 8 elseif Attributes["Attack helicopters"] then ThreatLevel = 7 elseif Attributes["Strategic bombers"] then ThreatLevel = 6 elseif Attributes["Bombers"] then ThreatLevel = 5 @@ -16750,6 +16754,8 @@ function UNIT:GetThreatLevel() if self:IsShip() then + self:E( "Ship" ) + --["Aircraft Carriers"] = {"Heavy armed ships",}, --["Cruisers"] = {"Heavy armed ships",}, --["Destroyers"] = {"Heavy armed ships",}, @@ -18024,7 +18030,7 @@ function SCORING:_EventOnHit( Event ) local TargetUnitName = "" local TargetGroup = nil local TargetGroupName = "" - local TargetPlayerName = "" + local TargetPlayerName = nil local TargetCoalition = nil local TargetCategory = nil @@ -18236,39 +18242,44 @@ function SCORING:_EventOnDeadOrCrash( Event ) PlayerKill.UNIT = PlayerKill.UNIT or Player.Hit[TargetCategory][TargetUnitName].UNIT if InitCoalition == TargetCoalition then - local ThreatLevelTarget = PlayerKill.UNIT:GetThreatLevel() + local ThreatLevelTarget, ThreatTypeTarget = PlayerKill.UNIT:GetThreatLevel() local ThreatLevelPlayer = Player.UNIT:GetThreatLevel() - local ThreatLevel = ThreatLevelTarget / ThreatLevelPlayer * 10 + local ThreatLevel = math.ceil( ThreatLevelTarget / ThreatLevelPlayer * 100 ) + self:E( { ThreatLevel = ThreatLevel, ThreatLevelTarget = ThreatLevelTarget, ThreatTypeTarget = ThreatTypeTarget, ThreatLevelPlayer = ThreatLevelPlayer } ) + Player.Penalty = Player.Penalty + ThreatLevel * 4 PlayerKill.Penalty = PlayerKill.Penalty + ThreatLevel * 4 PlayerKill.PenaltyKill = PlayerKill.PenaltyKill + 1 if Player.HitPlayers[TargetPlayerName] then -- A player killed another player - MESSAGE:New( "Player '" .. PlayerName .. "' killed friendly player '" .. TargetPlayerName .. "' " .. TargetUnitCategory .. " ( " .. TargetType .. " ) " .. + MESSAGE:New( "Player '" .. PlayerName .. "' killed friendly player '" .. TargetPlayerName .. "' " .. TargetUnitCategory .. " ( " .. ThreatTypeTarget .. " ) " .. PlayerKill.PenaltyKill .. " times. Penalty: -" .. PlayerKill.Penalty .. ". Score Total:" .. Player.Score - Player.Penalty, 5 ):ToAll() else - MESSAGE:New( "Player '" .. PlayerName .. "' killed a friendly " .. TargetUnitCategory .. " ( " .. TargetType .. " ) " .. + MESSAGE:New( "Player '" .. PlayerName .. "' killed a friendly " .. TargetUnitCategory .. " ( " .. ThreatTypeTarget .. " ) " .. PlayerKill.PenaltyKill .. " times. Penalty: -" .. PlayerKill.Penalty .. ". Score Total:" .. Player.Score - Player.Penalty, 5 ):ToAll() end self:ScoreCSV( PlayerName, "KILL_PENALTY", 1, -125, InitUnitName, InitUnitCoalition, InitUnitCategory, InitUnitType, TargetUnitName, TargetUnitCoalition, TargetUnitCategory, TargetUnitType ) else - local ThreatLevelTarget = PlayerKill.UNIT:GetThreatLevel() + + local ThreatLevelTarget, ThreatTypeTarget = PlayerKill.UNIT:GetThreatLevel() local ThreatLevelPlayer = Player.UNIT:GetThreatLevel() - local ThreatLevel = ThreatLevelTarget / ThreatLevelPlayer * 10 + local ThreatLevel = math.ceil( ThreatLevelTarget / ThreatLevelPlayer * 100 ) + self:E( { ThreatLevel = ThreatLevel, ThreatLevelTarget = ThreatLevelTarget, ThreatTypeTarget = ThreatTypeTarget, ThreatLevelPlayer = ThreatLevelPlayer } ) + Player.Score = Player.Score + ThreatLevel PlayerKill.Score = PlayerKill.Score + ThreatLevel PlayerKill.ScoreKill = PlayerKill.ScoreKill + 1 if Player.HitPlayers[TargetPlayerName] then -- A player killed another player - MESSAGE:New( "Player '" .. PlayerName .. "' killed enemy player '" .. TargetPlayerName .. "' " .. TargetUnitCategory .. " ( " .. TargetType .. " ) " .. + MESSAGE:New( "Player '" .. PlayerName .. "' killed enemy player '" .. TargetPlayerName .. "' " .. TargetUnitCategory .. " ( " .. ThreatTypeTarget .. " ) " .. PlayerKill.ScoreKill .. " times. Score: " .. PlayerKill.Score .. ". Score Total:" .. Player.Score - Player.Penalty, 5 ):ToAll() else - MESSAGE:New( "Player '" .. PlayerName .. "' killed an enemy " .. TargetUnitCategory .. " ( " .. TargetType .. " ) " .. + MESSAGE:New( "Player '" .. PlayerName .. "' killed an enemy " .. TargetUnitCategory .. " ( " .. ThreatTypeTarget .. " ) " .. PlayerKill.ScoreKill .. " times. Score: " .. PlayerKill.Score .. ". Score Total:" .. Player.Score - Player.Penalty, 5 ):ToAll() diff --git a/Moose Mission Setup/Moose.lua b/Moose Mission Setup/Moose.lua index 99abd8195..a65b8919a 100644 --- a/Moose Mission Setup/Moose.lua +++ b/Moose Mission Setup/Moose.lua @@ -1,5 +1,5 @@ env.info( '*** MOOSE STATIC INCLUDE START *** ' ) -env.info( 'Moose Generation Timestamp: 20170226_1154' ) +env.info( 'Moose Generation Timestamp: 20170226_1524' ) local base = _G Include = {} @@ -16675,13 +16675,15 @@ end function UNIT:GetThreatLevel() local Attributes = self:GetDesc().attributes - self:T( Attributes ) + self:E( Attributes ) local ThreatLevel = 0 local ThreatText = "" if self:IsGround() then + self:E( "Ground" ) + local ThreatLevels = { "Unarmed", "Infantry", @@ -16697,20 +16699,20 @@ function UNIT:GetThreatLevel() } - if Attributes["LR SAM"] then ThreatLevel = 10 - elseif Attributes["MR SAM"] then ThreatLevel = 9 + if Attributes["LR SAM"] then ThreatLevel = 10 + elseif Attributes["MR SAM"] then ThreatLevel = 9 elseif Attributes["SR SAM"] and - not Attributes["IR Guided SAM"] then ThreatLevel = 8 + not Attributes["IR Guided SAM"] then ThreatLevel = 8 elseif ( Attributes["SR SAM"] or Attributes["MANPADS"] ) and - Attributes["IR Guided SAM"] then ThreatLevel = 7 - elseif Attributes["AAA"] then ThreatLevel = 6 - elseif Attributes["Modern Tanks"] then ThreatLevel = 5 + Attributes["IR Guided SAM"] then ThreatLevel = 7 + elseif Attributes["AAA"] then ThreatLevel = 6 + elseif Attributes["Modern Tanks"] then ThreatLevel = 5 elseif ( Attributes["Tanks"] or Attributes["IFV"] ) and - Attributes["ATGM"] then ThreatLevel = 4 + Attributes["ATGM"] then ThreatLevel = 4 elseif ( Attributes["Tanks"] or Attributes["IFV"] ) and - not Attributes["ATGM"] then ThreatLevel = 3 - elseif Attributes["Old Tanks"] or Attributes["APC"] then ThreatLevel = 2 - elseif Attributes["Infantry"] then ThreatLevel = 1 + not Attributes["ATGM"] then ThreatLevel = 3 + elseif Attributes["Old Tanks"] or Attributes["APC"] or Attributes["Artillery"] then ThreatLevel = 2 + elseif Attributes["Infantry"] then ThreatLevel = 1 end ThreatText = ThreatLevels[ThreatLevel+1] @@ -16718,6 +16720,8 @@ function UNIT:GetThreatLevel() if self:IsAir() then + self:E( "Air" ) + local ThreatLevels = { "Unarmed", "Tanker", @@ -16735,7 +16739,7 @@ function UNIT:GetThreatLevel() if Attributes["Fighters"] then ThreatLevel = 10 elseif Attributes["Multirole fighters"] then ThreatLevel = 9 - elseif Attributes["Interceptors"] then ThreatLevel = 8 + elseif Attributes["Battleplanes"] then ThreatLevel = 8 elseif Attributes["Attack helicopters"] then ThreatLevel = 7 elseif Attributes["Strategic bombers"] then ThreatLevel = 6 elseif Attributes["Bombers"] then ThreatLevel = 5 @@ -16750,6 +16754,8 @@ function UNIT:GetThreatLevel() if self:IsShip() then + self:E( "Ship" ) + --["Aircraft Carriers"] = {"Heavy armed ships",}, --["Cruisers"] = {"Heavy armed ships",}, --["Destroyers"] = {"Heavy armed ships",}, @@ -18024,7 +18030,7 @@ function SCORING:_EventOnHit( Event ) local TargetUnitName = "" local TargetGroup = nil local TargetGroupName = "" - local TargetPlayerName = "" + local TargetPlayerName = nil local TargetCoalition = nil local TargetCategory = nil @@ -18236,39 +18242,44 @@ function SCORING:_EventOnDeadOrCrash( Event ) PlayerKill.UNIT = PlayerKill.UNIT or Player.Hit[TargetCategory][TargetUnitName].UNIT if InitCoalition == TargetCoalition then - local ThreatLevelTarget = PlayerKill.UNIT:GetThreatLevel() + local ThreatLevelTarget, ThreatTypeTarget = PlayerKill.UNIT:GetThreatLevel() local ThreatLevelPlayer = Player.UNIT:GetThreatLevel() - local ThreatLevel = ThreatLevelTarget / ThreatLevelPlayer * 10 + local ThreatLevel = math.ceil( ThreatLevelTarget / ThreatLevelPlayer * 100 ) + self:E( { ThreatLevel = ThreatLevel, ThreatLevelTarget = ThreatLevelTarget, ThreatTypeTarget = ThreatTypeTarget, ThreatLevelPlayer = ThreatLevelPlayer } ) + Player.Penalty = Player.Penalty + ThreatLevel * 4 PlayerKill.Penalty = PlayerKill.Penalty + ThreatLevel * 4 PlayerKill.PenaltyKill = PlayerKill.PenaltyKill + 1 if Player.HitPlayers[TargetPlayerName] then -- A player killed another player - MESSAGE:New( "Player '" .. PlayerName .. "' killed friendly player '" .. TargetPlayerName .. "' " .. TargetUnitCategory .. " ( " .. TargetType .. " ) " .. + MESSAGE:New( "Player '" .. PlayerName .. "' killed friendly player '" .. TargetPlayerName .. "' " .. TargetUnitCategory .. " ( " .. ThreatTypeTarget .. " ) " .. PlayerKill.PenaltyKill .. " times. Penalty: -" .. PlayerKill.Penalty .. ". Score Total:" .. Player.Score - Player.Penalty, 5 ):ToAll() else - MESSAGE:New( "Player '" .. PlayerName .. "' killed a friendly " .. TargetUnitCategory .. " ( " .. TargetType .. " ) " .. + MESSAGE:New( "Player '" .. PlayerName .. "' killed a friendly " .. TargetUnitCategory .. " ( " .. ThreatTypeTarget .. " ) " .. PlayerKill.PenaltyKill .. " times. Penalty: -" .. PlayerKill.Penalty .. ". Score Total:" .. Player.Score - Player.Penalty, 5 ):ToAll() end self:ScoreCSV( PlayerName, "KILL_PENALTY", 1, -125, InitUnitName, InitUnitCoalition, InitUnitCategory, InitUnitType, TargetUnitName, TargetUnitCoalition, TargetUnitCategory, TargetUnitType ) else - local ThreatLevelTarget = PlayerKill.UNIT:GetThreatLevel() + + local ThreatLevelTarget, ThreatTypeTarget = PlayerKill.UNIT:GetThreatLevel() local ThreatLevelPlayer = Player.UNIT:GetThreatLevel() - local ThreatLevel = ThreatLevelTarget / ThreatLevelPlayer * 10 + local ThreatLevel = math.ceil( ThreatLevelTarget / ThreatLevelPlayer * 100 ) + self:E( { ThreatLevel = ThreatLevel, ThreatLevelTarget = ThreatLevelTarget, ThreatTypeTarget = ThreatTypeTarget, ThreatLevelPlayer = ThreatLevelPlayer } ) + Player.Score = Player.Score + ThreatLevel PlayerKill.Score = PlayerKill.Score + ThreatLevel PlayerKill.ScoreKill = PlayerKill.ScoreKill + 1 if Player.HitPlayers[TargetPlayerName] then -- A player killed another player - MESSAGE:New( "Player '" .. PlayerName .. "' killed enemy player '" .. TargetPlayerName .. "' " .. TargetUnitCategory .. " ( " .. TargetType .. " ) " .. + MESSAGE:New( "Player '" .. PlayerName .. "' killed enemy player '" .. TargetPlayerName .. "' " .. TargetUnitCategory .. " ( " .. ThreatTypeTarget .. " ) " .. PlayerKill.ScoreKill .. " times. Score: " .. PlayerKill.Score .. ". Score Total:" .. Player.Score - Player.Penalty, 5 ):ToAll() else - MESSAGE:New( "Player '" .. PlayerName .. "' killed an enemy " .. TargetUnitCategory .. " ( " .. TargetType .. " ) " .. + MESSAGE:New( "Player '" .. PlayerName .. "' killed an enemy " .. TargetUnitCategory .. " ( " .. ThreatTypeTarget .. " ) " .. PlayerKill.ScoreKill .. " times. Score: " .. PlayerKill.Score .. ". Score Total:" .. Player.Score - Player.Penalty, 5 ):ToAll() diff --git a/Moose Test Missions/SCO - Scoring/SCO-100 - Scoring of Statics/SCO-100 - Scoring of Statics.miz b/Moose Test Missions/SCO - Scoring/SCO-100 - Scoring of Statics/SCO-100 - Scoring of Statics.miz index 905b99ee1c0c06abbd37a80070861177f04673de..45d8f7c61f8113f48d1e802eecb33947b6684e66 100644 GIT binary patch delta 237681 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