Nice 4 Опубликовано 7 мая, 2015 (изменено) Здравствуйте. Вот озадачился, хочу свой квест добавить в сборку.. Вроде бы уже почти и работает)) но отображается не корректно.. Буду весьма признателен за помощь. Проблема в следующем : Нужно отредактировать награду отображаемую в этих квестовых окнах. Вот кусочек из кода квеста, красным обозначил цифру которая отвечает за отображение награды в квесте. super(1, Q00001_LettersOfLove.class.getSimpleName(), "Letters of Love"); public Q00001_LettersOfLove() { super(1, Q00001_LettersOfLove.class.getSimpleName(), "Letters of Love"); addStartNpc(DARIN); addTalkId(DARIN, ROXXY, BAULRO); registerQuestItems(DARINS_LETTER, ROXXYS_KERCHIEF, DARINS_RECEIPT, BAULROS_POTION); } Как я понял эта цифра - ID самого квеста. Но при создании своего квеста и написав вместо этой цифры - ID своего квеста, квест начинает ругатся. Если написать ID любого, другого квеста - то будет показывать награду квеста соответствующего написаному ID. И вот у меня вопрос, как добавить свой ID квеста в этот самый (super)? или хотя бы подскажите где хранятся остальные файлы с наградами за КВ. Заранее спасибо Думаю понятно описал суть проблемы.. Изменено 7 мая, 2015 пользователем Nice Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
2terege 67 Опубликовано 7 мая, 2015 А зачем тебе чтобы он показывал эту награду. Делай без этого. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Nice 4 Опубликовано 7 мая, 2015 (изменено) А зачем тебе чтобы он показывал эту награду. Делай без этого. Хотелось бы разобраться в этой структуре Если есть мнение , поделитесь.. с меня + Просто есть такая затея, сделать свою цепочку квестов. Начал копать и в ступор попал.. Изменено 7 мая, 2015 пользователем Nice Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
2terege 67 Опубликовано 7 мая, 2015 Хотелось бы разобраться в этой структуре Если есть мнение , поделитесь.. с меня + Просто есть такая затея, сделать свою цепочку квестов. Начал копать и в ступор попал.. Покажи ошибку на что ругается . 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ImmortalPony 126 Опубликовано 7 мая, 2015 пересмотрите данную ссылку http://www.lineagegamebox.ru/forums/index.php?showtopic=138 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
2terege 67 Опубликовано 7 мая, 2015 (изменено) пересмотрите данную ссылку http://www.lineagegamebox.ru/forums/index.php?showtopic=138 qn = "2007_noblesse" super(2007, 2007_noblesse, "Letters of Love"); Я сам к этому склоняюсь могу и ошибатся super(3232, Q3232_LettersOfLove.class.getSimpleName(), "Letters of Love"); А втом мануале чета ненашол то что сдесь думаю Часто полезно определять имя квеста в переменной, в начале скрипта (обычно используется "qn").Добавляем переменную названия квеста в секции описания переменных: qn = "2007_noblesse" Эту переменную можно использовать в различных проверках на состояние квеста, а также в секции описания инициализации самого квеста в окончании вашего скрипта, для того, что бы инициализировать ваш квест и зарегистрировать его в игровом сервере, в самом низу вашего скрипта, вы должны дописать: QUEST = Quest(2007,qn,"custom") Изменено 7 мая, 2015 пользователем 2terege 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Nice 4 Опубликовано 7 мая, 2015 (изменено) Покажи ошибку на что ругается . Начинает ругаться на это : Error on: D:\Server\L2jServer\Complete\game\data\scripts\quests\Q99000_StartHumanFighter\Q99000_StartHumanFighter.java.error.log Line: -1 - Column: -1 no main method in quests.Q99000_StartHumanFighter.Q99000_StartHumanFighter И сам квест перестает работать. Это вот с таким вот кодом : public Q99000_StartHumanFighter() { super(99000, Q99000_StartHumanFighter.class.getSimpleName(), "Start Human Fighter"); addStartNpc(GID); addTalkId(GID); addKillId(MOBS); registerQuestItems(GREMLIN_CLAW); } Изменено 7 мая, 2015 пользователем Nice Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
2terege 67 Опубликовано 7 мая, 2015 Начинает ругаться на это : Error on: D:\Server\L2jServer\Complete\game\data\scripts\quests\Q99000_StartHumanFighter\Q99000_StartHumanFighter.java.error.log Line: -1 - Column: -1 no main method in quests.Q99000_StartHumanFighter.Q99000_StartHumanFighter И сам квест перестает работать. 99000 вот его id попробуй. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Nice 4 Опубликовано 7 мая, 2015 qn = "2007_noblesse" super(2007, 2007_noblesse, "Letters of Love"); Я сам к этому склоняюсь могу и ошибатся super(3232, Q3232_LettersOfLove.class.getSimpleName(), "Letters of Love"); А втом мануале чета ненашол то что сдесь думаю Часто полезно определять имя квеста в переменной, в начале скрипта (обычно используется "qn").Добавляем переменную названия квеста в секции описания переменных: qn = "2007_noblesse" Эту переменную можно использовать в различных проверках на состояние квеста, а также в секции описания инициализации самого квеста в окончании вашего скрипта, для того, что бы инициализировать ваш квест и зарегистрировать его в игровом сервере, в самом низу вашего скрипта, вы должны дописать: QUEST = Quest(2007,qn,"custom") Вы L2jserver ковыряли? тут квесты немного по другому написаны /* * Copyright (C) 2004-2014 L2J DataPack * * This file is part of L2J DataPack. * * L2J DataPack is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * L2J DataPack is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package quests.Q99000_StartHumanFighter; import quests.Q00126_TheNameOfEvil2.Q00126_TheNameOfEvil2; import com.l2jserver.gameserver.enums.QuestSound; import com.l2jserver.gameserver.model.actor.L2Npc; import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; import com.l2jserver.gameserver.model.quest.Quest; import com.l2jserver.gameserver.model.quest.QuestState; import com.l2jserver.gameserver.model.quest.State; /** * Start Human Fighter! (99000) * @author Nice^^ */ public class Q99000_StartHumanFighter extends Quest { // NPC private static final int GID = 50000; // Items public static final int GREMLIN_CLAW = 22600; public static final int FALCHION = 68; public static int[] MOBS = { 18342, // Gremlin }; public Q99000_StartHumanFighter() { super(99000, Q99000_StartHumanFighter.class.getSimpleName(), "Start Human Fighter"); addStartNpc(GID); addTalkId(GID); addKillId(MOBS); registerQuestItems(GREMLIN_CLAW); } @Override public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) { QuestState st = player.getQuestState(getName()); if (st == null) { return getNoQuestMsg(player); } switch (event) { case "50000-1.html": st.startQuest(); break; case "50000-2a.html": if (st.getQuestItemsCount(GREMLIN_CLAW) >= 20) { st.addExpAndSp(30000, 3000); st.giveItems(FALCHION, 1); st.giveAdena(50000, true); st.exitQuest(false, true); } break; } return event; } @Override public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon) { final L2PcInstance partyMember = getRandomPartyMember(player, 1); if (partyMember != null) { final QuestState st = partyMember.getQuestState(getName()); if (st != null) { st.giveItems(GREMLIN_CLAW, 1); if (st.getQuestItemsCount(GREMLIN_CLAW) < 20) { st.playSound(QuestSound.ITEMSOUND_QUEST_ITEMGET); } else { st.setCond(2, true); } } } return super.onKill(npc, player, isSummon); } @Override public String onTalk(L2Npc npc, L2PcInstance player) { String htmltext = getNoQuestMsg(player); QuestState st = player.getQuestState(getName()); if (st == null) { return htmltext; } switch (st.getState()) { case State.CREATED: if (player.getLevel() < 1) { htmltext = "50000-0.htm"; } else { st = player.getQuestState(Q00126_TheNameOfEvil2.class.getSimpleName()); htmltext = ((st != null) && st.isCompleted()) ? "50000-0a.htm" : "50000-0b.htm"; } break; case State.STARTED: htmltext = (st.isCond(1)) ? "50000-1a.html" : "50000-2.html"; break; } return htmltext; } } Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
2terege 67 Опубликовано 7 мая, 2015 Вы L2jserver ковыряли? тут квесты немного по другому написаны А терь давай так посмотри такой *.py а твой *.java В *.py идет так def __init__(self, id, name, descr): JQuest.__init__(self, id, name, descr) в *.java идет так public Q005_MinersFavor(int questId, String name, String descr) { super(questId, name, descr); ,,,,,,,,,,,,,,,,,,,,,,, } 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Nice 4 Опубликовано 7 мая, 2015 А терь давай так посмотри такой *.py а твой *.java В *.py идет так def __init__(self, id, name, descr): JQuest.__init__(self, id, name, descr) в *.java идет так public Q005_MinersFavor(int questId, String name, String descr) { super(questId, name, descr); ,,,,,,,,,,,,,,,,,,,,,,, } Да, именно так. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
2terege 67 Опубликовано 7 мая, 2015 Да, именно так. Ладно те я выше показал примерно как думаю.Если не получится пиши в скайп. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Nice 4 Опубликовано 7 мая, 2015 Дело в том, что квест у меня работает нормально и выдает нужную награду (все как задумано). Но с другим ID С моим ID, квест перестает работать вовсе. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
2terege 67 Опубликовано 7 мая, 2015 Дело в том, что квест у меня работает нормально и выдает нужную награду (все как задумано). Но с другим ID С моим ID, квест перестает работать вовсе. Отпиши в скайп 1 сделаю может поможет 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Nice 4 Опубликовано 7 мая, 2015 Отпиши в скайп 1 сделаю может поможет Спасибо, помог Темку можно /close Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты