Damage Dealt Tracker
AdvancedDataTracks damage dealt to NPCs. Shows how to monitor combat and calculate damage.
18 min read
What It Does
Tracks damage dealt to NPCs. Shows how to monitor combat and calculate damage.
Source Code
java
1package com.example;
2
3import net.runelite.api.Client;
4import net.runelite.api.NPC;
5import net.runelite.api.events.HitsplatApplied;
6import net.runelite.client.eventbus.Subscribe;
7import net.runelite.client.plugins.Plugin;
8import net.runelite.client.plugins.PluginDescriptor;
9import javax.inject.Inject;
10import java.util.HashMap;
11import java.util.Map;
12
13@PluginDescriptor(
14 name = "Damage Tracker",
15 description = "Tracks damage dealt"
16)
17public class DamageTrackerPlugin extends Plugin {
18 @Inject
19 private Client client;
20
21 private Map<Integer, Integer> totalDamage = new HashMap<>();
22
23 @Subscribe
24 public void onHitsplatApplied(HitsplatApplied event) {
25 if (event.getActor() instanceof NPC) {
26 NPC npc = (NPC) event.getActor();
27 int damage = event.getHitsplat().getAmount();
28 totalDamage.put(npc.getIndex(),
29 totalDamage.getOrDefault(npc.getIndex(), 0) + damage);
30 System.out.println("Damage to NPC " + npc.getId() + ": " + damage);
31 }
32 }
33}Code Annotations
Line 20
Map to track damage per NPC
Line 23
Listen for hitsplat (damage) events
Line 25
Check if target is an NPC
Line 27
Get damage amount from hitsplat