[COMPARTILHAR] Anunciar item descartado da máfia (precisa especificar id do item) (bom para itens épicos, anunciar funciona apenas a partir de quedas da máfia)
PT: O código é atualizado e só requer IDS para anunciar, verificar se o item já foi descartado antes para poder anunciá-lo para evitar spam no bate-papo se alguém continuar jogando e coletá-lo de volta (itemInstance.getLastDropTime() == 0), agora você pode retornar os itens para dropable = true para que os jogadores possam soltá-los quando tiverem karma, (Quando outros jogadores coletarem as gotas PK, elas não serão mais anunciadas).
BR: O código está atualizado e somente necessita de IDS para anunciar, verifica se o item já foi dropado antes pra poder anunciar pra evitar spam no chat caso alguém fique jogando e catando de volta (itemInstance.getLastDropTime() == 0), agora você pode retornar os itens para dropable = true para poder os jogadores deixarem dropar quando estiver com karma, (quando outros jogadores catarem os drops de pk não vai anunciar mais).
Java:
pacote Anunciar;
importar l2.gameserver.Announcements;
importar l2.gameserver.listener.actor.player.OnItemPickupListener;
importar l2.gameserver.model.Player;
importar l2.gameserver.model.actor.listener.PlayerListenerList;
importar l2.gameserver.model.items.ItemInstance;
importar l2.gameserver.network.l2.components.ChatType;
importar l2.gameserver.scripts.Functions;
importar l2.gameserver.scripts.ScriptFile;
importar java.io.BufferedReader;
importar java.io.File;
importar java.io.FileReader;
importar java.io.IOException;
importar java.time.LocalTime;
importar java.time.format.DateTimeFormatter;
importar java.util.ArrayList;
importar java.util.List;
public class Announce estende Functions implementa ScriptFile, OnItemPickupListener {
private static final List<Integer> itemIds = new ArrayList<>();
@Override
public void onLoad() {
PlayerListenerList.addGlobal(este);
loadItemIds();
System.out.println("Script de anunciar drops ativossss
}
@Override
public void onReload() {}
@Override
public void onShutdown() {
PlayerListenerList.removeGlobal(este);
}
@Override
public void onItemPickup(Player player, itemInstance itemInstance) {
if (itemIds.contains(itemInstance.getItemId()) && itemInstance.getLastDropTime() == 0) {
String currentTime = LocalTime.now().format(DateTimeFormatter.ofPattern("HH:mm:ss"));
String playerName = player.getName();
String itemName = itemInstance.getName();
String message = String.format("[%s] >Atenção< : O jogador %s obteve o item [%s]", currentTime, playerName, itemName);
System.out.println(mensagem);
Announcements.getInstance().announceToAll(mensagem, ChatType.SHOUT);
}
}
private void loadItemIds() {
try (leitor BufferedReader = new BufferedReader(new FileReader(new File("config/itemids.properties")))) {
Linha de corda;
enquanto ((linha = reader.readLine()) != null) {
int itemId = Integer.parseInt(line.trim());
itemIds.add(itemId);
System.out.println("Ids dos itens carregados corretamente - Sistema de Anunciar Drops");
}
} catch (IOException e) {
System.err.println("Erro ao carregar IDs de itens do arquivo config/itemids.properties: " + e.getMessage());
}
}
}
[/CÓDIGO]
[config/itemids.properties]
[CODE=java]236[/CÓDIGO]
[ATTACH=completo]3700[/ATTACH]}
[/QUOTE]
funciou aqui, como faço pra adicionar duas menssagens?