se1dhe 501 Опубликовано 24 августа, 2017 (изменено) Сабж. Видимо голова уже не вывозит. Уверен, что косяк в невнимательности: Есть метод public void start (L2PcInstance player) { QuestState st = player.getQuestState(getName()); NpcHtmlMessage nhm = new NpcHtmlMessage(player.getObjectId()); String build = "<html><body><center>"; if(st.getState() == 1) { build += "<html><body>some text</body><html>"; } if (Check(player).equals("start.htm")) { st.setState(STARTED); st.set("cond","1"); build += "<html><body>some text</body><html>"; } else build += "<html><body>some text</body><html>"; build += "</center></body></html>"; nhm.setHtml(build); player.sendPacket(nhm); } есть вызов: command = command+" "+params; if(command.startsWith("ag_vipbag")) { String choise = command.substring(9).trim(); if(choise.startsWith("edit")) { int flag = Integer.parseInt(choise.substring(4).trim()); if (flag == 1) { start(player); байпас: build += "<button value=\"Квест\" action=\"bypass -h voice_ag_vipbag edit 1\" width=135 height=24 back=\"L2UI_CH3.bigbutton3_down\" fore=\"L2UI_CH3.bigbutton3\"><br1>"; При вызове метода ничего не происходит. Ткните, пожалуйста, носом. Изменено 24 августа, 2017 пользователем se1dhe Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
zGosu 396 Опубликовано 24 августа, 2017 Сабж. Видимо голова уже не вывозит. Уверен, что косяк в невнимательности: Есть метод public void start (L2PcInstance player) { QuestState st = player.getQuestState(getName()); NpcHtmlMessage nhm = new NpcHtmlMessage(player.getObjectId()); String build = "<html><body><center>"; if(st.getState() == 1) { build += "<html><body>some text</body><html>"; } if (Check(player).equals("start.htm")) { st.setState(STARTED); st.set("cond","1"); build += "<html><body>some text</body><html>"; } else build += "<html><body>some text</body><html>"; build += "</center></body></html>"; nhm.setHtml(build); player.sendPacket(nhm); } есть вызов: command = command+" "+params; if(command.startsWith("ag_vipbag")) { String choise = command.substring(9).trim(); if(choise.startsWith("edit")) { int flag = Integer.parseInt(choise.substring(4).trim()); if (flag == 1) { start(player); байпас: build += "<button value=\"Квест\" action=\"bypass -h voice_ag_vipbag edit 1\" width=135 height=24 back=\"L2UI_CH3.bigbutton3_down\" fore=\"L2UI_CH3.bigbutton3\"><br1>"; При вызове метода ничего не происходит. Ткните, пожалуйста, носом. прологируй: command = command+" "+params; if(command.startsWith("ag_vipbag")) { _log.warning("Pawet1?"); String choise = command.substring(9).trim(); if(choise.startsWith("edit")) { _log.warning("Pawet2?"); int flag = Integer.parseInt(choise.substring(4).trim()); if (flag == 1) { _log.warning("Pawet3?"); start(player); Думаю понятно дальше будет. Ничего не вылетело, смотришь: command = command+" "+params; if(command.startsWith("ag_vipbag")) Pawet1: String choise = command.substring(9).trim(); if(choise.startsWith("edit")) { Pawet1, Pawet2: int flag = Integer.parseInt(choise.substring(4).trim()); if (flag == 1) { Pawet1, Pawet2,Pawet3: Смотришь метод start Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
se1dhe 501 Опубликовано 24 августа, 2017 прологируй: command = command+" "+params; if(command.startsWith("ag_vipbag")) { _log.warning("Pawet1?"); String choise = command.substring(9).trim(); if(choise.startsWith("edit")) { _log.warning("Pawet2?"); int flag = Integer.parseInt(choise.substring(4).trim()); if (flag == 1) { _log.warning("Pawet3?"); start(player); Думаю понятно дальше будет. Ничего не вылетело, смотришь: command = command+" "+params; if(command.startsWith("ag_vipbag")) Pawet1: String choise = command.substring(9).trim(); if(choise.startsWith("edit")) { Pawet1, Pawet2: int flag = Integer.parseInt(choise.substring(4).trim()); if (flag == 1) { Pawet1, Pawet2,Pawet3: Смотришь метод start Метод start() вызывается нормально, трабла в коде самого метода. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
zGosu 396 Опубликовано 24 августа, 2017 Метод start() вызывается нормально, трабла в коде самого метода. Ну тогда логируй сам метод и смотри какие условия не срабатывают. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
se1dhe 501 Опубликовано 24 августа, 2017 if(st.getState() == 1) { build += "<html><body>some text</body><html>"; } трабла тут, но почему - не могу понять. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
SweetPain 7 Опубликовано 24 августа, 2017 (изменено) if(st.getState() == 1) { build += "<html><body>some text</body><html>"; } трабла тут, но почему - не могу понять. я нуб в данной сфере но мне 1 кажется что не правильным будет в коде после закрытия боди не закрыть html ( build += "<html><body>some text</body></html>"; ) Изменено 24 августа, 2017 пользователем SweetPain Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
se1dhe 501 Опубликовано 24 августа, 2017 я нуб в данной сфере но мне 1 кажется что не правильным будет в коде после закрытия боди не закрыть html ( build += "<html><body>some text</body></html>"; ) этот кусок не смущает? build += "</center></body></html>"; nhm.setHtml(build); player.sendPacket(nhm); Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
MeRDox 60 Опубликовано 25 августа, 2017 этот кусок не смущает? build += "</center></body></html>"; nhm.setHtml(build); player.sendPacket(nhm); Может действительно, вся проблема в том что html открывается, а не закрывается. Если хтмл открылось, оно должно закрытся, после же только новое открывать. Или же зачем после открытия хтмл, в конце после закрытия боди, откывать еще хтмл? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Desquire 451 Опубликовано 25 августа, 2017 (изменено) В джава я 0, но выше говорили, что проблема возможно в html Скорей всего, есть какой-то валидатор, который проверяет адекватность хтмл. У тебя же тут, есть не большой косяк как по мне. сейчас попробую объяснить. Есть вот такой кусок if (Check(player).equals("start.htm")) { st.setState(STARTED); st.set("cond","1"); build += "<html><body>some text</body><html>"; } else build += "<html><body>some text</body><html>"; build += "</center></body></html>"; Чучуть упростим его if (Check(player).equals("start.htm")) { build += "<html><body>some text</body><html>"; } else { build += "<html><body>some text222</body><html>"; } build += "</center></body></html>"; Получается, в build у нас или "<html><body>some text</body><html>"; или "<html><body>some text</body><html>"; и потом, ты еще раз в build добавляешь "</center></body></html>"; Итог: у тебя на выходе такой. Только из єтого момента. Я когда все написал, понял что у тебя там еще заранее в билд было большая куча всего, и итог не правильный <html><body>some text</body><html> </center></body></html>; Он не валидный. Скорей всего из-за этого и ошибка. я бы сделал вот так public void start (L2PcInstance player) { QuestState st = player.getQuestState(getName()); NpcHtmlMessage nhm = new NpcHtmlMessage(player.getObjectId()); String build = "<html><body><center>"; if(st.getState() == 1) { build += "some text getState() == 1"; } if (Check(player).equals("start.htm")) { st.setState(STARTED); st.set("cond","1"); build += "some text if TRUE"; } else { build += "some text if FALSE"; } build += "</center></body></html>"; nhm.setHtml(build); player.sendPacket(nhm); } Изменено 25 августа, 2017 пользователем Desquire 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
barinok 3 Опубликовано 29 сентября, 2017 Сабж. Видимо голова уже не вывозит. Уверен, что косяк в невнимательности: Есть метод public void start (L2PcInstance player) { QuestState st = player.getQuestState(getName()); NpcHtmlMessage nhm = new NpcHtmlMessage(player.getObjectId()); String build = "<html><body><center>"; if(st.getState() == 1) { build += "<html><body>some text</body><html>"; } if (Check(player).equals("start.htm")) { st.setState(STARTED); st.set("cond","1"); build += "<html><body>some text</body><html>"; } else build += "<html><body>some text</body><html>"; build += "</center></body></html>"; nhm.setHtml(build); player.sendPacket(nhm); } есть вызов: command = command+" "+params; if(command.startsWith("ag_vipbag")) { String choise = command.substring(9).trim(); if(choise.startsWith("edit")) { int flag = Integer.parseInt(choise.substring(4).trim()); if (flag == 1) { start(player); байпас: build += "<button value=\"Квест\" action=\"bypass -h voice_ag_vipbag edit 1\" width=135 height=24 back=\"L2UI_CH3.bigbutton3_down\" fore=\"L2UI_CH3.bigbutton3\"><br1>"; При вызове метода ничего не происходит. Ткните, пожалуйста, носом. Посмотри, как инициализируешь переменную build и что добавляешь. Т.е. на выходе: <html><body><center><html><body>... 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
se1dhe 501 Опубликовано 30 сентября, 2017 Всем спасибо. Действительно, как всегда - тупо невнимательность Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты