diff --git a/addons/FF_Tracker/Scripts/Game/Modded/AFM_CharacterDamageManagerComponent_M.c b/addons/FF_Tracker/Scripts/Game/Modded/AFM_CharacterDamageManagerComponent_M.c new file mode 100644 index 0000000..3b4200f --- /dev/null +++ b/addons/FF_Tracker/Scripts/Game/Modded/AFM_CharacterDamageManagerComponent_M.c @@ -0,0 +1,56 @@ +modded class SCR_CharacterDamageManagerComponent : SCR_DamageManagerComponent +{ + override void OnPostInit(IEntity owner) + { + super.OnPostInit(owner); + + if (Replication.IsServer()) + GetOnDamageStateChanged().Insert(AFM_OnDamageStateChanged); + } + + protected void AFM_OnDamageStateChanged(EDamageState state) + { + Instigator instigator = GetInstigator(); + + int playerId = instigator.GetInstigatorPlayerID(); + if (playerId == 0) + return; + + PlayerManager pm = GetGame().GetPlayerManager(); + if (!pm) + return; + + int ownerId = pm.GetPlayerIdFromControlledEntity(GetOwner()); + if (ownerId == 0) + return; + + string instigatorName = pm.GetPlayerName(playerId); + string ownerName = pm.GetPlayerName(ownerId); + + string message = string.Format("AFM_FriendlyFireTracker: %1 shot at %2. Damage state %3", instigatorName, ownerName, EDamageStateToString(state)); + + Rpc(SendMessage, message); + Print(message, LogLevel.WARNING); + } + + protected string EDamageStateToString(EDamageState state) + { + switch (state) + { + case EDamageState.DESTROYED: + return "DESTROYED"; + case EDamageState.UNDAMAGED: + return "UNDAMAGED"; + case EDamageState.INTERMEDIARY: + return "INTERMEDIARY"; + } + + return state.ToString(); + } + + [RplRpc(RplChannel.Reliable, RplRcver.Owner)] + protected void SendMessage(string message) + { + Print(message, LogLevel.WARNING); + } +} \ No newline at end of file diff --git a/addons/FF_Tracker/addon.gproj b/addons/FF_Tracker/addon.gproj new file mode 100644 index 0000000..ce34c87 --- /dev/null +++ b/addons/FF_Tracker/addon.gproj @@ -0,0 +1,8 @@ +GameProject { + ID "FFTracker" + GUID "66E939434A2AB0AE" + TITLE "FF_Tracker" + Dependencies { + "58D0FB3206B6F859" + } +} \ No newline at end of file diff --git a/addons/FF_Tracker/thumbnail.png b/addons/FF_Tracker/thumbnail.png new file mode 100644 index 0000000..1d6c305 Binary files /dev/null and b/addons/FF_Tracker/thumbnail.png differ diff --git a/extras/assets/workshop.kra b/extras/assets/workshop.kra index 3f04a1e..dca7c5a 100644 Binary files a/extras/assets/workshop.kra and b/extras/assets/workshop.kra differ diff --git a/extras/assets/workshop_ff_tracker.png b/extras/assets/workshop_ff_tracker.png new file mode 100644 index 0000000..f150b85 Binary files /dev/null and b/extras/assets/workshop_ff_tracker.png differ