1
0
KF2-Dev-Scripts/KFGame/KFMatchStats.uci
2020-12-13 18:01:13 +03:00

53 lines
2.6 KiB
Plaintext

//=============================================================================
// MatchStats
//=============================================================================
// Contains ID for weapons to be recorded in the AAR (EphemeralMatchStats)
//=============================================================================
// Killing Floor 2
// Copyright (C) 2015 Tripwire Interactive LLC
// - Zane Gholson
//=============================================================================
/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
// Global gameplay stat defines
`if(`isdefined(INCLUDE_MATCH_STATS_EVENT))
const MATCH_EVENT_HEADSHOT = 0;
const MATCH_EVENT_DOSH_EARNED = 1;
const MATCH_EVENT_DAMAGE_DEALT = 2;
const MATCH_EVENT_DAMAGE_TAKEN = 3;
const MATCH_EVENT_HEAL_GIVEN = 4;
const MATCH_EVENT_HEAL_RECEIVED = 5;
/** Match has ended */
const MATCH_EVENT_MAX_EVENTID = 0x0000FFFF;
`endif
// Change this or predefine it to your class type
`if(`notdefined(MatchStatsClass))
`define MatchStatsClass class'EphemeralMatchStats'
`endif
`define MatchStatId(ID) `MatchStatsClass.const.MATCH_EVENT_`ID
`define GetKFPC(C) if(P!=None && P.PlayerControlled()) KFPlayerController(C).MatchStats
//Take in playercontroller to access the MatchStats object on it.
`define RecordBossMurderer(KFPC) if(`KFPC != none && `KFPC.MatchStats != none ){`KFPC.MatchStats.bKilledBoss = true;}
`define RecordAARIntStat(KFPC,ID,Value) if(`KFPC != none && `KFPC.MatchStats != none ){`KFPC.MatchStats.RecordIntStat(`MatchStatId(`ID),`Value);}
`define RecordAARZedKill(KFPC,MonsterClass,DT) if(`KFPC != none && `KFPC.MatchStats != none ){`KFPC.MatchStats.RecordZedKill(`MonsterClass,`DT);}
`define RecordAARPerkXPGain(KFPC,PerkClass,Value,BonusValue) if(`KFPC != none && `KFPC.MatchStats != none && `PerkClass != none){`KFPC.MatchStats.RecordPerkXPGain(`PerkClass,`Value,`BonusValue);}
`define RecordSecondaryXPGain(KFPC,PerkClass,Value) if(`KFPC != none && `KFPC.MatchStats != none && `PerkClass != none){`KFPC.MatchStats.RecordSecondaryXPGain(`PerkClass,`Value);}
//Each Damage Type is going to have an ID that we are setting here. We pass this id in to the function RecordWeaponDamage. From there it is resolved
`define RecordWeaponDamage(InstigatedBy,KFDT,DamageValue,TargetPawn,HitZoneIdx) if(`KFDT != none){`MatchStatsClass.static.RecordWeaponDamage(`InstigatedBy,`KFDT,`KFDT.default.WeaponDef,`DamageValue,`TargetPawn,`HitZoneIdx);}
`define RecordWeaponHeadShot(PC,DT) if(`PC != none && `DT != none){`MatchStatsClass.static.RecordWeaponHeadShot(`PC,`DT);}