SambukaRes 0 Опубликовано 24 апреля, 2020 Добрый день. Подскажите в чем проблема может быть,не выводит список обычных рейдбоссов. Открывает команду .boss ,но там пусто package ai; import javolution.text.TextBuilder; import scripts.commands.IVoicedCommandHandler; import scripts.commands.VoicedCommandHandler; import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; import net.sf.l2j.gameserver.network.serverpackets.NpcHtmlMessage; import net.sf.l2j.mysql.Close; import net.sf.l2j.mysql.Connect; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import net.sf.l2j.L2DatabaseFactory; public class RaidBossSpawnManager implements IVoicedCommandHandler { private static final int[] BOSSES = {29001, 29006, 29014, 29019, 29020, 29022, 29028, 29045, 25102}; // QueenAnt, Core, Orfen, Antharas, Baium, Zaken, Valakas, Frintezza private static final String [] VOICED_COMMANDS = {"boss"}; @Override public boolean useVoicedCommand(String command, L2PcInstance activeChar, String target) { if (activeChar == null) { return false; } if (command.startsWith("boss")) { NpcHtmlMessage boss = new NpcHtmlMessage(5); TextBuilder html = new TextBuilder("<html><body><br>"); html.append("<html><title>RespawnBoss</title><body><br><center>"); html.append("<table width=256>"); html.append("<tr><td><font color=\"9CC300\">Имя Рейд Босса</font></td>"); html.append("<td><font color=\"9CC300\">Статус</font></td></tr>"); for (int bossid : BOSSES) { Connect con = null; PreparedStatement st = null; ResultSet rs = null; try { con = L2DatabaseFactory.get(); con.setTransactionIsolation(1); st = con.prepareStatement("SELECT spawn_date, status FROM raidboss_spawnlist WHERE boss_id=?"); st.setInt(1, bossid); rs = st.executeQuery(); if(rs.next()) { int gstatus = rs.getInt("status"); long respawn = rs.getLong("spawn_date"); html.append("<tr><td><font color=\"FF0000\">" + BossName(bossid) + "</font></td>"); switch(gstatus) { case 1: html.append("<td><font color=\"008000\">Жив</font>" + "<br1></td></tr>"); break; case 0: if (System.currentTimeMillis() < respawn) { int hours = (int) ((respawn - System.currentTimeMillis()) / 1000 / 60 / 60); int mins = (int) (((respawn - (hours * 60 * 60 * 1000)) - System.currentTimeMillis()) / 1000 / 60); html.append("<td><font color=\"FFFFFF\">Респавн:</font><font color=\"32C332\"> " + hours + " ч. " + mins + " мин.</font><br1></td></tr>"); } break; default: html.append("<td><font color=\"FFFFFF\">Атакуют</font>" + "<br1></td></tr>"); } } } catch (SQLException var10) { ; } finally { Close.CSR(con, st, rs); } } html.append("</table><br><img src=\"L2UI_CH3.herotower_deco\" width=256 height=32><br>"); html.append("</center></body></html>"); boss.setHtml(html.toString()); activeChar.sendPacket(boss); return true; } return false; } public String getDescription(String command) { if (command.equals("boss")) { return "Показать статус Эпик Босов"; } return null; } @Override public String[] getVoicedCommandList() { return VOICED_COMMANDS; } public static void main(String[] args) { VoicedCommandHandler.getInstance().registerVoicedCommandHandler(new RaidBossSpawnManager()); } public static final String BossName(int id) { switch (id) { case 25102: return "Халява"; } return "null"; } } Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Smowk 46 Опубликовано 24 апреля, 2020 1 час назад, SambukaRes сказал: Добрый день. Подскажите в чем проблема может быть,не выводит список обычных рейдбоссов. Открывает команду .boss ,но там пусто package ai; import javolution.text.TextBuilder; import scripts.commands.IVoicedCommandHandler; import scripts.commands.VoicedCommandHandler; import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; import net.sf.l2j.gameserver.network.serverpackets.NpcHtmlMessage; import net.sf.l2j.mysql.Close; import net.sf.l2j.mysql.Connect; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import net.sf.l2j.L2DatabaseFactory; public class RaidBossSpawnManager implements IVoicedCommandHandler { private static final int[] BOSSES = {29001, 29006, 29014, 29019, 29020, 29022, 29028, 29045, 25102}; // QueenAnt, Core, Orfen, Antharas, Baium, Zaken, Valakas, Frintezza private static final String [] VOICED_COMMANDS = {"boss"}; @Override public boolean useVoicedCommand(String command, L2PcInstance activeChar, String target) { if (activeChar == null) { return false; } if (command.startsWith("boss")) { NpcHtmlMessage boss = new NpcHtmlMessage(5); TextBuilder html = new TextBuilder("<html><body><br>"); html.append("<html><title>RespawnBoss</title><body><br><center>"); html.append("<table width=256>"); html.append("<tr><td><font color=\"9CC300\">Имя Рейд Босса</font></td>"); html.append("<td><font color=\"9CC300\">Статус</font></td></tr>"); for (int bossid : BOSSES) { Connect con = null; PreparedStatement st = null; ResultSet rs = null; try { con = L2DatabaseFactory.get(); con.setTransactionIsolation(1); st = con.prepareStatement("SELECT spawn_date, status FROM raidboss_spawnlist WHERE boss_id=?"); st.setInt(1, bossid); rs = st.executeQuery(); if(rs.next()) { int gstatus = rs.getInt("status"); long respawn = rs.getLong("spawn_date"); html.append("<tr><td><font color=\"FF0000\">" + BossName(bossid) + "</font></td>"); switch(gstatus) { case 1: html.append("<td><font color=\"008000\">Жив</font>" + "<br1></td></tr>"); break; case 0: if (System.currentTimeMillis() < respawn) { int hours = (int) ((respawn - System.currentTimeMillis()) / 1000 / 60 / 60); int mins = (int) (((respawn - (hours * 60 * 60 * 1000)) - System.currentTimeMillis()) / 1000 / 60); html.append("<td><font color=\"FFFFFF\">Респавн:</font><font color=\"32C332\"> " + hours + " ч. " + mins + " мин.</font><br1></td></tr>"); } break; default: html.append("<td><font color=\"FFFFFF\">Атакуют</font>" + "<br1></td></tr>"); } } } catch (SQLException var10) { ; } finally { Close.CSR(con, st, rs); } } html.append("</table><br><img src=\"L2UI_CH3.herotower_deco\" width=256 height=32><br>"); html.append("</center></body></html>"); boss.setHtml(html.toString()); activeChar.sendPacket(boss); return true; } return false; } public String getDescription(String command) { if (command.equals("boss")) { return "Показать статус Эпик Босов"; } return null; } @Override public String[] getVoicedCommandList() { return VOICED_COMMANDS; } public static void main(String[] args) { VoicedCommandHandler.getInstance().registerVoicedCommandHandler(new RaidBossSpawnManager()); } public static final String BossName(int id) { switch (id) { case 25102: return "Халява"; } return "null"; } } Заверни пожалуйста в споил ! Тав в низу у тебя они не записаны, потому и не показует !!! Спойлер package ai; import javolution.text.TextBuilder; import scripts.commands.IVoicedCommandHandler; import scripts.commands.VoicedCommandHandler; import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; import net.sf.l2j.gameserver.network.serverpackets.NpcHtmlMessage; import net.sf.l2j.mysql.Close; import net.sf.l2j.mysql.Connect; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import net.sf.l2j.L2DatabaseFactory; public class RaidBossSpawnManager implements IVoicedCommandHandler { private static final int[] BOSSES = {29001, 29006, 29014, 29019, 29020, 29022, 29028, 29045, 25102}; // QueenAnt, Core, Orfen, Antharas, Baium, Zaken, Valakas, Frintezza private static final String [] VOICED_COMMANDS = {"boss"}; @Override public boolean useVoicedCommand(String command, L2PcInstance activeChar, String target) { if (activeChar == null) { return false; } if (command.startsWith("boss")) { NpcHtmlMessage boss = new NpcHtmlMessage(5); TextBuilder html = new TextBuilder("<html><body><br>"); html.append("<html><title>RespawnBoss</title><body><br><center>"); html.append("<table width=256>"); html.append("<tr><td><font color=\"9CC300\">Имя Рейд Босса</font></td>"); html.append("<td><font color=\"9CC300\">Статус</font></td></tr>"); for (int bossid : BOSSES) { Connect con = null; PreparedStatement st = null; ResultSet rs = null; try { con = L2DatabaseFactory.get(); con.setTransactionIsolation(1); st = con.prepareStatement("SELECT spawn_date, status FROM raidboss_spawnlist WHERE boss_id=?"); st.setInt(1, bossid); rs = st.executeQuery(); if(rs.next()) { int gstatus = rs.getInt("status"); long respawn = rs.getLong("spawn_date"); html.append("<tr><td><font color=\"FF0000\">" + BossName(bossid) + "</font></td>"); switch(gstatus) { case 1: html.append("<td><font color=\"008000\">Жив</font>" + "<br1></td></tr>"); break; case 0: if (System.currentTimeMillis() < respawn) { int hours = (int) ((respawn - System.currentTimeMillis()) / 1000 / 60 / 60); int mins = (int) (((respawn - (hours * 60 * 60 * 1000)) - System.currentTimeMillis()) / 1000 / 60); html.append("<td><font color=\"FFFFFF\">Респавн:</font><font color=\"32C332\"> " + hours + " ч. " + mins + " мин.</font><br1></td></tr>"); } break; default: html.append("<td><font color=\"FFFFFF\">Атакуют</font>" + "<br1></td></tr>"); } } } catch (SQLException var10) { ; } finally { Close.CSR(con, st, rs); } } html.append("</table><br><img src=\"L2UI_CH3.herotower_deco\" width=256 height=32><br>"); html.append("</center></body></html>"); boss.setHtml(html.toString()); activeChar.sendPacket(boss); return true; } return false; } public String getDescription(String command) { if (command.equals("boss")) { return "Показать статус Эпик Босов"; } return null; } @Override public String[] getVoicedCommandList() { return VOICED_COMMANDS; } public static void main(String[] args) { VoicedCommandHandler.getInstance().registerVoicedCommandHandler(new RaidBossSpawnManager()); } public static final String BossName(int id) { switch (id) { case 25102: return "Халява"; //продолжаешь список case 29001: return "QueenAnt"; case 29006: return "Core"; //допишешь остальных по примеру этом. } return "null"; } } Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
SambukaRes 0 Опубликовано 24 апреля, 2020 Так я пытаюсь взять список с raidboss_spawnlist , а не с grandboss. У меня прописан халява,но он не высветился. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Edgar 356 Опубликовано 24 апреля, 2020 потому что данные в бд не обновляются, ибо метод закоменчен в ядре Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Misterius 0 Опубликовано 24 апреля, 2020 Чьи исходы? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты