@Override public String onAdvEvent(final String event, final L2Npc npc, final L2PcInstance player) { String htmltext = event; final QuestState st = player.getQuestState(qn); if (st == null) return htmltext; if ("31377-03.htm".equalsIgnoreCase(event)) { if (player.getLevel() >= 74 && player.getAllianceWithVarkaKetra() <= -1) { st.set("cond", "1"); st.setState(QuestState.STARTED); st.playSound(QuestState.SOUND_ACCEPT); } else { htmltext = "31377-02.htm"; st.exitQuest(true); } } else if ("31377-07.htm".equalsIgnoreCase(event)) { if (st.getQuestItemsCount(Molar) >= 100) { st.takeItems(Molar, 100); st.giveItems(Seed, 20); st.playSound(QuestState.SOUND_ITEMGET); } else htmltext = "31377-08.htm"; } else if ("31377-09.htm".equalsIgnoreCase(event)) { st.takeItems(Molar, -1); st.exitQuest(true); } return htmltext; }
@Override public String onKill(final L2Npc npc, final L2PcInstance player, final boolean isPet) { final L2PcInstance partyMember = getRandomPartyMember(player, npc, "1"); if (partyMember != null) partyMember.getQuestState(qn).dropQuestItems(HONEY_POUCH, 1, 100, 500000); return null; }
public SellListProcure(L2PcInstance player, int castleId) { _money = player.getAdena(); _activeChar = player; _castle = castleId; _procureList = CastleManager.getInstance().getCastleById(_castle).getCropProcure(0); for (CropProcure c : _procureList) { L2ItemInstance item = _activeChar.getInventory().getItemByItemId(c.getId()); if (item != null && c.getAmount() > 0) _sellList.put(item, c.getAmount()); } }
@Override public String onTalk(final L2Npc npc, final L2PcInstance player) { if (player.isSubClassActive()) return null; if (player.getRace().ordinal() == 3) { if (player.getClassId().getId() == 47) return "30513-01.htm"; else if (player.getClassId().getId() == 45) return "30513-05.htm"; else if (player.getClassId().getId() == 50) return "30513-09.htm"; else if (player.getClassId().level() == 0) return "30513-33.htm"; else if (player.getClassId().level() >= 2) return "30513-32.htm"; } else return "30513-34.htm"; return null; }
@Override public String onTalk(final L2Npc npc, final L2PcInstance player) { final QuestState st = player.getQuestState(qn); String htmltext = getNoQuestMsg(); if (st == null) return htmltext; switch (st.getState()) { case QuestState.CREATED: if (player.getLevel() >= 34 && player.getLevel() <= 40) htmltext = "30620-0.htm"; else { htmltext = "30620-0a.htm"; st.exitQuest(true); } break; case QuestState.STARTED: final int cond = st.getInt("cond"); switch (npc.getNpcId()) { case EMILY: if (cond == 1) htmltext = "30620-1a.htm"; else if (cond == 2) { if (st.getQuestItemsCount(HONEY_POUCH) >= 100) htmltext = "30620-2.htm"; else { htmltext = "30620-2a.htm"; st.exitQuest(true); } } else if (cond == 3) htmltext = "30620-3a.htm"; else if (cond == 4) { if (st.getQuestItemsCount(AVELLAN_SPICE) >= 1) htmltext = "30620-4.htm"; else { htmltext = "30620-4a.htm"; st.exitQuest(true); } } else if (cond == 5) htmltext = "30620-5a.htm"; else if (cond == 6) htmltext = "30620-6.htm"; break; case LARA: if (cond == 3) htmltext = "30063-0.htm"; else if (cond >= 4) htmltext = "30063-1a.htm"; break; case BRIGHT: if (cond == 5) htmltext = "30466-0.htm"; else if (cond >= 6) htmltext = "30466-1a.htm"; break; } break; } return htmltext; }
public boolean endActivePetition(L2PcInstance player) { if (!player.isGM()) return false; for (Petition currPetition : getPendingPetitions().values()) { if (currPetition == null) continue; if (currPetition.getResponder() != null && currPetition.getResponder().getObjectId() == player.getObjectId()) return (currPetition.endPetitionConsultation(PetitionState.Completed)); } return false; }
public boolean cancelActivePetition(L2PcInstance player) { for (Petition currPetition : getPendingPetitions().values()) { if (currPetition.getPetitioner() != null && currPetition.getPetitioner().getObjectId() == player.getObjectId()) return (currPetition.endPetitionConsultation(PetitionState.Petitioner_Cancel)); if (currPetition.getResponder() != null && currPetition.getResponder().getObjectId() == player.getObjectId()) return (currPetition.endPetitionConsultation(PetitionState.Responder_Cancel)); } return false; }
public int submitPetition(L2PcInstance petitioner, String petitionText, int petitionType) { // Create a new petition instance and add it to the list of pending petitions. Petition newPetition = new Petition(petitioner, petitionText, petitionType); int newPetitionId = newPetition.getId(); getPendingPetitions().put(newPetitionId, newPetition); // Notify all GMs that a new petition has been submitted. String msgContent = petitioner.getName() + " has submitted a new petition."; // (ID: " + newPetitionId + ")."; GmListTable.broadcastToGMs( new CreatureSay(petitioner.getObjectId(), 17, "Petition System", msgContent)); return newPetitionId; }
public void checkPetitionMessages(L2PcInstance petitioner) { if (petitioner != null) for (Petition currPetition : getPendingPetitions().values()) { if (currPetition == null) continue; if (currPetition.getPetitioner() != null && currPetition.getPetitioner().getObjectId() == petitioner.getObjectId()) { for (CreatureSay logMessage : currPetition.getLogMessages()) petitioner.sendPacket(logMessage); return; } } }
public boolean isPlayerInConsultation(L2PcInstance player) { if (player != null) for (Petition currPetition : getPendingPetitions().values()) { if (currPetition == null) continue; if (currPetition.getState() != PetitionState.In_Process) continue; if ((currPetition.getPetitioner() != null && currPetition.getPetitioner().getObjectId() == player.getObjectId()) || (currPetition.getResponder() != null && currPetition.getResponder().getObjectId() == player.getObjectId())) return true; } return false; }
@Override public String onTalk(final L2Npc npc, final L2PcInstance player) { final QuestState st = player.getQuestState(qn); String htmltext = getNoQuestMsg(); if (st == null) return htmltext; switch (st.getState()) { case QuestState.CREATED: if (player.getRace().ordinal() == 1) { if (player.getLevel() >= 12 && player.getLevel() <= 18) htmltext = "30154-03.htm"; else { htmltext = "30154-02.htm"; st.exitQuest(true); } } else { htmltext = "30154-00.htm"; st.exitQuest(true); } break; case QuestState.STARTED: final int cond = st.getInt("cond"); if (cond == 1) htmltext = "30154-05.htm"; else if (cond == 2) { st.set("cond", "3"); htmltext = "30154-06.htm"; st.takeItems(PLAGUE_DUST, -1); st.takeItems(HYACINTH_CHARM1, -1); st.giveItems(HYACINTH_CHARM2, 1); st.playSound(QuestState.SOUND_MIDDLE); } else if (cond == 3) htmltext = "30154-07.htm"; else if (cond == 4) { htmltext = "30154-08.htm"; st.takeItems(PLAGUE_DUST, -1); st.takeItems(HYACINTH_CHARM2, -1); st.rewardItems(ADENA, 18250); st.playSound(QuestState.SOUND_FINISH); st.exitQuest(false); } break; case QuestState.COMPLETED: htmltext = Quest.getAlreadyCompletedMsg(); break; } return htmltext; }
@Override public String onAdvEvent(final String event, final L2Npc npc, final L2PcInstance player) { final String htmltext = event; final QuestState st = player.getQuestState(qn); if (st == null) return htmltext; if ("30533-02.htm".equalsIgnoreCase(event)) { st.set("cond", "1"); st.setState(QuestState.STARTED); st.playSound(QuestState.SOUND_ACCEPT); } else if ("30520-02.htm".equalsIgnoreCase(event)) { st.set("cond", "2"); st.giveItems(VeryExpensiveNecklace, 1); st.playSound(QuestState.SOUND_MIDDLE); } else if ("30650-02.htm".equalsIgnoreCase(event)) { st.set("cond", "3"); st.takeItems(VeryExpensiveNecklace, 1); st.playSound(QuestState.SOUND_MIDDLE); } else if ("30520-04.htm".equalsIgnoreCase(event)) { st.set("cond", "4"); st.playSound(QuestState.SOUND_MIDDLE); } else if ("30533-05.htm".equalsIgnoreCase(event)) { st.giveItems(ScrollOfEscapeGiran, 1); st.rewardItems(MarkOfTraveler, 1); st.playSound(QuestState.SOUND_FINISH); st.exitQuest(false); } return htmltext; }
@Override public String onAdvEvent(final String event, final L2Npc npc, final L2PcInstance player) { final String htmltext = event; final QuestState st = player.getQuestState(qn); if (st == null) return htmltext; if ("31517-2.htm".equalsIgnoreCase(event)) { st.set("cond", "1"); st.setState(QuestState.STARTED); st.giveItems(CRYSTAL_OF_SEAL, 5); st.playSound(QuestState.SOUND_ACCEPT); } else if ("31512-1.htm".equalsIgnoreCase(event)) { st.set("cond", "2"); st.takeItems(CRYSTAL_OF_SEAL, 1); st.playSound(QuestState.SOUND_MIDDLE); } else if ("31513-1.htm".equalsIgnoreCase(event)) { st.set("cond", "3"); st.takeItems(CRYSTAL_OF_SEAL, 1); st.playSound(QuestState.SOUND_MIDDLE); } else if ("31514-1.htm".equalsIgnoreCase(event)) { st.set("cond", "4"); st.takeItems(CRYSTAL_OF_SEAL, 1); st.playSound(QuestState.SOUND_MIDDLE); } else if ("31515-1.htm".equalsIgnoreCase(event)) { st.set("cond", "5"); st.takeItems(CRYSTAL_OF_SEAL, 1); st.playSound(QuestState.SOUND_MIDDLE); } else if ("31516-1.htm".equalsIgnoreCase(event)) { st.set("cond", "6"); st.takeItems(CRYSTAL_OF_SEAL, 1); st.playSound(QuestState.SOUND_MIDDLE); } return htmltext; }
public void viewPetition(L2PcInstance activeChar, int petitionId) { if (!activeChar.isGM()) return; if (!isValidPetition(petitionId)) return; Petition currPetition = getPendingPetitions().get(petitionId); TextBuilder htmlContent = new TextBuilder("<html><body>"); SimpleDateFormat dateFormat = new SimpleDateFormat("EEE dd MMM HH:mm z"); htmlContent .append("<center><br><font color=\"LEVEL\">Petition #") .append(currPetition.getId()) .append("</font><br1>"); htmlContent.append("<img src=\"L2UI.SquareGray\" width=\"200\" height=\"1\"></center><br>"); htmlContent .append("Submit Time: ") .append(dateFormat.format(new Date(currPetition.getSubmitTime()))) .append("<br1>"); htmlContent .append("Petitioner: ") .append(currPetition.getPetitioner().getName()) .append("<br1>"); htmlContent .append("Petition Type: ") .append(currPetition.getTypeAsString()) .append("<br>") .append(currPetition.getContent()) .append("<br>"); htmlContent .append("<center><button value=\"Accept\" action=\"bypass -h admin_accept_petition ") .append(currPetition.getId()) .append("\"") .append("width=\"50\" height=\"15\" back=\"sek.cbui94\" fore=\"sek.cbui92\"><br1>"); htmlContent .append("<button value=\"Reject\" action=\"bypass -h admin_reject_petition ") .append(currPetition.getId()) .append("\" ") .append("width=\"50\" height=\"15\" back=\"sek.cbui94\" fore=\"sek.cbui92\"><br>"); htmlContent.append( "<button value=\"Back\" action=\"bypass -h admin_view_petitions\" width=\"40\" height=\"15\" back=\"sek.cbui94\" " + "fore=\"sek.cbui92\"></center>"); htmlContent.append("</body></html>"); NpcHtmlMessage htmlMsg = new NpcHtmlMessage(0); htmlMsg.setHtml(htmlContent.toString()); activeChar.sendPacket(htmlMsg); }
@Override protected void runImpl() { final L2PcInstance activeChar = getClient().getActiveChar(); if (activeChar == null) return; // should be always 0, log it if isn't 0 for future research if (_bossId != 0) log.info("C5: RequestGetBossRecord: d: " + _bossId + " ActiveChar: " + activeChar); int points = RaidBossPointsManager.getInstance().getPointsByOwnerId(activeChar.getObjectId()); int ranking = RaidBossPointsManager.getInstance().calculateRanking(activeChar.getObjectId()); Map<Integer, Integer> list = RaidBossPointsManager.getInstance().getList(activeChar); // trigger packet activeChar.sendPacket(new ExGetBossRecord(ranking, points, list)); }
@Override public boolean useAdminCommand(final String command, final L2PcInstance activeChar) { if (command.startsWith("admin_ride")) { // command disabled if CW is worn. Warn user. if (activeChar.isCursedWeaponEquipped()) { activeChar.sendChatMessage( 0, Say2.ALL, "SYS", "You can't use //ride owning a Cursed Weapon."); return false; } String mount = ""; final StringTokenizer st = new StringTokenizer(command, " "); st.nextToken(); // skip command if (st.hasMoreTokens()) { mount = st.nextToken(); switch (mount) { case "wyvern": case "2": _petRideId = 12621; break; case "strider": case "1": _petRideId = 12526; break; default: activeChar.sendChatMessage( 0, Say2.ALL, "SYS", "Parameter '" + mount + "' isn't recognized for that command."); return false; } } else { activeChar.sendChatMessage( 0, Say2.ALL, "SYS", "You must enter a parameter for that command."); return false; } // If code reached that place, it means _petRideId has been filled. if (activeChar.isMounted()) activeChar.dismount(); else if (activeChar.getPet() != null) activeChar.getPet().unSummon(activeChar); activeChar.mount(_petRideId, 0, false); } else if ("admin_unride".equals(command)) activeChar.dismount(); return true; }
@Override public String onTalk(final L2Npc npc, final L2PcInstance player) { String htmltext = getNoQuestMsg(); final QuestState st = player.getQuestState(qn); if (st == null) return htmltext; switch (st.getState()) { case QuestState.CREATED: htmltext = player.getLevel() >= 3 && player.getLevel() <= 10 && player.getRace().ordinal() == 4 ? "30533-01.htm" : "30533-01a.htm"; break; case QuestState.STARTED: final int cond = st.getInt("cond"); switch (npc.getNpcId()) { case Balanki: if (cond >= 1 && cond <= 3) htmltext = "30533-03.htm"; else if (cond == 4) htmltext = "30533-04.htm"; break; case Reed: if (cond == 1) htmltext = "30520-01.htm"; else if (cond == 2) htmltext = "30520-02a.htm"; else if (cond == 3) htmltext = "30520-03.htm"; else if (cond == 4) htmltext = "30520-04a.htm"; break; case Gerald: if (cond == 2) htmltext = "30650-01.htm"; else if (cond >= 3) htmltext = "30650-04.htm"; break; } break; case QuestState.COMPLETED: htmltext = Quest.getAlreadyCompletedMsg(); break; } return htmltext; }
public boolean isPlayerPetitionPending(L2PcInstance petitioner) { if (petitioner != null) for (Petition currPetition : getPendingPetitions().values()) { if (currPetition == null) continue; if (currPetition.getPetitioner() != null && currPetition.getPetitioner().getObjectId() == petitioner.getObjectId()) return true; } return false; }
public int getPlayerTotalPetitionCount(L2PcInstance player) { if (player == null) return 0; int petitionCount = 0; for (Petition currPetition : getPendingPetitions().values()) { if (currPetition == null) continue; if (currPetition.getPetitioner() != null && currPetition.getPetitioner().getObjectId() == player.getObjectId()) petitionCount++; } for (Petition currPetition : getCompletedPetitions().values()) { if (currPetition == null) continue; if (currPetition.getPetitioner() != null && currPetition.getPetitioner().getObjectId() == player.getObjectId()) petitionCount++; } return petitionCount; }
@Override public String onKill(final L2Npc npc, final L2PcInstance player, final boolean isPet) { final QuestState st = player.getQuestState(qn); if (st == null) return null; if (st.isStarted() && Rnd.get(10) > 4) { st.giveItems(npc.getNpcId() == 20385 ? ORC_AMULET : ORC_NECKLACE, 1); st.playSound(QuestState.SOUND_ITEMGET); } return null; }
public boolean sendActivePetitionMessage(L2PcInstance player, String messageText) { // if (!isPlayerInConsultation(player)) // return false; CreatureSay cs; for (Petition currPetition : getPendingPetitions().values()) { if (currPetition == null) continue; if (currPetition.getPetitioner() != null && currPetition.getPetitioner().getObjectId() == player.getObjectId()) { cs = new CreatureSay( player.getObjectId(), Say2.PETITION_PLAYER, player.getName(), messageText); currPetition.addLogMessage(cs); currPetition.sendResponderPacket(cs); currPetition.sendPetitionerPacket(cs); return true; } if (currPetition.getResponder() != null && currPetition.getResponder().getObjectId() == player.getObjectId()) { cs = new CreatureSay(player.getObjectId(), Say2.PETITION_GM, player.getName(), messageText); currPetition.addLogMessage(cs); currPetition.sendResponderPacket(cs); currPetition.sendPetitionerPacket(cs); return true; } } return false; }
@Override public String onTalk(final L2Npc npc, final L2PcInstance player) { final QuestState st = player.getQuestState(qn); String htmltext = getNoQuestMsg(); if (st == null) return htmltext; switch (st.getState()) { case QuestState.CREATED: if (player.getRace().ordinal() == 2) { htmltext = "30147-00.htm"; st.exitQuest(true); } else if (player.getLevel() >= 12 && player.getLevel() <= 21) htmltext = "30147-02.htm"; else { htmltext = "30147-01.htm"; st.exitQuest(true); } break; case QuestState.STARTED: final int cond = st.getInt("cond"); if (cond == 1) htmltext = "30147-05.htm"; else if (cond == 2 && st.getQuestItemsCount(ELF_SKULL) >= 3 && st.getQuestItemsCount(BONE_FRAGMENT) >= 10) { htmltext = "30147-06.htm"; st.takeItems(ELF_SKULL, -1); st.takeItems(BONE_FRAGMENT, -1); st.rewardItems(ADENA, 24000); st.giveItems(BONE_SHIELD, 1); st.exitQuest(false); st.playSound(QuestState.SOUND_FINISH); } break; case QuestState.COMPLETED: htmltext = Quest.getAlreadyCompletedMsg(); break; } return htmltext; }
@Override public void useSkill(L2Character activeChar, L2Object[] targets) { if (activeChar instanceof L2PcInstance) { // Thanks nbd if (!TvTEvent.onEscapeUse(((L2PcInstance) activeChar).getObjectId())) { activeChar.sendPacket(ActionFailed.STATIC_PACKET); return; } // Check invalid states. if (activeChar.isAfraid() || ((L2PcInstance) activeChar).isInOlympiadMode() || (GrandBossManager.getInstance().getZone(activeChar) != null && !activeChar.isGM())) return; } for (L2Character target : (L2Character[]) targets) { if (target == null) return; if (target instanceof L2PcInstance) { L2PcInstance targetChar = (L2PcInstance) target; // Check invalid states. if (targetChar.isFestivalParticipant() || targetChar.isInJail() || targetChar.isInDuel()) continue; if (targetChar != activeChar) { if (targetChar.isInOlympiadMode()) continue; if (GrandBossManager.getInstance().getZone(targetChar) != null) continue; } } Location loc = null; if (getSkillType() == L2SkillType.TELEPORT) { if (_loc != null) { if (!(target instanceof L2PcInstance) || !target.isFlying()) loc = _loc; } } else { if (_recallType.equalsIgnoreCase("Castle")) loc = MapRegionData.getInstance() .getTeleToLocation(target, MapRegionData.TeleportWhereType.Castle); else if (_recallType.equalsIgnoreCase("ClanHall")) loc = MapRegionData.getInstance() .getTeleToLocation(target, MapRegionData.TeleportWhereType.ClanHall); else loc = MapRegionData.getInstance() .getTeleToLocation(target, MapRegionData.TeleportWhereType.Town); } if (loc != null) { if (target instanceof L2PcInstance) ((L2PcInstance) target).setIsIn7sDungeon(false); target.teleToLocation(loc, true); } } }
@Override public String onKill(final L2Npc npc, final L2PcInstance player, final boolean isPet) { final QuestState st = player.getQuestState(qn); if (st == null) return null; if (st.getInt("cond") == 7 && Rnd.get(10) < 2) { st.set("cond", "8"); st.giveItems(GREY_STAR, 1); st.playSound(QuestState.SOUND_ITEMGET); } return null; }
@Override protected void runImpl() { final L2PcInstance activeChar = getClient().getActiveChar(); if (activeChar == null) return; final L2PcInstance requestor = activeChar.getActiveRequester(); if (requestor == null) return; if (_answer == 1) ClanTable.getInstance().deleteclanswars(requestor.getClanId(), activeChar.getClanId()); else requestor.sendPacket(SystemMessageId.REQUEST_TO_END_WAR_HAS_BEEN_DENIED); activeChar.setActiveRequester(null); requestor.onTransactionResponse(); }
/** * Add a L2Object in the world.<br> * <br> * <B><U> Concept</U> :</B><br> * <br> * L2Object (including L2PcInstance) are identified in <B>_visibleObjects</B> of his current * L2WorldRegion and in <B>_knownObjects</B> of other surrounding L2Characters <br> * L2PcInstance are identified in <B>_allPlayers</B> of L2World, in <B>_allPlayers</B> of his * current L2WorldRegion and in <B>_knownPlayer</B> of other surrounding L2Characters <br> * <br> * <B><U> Actions</U> :</B><br> * <br> * <li>Add the L2Object object in _allPlayers* of L2World * <li>Add the L2Object object in _gmList** of GmListTable * <li>Add object in _knownObjects and _knownPlayer* of all surrounding L2WorldRegion L2Characters * <br> * <li>If object is a L2Character, add all surrounding L2Object in its _knownObjects and all * surrounding L2PcInstance in its _knownPlayer <br> * <I>* only if object is a L2PcInstance</I><br> * <I>** only if object is a GM L2PcInstance</I><br> * <br> * <FONT COLOR=#FF0000><B> <U>Caution</U> : This method DOESN'T ADD the object in * _visibleObjects and _allPlayers* of L2WorldRegion (need synchronisation)</B></FONT><br> * <FONT COLOR=#FF0000><B> <U>Caution</U> : This method DOESN'T ADD the object to _allObjects * and _allPlayers* of L2World (need synchronisation)</B></FONT><br> * <br> * <B><U> Example of use </U> :</B><br> * <br> * <li>Drop an Item * <li>Spawn a L2Character * <li>Apply Death Penalty of a L2PcInstance<br> * <br> * * @param object L2object to add in the world * @param newRegion L2WorldRegion in wich the object will be add (not used) */ public void addVisibleObject(L2Object object, L2WorldRegion newRegion) { // If selected L2Object is a L2PcIntance, add it in L2ObjectHashSet(L2PcInstance) _allPlayers of // L2World // XXX TODO: this code should be obsoleted by protection in putObject func... if (object instanceof L2PcInstance) { L2PcInstance player = (L2PcInstance) object; if (!player.isTeleporting()) { L2PcInstance tmp = _allPlayers.get(Integer.valueOf(player.getObjectId())); if (tmp != null) { _log.warn("Duplicate character!? Closing both characters (" + player.getName() + ")"); player.logout(); tmp.logout(); return; } _allPlayers.put(player.getObjectId(), player); } } if (!newRegion.isActive()) return; // Get all visible objects contained in the _visibleObjects of // L2WorldRegions in a circular area of 2000 units List<L2Object> visibles = getVisibleObjects(object, 2000); _log.trace("objects in range:" + visibles.size()); // tell the player about the surroundings // Go through the visible objects contained in the circular area for (L2Object visible : visibles) { // Add the object in L2ObjectHashSet(L2Object) _knownObjects of the visible L2Character // according to conditions : // - L2Character is visible // - object is not already known // - object is in the watch distance // If L2Object is a L2PcInstance, add L2Object in L2ObjectHashSet(L2PcInstance) _knownPlayer // of the visible // L2Character visible.getKnownList().addKnownObject(object); // Add the visible L2Object in L2ObjectHashSet(L2Object) _knownObjects of the object according // to conditions // If visible L2Object is a L2PcInstance, add visible L2Object in // L2ObjectHashSet(L2PcInstance) _knownPlayer of the // object object.getKnownList().addKnownObject(visible); } }
@Override public String onAdvEvent(final String event, final L2Npc npc, final L2PcInstance player) { final String htmltext = event; final QuestState st = player.getQuestState(qn); if (st == null) return htmltext; if ("30147-04.htm".equalsIgnoreCase(event)) { st.set("cond", "1"); st.setState(QuestState.STARTED); st.playSound(QuestState.SOUND_ACCEPT); } return htmltext; }
@Override public String onTalk(final L2Npc npc, final L2PcInstance player) { String htmltext = Quest.getNoQuestMsg(); final QuestState st = player.getQuestState(qn); if (st == null) return htmltext; switch (st.getState()) { case QuestState.CREATED: if (player.getRace().ordinal() == 2) { if (player.getLevel() >= 8 && player.getLevel() <= 16) htmltext = "30346-02.htm"; else { htmltext = "30346-01.htm"; st.exitQuest(true); } } else { htmltext = "30346-00.htm"; st.exitQuest(true); } break; case QuestState.STARTED: final int amulet = st.getQuestItemsCount(ORC_AMULET); final int necklace = st.getQuestItemsCount(ORC_NECKLACE); if (amulet == 0 && necklace == 0) htmltext = "30346-04.htm"; else { htmltext = "30346-05.htm"; st.rewardItems(57, amulet * 20 + necklace * 30); st.takeItems(ORC_AMULET, -1); st.takeItems(ORC_NECKLACE, -1); } break; } return htmltext; }
@Override public String onAdvEvent(final String event, final L2Npc npc, final L2PcInstance player) { final String htmltext = event; final QuestState st = player.getQuestState(qn); if (st == null) return htmltext; if ("32053-02.htm".equalsIgnoreCase(event)) { st.set("cond", "1"); st.setState(QuestState.STARTED); st.playSound(QuestState.SOUND_ACCEPT); } else if ("32055-02.htm".equalsIgnoreCase(event)) { st.set("cond", "2"); st.playSound(QuestState.SOUND_MIDDLE); } else if ("32052-02.htm".equalsIgnoreCase(event)) { st.set("cond", "3"); st.playSound(QuestState.SOUND_MIDDLE); } else if ("32053-04.htm".equalsIgnoreCase(event)) { st.set("cond", "4"); st.playSound(QuestState.SOUND_MIDDLE); } else if ("32076-02.htm".equalsIgnoreCase(event)) { st.set("cond", "5"); st.giveItems(ENGRAVED_HAMMER, 1); st.playSound(QuestState.SOUND_MIDDLE); } else if ("32053-06.htm".equalsIgnoreCase(event) && st.getQuestItemsCount(ENGRAVED_HAMMER) == 1) { st.set("cond", "6"); st.playSound(QuestState.SOUND_MIDDLE); } else if ("32052-04.htm".equalsIgnoreCase(event) && st.getQuestItemsCount(ENGRAVED_HAMMER) == 1) { st.set("cond", "7"); st.playSound(QuestState.SOUND_MIDDLE); } else if ("32052-06.htm".equalsIgnoreCase(event) && st.getQuestItemsCount(GREY_STAR) == 1) { st.set("cond", "9"); st.takeItems(GREY_STAR, 1); st.playSound(QuestState.SOUND_MIDDLE); } else if ("32055-04.htm".equalsIgnoreCase(event) && st.getQuestItemsCount(ENGRAVED_HAMMER) == 1) { st.set("cond", "10"); st.takeItems(ENGRAVED_HAMMER, 1); st.playSound(QuestState.SOUND_MIDDLE); } else if ("32054-03.htm".equalsIgnoreCase(event)) { st.addExpAndSp(63591, 0); st.playSound(QuestState.SOUND_FINISH); st.exitQuest(false); } return htmltext; }
public void sendPendingPetitionList(L2PcInstance activeChar) { TextBuilder htmlContent = new TextBuilder( "<html><body>" + "<center><font color=\"LEVEL\">Current Petitions</font><br><table width=\"300\">"); SimpleDateFormat dateFormat = new SimpleDateFormat("dd MMM HH:mm z"); if (getPendingPetitionCount() == 0) htmlContent.append( "<tr><td colspan=\"4\">There are no currently pending petitions.</td></tr>"); else htmlContent.append( "<tr><td></td><td><font color=\"999999\">Petitioner</font></td>" + "<td><font color=\"999999\">Petition Type</font></td><td><font color=\"999999\">Submitted</font></td></tr>"); for (Petition currPetition : getPendingPetitions().values()) { if (currPetition == null) continue; htmlContent.append("<tr><td>"); if (currPetition.getState() != PetitionState.In_Process) htmlContent .append("<button value=\"View\" action=\"bypass -h admin_view_petition ") .append(currPetition.getId()) .append("\" ") .append("width=\"40\" height=\"15\" back=\"sek.cbui94\" fore=\"sek.cbui92\">"); else htmlContent.append("<font color=\"999999\">In Process</font>"); htmlContent .append("</td><td>") .append(currPetition.getPetitioner().getName()) .append("</td><td>") .append(currPetition.getTypeAsString()) .append("</td><td>") .append(dateFormat.format(new Date(currPetition.getSubmitTime()))) .append("</td></tr>"); } htmlContent.append( "</table><br><button value=\"Refresh\" action=\"bypass -h admin_view_petitions\" width=\"50\" " + "height=\"15\" back=\"sek.cbui94\" fore=\"sek.cbui92\"><br><button value=\"Back\" action=\"bypass -h admin_admin\" " + "width=\"40\" height=\"15\" back=\"sek.cbui94\" fore=\"sek.cbui92\"></center></body></html>"); NpcHtmlMessage htmlMsg = new NpcHtmlMessage(0); htmlMsg.setHtml(htmlContent.toString()); activeChar.sendPacket(htmlMsg); }