Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
[Помощь] Редактирование квестов
#1
Добрый день
Сразу приступлю к описанию проблемы:
Начал переделывать квесты, под сервер, всё сделал,всё вроде бы отлично и с клиентом и с сервером,но,есть одна существенная проблема.
В общем суть квеста такова:
Нужно убить 20 игроков противоположной раса,в локации Храм Пхасумандир (пвп-локация)

Когда я убиваю первого игрока,засчитывается сразу 10 и квест обновляется до награды
Открыть спойлер

Изначально брал квест _2702Defeat9thRankElyosSoldiers,изначально в нём нужно было убить 10 игроков.
Я исправил это:
Код:
@Override
    public boolean onKillRankedEvent(QuestEnv env) {
        return defaultOnKillRankedEvent(env, 0, 10, true); // reward
    }
На это
Код:
@Override
    public boolean onKillRankedEvent(QuestEnv env) {
        return defaultOnKillRankedEvent(env, 0, 20, true); // reward
    }

Но изменений не последовало :с

Вот весь код квеста:
Код:
/*
*  This file is part of Aion-Lightning <http://www.zetta-core.org>.
*
*  Aion-Lightning 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.
*
*  Aion-Lightning 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 Aion-Lightning.  If not, see <http://www.gnu.org/licenses/>.
*/
package quest.reshanta;
import com.aionemu.gameserver.model.PlayerClass;
import com.aionemu.gameserver.model.gameobjects.player.Player;
import com.aionemu.gameserver.questEngine.handlers.QuestHandler;
import com.aionemu.gameserver.questEngine.model.QuestDialog;
import com.aionemu.gameserver.questEngine.model.QuestEnv;
import com.aionemu.gameserver.questEngine.model.QuestState;
import com.aionemu.gameserver.questEngine.model.QuestStatus;
import com.aionemu.gameserver.services.item.ItemService;
import com.aionemu.gameserver.utils.PacketSendUtility;
import com.aionemu.gameserver.utils.stats.AbyssRankEnum;
/**
* @author Hilgert
* @modified vlog
*/
public class _2702Defeat9thRankElyosSoldiers extends QuestHandler {
private final static int questId = 2702;
              
public _2702Defeat9thRankElyosSoldiers() {
  super(questId);
}
@Override
public void register() {
  qe.registerQuestNpc(278016).addOnQuestStart(questId);
  qe.registerQuestNpc(278016).addOnTalkEvent(questId);
                qe.registerOnKillInWorld(300170000, questId);
                qe.registerOnKillRanked(AbyssRankEnum.SUPREME_COMMANDER, questId);
                qe.registerOnKillRanked(AbyssRankEnum.GREAT_GENERAL, questId);
                qe.registerOnKillRanked(AbyssRankEnum.GENERAL, questId);
                qe.registerOnKillRanked(AbyssRankEnum.COMMANDER, questId);
                qe.registerOnKillRanked(AbyssRankEnum.STAR5_OFFICER, questId);
                qe.registerOnKillRanked(AbyssRankEnum.STAR4_OFFICER, questId);
                qe.registerOnKillRanked(AbyssRankEnum.STAR3_OFFICER, questId);
                qe.registerOnKillRanked(AbyssRankEnum.STAR2_OFFICER, questId);
                qe.registerOnKillRanked(AbyssRankEnum.STAR1_OFFICER, questId);
                qe.registerOnKillRanked(AbyssRankEnum.GRADE1_SOLDIER, questId);
                qe.registerOnKillRanked(AbyssRankEnum.GRADE2_SOLDIER, questId);
                qe.registerOnKillRanked(AbyssRankEnum.GRADE3_SOLDIER, questId);
                qe.registerOnKillRanked(AbyssRankEnum.GRADE4_SOLDIER, questId);
                qe.registerOnKillRanked(AbyssRankEnum.GRADE5_SOLDIER, questId);
                qe.registerOnKillRanked(AbyssRankEnum.GRADE6_SOLDIER, questId);
                qe.registerOnKillRanked(AbyssRankEnum.GRADE7_SOLDIER, questId);
                qe.registerOnKillRanked(AbyssRankEnum.GRADE8_SOLDIER, questId);
                qe.registerOnKillRanked(AbyssRankEnum.GRADE9_SOLDIER, questId);              
}
  @Override
    public boolean onKillRankedEvent(QuestEnv env) {
        return defaultOnKillRankedEvent(env, 0, 20, true); // reward
    }
    @Override
    public boolean onDialogEvent(QuestEnv env) {
        Player player = env.getPlayer();
        QuestState qs = player.getQuestStateList().getQuestState(questId);
        if (env.getTargetId() == 278016) {
            if (qs == null || qs.getStatus() == QuestStatus.NONE || qs.canRepeat()) {
                if (env.getDialog() == QuestDialog.START_DIALOG)
                    return sendQuestDialog(env, 1011);
                else
                    return sendQuestStartDialog(env);
            }
            else if (qs != null && qs.getStatus() == QuestStatus.REWARD) {
                if (env.getTargetId() == 278016) {
                    if (env.getDialog() == QuestDialog.USE_OBJECT)
                        return sendQuestDialog(env, 1352);
                    else
                        return sendQuestEndDialog(env);
                }
            }
        }
        return false;
    }
}

QuestHandler.java
Код:
public boolean defaultOnKillRankedEvent(QuestEnv env, int startVar, int endVar, boolean reward) {
  Player player = env.getPlayer();
  QuestState qs = player.getQuestStateList().getQuestState(questId);
  if (qs != null && qs.getStatus() == QuestStatus.START) {
   int var = qs.getQuestVarById(0);
   if (var >= startVar && var < (endVar - 1)) {
    changeQuestStep(env, var, var + 1, false);
    return true;
   }
   else if (var == (endVar - 1)) {
    if (reward) {
     qs.setStatus(QuestStatus.REWARD);
    }
    else {
     qs.setQuestVarById(0, var + 1);
    }
    updateQuestStatus(env);
    return true;
   }
  }
  return false;
}

Код:
@Override
public boolean onKillRankedEvent(QuestEnv env) {
  return defaultOnKillRankedEvent(env, 0, 20, true); // reward
}

Ну вот,по идее,я должен убить 20 игроков и только тогда квест перейдёт в статус REWARD, но я убиваю первого и сразу переходит в этот статус и квест не сдаётся.

Рыл клиент,но там по этому поводу ничего не сказано.

Подскажите пожалуйста где я ошибся.
P.S. Можно ответить в Skype: splashman7
Ответ
#2
квест
на попробуй, у меня пашет норм
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  нужен человек который окажет помощь в настройке ядра сервера alex61207 0 1,610 10-10-2017, 09:25 PM
Последний пост: alex61207
  Нужна помощь новичку Kaddellin 4 2,340 08-01-2016, 09:02 AM
Последний пост: Romanz
  Помощь новичку Giovanni 14 4,269 03-10-2011, 01:35 PM
Последний пост: Giovanni
  Нужна помощь с Advanced Vote-Reward System 0.3 Temmy 2 2,923 10-05-2010, 05:25 PM
Последний пост: Temmy
  Нужна помощь!! takoy 5 3,341 07-16-2010, 04:31 PM
Последний пост: [STIGMATED]
  нужна ваша помощь) zlukin 10 4,895 07-03-2010, 04:40 PM
Последний пост: zlukin
  Aion CP 0.4 помощь в работе с программой KillerBAN 13 6,527 05-12-2010, 03:00 AM
Последний пост: doses

Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)