Смотрите видео ниже, чтобы узнать, как установить наш сайт в качестве веб-приложения на домашнем экране.
Примечание: Эта возможность может быть недоступна в некоторых браузерах.
сообщение криво прикрепилось...
В файле quest_data.xml :
<quest id="18600" name="Scoring Some Bad Stigma" category_name="Kromede's Trial" nameId="1117000" minlevel_permitted="37" max_repeat_count="1" race_permitted="ELYOS" category="IMPORTANT">
<rewards gold="4620" exp="2352831">
<selectable_reward_item item_id="113101671" count="1"/>
<selectable_reward_item item_id="113301799" count="1"/>
<selectable_reward_item item_id="113301801" count="1"/>
<selectable_reward_item item_id="113501735" count="1"/>
<selectable_reward_item item_id="113501737" count="1"/>
<selectable_reward_item item_id="113601577" count="1"/>
<reward_item item_id="188053405" count="2"/>
<reward_item item_id="186000004" count="10"/>
</rewards>
<start_conditions>
<unfinished>1527</unfinished>
<noacquired>1527</noacquired>
</start_conditions>
<class_permitted>WARRIOR SCOUT MAGE PRIEST ENGINEER ARTIST GLADIATOR TEMPLAR ASSASSIN RANGER SORCERER SPIRIT_MASTER CHANTER CLERIC GUNNER BARD RIDER</class_permitted>
<quest_work_items>
<quest_work_item item_id="182213000"/>
<quest_work_item item_id="182213001"/>
</quest_work_items>
</quest>
package quest.heiron;
import com.aionemu.gameserver.model.gameobjects.player.Player;
import com.aionemu.gameserver.network.aion.serverpackets.SM_DIALOG_WINDOW;
import com.aionemu.gameserver.questEngine.handlers.QuestHandler;
import com.aionemu.gameserver.model.DialogAction;
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.utils.PacketSendUtility;
/**
* Report-To-Quest Start: Perento (204500) Take the paper voucher (182213000) to
* Koruchinerk (804601) Go to New Heiron Gate and meet Herthia (205228) Bring
* the Fake Stigma (182213001) to Perento
*
* @author vlog
* @modified yayaya
*/
public class _18600ScoringSomeBadStigma extends QuestHandler {
private final static int _questId = 18600;
private final static int[] _npcs = {204500, 804601, 205228};
public _18600ScoringSomeBadStigma() {
super(_questId);
}
@Override
public void register() {
qe.registerQuestNpc(204500).addOnQuestStart(_questId);
for (int npc_id : _npcs) {
qe.registerQuestNpc(npc_id).addOnTalkEvent(_questId);
}
}
@Override
public boolean onDialogEvent(QuestEnv env) {
final Player player = env.getPlayer();
int targetId = env.getTargetId();
QuestState qs = player.getQuestStateList().getQuestState(_questId);
if (targetId == 204500) // Perento
{
if (qs == null || qs.getStatus() == QuestStatus.NONE || qs.canRepeat()) {
if (env.getDialog() == DialogAction.QUEST_SELECT) {
return sendQuestDialog(env, 1011);
} else if (env.getDialogId() == DialogAction.QUEST_ACCEPT_1.id()) {
giveQuestItem(env, 182213000, 1);
return sendQuestStartDialog(env);
} else {
return sendQuestStartDialog(env);
}
}
if (qs != null && qs.getStatus() == QuestStatus.REWARD) {
if (env.getDialog() == DialogAction.USE_OBJECT) {
return sendQuestDialog(env, 2375);
} else if (env.getDialogId() == DialogAction.SELECT_QUEST_REWARD.id()) {
removeQuestItem(env, 182213001, 1);
return sendQuestEndDialog(env);
} else {
return sendQuestEndDialog(env);
}
}
}
if (targetId == 804601) // Koruchinerk
{
if (qs != null && qs.getStatus() == QuestStatus.START) {
if (env.getDialog() == DialogAction.QUEST_SELECT) {
return sendQuestDialog(env, 1352);
}
if (env.getDialog() == DialogAction.SETPRO1) {
return defaultCloseDialog(env, 0, 1, 0, 0, 182213000, 1); // 1
}
}
}
if (targetId == 205228) // Herthia
{
if (qs != null && qs.getStatus() == QuestStatus.START && qs.getQuestVarById(0) == 1) {
if (env.getDialog() == DialogAction.QUEST_SELECT) {
return sendQuestDialog(env, 1693);
} else if (env.getDialog() == DialogAction.SETPRO2) {
qs.setQuestVar(3);
qs.setStatus(QuestStatus.REWARD);
updateQuestStatus(env);
PacketSendUtility.sendPacket(player, new SM_DIALOG_WINDOW(env.getVisibleObject().getObjectId(), 10));
return true;
}
}
}
return false;
}
}
Благодарю!сложные кв находятся во тут Game\data\scripts\system\handlers\quest
вот, так по идее должен работать
Код:package quest.heiron; import com.aionemu.gameserver.model.gameobjects.player.Player; import com.aionemu.gameserver.network.aion.serverpackets.SM_DIALOG_WINDOW; import com.aionemu.gameserver.questEngine.handlers.QuestHandler; import com.aionemu.gameserver.model.DialogAction; 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.utils.PacketSendUtility; /** * Report-To-Quest Start: Perento (204500) Take the paper voucher (182213000) to * Koruchinerk (804601) Go to New Heiron Gate and meet Herthia (205228) Bring * the Fake Stigma (182213001) to Perento * * @author vlog * @modified yayaya */ public class _18600ScoringSomeBadStigma extends QuestHandler { private final static int _questId = 18600; private final static int[] _npcs = {204500, 804601, 205228}; public _18600ScoringSomeBadStigma() { super(_questId); } @Override public void register() { qe.registerQuestNpc(204500).addOnQuestStart(_questId); for (int npc_id : _npcs) { qe.registerQuestNpc(npc_id).addOnTalkEvent(_questId); } } @Override public boolean onDialogEvent(QuestEnv env) { final Player player = env.getPlayer(); int targetId = env.getTargetId(); QuestState qs = player.getQuestStateList().getQuestState(_questId); if (targetId == 204500) // Perento { if (qs == null || qs.getStatus() == QuestStatus.NONE || qs.canRepeat()) { if (env.getDialog() == DialogAction.QUEST_SELECT) { return sendQuestDialog(env, 1011); } else if (env.getDialogId() == DialogAction.QUEST_ACCEPT_1.id()) { giveQuestItem(env, 182213000, 1); return sendQuestStartDialog(env); } else { return sendQuestStartDialog(env); } } if (qs != null && qs.getStatus() == QuestStatus.REWARD) { if (env.getDialog() == DialogAction.USE_OBJECT) { return sendQuestDialog(env, 2375); } else if (env.getDialogId() == DialogAction.SELECT_QUEST_REWARD.id()) { removeQuestItem(env, 182213001, 1); return sendQuestEndDialog(env); } else { return sendQuestEndDialog(env); } } } if (targetId == 804601) // Koruchinerk { if (qs != null && qs.getStatus() == QuestStatus.START) { if (env.getDialog() == DialogAction.QUEST_SELECT) { return sendQuestDialog(env, 1352); } if (env.getDialog() == DialogAction.SETPRO1) { return defaultCloseDialog(env, 0, 1, 0, 0, 182213000, 1); // 1 } } } if (targetId == 205228) // Herthia { if (qs != null && qs.getStatus() == QuestStatus.START && qs.getQuestVarById(0) == 1) { if (env.getDialog() == DialogAction.QUEST_SELECT) { return sendQuestDialog(env, 1693); } else if (env.getDialog() == DialogAction.SETPRO2) { qs.setQuestVar(3); qs.setStatus(QuestStatus.REWARD); updateQuestStatus(env); PacketSendUtility.sendPacket(player, new SM_DIALOG_WINDOW(env.getVisibleObject().getObjectId(), 10)); return true; } } } return false; } }
работает, да не до конца, далее у Гертии опять эта ошибка выпадает,хотя ID npc верный.
Благодарю!
Все починилось, квест работает
Ответ: конечно есть - у тех ребят кто взялся и починил эти квесты для себя. В чем собственно проблема, взять и сделать все нужные для вас квесты рабочими?Вопрос : есть ли сборки сервера 3.9-4.6 где работают квесты
Зачем, если можно старую использовать дальше?Хорошо,тогда вопрос , SQL базу каждый раз надо для нового сервера по-новой создавать? старая при этом не слетит?
Ну тут логично, что базы нужно разные) Проектируйте свои сборки и не будет таких проблемЯ когда ставил много параллельнх сборок делал каждый раз новые базы для логина и гейма. Это необходимо, так как разные сборки требуют от части разные таблицы или столбцы в базе.
Например: сборка от yayaya версия3 будет ругаться на базу версии8 и наоборот.
Если сборки одинаковы, то можно и одной базой пользоваться.
Я когда ставил много параллельнх сборок делал каждый раз новые базы для логина и гейма. Это необходимо, так как разные сборки требуют от части разные таблицы или столбцы в базе.
Например: сборка от yayaya версия3 будет ругаться на базу версии8 и наоборот.
Если сборки одинаковы, то можно и одной базой пользоваться.
Чем лаунчер шифруешь...Да это из-за того что пользователь просит доп функции к примеру, такие как статистика или ивенты и что бы это как то контролировать в том или ином случае, действительно нужна база.
Оффтоп: Сервер сборка 249$, + сайт
Исходник 499$ - сурс включает в себя:
1) Лаунчер (античит) - проверка клиента на входе в игру, обнаружение читов, на самом деле там много функций таких как отсылка активного окна пользователя в лог админу и так далее, целый комплекс, ничего не законного...(могу его доразвить за доп плату)
2) Сайт с работающим магазином, настроенным под данную сборку. (админка не вся работает, так как в ней не было необходимости, но большинство функций были восстановлены)
3) Так же неделю даю вам объяснения и помощь, есть доп программы, вообщем помогу чем смогу, лаунчер зашифровать жестко и так далее (по вашему требованию).
обфускатором и своей наработкой сверху получается не плохо по моему.Чем лаунчер шифруешь...
Да это из-за того что пользователь просит доп функции к примеру, такие как статистика или ивенты и что бы это как то контролировать в том или ином случае, действительно нужна база.
В какой версии твоя сборка сейчас? Где-то 7хх?
Оффтоп: Сервер сборка 249$, + сайт
Исходник 499$ - сурс включает в себя:
1) Лаунчер (античит) - проверка клиента на входе в игру, обнаружение читов, на самом деле там много функций таких как отсылка активного окна пользователя в лог админу и так далее, целый комплекс, ничего не законного...(могу его доразвить за доп плату)
2) Сайт с работающим магазином, настроенным под данную сборку. (админка не вся работает, так как в ней не было необходимости, но большинство функций были восстановлены)
3) Так же неделю даю вам объяснения и помощь, есть доп программы, вообщем помогу чем смогу, лаунчер зашифровать жестко и так далее (по вашему требованию).
В какой версии твоя сборка сейчас? Где-то 7хх?Да это из-за того что пользователь просит доп функции к примеру, такие как статистика или ивенты и что бы это как то контролировать в том или ином случае, действительно нужна база.
Оффтоп: Сервер сборка 249$, + сайт
Исходник 499$ - сурс включает в себя:
1) Лаунчер (античит) - проверка клиента на входе в игру, обнаружение читов, на самом деле там много функций таких как отсылка активного окна пользователя в лог админу и так далее, целый комплекс, ничего не законного...(могу его доразвить за доп плату)
2) Сайт с работающим магазином, настроенным под данную сборку. (админка не вся работает, так как в ней не было необходимости, но большинство функций были восстановлены)
3) Так же неделю даю вам объяснения и помощь, есть доп программы, вообщем помогу чем смогу, лаунчер зашифровать жестко и так далее (по вашему требованию).
))) ну можно же сказать что и в 200000...)))В какой версии твоя сборка сейчас? Где-то 7хх?
