Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions DamageTrackerExample.sln
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,13 @@ Global
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{94C2148E-3005-4946-9C57-2CC4D8BC250B}.Debug|Any CPU.ActiveCfg = Release|Any CPU
{94C2148E-3005-4946-9C57-2CC4D8BC250B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{94C2148E-3005-4946-9C57-2CC4D8BC250B}.Release|Any CPU.Build.0 = Release|Any CPU
{94C2148E-3005-4946-9C57-2CC4D8BC250B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{94C2148E-3005-4946-9C57-2CC4D8BC250B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{235E792C-67B2-4C94-A8D3-58168B828159}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{235E792C-67B2-4C94-A8D3-58168B828159}.Debug|Any CPU.Build.0 = Debug|Any CPU
{235E792C-67B2-4C94-A8D3-58168B828159}.Release|Any CPU.ActiveCfg = Release|Any CPU
{235E792C-67B2-4C94-A8D3-58168B828159}.Release|Any CPU.Build.0 = Release|Any CPU
{235E792C-67B2-4C94-A8D3-58168B828159}.Debug|Any CPU.Build.0 = Debug|Any CPU
EndGlobalSection
EndGlobal
2 changes: 1 addition & 1 deletion DamageTrackerExample/DamageTrackerExample.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
</PropertyGroup>
<ItemGroup>
<Reference Include="DamageTrackerLib">
<HintPath>..\..\DamageTrackerPlugin\DamageTrackerUtility\DamageTrackingFramework\bin\Release\DamageTrackerLib.dll</HintPath>
<HintPath>..\..\..\DamageTrackerPlugin\DamageTrackerUtility\DamageTrackingFramework\bin\Release\DamageTrackerLib.dll</HintPath>
</Reference>
<Reference Include="Microsoft.CSharp" />
<Reference Include="RagePluginHook, Version=0.0.0.0, Culture=neutral, processorArchitecture=Amd64">
Expand Down
14 changes: 11 additions & 3 deletions DamageTrackerExample/Entry.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,9 @@ public static void Main()
{
Game.DisplayNotification("DamageTrackerExample by Variapolis ~g~Successfully Loaded");
DamageTrackerService.Start();
DamageTrackerService.OnPedTookDamage += HandleDamage; // C# Event from DamageTrackerService
DamageTrackerService.OnPlayerTookDamage += HandleDamage; // C# Event from DamageTrackerService
DamageTrackerService.OnPedTookDamage += HandlePedDamage; // C# Event from DamageTrackerService
DamageTrackerService.OnPlayerTookDamage += HandlePedDamage; // C# Event from DamageTrackerService
DamageTrackerService.OnVehicleTookDamage += HandleVehDamage; // C# Event from DamageTrackerService
GameFiber.Hibernate();
}

Expand All @@ -34,11 +35,18 @@ public static void OnUnload(bool Exit)
}

// This uses a delegate function from DamageTrackerLib - public delegate void PedTookDamageDelegate(Ped victimPed, Ped attackerPed, PedDamageInfo damageInfo)
private static void HandleDamage(Ped victim, Ped attacker, PedDamageInfo damageInfo) =>
private static void HandlePedDamage(Ped victim, Ped attacker, PedDamageInfo damageInfo) =>
Game.DisplayHelp($"~w~Ped: {victim.Model.Name} (~r~{damageInfo.Damage} ~b~{damageInfo.ArmourDamage} ~w~Dmg ({(victim.IsAlive ? "~g~Alive" : "~r~Dead")}~w~) " +
$"\n~w~Health: ~g~{victim.Health}/{victim.MaxHealth} Armor: ~b~{victim.Armor})" +
$"\n~w~Attacker: ~r~{attacker?.Model.Name ?? "None"}" +
$"\n~w~Weapon: ~y~{damageInfo.WeaponInfo.Hash.ToString()} {damageInfo.WeaponInfo.Type.ToString()} {damageInfo.WeaponInfo.Group.ToString()}" +
$"\n~w~Bone: ~r~{damageInfo.BoneInfo.BoneId.ToString()} {damageInfo.BoneInfo.Limb.ToString()} {damageInfo.BoneInfo.BodyRegion.ToString()}");

private static void HandleVehDamage(Vehicle vehicle, Ped attacker, VehDamageInfo damageInfo) =>
Game.DisplayHelp($"~w~Vehicle: {vehicle.Model.Name} (~r~{damageInfo.Damage} ~w~Dmg ({(vehicle.IsAlive ? "~g~Alive" : "~r~Dead")}~w~) " +
$"\n~w~Health: ~g~{vehicle.Health}/{vehicle.MaxHealth})" +
$"\n~w~Attacker: ~r~{attacker?.Model.Name ?? "None"}" +
$"\n~w~Weapon: ~y~{damageInfo.WeaponInfo.Hash.ToString()} {damageInfo.WeaponInfo.Type.ToString()} {damageInfo.WeaponInfo.Group.ToString()}" +
$"\n~w~Coll Loc: ~r~({damageInfo.LastCollisionPosition.X}, {damageInfo.LastCollisionPosition.Y}, {damageInfo.LastCollisionPosition.Z})");
}
}
4 changes: 2 additions & 2 deletions DamageTrackerLSPDFRExample/DamageTrackerLSPDFRExample.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -33,10 +33,10 @@
</PropertyGroup>
<ItemGroup>
<Reference Include="DamageTrackerLib">
<HintPath>..\..\DamageTrackerPlugin\DamageTrackerUtility\DamageTrackingFramework\bin\Release\DamageTrackerLib.dll</HintPath>
<HintPath>..\..\..\DamageTrackerPlugin\DamageTrackerUtility\DamageTrackingFramework\bin\Release\DamageTrackerLib.dll</HintPath>
</Reference>
<Reference Include="LSPD First Response">
<HintPath>..\..\Dependencies\LSPD First Response.dll</HintPath>
<HintPath>..\packages\LSPD First Response.dll</HintPath>
</Reference>
<Reference Include="RagePluginHook, Version=0.0.0.0, Culture=neutral, processorArchitecture=Amd64">
<HintPath>..\packages\RagePluginHook.1.98.0\lib\net472\RagePluginHook.dll</HintPath>
Expand Down
19 changes: 14 additions & 5 deletions DamageTrackerLSPDFRExample/Main.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,24 +18,33 @@ private void HandleDutyChanged(bool onduty)
if (onduty)
{
DamageTrackerService.Start();
DamageTrackerService.OnPedTookDamage += HandleDamage;
DamageTrackerService.OnPlayerTookDamage += HandleDamage;
DamageTrackerService.OnPedTookDamage += HandlePedDamage;
DamageTrackerService.OnPlayerTookDamage += HandlePedDamage;
DamageTrackerService.OnVehicleTookDamage += HandleVehDamage;
}
else
{
DamageTrackerService.Stop();
DamageTrackerService.OnPedTookDamage -= HandleDamage;
DamageTrackerService.OnPlayerTookDamage -= HandleDamage;
DamageTrackerService.OnPedTookDamage -= HandlePedDamage;
DamageTrackerService.OnPlayerTookDamage -= HandlePedDamage;
DamageTrackerService.OnVehicleTookDamage -= HandleVehDamage;
}
}

