[Помощь] Редактирование квестов - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Сообщество Календарь
Вернуться   Форум администраторов игровых серверов > MMO > Aion

Важная информация

Aion
Всё о установке, настройке и администрировании серверов Aion. При поддержке: Aion-Top - Рейтинг сайтов Aion

Ответ
Опции темы
Непрочитано 16.02.2013, 21:59   #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
timki вне форума Ответить с цитированием
Непрочитано 25.02.2013, 11:58   #2
Изгнанные

По умолчанию Re: [Помощь] Редактирование квестов

квест:
Свернуть ↑Развернуть ↓

на попробуй, у меня пашет норм
Murzik вне форума Отправить сообщение для Murzik с помощью Skype™ Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Гайд] Написание квестов: от и до. ViAl Документация 17 24.12.2010 14:31
Редактирование скинов оружия PROGRAMMATOR Call of Duty 4 23 09.07.2010 13:08
Редактирование скриптов Locent Документация 1 26.03.2010 05:26
Перевод названия квестов... krisadr Работа со скриптами 5 25.01.2010 17:57
QuestHelper – лучший помощник в выполнении квестов yurok.kor Игровой клиент 2 25.05.2009 22:20


© 2007–2024 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 00:11. Часовой пояс GMT +3.

Вверх