When player start hit a RB show in global the HP% and ubication [HELP]

fa1thDEV

Baron
Customer
Hello, I made this code about the tittle, but not working, what's my error?

JavaScript:
package services;

import l2.gameserver.Announcements;
import l2.gameserver.listener.actor.OnAttackListener;
import l2.gameserver.listener.actor.OnDeathListener;
import l2.gameserver.model.Creature;
import l2.gameserver.model.Player;
import l2.gameserver.model.instances.RaidBossInstance;
import l2.gameserver.model.actor.listener.CharListenerList;


import java.util.HashSet;
import java.util.Set;

public class RaidBossHpAnnouncer implements OnAttackListener, OnDeathListener, ScriptFile {
    private static final RaidBossHpAnnouncer INSTANCE = new RaidBossHpAnnouncer();

    // Conjunto para rastrear los porcentajes ya anunciados por cada Raid Boss
    private final Set<Integer> notifiedPercentages = new HashSet<>();

    @Override
    public void onAttack(Creature attacker, Creature target) {
        if (attacker instanceof Player player && target instanceof RaidBossInstance raidBoss) {
            double currentHp = raidBoss.getCurrentHp();
            double maxHp = raidBoss.getMaxHp();
            int hpPercentage = (int) ((currentHp / maxHp) * 100);

            // Verifica si el porcentaje ya ha sido anunciado
            if (!notifiedPercentages.contains(hpPercentage)) {
                notifiedPercentages.add(hpPercentage);

                };

                if (message != null) {
                    announceToAll(message);
                }
            }
        }
    }



            // Limpia los porcentajes notificados para este Raid Boss
            notifiedPercentages.clear();
        }
    }

    private void announceToAll(String message) {
        Say2 announcement = new Say2(0, ChatType.ANNOUNCEMENT, "", message);
        Announcements.getInstance().announceToAll(announcement);
    }

    @Override
    public void onLoad() {
        CharListenerList.addGlobal(INSTANCE);
    }

    @Override
    public void onReload() {
        onShutdown();
        onLoad();
    }

    @Override
    public void onShutdown() {
        CharListenerList.removeGlobal(INSTANCE);
    }
}
 
Last edited:
Back
Top