12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286 |
- /*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack 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.
- *
- * L2J DataPack 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 this program. If not, see <http://www.gnu.org/licenses/>.
- */
- package quests.Q00230_TestOfTheSummoner;
- import java.util.HashMap;
- import java.util.Map;
- import com.l2jserver.gameserver.enums.QuestSound;
- import com.l2jserver.gameserver.model.actor.L2Npc;
- import com.l2jserver.gameserver.model.actor.L2Summon;
- import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
- import com.l2jserver.gameserver.model.base.ClassId;
- import com.l2jserver.gameserver.model.holders.SkillHolder;
- import com.l2jserver.gameserver.model.quest.Quest;
- import com.l2jserver.gameserver.model.quest.QuestState;
- import com.l2jserver.gameserver.network.NpcStringId;
- import com.l2jserver.gameserver.network.clientpackets.Say2;
- import com.l2jserver.gameserver.network.serverpackets.NpcSay;
- import com.l2jserver.gameserver.network.serverpackets.SocialAction;
- import com.l2jserver.gameserver.util.Broadcast;
- import com.l2jserver.gameserver.util.Util;
- /**
- * Test Of The Summoner (230)
- * @author ivantotov
- */
- public final class Q00230_TestOfTheSummoner extends Quest
- {
- // NPCs
- private static final int GROCER_LARA = 30063;
- private static final int HIGH_SUMMONER_GALATEA = 30634;
- private static final int SUMMONER_ALMORS = 30635;
- private static final int SUMMONER_CAMONIELL = 30636;
- private static final int SUMMONER_BELTHUS = 30637;
- private static final int SUMMONER_BASILLA = 30638;
- private static final int SUMMONER_CELESTIEL = 30639;
- private static final int SUMMONER_BRYNTHEA = 30640;
- // Items
- private static final int LETOLIZARDMAN_AMULET = 3337;
- private static final int SAC_OF_REDSPORES = 3338;
- private static final int KARULBUGBEAR_TOTEM = 3339;
- private static final int SHARDS_OF_MANASHEN = 3340;
- private static final int BREKAORC_TOTEM = 3341;
- private static final int CRIMSON_BLOODSTONE = 3342;
- private static final int TALONS_OF_TYRANT = 3343;
- private static final int WINGS_OF_DRONEANT = 3344;
- private static final int TUSK_OF_WINDSUS = 3345;
- private static final int FANGS_OF_WYRM = 3346;
- private static final int LARAS_1ST_LIST = 3347;
- private static final int LARAS_2ND_LIST = 3348;
- private static final int LARAS_3RD_LIST = 3349;
- private static final int LARAS_4TH_LIST = 3350;
- private static final int LARAS_5TH_LIST = 3351;
- private static final int GALATEAS_LETTER = 3352;
- private static final int BEGINNERS_ARCANA = 3353;
- private static final int ALMORS_ARCANA = 3354;
- private static final int CAMONIELL_ARCANA = 3355;
- private static final int BELTHUS_ARCANA = 3356;
- private static final int BASILLIA_ARCANA = 3357;
- private static final int CELESTIEL_ARCANA = 3358;
- private static final int BRYNTHEA_ARCANA = 3359;
- private static final int CRYSTAL_OF_STARTING_1ST = 3360;
- private static final int CRYSTAL_OF_INPROGRESS_1ST = 3361;
- private static final int CRYSTAL_OF_FOUL_1ST = 3362;
- private static final int CRYSTAL_OF_DEFEAT_1ST = 3363;
- private static final int CRYSTAL_OF_VICTORY_1ST = 3364;
- private static final int CRYSTAL_OF_STARTING_2ND = 3365;
- private static final int CRYSTAL_OF_INPROGRESS_2ND = 3366;
- private static final int CRYSTAL_OF_FOUL_2ND = 3367;
- private static final int CRYSTAL_OF_DEFEAT_2ND = 3368;
- private static final int CRYSTAL_OF_VICTORY_2ND = 3369;
- private static final int CRYSTAL_OF_STARTING_3RD = 3370;
- private static final int CRYSTAL_OF_INPROGRESS_3RD = 3371;
- private static final int CRYSTAL_OF_FOUL_3RD = 3372;
- private static final int CRYSTAL_OF_DEFEAT_3RD = 3373;
- private static final int CRYSTAL_OF_VICTORY_3RD = 3374;
- private static final int CRYSTAL_OF_STARTING_4TH = 3375;
- private static final int CRYSTAL_OF_INPROGRESS_4TH = 3376;
- private static final int CRYSTAL_OF_FOUL_4TH = 3377;
- private static final int CRYSTAL_OF_DEFEAT_4TH = 3378;
- private static final int CRYSTAL_OF_VICTORY_4TH = 3379;
- private static final int CRYSTAL_OF_STARTING_5TH = 3380;
- private static final int CRYSTAL_OF_INPROGRESS_5TH = 3381;
- private static final int CRYSTAL_OF_FOUL_5TH = 3382;
- private static final int CRYSTAL_OF_DEFEAT_5TH = 3383;
- private static final int CRYSTAL_OF_VICTORY_5TH = 3384;
- private static final int CRYSTAL_OF_STARTING_6TH = 3385;
- private static final int CRYSTAL_OF_INPROGRESS_6TH = 3386;
- private static final int CRYSTAL_OF_FOUL_6TH = 3387;
- private static final int CRYSTAL_OF_DEFEAT_6TH = 3388;
- private static final int CRYSTAL_OF_VICTORY_6TH = 3389;
- // Reward
- private static final int MARK_OF_SUMMONER = 3336;
- private static final int DIMENSIONAL_DIAMOND = 7562;
- // Monster
- private static final int NOBLE_ANT = 20089;
- private static final int NOBLE_ANT_LEADER = 20090;
- private static final int WYRM = 20176;
- private static final int TYRANT = 20192;
- private static final int TYRANT_KINGPIN = 20193;
- private static final int BREKA_ORC = 20267;
- private static final int BREKA_ORC_ARCHER = 20268;
- private static final int BREKA_ORC_SHAMAN = 20269;
- private static final int BREKA_ORC_OVERLORD = 20270;
- private static final int BREKA_ORC_WARRIOR = 20271;
- private static final int FETTERED_SOUL = 20552;
- private static final int WINDSUS = 20553;
- private static final int GIANT_FUNGUS = 20555;
- private static final int MANASHEN_GARGOYLE = 20563;
- private static final int LETO_LIZARDMAN = 20577;
- private static final int LETO_LIZARDMAN_ARCHER = 20578;
- private static final int LETO_LIZARDMAN_SOLDIER = 20579;
- private static final int LETO_LIZARDMAN_WARRIOR = 20580;
- private static final int LETO_LIZARDMAN_SHAMAN = 20581;
- private static final int LETO_LIZARDMAN_OVERLORD = 20582;
- private static final int KARUL_BUGBEAR = 20600;
- // Quest Monster
- private static final int PAKO_THE_CAT = 27102;
- private static final int UNICORN_RACER = 27103;
- private static final int SHADOW_TUREN = 27104;
- private static final int MIMI_THE_CAT = 27105;
- private static final int UNICORN_PHANTASM = 27106;
- private static final int SILHOUETTE_TILFO = 27107;
- // Skill
- private static final SkillHolder REDUCTION_IN_RECOVERY_TIME = new SkillHolder(4126, 1);
- // Misc
- private static final int MIN_LEVEL = 39;
-
- private static final Map<Integer, MonsterData> MONSTERS = new HashMap<>();
- static
- {
- MONSTERS.put(PAKO_THE_CAT, new MonsterData(CRYSTAL_OF_INPROGRESS_1ST, CRYSTAL_OF_VICTORY_1ST, NpcStringId.IM_SORRY_LORD));
- MONSTERS.put(UNICORN_RACER, new MonsterData(CRYSTAL_OF_INPROGRESS_3RD, CRYSTAL_OF_VICTORY_3RD, NpcStringId.I_LOSE));
- MONSTERS.put(SHADOW_TUREN, new MonsterData(CRYSTAL_OF_INPROGRESS_5TH, CRYSTAL_OF_VICTORY_5TH, NpcStringId.UGH_I_LOST));
- MONSTERS.put(MIMI_THE_CAT, new MonsterData(CRYSTAL_OF_INPROGRESS_2ND, CRYSTAL_OF_VICTORY_2ND, NpcStringId.LOST_SORRY_LORD));
- MONSTERS.put(UNICORN_PHANTASM, new MonsterData(CRYSTAL_OF_INPROGRESS_4TH, CRYSTAL_OF_VICTORY_4TH, NpcStringId.I_LOSE));
- MONSTERS.put(SILHOUETTE_TILFO, new MonsterData(CRYSTAL_OF_INPROGRESS_6TH, CRYSTAL_OF_VICTORY_6TH, NpcStringId.UGH_CAN_THIS_BE_HAPPENING));
- }
-
- public Q00230_TestOfTheSummoner()
- {
- super(230, Q00230_TestOfTheSummoner.class.getSimpleName(), "Test Of The Summoner");
- addStartNpc(HIGH_SUMMONER_GALATEA);
- addTalkId(HIGH_SUMMONER_GALATEA, GROCER_LARA, SUMMONER_ALMORS, SUMMONER_CAMONIELL, SUMMONER_BELTHUS, SUMMONER_BASILLA, SUMMONER_CELESTIEL, SUMMONER_BRYNTHEA);
- addKillId(NOBLE_ANT, NOBLE_ANT_LEADER, WYRM, TYRANT, TYRANT_KINGPIN, BREKA_ORC, BREKA_ORC_ARCHER, BREKA_ORC_SHAMAN, BREKA_ORC_OVERLORD, BREKA_ORC_WARRIOR, FETTERED_SOUL, WINDSUS, GIANT_FUNGUS, MANASHEN_GARGOYLE, LETO_LIZARDMAN, LETO_LIZARDMAN_ARCHER, LETO_LIZARDMAN_SOLDIER, LETO_LIZARDMAN_WARRIOR, LETO_LIZARDMAN_SHAMAN, LETO_LIZARDMAN_OVERLORD, KARUL_BUGBEAR);
- addKillId(MONSTERS.keySet());
- addAttackId(PAKO_THE_CAT, UNICORN_RACER, SHADOW_TUREN, MIMI_THE_CAT, UNICORN_PHANTASM, SILHOUETTE_TILFO);
- registerQuestItems(LETOLIZARDMAN_AMULET, SAC_OF_REDSPORES, KARULBUGBEAR_TOTEM, SHARDS_OF_MANASHEN, BREKAORC_TOTEM, CRIMSON_BLOODSTONE, TALONS_OF_TYRANT, WINGS_OF_DRONEANT, TUSK_OF_WINDSUS, FANGS_OF_WYRM, LARAS_1ST_LIST, LARAS_2ND_LIST, LARAS_3RD_LIST, LARAS_4TH_LIST, LARAS_5TH_LIST, GALATEAS_LETTER, BEGINNERS_ARCANA, ALMORS_ARCANA, CAMONIELL_ARCANA, BELTHUS_ARCANA, BASILLIA_ARCANA, CELESTIEL_ARCANA, BRYNTHEA_ARCANA, CRYSTAL_OF_STARTING_1ST, CRYSTAL_OF_INPROGRESS_1ST, CRYSTAL_OF_FOUL_1ST, CRYSTAL_OF_DEFEAT_1ST, CRYSTAL_OF_VICTORY_1ST, CRYSTAL_OF_STARTING_2ND, CRYSTAL_OF_INPROGRESS_2ND, CRYSTAL_OF_FOUL_2ND, CRYSTAL_OF_DEFEAT_2ND, CRYSTAL_OF_VICTORY_2ND, CRYSTAL_OF_STARTING_3RD, CRYSTAL_OF_INPROGRESS_3RD, CRYSTAL_OF_FOUL_3RD, CRYSTAL_OF_DEFEAT_3RD, CRYSTAL_OF_VICTORY_3RD, CRYSTAL_OF_STARTING_4TH, CRYSTAL_OF_INPROGRESS_4TH, CRYSTAL_OF_FOUL_4TH, CRYSTAL_OF_DEFEAT_4TH, CRYSTAL_OF_VICTORY_4TH, CRYSTAL_OF_STARTING_5TH, CRYSTAL_OF_INPROGRESS_5TH, CRYSTAL_OF_FOUL_5TH, CRYSTAL_OF_DEFEAT_5TH, CRYSTAL_OF_VICTORY_5TH, CRYSTAL_OF_STARTING_6TH, CRYSTAL_OF_INPROGRESS_6TH, CRYSTAL_OF_FOUL_6TH, CRYSTAL_OF_DEFEAT_6TH, CRYSTAL_OF_VICTORY_6TH);
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- switch (event)
- {
- case "DESPAWN":
- {
- npc.deleteMe();
- break;
- }
- case "KILLED_ATTACKER":
- {
- final L2Summon summon = npc.getVariables().getObject("ATTACKER", L2Summon.class);
- if ((summon != null) && summon.isDead())
- {
- npc.deleteMe();
- }
- else
- {
- startQuestTimer("KILLED_ATTACKER", 5000, npc, null);
- }
- break;
- }
- }
-
- // For NPC-only timers, player is null and no further checks or actions are required.
- if (player == null)
- {
- return null;
- }
-
- final QuestState qs = getQuestState(player, false);
- if (qs == null)
- {
- return null;
- }
-
- String htmltext = null;
- switch (event)
- {
- case "ACCEPT":
- {
- if (qs.isCreated())
- {
- qs.startQuest();
- playSound(player, QuestSound.ITEMSOUND_QUEST_MIDDLE);
- giveItems(player, GALATEAS_LETTER, 1);
- if (player.getVariables().getInt("2ND_CLASS_DIAMOND_REWARD", 0) == 0)
- {
- giveItems(player, DIMENSIONAL_DIAMOND, 122);
- player.getVariables().set("2ND_CLASS_DIAMOND_REWARD", 1);
- htmltext = "30634-08a.htm";
- }
- else
- {
- htmltext = "30634-08.htm";
- }
- }
- break;
- }
- case "30634-04.htm":
- case "30634-05.htm":
- case "30634-06.htm":
- case "30634-07.htm":
- case "30634-11.html":
- case "30634-11a.html":
- case "30634-11b.html":
- case "30634-11c.html":
- case "30634-11d.html":
- {
- htmltext = event;
- break;
- }
- case "30063-02.html":
- {
- switch (getRandom(5))
- {
- case 0:
- {
- giveItems(player, LARAS_1ST_LIST, 1);
- break;
- }
- case 1:
- {
- giveItems(player, LARAS_2ND_LIST, 1);
- break;
- }
- case 2:
- {
- giveItems(player, LARAS_3RD_LIST, 1);
- break;
- }
- case 3:
- {
- giveItems(player, LARAS_4TH_LIST, 1);
- break;
- }
- case 4:
- {
- giveItems(player, LARAS_5TH_LIST, 1);
- break;
- }
- }
- qs.setCond(2, true);
- takeItems(player, GALATEAS_LETTER, 1);
- htmltext = event;
- break;
- }
- case "30063-04.html":
- {
- switch (getRandom(5))
- {
- case 0:
- {
- giveItems(player, LARAS_1ST_LIST, 1);
- break;
- }
- case 1:
- {
- giveItems(player, LARAS_2ND_LIST, 1);
- break;
- }
- case 2:
- {
- giveItems(player, LARAS_3RD_LIST, 1);
- break;
- }
- case 3:
- {
- giveItems(player, LARAS_4TH_LIST, 1);
- break;
- }
- case 4:
- {
- giveItems(player, LARAS_5TH_LIST, 1);
- break;
- }
- }
- htmltext = event;
- break;
- }
- case "30635-03.html":
- {
- if (hasQuestItems(player, BEGINNERS_ARCANA))
- {
- htmltext = event;
- }
- else
- {
- htmltext = "30635-02.html";
- }
- break;
- }
- case "30635-04.html":
- {
- addSkillCastDesire(npc, player, REDUCTION_IN_RECOVERY_TIME, 1000000);
- takeItems(player, BEGINNERS_ARCANA, 1);
- giveItems(player, CRYSTAL_OF_STARTING_1ST, 1);
- takeItems(player, CRYSTAL_OF_FOUL_1ST, 1);
- takeItems(player, CRYSTAL_OF_DEFEAT_1ST, 1);
- htmltext = event;
- break;
- }
- case "30636-03.html":
- {
- if (hasQuestItems(player, BEGINNERS_ARCANA))
- {
- htmltext = event;
- }
- else
- {
- htmltext = "30636-02.html";
- }
- break;
- }
- case "30636-04.html":
- {
- addSkillCastDesire(npc, player, REDUCTION_IN_RECOVERY_TIME, 1000000);
- takeItems(player, BEGINNERS_ARCANA, 1);
- giveItems(player, CRYSTAL_OF_STARTING_3RD, 1);
- takeItems(player, CRYSTAL_OF_FOUL_3RD, 1);
- takeItems(player, CRYSTAL_OF_DEFEAT_3RD, 1);
- htmltext = event;
- break;
- }
- case "30637-03.html":
- {
- if (hasQuestItems(player, BEGINNERS_ARCANA))
- {
- htmltext = event;
- }
- else
- {
- htmltext = "30637-02.html";
- }
- break;
- }
- case "30637-04.html":
- {
- addSkillCastDesire(npc, player, REDUCTION_IN_RECOVERY_TIME, 1000000);
- takeItems(player, BEGINNERS_ARCANA, 1);
- giveItems(player, CRYSTAL_OF_STARTING_5TH, 1);
- takeItems(player, CRYSTAL_OF_FOUL_5TH, 1);
- takeItems(player, CRYSTAL_OF_DEFEAT_5TH, 1);
- htmltext = event;
- break;
- }
- case "30638-03.html":
- {
- if (hasQuestItems(player, BEGINNERS_ARCANA))
- {
- htmltext = event;
- }
- else
- {
- htmltext = "30638-02.html";
- }
- break;
- }
- case "30638-04.html":
- {
- addSkillCastDesire(npc, player, REDUCTION_IN_RECOVERY_TIME, 1000000);
- takeItems(player, BEGINNERS_ARCANA, 1);
- giveItems(player, CRYSTAL_OF_STARTING_2ND, 1);
- takeItems(player, CRYSTAL_OF_FOUL_2ND, 1);
- takeItems(player, CRYSTAL_OF_DEFEAT_2ND, 1);
- htmltext = event;
- break;
- }
- case "30639-03.html":
- {
- if (hasQuestItems(player, BEGINNERS_ARCANA))
- {
- htmltext = event;
- }
- else
- {
- htmltext = "30639-02.html";
- }
- break;
- }
- case "30639-04.html":
- {
- addSkillCastDesire(npc, player, REDUCTION_IN_RECOVERY_TIME, 1000000);
- takeItems(player, BEGINNERS_ARCANA, 1);
- giveItems(player, CRYSTAL_OF_STARTING_4TH, 1);
- takeItems(player, CRYSTAL_OF_FOUL_4TH, 1);
- takeItems(player, CRYSTAL_OF_DEFEAT_4TH, 1);
- htmltext = event;
- break;
- }
- case "30640-03.html":
- {
- if (hasQuestItems(player, BEGINNERS_ARCANA))
- {
- htmltext = event;
- }
- else
- {
- htmltext = "30640-02.html";
- }
- break;
- }
- case "30640-04.html":
- {
- addSkillCastDesire(npc, player, REDUCTION_IN_RECOVERY_TIME, 1000000);
- takeItems(player, BEGINNERS_ARCANA, 1);
- giveItems(player, CRYSTAL_OF_STARTING_6TH, 1);
- takeItems(player, CRYSTAL_OF_FOUL_6TH, 1);
- takeItems(player, CRYSTAL_OF_DEFEAT_6TH, 1);
- htmltext = event;
- break;
- }
- }
- return htmltext;
- }
-
- @Override
- public String onAttack(L2Npc npc, L2PcInstance attacker, int damage, boolean isSummon)
- {
- switch (npc.getId())
- {
- case PAKO_THE_CAT:
- {
- switch (npc.getScriptValue())
- {
- case 0:
- {
- if (isSummon)
- {
- npc.getVariables().set("ATTACKER", attacker.getSummon());
- npc.setScriptValue(1);
- startQuestTimer("DESPAWN", 120000, npc, null);
- startQuestTimer("KILLED_ATTACKER", 5000, npc, null);
-
- final QuestState qs = getQuestState(attacker, false);
- if (hasQuestItems(attacker, CRYSTAL_OF_STARTING_1ST) && (qs != null) && qs.isStarted())
- {
- Broadcast.toKnownPlayers(npc, new NpcSay(npc.getObjectId(), Say2.NPC_ALL, npc.getTemplate().getDisplayId(), NpcStringId.WHHIISSHH));
- takeItems(attacker, CRYSTAL_OF_STARTING_1ST, -1);
- giveItems(attacker, CRYSTAL_OF_INPROGRESS_1ST, 1);
- addAttackPlayerDesire(npc, attacker.getSummon(), 100000);
- }
- }
- break;
- }
- case 1:
- {
- if (!isSummon || (npc.getVariables().getObject("ATTACKER", L2Summon.class) != attacker.getSummon()))
- {
- final QuestState qs = getQuestState(attacker, false);
- if (!hasQuestItems(attacker, CRYSTAL_OF_STARTING_1ST) && hasQuestItems(attacker, CRYSTAL_OF_INPROGRESS_1ST) && (qs != null) && qs.isStarted())
- {
- npc.setScriptValue(2);
- Broadcast.toKnownPlayers(npc, new NpcSay(npc.getObjectId(), Say2.NPC_ALL, npc.getTemplate().getDisplayId(), NpcStringId.RULE_VIOLATION));
- takeItems(attacker, CRYSTAL_OF_INPROGRESS_1ST, -1);
- giveItems(attacker, CRYSTAL_OF_FOUL_1ST, 1);
- takeItems(attacker, CRYSTAL_OF_STARTING_1ST, -1);
- }
- npc.deleteMe();
- }
- break;
- }
- }
- break;
- }
- case UNICORN_RACER:
- {
- switch (npc.getScriptValue())
- {
- case 0:
- {
- if (isSummon)
- {
- npc.getVariables().set("ATTACKER", attacker.getSummon());
- npc.setScriptValue(1);
- startQuestTimer("DESPAWN", 120000, npc, null);
- startQuestTimer("KILLED_ATTACKER", 5000, npc, null);
-
- final QuestState qs = getQuestState(attacker, false);
- if (hasQuestItems(attacker, CRYSTAL_OF_STARTING_3RD) && (qs != null) && qs.isStarted())
- {
- Broadcast.toKnownPlayers(npc, new NpcSay(npc.getObjectId(), Say2.NPC_ALL, npc.getTemplate().getDisplayId(), NpcStringId.START_DUEL));
- takeItems(attacker, CRYSTAL_OF_STARTING_3RD, -1);
- giveItems(attacker, CRYSTAL_OF_INPROGRESS_3RD, 1);
- addAttackPlayerDesire(npc, attacker.getSummon(), 100000);
- }
- }
- break;
- }
- case 1:
- {
- if (!isSummon || (npc.getVariables().getObject("ATTACKER", L2Summon.class) != attacker.getSummon()))
- {
- final QuestState qs = getQuestState(attacker, false);
- if (!hasQuestItems(attacker, CRYSTAL_OF_STARTING_3RD) && hasQuestItems(attacker, CRYSTAL_OF_INPROGRESS_3RD) && (qs != null) && qs.isStarted())
- {
- npc.setScriptValue(2);
- Broadcast.toKnownPlayers(npc, new NpcSay(npc.getObjectId(), Say2.NPC_ALL, npc.getTemplate().getDisplayId(), NpcStringId.RULE_VIOLATION));
- takeItems(attacker, CRYSTAL_OF_INPROGRESS_3RD, -1);
- giveItems(attacker, CRYSTAL_OF_FOUL_3RD, 1);
- takeItems(attacker, CRYSTAL_OF_STARTING_3RD, -1);
- }
- npc.deleteMe();
- }
- break;
- }
- }
- }
- case SHADOW_TUREN:
- {
- switch (npc.getScriptValue())
- {
- case 0:
- {
- if (isSummon)
- {
- npc.getVariables().set("ATTACKER", attacker.getSummon());
- npc.setScriptValue(1);
- startQuestTimer("DESPAWN", 120000, npc, null);
- startQuestTimer("KILLED_ATTACKER", 5000, npc, null);
-
- final QuestState qs = getQuestState(attacker, false);
- if (hasQuestItems(attacker, CRYSTAL_OF_STARTING_5TH) && (qs != null) && qs.isStarted())
- {
- Broadcast.toKnownPlayers(npc, new NpcSay(npc.getObjectId(), Say2.NPC_ALL, npc.getTemplate().getDisplayId(), NpcStringId.SO_SHALL_WE_START));
- takeItems(attacker, CRYSTAL_OF_STARTING_5TH, -1);
- giveItems(attacker, CRYSTAL_OF_INPROGRESS_5TH, 1);
- addAttackPlayerDesire(npc, attacker.getSummon(), 100000);
- }
- }
- break;
- }
- case 1:
- {
- if (!isSummon || (npc.getVariables().getObject("ATTACKER", L2Summon.class) != attacker.getSummon()))
- {
- final QuestState qs = getQuestState(attacker, false);
- if (!hasQuestItems(attacker, CRYSTAL_OF_STARTING_5TH) && hasQuestItems(attacker, CRYSTAL_OF_INPROGRESS_5TH) && (qs != null) && qs.isStarted())
- {
- npc.setScriptValue(2);
- Broadcast.toKnownPlayers(npc, new NpcSay(npc.getObjectId(), Say2.NPC_ALL, npc.getTemplate().getDisplayId(), NpcStringId.RULE_VIOLATION));
- takeItems(attacker, CRYSTAL_OF_INPROGRESS_5TH, -1);
- giveItems(attacker, CRYSTAL_OF_FOUL_5TH, 1);
- takeItems(attacker, CRYSTAL_OF_STARTING_5TH, -1);
- }
- npc.deleteMe();
- }
- break;
- }
- }
- }
- case MIMI_THE_CAT:
- {
- switch (npc.getScriptValue())
- {
- case 0:
- {
- if (isSummon)
- {
- npc.getVariables().set("ATTACKER", attacker.getSummon());
- npc.setScriptValue(1);
- startQuestTimer("DESPAWN", 120000, npc, null);
- startQuestTimer("KILLED_ATTACKER", 5000, npc, null);
-
- final QuestState qs = getQuestState(attacker, false);
- if (hasQuestItems(attacker, CRYSTAL_OF_STARTING_2ND) && (qs != null) && qs.isStarted())
- {
- Broadcast.toKnownPlayers(npc, new NpcSay(npc.getObjectId(), Say2.NPC_ALL, npc.getTemplate().getDisplayId(), NpcStringId.WHISH_FIGHT));
- takeItems(attacker, CRYSTAL_OF_STARTING_2ND, -1);
- giveItems(attacker, CRYSTAL_OF_INPROGRESS_2ND, 1);
- addAttackPlayerDesire(npc, attacker.getSummon(), 100000);
- }
- }
- break;
- }
- case 1:
- {
- if (!isSummon || (npc.getVariables().getObject("ATTACKER", L2Summon.class) != attacker.getSummon()))
- {
- final QuestState qs = getQuestState(attacker, false);
- if (!hasQuestItems(attacker, CRYSTAL_OF_STARTING_2ND) && hasQuestItems(attacker, CRYSTAL_OF_INPROGRESS_2ND) && (qs != null) && qs.isStarted())
- {
- npc.setScriptValue(2);
- Broadcast.toKnownPlayers(npc, new NpcSay(npc.getObjectId(), Say2.NPC_ALL, npc.getTemplate().getDisplayId(), NpcStringId.RULE_VIOLATION));
- takeItems(attacker, CRYSTAL_OF_INPROGRESS_2ND, -1);
- giveItems(attacker, CRYSTAL_OF_FOUL_2ND, 1);
- takeItems(attacker, CRYSTAL_OF_STARTING_2ND, -1);
- }
- npc.deleteMe();
- }
- break;
- }
- }
- }
- case UNICORN_PHANTASM:
- {
- switch (npc.getScriptValue())
- {
- case 0:
- {
- if (isSummon)
- {
- npc.getVariables().set("ATTACKER", attacker.getSummon());
- npc.setScriptValue(1);
- startQuestTimer("DESPAWN", 120000, npc, null);
- startQuestTimer("KILLED_ATTACKER", 5000, npc, null);
-
- final QuestState qs = getQuestState(attacker, false);
- if (hasQuestItems(attacker, CRYSTAL_OF_STARTING_4TH) && (qs != null) && qs.isStarted())
- {
- Broadcast.toKnownPlayers(npc, new NpcSay(npc.getObjectId(), Say2.NPC_ALL, npc.getTemplate().getDisplayId(), NpcStringId.START_DUEL));
- takeItems(attacker, CRYSTAL_OF_STARTING_4TH, -1);
- giveItems(attacker, CRYSTAL_OF_INPROGRESS_4TH, 1);
- addAttackPlayerDesire(npc, attacker.getSummon(), 100000);
- }
- }
- break;
- }
- case 1:
- {
- if (!isSummon || (npc.getVariables().getObject("ATTACKER", L2Summon.class) != attacker.getSummon()))
- {
- final QuestState qs = getQuestState(attacker, false);
- if (!hasQuestItems(attacker, CRYSTAL_OF_STARTING_4TH) && hasQuestItems(attacker, CRYSTAL_OF_INPROGRESS_4TH) && (qs != null) && qs.isStarted())
- {
- npc.setScriptValue(2);
- Broadcast.toKnownPlayers(npc, new NpcSay(npc.getObjectId(), Say2.NPC_ALL, npc.getTemplate().getDisplayId(), NpcStringId.RULE_VIOLATION));
- takeItems(attacker, CRYSTAL_OF_INPROGRESS_4TH, -1);
- giveItems(attacker, CRYSTAL_OF_FOUL_4TH, 1);
- takeItems(attacker, CRYSTAL_OF_STARTING_4TH, -1);
- }
- npc.deleteMe();
- }
- break;
- }
- }
- }
- case SILHOUETTE_TILFO:
- {
- switch (npc.getScriptValue())
- {
- case 0:
- {
- if (isSummon)
- {
- npc.getVariables().set("ATTACKER", attacker.getSummon());
- npc.setScriptValue(1);
- startQuestTimer("DESPAWN", 120000, npc, null);
- startQuestTimer("KILLED_ATTACKER", 5000, npc, null);
-
- final QuestState qs = getQuestState(attacker, false);
- if (hasQuestItems(attacker, CRYSTAL_OF_STARTING_6TH) && (qs != null) && qs.isStarted())
- {
- Broadcast.toKnownPlayers(npc, new NpcSay(npc.getObjectId(), Say2.NPC_ALL, npc.getTemplate().getDisplayId(), NpcStringId.ILL_WALK_ALL_OVER_YOU));
- takeItems(attacker, CRYSTAL_OF_STARTING_6TH, -1);
- giveItems(attacker, CRYSTAL_OF_INPROGRESS_6TH, 1);
- addAttackPlayerDesire(npc, attacker.getSummon(), 100000);
- }
- }
- break;
- }
- case 1:
- {
- if (!isSummon || (npc.getVariables().getObject("ATTACKER", L2Summon.class) != attacker.getSummon()))
- {
- final QuestState qs = getQuestState(attacker, false);
- if (!hasQuestItems(attacker, CRYSTAL_OF_STARTING_6TH) && hasQuestItems(attacker, CRYSTAL_OF_INPROGRESS_6TH) && (qs != null) && qs.isStarted())
- {
- npc.setScriptValue(2);
- Broadcast.toKnownPlayers(npc, new NpcSay(npc.getObjectId(), Say2.NPC_ALL, npc.getTemplate().getDisplayId(), NpcStringId.RULE_VIOLATION));
- takeItems(attacker, CRYSTAL_OF_INPROGRESS_6TH, -1);
- giveItems(attacker, CRYSTAL_OF_FOUL_6TH, 1);
- takeItems(attacker, CRYSTAL_OF_STARTING_6TH, -1);
- }
- npc.deleteMe();
- }
- break;
- }
- }
- }
- }
- return super.onAttack(npc, attacker, damage, isSummon);
- }
-
- @Override
- public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
- {
- final QuestState qs = getQuestState(killer, false);
- if ((qs != null) && qs.isStarted() && Util.checkIfInRange(1500, npc, killer, true))
- {
- switch (npc.getId())
- {
- case NOBLE_ANT:
- case NOBLE_ANT_LEADER:
- {
- if (!hasQuestItems(killer, GALATEAS_LETTER) && hasQuestItems(killer, LARAS_5TH_LIST))
- {
- giveItemRandomly(killer, npc, WINGS_OF_DRONEANT, 2, 30, 1.0, true);
- }
- break;
- }
- case WYRM:
- {
- if (!hasQuestItems(killer, GALATEAS_LETTER) && hasQuestItems(killer, LARAS_5TH_LIST))
- {
- giveItemRandomly(killer, npc, FANGS_OF_WYRM, 3, 30, 1.0, true);
- }
- break;
- }
- case TYRANT:
- case TYRANT_KINGPIN:
- {
- if (!hasQuestItems(killer, GALATEAS_LETTER) && hasQuestItems(killer, LARAS_4TH_LIST))
- {
- giveItemRandomly(killer, npc, TALONS_OF_TYRANT, 3, 30, 1.0, true);
- }
- break;
- }
- case BREKA_ORC:
- case BREKA_ORC_ARCHER:
- case BREKA_ORC_WARRIOR:
- {
- if (!hasQuestItems(killer, GALATEAS_LETTER) && hasQuestItems(killer, LARAS_3RD_LIST))
- {
- giveItemRandomly(killer, npc, BREKAORC_TOTEM, 1, 30, 1.0, true);
- }
- break;
- }
- case BREKA_ORC_SHAMAN:
- case BREKA_ORC_OVERLORD:
- {
- if (!hasQuestItems(killer, GALATEAS_LETTER) && hasQuestItems(killer, LARAS_3RD_LIST))
- {
- giveItemRandomly(killer, npc, BREKAORC_TOTEM, 2, 30, 1.0, true);
- }
- break;
- }
- case FETTERED_SOUL:
- {
- if (!hasQuestItems(killer, GALATEAS_LETTER) && hasQuestItems(killer, LARAS_3RD_LIST))
- {
- giveItemRandomly(killer, npc, CRIMSON_BLOODSTONE, 6, 30, 1.0, true);
- }
- break;
- }
- case WINDSUS:
- {
- if (!hasQuestItems(killer, GALATEAS_LETTER) && hasQuestItems(killer, LARAS_4TH_LIST))
- {
- giveItemRandomly(killer, npc, TUSK_OF_WINDSUS, 3, 30, 1.0, true);
- }
- break;
- }
- case GIANT_FUNGUS:
- {
- if (!hasQuestItems(killer, GALATEAS_LETTER) && hasQuestItems(killer, LARAS_1ST_LIST))
- {
- giveItemRandomly(killer, npc, SAC_OF_REDSPORES, 2, 30, 1.0, true);
- }
- break;
- }
- case MANASHEN_GARGOYLE:
- {
- if (!hasQuestItems(killer, GALATEAS_LETTER) && hasQuestItems(killer, LARAS_2ND_LIST))
- {
- giveItemRandomly(killer, npc, SHARDS_OF_MANASHEN, 2, 30, 1.0, true);
- }
- break;
- }
- case LETO_LIZARDMAN:
- case LETO_LIZARDMAN_ARCHER:
- case LETO_LIZARDMAN_SOLDIER:
- case LETO_LIZARDMAN_WARRIOR:
- {
- if (!hasQuestItems(killer, GALATEAS_LETTER) && hasQuestItems(killer, LARAS_1ST_LIST))
- {
- giveItemRandomly(killer, npc, LETOLIZARDMAN_AMULET, 1, 30, 1.0, true);
- }
- break;
- }
- case LETO_LIZARDMAN_SHAMAN:
- case LETO_LIZARDMAN_OVERLORD:
- {
- if (!hasQuestItems(killer, GALATEAS_LETTER) && hasQuestItems(killer, LARAS_1ST_LIST))
- {
- giveItemRandomly(killer, npc, LETOLIZARDMAN_AMULET, 2, 30, 1.0, true);
- }
- break;
- }
- case KARUL_BUGBEAR:
- {
- if (!hasQuestItems(killer, GALATEAS_LETTER) && hasQuestItems(killer, LARAS_2ND_LIST))
- {
- giveItemRandomly(killer, npc, KARULBUGBEAR_TOTEM, 2, 30, 1.0, true);
- }
- break;
- }
- case SILHOUETTE_TILFO:
- case UNICORN_PHANTASM:
- case MIMI_THE_CAT:
- case SHADOW_TUREN:
- case UNICORN_RACER:
- case PAKO_THE_CAT:
- {
- final MonsterData data = MONSTERS.get(npc.getId());
- if (hasQuestItems(killer, data.getCrystalOfInprogress()))
- {
- npc.broadcastPacket(new NpcSay(npc, Say2.NPC_ALL, data.getNpcStringId()));
- takeItems(killer, data.getCrystalOfInprogress(), 1);
- giveItems(killer, data.getCrystalOfVictory(), 1);
- playSound(killer, QuestSound.ITEMSOUND_QUEST_MIDDLE);
- }
- break;
- }
- }
- }
- return super.onKill(npc, killer, isSummon);
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- final QuestState qs = getQuestState(player, true);
- String htmltext = getNoQuestMsg(player);
- if (qs.isCreated())
- {
- if (npc.getId() == HIGH_SUMMONER_GALATEA)
- {
- if ((player.getClassId() == ClassId.wizard) || (player.getClassId() == ClassId.elvenWizard) || (player.getClassId() == ClassId.darkWizard))
- {
- if (player.getLevel() >= MIN_LEVEL)
- {
- htmltext = "30634-03.htm";
- }
- else
- {
- htmltext = "30634-02.html";
- }
- }
- else
- {
- htmltext = "30634-01.html";
- }
- }
- }
- else if (qs.isStarted())
- {
- switch (npc.getId())
- {
- case HIGH_SUMMONER_GALATEA:
- {
- if (hasQuestItems(player, GALATEAS_LETTER))
- {
- htmltext = "30634-09.html";
- }
- else if (!hasQuestItems(player, GALATEAS_LETTER))
- {
- if (!hasQuestItems(player, ALMORS_ARCANA, BASILLIA_ARCANA, CAMONIELL_ARCANA, CELESTIEL_ARCANA, BELTHUS_ARCANA, BRYNTHEA_ARCANA) && !hasQuestItems(player, BEGINNERS_ARCANA))
- {
- htmltext = "30634-10.html";
- }
- else if (!hasQuestItems(player, ALMORS_ARCANA, BASILLIA_ARCANA, CAMONIELL_ARCANA, CELESTIEL_ARCANA, BELTHUS_ARCANA, BRYNTHEA_ARCANA) && hasQuestItems(player, BEGINNERS_ARCANA))
- {
- htmltext = "30634-11.html";
- }
- else if (hasQuestItems(player, ALMORS_ARCANA, BASILLIA_ARCANA, CAMONIELL_ARCANA, CELESTIEL_ARCANA, BELTHUS_ARCANA, BRYNTHEA_ARCANA))
- {
- giveAdena(player, 300960, true);
- giveItems(player, MARK_OF_SUMMONER, 1);
- addExpAndSp(player, 1664494, 114220);
- qs.exitQuest(false, true);
- player.sendPacket(new SocialAction(player.getObjectId(), 3));
- htmltext = "30634-12.html";
- }
- }
- break;
- }
- case GROCER_LARA:
- {
- if (hasQuestItems(player, GALATEAS_LETTER))
- {
- htmltext = "30063-01.html";
- }
- else if (!hasQuestItems(player, GALATEAS_LETTER))
- {
- if (!hasAtLeastOneQuestItem(player, LARAS_1ST_LIST, LARAS_2ND_LIST, LARAS_3RD_LIST, LARAS_4TH_LIST, LARAS_5TH_LIST))
- {
- htmltext = "30063-03.html";
- }
- else if (hasQuestItems(player, LARAS_1ST_LIST))
- {
- if ((getQuestItemsCount(player, LETOLIZARDMAN_AMULET) >= 30) && (getQuestItemsCount(player, SAC_OF_REDSPORES) >= 30))
- {
- takeItems(player, LETOLIZARDMAN_AMULET, -1);
- takeItems(player, SAC_OF_REDSPORES, -1);
- takeItems(player, LARAS_1ST_LIST, 1);
- giveItems(player, BEGINNERS_ARCANA, 2);
- qs.setCond(3, true);
- htmltext = "30063-06.html";
- }
- else
- {
- htmltext = "30063-05.html";
- }
- }
- else if (hasQuestItems(player, LARAS_2ND_LIST))
- {
- if ((getQuestItemsCount(player, KARULBUGBEAR_TOTEM) >= 30) && (getQuestItemsCount(player, SHARDS_OF_MANASHEN) >= 30))
- {
- takeItems(player, KARULBUGBEAR_TOTEM, -1);
- takeItems(player, SHARDS_OF_MANASHEN, -1);
- takeItems(player, LARAS_2ND_LIST, 1);
- giveItems(player, BEGINNERS_ARCANA, 2);
- qs.setCond(3, true);
- htmltext = "30063-08.html";
- }
- else
- {
- htmltext = "30063-07.html";
- }
- }
- else if (hasQuestItems(player, LARAS_3RD_LIST))
- {
- if ((getQuestItemsCount(player, BREKAORC_TOTEM) >= 30) && (getQuestItemsCount(player, CRIMSON_BLOODSTONE) >= 30))
- {
- takeItems(player, BREKAORC_TOTEM, -1);
- takeItems(player, CRIMSON_BLOODSTONE, -1);
- takeItems(player, LARAS_3RD_LIST, 1);
- giveItems(player, BEGINNERS_ARCANA, 2);
- qs.setCond(3, true);
- htmltext = "30063-10.html";
- }
- else
- {
- htmltext = "30063-09.html";
- }
- }
- else if (hasQuestItems(player, LARAS_4TH_LIST))
- {
- if ((getQuestItemsCount(player, TALONS_OF_TYRANT) >= 30) && (getQuestItemsCount(player, TUSK_OF_WINDSUS) >= 30))
- {
- takeItems(player, TALONS_OF_TYRANT, -1);
- takeItems(player, TUSK_OF_WINDSUS, -1);
- takeItems(player, LARAS_4TH_LIST, 1);
- giveItems(player, BEGINNERS_ARCANA, 2);
- qs.setCond(3, true);
- htmltext = "30063-12.html";
- }
- else
- {
- htmltext = "30063-11.html";
- }
- }
- else if (hasQuestItems(player, LARAS_5TH_LIST))
- {
- if ((getQuestItemsCount(player, WINGS_OF_DRONEANT) >= 30) && (getQuestItemsCount(player, FANGS_OF_WYRM) >= 30))
- {
- takeItems(player, WINGS_OF_DRONEANT, -1);
- takeItems(player, FANGS_OF_WYRM, -1);
- takeItems(player, LARAS_5TH_LIST, 1);
- giveItems(player, BEGINNERS_ARCANA, 2);
- qs.setCond(3, true);
- htmltext = "30063-14.html";
- }
- else
- {
- htmltext = "30063-13.html";
- }
- }
- }
- break;
- }
- case SUMMONER_ALMORS:
- {
- if (!hasQuestItems(player, ALMORS_ARCANA))
- {
- if (!hasAtLeastOneQuestItem(player, CRYSTAL_OF_STARTING_1ST, CRYSTAL_OF_INPROGRESS_1ST, CRYSTAL_OF_FOUL_1ST, CRYSTAL_OF_DEFEAT_1ST, CRYSTAL_OF_VICTORY_1ST))
- {
- htmltext = "30635-01.html";
- }
- else if (!hasAtLeastOneQuestItem(player, CRYSTAL_OF_STARTING_1ST, CRYSTAL_OF_INPROGRESS_1ST, CRYSTAL_OF_FOUL_1ST, CRYSTAL_OF_VICTORY_1ST) && hasQuestItems(player, CRYSTAL_OF_DEFEAT_1ST))
- {
- htmltext = "30635-05.html";
- }
- else if (!hasAtLeastOneQuestItem(player, CRYSTAL_OF_STARTING_1ST, CRYSTAL_OF_INPROGRESS_1ST, CRYSTAL_OF_DEFEAT_1ST, CRYSTAL_OF_VICTORY_1ST) && hasQuestItems(player, CRYSTAL_OF_FOUL_1ST))
- {
- htmltext = "30635-06.html";
- }
- else if (!hasAtLeastOneQuestItem(player, CRYSTAL_OF_STARTING_1ST, CRYSTAL_OF_INPROGRESS_1ST, CRYSTAL_OF_FOUL_1ST, CRYSTAL_OF_DEFEAT_1ST) && hasQuestItems(player, CRYSTAL_OF_VICTORY_1ST))
- {
- giveItems(player, ALMORS_ARCANA, 1);
- takeItems(player, CRYSTAL_OF_VICTORY_1ST, 1);
- if (hasQuestItems(player, BASILLIA_ARCANA, CAMONIELL_ARCANA, CELESTIEL_ARCANA, BELTHUS_ARCANA, BRYNTHEA_ARCANA))
- {
- qs.setCond(4, true);
- }
- htmltext = "30635-07.html";
- }
- else if (!hasAtLeastOneQuestItem(player, CRYSTAL_OF_INPROGRESS_1ST, CRYSTAL_OF_FOUL_1ST, CRYSTAL_OF_DEFEAT_1ST, CRYSTAL_OF_VICTORY_1ST) && hasQuestItems(player, CRYSTAL_OF_STARTING_1ST))
- {
- htmltext = "30635-08.html";
- }
- else if (!hasAtLeastOneQuestItem(player, CRYSTAL_OF_STARTING_1ST, CRYSTAL_OF_FOUL_1ST, CRYSTAL_OF_DEFEAT_1ST, CRYSTAL_OF_VICTORY_1ST) && hasQuestItems(player, CRYSTAL_OF_INPROGRESS_1ST))
- {
- htmltext = "30635-09.html";
- }
- }
- else
- {
- htmltext = "30635-10.html";
- }
- break;
- }
- case SUMMONER_CAMONIELL:
- {
- if (!hasQuestItems(player, CAMONIELL_ARCANA))
- {
- if (!hasAtLeastOneQuestItem(player, CRYSTAL_OF_STARTING_3RD, CRYSTAL_OF_INPROGRESS_3RD, CRYSTAL_OF_FOUL_3RD, CRYSTAL_OF_DEFEAT_3RD, CRYSTAL_OF_VICTORY_3RD))
- {
- htmltext = "30636-01.html";
- }
- else if (!hasAtLeastOneQuestItem(player, CRYSTAL_OF_STARTING_3RD, CRYSTAL_OF_INPROGRESS_3RD, CRYSTAL_OF_FOUL_3RD, CRYSTAL_OF_VICTORY_3RD) && hasQuestItems(player, CRYSTAL_OF_DEFEAT_3RD))
- {
- htmltext = "30636-05.html";
- }
- else if (!hasAtLeastOneQuestItem(player, CRYSTAL_OF_STARTING_3RD, CRYSTAL_OF_INPROGRESS_3RD, CRYSTAL_OF_DEFEAT_3RD, CRYSTAL_OF_VICTORY_3RD) && hasQuestItems(player, CRYSTAL_OF_FOUL_3RD))
- {
- htmltext = "30636-06.html";
- }
- else if (!hasAtLeastOneQuestItem(player, CRYSTAL_OF_STARTING_3RD, CRYSTAL_OF_INPROGRESS_3RD, CRYSTAL_OF_FOUL_3RD, CRYSTAL_OF_DEFEAT_3RD) && hasQuestItems(player, CRYSTAL_OF_VICTORY_3RD))
- {
- giveItems(player, CAMONIELL_ARCANA, 1);
- takeItems(player, CRYSTAL_OF_VICTORY_3RD, 1);
- if (hasQuestItems(player, ALMORS_ARCANA, BASILLIA_ARCANA, CELESTIEL_ARCANA, BELTHUS_ARCANA, BRYNTHEA_ARCANA))
- {
- qs.setCond(4, true);
- }
- htmltext = "30636-07.html";
- }
- else if (!hasAtLeastOneQuestItem(player, CRYSTAL_OF_INPROGRESS_3RD, CRYSTAL_OF_FOUL_3RD, CRYSTAL_OF_DEFEAT_3RD, CRYSTAL_OF_VICTORY_3RD) && hasQuestItems(player, CRYSTAL_OF_STARTING_3RD))
- {
- htmltext = "30636-08.html";
- }
- else if (!hasAtLeastOneQuestItem(player, CRYSTAL_OF_STARTING_3RD, CRYSTAL_OF_FOUL_3RD, CRYSTAL_OF_DEFEAT_3RD, CRYSTAL_OF_VICTORY_3RD) && hasQuestItems(player, CRYSTAL_OF_INPROGRESS_3RD))
- {
- htmltext = "30636-09.html";
- }
- }
- else
- {
- htmltext = "30636-10.html";
- }
- break;
- }
- case SUMMONER_BELTHUS:
- {
- if (!hasQuestItems(player, BELTHUS_ARCANA))
- {
- if (!hasAtLeastOneQuestItem(player, CRYSTAL_OF_STARTING_5TH, CRYSTAL_OF_INPROGRESS_5TH, CRYSTAL_OF_FOUL_5TH, CRYSTAL_OF_DEFEAT_5TH, CRYSTAL_OF_VICTORY_5TH))
- {
- htmltext = "30637-01.html";
- }
- else if (!hasAtLeastOneQuestItem(player, CRYSTAL_OF_STARTING_5TH, CRYSTAL_OF_INPROGRESS_5TH, CRYSTAL_OF_FOUL_5TH, CRYSTAL_OF_VICTORY_5TH) && hasQuestItems(player, CRYSTAL_OF_DEFEAT_5TH))
- {
- htmltext = "30637-05.html";
- }
- else if (!hasAtLeastOneQuestItem(player, CRYSTAL_OF_STARTING_5TH, CRYSTAL_OF_INPROGRESS_5TH, CRYSTAL_OF_DEFEAT_5TH, CRYSTAL_OF_VICTORY_5TH) && hasQuestItems(player, CRYSTAL_OF_FOUL_5TH))
- {
- htmltext = "30637-06.html";
- }
- else if (!hasAtLeastOneQuestItem(player, CRYSTAL_OF_STARTING_5TH, CRYSTAL_OF_INPROGRESS_5TH, CRYSTAL_OF_FOUL_5TH, CRYSTAL_OF_DEFEAT_5TH) && hasQuestItems(player, CRYSTAL_OF_VICTORY_5TH))
- {
- giveItems(player, BELTHUS_ARCANA, 1);
- takeItems(player, CRYSTAL_OF_VICTORY_5TH, 1);
- if (hasQuestItems(player, ALMORS_ARCANA, BASILLIA_ARCANA, CAMONIELL_ARCANA, CELESTIEL_ARCANA, BRYNTHEA_ARCANA))
- {
- qs.setCond(4, true);
- }
- htmltext = "30637-07.html";
- }
- else if (!hasAtLeastOneQuestItem(player, CRYSTAL_OF_INPROGRESS_5TH, CRYSTAL_OF_FOUL_5TH, CRYSTAL_OF_DEFEAT_5TH, CRYSTAL_OF_VICTORY_5TH) && hasQuestItems(player, CRYSTAL_OF_STARTING_5TH))
- {
- htmltext = "30637-08.html";
- }
- else if (!hasAtLeastOneQuestItem(player, CRYSTAL_OF_STARTING_5TH, CRYSTAL_OF_FOUL_5TH, CRYSTAL_OF_DEFEAT_5TH, CRYSTAL_OF_VICTORY_5TH) && hasQuestItems(player, CRYSTAL_OF_INPROGRESS_5TH))
- {
- htmltext = "30637-09.html";
- }
- }
- else
- {
- htmltext = "30637-10.html";
- }
- break;
- }
- case SUMMONER_BASILLA:
- {
- if (!hasQuestItems(player, BASILLIA_ARCANA))
- {
- if (!hasAtLeastOneQuestItem(player, CRYSTAL_OF_STARTING_2ND, CRYSTAL_OF_INPROGRESS_2ND, CRYSTAL_OF_FOUL_2ND, CRYSTAL_OF_DEFEAT_2ND, CRYSTAL_OF_VICTORY_2ND))
- {
- htmltext = "30638-01.html";
- }
- else if (!hasAtLeastOneQuestItem(player, CRYSTAL_OF_STARTING_2ND, CRYSTAL_OF_INPROGRESS_2ND, CRYSTAL_OF_FOUL_2ND, CRYSTAL_OF_VICTORY_2ND) && hasQuestItems(player, CRYSTAL_OF_DEFEAT_2ND))
- {
- htmltext = "30638-05.html";
- }
- else if (!hasAtLeastOneQuestItem(player, CRYSTAL_OF_STARTING_2ND, CRYSTAL_OF_INPROGRESS_2ND, CRYSTAL_OF_DEFEAT_2ND, CRYSTAL_OF_VICTORY_2ND) && hasQuestItems(player, CRYSTAL_OF_FOUL_2ND))
- {
- htmltext = "30638-06.html";
- }
- else if (!hasAtLeastOneQuestItem(player, CRYSTAL_OF_STARTING_2ND, CRYSTAL_OF_INPROGRESS_2ND, CRYSTAL_OF_FOUL_2ND, CRYSTAL_OF_DEFEAT_2ND) && hasQuestItems(player, CRYSTAL_OF_VICTORY_2ND))
- {
- giveItems(player, BASILLIA_ARCANA, 1);
- takeItems(player, CRYSTAL_OF_VICTORY_2ND, 1);
- if (hasQuestItems(player, ALMORS_ARCANA, CAMONIELL_ARCANA, CELESTIEL_ARCANA, BELTHUS_ARCANA, BRYNTHEA_ARCANA))
- {
- qs.setCond(4, true);
- }
- htmltext = "30638-07.html";
- }
- else if (!hasAtLeastOneQuestItem(player, CRYSTAL_OF_INPROGRESS_2ND, CRYSTAL_OF_FOUL_2ND, CRYSTAL_OF_DEFEAT_2ND, CRYSTAL_OF_VICTORY_2ND) && hasQuestItems(player, CRYSTAL_OF_STARTING_2ND))
- {
- htmltext = "30638-08.html";
- }
- else if (!hasAtLeastOneQuestItem(player, CRYSTAL_OF_STARTING_2ND, CRYSTAL_OF_FOUL_2ND, CRYSTAL_OF_DEFEAT_2ND, CRYSTAL_OF_VICTORY_2ND) && hasQuestItems(player, CRYSTAL_OF_INPROGRESS_2ND))
- {
- htmltext = "30638-09.html";
- }
- }
- else
- {
- htmltext = "30638-10.html";
- }
- break;
- }
- case SUMMONER_CELESTIEL:
- {
- if (!hasQuestItems(player, CELESTIEL_ARCANA))
- {
- if (!hasAtLeastOneQuestItem(player, CRYSTAL_OF_STARTING_4TH, CRYSTAL_OF_INPROGRESS_4TH, CRYSTAL_OF_FOUL_4TH, CRYSTAL_OF_DEFEAT_4TH, CRYSTAL_OF_VICTORY_4TH))
- {
- htmltext = "30639-01.html";
- }
- else if (!hasAtLeastOneQuestItem(player, CRYSTAL_OF_STARTING_4TH, CRYSTAL_OF_INPROGRESS_4TH, CRYSTAL_OF_FOUL_4TH, CRYSTAL_OF_VICTORY_4TH) && hasQuestItems(player, CRYSTAL_OF_DEFEAT_4TH))
- {
- htmltext = "30639-05.html";
- }
- else if (!hasAtLeastOneQuestItem(player, CRYSTAL_OF_STARTING_4TH, CRYSTAL_OF_INPROGRESS_4TH, CRYSTAL_OF_DEFEAT_4TH, CRYSTAL_OF_VICTORY_4TH) && hasQuestItems(player, CRYSTAL_OF_FOUL_4TH))
- {
- htmltext = "30639-06.html";
- }
- else if (!hasAtLeastOneQuestItem(player, CRYSTAL_OF_STARTING_4TH, CRYSTAL_OF_INPROGRESS_4TH, CRYSTAL_OF_FOUL_4TH, CRYSTAL_OF_DEFEAT_4TH) && hasQuestItems(player, CRYSTAL_OF_VICTORY_4TH))
- {
- giveItems(player, CELESTIEL_ARCANA, 1);
- takeItems(player, CRYSTAL_OF_VICTORY_4TH, 1);
- if (hasQuestItems(player, ALMORS_ARCANA, BASILLIA_ARCANA, CAMONIELL_ARCANA, BELTHUS_ARCANA, BRYNTHEA_ARCANA))
- {
- qs.setCond(4, true);
- }
- htmltext = "30639-07.html";
- }
- else if (!hasAtLeastOneQuestItem(player, CRYSTAL_OF_INPROGRESS_4TH, CRYSTAL_OF_FOUL_4TH, CRYSTAL_OF_DEFEAT_4TH, CRYSTAL_OF_VICTORY_4TH) && hasQuestItems(player, CRYSTAL_OF_STARTING_4TH))
- {
- htmltext = "30639-08.html";
- }
- else if (!hasAtLeastOneQuestItem(player, CRYSTAL_OF_STARTING_4TH, CRYSTAL_OF_FOUL_4TH, CRYSTAL_OF_DEFEAT_4TH, CRYSTAL_OF_VICTORY_4TH) && hasQuestItems(player, CRYSTAL_OF_INPROGRESS_4TH))
- {
- htmltext = "30639-09.html";
- }
- }
- else
- {
- htmltext = "30639-10.html";
- }
- break;
- }
- case SUMMONER_BRYNTHEA:
- {
- if (!hasQuestItems(player, BRYNTHEA_ARCANA))
- {
- if (!hasAtLeastOneQuestItem(player, CRYSTAL_OF_STARTING_6TH, CRYSTAL_OF_INPROGRESS_6TH, CRYSTAL_OF_FOUL_6TH, CRYSTAL_OF_DEFEAT_6TH, CRYSTAL_OF_VICTORY_6TH))
- {
- htmltext = "30640-01.html";
- }
- else if (!hasAtLeastOneQuestItem(player, CRYSTAL_OF_STARTING_6TH, CRYSTAL_OF_INPROGRESS_6TH, CRYSTAL_OF_FOUL_6TH, CRYSTAL_OF_VICTORY_6TH) && hasQuestItems(player, CRYSTAL_OF_DEFEAT_6TH))
- {
- htmltext = "30640-05.html";
- }
- else if (!hasAtLeastOneQuestItem(player, CRYSTAL_OF_STARTING_6TH, CRYSTAL_OF_INPROGRESS_6TH, CRYSTAL_OF_DEFEAT_6TH, CRYSTAL_OF_VICTORY_6TH) && hasQuestItems(player, CRYSTAL_OF_FOUL_6TH))
- {
- htmltext = "30640-06.html";
- }
- else if (!hasAtLeastOneQuestItem(player, CRYSTAL_OF_STARTING_6TH, CRYSTAL_OF_INPROGRESS_6TH, CRYSTAL_OF_FOUL_6TH, CRYSTAL_OF_DEFEAT_6TH) && hasQuestItems(player, CRYSTAL_OF_VICTORY_6TH))
- {
- giveItems(player, BRYNTHEA_ARCANA, 1);
- takeItems(player, CRYSTAL_OF_VICTORY_6TH, 1);
- if (hasQuestItems(player, ALMORS_ARCANA, BASILLIA_ARCANA, CAMONIELL_ARCANA, CELESTIEL_ARCANA, BELTHUS_ARCANA))
- {
- qs.setCond(4, true);
- }
- htmltext = "30640-07.html";
- }
- else if (!hasAtLeastOneQuestItem(player, CRYSTAL_OF_INPROGRESS_6TH, CRYSTAL_OF_FOUL_6TH, CRYSTAL_OF_DEFEAT_6TH, CRYSTAL_OF_VICTORY_6TH) && hasQuestItems(player, CRYSTAL_OF_STARTING_6TH))
- {
- htmltext = "30640-08.html";
- }
- else if (!hasAtLeastOneQuestItem(player, CRYSTAL_OF_STARTING_6TH, CRYSTAL_OF_FOUL_6TH, CRYSTAL_OF_DEFEAT_6TH, CRYSTAL_OF_VICTORY_6TH) && hasQuestItems(player, CRYSTAL_OF_INPROGRESS_6TH))
- {
- htmltext = "30640-09.html";
- }
- }
- else
- {
- htmltext = "30640-10.html";
- }
- break;
- }
- }
- }
- else if (qs.isCompleted())
- {
- if (npc.getId() == HIGH_SUMMONER_GALATEA)
- {
- htmltext = getAlreadyCompletedMsg(player);
- }
- }
- return htmltext;
- }
-
- private static class MonsterData
- {
- private final int _crystalOfInprogress;
- private final int _crystalOfVictory;
- private final NpcStringId _npcStringId;
-
- protected MonsterData(int crystalOfInprogress, int crystalOfVictory, NpcStringId npcStringId)
- {
- _crystalOfInprogress = crystalOfInprogress;
- _crystalOfVictory = crystalOfVictory;
- _npcStringId = npcStringId;
- }
-
- protected int getCrystalOfInprogress()
- {
- return _crystalOfInprogress;
- }
-
- protected int getCrystalOfVictory()
- {
- return _crystalOfVictory;
- }
-
- protected NpcStringId getNpcStringId()
- {
- return _npcStringId;
- }
- }
- }
|