Main 85 Опубликовано 16 июля, 2012 (изменено) Да и скорее не только знатоки Java, а исходников)) Пишу скрипт (точнее квест) и мне надо вот вызвать одну функцию onBypassFeedback(), но чтоб её вызвать надо обьявить переменную типа L2DonateInstance, но не всё так просто L2DonateInstance имеет 2 параметра objectId и template типа L2NpcTemplate. public L2DonateInstance(int objectId, L2NpcTemplate template) { super(objectId, template); } // вот она Что мне надо в моём скрипте сюда вписать? Я вот этого понять не могу... L2DonateInstance st = new L2DonateInstance(objectId, template); Изменено 16 июля, 2012 пользователем Main Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Yokus 19 Опубликовано 16 июля, 2012 Всё что я могу посоветовать - попробовать найти другой путь: писать обращение к квесту от нпц, а не наоборот. Желательно видеть весь код Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Main 85 Опубликовано 16 июля, 2012 Зачем весь код? Мне надо обьявить переменную типа L2DonateInstance, это всё что нужно! Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Yokus 19 Опубликовано 16 июля, 2012 (изменено) Фишка в том, что метод onBypassFeedback() вызывается сам, когда игрок обращается к нпц, при помощи bypass. Пока ищу где же создаются новые объекты классов L2NpcInstance и др. UPD нашёл. первый парметр - objectId - генерирование идентификатора IdFactory.getInstance().getNextId(). Второй берётся из БД. NpcTable.getInstance().getTemplate(Айди нпц) Изменено 16 июля, 2012 пользователем Yokus Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Saick 46 Опубликовано 16 июля, 2012 public class L2DonateInstance extends L2FolkInstance { public L2DonateInstance(int objectId, L2NpcTemplate template) { super(objectId, template); } @Override public String getHtmlPath(int npcId, int val) { String pom = ""; if (val == 0) pom = "" + npcId; else pom = npcId + "-" + val; return "data/html/donat/" + pom + ".htm";//ХТМЛ файла } @Override public void onBypassFeedback(L2PcInstance player, String command) { StringTokenizer st = new StringTokenizer(command, " "); String actualCommand = st.nextToken(); // Get actual command if (actualCommand.equalsIgnoreCase("comanda")) { Тут метод } } } Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Main 85 Опубликовано 16 июля, 2012 (изменено) int objectId = IdFactory.getInstance().getNextId(); L2NpcInstance template = NpcTable.getInstance().getTemplate(npcId); ? Saick, мне не надо его редактировать, а лишь создать объект! Изменено 16 июля, 2012 пользователем Main Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
AlexMan 27 Опубликовано 16 июля, 2012 Да и скорее не только знатоки Java, а исходников)) Пишу скрипт (точнее квест) и мне надо вот вызвать одну функцию onBypassFeedback(), но чтоб её вызвать надо обьявить переменную типа L2DonateInstance, но не всё так просто L2DonateInstance имеет 2 параметра objectId и template типа L2NpcTemplate. public L2DonateInstance(int objectId, L2NpcTemplate template) { super(objectId, template); } // вот она Что мне надо в моём скрипте сюда вписать? Я вот этого понять не могу... L2DonateInstance st = new L2DonateInstance(objectId, template); не пойму к чему весь этот геморой? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Main 85 Опубликовано 16 июля, 2012 L2NpcTemplate template = NpcTable.getInstance().getTemplate(NpcID); Ругается: L2NpcTemplate cannot be resolved to a type Но я в исходниках нашел L2NpcTemplate summonTemplate = NpcTable.getInstance().getTemplate(Config.SOB_NPC); Какая разница? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Main 85 Опубликовано 16 июля, 2012 //close Yokus - большое спасибо, очень помог! Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
JI.U.C.I.F.E.R 17 Опубликовано 16 июля, 2012 ) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты