Damage Dealt Tracker

AdvancedData

Tracks 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

API Classes Used

ClientNPC
HitsplatApplied

Key Concepts

  • Map to track damage per NPC
  • Listen for hitsplat (damage) events
  • Check if target is an NPC
  • Get damage amount from hitsplat

Next Steps

  • Learn about HitsplatApplied events
  • Add overlay to display damage
  • Track DPS (damage per second)