- 0
This community uses essential cookies to function properly. Non-essential cookies and third-party services are used only with your consent. Read our Privacy Policy and We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..
Question
Sawadee
Hello guys i want this feature so bad and if someone could adapt it for acis i will be glad take a look at the code below.
package handlers.voice; import javolution.text.TextBuilder; import ru.la2bygaga.gameserver.datatables.NpcTable; import ru.la2bygaga.gameserver.handler.IVoicedCommandHandler; import ru.la2bygaga.gameserver.handler.VoicedCommandHandler; import ru.la2bygaga.gameserver.instancemanager.GrandBossManager; import ru.la2bygaga.gameserver.model.actor.instance.L2PcInstance; import ru.la2bygaga.gameserver.model.entity.GrandBossState; import ru.la2bygaga.gameserver.network.serverpackets.NpcHtmlMessage; public class GrandBossSpawn implements IVoicedCommandHandler { private static final int[] BOSSES = {29001, 29006, 29014, 29019, 29020, 29022, 29028, 29045}; // QueenAnt, Core, Orfen, Antharas, Baium, Zaken, Valakas, Frintezza private static final String [] VOICED_COMMANDS = {"epic"}; @Override public boolean useVoicedCommand(String command, L2PcInstance activeChar, String target) { if (activeChar == null) { return false; } if (command.startsWith("epic")) { NpcHtmlMessage epic = new NpcHtmlMessage(5); TextBuilder html = new TextBuilder("<html><body><br>"); html.append("<html><title>Grand Boss Info By Dleogr</title><body><br><center>"); html.append("<img src=\"legen.logogo\" width=231 height=76><br><br>"); for (int bossid : BOSSES) { String name = NpcTable.getInstance().getTemplate(bossid).getName(); long delay = GrandBossManager.getInstance().getGrandBossRespawnDate(bossid); GrandBossState.StateEnum state = GrandBossManager.getInstance().getGrandBossSpawnState(bossid); html.append("<font color=\"00C3FF\">" + name + "</font>: <font color=\""); switch (state) { case NOTSPAWN: html.append("FFFFFF\">Sleep/Not spawn</font>" + "<br1>"); //Спит или не заспавнен break; case ALIVE: html.append("9CC300\">Is Alive</font>" + "<br1>"); //Живой break; case DEAD: html.append("FFFFFF\">Is Dead </font>" + "<br1>"); //Вот-вот умер break; case INTERVAL: if (System.currentTimeMillis() < delay) { // Мертв int hours = (int) ((delay - System.currentTimeMillis()) / 1000 / 60 / 60); if (hours < 10) { int mins = (int) (((delay - (hours * 60 * 60 * 1000)) - System.currentTimeMillis()) / 1000 / 60); html.append("FFFFFF\">Respawn in:</font><font color=\"32C332\"> " + hours + " ч. " + mins + " мин.</font><br1>"); } else { html.append("FFFFFF\">Is Dead</font><br1>"); //Еще мертв } } else { html.append("9CC300\">Is Now Alive</font><br1>"); // Ожил (delay = currentUnixTime) } // либо delay < currentUnixTime но флаг INTERVAL еще не снят break; // TODO: Проверить, возможно ли такое вообще case SLEEP: html.append("FFFFFF\">Sleep</font>" + "<br1>"); // Точно спит break; case UNKNOWN: html.append("FFFFFF\">Unknown</font>" + "<br1>"); // Хз как так - проверь БД grandboss_intervallist break; } } html.append("<br><img src=\"L2UI_CH3.herotower_deco\" width=256 height=32><br>"); html.append("</center></body></html>"); epic.setHtml(html.toString()); activeChar.sendPacket(epic); return true; } return false; } @Override public String getDescription(String command) { if (command.equals("epic")) { return "Показать статус Эпик Босов"; } return null; } @Override public String[] getVoicedCommandList() { return VOICED_COMMANDS; } public static void main(String[] args) { VoicedCommandHandler.getInstance().registerVoicedCommandHandler(new GrandBossSpawn()); } }Edited by Sawadee8 answers to this question
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now