private static final void tryRentPet(L2PcInstance player, int val) { if ((player == null) || player.hasSummon() || player.isMounted() || player.isRentedPet() || player.isTransformed() || player.isCursedWeaponEquipped()) { return; } if (!player.disarmWeapons()) { return; } int petId; double price = 1; final int cost[] = {1800, 7200, 720000, 6480000}; final int ridetime[] = {30, 60, 600, 1800}; if (val > 10) { petId = 12526; val -= 10; price /= 2; } else { petId = 12621; } if ((val < 1) || (val > 4)) { return; } price *= cost[val - 1]; final int time = ridetime[val - 1]; if (!player.reduceAdena("Rent", (long) price, player.getLastFolkNPC(), true)) { return; } player.mount(petId, 0, false); final SetupGauge sg = new SetupGauge(3, time * 1000); player.sendPacket(sg); player.startRentPet(time); }
@Override public String onTalk(L2Npc npc, L2PcInstance talker) { final QuestState qs = getQuestState(talker, true); String htmltext = getNoQuestMsg(talker); switch (npc.getId()) { case CRONOS: { switch (qs.getState()) { case State.CREATED: { final long fluteCount = getQuestItemsCount( talker, DRAGONFLUTE_OF_WIND, DRAGONFLUTE_OF_STAR, DRAGONFLUTE_OF_TWILIGHT); if (fluteCount == 0) { break; // this quest does not show up if no flute in inventory } if (talker.getLevel() < MIN_PLAYER_LVL) { htmltext = "30610-01.htm"; } else if (fluteCount > 1) { htmltext = "30610-02.htm"; } else if (getFlute(talker).getEnchantLevel() < MIN_HACHLING_LVL) { htmltext = "30610-03.html"; } else { htmltext = "30610-04.htm"; } break; } case State.STARTED: { htmltext = "30610-07.html"; break; } case State.COMPLETED: { htmltext = getAlreadyCompletedMsg(talker); break; } } break; } case MIMYU: { switch (qs.getMemoState()) { case 100: { qs.setMemoState(200); htmltext = "30747-01.html"; break; } case 200: { final L2Summon summon = talker.getPet(); if (summon == null) { htmltext = "30747-02.html"; } else if (summon.getControlObjectId() != qs.getInt("fluteObjectId")) { htmltext = "30747-03.html"; } else { htmltext = "30747-04.html"; } break; } case 0: { htmltext = "30747-07.html"; break; } case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: case 10: case 11: case 12: case 13: case 14: { if (hasQuestItems(talker, FAIRY_LEAF)) { htmltext = "30747-11.html"; } break; } case 15: { if (!hasQuestItems(talker, FAIRY_LEAF)) { final L2Summon summon = talker.getPet(); if (summon == null) { htmltext = "30747-12.html"; } else if (summon.getControlObjectId() == qs.getInt("fluteObjectId")) { qs.setMemoState(16); htmltext = "30747-13.html"; } else { htmltext = "30747-14.html"; } } break; } case 16: { if (!hasQuestItems(talker, FAIRY_LEAF)) { if (talker.hasSummon()) { htmltext = "30747-15.html"; } else { final long fluteCount = getQuestItemsCount( talker, DRAGONFLUTE_OF_WIND, DRAGONFLUTE_OF_STAR, DRAGONFLUTE_OF_TWILIGHT); if (fluteCount > 1) { htmltext = "30747-17.html"; } else if (fluteCount == 1) { final L2ItemInstance flute = getFlute(talker); if (flute.getObjectId() == qs.getInt("fluteObjectId")) { // TODO what if the hatchling has items in his inventory? // Should they be transfered to the strider or given to the player? switch (flute.getId()) { case DRAGONFLUTE_OF_WIND: takeItems(talker, DRAGONFLUTE_OF_WIND, -1); giveItems(talker, DRAGON_BUGLE_OF_WIND, 1); break; case DRAGONFLUTE_OF_STAR: takeItems(talker, DRAGONFLUTE_OF_STAR, -1); giveItems(talker, DRAGON_BUGLE_OF_STAR, 1); break; case DRAGONFLUTE_OF_TWILIGHT: takeItems(talker, DRAGONFLUTE_OF_TWILIGHT, -1); giveItems(talker, DRAGON_BUGLE_OF_TWILIGHT, 1); break; } qs.exitQuest(true, true); htmltext = "30747-16.html"; } else { npc.setTarget(talker); npc.doCast(CURSE_OF_MIMYU.getSkill()); htmltext = "30747-18.html"; } } } } break; } } break; } } return htmltext; }