Всем доброго времени суток! Не могу найти где проблема с квестом. По завершению квеста нет диалога. Проше помощи!!!!
/* * This file is part of Encom. **ENCOM FUCK OTHER SVN** * * Encom is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Encom 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 Lesser Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Encom. If not, see <Please login or register to view links>. */ package quest.mission; import com.aionemu.gameserver.model.*; import com.aionemu.gameserver.model.gameobjects.player.Player; import com.aionemu.gameserver.questEngine.*; import com.aionemu.gameserver.questEngine.handlers.*; import com.aionemu.gameserver.questEngine.model.*; import com.aionemu.gameserver.services.teleport.*; /****/ /** Author Rinzler (Encom) /****/ public class _14024A_Kralling_Suspicion extends QuestHandler { private final static int questId = 14024; private final static int[] npc_ids = {203904, 204045, 204004, 204020}; public _14024A_Kralling_Suspicion() { super(questId); } @Override public void register() { for (int npc_id: npc_ids) { qe.registerQuestNpc(npc_id).addOnTalkEvent(questId); } qe.registerOnLevelUp(questId); qe.registerOnEnterZoneMissionEnd(questId); } @Override public boolean onZoneMissionEndEvent(QuestEnv env) { return defaultOnZoneMissionEndEvent(env); } @Override public boolean onLvlUpEvent(QuestEnv env) { return defaultOnLvlUpEvent(env, 14023, true); } @Override public boolean onDialogEvent(QuestEnv env) { final Player player = env.getPlayer(); final QuestState qs = player.getQuestStateList().getQuestState(questId); int targetId = env.getTargetId(); int var = qs.getQuestVarById(0); if (qs == null) { return false; } if (qs.getStatus() == QuestStatus.START) { if (targetId == 203904) { switch (env.getDialog()) { case START_DIALOG: { if (var == 0) { return sendQuestDialog(env, 1011); } } case SELECT_ACTION_1012: { if (var == 0) { return sendQuestDialog(env, 1012); } } case STEP_TO_1: { if (var == 0) { changeQuestStep(env, 0, 1, false); return closeDialogWindow(env); } } } } if (targetId == 204045) { switch (env.getDialog()) { case START_DIALOG: { if (var == 1) { return sendQuestDialog(env, 1352); } } case SELECT_ACTION_1353: { if (var == 1) { return sendQuestDialog(env, 1353); } } case STEP_TO_2: { if (var == 1) { changeQuestStep(env, 1, 2, false); return closeDialogWindow(env); } } } } if (targetId == 204004) { switch (env.getDialog()) { case START_DIALOG: { if (var == 2) { return sendQuestDialog(env, 2034); } } case STEP_TO_4: { changeQuestStep(env, 3, 3, true); TeleportService2.teleportTo(player, 210020000, 1605.3418f, 1528.9393f, 318.0651f, (byte) 117, TeleportAnimation.BEAM_ANIMATION); return closeDialogWindow(env); } case CHECK_COLLECTED_ITEMS: { return checkQuestItems(env, 2, 3, false, 2120, 2035); } case FINISH_DIALOG: { if (var == 3) { defaultCloseDialog(env, 3, 3); } else if (var == 2) { defaultCloseDialog(env, 2, 2); } } } } } else if (qs.getStatus() == QuestStatus.REWARD) { if (targetId == 204020) { if (env.getDialog() == QuestDialog.START_DIALOG) { return sendQuestDialog(env, 2375); } return sendQuestEndDialog(env); } } return false;
Что тут не так я не знаю, если кто может объяснить пожалуйста подскажите! но в 5.1 и 4.7 разные чутка _14024AKrallingSuspicion.java!
Как-то все странно! Квест можно уже сдать, но после того как я насильно взяла следующий квест командой админа, по сл квесту меня тоже к этому же НПС оправляет! В чем может быть проблема?
сначала проверьте этот квест в quest_data.xml все ли там с ним нормально в плане нпс. потом проверьте, нет каких нибудь строчек связанных со сдачей его в quest_script_data (там файлы по локациям) может энкомы намутили со сдачей этого квеста. По идее упоминания об этом квесте должны быть в комментариях в файле. Если же все в порядке, возьмите любую сборку, где работает этот квест (советую взять 4.7 или 4.9) и скопируйте содержимое java файла в ваш, только не забудьте сравнить в начале import`ы, чтобы у вас там все не багнулось. Была проблема в сборке 5.4 у меня, там квест в альтграде нпс не принимал, точнее на нпс вообще нажать нельзя было, оказалось что дело было в скрипте квеста, он у геров был полный шлак)
Еще похожая ситуация с двумя квестами, нет диалога сдачи квестов. Пыталась слепить скрипты, но пока что не удачно! Please login or register to view links Please login or register to view links Please login or register to view links
Проблема решилась после того как я сделала начальные квесты фоете, и по очереди сдались все остальные квесты! Бред какой то!
Please login or register to view links, движок сборки сложный(не для новичка), некоторые диалоги поменялись с версий 4+ , некоторые вызовы диалогов у "автора" имеют другие названия(отличающиеся от тех что были в AL Ger AC) Возьмите что нибудь попроще (для игры с друзьями ). Решить ваши проблемы можно. Но особо не интересно чинить вашим "друзьям" сборку из паблика за спасибку. Если уж сильно хочется именно этой сборкой заниматься, запаситесь терпением и воспользуйтесь советом Please login or register to view links И самое главное, начинайте прокачивать скил сравнения А так, всегда пожалуйста в лс с конкретными заданиями(если ваши "друзья" готовы их про спонсировать).
Народ япона мама взяли сборку со старыми миссиями там пля миссии изменились изменились нпсы вам клиент выдаёт что надо к этому неписю а в скрипте указан старый непись который уже не используетсяв квесте возьмите более новую сборку или более старую или воспользуйтесь советами ребят.
Вот вчём разница посмотри package quest.eltnen; import com.gameserver.model.DialogAction; import com.gameserver.model.TeleportAnimation; import com.gameserver.model.gameobjects.player.Player; import com.gameserver.questEngine.handlers.QuestHandler; import com.gameserver.questEngine.model.QuestEnv; import com.gameserver.questEngine.model.QuestState; import com.gameserver.questEngine.model.QuestStatus; import com.gameserver.services.QuestService; import com.gameserver.services.teleport.TeleportService2; public class _14024AKrallingSuspicion extends QuestHandler { private final static int questId = 14024; private final static int[] npc_ids = {203904, 204045, 204004, 204020}; public _14024AKrallingSuspicion() { super(questId); } @Override public void register() { qe.registerOnEnterZoneMissionEnd(questId); qe.registerOnLevelUp(questId); for (int npc_id : npc_ids) { qe.registerQuestNpc(npc_id).addOnTalkEvent(questId); } } @Override public boolean onZoneMissionEndEvent(QuestEnv env) { return defaultOnZoneMissionEndEvent(env); } @Override public boolean onLvlUpEvent(QuestEnv env) { return defaultOnLvlUpEvent(env, 14020, true); } @Override public boolean onDialogEvent(QuestEnv env) { final Player player = env.getPlayer(); final QuestState qs = player.getQuestStateList().getQuestState(questId); DialogAction dialog = env.getDialog(); if (qs == null) { return false; } int targetId = env.getTargetId(); if (qs.getStatus() == QuestStatus.START) { int var = qs.getQuestVarById(0); switch (targetId) { case 203904: switch (dialog) { case QUEST_SELECT: if (var == 0) { return sendQuestDialog(env, 1011); } case SETPRO1: if (var == 0) { return defaultCloseDialog(env, 0, 1); } return false; default: break; } break; case 204045: switch (dialog) { case QUEST_SELECT: if (var == 1) { return sendQuestDialog(env, 1352); } case SETPRO2: if (var == 1) { return defaultCloseDialog(env, 1, 2); } return false; default: break; } break; case 204004: switch (dialog) { case QUEST_SELECT: if (var == 2) { return sendQuestDialog(env, 2034); } case CHECK_USER_HAS_QUEST_ITEM: if (var == 2) { if (QuestService.collectItemCheck(env, true)) { changeQuestStep(env, 2, 3, false); return sendQuestDialog(env, 2120); } else { return sendQuestDialog(env, 2035); } } case SETPRO4: TeleportService2.teleportTo(player, 210020000, 1610f, 1528f, 318f, (byte) 2, TeleportAnimation.BEAM_ANIMATION); changeQuestStep(env, 3, 3, true); return true; case FINISH_DIALOG: { return closeDialogWindow(env); } default: break; } break; default: break; } } else if (qs.getStatus() == QuestStatus.REWARD) { if (targetId == 204020) { if (dialog == DialogAction.USE_OBJECT) { return sendQuestDialog(env, 2375); } return sendQuestEndDialog(env); } } return false; } }
Вот в одной тут выложенной сборке взял попробуйте только вам придётся по ходу диалоги переделывать у вас сборка китайца 5.6 сюдя по квесту
как раз не бред , очень частая ошибка у квестовиков , когда в разных квестах идет обращение к одному и тому же неписю , а в скипте квеста не прописаны условия что квест взят и тд , вот такая байда случается)
вообще в вашем квесте не верно построен данный диалог } case STEP_TO_4: { changeQuestStep(env, 3, 3, true); TeleportService2.teleportTo(player, 210020000, 1605.3418f, 1528.9393f, 318.0651f, (byte) 117, TeleportAnimation.BEAM_ANIMATION); return closeDialogWindow(env); } case CHECK_COLLECTED_ITEMS: { return checkQuestItems(env, 2, 3, false, 2120, 2035); } case FINISH_DIALOG: { if (var == 3) { defaultCloseDialog(env, 3, 3); } else if (var == 2) { defaultCloseDialog(env, 2, 2); }