private static void HandleDamage(Ped victim, Ped attacker, PedDamageInfo damageInfo) =>
private static void HandlePedDamage(Ped victim, Ped attacker, PedDamageInfo damageInfo) =>
Game.DisplayHelp($"~w~Ped: {victim.Model.Name} (~r~{damageInfo.Damage} ~b~{damageInfo.ArmourDamage} ~w~Dmg ({(victim.IsAlive ? "~g~Alive" : "~r~Dead")}~w~) " +
$"\n~w~Health: ~g~{victim.Health}/{victim.MaxHealth} Armor: ~b~{victim.Armor})" +
$"\n~w~Attacker: ~r~{attacker?.Model.Name ?? "None"}" +
$"\n~w~Weapon: ~y~{damageInfo.WeaponInfo.Hash.ToString()} {damageInfo.WeaponInfo.Type.ToString()} {damageInfo.WeaponInfo.Group.ToString()}" +
$"\n~w~Bone: ~r~{damageInfo.BoneInfo.BoneId.ToString()} {damageInfo.BoneInfo.Limb.ToString()} {damageInfo.BoneInfo.BodyRegion.ToString()}");

private static void HandleVehDamage(Vehicle vehicle, Ped attacker, VehDamageInfo damageInfo) =>
Game.DisplayHelp($"~w~Vehicle: {vehicle.Model.Name} (~r~{damageInfo.Damage} ~w~Dmg ({(vehicle.IsAlive ? "~g~Alive" : "~r~Dead")}~w~) " +
$"\n~w~Health: ~g~{vehicle.Health}/{vehicle.MaxHealth})" +
$"\n~w~Attacker: ~r~{attacker?.Model.Name ?? "None"}" +
$"\n~w~Weapon: ~y~{damageInfo.WeaponInfo.Hash.ToString()} {damageInfo.WeaponInfo.Type.ToString()} {damageInfo.WeaponInfo.Group.ToString()}" +
$"\n~w~Coll Loc: ~r~({damageInfo.LastCollisionPosition.X}, {damageInfo.LastCollisionPosition.Y}, {damageInfo.LastCollisionPosition.Z})");

public override void Finally() => Game.DisplayNotification("DTF LSPDFR Example Unloaded.");
}
}