@Override public boolean onDialogEvent(QuestEnv env) { final Player player = env.getPlayer(); int targetId = 0; QuestState qs2 = player.getQuestStateList().getQuestState(3968); if (qs2 == null || qs2.getStatus() != QuestStatus.COMPLETE) return false; if (env.getVisibleObject() instanceof Npc) targetId = ((Npc) env.getVisibleObject()).getNpcId(); QuestState qs = player.getQuestStateList().getQuestState(questId); if (targetId == 798390) // Palentine { if (qs == null || qs.getStatus() == QuestStatus.NONE) { if (env.getDialogId() == -1) return sendQuestDialog(player, env.getVisibleObject().getObjectId(), 1011); else if (env.getDialogId() == 1002) { if (ItemService.addItems( player, Collections.singletonList(new QuestItems(182206126, 1)))) { return defaultQuestStartDialog(env); } return true; } else return defaultQuestStartDialog(env); } } if (qs == null) return false; int var = qs.getQuestVarById(0); if (targetId == 798391) // Andu { if (qs.getStatus() == QuestStatus.START && var == 0) { if (env.getDialogId() == -1) return sendQuestDialog(player, env.getVisibleObject().getObjectId(), 1352); else if (env.getDialogId() == 10000) { if (ItemService.removeItemFromInventoryByItemId(player, 182206126)) { qs.setQuestVar(1); qs.setStatus(QuestStatus.REWARD); updateQuestStatus(player, qs); PacketSendUtility.sendPacket( player, new SM_DIALOG_WINDOW(env.getVisibleObject().getObjectId(), 10)); } return true; } else return defaultQuestStartDialog(env); } } else if (targetId == 798390) // Palentine { if (qs.getStatus() == QuestStatus.REWARD) { if (env.getDialogId() == -1) return sendQuestDialog(player, env.getVisibleObject().getObjectId(), 2375); return defaultQuestEndDialog(env); } } return false; }
/** * This method is used for creating new players * * @param playerCommonData * @param playerAppearance * @return Player */ public static Player newPlayer( PlayerCommonData playerCommonData, PlayerAppearance playerAppearance) { PlayerInitialData playerInitialData = DataManager.PLAYER_INITIAL_DATA; LocationData ld = playerInitialData.getSpawnLocation(playerCommonData.getRace()); WorldPosition position = World.getInstance() .createPosition(ld.getMapId(), ld.getX(), ld.getY(), ld.getZ(), ld.getHeading()); playerCommonData.setPosition(position); Player newPlayer = new Player(new PlayerController(), playerCommonData, playerAppearance); // Starting skills SkillLearnService.addNewSkills(newPlayer, true); // Starting items PlayerCreationData playerCreationData = playerInitialData.getPlayerCreationData(playerCommonData.getPlayerClass()); List<ItemType> items = playerCreationData.getItems(); Storage playerInventory = new Storage(StorageType.CUBE); Storage regularWarehouse = new Storage(StorageType.REGULAR_WAREHOUSE); Storage accountWarehouse = new Storage(StorageType.ACCOUNT_WAREHOUSE); Equipment equipment = new Equipment(newPlayer); newPlayer.setStorage(playerInventory, StorageType.CUBE); newPlayer.setStorage(regularWarehouse, StorageType.REGULAR_WAREHOUSE); newPlayer.setStorage(accountWarehouse, StorageType.ACCOUNT_WAREHOUSE); newPlayer.setEquipment(equipment); newPlayer.setMailbox(new Mailbox()); for (ItemType itemType : items) { int itemId = itemType.getTemplate().getTemplateId(); Item item = ItemService.newItem(itemId, itemType.getCount()); if (item == null) continue; // When creating new player - all equipment that has slot values will be equipped // Make sure you will not put into xml file more items than possible to equip. ItemTemplate itemTemplate = item.getItemTemplate(); item.setOwnerId(newPlayer.getObjectId()); if (itemTemplate.isArmor() || itemTemplate.isWeapon()) { item.setEquipped(true); List<ItemSlot> itemSlots = ItemSlot.getSlotsFor(itemTemplate.getItemSlot()); item.setEquipmentSlot(itemSlots.get(0).getSlotIdMask()); equipment.onLoadHandler(item); } else ItemService.onLoadHandler(newPlayer, newPlayer.getInventory(), item); } equipment.onLoadApplyEquipmentStats(); /** Mark inventory and equipment as UPDATE_REQUIRED to be saved during character creation */ playerInventory.setPersistentState(PersistentState.UPDATE_REQUIRED); equipment.setPersistentState(PersistentState.UPDATE_REQUIRED); return newPlayer; }
@Override protected void runImpl() { Player player = getConnection().getActivePlayer(); if (destinationItemObjId == 0) itemService.splitItem( player, sourceItemObjId, itemAmount, slotNum, sourceStorageType, destinationStorageType); else itemService.mergeItems( player, sourceItemObjId, itemAmount, destinationItemObjId, sourceStorageType, destinationStorageType); }
@Override public boolean onDialogEvent(QuestEnv env) { final Player player = env.getPlayer(); QuestState qs = player.getQuestStateList().getQuestState(questId); int targetId = 0; if (env.getVisibleObject() instanceof Npc) targetId = ((Npc) env.getVisibleObject()).getNpcId(); if (targetId == 0) { if (env.getDialogId() == 1002) { QuestService.startQuest(env, QuestStatus.START); PacketSendUtility.sendPacket(player, new SM_DIALOG_WINDOW(0, 0)); return true; } } else if (targetId == 278056) { if (qs != null) { if (env.getDialogId() == 25 && qs.getStatus() == QuestStatus.START) { return sendQuestDialog(player, env.getVisibleObject().getObjectId(), 2375); } else if (env.getDialogId() == 1009) { ItemService.removeItemFromInventoryByItemId(player, 182207049); qs.setQuestVar(1); qs.setStatus(QuestStatus.REWARD); updateQuestStatus(player, qs); return defaultQuestEndDialog(env); } else return defaultQuestEndDialog(env); } } return false; }
/** {@inheritDoc} */ @Override protected void runImpl() { Player player = getConnection().getActivePlayer(); ItemService.moveItem(player, targetObjectId, source, destination, slot); PacketSendUtility.broadcastPacket(player, new SM_EMOTION(player, 36, 0, 0)); // sendPacket(new SM_LOOT_STATUS(targetObjectId,3)); }
@Override public boolean onDialogEvent(QuestEnv env) { final Player player = env.getPlayer(); int targetId = 0; if (env.getVisibleObject() instanceof Npc) targetId = ((Npc) env.getVisibleObject()).getNpcId(); final QuestState qs = player.getQuestStateList().getQuestState(questId); if (qs == null || qs.getStatus() == QuestStatus.NONE) { if (targetId == 730000) { env.setQuestId(questId); QuestService.startQuest(env, QuestStatus.START); sendQuestDialog(player, 0, 1011); return false; } } else if (qs.getStatus() == QuestStatus.START) { if (targetId == 700033 && env.getDialogId() == -1) { final int targetObjectId = env.getVisibleObject().getObjectId(); PacketSendUtility.broadcastPacket( player, new SM_EMOTION(player, EmotionType.SIT, 0, targetObjectId), true); ThreadPoolManager.getInstance() .schedule( new Runnable() { @Override public void run() { if (!player.isTargeting(targetObjectId)) return; if (ItemService.addItems( player, Collections.singletonList(new QuestItems(182200504, 1)))) { ((Npc) player.getTarget()).getController().onDespawn(true); qs.setStatus(QuestStatus.REWARD); updateQuestStatus(player, qs); } } }, 3000); } } else if (qs.getStatus() == QuestStatus.REWARD) { if (targetId == 730000) { if (ItemService.removeItemFromInventoryByItemId(player, 182200504)) { PacketSendUtility.sendPacket(player, new SM_PLAY_MOVIE(0, 16)); return true; } } } return false; }
@Override public void executeCommand(Player admin, String[] params) { if (admin.getAccessLevel() < AdminConfig.COMMAND_KINAH) { PacketSendUtility.sendMessage(admin, "You dont have enough rights to execute this command."); return; } if (params == null || params.length < 1 || params.length > 2) { PacketSendUtility.sendMessage(admin, "syntax //kinah [player] <quantity>"); return; } long kinahCount; Player receiver; if (params.length == 1) { receiver = admin; try { kinahCount = Integer.parseInt(params[0]); } catch (NumberFormatException e) { PacketSendUtility.sendMessage(admin, "Kinah value must be an integer."); return; } } else { receiver = World.getInstance().findPlayer(Util.convertName(params[0])); if (receiver == null) { PacketSendUtility.sendMessage(admin, "Could not find a player by that name."); return; } try { kinahCount = Integer.parseInt(params[1]); } catch (NumberFormatException e) { PacketSendUtility.sendMessage(admin, "Kinah value must be an integer."); return; } } ItemService.increaseKinah(receiver, kinahCount); PacketSendUtility.sendMessage(admin, "Kinah given successfully."); PacketSendUtility.sendMessage(receiver, "An admin gives you some kinah."); }
@Override public boolean onDialogEvent(QuestEnv env) { final Player player = env.getPlayer(); int targetId = 0; final QuestState qs = player.getQuestStateList().getQuestState(questId); if (env.getVisibleObject() instanceof Npc) targetId = ((Npc) env.getVisibleObject()).getNpcId(); if (targetId == 0) { if (qs == null || qs.getStatus() == QuestStatus.NONE) { if (env.getDialogId() == 1002) { questService.startQuest(env, QuestStatus.START); if (!itemService.addItems( player, Collections.singletonList(new QuestItems(182200226, 1)))) ; player.getInventory().removeFromBagByItemId(182200214, 1); PacketSendUtility.sendPacket(player, new SM_DIALOG_WINDOW(0, 0)); return true; } else PacketSendUtility.sendPacket(player, new SM_DIALOG_WINDOW(0, 0)); } } if (qs == null) return false; int var = qs.getQuestVarById(0); if (qs.getStatus() == QuestStatus.REWARD) { if (targetId == 203075 && var == 4) { if (env.getDialogId() == -1) return sendQuestDialog(player, env.getVisibleObject().getObjectId(), 2375); else if (env.getDialogId() == 1009) return sendQuestDialog(player, env.getVisibleObject().getObjectId(), 6); else return defaultQuestEndDialog(env); } else if (targetId == 203058 && var == 3) return defaultQuestEndDialog(env); } else if (qs.getStatus() != QuestStatus.START) return false; if (targetId == 203075) { switch (env.getDialogId()) { case 25: if (var == 0) return sendQuestDialog(player, env.getVisibleObject().getObjectId(), 1011); else if (var == 2) return sendQuestDialog(player, env.getVisibleObject().getObjectId(), 1693); else if (var == 3) return sendQuestDialog(player, env.getVisibleObject().getObjectId(), 2375); case 1009: if (var == 2) { qs.setQuestVarById(0, var + 2); qs.setStatus(QuestStatus.REWARD); updateQuestStatus(player, qs); player.getInventory().removeFromBagByItemId(182200217, 1); return sendQuestDialog(player, env.getVisibleObject().getObjectId(), 6); } if (var == 3) { qs.setQuestVarById(0, var + 1); qs.setStatus(QuestStatus.REWARD); updateQuestStatus(player, qs); player.getInventory().removeFromBagByItemId(182200217, 1); return sendQuestDialog(player, env.getVisibleObject().getObjectId(), 6); } case 10000: if (var == 0) { qs.setQuestVarById(0, var + 1); updateQuestStatus(player, qs); player.getInventory().removeFromBagByItemId(182200226, 1); PacketSendUtility.sendPacket( player, new SM_DIALOG_WINDOW(env.getVisibleObject().getObjectId(), 10)); return true; } case 10001: if (var == 2) { qs.setQuestVarById(0, var + 1); updateQuestStatus(player, qs); PacketSendUtility.sendPacket( player, new SM_DIALOG_WINDOW(env.getVisibleObject().getObjectId(), 10)); return true; } } } else if (targetId == 700008) { switch (env.getDialogId()) { case -1: if (var == 1) { // final Npc npc = (Npc)env.getVisibleObject(); final int targetObjectId = env.getVisibleObject().getObjectId(); PacketSendUtility.sendPacket( player, new SM_USE_OBJECT(player.getObjectId(), targetObjectId, 3000, 1)); PacketSendUtility.broadcastPacket( player, new SM_EMOTION(player, 37, 0, targetObjectId), true); ThreadPoolManager.getInstance() .schedule( new Runnable() { @Override public void run() { PacketSendUtility.sendPacket( player, new SM_USE_OBJECT(player.getObjectId(), targetObjectId, 3000, 0)); PacketSendUtility.broadcastPacket( player, new SM_EMOTION(player, 38, 0, targetObjectId), true); for (VisibleObject obj : player.getKnownList()) { if (!(obj instanceof Npc)) continue; if (((Npc) obj).getNpcId() != 203175) continue; if (((Npc) obj).getNpcId() != 203175) return; ((Npc) obj).getAggroList().addDamage(player, 50); } if (!itemService.addItems( player, Collections.singletonList(new QuestItems(182200217, 1)))) ; qs.setQuestVarById(0, 2); updateQuestStatus(player, qs); } }, 3000); } return true; } } if (targetId == 203058) { switch (env.getDialogId()) { case 25: if (var == 3) return sendQuestDialog(player, env.getVisibleObject().getObjectId(), 2034); case 10002: if (var == 3) { qs.setStatus(QuestStatus.REWARD); updateQuestStatus(player, qs); player.getInventory().removeFromBagByItemId(182200217, 1); return sendQuestDialog(player, env.getVisibleObject().getObjectId(), 5); } case 10001: if (var == 3) { PacketSendUtility.sendPacket( player, new SM_DIALOG_WINDOW(env.getVisibleObject().getObjectId(), 10)); return true; } } } return false; }
/** * Returns the player with given objId (if such player exists) * * @param playerObjId * @param account * @return Player */ public static Player getPlayer(int playerObjId, Account account) { Player player = playerCache.get(playerObjId); if (player != null) return player; /** Player common data and appearance should be already loaded in account */ PlayerAccountData playerAccountData = account.getPlayerAccountData(playerObjId); PlayerCommonData pcd = playerAccountData.getPlayerCommonData(); PlayerAppearance appearance = playerAccountData.getAppereance(); player = new Player(new PlayerController(), pcd, appearance); LegionMember legionMember = LegionService.getInstance().getLegionMember(player.getObjectId()); if (legionMember != null) player.setLegionMember(legionMember); if (GroupService.getInstance().isGroupMember(playerObjId)) GroupService.getInstance().setGroup(player); if (AllianceService.getInstance().isAllianceMember(playerObjId)) AllianceService.getInstance().setAlliance(player); MacroList macroses = DAOManager.getDAO(PlayerMacrossesDAO.class).restoreMacrosses(playerObjId); player.setMacroList(macroses); player.setSkillList(DAOManager.getDAO(PlayerSkillListDAO.class).loadSkillList(playerObjId)); player.setKnownlist(new KnownList(player)); player.setFriendList(DAOManager.getDAO(FriendListDAO.class).load(player)); player.setBlockList(DAOManager.getDAO(BlockListDAO.class).load(player)); player.setTitleList(DAOManager.getDAO(PlayerTitleListDAO.class).loadTitleList(playerObjId)); DAOManager.getDAO(PlayerSettingsDAO.class).loadSettings(player); DAOManager.getDAO(AbyssRankDAO.class).loadAbyssRank(player); PlayerStatsData playerStatsData = DataManager.PLAYER_STATS_DATA; player.setPlayerStatsTemplate(playerStatsData.getTemplate(player)); player.setGameStats(new PlayerGameStats(playerStatsData, player)); Equipment equipment = DAOManager.getDAO(InventoryDAO.class).loadEquipment(player); ItemService.loadItemStones(equipment.getEquippedItemsWithoutStigma()); equipment.setOwner(player); player.setEquipment(equipment); player.setLifeStats(new PlayerLifeStats(player)); player.setEffectController(new PlayerEffectController(player)); player.setFlyController(new FlyController(player)); player.setReviveController(new ReviveController(player)); player.setQuestStateList(DAOManager.getDAO(PlayerQuestListDAO.class).load(player)); player.setRecipeList(DAOManager.getDAO(PlayerRecipesDAO.class).load(player.getObjectId())); /** Account warehouse should be already loaded in account */ Storage accWarehouse = account.getAccountWarehouse(); player.setStorage(accWarehouse, StorageType.ACCOUNT_WAREHOUSE); Storage inventory = DAOManager.getDAO(InventoryDAO.class) .loadStorage(player, player.getObjectId(), StorageType.CUBE); ItemService.loadItemStones(inventory.getStorageItems()); player.setStorage(inventory, StorageType.CUBE); Storage warehouse = DAOManager.getDAO(InventoryDAO.class) .loadStorage(player, player.getObjectId(), StorageType.REGULAR_WAREHOUSE); ItemService.loadItemStones(warehouse.getStorageItems()); player.setStorage(warehouse, StorageType.REGULAR_WAREHOUSE); /** Apply equipment stats (items and manastones were loaded in account) */ player.getEquipment().onLoadApplyEquipmentStats(); DAOManager.getDAO(PlayerPunishmentsDAO.class).loadPlayerPunishments(player); ItemService.restoreKinah(player); // update passive stats after effect controller, stats and equipment are initialized player.getController().updatePassiveStats(); // load saved effects DAOManager.getDAO(PlayerEffectsDAO.class).loadPlayerEffects(player); // load item cooldowns DAOManager.getDAO(ItemCooldownsDAO.class).loadItemCooldowns(player); if (player.getCommonData().getTitleId() > 0) { TitleChangeListener.onTitleChange( player.getGameStats(), player.getCommonData().getTitleId(), true); } player.getGameStats().recomputeStats(); DAOManager.getDAO(PlayerLifeStatsDAO.class).loadPlayerLifeStat(player); // analyze current instance InstanceService.onPlayerLogin(player); if (CacheConfig.CACHE_PLAYERS) playerCache.put(playerObjId, player); return player; }
@Override public boolean onDialogEvent(QuestEnv env) { final Player player = env.getPlayer(); final int instanceId = player.getInstanceId(); final QuestState qs = player.getQuestStateList().getQuestState(questId); if (qs == null) return false; int var = qs.getQuestVars().getQuestVars(); int targetId = 0; if (env.getVisibleObject() instanceof Npc) targetId = ((Npc) env.getVisibleObject()).getNpcId(); if (qs.getStatus() == QuestStatus.START) { if (targetId == 790001) { switch (env.getDialogId()) { case 25: if (var == 0) return sendQuestDialog(player, env.getVisibleObject().getObjectId(), 1011); else if (var == 3) return sendQuestDialog(player, env.getVisibleObject().getObjectId(), 1693); else if (var == 5) return sendQuestDialog(player, env.getVisibleObject().getObjectId(), 2034); case 10000: if (var == 0) { if (player.getInventory().getItemCountByItemId(182200007) == 0) if (!itemService.addItems( player, Collections.singletonList(new QuestItems(182200007, 1)))) return true; qs.setQuestVarById(0, var + 1); updateQuestStatus(player, qs); PacketSendUtility.sendPacket( player, new SM_DIALOG_WINDOW(env.getVisibleObject().getObjectId(), 10)); return true; } case 10002: if (var == 3) { player.getInventory().removeFromBagByItemId(182200009, 1); qs.setQuestVar(99); updateQuestStatus(player, qs); PacketSendUtility.sendPacket( player, new SM_DIALOG_WINDOW(env.getVisibleObject().getObjectId(), 0)); WorldMapInstance newInstance = instanceService.getNextAvailableInstance(310010000); instanceService.registerPlayerWithInstance(newInstance, player); teleportService.teleportTo( player, 310010000, newInstance.getInstanceId(), 52, 174, 229, 0); return true; } case 10003: if (var == 5) { PlayerClass playerClass = player.getCommonData().getPlayerClass(); if (playerClass == PlayerClass.WARRIOR) return sendQuestDialog(player, env.getVisibleObject().getObjectId(), 2375); else if (playerClass == PlayerClass.SCOUT) return sendQuestDialog(player, env.getVisibleObject().getObjectId(), 2716); else if (playerClass == PlayerClass.MAGE) return sendQuestDialog(player, env.getVisibleObject().getObjectId(), 3057); else if (playerClass == PlayerClass.PRIEST) return sendQuestDialog(player, env.getVisibleObject().getObjectId(), 3398); } case 10004: if (var == 5) return setPlayerClass(env, qs, PlayerClass.GLADIATOR); case 10005: if (var == 5) return setPlayerClass(env, qs, PlayerClass.TEMPLAR); case 10006: if (var == 5) return setPlayerClass(env, qs, PlayerClass.ASSASSIN); case 10007: if (var == 5) return setPlayerClass(env, qs, PlayerClass.RANGER); case 10008: if (var == 5) return setPlayerClass(env, qs, PlayerClass.SORCERER); case 10009: if (var == 5) return setPlayerClass(env, qs, PlayerClass.SPIRIT_MASTER); case 10010: if (var == 5) return setPlayerClass(env, qs, PlayerClass.CLERIC); case 10011: if (var == 5) return setPlayerClass(env, qs, PlayerClass.CHANTER); } } else if (targetId == 730008) { switch (env.getDialogId()) { case 25: if (var == 2) { if (player.getInventory().getItemCountByItemId(182200008) != 0) return sendQuestDialog(player, env.getVisibleObject().getObjectId(), 1352); else return sendQuestDialog(player, env.getVisibleObject().getObjectId(), 1354); } case 1353: if (var == 2) { PacketSendUtility.sendPacket(player, new SM_PLAY_MOVIE(0, 14)); player.getInventory().removeFromBagByItemId(182200008, 1); itemService.addItems(player, Collections.singletonList(new QuestItems(182200009, 1))); } return false; case 10001: if (var == 2) { qs.setQuestVarById(0, var + 1); updateQuestStatus(player, qs); PacketSendUtility.sendPacket( player, new SM_DIALOG_WINDOW(env.getVisibleObject().getObjectId(), 10)); return true; } } } else if (targetId == 205000) { switch (env.getDialogId()) { case 25: if (var == 99) { PacketSendUtility.sendPacket(player, new SM_EMOTION(player, 6, 1001, 0)); qs.setQuestVar(50); updateQuestStatus(player, qs); ThreadPoolManager.getInstance() .schedule( new Runnable() { @Override public void run() { qs.setQuestVar(51); updateQuestStatus(player, qs); List<Npc> mobs = new ArrayList<Npc>(); mobs.add( (Npc) questService.addNewSpawn( 310010000, instanceId, 211042, (float) 224.073, (float) 239.1, (float) 206.7, (byte) 0, true)); mobs.add( (Npc) questService.addNewSpawn( 310010000, instanceId, 211042, (float) 233.5, (float) 241.04, (float) 206.365, (byte) 0, true)); mobs.add( (Npc) questService.addNewSpawn( 310010000, instanceId, 211042, (float) 229.6, (float) 265.7, (float) 205.7, (byte) 0, true)); mobs.add( (Npc) questService.addNewSpawn( 310010000, instanceId, 211042, (float) 222.8, (float) 262.5, (float) 205.7, (byte) 0, true)); for (Npc mob : mobs) { // TODO: Tempt decrease P attack. mob.getGameStats() .setStat( StatEnum.MAIN_HAND_POWER, mob.getGameStats().getCurrentStat(StatEnum.MAIN_HAND_POWER) / 3); mob.getGameStats().setStat(StatEnum.PHYSICAL_DEFENSE, 0); mob.getAggroList().addDamage(player, 1000); } } }, 43000); return true; } return false; default: return false; } } } else if (qs.getStatus() == QuestStatus.REWARD) { if (targetId == 790001) { return defaultQuestEndDialog(env); } } return false; }
@Override public boolean onDialogEvent(QuestEnv env) { // Instanceof final Player player = env.getPlayer(); int targetId = 0; if (env.getVisibleObject() instanceof Npc) targetId = ((Npc) env.getVisibleObject()).getNpcId(); QuestState qs = player.getQuestStateList().getQuestState(questId); // ------------------------------------------------------------ // NPC Quest : // 0 - Start to Lavirintos if (qs == null || qs.getStatus() == QuestStatus.NONE) { if (targetId == 203701) { // Get HACTION_QUEST_SELECT in the eddit-HyperLinks.xml if (env.getDialogId() == 25) // Send select_none to eddit-HtmlPages.xml return sendQuestDialog(player, env.getVisibleObject().getObjectId(), 4762); else return defaultQuestStartDialog(env); } } if (qs == null) return false; int var = qs.getQuestVarById(0); if (qs.getStatus() == QuestStatus.START) { switch (targetId) { // 1 - Talk with Nianalo case 798359: switch (env.getDialogId()) { // Get HACTION_QUEST_SELECT in the eddit-HyperLinks.xml case 25: // Send select1 to eddit-HtmlPages.xml return sendQuestDialog(player, env.getVisibleObject().getObjectId(), 1011); // Get HACTION_SETPRO1 in the eddit-HyperLinks.xml case 10000: qs.setQuestVarById(0, var + 1); updateQuestStatus(player, qs); PacketSendUtility.sendPacket( player, new SM_DIALOG_WINDOW(env.getVisibleObject().getObjectId(), 10)); return true; } break; // 2 - Talk with Navid case 798360: if (var == 1) { switch (env.getDialogId()) { // Get HACTION_QUEST_SELECT in the eddit-HyperLinks.xml case 25: // Send select2 to eddit-HtmlPages.xml return sendQuestDialog(player, env.getVisibleObject().getObjectId(), 1352); // Get HACTION_SETPRO2 in the eddit-HyperLinks.xml case 10001: qs.setQuestVarById(0, var + 1); updateQuestStatus(player, qs); PacketSendUtility.sendPacket( player, new SM_DIALOG_WINDOW(env.getVisibleObject().getObjectId(), 10)); return true; } } break; // 3 - Talk with Pavel case 798361: if (var == 2) { switch (env.getDialogId()) { // Get HACTION_QUEST_SELECT in the eddit-HyperLinks.xml case 25: // Send select3 to eddit-HtmlPages.xml return sendQuestDialog(player, env.getVisibleObject().getObjectId(), 1693); // Get HACTION_SETPRO3 in the eddit-HyperLinks.xml case 10002: qs.setQuestVarById(0, var + 1); updateQuestStatus(player, qs); PacketSendUtility.sendPacket( player, new SM_DIALOG_WINDOW(env.getVisibleObject().getObjectId(), 10)); return true; } } break; // 4 - Talk with Pendaon case 798362: if (var == 3) { switch (env.getDialogId()) { // Get HACTION_QUEST_SELECT in the eddit-HyperLinks.xml case 25: // Send select4 to eddit-HtmlPages.xml return sendQuestDialog(player, env.getVisibleObject().getObjectId(), 2034); // Get HACTION_SETPRO4 in the eddit-HyperLinks.xml case 10003: qs.setQuestVarById(0, var + 1); updateQuestStatus(player, qs); PacketSendUtility.sendPacket( player, new SM_DIALOG_WINDOW(env.getVisibleObject().getObjectId(), 10)); return true; } } break; // 5 - Talk with Poevius case 798363: if (var == 4) { switch (env.getDialogId()) { // Get HACTION_QUEST_SELECT in the eddit-HyperLinks.xml case 25: // Send select5 to eddit-HtmlPages.xml return sendQuestDialog(player, env.getVisibleObject().getObjectId(), 2375); // Get HACTION_SETPRO5 in the eddit-HyperLinks.xml case 10004: qs.setQuestVarById(0, var + 1); updateQuestStatus(player, qs); PacketSendUtility.sendPacket( player, new SM_DIALOG_WINDOW(env.getVisibleObject().getObjectId(), 10)); return true; } } break; // 6 - Talk with Belicanon case 798364: if (var == 5) { switch (env.getDialogId()) { // Get HACTION_QUEST_SELECT in the eddit-HyperLinks.xml case 25: // Send select6 to eddit-HtmlPages.xml return sendQuestDialog(player, env.getVisibleObject().getObjectId(), 2716); // Get HACTION_SETPRO6 in the eddit-HyperLinks.xml case 10005: qs.setQuestVarById(0, var + 1); updateQuestStatus(player, qs); PacketSendUtility.sendPacket( player, new SM_DIALOG_WINDOW(env.getVisibleObject().getObjectId(), 10)); return true; } } break; // 7 - Talk with Mahelnu case 798365: if (var == 6) { switch (env.getDialogId()) { // Get HACTION_QUEST_SELECT in the eddit-HyperLinks.xml case 25: // Send select7 to eddit-HtmlPages.xml return sendQuestDialog(player, env.getVisibleObject().getObjectId(), 3057); // Get HACTION_SETPRO7 in the eddit-HyperLinks.xml case 10006: qs.setQuestVarById(0, var + 1); updateQuestStatus(player, qs); PacketSendUtility.sendPacket( player, new SM_DIALOG_WINDOW(env.getVisibleObject().getObjectId(), 10)); return true; } } break; // 8 - Talk with Pater case 798366: if (var == 7) { switch (env.getDialogId()) { // Get HACTION_QUEST_SELECT in the eddit-HyperLinks.xml case 25: // Send select8 to eddit-HtmlPages.xml return sendQuestDialog(player, env.getVisibleObject().getObjectId(), 3398); // Get HACTION_SETPRO8 in the eddit-HyperLinks.xml case 10007: qs.setQuestVarById(0, var + 1); updateQuestStatus(player, qs); PacketSendUtility.sendPacket( player, new SM_DIALOG_WINDOW(env.getVisibleObject().getObjectId(), 10)); return true; } } break; // 9 - Report the result to Jucleas with the Oath Stone case 203752: if (var == 8) { switch (env.getDialogId()) { // Get HACTION_QUEST_SELECT in the eddit-HyperLinks.xml case 25: if (player.getInventory().getItemCountByItemId(186000080) >= 1) // Send select9 to eddit-HtmlPages.xml return sendQuestDialog(player, env.getVisibleObject().getObjectId(), 3739); else // Send select9_2 to eddit-HtmlPages.xml return sendQuestDialog(player, env.getVisibleObject().getObjectId(), 3825); // Get HACTION_SET_SUCCEED in the eddit-HyperLinks.xml case 10255: // Send select_success to eddit-HtmlPages.xml return sendQuestDialog(player, env.getVisibleObject().getObjectId(), 10002); // Get HACTION_SELECT_QUEST_REWARD in the // eddit-HyperLinks.xml case 1009: ItemService.removeItemFromInventoryByItemId(player, 186000080); qs.setStatus(QuestStatus.REWARD); updateQuestStatus(player, qs); // Send select_quest_reward1 to eddit-HtmlPages.xml return sendQuestDialog(player, env.getVisibleObject().getObjectId(), 5); } } break; // No match default: return defaultQuestStartDialog(env); } } else if (qs.getStatus() == QuestStatus.REWARD) { if (targetId == 203701) return defaultQuestEndDialog(env); } return false; }
@Override public boolean onDialogEvent(QuestEnv env) { final Player player = env.getPlayer(); final QuestState qs = player.getQuestStateList().getQuestState(questId); if (qs == null) return false; int var = qs.getQuestVarById(0); int targetId = 0; if (env.getVisibleObject() instanceof Npc) targetId = ((Npc) env.getVisibleObject()).getNpcId(); if (qs.getStatus() == QuestStatus.REWARD) { if (targetId == 204501) return defaultQuestEndDialog(env); } else if (qs.getStatus() != QuestStatus.START) { return false; } if (targetId == 204501) { switch (env.getDialogId()) { case 25: if (var == 0) return sendQuestDialog(player, env.getVisibleObject().getObjectId(), 1011); else if (var == 4) return sendQuestDialog(player, env.getVisibleObject().getObjectId(), 2375); return false; case 10000: if (var == 0) { qs.setQuestVarById(0, var + 1); updateQuestStatus(player, qs); PacketSendUtility.sendPacket( player, new SM_DIALOG_WINDOW(env.getVisibleObject().getObjectId(), 10)); return true; } case 10004: if (var == 4) { qs.setQuestVarById(0, var + 1); updateQuestStatus(player, qs); PacketSendUtility.sendPacket( player, new SM_DIALOG_WINDOW(env.getVisibleObject().getObjectId(), 10)); return true; } return false; } } else if (targetId == 204582) { switch (env.getDialogId()) { case 25: if (var == 1) return sendQuestDialog(player, env.getVisibleObject().getObjectId(), 1352); else if (var == 3) return sendQuestDialog(player, env.getVisibleObject().getObjectId(), 2034); return false; case 10001: if (var == 1) { qs.setQuestVarById(0, var + 1); updateQuestStatus(player, qs); PacketSendUtility.sendPacket( player, new SM_DIALOG_WINDOW(env.getVisibleObject().getObjectId(), 10)); return true; } case 10003: if (var == 3) { qs.setQuestVarById(0, var + 1); updateQuestStatus(player, qs); PacketSendUtility.sendPacket( player, new SM_DIALOG_WINDOW(env.getVisibleObject().getObjectId(), 10)); ItemService.decreaseItemCountByItemId(player, 182201601, 1); return true; } return false; } } else if (targetId == 203882) { switch (env.getDialogId()) { case 25: if (var == 5) return sendQuestDialog(player, env.getVisibleObject().getObjectId(), 2716); case 10005: if (var == 5) { qs.setQuestVarById(0, var + 1); updateQuestStatus(player, qs); PacketSendUtility.sendPacket( player, new SM_DIALOG_WINDOW(env.getVisibleObject().getObjectId(), 10)); return true; } return false; } } else if (targetId == 278503) { switch (env.getDialogId()) { case 25: if (var == 6) return sendQuestDialog(player, env.getVisibleObject().getObjectId(), 3057); else if (var == 7) return sendQuestDialog(player, env.getVisibleObject().getObjectId(), 3398); case 33: if (QuestService.collectItemCheck(env, true)) { qs.setQuestVarById(0, var + 1); qs.setStatus(QuestStatus.REWARD); updateQuestStatus(player, qs); return sendQuestDialog(player, env.getVisibleObject().getObjectId(), 10000); } else return sendQuestDialog(player, env.getVisibleObject().getObjectId(), 10001); case 10006: if (var == 6) { qs.setQuestVarById(0, var + 1); updateQuestStatus(player, qs); PacketSendUtility.sendPacket( player, new SM_DIALOG_WINDOW(env.getVisibleObject().getObjectId(), 10)); return true; } case 10007: if (var == 7) { qs.setQuestVarById(0, var + 1); updateQuestStatus(player, qs); PacketSendUtility.sendPacket( player, new SM_DIALOG_WINDOW(env.getVisibleObject().getObjectId(), 10)); return true; } return false; } } else if (targetId == 700217 && qs.getQuestVarById(0) == 2) { if (env.getDialogId() == -1) { final int targetObjectId = env.getVisibleObject().getObjectId(); PacketSendUtility.sendPacket( player, new SM_USE_OBJECT(player.getObjectId(), targetObjectId, 3000, 1)); PacketSendUtility.broadcastPacket( player, new SM_EMOTION(player, EmotionType.NEUTRALMODE2, 0, targetObjectId), true); ThreadPoolManager.getInstance() .schedule( new Runnable() { @Override public void run() { PacketSendUtility.sendPacket( player, new SM_USE_OBJECT(player.getObjectId(), targetObjectId, 3000, 0)); PacketSendUtility.broadcastPacket( player, new SM_EMOTION(player, EmotionType.START_LOOT, 0, targetObjectId), true); sendQuestDialog(player, targetObjectId, 1693); } }, 3000); } else if (qs.getQuestVarById(0) == 2 && env.getDialogId() == 10002) { PacketSendUtility.sendPacket( player, new SM_DIALOG_WINDOW(env.getVisibleObject().getObjectId(), 0)); ItemService.addItems(player, Collections.singletonList(new QuestItems(182201601, 1))); qs.setQuestVarById(0, 3); updateQuestStatus(player, qs); return true; } } else if (targetId == 700303 && qs.getQuestVarById(0) == 7) { if (env.getDialogId() == -1) { final int targetObjectId = env.getVisibleObject().getObjectId(); PacketSendUtility.sendPacket( player, new SM_USE_OBJECT(player.getObjectId(), targetObjectId, 3000, 1)); PacketSendUtility.broadcastPacket( player, new SM_EMOTION(player, EmotionType.NEUTRALMODE2, 0, targetObjectId), true); ThreadPoolManager.getInstance() .schedule( new Runnable() { @Override public void run() { PacketSendUtility.sendPacket( player, new SM_USE_OBJECT(player.getObjectId(), targetObjectId, 3000, 0)); PacketSendUtility.broadcastPacket( player, new SM_EMOTION(player, EmotionType.START_LOOT, 0, targetObjectId), true); ItemService.addItems( player, Collections.singletonList(new QuestItems(182201602, 1))); } }, 3000); } } return false; }