Addition of Altar of Shilen.
Contributed by gigilo1968.
This commit is contained in:
@@ -1,4 +1,7 @@
|
||||
<html><head><body>Agent Georgio:<br>
|
||||
Sh... I'm currently on duty. If you don't have anything to say, please go away.<br>
|
||||
<html><body>Agent Georgio:<br>
|
||||
Hush! I'm on a mission.<br>
|
||||
The Kingdom's Royal Guards are investigating a report that a ritual is being held on the Altar of Shilen, which has been closed since Melisa and Isadora disappeared. I'd like to ask you to leave us, if you don't mind.<br>
|
||||
Or, if you want to go to the Altar of Shilen to stop the ritual, I can send you there. Just tell me.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest AltarOfShilen enterInstance">To the Altar of Shilen</Button>
|
||||
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
|
||||
</body></html>
|
281
L2J_Mobius_1.0_Ertheia/dist/game/data/instances/AltarOfShilen.xml
vendored
Normal file
281
L2J_Mobius_1.0_Ertheia/dist/game/data/instances/AltarOfShilen.xml
vendored
Normal file
@@ -0,0 +1,281 @@
|
||||
<instance id="194" maxWorlds="20" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/instance.xsd">
|
||||
<time duration="60" empty="1" />
|
||||
<locations>
|
||||
<enter type="RANDOM">
|
||||
<location x="179400" y="13683" z="-7396"/><!-- First Room -->
|
||||
</enter>
|
||||
<exit type="ORIGIN" />
|
||||
</locations>
|
||||
<parameters>
|
||||
<param name="boss1" value="25857" />
|
||||
<param name="boss2" value="25858" />
|
||||
</parameters>
|
||||
<conditions>
|
||||
<condition type="Party" showMessageAndHtml="true">
|
||||
<param name="html" value="condNoGroup.html" />
|
||||
</condition>
|
||||
<condition type="PartyLeader">
|
||||
<param name="html" value="condNoPartyLeader.html" />
|
||||
</condition>
|
||||
<condition type="GroupMin">
|
||||
<param name="html" value="condSmallGroup.html" />
|
||||
<param name="limit" value="5" />
|
||||
</condition>
|
||||
<condition type="GroupMax">
|
||||
<param name="limit" value="7" />
|
||||
</condition>
|
||||
<condition type="Level" showMessageAndHtml="true">
|
||||
<param name="html" value="condNoLevel.html" />
|
||||
<param name="min" value="101" />
|
||||
</condition>
|
||||
<condition type="Level" showMessageAndHtml="true">
|
||||
<param name="html" value="condNoLevel.html" />
|
||||
<param name="max" value="105" />
|
||||
</condition>
|
||||
<condition type="Distance" />
|
||||
<condition type="Reenter" />
|
||||
</conditions>
|
||||
<reenter apply="ON_FINISH">
|
||||
<reset day="MONDAY" hour="6" minute="30" />
|
||||
<reset day="TUESDAY" hour="6" minute="30" />
|
||||
<reset day="WEDNESDAY" hour="6" minute="30" />
|
||||
<reset day="THURSDAY" hour="6" minute="30" />
|
||||
<reset day="FRIDAY" hour="6" minute="30" />
|
||||
<reset day="SATURDAY" hour="6" minute="30" />
|
||||
<reset day="SUNDAY" hour="6" minute="30" />
|
||||
</reenter>
|
||||
<doorlist>
|
||||
<door id="25180001">
|
||||
<openStatus default="close" />
|
||||
</door>
|
||||
<door id="25180002">
|
||||
<openStatus default="close" />
|
||||
</door>
|
||||
<door id="25180003">
|
||||
<openStatus default="close" />
|
||||
</door>
|
||||
<door id="25180004">
|
||||
<openStatus default="close" />
|
||||
</door>
|
||||
<door id="25180005">
|
||||
<openStatus default="close" />
|
||||
</door>
|
||||
<door id="25180006">
|
||||
<openStatus default="close" />
|
||||
</door>
|
||||
<door id="25180007">
|
||||
<openStatus default="close" />
|
||||
</door>
|
||||
</doorlist>
|
||||
<spawnlist>
|
||||
<group name="general" spawnByDefault="false">
|
||||
<npc id="25856" x="177833" y="14852" z="-13688" heading="0"/> <!-- Isadora -->
|
||||
<npc id="25855" x="178432" y="14848" z="-13688" heading="0"/> <!-- Maliss -->
|
||||
<npc id="34331" x="179521" y="13610" z="-7392" heading="33344"/> <!-- Logart Van Dyke -->
|
||||
<npc id="34331" x="179543" y="13552" z="-9824" heading="32460"/> <!-- Logart Van Dyke -->
|
||||
<npc id="34331" x="179519" y="12797" z="-12768" heading="32712"/> <!-- Logart Van Dyke -->
|
||||
<npc id="34332" x="178149" y="16676" z="-13648" heading="16600"/> <!-- Dinford -->
|
||||
<npc id="19121" x="178150" y="13600" z="-8016" heading="13828"/> <!-- Altar of Sacrifice -->
|
||||
<npc id="19122" x="178150" y="13600" z="-10448" heading="16772"/> <!-- Altar of Sacrifice -->
|
||||
<npc id="19123" x="178150" y="12840" z="-13392" heading="44317"/> <!-- Altar of Sacrifice -->
|
||||
<npc id="19142" x="177584" y="14400" z="-8088" heading="0"/> <!-- Sacrificial Offering -->
|
||||
<npc id="19143" x="177864" y="14534" z="-8088" heading="0"/> <!-- Sacrificial Offering -->
|
||||
<npc id="19144" x="178149" y="14401" z="-8088" heading="0"/> <!-- Sacrificial Offering -->
|
||||
<npc id="19145" x="178439" y="14528" z="-8088" heading="0"/> <!-- Sacrificial Offering -->
|
||||
<npc id="19146" x="178713" y="14417" z="-8088" heading="0"/> <!-- Sacrificial Offering -->
|
||||
<npc id="19147" x="177589" y="14407" z="-10520" heading="0"/> <!-- Sacrificial Offering -->
|
||||
<npc id="19148" x="177863" y="14541" z="-10520" heading="0"/> <!-- Sacrificial Offering -->
|
||||
<npc id="19149" x="178153" y="14415" z="-10520" heading="0"/> <!-- Sacrificial Offering -->
|
||||
<npc id="19150" x="178442" y="14528" z="-10520" heading="0"/> <!-- Sacrificial Offering -->
|
||||
<npc id="19151" x="178712" y="14408" z="-10520" heading="0"/> <!-- Sacrificial Offering -->
|
||||
</group>
|
||||
<group name="first_floor" spawnByDefault="false">
|
||||
<!-- 1st floor 1st room -->
|
||||
<npc id="23142" x="181315" y="14009" z="-7616" heading="23913" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="182829" y="14851" z="-7616" heading="23465" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="181806" y="14543" z="-7608" heading="39123" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="181944" y="15457" z="-7616" heading="54183" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="180840" y="14674" z="-7616" heading="55476" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="181424" y="13863" z="-7616" heading="21874" /> <!-- Embryo Guard -->
|
||||
<npc id="23141" x="181541" y="14179" z="-7616" heading="23691" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="181614" y="14795" z="-7608" heading="37559" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="182055" y="15303" z="-7616" heading="55513" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="182229" y="15643" z="-7616" heading="55481" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="182417" y="14797" z="-7616" heading="21914" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="182521" y="14650" z="-7616" heading="24720" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="181076" y="14829" z="-7616" heading="55433" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="181181" y="14683" z="-7616" heading="55609" /> <!-- Embryo Fighter -->
|
||||
<npc id="23140" x="181649" y="14031" z="-7616" heading="22548" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="180953" y="14515" z="-7616" heading="55493" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="182713" y="15019" z="-7616" heading="22606" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="181871" y="14999" z="-7608" heading="39090" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="182342" y="15487" z="-7616" heading="55459" /> <!-- Embryo Watchman -->
|
||||
<npc id="23139" x="182070" y="14727" z="-7608" heading="39831" /> <!-- Embryo Researcher -->
|
||||
<npc id="23131" x="181834" y="14767" z="-7608" heading="37586" /> <!-- Embryo Executor Captain -->
|
||||
<!-- 1st floor 2st room -->
|
||||
<npc id="23142" x="182413" y="17524" z="-7864" heading="55494" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="181674" y="18255" z="-7872" heading="6330" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="183339" y="17361" z="-7872" heading="8091" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="182531" y="16784" z="-7872" heading="8091" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="182558" y="18468" z="-7872" heading="39871" /> <!-- Embryo Guard -->
|
||||
<npc id="23141" x="182495" y="17988" z="-7864" heading="56703" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="183142" y="17635" z="-7872" heading="39519" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="182485" y="17168" z="-7872" heading="7171" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="182226" y="18648" z="-7872" heading="38766" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="181910" y="17967" z="-7872" heading="5242" /> <!-- Embryo Fighter -->
|
||||
<npc id="23140" x="182688" y="16898" z="-7872" heading="7195" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="183187" y="17254" z="-7872" heading="38269" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="182224" y="17786" z="-7864" heading="55748" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="181548" y="18164" z="-7872" heading="7239" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="182357" y="18743" z="-7872" heading="38963" /> <!-- Embryo Watchman -->
|
||||
<npc id="23139" x="182421" y="18369" z="-7872" heading="39556" /> <!-- Embryo Researcher -->
|
||||
<npc id="23139" x="181772" y="17873" z="-7872" heading="7271" /> <!-- Embryo Researcher -->
|
||||
<npc id="23139" x="182338" y="17063" z="-7872" heading="6940" /> <!-- Embryo Researcher -->
|
||||
<npc id="23139" x="182991" y="17529" z="-7872" heading="39974" /> <!-- Embryo Researcher -->
|
||||
<npc id="23139" x="182687" y="17717" z="-7864" heading="55632" /> <!-- Embryo Researcher -->
|
||||
<npc id="23131" x="182453" y="17756" z="-7864" heading="55808" /> <!-- Embryo Executor Captain -->
|
||||
<!-- 1st floor 3st room -->
|
||||
<npc id="23142" x="179668" y="18331" z="-8128" heading="6204" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="178844" y="18342" z="-8136" heading="56681" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="179236" y="17838" z="-8136" heading="20051" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="179645" y="18913" z="-8136" heading="56524" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="180290" y="18601" z="-8136" heading="23360" /> <!-- Embryo Guard -->
|
||||
<npc id="23141" x="180009" y="18407" z="-8136" heading="23354" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="179922" y="19106" z="-8136" heading="55523" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="179405" y="18141" z="-8128" heading="6007" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="178487" y="18304" z="-8136" heading="56001" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="179061" y="17503" z="-8136" heading="21608" /> <!-- Embryo Fighter -->
|
||||
<npc id="23140" x="178743" y="18481" z="-8136" heading="54910" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="178956" y="17649" z="-8136" heading="23285" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="179473" y="18605" z="-8128" heading="7076" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="179818" y="19256" z="-8136" heading="56591" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="180394" y="18452" z="-8136" heading="24120" /> <!-- Embryo Watchman -->
|
||||
<npc id="23139" x="179539" y="19062" z="-8136" heading="55014" /> <!-- Embryo Researcher -->
|
||||
<npc id="23139" x="179205" y="18414" z="-8128" heading="6803" /> <!-- Embryo Researcher -->
|
||||
<npc id="23139" x="180118" y="18255" z="-8136" heading="23660" /> <!-- Embryo Researcher -->
|
||||
<npc id="23139" x="178594" y="18156" z="-8136" heading="56048" /> <!-- Embryo Researcher -->
|
||||
<npc id="23139" x="179337" y="17699" z="-8136" heading="22822" /> <!-- Embryo Researcher -->
|
||||
<npc id="23131" x="179442" y="18374" z="-8128" heading="4506" /> <!-- Embryo Executor Captain -->
|
||||
<!-- 1st floor 4st room -->
|
||||
<npc id="23141" x="177740" y="15229" z="-8312" heading="65530" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="178548" y="15228" z="-8312" heading="32481" /> <!-- Embryo Fighter -->
|
||||
<npc id="23142" x="178574" y="15774" z="-8312" heading="32849" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="177427" y="15227" z="-8312" heading="2497" /> <!-- Embryo Guard -->
|
||||
<npc id="23140" x="177708" y="15783" z="-8312" heading="1499" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="178827" y="15787" z="-8312" heading="13834" /> <!-- Embryo Watchman -->
|
||||
<npc id="23139" x="178846" y="15216" z="-8312" heading="32391" /> <!-- Embryo Researcher -->
|
||||
<npc id="23139" x="177445" y="15787" z="-8312" heading="669" /> <!-- Embryo Researcher -->
|
||||
<!-- 1st floor boss -->
|
||||
<npc id="25857" x="178146" y="15000" z="-8312" heading="18233" /> <!-- Corrupted Captain -->
|
||||
</group>
|
||||
<group name="second_floor" spawnByDefault="false">
|
||||
<!-- 2st floor 1st room -->
|
||||
<npc id="23129" x="181632" y="14245" z="-10048" heading="24446" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="181669" y="14792" z="-10040" heading="39262" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="182053" y="15304" z="-10048" heading="55811" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="182857" y="14866" z="-10048" heading="22442" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="181156" y="14912" z="-10048" heading="55993" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23127" x="181272" y="14754" z="-10048" heading="55845" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="182351" y="15523" z="-10048" heading="55330" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="181355" y="14048" z="-10048" heading="22899" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="182534" y="14638" z="-10048" heading="23741" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="181998" y="14734" z="-10040" heading="39347" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23128" x="181805" y="14600" z="-10040" heading="37848" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="181860" y="14928" z="-10040" heading="39680" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="182414" y="14801" z="-10048" heading="26424" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="182238" y="15682" z="-10048" heading="55327" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="180995" y="14557" z="-10048" heading="55965" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="181746" y="14095" z="-10048" heading="21944" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23126" x="181444" y="13882" z="-10048" heading="23910" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23126" x="180906" y="14732" z="-10048" heading="56442" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23126" x="182712" y="15019" z="-10048" heading="23218" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23126" x="181936" y="15470" z="-10048" heading="55180" /> <!-- Embryo Elite Escort -->
|
||||
<!-- 2st floor 2st room -->
|
||||
<npc id="23129" x="182665" y="16916" z="-10304" heading="5486" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="182205" y="18632" z="-10304" heading="38327" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="182417" y="18332" z="-10304" heading="38704" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="181702" y="18273" z="-10304" heading="6517" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="182501" y="16797" z="-10304" heading="6671" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="182991" y="17528" z="-10304" heading="39098" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="183160" y="17474" z="-10304" heading="39074" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23127" x="181917" y="17975" z="-10304" heading="6011" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="182578" y="18447" z="-10304" heading="40250" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="182384" y="18553" z="-10304" heading="40030" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="182517" y="16983" z="-10304" heading="6049" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="183176" y="17270" z="-10304" heading="41931" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23128" x="183153" y="17644" z="-10304" heading="40362" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="182327" y="17051" z="-10304" heading="6919" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="182360" y="18743" z="-10304" heading="38293" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="181540" y="18157" z="-10304" heading="6379" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23126" x="181755" y="17860" z="-10304" heading="4711" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23126" x="181747" y="18063" z="-10304" heading="6737" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23126" x="182486" y="17168" z="-10304" heading="5041" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23126" x="183333" y="17391" z="-10304" heading="38209" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23138" x="182409" y="18255" z="-10304" heading="30021"> <!-- Etina Bladesmen -->
|
||||
<parameters>
|
||||
<param name="SuperPointName" value="etina_bladesmen_1" />
|
||||
</parameters>
|
||||
</npc>
|
||||
<npc id="23138" x="182000" y="17922" z="-10304" heading="22511"> <!-- Etina Bladesmen -->
|
||||
<parameters>
|
||||
<param name="SuperPointName" value="etina_bladesmen_2" />
|
||||
</parameters>
|
||||
</npc>
|
||||
<!-- 2st floor 3st room -->
|
||||
<npc id="23130" x="179540" y="19060" z="-10568" heading="53859" /> <!-- Embryo Elite High Priest -->
|
||||
<npc id="23130" x="178546" y="18123" z="-10568" heading="55565" /> <!-- Embryo Elite High Priest -->
|
||||
<npc id="23130" x="178906" y="17620" z="-10568" heading="23026" /> <!-- Embryo Elite High Priest -->
|
||||
<npc id="23129" x="178437" y="18275" z="-10568" heading="54969" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="179025" y="17458" z="-10568" heading="22279" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="179274" y="18400" z="-10560" heading="7344" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="180125" y="18247" z="-10568" heading="23203" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23128" x="179414" y="18206" z="-10560" heading="5824" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="180010" y="18405" z="-10568" heading="22892" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="178761" y="18499" z="-10568" heading="54666" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="179857" y="19296" z="-10568" heading="54800" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23127" x="179601" y="18340" z="-10560" heading="6348" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="179345" y="17689" z="-10568" heading="22336" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="179646" y="18908" z="-10568" heading="53631" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="180335" y="18581" z="-10568" heading="22933" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23126" x="179974" y="19139" z="-10568" heading="57307" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23126" x="180427" y="18455" z="-10568" heading="25307" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23126" x="179466" y="18541" z="-10560" heading="6681" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23126" x="179229" y="17845" z="-10568" heading="22563" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23131" x="178871" y="18353" z="-10568" heading="57361" /> <!-- Embryo Executor Captain -->
|
||||
<npc id="23138" x="179050" y="18309" z="-10568" heading="38891" /> <!-- Etina Bladesmen -->
|
||||
<!-- 2st floor 4st room -->
|
||||
<npc id="23130" x="178536" y="15981" z="-10744" heading="31126" /> <!-- Embryo Elite High Priest -->
|
||||
<npc id="23126" x="178549" y="15688" z="-10744" heading="33033" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23130" x="178522" y="15390" z="-10744" heading="33219" /> <!-- Embryo Elite High Priest -->
|
||||
<npc id="23128" x="178993" y="15706" z="-10744" heading="32714" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="178735" y="15533" z="-10744" heading="33312" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23127" x="178728" y="15847" z="-10744" heading="33290" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="178978" y="15981" z="-10744" heading="32904" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23129" x="178998" y="15408" z="-10744" heading="33170" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23128" x="177722" y="15379" z="-10744" heading="217" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23127" x="177732" y="15672" z="-10744" heading="64457" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23130" x="177738" y="15981" z="-10744" heading="65477" /> <!-- Embryo Elite High Priest -->
|
||||
<npc id="23130" x="177499" y="15494" z="-10744" heading="64083" /> <!-- Embryo Elite High Priest -->
|
||||
<npc id="23129" x="177498" y="15843" z="-10744" heading="65509" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23128" x="177269" y="15981" z="-10744" heading="789" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23126" x="177261" y="15656" z="-10744" heading="64191" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23129" x="177267" y="15372" z="-10744" heading="1549" /> <!-- Embryo Elite Alchemist -->
|
||||
<!-- 2st floor boss -->
|
||||
<npc id="25858" x="178154" y="15149" z="-10744" heading="15626" /> <!-- Corrupted High Priest -->
|
||||
</group>
|
||||
<group name="thrid_floor" spawnByDefault="false">
|
||||
<npc id="8561" x="181547" y="14035" z="-12992" heading="0" /> <!-- invisible1 -->
|
||||
<npc id="8561" x="182615" y="14779" z="-12992" heading="0" /> <!-- invisible1 -->
|
||||
<npc id="8561" x="182122" y="15470" z="-12992" heading="0" /> <!-- invisible1 -->
|
||||
<npc id="8561" x="181071" y="14765" z="-12992" heading="0" /> <!-- invisible1 -->
|
||||
<npc id="8561" x="183207" y="17472" z="-13248" heading="0" /> <!-- invisible1 -->
|
||||
<npc id="8561" x="182485" y="17000" z="-13248" heading="0" /> <!-- invisible1 -->
|
||||
<npc id="8561" x="181721" y="18030" z="-13248" heading="0" /> <!-- invisible1 -->
|
||||
<npc id="8561" x="182408" y="18565" z="-13248" heading="0" /> <!-- invisible1 -->
|
||||
<npc id="8561" x="179690" y="19125" z="-13512" heading="0" /> <!-- invisible1 -->
|
||||
<npc id="8561" x="180233" y="18389" z="-13512" heading="0" /> <!-- invisible1 -->
|
||||
<npc id="8561" x="179107" y="17593" z="-13512" heading="0" /> <!-- invisible1 -->
|
||||
<npc id="8561" x="178607" y="18350" z="-13512" heading="0" /> <!-- invisible1 -->
|
||||
</group>
|
||||
</spawnlist>
|
||||
</instance>
|
4
L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/instances/AltarOfShilen/19121.html
vendored
Normal file
4
L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/instances/AltarOfShilen/19121.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>
|
||||
The altar stops humming, and you feel the reverberating power of dimensional.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest AltarOfShilen teleport1">Try to go trough the door.</Button>
|
||||
</body></html>
|
4
L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/instances/AltarOfShilen/19122.html
vendored
Normal file
4
L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/instances/AltarOfShilen/19122.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>
|
||||
The altar stops humming, and you feel the reverberating power of dimensional.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest AltarOfShilen teleport2">Try to go trough the door.</Button>
|
||||
</body></html>
|
5
L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/instances/AltarOfShilen/34331-01.html
vendored
Normal file
5
L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/instances/AltarOfShilen/34331-01.html
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Royal Guard Captain Logart Van Dyke:<br>
|
||||
Who is it? Ah, you're the adventurer who volunteered to stop the ritual on the Altar of Shilen. You must be capable enough to stop it. Otherwise, you couldn't come this far. Okay, I'll open the door for you.<br>
|
||||
Don't lower yourb guard once inside.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest AltarOfShilen open_door">Open the door to the 2nd floor</Button>
|
||||
</body></html>
|
7
L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/instances/AltarOfShilen/34331-02.html
vendored
Normal file
7
L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/instances/AltarOfShilen/34331-02.html
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<html><body>Royal Guard Captain Logart Van Dyke:<br>
|
||||
Who is it? Ah, it's you! You've come this far!<br>
|
||||
The last altar is before you.<br>
|
||||
After Embryos invaded the Keucereus Alliance Base, the existence of the Messiah Castle was revealed. Melisa and Isadora, the twin sisters who had long disappeared, returned and are threatening us. If we fail to stop the ritual, Embryos will invade Aden Continent in no time. We must stop them at all cost.<br>
|
||||
My man Dinford will be waiting for you at the entrance to the last altar. Go to find him.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest AltarOfShilen open_door">Open the door to the 3nd floor</Button>
|
||||
</body></html>
|
5
L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/instances/AltarOfShilen/34331.html
vendored
Normal file
5
L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/instances/AltarOfShilen/34331.html
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Royal Guard Captain Logart Van Dyke:<br>
|
||||
How did you get in here? The blockade was only recently lifted, and this area is still very dangerous. It is under the control of the Kingdom's Royal Guard.<br>
|
||||
It is suspected that Embryos are preparing somewhere in this area to invade the Aden Continent. The Kingdom's Royal Guard is doing its best to stop them. are you here to stop the Embryo's ritual on the Altar of Shilen? if so. I'll gladly open open this door. Be careful. Only danger awaits you.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest AltarOfShilen open_door">Open the door to the 1st floor</Button>
|
||||
</body></html>
|
6
L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/instances/AltarOfShilen/34332.html
vendored
Normal file
6
L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/instances/AltarOfShilen/34332.html
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html>Quartermaster Dinford<body>
|
||||
Who is it? Ah, you've come to stop the ritual the ritual on the Altar of Shilen!<br>
|
||||
If so, I'll open the door to the altar.<br>
|
||||
Please stop the threat of the Embrio.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest AltarOfShilen final_door">Open the door.</Button>
|
||||
</body></html>
|
694
L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/instances/AltarOfShilen/AltarOfShilen.java
vendored
Normal file
694
L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/instances/AltarOfShilen/AltarOfShilen.java
vendored
Normal file
@@ -0,0 +1,694 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program 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.
|
||||
*
|
||||
* This program 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 instances.AltarOfShilen;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.Future;
|
||||
|
||||
import com.l2jmobius.commons.concurrent.ThreadPool;
|
||||
import com.l2jmobius.gameserver.enums.ChatType;
|
||||
import com.l2jmobius.gameserver.instancemanager.InstanceManager;
|
||||
import com.l2jmobius.gameserver.model.L2World;
|
||||
import com.l2jmobius.gameserver.model.Location;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Npc;
|
||||
import com.l2jmobius.gameserver.model.actor.instance.L2MonsterInstance;
|
||||
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||
import com.l2jmobius.gameserver.model.instancezone.Instance;
|
||||
import com.l2jmobius.gameserver.network.NpcStringId;
|
||||
import com.l2jmobius.gameserver.network.serverpackets.Earthquake;
|
||||
import com.l2jmobius.gameserver.network.serverpackets.ExSendUIEvent;
|
||||
import com.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
|
||||
import com.l2jmobius.gameserver.network.serverpackets.NpcSay;
|
||||
|
||||
import instances.AbstractInstance;
|
||||
|
||||
/**
|
||||
* Instance Altar of Shilen
|
||||
* @URL https://l2wiki.com/Altar_of_Shilen
|
||||
* @author Gigi
|
||||
* @date 2018-04-13 - [23:27:28]
|
||||
*/
|
||||
public class AltarOfShilen extends AbstractInstance
|
||||
{
|
||||
// NPCs
|
||||
private static final int LOGART_VAN_DYKE = 34331;
|
||||
private static final int DINFORD = 34332;
|
||||
private static final int ISADORA = 25856;
|
||||
private static final int MELISSA0 = 25855;
|
||||
private static final int MELISSA = 25876; // She dropping items
|
||||
private static final int EXECUTOR_CAPTAIN = 23131;
|
||||
private static final int ETINA_BLADESMAN = 23138;
|
||||
private static final int CORRUPTED_CAPTAIN = 25857;
|
||||
private static final int CORRUPTED_HIGH_PRIEST = 25858;
|
||||
private static final int RITUAL_ALTAR0 = 19121;
|
||||
private static final int RITUAL_ALTAR1 = 19122;
|
||||
private static final int SHILLIEN_ALTAR = 19123;
|
||||
private static final int INVISIBLE = 8561;
|
||||
private static final int ETINA_GOSPEL = 23132;
|
||||
private static final int ETINA_PRIEST = 23133;
|
||||
private static final int ETINA_PROTECTORS = 23134;
|
||||
private static final int ETINA_PUNISHERS = 23135;
|
||||
private static final int ETINA_COMMINATION = 23136;
|
||||
private static final int ETINA_DARKMONAGERS = 23137;
|
||||
private static final int ELITE_ESCORT = 23126;
|
||||
private static final int ELITE_CHASER = 23127;
|
||||
private static final int ELITE_WARRIOR = 23128;
|
||||
private static final int ELITE_ALCHEMIST = 23129;
|
||||
private static final int ELITE_PRIEST = 23130;
|
||||
private static final int EMBRYO_RESERCHER = 23139;
|
||||
private static final int EMBRYO_WATCHMAN = 23140;
|
||||
private static final int EMBRYO_FIGHTER = 23141;
|
||||
private static final int EMBRYO_GUARD = 23142;
|
||||
// Skills
|
||||
static final SkillHolder PROTECTED_ALTAR = new SkillHolder(14496, 1);
|
||||
// Misc
|
||||
private static final int TEMPLATE_ID = 194;
|
||||
private static final int ALTAR_TIME = 180;
|
||||
//@formatter:off
|
||||
private static final int[] DOORS = { 25180001, 25180002, 25180003, 25180004, 25180005, 25180006, 25180007 };
|
||||
//@formatter:on
|
||||
private static final NpcStringId[] SHOUT_MSG =
|
||||
{
|
||||
NpcStringId.I_NEED_HELP,
|
||||
NpcStringId.FOCUS_FIRE_ACCORDING_TO_MY_ORCHESTRATION,
|
||||
NpcStringId.I_NEED_HEAL,
|
||||
NpcStringId.I_M_GOING_TO_BACK_OFF_FOR_A_BIT,
|
||||
NpcStringId.I_WILL_ATTACK_THE_ENEMY_S_HEALER,
|
||||
NpcStringId.STOP_ENEMIES_HEALING,
|
||||
NpcStringId.ATTACK_WEAKENED_ENEMY,
|
||||
NpcStringId.COME_AT_ME,
|
||||
NpcStringId.SWITCH_TO_FAST_SHOOTING_MODE,
|
||||
NpcStringId.SWITCH_TO_FAST_CASTING_MODE,
|
||||
NpcStringId.BLINK_ATTACK,
|
||||
NpcStringId.ONLY_DEATH_AWAITS_FOR_THE_WEAK,
|
||||
};
|
||||
static final Location MELISSA_SPAWN = new Location(178146, 14356, -13688);
|
||||
private static final Location SECOND_FLOOR = new Location(179357, 13664, -9828);
|
||||
private static final Location THIRD_FLOOR = new Location(179354, 12922, -12776);
|
||||
|
||||
final List<L2PcInstance> playersInside = new ArrayList<>();
|
||||
final Map<Integer, Integer> killedMonsters = new ConcurrentHashMap<>();
|
||||
static List<L2Npc> firstFloorVictims = new ArrayList<>();
|
||||
public static Future<?> timer;
|
||||
public L2Npc altar;
|
||||
|
||||
public AltarOfShilen()
|
||||
{
|
||||
super(TEMPLATE_ID);
|
||||
addInstanceCreatedId(TEMPLATE_ID);
|
||||
addFirstTalkId(LOGART_VAN_DYKE, RITUAL_ALTAR0, RITUAL_ALTAR1, DINFORD);
|
||||
addSpawnId(CORRUPTED_CAPTAIN, CORRUPTED_HIGH_PRIEST, INVISIBLE, SHILLIEN_ALTAR);
|
||||
addAttackId(ETINA_GOSPEL, ETINA_PRIEST, ETINA_PROTECTORS, ETINA_PUNISHERS, ETINA_COMMINATION, ETINA_DARKMONAGERS, ELITE_ESCORT, ELITE_CHASER, ELITE_WARRIOR, ELITE_ALCHEMIST, ELITE_PRIEST, EMBRYO_RESERCHER, EMBRYO_WATCHMAN, EMBRYO_FIGHTER, EMBRYO_GUARD);
|
||||
addKillId(EXECUTOR_CAPTAIN, CORRUPTED_CAPTAIN, ETINA_BLADESMAN, CORRUPTED_HIGH_PRIEST, ETINA_GOSPEL, ETINA_PROTECTORS, ETINA_PUNISHERS, MELISSA0, MELISSA, ISADORA);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onInstanceCreated(Instance instance, L2PcInstance player)
|
||||
{
|
||||
instance.spawnGroup("general");
|
||||
instance.spawnGroup("first_floor");
|
||||
instance.setStatus(1);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
final Instance world = npc.getInstanceWorld();
|
||||
if (event.equals("enterInstance"))
|
||||
{
|
||||
enterInstance(player, npc, TEMPLATE_ID);
|
||||
if (player.isGM())
|
||||
{
|
||||
playersInside.add(player);
|
||||
}
|
||||
if (player.getParty() != null)
|
||||
{
|
||||
for (L2PcInstance partyMember : player.getParty().getMembers())
|
||||
{
|
||||
playersInside.add(partyMember);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (event.equals("check_player"))
|
||||
{
|
||||
L2World.getInstance().forEachVisibleObjectInRange(npc, L2PcInstance.class, 400, p ->
|
||||
{
|
||||
if ((p != null) && p.isPlayer() && !p.isDead())
|
||||
{
|
||||
npc.setScriptValue(1);
|
||||
final L2Npc gospel = addSpawn(ETINA_GOSPEL, npc, true, 0, false, world.getId());
|
||||
final L2Npc priest = addSpawn(ETINA_PRIEST, npc, true, 0, false, world.getId());
|
||||
final L2Npc protectors = addSpawn(ETINA_PROTECTORS, npc, true, 0, false, world.getId());
|
||||
final L2Npc punishers = addSpawn(ETINA_PUNISHERS, npc, true, 0, false, world.getId());
|
||||
final L2Npc commination = addSpawn(ETINA_COMMINATION, npc, true, 0, false, world.getId());
|
||||
final L2Npc darkmonagers = addSpawn(ETINA_DARKMONAGERS, npc, true, 0, false, world.getId());
|
||||
addAttackPlayerDesire(gospel, p);
|
||||
addAttackPlayerDesire(priest, p);
|
||||
addAttackPlayerDesire(protectors, p);
|
||||
addAttackPlayerDesire(punishers, p);
|
||||
addAttackPlayerDesire(commination, p);
|
||||
addAttackPlayerDesire(darkmonagers, p);
|
||||
}
|
||||
});
|
||||
}
|
||||
if (isInInstance(world))
|
||||
{
|
||||
switch (npc.getId())
|
||||
{
|
||||
case LOGART_VAN_DYKE:
|
||||
{
|
||||
if (event.equals("open_door"))
|
||||
{
|
||||
if (world.getStatus() == 1)
|
||||
{
|
||||
if (world.getDoor(DOORS[0]) != null)
|
||||
{
|
||||
world.getDoor(DOORS[0]).openMe();
|
||||
}
|
||||
world.setStatus(2);
|
||||
onStatusChanged(world);
|
||||
break;
|
||||
}
|
||||
else if (world.getStatus() == 3)
|
||||
{
|
||||
if (world.getDoor(DOORS[1]) != null)
|
||||
{
|
||||
world.getDoor(DOORS[1]).openMe();
|
||||
}
|
||||
world.setStatus(4);
|
||||
onStatusChanged(world);
|
||||
break;
|
||||
}
|
||||
else if (world.getStatus() == 5)
|
||||
{
|
||||
if (world.getDoor(DOORS[2]) != null)
|
||||
{
|
||||
world.getDoor(DOORS[2]).openMe();
|
||||
}
|
||||
world.setStatus(6);
|
||||
onStatusChanged(world);
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case RITUAL_ALTAR0:
|
||||
{
|
||||
if ((world.getStatus() == 3) && event.equals("teleport1"))
|
||||
{
|
||||
L2World.getInstance().forEachVisibleObjectInRange(npc, L2PcInstance.class, 1000, p ->
|
||||
{
|
||||
if ((p != null) && p.isPlayable() && !p.isDead())
|
||||
{
|
||||
p.teleToLocation(SECOND_FLOOR, world.getTemplateId());
|
||||
}
|
||||
world.spawnGroup("second_floor");
|
||||
});
|
||||
}
|
||||
break;
|
||||
}
|
||||
case RITUAL_ALTAR1:
|
||||
{
|
||||
if ((world.getStatus() == 5) && event.equals("teleport2"))
|
||||
{
|
||||
L2World.getInstance().forEachVisibleObjectInRange(npc, L2PcInstance.class, 1000, p ->
|
||||
{
|
||||
if ((p != null) && p.isPlayable() && !p.isDead())
|
||||
{
|
||||
p.teleToLocation(THIRD_FLOOR, world.getTemplateId());
|
||||
}
|
||||
world.spawnGroup("thrid_floor");
|
||||
});
|
||||
}
|
||||
break;
|
||||
}
|
||||
case DINFORD:
|
||||
{
|
||||
if ((world.getStatus() == 6) && event.equals("final_door"))
|
||||
{
|
||||
if (!world.getDoor(DOORS[6]).isOpen())
|
||||
{
|
||||
world.getDoor(DOORS[6]).openMe();
|
||||
}
|
||||
world.setStatus(7);
|
||||
onStatusChanged(world);
|
||||
npc.deleteMe();
|
||||
cancelQuestTimers("check_player");
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return super.onAdvEvent(event, npc, player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAttack(L2Npc npc, L2PcInstance attacker, int damage, boolean isSummon)
|
||||
{
|
||||
if (npc.getInstanceWorld() != null)
|
||||
{
|
||||
if (getRandom(30) < 3)
|
||||
{
|
||||
npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), SHOUT_MSG[getRandom(SHOUT_MSG.length)]));
|
||||
}
|
||||
}
|
||||
return super.onAttack(npc, attacker, damage, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
|
||||
{
|
||||
final Instance world = npc.getInstanceWorld();
|
||||
if (world != null)
|
||||
{
|
||||
int npcId = npc.getId();
|
||||
if (!killedMonsters.containsKey(npcId))
|
||||
{
|
||||
killedMonsters.put(npcId, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
killedMonsters.put(npcId, killedMonsters.get(npcId) + 1);
|
||||
}
|
||||
// 1st Floor
|
||||
if (world.getStatus() == 2)
|
||||
{
|
||||
if (killedMonsters.containsKey(EXECUTOR_CAPTAIN) && (killedMonsters.get(EXECUTOR_CAPTAIN) >= 3))
|
||||
{
|
||||
final int boos1 = world.getTemplateParameters().getInt("boss1");
|
||||
final L2Npc captain = world.getNpc(boos1);
|
||||
if (captain != null)
|
||||
{
|
||||
captain.setIsInvul(false);
|
||||
}
|
||||
}
|
||||
if (killedMonsters.containsKey(CORRUPTED_CAPTAIN) && (killedMonsters.get(CORRUPTED_CAPTAIN) >= 1))
|
||||
{
|
||||
for (L2PcInstance player : playersInside)
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage("You can move to the next floor through the Altar of Sacrifice.", ExShowScreenMessage.MIDDLE_CENTER, 5000));
|
||||
}
|
||||
world.setStatus(3);
|
||||
killedMonsters.clear();
|
||||
onStatusChanged(world);
|
||||
}
|
||||
}
|
||||
// 2st Floor
|
||||
else if (world.getStatus() == 4)
|
||||
{
|
||||
if (killedMonsters.containsKey(ETINA_BLADESMAN) && (killedMonsters.get(ETINA_BLADESMAN) >= 3))
|
||||
{
|
||||
final int boos2 = world.getTemplateParameters().getInt("boss2");
|
||||
final L2Npc priest = world.getNpc(boos2);
|
||||
if (priest != null)
|
||||
{
|
||||
priest.setIsInvul(false);
|
||||
}
|
||||
}
|
||||
if (killedMonsters.containsKey(CORRUPTED_HIGH_PRIEST) && (killedMonsters.get(CORRUPTED_HIGH_PRIEST) >= 1))
|
||||
{
|
||||
for (L2PcInstance player : playersInside)
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage("You can move to the next floor through the Altar of Sacrifice.", ExShowScreenMessage.MIDDLE_CENTER, 5000));
|
||||
}
|
||||
world.setStatus(5);
|
||||
killedMonsters.clear();
|
||||
onStatusChanged(world);
|
||||
|
||||
}
|
||||
}
|
||||
// 3st Floor
|
||||
else if (world.getStatus() == 6)
|
||||
{
|
||||
switch (npc.getId())
|
||||
{
|
||||
case ETINA_GOSPEL:
|
||||
{
|
||||
world.getDoor(DOORS[3]).openMe();
|
||||
ThreadPool.schedule(() -> world.getDoor(DOORS[3]).closeMe(), 5000);
|
||||
break;
|
||||
}
|
||||
case ETINA_PROTECTORS:
|
||||
{
|
||||
world.getDoor(DOORS[4]).openMe();
|
||||
ThreadPool.schedule(() -> world.getDoor(DOORS[4]).closeMe(), 5000);
|
||||
break;
|
||||
}
|
||||
case ETINA_PUNISHERS:
|
||||
{
|
||||
world.getDoor(DOORS[5]).openMe();
|
||||
ThreadPool.schedule(() -> world.getDoor(DOORS[5]).closeMe(), 5000);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (world.getStatus() == 8)
|
||||
{
|
||||
if (killedMonsters.containsKey(MELISSA) && (killedMonsters.get(MELISSA) == 1))
|
||||
{
|
||||
for (L2PcInstance player : playersInside)
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage(NpcStringId.ALTAR_OF_SHILEN_HAS_BEEN_DESTROYED_YOU_VE_WON, ExShowScreenMessage.TOP_CENTER, 5000, true));
|
||||
}
|
||||
playersInside.clear();
|
||||
killedMonsters.clear();
|
||||
world.finishInstance(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onSpawn(L2Npc npc)
|
||||
{
|
||||
if (npc.getInstanceWorld() != null)
|
||||
{
|
||||
switch (npc.getId())
|
||||
{
|
||||
case CORRUPTED_CAPTAIN:
|
||||
case CORRUPTED_HIGH_PRIEST:
|
||||
{
|
||||
npc.setIsInvul(true);
|
||||
break;
|
||||
}
|
||||
case INVISIBLE:
|
||||
{
|
||||
if (npc.isScriptValue(0))
|
||||
{
|
||||
startQuestTimer("check_player", 2000, npc, null, true);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case SHILLIEN_ALTAR:
|
||||
{
|
||||
altar = npc;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return super.onSpawn(npc);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onFirstTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
final Instance world = npc.getInstanceWorld();
|
||||
String htmltext = null;
|
||||
if (isInInstance(world))
|
||||
{
|
||||
switch (npc.getId())
|
||||
{
|
||||
case LOGART_VAN_DYKE:
|
||||
{
|
||||
if ((world.getStatus() > 0) && (world.getStatus() < 3))
|
||||
{
|
||||
return "34331.html";
|
||||
}
|
||||
else if ((world.getStatus() >= 3) && (world.getStatus() < 5))
|
||||
{
|
||||
return "34331-01.html";
|
||||
}
|
||||
else if (world.getStatus() >= 5)
|
||||
{
|
||||
return "34331-02.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case RITUAL_ALTAR0:
|
||||
{
|
||||
if (world.getStatus() >= 3)
|
||||
{
|
||||
return "19121.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case RITUAL_ALTAR1:
|
||||
{
|
||||
if (world.getStatus() >= 5)
|
||||
{
|
||||
return "19122.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case DINFORD:
|
||||
{
|
||||
if (world.getStatus() >= 5)
|
||||
{
|
||||
return "34332.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
public static class VictimDefeatTask implements Runnable
|
||||
{
|
||||
private final Instance _world;
|
||||
private int _victims;
|
||||
private final int _initialTime;
|
||||
private int _time;
|
||||
|
||||
VictimDefeatTask(int victims, int time, Instance world)
|
||||
{
|
||||
_world = world;
|
||||
_victims = victims;
|
||||
_initialTime = time;
|
||||
_time = time;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run()
|
||||
{
|
||||
for (L2PcInstance player : _world.getPlayers())
|
||||
{
|
||||
player.sendPacket(new ExSendUIEvent(player, ExSendUIEvent.TYPE_GP_TIMER, (_time--), 0, NpcStringId.SACRIFICE_LEFT_S1, new String[]
|
||||
{
|
||||
String.valueOf(_victims)
|
||||
}));
|
||||
}
|
||||
if (_time <= 0)
|
||||
{
|
||||
_time = _initialTime;
|
||||
--_victims;
|
||||
for (L2PcInstance player : _world.getPlayers())
|
||||
{
|
||||
player.sendPacket(new Earthquake(player.getX(), player.getY(), player.getZ(), 20, 5));
|
||||
player.sendPacket(new ExShowScreenMessage(NpcStringId.SACRIFICE_HAS_BEEN_KILLED_SACRIFICE_LEFT_S1, ExShowScreenMessage.MIDDLE_CENTER, 3000, String.valueOf(_victims)));
|
||||
}
|
||||
}
|
||||
if ((_world.getStatus() == 2) && !firstFloorVictims.isEmpty())
|
||||
{
|
||||
firstFloorVictims.get(0).deleteMe();
|
||||
firstFloorVictims.remove(0);
|
||||
}
|
||||
if ((_victims == 1) && (_world.getStatus() == 2))
|
||||
{
|
||||
for (L2PcInstance player : _world.getPlayers())
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage("4 lives were sacrificed and the Blessing of Blood is bestowed upon the Corrupted Captain.", ExShowScreenMessage.MIDDLE_CENTER, 10000));
|
||||
}
|
||||
}
|
||||
if ((_victims == 1) && (_world.getStatus() == 4))
|
||||
{
|
||||
for (L2PcInstance player : _world.getPlayers())
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage("4 lives were sacrificed and the Blessing of Blood is bestowed upon the Corrupted High Priest.", ExShowScreenMessage.MIDDLE_CENTER, 10000));
|
||||
}
|
||||
}
|
||||
if (_victims <= 0)
|
||||
{
|
||||
ThreadPool.schedule(() ->
|
||||
{
|
||||
for (L2PcInstance player : _world.getPlayers())
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage("All offerings were sacrificed and the Blessing of Blood is bestowed upon the Embryo Colony in that floor.", ExShowScreenMessage.MIDDLE_CENTER, 3000));
|
||||
}
|
||||
if (timer != null)
|
||||
{
|
||||
timer.cancel(true);
|
||||
timer = null;
|
||||
}
|
||||
_world.finishInstance(1);
|
||||
}, 3000);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void onStatusChanged(final Instance world)
|
||||
{
|
||||
final Instance instance = InstanceManager.getInstance().getInstance(world.getId());
|
||||
switch (instance.getStatus())
|
||||
{
|
||||
case 1:
|
||||
{
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
if (timer != null)
|
||||
{
|
||||
timer.cancel(true);
|
||||
}
|
||||
for (L2PcInstance player : playersInside)
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage(NpcStringId.YOU_MUST_STOP_THE_ALTAR_BEFORE_EVERYTHING_IS_SACRIFICED, ExShowScreenMessage.MIDDLE_CENTER, 6000));
|
||||
}
|
||||
timer = ThreadPool.scheduleAtFixedRate(new VictimDefeatTask(5, ALTAR_TIME, world), 0, 1000);
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
{
|
||||
if (timer != null)
|
||||
{
|
||||
timer.cancel(true);
|
||||
timer = null;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 4:
|
||||
{
|
||||
if (timer != null)
|
||||
{
|
||||
timer.cancel(true);
|
||||
}
|
||||
for (L2PcInstance player : playersInside)
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage(NpcStringId.YOU_MUST_STOP_THE_ALTAR_BEFORE_EVERYTHING_IS_SACRIFICED, ExShowScreenMessage.MIDDLE_CENTER, 6000));
|
||||
}
|
||||
timer = ThreadPool.scheduleAtFixedRate(new VictimDefeatTask(5, ALTAR_TIME, world), 0, 1000);
|
||||
break;
|
||||
}
|
||||
case 5:
|
||||
case 6:
|
||||
{
|
||||
if (timer != null)
|
||||
{
|
||||
timer.cancel(true);
|
||||
timer = null;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 7:
|
||||
{
|
||||
ThreadPool.schedule(() -> timer = ThreadPool.scheduleAtFixedRate(new Runnable()
|
||||
{
|
||||
private int _time = ALTAR_TIME;
|
||||
|
||||
@Override
|
||||
public void run()
|
||||
{
|
||||
if (_time <= 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
boolean defeated = false;
|
||||
if (killedMonsters.containsKey(MELISSA0) && (killedMonsters.get(MELISSA0) == 1) && killedMonsters.containsKey(ISADORA) && (killedMonsters.get(ISADORA) == 1))
|
||||
{
|
||||
defeated = true;
|
||||
for (L2PcInstance player : playersInside)
|
||||
{
|
||||
player.sendPacket(new ExSendUIEvent(player, ExSendUIEvent.TYPE_NORNIL, (_time--), 0, 0, 0, 0, 2518008));
|
||||
player.sendPacket(new ExSendUIEvent(player, 0x01, 0, 0, 0, 0, 0, 2518008));
|
||||
player.sendPacket(new ExShowScreenMessage(NpcStringId.ALTAR_HAS_STOPPED, ExShowScreenMessage.MIDDLE_CENTER, 5000));
|
||||
addSpawn(MELISSA, MELISSA_SPAWN.getX(), MELISSA_SPAWN.getY(), MELISSA_SPAWN.getZ(), 0, false, 0, true, world.getId());
|
||||
if (timer != null)
|
||||
{
|
||||
timer.cancel(true);
|
||||
timer = null;
|
||||
}
|
||||
altar.deleteMe();
|
||||
world.setStatus(8);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (L2PcInstance player : world.getPlayers())
|
||||
{
|
||||
if (_time == ALTAR_TIME)
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage(NpcStringId.ALTAR_OF_SHILEN_IS_STARTING_MUST_FOCUS_FIRE_THE_ALTAR, ExShowScreenMessage.MIDDLE_CENTER, 5000));
|
||||
}
|
||||
player.sendPacket(new ExSendUIEvent(player, ExSendUIEvent.TYPE_NORNIL, (_time--), 0, 0, 0, 0, 2518008));
|
||||
}
|
||||
}
|
||||
|
||||
if (!defeated && (_time == 9))
|
||||
{
|
||||
for (L2PcInstance player : playersInside)
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage("The Altar of Shilen will become activated in 10 seconds.", ExShowScreenMessage.MIDDLE_CENTER, 5000));
|
||||
}
|
||||
}
|
||||
|
||||
if (!defeated && (_time == 4))
|
||||
{
|
||||
for (L2PcInstance player : playersInside)
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage("The Altar of Shilen will become activated in 5 seconds.", ExShowScreenMessage.MIDDLE_CENTER, 5000));
|
||||
}
|
||||
}
|
||||
|
||||
if (!defeated && (_time <= 0))
|
||||
{
|
||||
for (L2PcInstance player : playersInside)
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage(NpcStringId.FOCUS_FIRE_THE_ALTAR_TO_STOP_BLESSING_OF_SHILEN, ExShowScreenMessage.MIDDLE_CENTER, 5000));
|
||||
}
|
||||
|
||||
if (isInInstance(world))
|
||||
{
|
||||
L2World.getInstance().forEachVisibleObjectInRange(altar, L2MonsterInstance.class, 8000, boss ->
|
||||
{
|
||||
if ((boss != null) && !boss.isDead())
|
||||
{
|
||||
altar.doCast(PROTECTED_ALTAR.getSkill());
|
||||
boss.setCurrentHp(boss.getCurrentHp() + (boss.getMaxHp() / 2));
|
||||
for (L2PcInstance player : playersInside)
|
||||
{
|
||||
player.sendPacket(new Earthquake(player.getX(), player.getY(), player.getZ(), 30, 5));
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
if ((_time <= 0) && world.isStatus(7))
|
||||
{
|
||||
ThreadPool.schedule(() ->
|
||||
{
|
||||
_time = ALTAR_TIME;
|
||||
}, 15000);
|
||||
}
|
||||
}
|
||||
}, 0, 1000), 5000);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new AltarOfShilen();
|
||||
}
|
||||
}
|
5
L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/instances/AltarOfShilen/condNoGroup.html
vendored
Normal file
5
L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/instances/AltarOfShilen/condNoGroup.html
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Agent Georgio:<br>
|
||||
The Altar of Shilen is extremely dangerous.<br>
|
||||
You're trying to go there alone. You may be either very confident or reckless.<br>
|
||||
To let you go is to send you to your death. If you want to go to the Altar of Shilen and stop the ritual, please gather allies and return.
|
||||
</body></html>
|
3
L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/instances/AltarOfShilen/condNoLevel.html
vendored
Normal file
3
L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/instances/AltarOfShilen/condNoLevel.html
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Agent Georgio:<br>
|
||||
(A party members level must be 101 - 105 Lvl to challenge Altar of Shilen.)
|
||||
</body></html>
|
3
L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/instances/AltarOfShilen/condNoPartyLeader.html
vendored
Normal file
3
L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/instances/AltarOfShilen/condNoPartyLeader.html
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Agent Georgio:<br>
|
||||
Only a party leader may enter the altar of Shilen
|
||||
</body></html>
|
3
L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/instances/AltarOfShilen/condSmallGroup.html
vendored
Normal file
3
L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/instances/AltarOfShilen/condSmallGroup.html
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Agent Georgio:<br>
|
||||
You are too weak. Gather more people.
|
||||
</body></html>
|
@@ -812,7 +812,7 @@
|
||||
<height normal="0.1" />
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="19121" level="95" type="L2Monster" name="Altar of Sacrifice">
|
||||
<npc id="19121" level="95" type="L2Npc" name="Altar of Sacrifice" >
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>CONSTRUCT</race>
|
||||
<sex>MALE</sex>
|
||||
@@ -839,7 +839,7 @@
|
||||
<height normal="22.5" />
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="19122" level="95" type="L2Monster" name="Altar of Sacrifice">
|
||||
<npc id="19122" level="95" type="L2Npc" name="Altar of Sacrifice" >
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>CONSTRUCT</race>
|
||||
<sex>MALE</sex>
|
||||
@@ -866,7 +866,7 @@
|
||||
<height normal="22.5" />
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="19123" level="95" type="L2Monster" name="Altar of Shilen">
|
||||
<npc id="19123" level="95" type="L2Npc" name="Altar of Shilen" >
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>CONSTRUCT</race>
|
||||
<sex>MALE</sex>
|
||||
|
@@ -2294,19 +2294,19 @@
|
||||
<height normal="60" />
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="25856" level="96" type="L2RaidBoss" name="Isadora" title="Great Magus of Greed">
|
||||
<npc id="25856" level="104" type="L2RaidBoss" name="Isadora" title="Great Magus of Greed">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<parameters>
|
||||
<param name="IsAggressive" value="1" />
|
||||
<skill name="Skill02_ID" id="14519" level="1" />
|
||||
<skill name="Skill03_ID" id="14520" level="1" />
|
||||
<skill name="Skill01_ID" id="23707" level="4" />
|
||||
<skill name="Skill02_ID" id="16979" level="1" />
|
||||
<param name="Attack_BoostValue" value="146" />
|
||||
</parameters>
|
||||
<race>HUMANOID</race>
|
||||
<sex>FEMALE</sex>
|
||||
<mpReward value="53" type="DIFF" ticks="10" affects="PARTY" />
|
||||
<stats str="164" int="188" dex="48" wit="71" con="111" men="149">
|
||||
<vitals hp="530201" hpRegen="8.5" mp="2242" mpRegen="30" />
|
||||
<vitals hp="2081767" hpRegen="8.5" mp="33087" mpRegen="30" />
|
||||
<speed>
|
||||
<walk ground="30" />
|
||||
<run ground="180" />
|
||||
@@ -2329,9 +2329,9 @@
|
||||
<skill id="4440" level="5" /> <!-- Greater Paralysis Resistance -->
|
||||
<skill id="4441" level="5" /> <!-- Greater Mental Attack Resistance -->
|
||||
<skill id="4439" level="5" /> <!-- Greater Hold Resistance -->
|
||||
<skill id="4494" level="1" /> <!-- Raid Boss -->
|
||||
<skill id="14520" level="1" /> <!-- Ice Box of Hell -->
|
||||
<skill id="14519" level="1" /> <!-- Fire Pit of Hell -->
|
||||
<skill id="16979" level="1" /> <!-- Hellfire -->
|
||||
<skill id="23707" level="4" /> <!-- Chaos fire -->
|
||||
<skill id="16980" level="1" /> <!-- Infernal Icicles -->
|
||||
<skill id="4415" level="3" /> <!-- One-handed Sword -->
|
||||
<skill id="14765" level="4" /> <!-- Blood Siphon Resistance -->
|
||||
<skill id="14620" level="1" /> <!-- Aerial Yoke Resistance 1 -->
|
||||
@@ -2340,7 +2340,7 @@
|
||||
<skill id="14617" level="1" /> <!-- Knock Down Resistance -->
|
||||
<skill id="14619" level="1" /> <!-- Disarm Resistance -->
|
||||
</skillList>
|
||||
<ai clanHelpRange="300" aggroRange="300">
|
||||
<ai clanHelpRange="400" aggroRange="400">
|
||||
<clanList>
|
||||
<clan>EMBRYO_BOSS</clan>
|
||||
</clanList>
|
||||
@@ -2349,21 +2349,123 @@
|
||||
<radius normal="24" />
|
||||
<height normal="60" />
|
||||
</collision>
|
||||
<dropLists>
|
||||
<drop>
|
||||
<item id="17527" min="1" max="1" chance="61.17" /> <!-- Scroll: Enchant Armor (R-grade) -->
|
||||
<item id="36574" min="1" max="1" chance="50.91" /> <!-- Scroll: Modify Weapon (R-grade) -->
|
||||
<item id="36586" min="1" max="1" chance="48.8" /> <!-- Scroll: Modify Armor (R-grade) -->
|
||||
<item id="17526" min="1" max="1" chance="39.83" /> <!-- Scroll: Enchant Weapon (R-grade) -->
|
||||
<item id="35352" min="1" max="1" chance="1.945" /> <!-- Eternal Glove Ingredient -->
|
||||
<item id="35346" min="1" max="1" chance="1.944" /> <!-- Eternal Leather Legging Ingredient -->
|
||||
<item id="35344" min="1" max="1" chance="1.921" /> <!-- Eternal Leather Helmet Ingredient -->
|
||||
<item id="35342" min="1" max="1" chance="1.92" /> <!-- Eternal Boot Ingredient -->
|
||||
<item id="35345" min="1" max="1" chance="1.906" /> <!-- Eternal Leather Armor Ingredient -->
|
||||
<item id="35348" min="1" max="1" chance="1.901" /> <!-- Eternal Leather Boot Ingredient -->
|
||||
<item id="35339" min="1" max="1" chance="1.896" /> <!-- Eternal Breastplate Ingredient -->
|
||||
<item id="35351" min="1" max="1" chance="1.895" /> <!-- Eternal Stocking Ingredient -->
|
||||
<item id="35338" min="1" max="1" chance="1.894" /> <!-- Eternal Helmet Ingredient -->
|
||||
<item id="35343" min="1" max="1" chance="1.889" /> <!-- Eternal Shield Ingredient -->
|
||||
<item id="35353" min="1" max="1" chance="1.884" /> <!-- Eternal Shoe Ingredient -->
|
||||
<item id="35349" min="1" max="1" chance="1.875" /> <!-- Eternal Circlet Ingredient -->
|
||||
<item id="35340" min="1" max="1" chance="1.867" /> <!-- Eternal Gaiter Ingredient -->
|
||||
<item id="35347" min="1" max="1" chance="1.864" /> <!-- Eternal Leather Glove Ingredient -->
|
||||
<item id="35350" min="1" max="1" chance="1.858" /> <!-- Eternal Tunic Ingredient -->
|
||||
<item id="35354" min="1" max="1" chance="1.854" /> <!-- Eternal Sigil Ingredient -->
|
||||
<item id="35341" min="1" max="1" chance="1.825" /> <!-- Eternal Gauntlet Ingredient -->
|
||||
<item id="35328" min="1" max="1" chance="0.75" /> <!-- Amaranthine Cutter Fragment -->
|
||||
<item id="35329" min="1" max="1" chance="0.75" /> <!-- Amaranthine Slasher Fragment -->
|
||||
<item id="35327" min="1" max="1" chance="0.75" /> <!-- Amaranthine Shaper Fragment -->
|
||||
<item id="35331" min="1" max="1" chance="0.75" /> <!-- Amaranthine Fighter Fragment -->
|
||||
<item id="35337" min="1" max="1" chance="0.75" /> <!-- Amaranthine Retributer Fragment -->
|
||||
<item id="35332" min="1" max="1" chance="0.75" /> <!-- Amaranthine Stormer Fragment -->
|
||||
<item id="35333" min="1" max="1" chance="0.75" /> <!-- Amaranthine Thrower Fragment -->
|
||||
<item id="35335" min="1" max="1" chance="0.75" /> <!-- Amaranthine Buster Fragment -->
|
||||
<item id="35334" min="1" max="1" chance="0.75" /> <!-- Amaranthine Shooter Fragment -->
|
||||
<item id="35336" min="1" max="1" chance="0.75" /> <!-- Amaranthine Caster Fragment -->
|
||||
<item id="35330" min="1" max="1" chance="0.75" /> <!-- Amaranthine Avenger Fragment -->
|
||||
<item id="35473" min="1" max="1" chance="0.3" /> <!-- Recipe: Eternal Circlet (60%) -->
|
||||
<item id="35472" min="1" max="1" chance="0.3" /> <!-- Recipe: Eternal Leather Boots (60%) -->
|
||||
<item id="35471" min="1" max="1" chance="0.3" /> <!-- Recipe: Eternal Leather Gloves (60%) -->
|
||||
<item id="35470" min="1" max="1" chance="0.3" /> <!-- Recipe: Eternal Leather Leggings (60%) -->
|
||||
<item id="35469" min="1" max="1" chance="0.3" /> <!-- Recipe: Eternal Leather Armor (60%) -->
|
||||
<item id="35474" min="1" max="1" chance="0.3" /> <!-- Recipe: Eternal Tunic (60%) -->
|
||||
<item id="35475" min="1" max="1" chance="0.3" /> <!-- Recipe: Eternal Stockings (60%) -->
|
||||
<item id="35476" min="1" max="1" chance="0.3" /> <!-- Recipe: Eternal Gloves (60%) -->
|
||||
<item id="35477" min="1" max="1" chance="0.3" /> <!-- Recipe: Eternal Shoes (60%) -->
|
||||
<item id="35478" min="1" max="1" chance="0.3" /> <!-- Recipe: Eternal Sigil (60%) -->
|
||||
<item id="46476" min="1" max="1" chance="0.3" /> <!-- Leona's Soul Crystal - Stage 3 -->
|
||||
<item id="46491" min="1" max="1" chance="0.3" /> <!-- Pantheon's Soul Crystal - Stage 3 -->
|
||||
<item id="46506" min="1" max="1" chance="0.3" /> <!-- Lionel's Soul Crystal - Stage 3 -->
|
||||
<item id="35468" min="1" max="1" chance="0.3" /> <!-- Recipe: Eternal Leather Helmet (60%) -->
|
||||
<item id="35467" min="1" max="1" chance="0.3" /> <!-- Recipe: Eternal Shield (60%) -->
|
||||
<item id="35466" min="1" max="1" chance="0.3" /> <!-- Recipe: Eternal Boots (60%) -->
|
||||
<item id="35452" min="1" max="1" chance="0.3" /> <!-- Recipe: Amaranthine Cutter (60%) -->
|
||||
<item id="35451" min="1" max="1" chance="0.3" /> <!-- Recipe: Amaranthine Shaper (60%) -->
|
||||
<item id="35454" min="1" max="1" chance="0.3" /> <!-- Recipe: Amaranthine Avenger (60%) -->
|
||||
<item id="35455" min="1" max="1" chance="0.3" /> <!-- Recipe: Amaranthine Fighter (60%) -->
|
||||
<item id="35456" min="1" max="1" chance="0.3" /> <!-- Recipe: Amaranthine Stormer (60%) -->
|
||||
<item id="35457" min="1" max="1" chance="0.3" /> <!-- Recipe: Amaranthine Thrower (60%) -->
|
||||
<item id="35458" min="1" max="1" chance="0.3" /> <!-- Recipe: Amaranthine Shooter (60%) -->
|
||||
<item id="35459" min="1" max="1" chance="0.3" /> <!-- Recipe: Amaranthine Buster (60%) -->
|
||||
<item id="35465" min="1" max="1" chance="0.3" /> <!-- Recipe: Eternal Gauntlets (60%) -->
|
||||
<item id="35464" min="1" max="1" chance="0.3" /> <!-- Recipe: Eternal Gaiters (60%) -->
|
||||
<item id="35463" min="1" max="1" chance="0.3" /> <!-- Recipe: Eternal Breastplate (60%) -->
|
||||
<item id="35462" min="1" max="1" chance="0.3" /> <!-- Recipe: Eternal Helmet (60%) -->
|
||||
<item id="35460" min="1" max="1" chance="0.3" /> <!-- Recipe: Amaranthine Caster (60%) -->
|
||||
<item id="35453" min="1" max="1" chance="0.3" /> <!-- Recipe: Amaranthine Slasher (60%) -->
|
||||
<item id="35461" min="1" max="1" chance="0.3" /> <!-- Recipe: Amaranthine Retributer (60%) -->
|
||||
<item id="46493" min="1" max="1" chance="0.075" /> <!-- Pantheon's Soul Crystal - Stage 5 -->
|
||||
<item id="46507" min="1" max="1" chance="0.075" /> <!-- Lionel's Soul Crystal - Stage 4 -->
|
||||
<item id="46508" min="1" max="1" chance="0.075" /> <!-- Lionel's Soul Crystal - Stage 5 -->
|
||||
<item id="46478" min="1" max="1" chance="0.075" /> <!-- Leona's Soul Crystal - Stage 5 -->
|
||||
<item id="46477" min="1" max="1" chance="0.075" /> <!-- Leona's Soul Crystal - Stage 4 -->
|
||||
<item id="46492" min="1" max="1" chance="0.075" /> <!-- Pantheon's Soul Crystal - Stage 4 -->
|
||||
<item id="46446" min="1" max="1" chance="0.075" /> <!-- Kain's Soul Crystal - Stage 3 -->
|
||||
<item id="46447" min="1" max="1" chance="0.075" /> <!-- Kain's Soul Crystal - Stage 4 -->
|
||||
<item id="46462" min="1" max="1" chance="0.075" /> <!-- Mermoden's Soul Crystal - Stage 4 -->
|
||||
<item id="46461" min="1" max="1" chance="0.075" /> <!-- Mermoden's Soul Crystal - Stage 3 -->
|
||||
<item id="46448" min="1" max="1" chance="0.03" /> <!-- Kain's Soul Crystal - Stage 5 -->
|
||||
<item id="46495" min="1" max="1" chance="0.03" /> <!-- Pantheon's Soul Crystal - Stage 7 -->
|
||||
<item id="46494" min="1" max="1" chance="0.03" /> <!-- Pantheon's Soul Crystal - Stage 6 -->
|
||||
<item id="46509" min="1" max="1" chance="0.03" /> <!-- Lionel's Soul Crystal - Stage 6 -->
|
||||
<item id="46510" min="1" max="1" chance="0.03" /> <!-- Lionel's Soul Crystal - Stage 7 -->
|
||||
<item id="46480" min="1" max="1" chance="0.03" /> <!-- Leona's Soul Crystal - Stage 7 -->
|
||||
<item id="46479" min="1" max="1" chance="0.03" /> <!-- Leona's Soul Crystal - Stage 6 -->
|
||||
<item id="46463" min="1" max="1" chance="0.03" /> <!-- Mermoden's Soul Crystal - Stage 5 -->
|
||||
<item id="46464" min="1" max="1" chance="0.03" /> <!-- Mermoden's Soul Crystal - Stage 6 -->
|
||||
<item id="46449" min="1" max="1" chance="0.03" /> <!-- Kain's Soul Crystal - Stage 6 -->
|
||||
<item id="46465" min="1" max="1" chance="0.0075" /> <!-- Mermoden's Soul Crystal - Stage 7 -->
|
||||
<item id="46450" min="1" max="1" chance="0.0075" /> <!-- Kain's Soul Crystal - Stage 7 -->
|
||||
<!-- FIXME: Also drops herbs. -->
|
||||
<item id="8600" min="1" max="1" chance="10" /> <!-- Herb of Life -->
|
||||
<item id="8601" min="1" max="1" chance="8" /> <!-- Major Herb of Life -->
|
||||
<item id="8602" min="1" max="1" chance="2" /> <!-- Superior Herb of Life -->
|
||||
<item id="8603" min="1" max="1" chance="19.8" /> <!-- Herb of Mana -->
|
||||
<item id="8604" min="1" max="1" chance="9.9" /> <!-- Major Herb of Mana -->
|
||||
<item id="8605" min="1" max="1" chance="3.3" /> <!-- Superior Herb of Mana -->
|
||||
<item id="34849" min="1" max="1" chance="0.7" /> <!-- Mysterious Herb of Power -->
|
||||
<item id="34850" min="1" max="1" chance="0.7" /> <!-- Mysterious Herb of Magic -->
|
||||
<item id="13028" min="1" max="1" chance="0.1" /> <!-- Vitality Replenishing Herb -->
|
||||
</drop>
|
||||
<lucky>
|
||||
<item id="39629" min="3" max="3" chance="100" /> <!-- Fortune Pocket - Stage 1 -->
|
||||
</lucky>
|
||||
</dropLists>
|
||||
</npc>
|
||||
<npc id="25857" level="95" type="L2Monster" name="Corrupted Captain">
|
||||
<npc id="25857" level="103" type="L2Monster" name="Corrupted Captain" title="Guardian of the Altar">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<parameters>
|
||||
<param name="IsAggressive" value="1" />
|
||||
<skill name="Skill01_ID" id="14521" level="1" />
|
||||
<skill name="Skill02_ID" id="14194" level="1" />
|
||||
<skill name="Skill01_ID" id="16982" level="1" /> <!-- Devil Horns of Shield -->
|
||||
<skill name="Skill02_ID" id="16981" level="1" /> <!-- Fallen Execution -->
|
||||
<param name="Attack_BoostValue" value="144" />
|
||||
</parameters>
|
||||
<race>HUMANOID</race>
|
||||
<sex>MALE</sex>
|
||||
<acquire exp="49522881" sp="11885" />
|
||||
<acquire exp="38462527312" sp="38462505" />
|
||||
<mpReward value="53" type="DIFF" ticks="10" affects="PARTY" />
|
||||
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
|
||||
<vitals hp="560294" hpRegen="8.5" mp="22058" mpRegen="30" />
|
||||
<vitals hp="1705440" hpRegen="8.5" mp="33087" mpRegen="30" />
|
||||
<speed>
|
||||
<walk ground="30" />
|
||||
<run ground="120" />
|
||||
@@ -2380,10 +2482,12 @@
|
||||
<skillList>
|
||||
<skill id="5467" level="1" /> <!-- Strong against the dark elemental. -->
|
||||
<skill id="4416" level="6" /> <!-- Humanoids -->
|
||||
<skill id="14194" level="1" /> <!-- Range Stun -->
|
||||
<skill id="4415" level="3" /> <!-- One-handed Sword -->
|
||||
<skill id="14765" level="3" /> <!-- Blood Siphon Resistance -->
|
||||
<skill id="4045" level="1" /> <!-- Resist Full Magic Attack -->
|
||||
<skill id="16982" level="1" /> <!-- Devil Horns of Shield -->
|
||||
<skill id="16981" level="1" /> <!-- Fallen Execution -->
|
||||
<skill id="14194" level="1" /> <!-- Range Stun -->
|
||||
</skillList>
|
||||
<ai clanHelpRange="300" aggroRange="300" />
|
||||
<dropLists>
|
||||
@@ -2400,20 +2504,21 @@
|
||||
<height normal="45" />
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="25858" level="95" type="L2Monster" name="Corrupted High Priest">
|
||||
<npc id="25858" level="103" type="L2Monster" name="Corrupted High Priest" title="Guardian of the Altar">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<parameters>
|
||||
<param name="IsAggressive" value="1" />
|
||||
<skill name="Skill01_ID" id="14522" level="1" />
|
||||
<skill name="Skill02_ID" id="14084" level="6" />
|
||||
<skill name="Skill01_ID" id="16983" level="1" /> <!-- Embryo's Blessing -->
|
||||
<skill name="Skill02_ID" id="23707" level="4" /> <!-- Chaos Fire -->
|
||||
<skill name="Skill02_ID" id="16984" level="1" /> <!-- Blind Spark -->
|
||||
<param name="Attack_BoostValue" value="144" />
|
||||
</parameters>
|
||||
<race>HUMANOID</race>
|
||||
<sex>FEMALE</sex>
|
||||
<acquire exp="49522881" sp="11885" />
|
||||
<acquire exp="51283369715" sp="51283269" />
|
||||
<mpReward value="53" type="DIFF" ticks="10" affects="PARTY" />
|
||||
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
|
||||
<vitals hp="560294" hpRegen="8.5" mp="33087" mpRegen="30" />
|
||||
<vitals hp="1705440" hpRegen="8.5" mp="33087" mpRegen="30" />
|
||||
<speed>
|
||||
<walk ground="30" />
|
||||
<run ground="120" />
|
||||
@@ -2426,13 +2531,16 @@
|
||||
</attribute>
|
||||
<abnormalResist physical="10" magical="10" />
|
||||
</stats>
|
||||
<status attackable="false" undying="false" />
|
||||
<status attackable="false" undying="false" randomWalk="false" />
|
||||
<skillList>
|
||||
<skill id="5467" level="1" /> <!-- Strong against the dark elemental. -->
|
||||
<skill id="4416" level="6" /> <!-- Humanoids -->
|
||||
<skill id="4415" level="3" /> <!-- One-handed Sword -->
|
||||
<skill id="14765" level="3" /> <!-- Blood Siphon Resistance -->
|
||||
<skill id="4045" level="1" /> <!-- Resist Full Magic Attack -->
|
||||
<skill id="16983" level="1" /> <!-- Embryo's Blessing -->
|
||||
<skill id="23707" level="1" /> <!-- Chaos Fire -->
|
||||
<skill id="16984" level="1" /> <!-- Blind Spark -->
|
||||
</skillList>
|
||||
<ai clanHelpRange="300" aggroRange="300" />
|
||||
<dropLists>
|
||||
@@ -2837,7 +2945,7 @@
|
||||
<height normal="53" />
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="25866" level="94" type="L2Monster" name="Apherus">
|
||||
<npc id="25866" level="94" type="L2RaidBoss" name="Apherus">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<parameters>
|
||||
<skill name="Skill01_ID" id="14462" level="1" />
|
||||
|
@@ -31,6 +31,7 @@ Goddess of Destruction:
|
||||
-Kartia
|
||||
-Fortuna
|
||||
-Nursery
|
||||
-Altar of Shilen
|
||||
-Kimerian
|
||||
-Istina
|
||||
-Octavis
|
||||
|
@@ -1,4 +1,7 @@
|
||||
<html><head><body>Agent Georgio:<br>
|
||||
Sh... I'm currently on duty. If you don't have anything to say, please go away.<br>
|
||||
<html><body>Agent Georgio:<br>
|
||||
Hush! I'm on a mission.<br>
|
||||
The Kingdom's Royal Guards are investigating a report that a ritual is being held on the Altar of Shilen, which has been closed since Melisa and Isadora disappeared. I'd like to ask you to leave us, if you don't mind.<br>
|
||||
Or, if you want to go to the Altar of Shilen to stop the ritual, I can send you there. Just tell me.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest AltarOfShilen enterInstance">To the Altar of Shilen</Button>
|
||||
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
|
||||
</body></html>
|
281
L2J_Mobius_2.5_Underground/dist/game/data/instances/AltarOfShilen.xml
vendored
Normal file
281
L2J_Mobius_2.5_Underground/dist/game/data/instances/AltarOfShilen.xml
vendored
Normal file
@@ -0,0 +1,281 @@
|
||||
<instance id="194" maxWorlds="20" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/instance.xsd">
|
||||
<time duration="60" empty="1" />
|
||||
<locations>
|
||||
<enter type="RANDOM">
|
||||
<location x="179400" y="13683" z="-7396"/><!-- First Room -->
|
||||
</enter>
|
||||
<exit type="ORIGIN" />
|
||||
</locations>
|
||||
<parameters>
|
||||
<param name="boss1" value="25857" />
|
||||
<param name="boss2" value="25858" />
|
||||
</parameters>
|
||||
<conditions>
|
||||
<condition type="Party" showMessageAndHtml="true">
|
||||
<param name="html" value="condNoGroup.html" />
|
||||
</condition>
|
||||
<condition type="PartyLeader">
|
||||
<param name="html" value="condNoPartyLeader.html" />
|
||||
</condition>
|
||||
<condition type="GroupMin">
|
||||
<param name="html" value="condSmallGroup.html" />
|
||||
<param name="limit" value="5" />
|
||||
</condition>
|
||||
<condition type="GroupMax">
|
||||
<param name="limit" value="7" />
|
||||
</condition>
|
||||
<condition type="Level" showMessageAndHtml="true">
|
||||
<param name="html" value="condNoLevel.html" />
|
||||
<param name="min" value="101" />
|
||||
</condition>
|
||||
<condition type="Level" showMessageAndHtml="true">
|
||||
<param name="html" value="condNoLevel.html" />
|
||||
<param name="max" value="105" />
|
||||
</condition>
|
||||
<condition type="Distance" />
|
||||
<condition type="Reenter" />
|
||||
</conditions>
|
||||
<reenter apply="ON_FINISH">
|
||||
<reset day="MONDAY" hour="6" minute="30" />
|
||||
<reset day="TUESDAY" hour="6" minute="30" />
|
||||
<reset day="WEDNESDAY" hour="6" minute="30" />
|
||||
<reset day="THURSDAY" hour="6" minute="30" />
|
||||
<reset day="FRIDAY" hour="6" minute="30" />
|
||||
<reset day="SATURDAY" hour="6" minute="30" />
|
||||
<reset day="SUNDAY" hour="6" minute="30" />
|
||||
</reenter>
|
||||
<doorlist>
|
||||
<door id="25180001">
|
||||
<openStatus default="close" />
|
||||
</door>
|
||||
<door id="25180002">
|
||||
<openStatus default="close" />
|
||||
</door>
|
||||
<door id="25180003">
|
||||
<openStatus default="close" />
|
||||
</door>
|
||||
<door id="25180004">
|
||||
<openStatus default="close" />
|
||||
</door>
|
||||
<door id="25180005">
|
||||
<openStatus default="close" />
|
||||
</door>
|
||||
<door id="25180006">
|
||||
<openStatus default="close" />
|
||||
</door>
|
||||
<door id="25180007">
|
||||
<openStatus default="close" />
|
||||
</door>
|
||||
</doorlist>
|
||||
<spawnlist>
|
||||
<group name="general" spawnByDefault="false">
|
||||
<npc id="25856" x="177833" y="14852" z="-13688" heading="0"/> <!-- Isadora -->
|
||||
<npc id="25855" x="178432" y="14848" z="-13688" heading="0"/> <!-- Maliss -->
|
||||
<npc id="34331" x="179521" y="13610" z="-7392" heading="33344"/> <!-- Logart Van Dyke -->
|
||||
<npc id="34331" x="179543" y="13552" z="-9824" heading="32460"/> <!-- Logart Van Dyke -->
|
||||
<npc id="34331" x="179519" y="12797" z="-12768" heading="32712"/> <!-- Logart Van Dyke -->
|
||||
<npc id="34332" x="178149" y="16676" z="-13648" heading="16600"/> <!-- Dinford -->
|
||||
<npc id="19121" x="178150" y="13600" z="-8016" heading="13828"/> <!-- Altar of Sacrifice -->
|
||||
<npc id="19122" x="178150" y="13600" z="-10448" heading="16772"/> <!-- Altar of Sacrifice -->
|
||||
<npc id="19123" x="178150" y="12840" z="-13392" heading="44317"/> <!-- Altar of Sacrifice -->
|
||||
<npc id="19142" x="177584" y="14400" z="-8088" heading="0"/> <!-- Sacrificial Offering -->
|
||||
<npc id="19143" x="177864" y="14534" z="-8088" heading="0"/> <!-- Sacrificial Offering -->
|
||||
<npc id="19144" x="178149" y="14401" z="-8088" heading="0"/> <!-- Sacrificial Offering -->
|
||||
<npc id="19145" x="178439" y="14528" z="-8088" heading="0"/> <!-- Sacrificial Offering -->
|
||||
<npc id="19146" x="178713" y="14417" z="-8088" heading="0"/> <!-- Sacrificial Offering -->
|
||||
<npc id="19147" x="177589" y="14407" z="-10520" heading="0"/> <!-- Sacrificial Offering -->
|
||||
<npc id="19148" x="177863" y="14541" z="-10520" heading="0"/> <!-- Sacrificial Offering -->
|
||||
<npc id="19149" x="178153" y="14415" z="-10520" heading="0"/> <!-- Sacrificial Offering -->
|
||||
<npc id="19150" x="178442" y="14528" z="-10520" heading="0"/> <!-- Sacrificial Offering -->
|
||||
<npc id="19151" x="178712" y="14408" z="-10520" heading="0"/> <!-- Sacrificial Offering -->
|
||||
</group>
|
||||
<group name="first_floor" spawnByDefault="false">
|
||||
<!-- 1st floor 1st room -->
|
||||
<npc id="23142" x="181315" y="14009" z="-7616" heading="23913" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="182829" y="14851" z="-7616" heading="23465" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="181806" y="14543" z="-7608" heading="39123" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="181944" y="15457" z="-7616" heading="54183" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="180840" y="14674" z="-7616" heading="55476" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="181424" y="13863" z="-7616" heading="21874" /> <!-- Embryo Guard -->
|
||||
<npc id="23141" x="181541" y="14179" z="-7616" heading="23691" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="181614" y="14795" z="-7608" heading="37559" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="182055" y="15303" z="-7616" heading="55513" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="182229" y="15643" z="-7616" heading="55481" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="182417" y="14797" z="-7616" heading="21914" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="182521" y="14650" z="-7616" heading="24720" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="181076" y="14829" z="-7616" heading="55433" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="181181" y="14683" z="-7616" heading="55609" /> <!-- Embryo Fighter -->
|
||||
<npc id="23140" x="181649" y="14031" z="-7616" heading="22548" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="180953" y="14515" z="-7616" heading="55493" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="182713" y="15019" z="-7616" heading="22606" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="181871" y="14999" z="-7608" heading="39090" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="182342" y="15487" z="-7616" heading="55459" /> <!-- Embryo Watchman -->
|
||||
<npc id="23139" x="182070" y="14727" z="-7608" heading="39831" /> <!-- Embryo Researcher -->
|
||||
<npc id="23131" x="181834" y="14767" z="-7608" heading="37586" /> <!-- Embryo Executor Captain -->
|
||||
<!-- 1st floor 2st room -->
|
||||
<npc id="23142" x="182413" y="17524" z="-7864" heading="55494" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="181674" y="18255" z="-7872" heading="6330" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="183339" y="17361" z="-7872" heading="8091" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="182531" y="16784" z="-7872" heading="8091" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="182558" y="18468" z="-7872" heading="39871" /> <!-- Embryo Guard -->
|
||||
<npc id="23141" x="182495" y="17988" z="-7864" heading="56703" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="183142" y="17635" z="-7872" heading="39519" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="182485" y="17168" z="-7872" heading="7171" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="182226" y="18648" z="-7872" heading="38766" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="181910" y="17967" z="-7872" heading="5242" /> <!-- Embryo Fighter -->
|
||||
<npc id="23140" x="182688" y="16898" z="-7872" heading="7195" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="183187" y="17254" z="-7872" heading="38269" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="182224" y="17786" z="-7864" heading="55748" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="181548" y="18164" z="-7872" heading="7239" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="182357" y="18743" z="-7872" heading="38963" /> <!-- Embryo Watchman -->
|
||||
<npc id="23139" x="182421" y="18369" z="-7872" heading="39556" /> <!-- Embryo Researcher -->
|
||||
<npc id="23139" x="181772" y="17873" z="-7872" heading="7271" /> <!-- Embryo Researcher -->
|
||||
<npc id="23139" x="182338" y="17063" z="-7872" heading="6940" /> <!-- Embryo Researcher -->
|
||||
<npc id="23139" x="182991" y="17529" z="-7872" heading="39974" /> <!-- Embryo Researcher -->
|
||||
<npc id="23139" x="182687" y="17717" z="-7864" heading="55632" /> <!-- Embryo Researcher -->
|
||||
<npc id="23131" x="182453" y="17756" z="-7864" heading="55808" /> <!-- Embryo Executor Captain -->
|
||||
<!-- 1st floor 3st room -->
|
||||
<npc id="23142" x="179668" y="18331" z="-8128" heading="6204" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="178844" y="18342" z="-8136" heading="56681" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="179236" y="17838" z="-8136" heading="20051" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="179645" y="18913" z="-8136" heading="56524" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="180290" y="18601" z="-8136" heading="23360" /> <!-- Embryo Guard -->
|
||||
<npc id="23141" x="180009" y="18407" z="-8136" heading="23354" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="179922" y="19106" z="-8136" heading="55523" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="179405" y="18141" z="-8128" heading="6007" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="178487" y="18304" z="-8136" heading="56001" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="179061" y="17503" z="-8136" heading="21608" /> <!-- Embryo Fighter -->
|
||||
<npc id="23140" x="178743" y="18481" z="-8136" heading="54910" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="178956" y="17649" z="-8136" heading="23285" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="179473" y="18605" z="-8128" heading="7076" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="179818" y="19256" z="-8136" heading="56591" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="180394" y="18452" z="-8136" heading="24120" /> <!-- Embryo Watchman -->
|
||||
<npc id="23139" x="179539" y="19062" z="-8136" heading="55014" /> <!-- Embryo Researcher -->
|
||||
<npc id="23139" x="179205" y="18414" z="-8128" heading="6803" /> <!-- Embryo Researcher -->
|
||||
<npc id="23139" x="180118" y="18255" z="-8136" heading="23660" /> <!-- Embryo Researcher -->
|
||||
<npc id="23139" x="178594" y="18156" z="-8136" heading="56048" /> <!-- Embryo Researcher -->
|
||||
<npc id="23139" x="179337" y="17699" z="-8136" heading="22822" /> <!-- Embryo Researcher -->
|
||||
<npc id="23131" x="179442" y="18374" z="-8128" heading="4506" /> <!-- Embryo Executor Captain -->
|
||||
<!-- 1st floor 4st room -->
|
||||
<npc id="23141" x="177740" y="15229" z="-8312" heading="65530" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="178548" y="15228" z="-8312" heading="32481" /> <!-- Embryo Fighter -->
|
||||
<npc id="23142" x="178574" y="15774" z="-8312" heading="32849" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="177427" y="15227" z="-8312" heading="2497" /> <!-- Embryo Guard -->
|
||||
<npc id="23140" x="177708" y="15783" z="-8312" heading="1499" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="178827" y="15787" z="-8312" heading="13834" /> <!-- Embryo Watchman -->
|
||||
<npc id="23139" x="178846" y="15216" z="-8312" heading="32391" /> <!-- Embryo Researcher -->
|
||||
<npc id="23139" x="177445" y="15787" z="-8312" heading="669" /> <!-- Embryo Researcher -->
|
||||
<!-- 1st floor boss -->
|
||||
<npc id="25857" x="178146" y="15000" z="-8312" heading="18233" /> <!-- Corrupted Captain -->
|
||||
</group>
|
||||
<group name="second_floor" spawnByDefault="false">
|
||||
<!-- 2st floor 1st room -->
|
||||
<npc id="23129" x="181632" y="14245" z="-10048" heading="24446" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="181669" y="14792" z="-10040" heading="39262" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="182053" y="15304" z="-10048" heading="55811" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="182857" y="14866" z="-10048" heading="22442" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="181156" y="14912" z="-10048" heading="55993" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23127" x="181272" y="14754" z="-10048" heading="55845" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="182351" y="15523" z="-10048" heading="55330" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="181355" y="14048" z="-10048" heading="22899" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="182534" y="14638" z="-10048" heading="23741" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="181998" y="14734" z="-10040" heading="39347" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23128" x="181805" y="14600" z="-10040" heading="37848" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="181860" y="14928" z="-10040" heading="39680" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="182414" y="14801" z="-10048" heading="26424" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="182238" y="15682" z="-10048" heading="55327" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="180995" y="14557" z="-10048" heading="55965" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="181746" y="14095" z="-10048" heading="21944" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23126" x="181444" y="13882" z="-10048" heading="23910" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23126" x="180906" y="14732" z="-10048" heading="56442" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23126" x="182712" y="15019" z="-10048" heading="23218" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23126" x="181936" y="15470" z="-10048" heading="55180" /> <!-- Embryo Elite Escort -->
|
||||
<!-- 2st floor 2st room -->
|
||||
<npc id="23129" x="182665" y="16916" z="-10304" heading="5486" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="182205" y="18632" z="-10304" heading="38327" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="182417" y="18332" z="-10304" heading="38704" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="181702" y="18273" z="-10304" heading="6517" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="182501" y="16797" z="-10304" heading="6671" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="182991" y="17528" z="-10304" heading="39098" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="183160" y="17474" z="-10304" heading="39074" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23127" x="181917" y="17975" z="-10304" heading="6011" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="182578" y="18447" z="-10304" heading="40250" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="182384" y="18553" z="-10304" heading="40030" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="182517" y="16983" z="-10304" heading="6049" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="183176" y="17270" z="-10304" heading="41931" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23128" x="183153" y="17644" z="-10304" heading="40362" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="182327" y="17051" z="-10304" heading="6919" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="182360" y="18743" z="-10304" heading="38293" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="181540" y="18157" z="-10304" heading="6379" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23126" x="181755" y="17860" z="-10304" heading="4711" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23126" x="181747" y="18063" z="-10304" heading="6737" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23126" x="182486" y="17168" z="-10304" heading="5041" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23126" x="183333" y="17391" z="-10304" heading="38209" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23138" x="182409" y="18255" z="-10304" heading="30021"> <!-- Etina Bladesmen -->
|
||||
<parameters>
|
||||
<param name="SuperPointName" value="etina_bladesmen_1" />
|
||||
</parameters>
|
||||
</npc>
|
||||
<npc id="23138" x="182000" y="17922" z="-10304" heading="22511"> <!-- Etina Bladesmen -->
|
||||
<parameters>
|
||||
<param name="SuperPointName" value="etina_bladesmen_2" />
|
||||
</parameters>
|
||||
</npc>
|
||||
<!-- 2st floor 3st room -->
|
||||
<npc id="23130" x="179540" y="19060" z="-10568" heading="53859" /> <!-- Embryo Elite High Priest -->
|
||||
<npc id="23130" x="178546" y="18123" z="-10568" heading="55565" /> <!-- Embryo Elite High Priest -->
|
||||
<npc id="23130" x="178906" y="17620" z="-10568" heading="23026" /> <!-- Embryo Elite High Priest -->
|
||||
<npc id="23129" x="178437" y="18275" z="-10568" heading="54969" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="179025" y="17458" z="-10568" heading="22279" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="179274" y="18400" z="-10560" heading="7344" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="180125" y="18247" z="-10568" heading="23203" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23128" x="179414" y="18206" z="-10560" heading="5824" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="180010" y="18405" z="-10568" heading="22892" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="178761" y="18499" z="-10568" heading="54666" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="179857" y="19296" z="-10568" heading="54800" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23127" x="179601" y="18340" z="-10560" heading="6348" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="179345" y="17689" z="-10568" heading="22336" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="179646" y="18908" z="-10568" heading="53631" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="180335" y="18581" z="-10568" heading="22933" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23126" x="179974" y="19139" z="-10568" heading="57307" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23126" x="180427" y="18455" z="-10568" heading="25307" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23126" x="179466" y="18541" z="-10560" heading="6681" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23126" x="179229" y="17845" z="-10568" heading="22563" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23131" x="178871" y="18353" z="-10568" heading="57361" /> <!-- Embryo Executor Captain -->
|
||||
<npc id="23138" x="179050" y="18309" z="-10568" heading="38891" /> <!-- Etina Bladesmen -->
|
||||
<!-- 2st floor 4st room -->
|
||||
<npc id="23130" x="178536" y="15981" z="-10744" heading="31126" /> <!-- Embryo Elite High Priest -->
|
||||
<npc id="23126" x="178549" y="15688" z="-10744" heading="33033" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23130" x="178522" y="15390" z="-10744" heading="33219" /> <!-- Embryo Elite High Priest -->
|
||||
<npc id="23128" x="178993" y="15706" z="-10744" heading="32714" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="178735" y="15533" z="-10744" heading="33312" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23127" x="178728" y="15847" z="-10744" heading="33290" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="178978" y="15981" z="-10744" heading="32904" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23129" x="178998" y="15408" z="-10744" heading="33170" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23128" x="177722" y="15379" z="-10744" heading="217" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23127" x="177732" y="15672" z="-10744" heading="64457" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23130" x="177738" y="15981" z="-10744" heading="65477" /> <!-- Embryo Elite High Priest -->
|
||||
<npc id="23130" x="177499" y="15494" z="-10744" heading="64083" /> <!-- Embryo Elite High Priest -->
|
||||
<npc id="23129" x="177498" y="15843" z="-10744" heading="65509" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23128" x="177269" y="15981" z="-10744" heading="789" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23126" x="177261" y="15656" z="-10744" heading="64191" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23129" x="177267" y="15372" z="-10744" heading="1549" /> <!-- Embryo Elite Alchemist -->
|
||||
<!-- 2st floor boss -->
|
||||
<npc id="25858" x="178154" y="15149" z="-10744" heading="15626" /> <!-- Corrupted High Priest -->
|
||||
</group>
|
||||
<group name="thrid_floor" spawnByDefault="false">
|
||||
<npc id="8561" x="181547" y="14035" z="-12992" heading="0" /> <!-- invisible1 -->
|
||||
<npc id="8561" x="182615" y="14779" z="-12992" heading="0" /> <!-- invisible1 -->
|
||||
<npc id="8561" x="182122" y="15470" z="-12992" heading="0" /> <!-- invisible1 -->
|
||||
<npc id="8561" x="181071" y="14765" z="-12992" heading="0" /> <!-- invisible1 -->
|
||||
<npc id="8561" x="183207" y="17472" z="-13248" heading="0" /> <!-- invisible1 -->
|
||||
<npc id="8561" x="182485" y="17000" z="-13248" heading="0" /> <!-- invisible1 -->
|
||||
<npc id="8561" x="181721" y="18030" z="-13248" heading="0" /> <!-- invisible1 -->
|
||||
<npc id="8561" x="182408" y="18565" z="-13248" heading="0" /> <!-- invisible1 -->
|
||||
<npc id="8561" x="179690" y="19125" z="-13512" heading="0" /> <!-- invisible1 -->
|
||||
<npc id="8561" x="180233" y="18389" z="-13512" heading="0" /> <!-- invisible1 -->
|
||||
<npc id="8561" x="179107" y="17593" z="-13512" heading="0" /> <!-- invisible1 -->
|
||||
<npc id="8561" x="178607" y="18350" z="-13512" heading="0" /> <!-- invisible1 -->
|
||||
</group>
|
||||
</spawnlist>
|
||||
</instance>
|
4
L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AltarOfShilen/19121.html
vendored
Normal file
4
L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AltarOfShilen/19121.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>
|
||||
The altar stops humming, and you feel the reverberating power of dimensional.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest AltarOfShilen teleport1">Try to go trough the door.</Button>
|
||||
</body></html>
|
4
L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AltarOfShilen/19122.html
vendored
Normal file
4
L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AltarOfShilen/19122.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>
|
||||
The altar stops humming, and you feel the reverberating power of dimensional.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest AltarOfShilen teleport2">Try to go trough the door.</Button>
|
||||
</body></html>
|
5
L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AltarOfShilen/34331-01.html
vendored
Normal file
5
L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AltarOfShilen/34331-01.html
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Royal Guard Captain Logart Van Dyke:<br>
|
||||
Who is it? Ah, you're the adventurer who volunteered to stop the ritual on the Altar of Shilen. You must be capable enough to stop it. Otherwise, you couldn't come this far. Okay, I'll open the door for you.<br>
|
||||
Don't lower yourb guard once inside.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest AltarOfShilen open_door">Open the door to the 2nd floor</Button>
|
||||
</body></html>
|
7
L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AltarOfShilen/34331-02.html
vendored
Normal file
7
L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AltarOfShilen/34331-02.html
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<html><body>Royal Guard Captain Logart Van Dyke:<br>
|
||||
Who is it? Ah, it's you! You've come this far!<br>
|
||||
The last altar is before you.<br>
|
||||
After Embryos invaded the Keucereus Alliance Base, the existence of the Messiah Castle was revealed. Melisa and Isadora, the twin sisters who had long disappeared, returned and are threatening us. If we fail to stop the ritual, Embryos will invade Aden Continent in no time. We must stop them at all cost.<br>
|
||||
My man Dinford will be waiting for you at the entrance to the last altar. Go to find him.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest AltarOfShilen open_door">Open the door to the 3nd floor</Button>
|
||||
</body></html>
|
5
L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AltarOfShilen/34331.html
vendored
Normal file
5
L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AltarOfShilen/34331.html
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Royal Guard Captain Logart Van Dyke:<br>
|
||||
How did you get in here? The blockade was only recently lifted, and this area is still very dangerous. It is under the control of the Kingdom's Royal Guard.<br>
|
||||
It is suspected that Embryos are preparing somewhere in this area to invade the Aden Continent. The Kingdom's Royal Guard is doing its best to stop them. are you here to stop the Embryo's ritual on the Altar of Shilen? if so. I'll gladly open open this door. Be careful. Only danger awaits you.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest AltarOfShilen open_door">Open the door to the 1st floor</Button>
|
||||
</body></html>
|
6
L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AltarOfShilen/34332.html
vendored
Normal file
6
L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AltarOfShilen/34332.html
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html>Quartermaster Dinford<body>
|
||||
Who is it? Ah, you've come to stop the ritual the ritual on the Altar of Shilen!<br>
|
||||
If so, I'll open the door to the altar.<br>
|
||||
Please stop the threat of the Embrio.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest AltarOfShilen final_door">Open the door.</Button>
|
||||
</body></html>
|
694
L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AltarOfShilen/AltarOfShilen.java
vendored
Normal file
694
L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AltarOfShilen/AltarOfShilen.java
vendored
Normal file
@@ -0,0 +1,694 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program 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.
|
||||
*
|
||||
* This program 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 instances.AltarOfShilen;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.Future;
|
||||
|
||||
import com.l2jmobius.commons.concurrent.ThreadPool;
|
||||
import com.l2jmobius.gameserver.enums.ChatType;
|
||||
import com.l2jmobius.gameserver.instancemanager.InstanceManager;
|
||||
import com.l2jmobius.gameserver.model.L2World;
|
||||
import com.l2jmobius.gameserver.model.Location;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Npc;
|
||||
import com.l2jmobius.gameserver.model.actor.instance.L2MonsterInstance;
|
||||
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||
import com.l2jmobius.gameserver.model.instancezone.Instance;
|
||||
import com.l2jmobius.gameserver.network.NpcStringId;
|
||||
import com.l2jmobius.gameserver.network.serverpackets.Earthquake;
|
||||
import com.l2jmobius.gameserver.network.serverpackets.ExSendUIEvent;
|
||||
import com.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
|
||||
import com.l2jmobius.gameserver.network.serverpackets.NpcSay;
|
||||
|
||||
import instances.AbstractInstance;
|
||||
|
||||
/**
|
||||
* Instance Altar of Shilen
|
||||
* @URL https://l2wiki.com/Altar_of_Shilen
|
||||
* @author Gigi
|
||||
* @date 2018-04-13 - [23:27:28]
|
||||
*/
|
||||
public class AltarOfShilen extends AbstractInstance
|
||||
{
|
||||
// NPCs
|
||||
private static final int LOGART_VAN_DYKE = 34331;
|
||||
private static final int DINFORD = 34332;
|
||||
private static final int ISADORA = 25856;
|
||||
private static final int MELISSA0 = 25855;
|
||||
private static final int MELISSA = 25876; // She dropping items
|
||||
private static final int EXECUTOR_CAPTAIN = 23131;
|
||||
private static final int ETINA_BLADESMAN = 23138;
|
||||
private static final int CORRUPTED_CAPTAIN = 25857;
|
||||
private static final int CORRUPTED_HIGH_PRIEST = 25858;
|
||||
private static final int RITUAL_ALTAR0 = 19121;
|
||||
private static final int RITUAL_ALTAR1 = 19122;
|
||||
private static final int SHILLIEN_ALTAR = 19123;
|
||||
private static final int INVISIBLE = 8561;
|
||||
private static final int ETINA_GOSPEL = 23132;
|
||||
private static final int ETINA_PRIEST = 23133;
|
||||
private static final int ETINA_PROTECTORS = 23134;
|
||||
private static final int ETINA_PUNISHERS = 23135;
|
||||
private static final int ETINA_COMMINATION = 23136;
|
||||
private static final int ETINA_DARKMONAGERS = 23137;
|
||||
private static final int ELITE_ESCORT = 23126;
|
||||
private static final int ELITE_CHASER = 23127;
|
||||
private static final int ELITE_WARRIOR = 23128;
|
||||
private static final int ELITE_ALCHEMIST = 23129;
|
||||
private static final int ELITE_PRIEST = 23130;
|
||||
private static final int EMBRYO_RESERCHER = 23139;
|
||||
private static final int EMBRYO_WATCHMAN = 23140;
|
||||
private static final int EMBRYO_FIGHTER = 23141;
|
||||
private static final int EMBRYO_GUARD = 23142;
|
||||
// Skills
|
||||
static final SkillHolder PROTECTED_ALTAR = new SkillHolder(14496, 1);
|
||||
// Misc
|
||||
private static final int TEMPLATE_ID = 194;
|
||||
private static final int ALTAR_TIME = 180;
|
||||
//@formatter:off
|
||||
private static final int[] DOORS = { 25180001, 25180002, 25180003, 25180004, 25180005, 25180006, 25180007 };
|
||||
//@formatter:on
|
||||
private static final NpcStringId[] SHOUT_MSG =
|
||||
{
|
||||
NpcStringId.I_NEED_HELP,
|
||||
NpcStringId.FOCUS_FIRE_ACCORDING_TO_MY_ORCHESTRATION,
|
||||
NpcStringId.I_NEED_HEAL,
|
||||
NpcStringId.I_M_GOING_TO_BACK_OFF_FOR_A_BIT,
|
||||
NpcStringId.I_WILL_ATTACK_THE_ENEMY_S_HEALER,
|
||||
NpcStringId.STOP_ENEMIES_HEALING,
|
||||
NpcStringId.ATTACK_WEAKENED_ENEMY,
|
||||
NpcStringId.COME_AT_ME,
|
||||
NpcStringId.SWITCH_TO_FAST_SHOOTING_MODE,
|
||||
NpcStringId.SWITCH_TO_FAST_CASTING_MODE,
|
||||
NpcStringId.BLINK_ATTACK,
|
||||
NpcStringId.ONLY_DEATH_AWAITS_FOR_THE_WEAK,
|
||||
};
|
||||
static final Location MELISSA_SPAWN = new Location(178146, 14356, -13688);
|
||||
private static final Location SECOND_FLOOR = new Location(179357, 13664, -9828);
|
||||
private static final Location THIRD_FLOOR = new Location(179354, 12922, -12776);
|
||||
|
||||
final List<L2PcInstance> playersInside = new ArrayList<>();
|
||||
final Map<Integer, Integer> killedMonsters = new ConcurrentHashMap<>();
|
||||
static List<L2Npc> firstFloorVictims = new ArrayList<>();
|
||||
public static Future<?> timer;
|
||||
public L2Npc altar;
|
||||
|
||||
public AltarOfShilen()
|
||||
{
|
||||
super(TEMPLATE_ID);
|
||||
addInstanceCreatedId(TEMPLATE_ID);
|
||||
addFirstTalkId(LOGART_VAN_DYKE, RITUAL_ALTAR0, RITUAL_ALTAR1, DINFORD);
|
||||
addSpawnId(CORRUPTED_CAPTAIN, CORRUPTED_HIGH_PRIEST, INVISIBLE, SHILLIEN_ALTAR);
|
||||
addAttackId(ETINA_GOSPEL, ETINA_PRIEST, ETINA_PROTECTORS, ETINA_PUNISHERS, ETINA_COMMINATION, ETINA_DARKMONAGERS, ELITE_ESCORT, ELITE_CHASER, ELITE_WARRIOR, ELITE_ALCHEMIST, ELITE_PRIEST, EMBRYO_RESERCHER, EMBRYO_WATCHMAN, EMBRYO_FIGHTER, EMBRYO_GUARD);
|
||||
addKillId(EXECUTOR_CAPTAIN, CORRUPTED_CAPTAIN, ETINA_BLADESMAN, CORRUPTED_HIGH_PRIEST, ETINA_GOSPEL, ETINA_PROTECTORS, ETINA_PUNISHERS, MELISSA0, MELISSA, ISADORA);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onInstanceCreated(Instance instance, L2PcInstance player)
|
||||
{
|
||||
instance.spawnGroup("general");
|
||||
instance.spawnGroup("first_floor");
|
||||
instance.setStatus(1);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
final Instance world = npc.getInstanceWorld();
|
||||
if (event.equals("enterInstance"))
|
||||
{
|
||||
enterInstance(player, npc, TEMPLATE_ID);
|
||||
if (player.isGM())
|
||||
{
|
||||
playersInside.add(player);
|
||||
}
|
||||
if (player.getParty() != null)
|
||||
{
|
||||
for (L2PcInstance partyMember : player.getParty().getMembers())
|
||||
{
|
||||
playersInside.add(partyMember);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (event.equals("check_player"))
|
||||
{
|
||||
L2World.getInstance().forEachVisibleObjectInRange(npc, L2PcInstance.class, 400, p ->
|
||||
{
|
||||
if ((p != null) && p.isPlayer() && !p.isDead())
|
||||
{
|
||||
npc.setScriptValue(1);
|
||||
final L2Npc gospel = addSpawn(ETINA_GOSPEL, npc, true, 0, false, world.getId());
|
||||
final L2Npc priest = addSpawn(ETINA_PRIEST, npc, true, 0, false, world.getId());
|
||||
final L2Npc protectors = addSpawn(ETINA_PROTECTORS, npc, true, 0, false, world.getId());
|
||||
final L2Npc punishers = addSpawn(ETINA_PUNISHERS, npc, true, 0, false, world.getId());
|
||||
final L2Npc commination = addSpawn(ETINA_COMMINATION, npc, true, 0, false, world.getId());
|
||||
final L2Npc darkmonagers = addSpawn(ETINA_DARKMONAGERS, npc, true, 0, false, world.getId());
|
||||
addAttackPlayerDesire(gospel, p);
|
||||
addAttackPlayerDesire(priest, p);
|
||||
addAttackPlayerDesire(protectors, p);
|
||||
addAttackPlayerDesire(punishers, p);
|
||||
addAttackPlayerDesire(commination, p);
|
||||
addAttackPlayerDesire(darkmonagers, p);
|
||||
}
|
||||
});
|
||||
}
|
||||
if (isInInstance(world))
|
||||
{
|
||||
switch (npc.getId())
|
||||
{
|
||||
case LOGART_VAN_DYKE:
|
||||
{
|
||||
if (event.equals("open_door"))
|
||||
{
|
||||
if (world.getStatus() == 1)
|
||||
{
|
||||
if (world.getDoor(DOORS[0]) != null)
|
||||
{
|
||||
world.getDoor(DOORS[0]).openMe();
|
||||
}
|
||||
world.setStatus(2);
|
||||
onStatusChanged(world);
|
||||
break;
|
||||
}
|
||||
else if (world.getStatus() == 3)
|
||||
{
|
||||
if (world.getDoor(DOORS[1]) != null)
|
||||
{
|
||||
world.getDoor(DOORS[1]).openMe();
|
||||
}
|
||||
world.setStatus(4);
|
||||
onStatusChanged(world);
|
||||
break;
|
||||
}
|
||||
else if (world.getStatus() == 5)
|
||||
{
|
||||
if (world.getDoor(DOORS[2]) != null)
|
||||
{
|
||||
world.getDoor(DOORS[2]).openMe();
|
||||
}
|
||||
world.setStatus(6);
|
||||
onStatusChanged(world);
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case RITUAL_ALTAR0:
|
||||
{
|
||||
if ((world.getStatus() == 3) && event.equals("teleport1"))
|
||||
{
|
||||
L2World.getInstance().forEachVisibleObjectInRange(npc, L2PcInstance.class, 1000, p ->
|
||||
{
|
||||
if ((p != null) && p.isPlayable() && !p.isDead())
|
||||
{
|
||||
p.teleToLocation(SECOND_FLOOR, world.getTemplateId());
|
||||
}
|
||||
world.spawnGroup("second_floor");
|
||||
});
|
||||
}
|
||||
break;
|
||||
}
|
||||
case RITUAL_ALTAR1:
|
||||
{
|
||||
if ((world.getStatus() == 5) && event.equals("teleport2"))
|
||||
{
|
||||
L2World.getInstance().forEachVisibleObjectInRange(npc, L2PcInstance.class, 1000, p ->
|
||||
{
|
||||
if ((p != null) && p.isPlayable() && !p.isDead())
|
||||
{
|
||||
p.teleToLocation(THIRD_FLOOR, world.getTemplateId());
|
||||
}
|
||||
world.spawnGroup("thrid_floor");
|
||||
});
|
||||
}
|
||||
break;
|
||||
}
|
||||
case DINFORD:
|
||||
{
|
||||
if ((world.getStatus() == 6) && event.equals("final_door"))
|
||||
{
|
||||
if (!world.getDoor(DOORS[6]).isOpen())
|
||||
{
|
||||
world.getDoor(DOORS[6]).openMe();
|
||||
}
|
||||
world.setStatus(7);
|
||||
onStatusChanged(world);
|
||||
npc.deleteMe();
|
||||
cancelQuestTimers("check_player");
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return super.onAdvEvent(event, npc, player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAttack(L2Npc npc, L2PcInstance attacker, int damage, boolean isSummon)
|
||||
{
|
||||
if (npc.getInstanceWorld() != null)
|
||||
{
|
||||
if (getRandom(30) < 3)
|
||||
{
|
||||
npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), SHOUT_MSG[getRandom(SHOUT_MSG.length)]));
|
||||
}
|
||||
}
|
||||
return super.onAttack(npc, attacker, damage, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
|
||||
{
|
||||
final Instance world = npc.getInstanceWorld();
|
||||
if (world != null)
|
||||
{
|
||||
int npcId = npc.getId();
|
||||
if (!killedMonsters.containsKey(npcId))
|
||||
{
|
||||
killedMonsters.put(npcId, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
killedMonsters.put(npcId, killedMonsters.get(npcId) + 1);
|
||||
}
|
||||
// 1st Floor
|
||||
if (world.getStatus() == 2)
|
||||
{
|
||||
if (killedMonsters.containsKey(EXECUTOR_CAPTAIN) && (killedMonsters.get(EXECUTOR_CAPTAIN) >= 3))
|
||||
{
|
||||
final int boos1 = world.getTemplateParameters().getInt("boss1");
|
||||
final L2Npc captain = world.getNpc(boos1);
|
||||
if (captain != null)
|
||||
{
|
||||
captain.setIsInvul(false);
|
||||
}
|
||||
}
|
||||
if (killedMonsters.containsKey(CORRUPTED_CAPTAIN) && (killedMonsters.get(CORRUPTED_CAPTAIN) >= 1))
|
||||
{
|
||||
for (L2PcInstance player : playersInside)
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage("You can move to the next floor through the Altar of Sacrifice.", ExShowScreenMessage.MIDDLE_CENTER, 5000));
|
||||
}
|
||||
world.setStatus(3);
|
||||
killedMonsters.clear();
|
||||
onStatusChanged(world);
|
||||
}
|
||||
}
|
||||
// 2st Floor
|
||||
else if (world.getStatus() == 4)
|
||||
{
|
||||
if (killedMonsters.containsKey(ETINA_BLADESMAN) && (killedMonsters.get(ETINA_BLADESMAN) >= 3))
|
||||
{
|
||||
final int boos2 = world.getTemplateParameters().getInt("boss2");
|
||||
final L2Npc priest = world.getNpc(boos2);
|
||||
if (priest != null)
|
||||
{
|
||||
priest.setIsInvul(false);
|
||||
}
|
||||
}
|
||||
if (killedMonsters.containsKey(CORRUPTED_HIGH_PRIEST) && (killedMonsters.get(CORRUPTED_HIGH_PRIEST) >= 1))
|
||||
{
|
||||
for (L2PcInstance player : playersInside)
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage("You can move to the next floor through the Altar of Sacrifice.", ExShowScreenMessage.MIDDLE_CENTER, 5000));
|
||||
}
|
||||
world.setStatus(5);
|
||||
killedMonsters.clear();
|
||||
onStatusChanged(world);
|
||||
|
||||
}
|
||||
}
|
||||
// 3st Floor
|
||||
else if (world.getStatus() == 6)
|
||||
{
|
||||
switch (npc.getId())
|
||||
{
|
||||
case ETINA_GOSPEL:
|
||||
{
|
||||
world.getDoor(DOORS[3]).openMe();
|
||||
ThreadPool.schedule(() -> world.getDoor(DOORS[3]).closeMe(), 5000);
|
||||
break;
|
||||
}
|
||||
case ETINA_PROTECTORS:
|
||||
{
|
||||
world.getDoor(DOORS[4]).openMe();
|
||||
ThreadPool.schedule(() -> world.getDoor(DOORS[4]).closeMe(), 5000);
|
||||
break;
|
||||
}
|
||||
case ETINA_PUNISHERS:
|
||||
{
|
||||
world.getDoor(DOORS[5]).openMe();
|
||||
ThreadPool.schedule(() -> world.getDoor(DOORS[5]).closeMe(), 5000);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (world.getStatus() == 8)
|
||||
{
|
||||
if (killedMonsters.containsKey(MELISSA) && (killedMonsters.get(MELISSA) == 1))
|
||||
{
|
||||
for (L2PcInstance player : playersInside)
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage(NpcStringId.ALTAR_OF_SHILEN_HAS_BEEN_DESTROYED_YOU_VE_WON, ExShowScreenMessage.TOP_CENTER, 5000, true));
|
||||
}
|
||||
playersInside.clear();
|
||||
killedMonsters.clear();
|
||||
world.finishInstance(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onSpawn(L2Npc npc)
|
||||
{
|
||||
if (npc.getInstanceWorld() != null)
|
||||
{
|
||||
switch (npc.getId())
|
||||
{
|
||||
case CORRUPTED_CAPTAIN:
|
||||
case CORRUPTED_HIGH_PRIEST:
|
||||
{
|
||||
npc.setIsInvul(true);
|
||||
break;
|
||||
}
|
||||
case INVISIBLE:
|
||||
{
|
||||
if (npc.isScriptValue(0))
|
||||
{
|
||||
startQuestTimer("check_player", 2000, npc, null, true);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case SHILLIEN_ALTAR:
|
||||
{
|
||||
altar = npc;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return super.onSpawn(npc);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onFirstTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
final Instance world = npc.getInstanceWorld();
|
||||
String htmltext = null;
|
||||
if (isInInstance(world))
|
||||
{
|
||||
switch (npc.getId())
|
||||
{
|
||||
case LOGART_VAN_DYKE:
|
||||
{
|
||||
if ((world.getStatus() > 0) && (world.getStatus() < 3))
|
||||
{
|
||||
return "34331.html";
|
||||
}
|
||||
else if ((world.getStatus() >= 3) && (world.getStatus() < 5))
|
||||
{
|
||||
return "34331-01.html";
|
||||
}
|
||||
else if (world.getStatus() >= 5)
|
||||
{
|
||||
return "34331-02.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case RITUAL_ALTAR0:
|
||||
{
|
||||
if (world.getStatus() >= 3)
|
||||
{
|
||||
return "19121.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case RITUAL_ALTAR1:
|
||||
{
|
||||
if (world.getStatus() >= 5)
|
||||
{
|
||||
return "19122.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case DINFORD:
|
||||
{
|
||||
if (world.getStatus() >= 5)
|
||||
{
|
||||
return "34332.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
public static class VictimDefeatTask implements Runnable
|
||||
{
|
||||
private final Instance _world;
|
||||
private int _victims;
|
||||
private final int _initialTime;
|
||||
private int _time;
|
||||
|
||||
VictimDefeatTask(int victims, int time, Instance world)
|
||||
{
|
||||
_world = world;
|
||||
_victims = victims;
|
||||
_initialTime = time;
|
||||
_time = time;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run()
|
||||
{
|
||||
for (L2PcInstance player : _world.getPlayers())
|
||||
{
|
||||
player.sendPacket(new ExSendUIEvent(player, ExSendUIEvent.TYPE_GP_TIMER, (_time--), 0, NpcStringId.SACRIFICE_LEFT_S1, new String[]
|
||||
{
|
||||
String.valueOf(_victims)
|
||||
}));
|
||||
}
|
||||
if (_time <= 0)
|
||||
{
|
||||
_time = _initialTime;
|
||||
--_victims;
|
||||
for (L2PcInstance player : _world.getPlayers())
|
||||
{
|
||||
player.sendPacket(new Earthquake(player.getX(), player.getY(), player.getZ(), 20, 5));
|
||||
player.sendPacket(new ExShowScreenMessage(NpcStringId.SACRIFICE_HAS_BEEN_KILLED_SACRIFICE_LEFT_S1, ExShowScreenMessage.MIDDLE_CENTER, 3000, String.valueOf(_victims)));
|
||||
}
|
||||
}
|
||||
if ((_world.getStatus() == 2) && !firstFloorVictims.isEmpty())
|
||||
{
|
||||
firstFloorVictims.get(0).deleteMe();
|
||||
firstFloorVictims.remove(0);
|
||||
}
|
||||
if ((_victims == 1) && (_world.getStatus() == 2))
|
||||
{
|
||||
for (L2PcInstance player : _world.getPlayers())
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage("4 lives were sacrificed and the Blessing of Blood is bestowed upon the Corrupted Captain.", ExShowScreenMessage.MIDDLE_CENTER, 10000));
|
||||
}
|
||||
}
|
||||
if ((_victims == 1) && (_world.getStatus() == 4))
|
||||
{
|
||||
for (L2PcInstance player : _world.getPlayers())
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage("4 lives were sacrificed and the Blessing of Blood is bestowed upon the Corrupted High Priest.", ExShowScreenMessage.MIDDLE_CENTER, 10000));
|
||||
}
|
||||
}
|
||||
if (_victims <= 0)
|
||||
{
|
||||
ThreadPool.schedule(() ->
|
||||
{
|
||||
for (L2PcInstance player : _world.getPlayers())
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage("All offerings were sacrificed and the Blessing of Blood is bestowed upon the Embryo Colony in that floor.", ExShowScreenMessage.MIDDLE_CENTER, 3000));
|
||||
}
|
||||
if (timer != null)
|
||||
{
|
||||
timer.cancel(true);
|
||||
timer = null;
|
||||
}
|
||||
_world.finishInstance(1);
|
||||
}, 3000);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void onStatusChanged(final Instance world)
|
||||
{
|
||||
final Instance instance = InstanceManager.getInstance().getInstance(world.getId());
|
||||
switch (instance.getStatus())
|
||||
{
|
||||
case 1:
|
||||
{
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
if (timer != null)
|
||||
{
|
||||
timer.cancel(true);
|
||||
}
|
||||
for (L2PcInstance player : playersInside)
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage(NpcStringId.YOU_MUST_STOP_THE_ALTAR_BEFORE_EVERYTHING_IS_SACRIFICED, ExShowScreenMessage.MIDDLE_CENTER, 6000));
|
||||
}
|
||||
timer = ThreadPool.scheduleAtFixedRate(new VictimDefeatTask(5, ALTAR_TIME, world), 0, 1000);
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
{
|
||||
if (timer != null)
|
||||
{
|
||||
timer.cancel(true);
|
||||
timer = null;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 4:
|
||||
{
|
||||
if (timer != null)
|
||||
{
|
||||
timer.cancel(true);
|
||||
}
|
||||
for (L2PcInstance player : playersInside)
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage(NpcStringId.YOU_MUST_STOP_THE_ALTAR_BEFORE_EVERYTHING_IS_SACRIFICED, ExShowScreenMessage.MIDDLE_CENTER, 6000));
|
||||
}
|
||||
timer = ThreadPool.scheduleAtFixedRate(new VictimDefeatTask(5, ALTAR_TIME, world), 0, 1000);
|
||||
break;
|
||||
}
|
||||
case 5:
|
||||
case 6:
|
||||
{
|
||||
if (timer != null)
|
||||
{
|
||||
timer.cancel(true);
|
||||
timer = null;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 7:
|
||||
{
|
||||
ThreadPool.schedule(() -> timer = ThreadPool.scheduleAtFixedRate(new Runnable()
|
||||
{
|
||||
private int _time = ALTAR_TIME;
|
||||
|
||||
@Override
|
||||
public void run()
|
||||
{
|
||||
if (_time <= 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
boolean defeated = false;
|
||||
if (killedMonsters.containsKey(MELISSA0) && (killedMonsters.get(MELISSA0) == 1) && killedMonsters.containsKey(ISADORA) && (killedMonsters.get(ISADORA) == 1))
|
||||
{
|
||||
defeated = true;
|
||||
for (L2PcInstance player : playersInside)
|
||||
{
|
||||
player.sendPacket(new ExSendUIEvent(player, ExSendUIEvent.TYPE_NORNIL, (_time--), 0, 0, 0, 0, 2518008));
|
||||
player.sendPacket(new ExSendUIEvent(player, 0x01, 0, 0, 0, 0, 0, 2518008));
|
||||
player.sendPacket(new ExShowScreenMessage(NpcStringId.ALTAR_HAS_STOPPED, ExShowScreenMessage.MIDDLE_CENTER, 5000));
|
||||
addSpawn(MELISSA, MELISSA_SPAWN.getX(), MELISSA_SPAWN.getY(), MELISSA_SPAWN.getZ(), 0, false, 0, true, world.getId());
|
||||
if (timer != null)
|
||||
{
|
||||
timer.cancel(true);
|
||||
timer = null;
|
||||
}
|
||||
altar.deleteMe();
|
||||
world.setStatus(8);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (L2PcInstance player : world.getPlayers())
|
||||
{
|
||||
if (_time == ALTAR_TIME)
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage(NpcStringId.ALTAR_OF_SHILEN_IS_STARTING_MUST_FOCUS_FIRE_THE_ALTAR, ExShowScreenMessage.MIDDLE_CENTER, 5000));
|
||||
}
|
||||
player.sendPacket(new ExSendUIEvent(player, ExSendUIEvent.TYPE_NORNIL, (_time--), 0, 0, 0, 0, 2518008));
|
||||
}
|
||||
}
|
||||
|
||||
if (!defeated && (_time == 9))
|
||||
{
|
||||
for (L2PcInstance player : playersInside)
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage("The Altar of Shilen will become activated in 10 seconds.", ExShowScreenMessage.MIDDLE_CENTER, 5000));
|
||||
}
|
||||
}
|
||||
|
||||
if (!defeated && (_time == 4))
|
||||
{
|
||||
for (L2PcInstance player : playersInside)
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage("The Altar of Shilen will become activated in 5 seconds.", ExShowScreenMessage.MIDDLE_CENTER, 5000));
|
||||
}
|
||||
}
|
||||
|
||||
if (!defeated && (_time <= 0))
|
||||
{
|
||||
for (L2PcInstance player : playersInside)
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage(NpcStringId.FOCUS_FIRE_THE_ALTAR_TO_STOP_BLESSING_OF_SHILEN, ExShowScreenMessage.MIDDLE_CENTER, 5000));
|
||||
}
|
||||
|
||||
if (isInInstance(world))
|
||||
{
|
||||
L2World.getInstance().forEachVisibleObjectInRange(altar, L2MonsterInstance.class, 8000, boss ->
|
||||
{
|
||||
if ((boss != null) && !boss.isDead())
|
||||
{
|
||||
altar.doCast(PROTECTED_ALTAR.getSkill());
|
||||
boss.setCurrentHp(boss.getCurrentHp() + (boss.getMaxHp() / 2));
|
||||
for (L2PcInstance player : playersInside)
|
||||
{
|
||||
player.sendPacket(new Earthquake(player.getX(), player.getY(), player.getZ(), 30, 5));
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
if ((_time <= 0) && world.isStatus(7))
|
||||
{
|
||||
ThreadPool.schedule(() ->
|
||||
{
|
||||
_time = ALTAR_TIME;
|
||||
}, 15000);
|
||||
}
|
||||
}
|
||||
}, 0, 1000), 5000);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new AltarOfShilen();
|
||||
}
|
||||
}
|
5
L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AltarOfShilen/condNoGroup.html
vendored
Normal file
5
L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AltarOfShilen/condNoGroup.html
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Agent Georgio:<br>
|
||||
The Altar of Shilen is extremely dangerous.<br>
|
||||
You're trying to go there alone. You may be either very confident or reckless.<br>
|
||||
To let you go is to send you to your death. If you want to go to the Altar of Shilen and stop the ritual, please gather allies and return.
|
||||
</body></html>
|
3
L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AltarOfShilen/condNoLevel.html
vendored
Normal file
3
L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AltarOfShilen/condNoLevel.html
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Agent Georgio:<br>
|
||||
(A party members level must be 101 - 105 Lvl to challenge Altar of Shilen.)
|
||||
</body></html>
|
@@ -0,0 +1,3 @@
|
||||
<html><body>Agent Georgio:<br>
|
||||
Only a party leader may enter the altar of Shilen
|
||||
</body></html>
|
@@ -0,0 +1,3 @@
|
||||
<html><body>Agent Georgio:<br>
|
||||
You are too weak. Gather more people.
|
||||
</body></html>
|
@@ -812,7 +812,7 @@
|
||||
<height normal="0.1" />
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="19121" level="95" type="L2Monster" name="Altar of Sacrifice">
|
||||
<npc id="19121" level="95" type="L2Npc" name="Altar of Sacrifice" >
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>CONSTRUCT</race>
|
||||
<sex>MALE</sex>
|
||||
@@ -839,7 +839,7 @@
|
||||
<height normal="22.5" />
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="19122" level="95" type="L2Monster" name="Altar of Sacrifice">
|
||||
<npc id="19122" level="95" type="L2Npc" name="Altar of Sacrifice" >
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>CONSTRUCT</race>
|
||||
<sex>MALE</sex>
|
||||
@@ -866,7 +866,7 @@
|
||||
<height normal="22.5" />
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="19123" level="95" type="L2Monster" name="Altar of Shilen">
|
||||
<npc id="19123" level="95" type="L2Npc" name="Altar of Shilen" >
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>CONSTRUCT</race>
|
||||
<sex>MALE</sex>
|
||||
|
@@ -2349,19 +2349,19 @@
|
||||
<height normal="60" />
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="25856" level="96" type="L2RaidBoss" name="Isadora" title="Great Magus of Greed">
|
||||
<npc id="25856" level="104" type="L2RaidBoss" name="Isadora" title="Great Magus of Greed">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<parameters>
|
||||
<param name="IsAggressive" value="1" />
|
||||
<skill name="Skill02_ID" id="14519" level="1" />
|
||||
<skill name="Skill03_ID" id="14520" level="1" />
|
||||
<skill name="Skill01_ID" id="23707" level="4" />
|
||||
<skill name="Skill02_ID" id="16979" level="1" />
|
||||
<param name="Attack_BoostValue" value="146" />
|
||||
</parameters>
|
||||
<race>HUMANOID</race>
|
||||
<sex>FEMALE</sex>
|
||||
<mpReward value="53" type="DIFF" ticks="10" affects="PARTY" />
|
||||
<stats str="164" int="188" dex="48" wit="71" con="111" men="149">
|
||||
<vitals hp="530201" hpRegen="8.5" mp="2242" mpRegen="30" />
|
||||
<vitals hp="2081767" hpRegen="8.5" mp="33087" mpRegen="30" />
|
||||
<speed>
|
||||
<walk ground="30" />
|
||||
<run ground="180" />
|
||||
@@ -2384,9 +2384,9 @@
|
||||
<skill id="4440" level="5" /> <!-- Greater Paralysis Resistance -->
|
||||
<skill id="4441" level="5" /> <!-- Greater Mental Attack Resistance -->
|
||||
<skill id="4439" level="5" /> <!-- Greater Hold Resistance -->
|
||||
<skill id="4494" level="1" /> <!-- Raid Boss -->
|
||||
<skill id="14520" level="1" /> <!-- Ice Box of Hell -->
|
||||
<skill id="14519" level="1" /> <!-- Fire Pit of Hell -->
|
||||
<skill id="16979" level="1" /> <!-- Hellfire -->
|
||||
<skill id="23707" level="4" /> <!-- Chaos fire -->
|
||||
<skill id="16980" level="1" /> <!-- Infernal Icicles -->
|
||||
<skill id="4415" level="3" /> <!-- One-handed Sword -->
|
||||
<skill id="14765" level="4" /> <!-- Blood Siphon Resistance -->
|
||||
<skill id="14620" level="1" /> <!-- Aerial Yoke Resistance 1 -->
|
||||
@@ -2395,7 +2395,7 @@
|
||||
<skill id="14617" level="1" /> <!-- Knock Down Resistance -->
|
||||
<skill id="14619" level="1" /> <!-- Disarm Resistance -->
|
||||
</skillList>
|
||||
<ai clanHelpRange="300" aggroRange="300">
|
||||
<ai clanHelpRange="400" aggroRange="400">
|
||||
<clanList>
|
||||
<clan>EMBRYO_BOSS</clan>
|
||||
</clanList>
|
||||
@@ -2404,21 +2404,123 @@
|
||||
<radius normal="24" />
|
||||
<height normal="60" />
|
||||
</collision>
|
||||
<dropLists>
|
||||
<drop>
|
||||
<item id="17527" min="1" max="1" chance="61.17" /> <!-- Scroll: Enchant Armor (R-grade) -->
|
||||
<item id="36574" min="1" max="1" chance="50.91" /> <!-- Scroll: Modify Weapon (R-grade) -->
|
||||
<item id="36586" min="1" max="1" chance="48.8" /> <!-- Scroll: Modify Armor (R-grade) -->
|
||||
<item id="17526" min="1" max="1" chance="39.83" /> <!-- Scroll: Enchant Weapon (R-grade) -->
|
||||
<item id="35352" min="1" max="1" chance="1.945" /> <!-- Eternal Glove Ingredient -->
|
||||
<item id="35346" min="1" max="1" chance="1.944" /> <!-- Eternal Leather Legging Ingredient -->
|
||||
<item id="35344" min="1" max="1" chance="1.921" /> <!-- Eternal Leather Helmet Ingredient -->
|
||||
<item id="35342" min="1" max="1" chance="1.92" /> <!-- Eternal Boot Ingredient -->
|
||||
<item id="35345" min="1" max="1" chance="1.906" /> <!-- Eternal Leather Armor Ingredient -->
|
||||
<item id="35348" min="1" max="1" chance="1.901" /> <!-- Eternal Leather Boot Ingredient -->
|
||||
<item id="35339" min="1" max="1" chance="1.896" /> <!-- Eternal Breastplate Ingredient -->
|
||||
<item id="35351" min="1" max="1" chance="1.895" /> <!-- Eternal Stocking Ingredient -->
|
||||
<item id="35338" min="1" max="1" chance="1.894" /> <!-- Eternal Helmet Ingredient -->
|
||||
<item id="35343" min="1" max="1" chance="1.889" /> <!-- Eternal Shield Ingredient -->
|
||||
<item id="35353" min="1" max="1" chance="1.884" /> <!-- Eternal Shoe Ingredient -->
|
||||
<item id="35349" min="1" max="1" chance="1.875" /> <!-- Eternal Circlet Ingredient -->
|
||||
<item id="35340" min="1" max="1" chance="1.867" /> <!-- Eternal Gaiter Ingredient -->
|
||||
<item id="35347" min="1" max="1" chance="1.864" /> <!-- Eternal Leather Glove Ingredient -->
|
||||
<item id="35350" min="1" max="1" chance="1.858" /> <!-- Eternal Tunic Ingredient -->
|
||||
<item id="35354" min="1" max="1" chance="1.854" /> <!-- Eternal Sigil Ingredient -->
|
||||
<item id="35341" min="1" max="1" chance="1.825" /> <!-- Eternal Gauntlet Ingredient -->
|
||||
<item id="35328" min="1" max="1" chance="0.75" /> <!-- Amaranthine Cutter Fragment -->
|
||||
<item id="35329" min="1" max="1" chance="0.75" /> <!-- Amaranthine Slasher Fragment -->
|
||||
<item id="35327" min="1" max="1" chance="0.75" /> <!-- Amaranthine Shaper Fragment -->
|
||||
<item id="35331" min="1" max="1" chance="0.75" /> <!-- Amaranthine Fighter Fragment -->
|
||||
<item id="35337" min="1" max="1" chance="0.75" /> <!-- Amaranthine Retributer Fragment -->
|
||||
<item id="35332" min="1" max="1" chance="0.75" /> <!-- Amaranthine Stormer Fragment -->
|
||||
<item id="35333" min="1" max="1" chance="0.75" /> <!-- Amaranthine Thrower Fragment -->
|
||||
<item id="35335" min="1" max="1" chance="0.75" /> <!-- Amaranthine Buster Fragment -->
|
||||
<item id="35334" min="1" max="1" chance="0.75" /> <!-- Amaranthine Shooter Fragment -->
|
||||
<item id="35336" min="1" max="1" chance="0.75" /> <!-- Amaranthine Caster Fragment -->
|
||||
<item id="35330" min="1" max="1" chance="0.75" /> <!-- Amaranthine Avenger Fragment -->
|
||||
<item id="35473" min="1" max="1" chance="0.3" /> <!-- Recipe: Eternal Circlet (60%) -->
|
||||
<item id="35472" min="1" max="1" chance="0.3" /> <!-- Recipe: Eternal Leather Boots (60%) -->
|
||||
<item id="35471" min="1" max="1" chance="0.3" /> <!-- Recipe: Eternal Leather Gloves (60%) -->
|
||||
<item id="35470" min="1" max="1" chance="0.3" /> <!-- Recipe: Eternal Leather Leggings (60%) -->
|
||||
<item id="35469" min="1" max="1" chance="0.3" /> <!-- Recipe: Eternal Leather Armor (60%) -->
|
||||
<item id="35474" min="1" max="1" chance="0.3" /> <!-- Recipe: Eternal Tunic (60%) -->
|
||||
<item id="35475" min="1" max="1" chance="0.3" /> <!-- Recipe: Eternal Stockings (60%) -->
|
||||
<item id="35476" min="1" max="1" chance="0.3" /> <!-- Recipe: Eternal Gloves (60%) -->
|
||||
<item id="35477" min="1" max="1" chance="0.3" /> <!-- Recipe: Eternal Shoes (60%) -->
|
||||
<item id="35478" min="1" max="1" chance="0.3" /> <!-- Recipe: Eternal Sigil (60%) -->
|
||||
<item id="46476" min="1" max="1" chance="0.3" /> <!-- Leona's Soul Crystal - Stage 3 -->
|
||||
<item id="46491" min="1" max="1" chance="0.3" /> <!-- Pantheon's Soul Crystal - Stage 3 -->
|
||||
<item id="46506" min="1" max="1" chance="0.3" /> <!-- Lionel's Soul Crystal - Stage 3 -->
|
||||
<item id="35468" min="1" max="1" chance="0.3" /> <!-- Recipe: Eternal Leather Helmet (60%) -->
|
||||
<item id="35467" min="1" max="1" chance="0.3" /> <!-- Recipe: Eternal Shield (60%) -->
|
||||
<item id="35466" min="1" max="1" chance="0.3" /> <!-- Recipe: Eternal Boots (60%) -->
|
||||
<item id="35452" min="1" max="1" chance="0.3" /> <!-- Recipe: Amaranthine Cutter (60%) -->
|
||||
<item id="35451" min="1" max="1" chance="0.3" /> <!-- Recipe: Amaranthine Shaper (60%) -->
|
||||
<item id="35454" min="1" max="1" chance="0.3" /> <!-- Recipe: Amaranthine Avenger (60%) -->
|
||||
<item id="35455" min="1" max="1" chance="0.3" /> <!-- Recipe: Amaranthine Fighter (60%) -->
|
||||
<item id="35456" min="1" max="1" chance="0.3" /> <!-- Recipe: Amaranthine Stormer (60%) -->
|
||||
<item id="35457" min="1" max="1" chance="0.3" /> <!-- Recipe: Amaranthine Thrower (60%) -->
|
||||
<item id="35458" min="1" max="1" chance="0.3" /> <!-- Recipe: Amaranthine Shooter (60%) -->
|
||||
<item id="35459" min="1" max="1" chance="0.3" /> <!-- Recipe: Amaranthine Buster (60%) -->
|
||||
<item id="35465" min="1" max="1" chance="0.3" /> <!-- Recipe: Eternal Gauntlets (60%) -->
|
||||
<item id="35464" min="1" max="1" chance="0.3" /> <!-- Recipe: Eternal Gaiters (60%) -->
|
||||
<item id="35463" min="1" max="1" chance="0.3" /> <!-- Recipe: Eternal Breastplate (60%) -->
|
||||
<item id="35462" min="1" max="1" chance="0.3" /> <!-- Recipe: Eternal Helmet (60%) -->
|
||||
<item id="35460" min="1" max="1" chance="0.3" /> <!-- Recipe: Amaranthine Caster (60%) -->
|
||||
<item id="35453" min="1" max="1" chance="0.3" /> <!-- Recipe: Amaranthine Slasher (60%) -->
|
||||
<item id="35461" min="1" max="1" chance="0.3" /> <!-- Recipe: Amaranthine Retributer (60%) -->
|
||||
<item id="46493" min="1" max="1" chance="0.075" /> <!-- Pantheon's Soul Crystal - Stage 5 -->
|
||||
<item id="46507" min="1" max="1" chance="0.075" /> <!-- Lionel's Soul Crystal - Stage 4 -->
|
||||
<item id="46508" min="1" max="1" chance="0.075" /> <!-- Lionel's Soul Crystal - Stage 5 -->
|
||||
<item id="46478" min="1" max="1" chance="0.075" /> <!-- Leona's Soul Crystal - Stage 5 -->
|
||||
<item id="46477" min="1" max="1" chance="0.075" /> <!-- Leona's Soul Crystal - Stage 4 -->
|
||||
<item id="46492" min="1" max="1" chance="0.075" /> <!-- Pantheon's Soul Crystal - Stage 4 -->
|
||||
<item id="46446" min="1" max="1" chance="0.075" /> <!-- Kain's Soul Crystal - Stage 3 -->
|
||||
<item id="46447" min="1" max="1" chance="0.075" /> <!-- Kain's Soul Crystal - Stage 4 -->
|
||||
<item id="46462" min="1" max="1" chance="0.075" /> <!-- Mermoden's Soul Crystal - Stage 4 -->
|
||||
<item id="46461" min="1" max="1" chance="0.075" /> <!-- Mermoden's Soul Crystal - Stage 3 -->
|
||||
<item id="46448" min="1" max="1" chance="0.03" /> <!-- Kain's Soul Crystal - Stage 5 -->
|
||||
<item id="46495" min="1" max="1" chance="0.03" /> <!-- Pantheon's Soul Crystal - Stage 7 -->
|
||||
<item id="46494" min="1" max="1" chance="0.03" /> <!-- Pantheon's Soul Crystal - Stage 6 -->
|
||||
<item id="46509" min="1" max="1" chance="0.03" /> <!-- Lionel's Soul Crystal - Stage 6 -->
|
||||
<item id="46510" min="1" max="1" chance="0.03" /> <!-- Lionel's Soul Crystal - Stage 7 -->
|
||||
<item id="46480" min="1" max="1" chance="0.03" /> <!-- Leona's Soul Crystal - Stage 7 -->
|
||||
<item id="46479" min="1" max="1" chance="0.03" /> <!-- Leona's Soul Crystal - Stage 6 -->
|
||||
<item id="46463" min="1" max="1" chance="0.03" /> <!-- Mermoden's Soul Crystal - Stage 5 -->
|
||||
<item id="46464" min="1" max="1" chance="0.03" /> <!-- Mermoden's Soul Crystal - Stage 6 -->
|
||||
<item id="46449" min="1" max="1" chance="0.03" /> <!-- Kain's Soul Crystal - Stage 6 -->
|
||||
<item id="46465" min="1" max="1" chance="0.0075" /> <!-- Mermoden's Soul Crystal - Stage 7 -->
|
||||
<item id="46450" min="1" max="1" chance="0.0075" /> <!-- Kain's Soul Crystal - Stage 7 -->
|
||||
<!-- FIXME: Also drops herbs. -->
|
||||
<item id="8600" min="1" max="1" chance="10" /> <!-- Herb of Life -->
|
||||
<item id="8601" min="1" max="1" chance="8" /> <!-- Major Herb of Life -->
|
||||
<item id="8602" min="1" max="1" chance="2" /> <!-- Superior Herb of Life -->
|
||||
<item id="8603" min="1" max="1" chance="19.8" /> <!-- Herb of Mana -->
|
||||
<item id="8604" min="1" max="1" chance="9.9" /> <!-- Major Herb of Mana -->
|
||||
<item id="8605" min="1" max="1" chance="3.3" /> <!-- Superior Herb of Mana -->
|
||||
<item id="34849" min="1" max="1" chance="0.7" /> <!-- Mysterious Herb of Power -->
|
||||
<item id="34850" min="1" max="1" chance="0.7" /> <!-- Mysterious Herb of Magic -->
|
||||
<item id="13028" min="1" max="1" chance="0.1" /> <!-- Vitality Replenishing Herb -->
|
||||
</drop>
|
||||
<lucky>
|
||||
<item id="39629" min="3" max="3" chance="100" /> <!-- Fortune Pocket - Stage 1 -->
|
||||
</lucky>
|
||||
</dropLists>
|
||||
</npc>
|
||||
<npc id="25857" level="95" type="L2Monster" name="Corrupted Captain">
|
||||
<npc id="25857" level="103" type="L2Monster" name="Corrupted Captain" title="Guardian of the Altar">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<parameters>
|
||||
<param name="IsAggressive" value="1" />
|
||||
<skill name="Skill01_ID" id="14521" level="1" />
|
||||
<skill name="Skill02_ID" id="14194" level="1" />
|
||||
<skill name="Skill01_ID" id="16982" level="1" /> <!-- Devil Horns of Shield -->
|
||||
<skill name="Skill02_ID" id="16981" level="1" /> <!-- Fallen Execution -->
|
||||
<param name="Attack_BoostValue" value="144" />
|
||||
</parameters>
|
||||
<race>HUMANOID</race>
|
||||
<sex>MALE</sex>
|
||||
<acquire exp="49522881" sp="11885" />
|
||||
<acquire exp="38462527312" sp="38462505" />
|
||||
<mpReward value="53" type="DIFF" ticks="10" affects="PARTY" />
|
||||
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
|
||||
<vitals hp="560294" hpRegen="8.5" mp="22058" mpRegen="30" />
|
||||
<vitals hp="1705440" hpRegen="8.5" mp="33087" mpRegen="30" />
|
||||
<speed>
|
||||
<walk ground="30" />
|
||||
<run ground="120" />
|
||||
@@ -2435,10 +2537,12 @@
|
||||
<skillList>
|
||||
<skill id="5467" level="1" /> <!-- Strong against the dark elemental. -->
|
||||
<skill id="4416" level="6" /> <!-- Humanoids -->
|
||||
<skill id="14194" level="1" /> <!-- Range Stun -->
|
||||
<skill id="4415" level="3" /> <!-- One-handed Sword -->
|
||||
<skill id="14765" level="3" /> <!-- Blood Siphon Resistance -->
|
||||
<skill id="4045" level="1" /> <!-- Resist Full Magic Attack -->
|
||||
<skill id="16982" level="1" /> <!-- Devil Horns of Shield -->
|
||||
<skill id="16981" level="1" /> <!-- Fallen Execution -->
|
||||
<skill id="14194" level="1" /> <!-- Range Stun -->
|
||||
</skillList>
|
||||
<ai clanHelpRange="300" aggroRange="300" />
|
||||
<dropLists>
|
||||
@@ -2455,20 +2559,21 @@
|
||||
<height normal="45" />
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="25858" level="95" type="L2Monster" name="Corrupted High Priest">
|
||||
<npc id="25858" level="103" type="L2Monster" name="Corrupted High Priest" title="Guardian of the Altar">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<parameters>
|
||||
<param name="IsAggressive" value="1" />
|
||||
<skill name="Skill01_ID" id="14522" level="1" />
|
||||
<skill name="Skill02_ID" id="14084" level="6" />
|
||||
<skill name="Skill01_ID" id="16983" level="1" /> <!-- Embryo's Blessing -->
|
||||
<skill name="Skill02_ID" id="23707" level="4" /> <!-- Chaos Fire -->
|
||||
<skill name="Skill02_ID" id="16984" level="1" /> <!-- Blind Spark -->
|
||||
<param name="Attack_BoostValue" value="144" />
|
||||
</parameters>
|
||||
<race>HUMANOID</race>
|
||||
<sex>FEMALE</sex>
|
||||
<acquire exp="49522881" sp="11885" />
|
||||
<acquire exp="51283369715" sp="51283269" />
|
||||
<mpReward value="53" type="DIFF" ticks="10" affects="PARTY" />
|
||||
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
|
||||
<vitals hp="560294" hpRegen="8.5" mp="33087" mpRegen="30" />
|
||||
<vitals hp="1705440" hpRegen="8.5" mp="33087" mpRegen="30" />
|
||||
<speed>
|
||||
<walk ground="30" />
|
||||
<run ground="120" />
|
||||
@@ -2481,13 +2586,16 @@
|
||||
</attribute>
|
||||
<abnormalResist physical="10" magical="10" />
|
||||
</stats>
|
||||
<status attackable="false" undying="false" />
|
||||
<status attackable="false" undying="false" randomWalk="false" />
|
||||
<skillList>
|
||||
<skill id="5467" level="1" /> <!-- Strong against the dark elemental. -->
|
||||
<skill id="4416" level="6" /> <!-- Humanoids -->
|
||||
<skill id="4415" level="3" /> <!-- One-handed Sword -->
|
||||
<skill id="14765" level="3" /> <!-- Blood Siphon Resistance -->
|
||||
<skill id="4045" level="1" /> <!-- Resist Full Magic Attack -->
|
||||
<skill id="16983" level="1" /> <!-- Embryo's Blessing -->
|
||||
<skill id="23707" level="1" /> <!-- Chaos Fire -->
|
||||
<skill id="16984" level="1" /> <!-- Blind Spark -->
|
||||
</skillList>
|
||||
<ai clanHelpRange="300" aggroRange="300" />
|
||||
<dropLists>
|
||||
@@ -2892,7 +3000,7 @@
|
||||
<height normal="53" />
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="25866" level="94" type="L2Monster" name="Apherus">
|
||||
<npc id="25866" level="94" type="L2RaidBoss" name="Apherus">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<parameters>
|
||||
<skill name="Skill01_ID" id="14462" level="1" />
|
||||
|
@@ -31,6 +31,7 @@ Goddess of Destruction:
|
||||
-Kartia
|
||||
-Fortuna
|
||||
-Nursery
|
||||
-Altar of Shilen
|
||||
-Kimerian
|
||||
-Istina
|
||||
-Octavis
|
||||
|
@@ -1,4 +1,7 @@
|
||||
<html><head><body>Agent Georgio:<br>
|
||||
Sh... I'm currently on duty. If you don't have anything to say, please go away.<br>
|
||||
<html><body>Agent Georgio:<br>
|
||||
Hush! I'm on a mission.<br>
|
||||
The Kingdom's Royal Guards are investigating a report that a ritual is being held on the Altar of Shilen, which has been closed since Melisa and Isadora disappeared. I'd like to ask you to leave us, if you don't mind.<br>
|
||||
Or, if you want to go to the Altar of Shilen to stop the ritual, I can send you there. Just tell me.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest AltarOfShilen enterInstance">To the Altar of Shilen</Button>
|
||||
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
|
||||
</body></html>
|
281
L2J_Mobius_3.0_Helios/dist/game/data/instances/AltarOfShilen.xml
vendored
Normal file
281
L2J_Mobius_3.0_Helios/dist/game/data/instances/AltarOfShilen.xml
vendored
Normal file
@@ -0,0 +1,281 @@
|
||||
<instance id="194" maxWorlds="20" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/instance.xsd">
|
||||
<time duration="60" empty="1" />
|
||||
<locations>
|
||||
<enter type="RANDOM">
|
||||
<location x="179400" y="13683" z="-7396"/><!-- First Room -->
|
||||
</enter>
|
||||
<exit type="ORIGIN" />
|
||||
</locations>
|
||||
<parameters>
|
||||
<param name="boss1" value="25857" />
|
||||
<param name="boss2" value="25858" />
|
||||
</parameters>
|
||||
<conditions>
|
||||
<condition type="Party" showMessageAndHtml="true">
|
||||
<param name="html" value="condNoGroup.html" />
|
||||
</condition>
|
||||
<condition type="PartyLeader">
|
||||
<param name="html" value="condNoPartyLeader.html" />
|
||||
</condition>
|
||||
<condition type="GroupMin">
|
||||
<param name="html" value="condSmallGroup.html" />
|
||||
<param name="limit" value="5" />
|
||||
</condition>
|
||||
<condition type="GroupMax">
|
||||
<param name="limit" value="7" />
|
||||
</condition>
|
||||
<condition type="Level" showMessageAndHtml="true">
|
||||
<param name="html" value="condNoLevel.html" />
|
||||
<param name="min" value="101" />
|
||||
</condition>
|
||||
<condition type="Level" showMessageAndHtml="true">
|
||||
<param name="html" value="condNoLevel.html" />
|
||||
<param name="max" value="105" />
|
||||
</condition>
|
||||
<condition type="Distance" />
|
||||
<condition type="Reenter" />
|
||||
</conditions>
|
||||
<reenter apply="ON_FINISH">
|
||||
<reset day="MONDAY" hour="6" minute="30" />
|
||||
<reset day="TUESDAY" hour="6" minute="30" />
|
||||
<reset day="WEDNESDAY" hour="6" minute="30" />
|
||||
<reset day="THURSDAY" hour="6" minute="30" />
|
||||
<reset day="FRIDAY" hour="6" minute="30" />
|
||||
<reset day="SATURDAY" hour="6" minute="30" />
|
||||
<reset day="SUNDAY" hour="6" minute="30" />
|
||||
</reenter>
|
||||
<doorlist>
|
||||
<door id="25180001">
|
||||
<openStatus default="close" />
|
||||
</door>
|
||||
<door id="25180002">
|
||||
<openStatus default="close" />
|
||||
</door>
|
||||
<door id="25180003">
|
||||
<openStatus default="close" />
|
||||
</door>
|
||||
<door id="25180004">
|
||||
<openStatus default="close" />
|
||||
</door>
|
||||
<door id="25180005">
|
||||
<openStatus default="close" />
|
||||
</door>
|
||||
<door id="25180006">
|
||||
<openStatus default="close" />
|
||||
</door>
|
||||
<door id="25180007">
|
||||
<openStatus default="close" />
|
||||
</door>
|
||||
</doorlist>
|
||||
<spawnlist>
|
||||
<group name="general" spawnByDefault="false">
|
||||
<npc id="25856" x="177833" y="14852" z="-13688" heading="0"/> <!-- Isadora -->
|
||||
<npc id="25855" x="178432" y="14848" z="-13688" heading="0"/> <!-- Maliss -->
|
||||
<npc id="34331" x="179521" y="13610" z="-7392" heading="33344"/> <!-- Logart Van Dyke -->
|
||||
<npc id="34331" x="179543" y="13552" z="-9824" heading="32460"/> <!-- Logart Van Dyke -->
|
||||
<npc id="34331" x="179519" y="12797" z="-12768" heading="32712"/> <!-- Logart Van Dyke -->
|
||||
<npc id="34332" x="178149" y="16676" z="-13648" heading="16600"/> <!-- Dinford -->
|
||||
<npc id="19121" x="178150" y="13600" z="-8016" heading="13828"/> <!-- Altar of Sacrifice -->
|
||||
<npc id="19122" x="178150" y="13600" z="-10448" heading="16772"/> <!-- Altar of Sacrifice -->
|
||||
<npc id="19123" x="178150" y="12840" z="-13392" heading="44317"/> <!-- Altar of Sacrifice -->
|
||||
<npc id="19142" x="177584" y="14400" z="-8088" heading="0"/> <!-- Sacrificial Offering -->
|
||||
<npc id="19143" x="177864" y="14534" z="-8088" heading="0"/> <!-- Sacrificial Offering -->
|
||||
<npc id="19144" x="178149" y="14401" z="-8088" heading="0"/> <!-- Sacrificial Offering -->
|
||||
<npc id="19145" x="178439" y="14528" z="-8088" heading="0"/> <!-- Sacrificial Offering -->
|
||||
<npc id="19146" x="178713" y="14417" z="-8088" heading="0"/> <!-- Sacrificial Offering -->
|
||||
<npc id="19147" x="177589" y="14407" z="-10520" heading="0"/> <!-- Sacrificial Offering -->
|
||||
<npc id="19148" x="177863" y="14541" z="-10520" heading="0"/> <!-- Sacrificial Offering -->
|
||||
<npc id="19149" x="178153" y="14415" z="-10520" heading="0"/> <!-- Sacrificial Offering -->
|
||||
<npc id="19150" x="178442" y="14528" z="-10520" heading="0"/> <!-- Sacrificial Offering -->
|
||||
<npc id="19151" x="178712" y="14408" z="-10520" heading="0"/> <!-- Sacrificial Offering -->
|
||||
</group>
|
||||
<group name="first_floor" spawnByDefault="false">
|
||||
<!-- 1st floor 1st room -->
|
||||
<npc id="23142" x="181315" y="14009" z="-7616" heading="23913" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="182829" y="14851" z="-7616" heading="23465" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="181806" y="14543" z="-7608" heading="39123" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="181944" y="15457" z="-7616" heading="54183" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="180840" y="14674" z="-7616" heading="55476" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="181424" y="13863" z="-7616" heading="21874" /> <!-- Embryo Guard -->
|
||||
<npc id="23141" x="181541" y="14179" z="-7616" heading="23691" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="181614" y="14795" z="-7608" heading="37559" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="182055" y="15303" z="-7616" heading="55513" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="182229" y="15643" z="-7616" heading="55481" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="182417" y="14797" z="-7616" heading="21914" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="182521" y="14650" z="-7616" heading="24720" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="181076" y="14829" z="-7616" heading="55433" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="181181" y="14683" z="-7616" heading="55609" /> <!-- Embryo Fighter -->
|
||||
<npc id="23140" x="181649" y="14031" z="-7616" heading="22548" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="180953" y="14515" z="-7616" heading="55493" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="182713" y="15019" z="-7616" heading="22606" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="181871" y="14999" z="-7608" heading="39090" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="182342" y="15487" z="-7616" heading="55459" /> <!-- Embryo Watchman -->
|
||||
<npc id="23139" x="182070" y="14727" z="-7608" heading="39831" /> <!-- Embryo Researcher -->
|
||||
<npc id="23131" x="181834" y="14767" z="-7608" heading="37586" /> <!-- Embryo Executor Captain -->
|
||||
<!-- 1st floor 2st room -->
|
||||
<npc id="23142" x="182413" y="17524" z="-7864" heading="55494" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="181674" y="18255" z="-7872" heading="6330" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="183339" y="17361" z="-7872" heading="8091" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="182531" y="16784" z="-7872" heading="8091" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="182558" y="18468" z="-7872" heading="39871" /> <!-- Embryo Guard -->
|
||||
<npc id="23141" x="182495" y="17988" z="-7864" heading="56703" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="183142" y="17635" z="-7872" heading="39519" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="182485" y="17168" z="-7872" heading="7171" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="182226" y="18648" z="-7872" heading="38766" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="181910" y="17967" z="-7872" heading="5242" /> <!-- Embryo Fighter -->
|
||||
<npc id="23140" x="182688" y="16898" z="-7872" heading="7195" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="183187" y="17254" z="-7872" heading="38269" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="182224" y="17786" z="-7864" heading="55748" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="181548" y="18164" z="-7872" heading="7239" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="182357" y="18743" z="-7872" heading="38963" /> <!-- Embryo Watchman -->
|
||||
<npc id="23139" x="182421" y="18369" z="-7872" heading="39556" /> <!-- Embryo Researcher -->
|
||||
<npc id="23139" x="181772" y="17873" z="-7872" heading="7271" /> <!-- Embryo Researcher -->
|
||||
<npc id="23139" x="182338" y="17063" z="-7872" heading="6940" /> <!-- Embryo Researcher -->
|
||||
<npc id="23139" x="182991" y="17529" z="-7872" heading="39974" /> <!-- Embryo Researcher -->
|
||||
<npc id="23139" x="182687" y="17717" z="-7864" heading="55632" /> <!-- Embryo Researcher -->
|
||||
<npc id="23131" x="182453" y="17756" z="-7864" heading="55808" /> <!-- Embryo Executor Captain -->
|
||||
<!-- 1st floor 3st room -->
|
||||
<npc id="23142" x="179668" y="18331" z="-8128" heading="6204" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="178844" y="18342" z="-8136" heading="56681" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="179236" y="17838" z="-8136" heading="20051" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="179645" y="18913" z="-8136" heading="56524" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="180290" y="18601" z="-8136" heading="23360" /> <!-- Embryo Guard -->
|
||||
<npc id="23141" x="180009" y="18407" z="-8136" heading="23354" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="179922" y="19106" z="-8136" heading="55523" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="179405" y="18141" z="-8128" heading="6007" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="178487" y="18304" z="-8136" heading="56001" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="179061" y="17503" z="-8136" heading="21608" /> <!-- Embryo Fighter -->
|
||||
<npc id="23140" x="178743" y="18481" z="-8136" heading="54910" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="178956" y="17649" z="-8136" heading="23285" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="179473" y="18605" z="-8128" heading="7076" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="179818" y="19256" z="-8136" heading="56591" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="180394" y="18452" z="-8136" heading="24120" /> <!-- Embryo Watchman -->
|
||||
<npc id="23139" x="179539" y="19062" z="-8136" heading="55014" /> <!-- Embryo Researcher -->
|
||||
<npc id="23139" x="179205" y="18414" z="-8128" heading="6803" /> <!-- Embryo Researcher -->
|
||||
<npc id="23139" x="180118" y="18255" z="-8136" heading="23660" /> <!-- Embryo Researcher -->
|
||||
<npc id="23139" x="178594" y="18156" z="-8136" heading="56048" /> <!-- Embryo Researcher -->
|
||||
<npc id="23139" x="179337" y="17699" z="-8136" heading="22822" /> <!-- Embryo Researcher -->
|
||||
<npc id="23131" x="179442" y="18374" z="-8128" heading="4506" /> <!-- Embryo Executor Captain -->
|
||||
<!-- 1st floor 4st room -->
|
||||
<npc id="23141" x="177740" y="15229" z="-8312" heading="65530" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="178548" y="15228" z="-8312" heading="32481" /> <!-- Embryo Fighter -->
|
||||
<npc id="23142" x="178574" y="15774" z="-8312" heading="32849" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="177427" y="15227" z="-8312" heading="2497" /> <!-- Embryo Guard -->
|
||||
<npc id="23140" x="177708" y="15783" z="-8312" heading="1499" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="178827" y="15787" z="-8312" heading="13834" /> <!-- Embryo Watchman -->
|
||||
<npc id="23139" x="178846" y="15216" z="-8312" heading="32391" /> <!-- Embryo Researcher -->
|
||||
<npc id="23139" x="177445" y="15787" z="-8312" heading="669" /> <!-- Embryo Researcher -->
|
||||
<!-- 1st floor boss -->
|
||||
<npc id="25857" x="178146" y="15000" z="-8312" heading="18233" /> <!-- Corrupted Captain -->
|
||||
</group>
|
||||
<group name="second_floor" spawnByDefault="false">
|
||||
<!-- 2st floor 1st room -->
|
||||
<npc id="23129" x="181632" y="14245" z="-10048" heading="24446" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="181669" y="14792" z="-10040" heading="39262" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="182053" y="15304" z="-10048" heading="55811" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="182857" y="14866" z="-10048" heading="22442" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="181156" y="14912" z="-10048" heading="55993" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23127" x="181272" y="14754" z="-10048" heading="55845" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="182351" y="15523" z="-10048" heading="55330" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="181355" y="14048" z="-10048" heading="22899" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="182534" y="14638" z="-10048" heading="23741" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="181998" y="14734" z="-10040" heading="39347" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23128" x="181805" y="14600" z="-10040" heading="37848" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="181860" y="14928" z="-10040" heading="39680" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="182414" y="14801" z="-10048" heading="26424" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="182238" y="15682" z="-10048" heading="55327" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="180995" y="14557" z="-10048" heading="55965" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="181746" y="14095" z="-10048" heading="21944" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23126" x="181444" y="13882" z="-10048" heading="23910" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23126" x="180906" y="14732" z="-10048" heading="56442" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23126" x="182712" y="15019" z="-10048" heading="23218" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23126" x="181936" y="15470" z="-10048" heading="55180" /> <!-- Embryo Elite Escort -->
|
||||
<!-- 2st floor 2st room -->
|
||||
<npc id="23129" x="182665" y="16916" z="-10304" heading="5486" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="182205" y="18632" z="-10304" heading="38327" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="182417" y="18332" z="-10304" heading="38704" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="181702" y="18273" z="-10304" heading="6517" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="182501" y="16797" z="-10304" heading="6671" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="182991" y="17528" z="-10304" heading="39098" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="183160" y="17474" z="-10304" heading="39074" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23127" x="181917" y="17975" z="-10304" heading="6011" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="182578" y="18447" z="-10304" heading="40250" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="182384" y="18553" z="-10304" heading="40030" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="182517" y="16983" z="-10304" heading="6049" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="183176" y="17270" z="-10304" heading="41931" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23128" x="183153" y="17644" z="-10304" heading="40362" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="182327" y="17051" z="-10304" heading="6919" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="182360" y="18743" z="-10304" heading="38293" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="181540" y="18157" z="-10304" heading="6379" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23126" x="181755" y="17860" z="-10304" heading="4711" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23126" x="181747" y="18063" z="-10304" heading="6737" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23126" x="182486" y="17168" z="-10304" heading="5041" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23126" x="183333" y="17391" z="-10304" heading="38209" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23138" x="182409" y="18255" z="-10304" heading="30021"> <!-- Etina Bladesmen -->
|
||||
<parameters>
|
||||
<param name="SuperPointName" value="etina_bladesmen_1" />
|
||||
</parameters>
|
||||
</npc>
|
||||
<npc id="23138" x="182000" y="17922" z="-10304" heading="22511"> <!-- Etina Bladesmen -->
|
||||
<parameters>
|
||||
<param name="SuperPointName" value="etina_bladesmen_2" />
|
||||
</parameters>
|
||||
</npc>
|
||||
<!-- 2st floor 3st room -->
|
||||
<npc id="23130" x="179540" y="19060" z="-10568" heading="53859" /> <!-- Embryo Elite High Priest -->
|
||||
<npc id="23130" x="178546" y="18123" z="-10568" heading="55565" /> <!-- Embryo Elite High Priest -->
|
||||
<npc id="23130" x="178906" y="17620" z="-10568" heading="23026" /> <!-- Embryo Elite High Priest -->
|
||||
<npc id="23129" x="178437" y="18275" z="-10568" heading="54969" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="179025" y="17458" z="-10568" heading="22279" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="179274" y="18400" z="-10560" heading="7344" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="180125" y="18247" z="-10568" heading="23203" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23128" x="179414" y="18206" z="-10560" heading="5824" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="180010" y="18405" z="-10568" heading="22892" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="178761" y="18499" z="-10568" heading="54666" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="179857" y="19296" z="-10568" heading="54800" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23127" x="179601" y="18340" z="-10560" heading="6348" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="179345" y="17689" z="-10568" heading="22336" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="179646" y="18908" z="-10568" heading="53631" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="180335" y="18581" z="-10568" heading="22933" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23126" x="179974" y="19139" z="-10568" heading="57307" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23126" x="180427" y="18455" z="-10568" heading="25307" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23126" x="179466" y="18541" z="-10560" heading="6681" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23126" x="179229" y="17845" z="-10568" heading="22563" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23131" x="178871" y="18353" z="-10568" heading="57361" /> <!-- Embryo Executor Captain -->
|
||||
<npc id="23138" x="179050" y="18309" z="-10568" heading="38891" /> <!-- Etina Bladesmen -->
|
||||
<!-- 2st floor 4st room -->
|
||||
<npc id="23130" x="178536" y="15981" z="-10744" heading="31126" /> <!-- Embryo Elite High Priest -->
|
||||
<npc id="23126" x="178549" y="15688" z="-10744" heading="33033" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23130" x="178522" y="15390" z="-10744" heading="33219" /> <!-- Embryo Elite High Priest -->
|
||||
<npc id="23128" x="178993" y="15706" z="-10744" heading="32714" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="178735" y="15533" z="-10744" heading="33312" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23127" x="178728" y="15847" z="-10744" heading="33290" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="178978" y="15981" z="-10744" heading="32904" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23129" x="178998" y="15408" z="-10744" heading="33170" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23128" x="177722" y="15379" z="-10744" heading="217" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23127" x="177732" y="15672" z="-10744" heading="64457" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23130" x="177738" y="15981" z="-10744" heading="65477" /> <!-- Embryo Elite High Priest -->
|
||||
<npc id="23130" x="177499" y="15494" z="-10744" heading="64083" /> <!-- Embryo Elite High Priest -->
|
||||
<npc id="23129" x="177498" y="15843" z="-10744" heading="65509" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23128" x="177269" y="15981" z="-10744" heading="789" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23126" x="177261" y="15656" z="-10744" heading="64191" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23129" x="177267" y="15372" z="-10744" heading="1549" /> <!-- Embryo Elite Alchemist -->
|
||||
<!-- 2st floor boss -->
|
||||
<npc id="25858" x="178154" y="15149" z="-10744" heading="15626" /> <!-- Corrupted High Priest -->
|
||||
</group>
|
||||
<group name="thrid_floor" spawnByDefault="false">
|
||||
<npc id="8561" x="181547" y="14035" z="-12992" heading="0" /> <!-- invisible1 -->
|
||||
<npc id="8561" x="182615" y="14779" z="-12992" heading="0" /> <!-- invisible1 -->
|
||||
<npc id="8561" x="182122" y="15470" z="-12992" heading="0" /> <!-- invisible1 -->
|
||||
<npc id="8561" x="181071" y="14765" z="-12992" heading="0" /> <!-- invisible1 -->
|
||||
<npc id="8561" x="183207" y="17472" z="-13248" heading="0" /> <!-- invisible1 -->
|
||||
<npc id="8561" x="182485" y="17000" z="-13248" heading="0" /> <!-- invisible1 -->
|
||||
<npc id="8561" x="181721" y="18030" z="-13248" heading="0" /> <!-- invisible1 -->
|
||||
<npc id="8561" x="182408" y="18565" z="-13248" heading="0" /> <!-- invisible1 -->
|
||||
<npc id="8561" x="179690" y="19125" z="-13512" heading="0" /> <!-- invisible1 -->
|
||||
<npc id="8561" x="180233" y="18389" z="-13512" heading="0" /> <!-- invisible1 -->
|
||||
<npc id="8561" x="179107" y="17593" z="-13512" heading="0" /> <!-- invisible1 -->
|
||||
<npc id="8561" x="178607" y="18350" z="-13512" heading="0" /> <!-- invisible1 -->
|
||||
</group>
|
||||
</spawnlist>
|
||||
</instance>
|
4
L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AltarOfShilen/19121.html
vendored
Normal file
4
L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AltarOfShilen/19121.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>
|
||||
The altar stops humming, and you feel the reverberating power of dimensional.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest AltarOfShilen teleport1">Try to go trough the door.</Button>
|
||||
</body></html>
|
4
L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AltarOfShilen/19122.html
vendored
Normal file
4
L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AltarOfShilen/19122.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>
|
||||
The altar stops humming, and you feel the reverberating power of dimensional.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest AltarOfShilen teleport2">Try to go trough the door.</Button>
|
||||
</body></html>
|
5
L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AltarOfShilen/34331-01.html
vendored
Normal file
5
L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AltarOfShilen/34331-01.html
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Royal Guard Captain Logart Van Dyke:<br>
|
||||
Who is it? Ah, you're the adventurer who volunteered to stop the ritual on the Altar of Shilen. You must be capable enough to stop it. Otherwise, you couldn't come this far. Okay, I'll open the door for you.<br>
|
||||
Don't lower yourb guard once inside.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest AltarOfShilen open_door">Open the door to the 2nd floor</Button>
|
||||
</body></html>
|
7
L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AltarOfShilen/34331-02.html
vendored
Normal file
7
L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AltarOfShilen/34331-02.html
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<html><body>Royal Guard Captain Logart Van Dyke:<br>
|
||||
Who is it? Ah, it's you! You've come this far!<br>
|
||||
The last altar is before you.<br>
|
||||
After Embryos invaded the Keucereus Alliance Base, the existence of the Messiah Castle was revealed. Melisa and Isadora, the twin sisters who had long disappeared, returned and are threatening us. If we fail to stop the ritual, Embryos will invade Aden Continent in no time. We must stop them at all cost.<br>
|
||||
My man Dinford will be waiting for you at the entrance to the last altar. Go to find him.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest AltarOfShilen open_door">Open the door to the 3nd floor</Button>
|
||||
</body></html>
|
5
L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AltarOfShilen/34331.html
vendored
Normal file
5
L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AltarOfShilen/34331.html
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Royal Guard Captain Logart Van Dyke:<br>
|
||||
How did you get in here? The blockade was only recently lifted, and this area is still very dangerous. It is under the control of the Kingdom's Royal Guard.<br>
|
||||
It is suspected that Embryos are preparing somewhere in this area to invade the Aden Continent. The Kingdom's Royal Guard is doing its best to stop them. are you here to stop the Embryo's ritual on the Altar of Shilen? if so. I'll gladly open open this door. Be careful. Only danger awaits you.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest AltarOfShilen open_door">Open the door to the 1st floor</Button>
|
||||
</body></html>
|
6
L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AltarOfShilen/34332.html
vendored
Normal file
6
L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AltarOfShilen/34332.html
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html>Quartermaster Dinford<body>
|
||||
Who is it? Ah, you've come to stop the ritual the ritual on the Altar of Shilen!<br>
|
||||
If so, I'll open the door to the altar.<br>
|
||||
Please stop the threat of the Embrio.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest AltarOfShilen final_door">Open the door.</Button>
|
||||
</body></html>
|
694
L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AltarOfShilen/AltarOfShilen.java
vendored
Normal file
694
L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AltarOfShilen/AltarOfShilen.java
vendored
Normal file
@@ -0,0 +1,694 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program 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.
|
||||
*
|
||||
* This program 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 instances.AltarOfShilen;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.Future;
|
||||
|
||||
import com.l2jmobius.commons.concurrent.ThreadPool;
|
||||
import com.l2jmobius.gameserver.enums.ChatType;
|
||||
import com.l2jmobius.gameserver.instancemanager.InstanceManager;
|
||||
import com.l2jmobius.gameserver.model.L2World;
|
||||
import com.l2jmobius.gameserver.model.Location;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Npc;
|
||||
import com.l2jmobius.gameserver.model.actor.instance.L2MonsterInstance;
|
||||
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||
import com.l2jmobius.gameserver.model.instancezone.Instance;
|
||||
import com.l2jmobius.gameserver.network.NpcStringId;
|
||||
import com.l2jmobius.gameserver.network.serverpackets.Earthquake;
|
||||
import com.l2jmobius.gameserver.network.serverpackets.ExSendUIEvent;
|
||||
import com.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
|
||||
import com.l2jmobius.gameserver.network.serverpackets.NpcSay;
|
||||
|
||||
import instances.AbstractInstance;
|
||||
|
||||
/**
|
||||
* Instance Altar of Shilen
|
||||
* @URL https://l2wiki.com/Altar_of_Shilen
|
||||
* @author Gigi
|
||||
* @date 2018-04-13 - [23:27:28]
|
||||
*/
|
||||
public class AltarOfShilen extends AbstractInstance
|
||||
{
|
||||
// NPCs
|
||||
private static final int LOGART_VAN_DYKE = 34331;
|
||||
private static final int DINFORD = 34332;
|
||||
private static final int ISADORA = 25856;
|
||||
private static final int MELISSA0 = 25855;
|
||||
private static final int MELISSA = 25876; // She dropping items
|
||||
private static final int EXECUTOR_CAPTAIN = 23131;
|
||||
private static final int ETINA_BLADESMAN = 23138;
|
||||
private static final int CORRUPTED_CAPTAIN = 25857;
|
||||
private static final int CORRUPTED_HIGH_PRIEST = 25858;
|
||||
private static final int RITUAL_ALTAR0 = 19121;
|
||||
private static final int RITUAL_ALTAR1 = 19122;
|
||||
private static final int SHILLIEN_ALTAR = 19123;
|
||||
private static final int INVISIBLE = 8561;
|
||||
private static final int ETINA_GOSPEL = 23132;
|
||||
private static final int ETINA_PRIEST = 23133;
|
||||
private static final int ETINA_PROTECTORS = 23134;
|
||||
private static final int ETINA_PUNISHERS = 23135;
|
||||
private static final int ETINA_COMMINATION = 23136;
|
||||
private static final int ETINA_DARKMONAGERS = 23137;
|
||||
private static final int ELITE_ESCORT = 23126;
|
||||
private static final int ELITE_CHASER = 23127;
|
||||
private static final int ELITE_WARRIOR = 23128;
|
||||
private static final int ELITE_ALCHEMIST = 23129;
|
||||
private static final int ELITE_PRIEST = 23130;
|
||||
private static final int EMBRYO_RESERCHER = 23139;
|
||||
private static final int EMBRYO_WATCHMAN = 23140;
|
||||
private static final int EMBRYO_FIGHTER = 23141;
|
||||
private static final int EMBRYO_GUARD = 23142;
|
||||
// Skills
|
||||
static final SkillHolder PROTECTED_ALTAR = new SkillHolder(14496, 1);
|
||||
// Misc
|
||||
private static final int TEMPLATE_ID = 194;
|
||||
private static final int ALTAR_TIME = 180;
|
||||
//@formatter:off
|
||||
private static final int[] DOORS = { 25180001, 25180002, 25180003, 25180004, 25180005, 25180006, 25180007 };
|
||||
//@formatter:on
|
||||
private static final NpcStringId[] SHOUT_MSG =
|
||||
{
|
||||
NpcStringId.I_NEED_HELP,
|
||||
NpcStringId.FOCUS_FIRE_ACCORDING_TO_MY_ORCHESTRATION,
|
||||
NpcStringId.I_NEED_HEAL,
|
||||
NpcStringId.I_M_GOING_TO_BACK_OFF_FOR_A_BIT,
|
||||
NpcStringId.I_WILL_ATTACK_THE_ENEMY_S_HEALER,
|
||||
NpcStringId.STOP_ENEMIES_HEALING,
|
||||
NpcStringId.ATTACK_WEAKENED_ENEMY,
|
||||
NpcStringId.COME_AT_ME,
|
||||
NpcStringId.SWITCH_TO_FAST_SHOOTING_MODE,
|
||||
NpcStringId.SWITCH_TO_FAST_CASTING_MODE,
|
||||
NpcStringId.BLINK_ATTACK,
|
||||
NpcStringId.ONLY_DEATH_AWAITS_FOR_THE_WEAK,
|
||||
};
|
||||
static final Location MELISSA_SPAWN = new Location(178146, 14356, -13688);
|
||||
private static final Location SECOND_FLOOR = new Location(179357, 13664, -9828);
|
||||
private static final Location THIRD_FLOOR = new Location(179354, 12922, -12776);
|
||||
|
||||
final List<L2PcInstance> playersInside = new ArrayList<>();
|
||||
final Map<Integer, Integer> killedMonsters = new ConcurrentHashMap<>();
|
||||
static List<L2Npc> firstFloorVictims = new ArrayList<>();
|
||||
public static Future<?> timer;
|
||||
public L2Npc altar;
|
||||
|
||||
public AltarOfShilen()
|
||||
{
|
||||
super(TEMPLATE_ID);
|
||||
addInstanceCreatedId(TEMPLATE_ID);
|
||||
addFirstTalkId(LOGART_VAN_DYKE, RITUAL_ALTAR0, RITUAL_ALTAR1, DINFORD);
|
||||
addSpawnId(CORRUPTED_CAPTAIN, CORRUPTED_HIGH_PRIEST, INVISIBLE, SHILLIEN_ALTAR);
|
||||
addAttackId(ETINA_GOSPEL, ETINA_PRIEST, ETINA_PROTECTORS, ETINA_PUNISHERS, ETINA_COMMINATION, ETINA_DARKMONAGERS, ELITE_ESCORT, ELITE_CHASER, ELITE_WARRIOR, ELITE_ALCHEMIST, ELITE_PRIEST, EMBRYO_RESERCHER, EMBRYO_WATCHMAN, EMBRYO_FIGHTER, EMBRYO_GUARD);
|
||||
addKillId(EXECUTOR_CAPTAIN, CORRUPTED_CAPTAIN, ETINA_BLADESMAN, CORRUPTED_HIGH_PRIEST, ETINA_GOSPEL, ETINA_PROTECTORS, ETINA_PUNISHERS, MELISSA0, MELISSA, ISADORA);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onInstanceCreated(Instance instance, L2PcInstance player)
|
||||
{
|
||||
instance.spawnGroup("general");
|
||||
instance.spawnGroup("first_floor");
|
||||
instance.setStatus(1);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
final Instance world = npc.getInstanceWorld();
|
||||
if (event.equals("enterInstance"))
|
||||
{
|
||||
enterInstance(player, npc, TEMPLATE_ID);
|
||||
if (player.isGM())
|
||||
{
|
||||
playersInside.add(player);
|
||||
}
|
||||
if (player.getParty() != null)
|
||||
{
|
||||
for (L2PcInstance partyMember : player.getParty().getMembers())
|
||||
{
|
||||
playersInside.add(partyMember);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (event.equals("check_player"))
|
||||
{
|
||||
L2World.getInstance().forEachVisibleObjectInRange(npc, L2PcInstance.class, 400, p ->
|
||||
{
|
||||
if ((p != null) && p.isPlayer() && !p.isDead())
|
||||
{
|
||||
npc.setScriptValue(1);
|
||||
final L2Npc gospel = addSpawn(ETINA_GOSPEL, npc, true, 0, false, world.getId());
|
||||
final L2Npc priest = addSpawn(ETINA_PRIEST, npc, true, 0, false, world.getId());
|
||||
final L2Npc protectors = addSpawn(ETINA_PROTECTORS, npc, true, 0, false, world.getId());
|
||||
final L2Npc punishers = addSpawn(ETINA_PUNISHERS, npc, true, 0, false, world.getId());
|
||||
final L2Npc commination = addSpawn(ETINA_COMMINATION, npc, true, 0, false, world.getId());
|
||||
final L2Npc darkmonagers = addSpawn(ETINA_DARKMONAGERS, npc, true, 0, false, world.getId());
|
||||
addAttackPlayerDesire(gospel, p);
|
||||
addAttackPlayerDesire(priest, p);
|
||||
addAttackPlayerDesire(protectors, p);
|
||||
addAttackPlayerDesire(punishers, p);
|
||||
addAttackPlayerDesire(commination, p);
|
||||
addAttackPlayerDesire(darkmonagers, p);
|
||||
}
|
||||
});
|
||||
}
|
||||
if (isInInstance(world))
|
||||
{
|
||||
switch (npc.getId())
|
||||
{
|
||||
case LOGART_VAN_DYKE:
|
||||
{
|
||||
if (event.equals("open_door"))
|
||||
{
|
||||
if (world.getStatus() == 1)
|
||||
{
|
||||
if (world.getDoor(DOORS[0]) != null)
|
||||
{
|
||||
world.getDoor(DOORS[0]).openMe();
|
||||
}
|
||||
world.setStatus(2);
|
||||
onStatusChanged(world);
|
||||
break;
|
||||
}
|
||||
else if (world.getStatus() == 3)
|
||||
{
|
||||
if (world.getDoor(DOORS[1]) != null)
|
||||
{
|
||||
world.getDoor(DOORS[1]).openMe();
|
||||
}
|
||||
world.setStatus(4);
|
||||
onStatusChanged(world);
|
||||
break;
|
||||
}
|
||||
else if (world.getStatus() == 5)
|
||||
{
|
||||
if (world.getDoor(DOORS[2]) != null)
|
||||
{
|
||||
world.getDoor(DOORS[2]).openMe();
|
||||
}
|
||||
world.setStatus(6);
|
||||
onStatusChanged(world);
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case RITUAL_ALTAR0:
|
||||
{
|
||||
if ((world.getStatus() == 3) && event.equals("teleport1"))
|
||||
{
|
||||
L2World.getInstance().forEachVisibleObjectInRange(npc, L2PcInstance.class, 1000, p ->
|
||||
{
|
||||
if ((p != null) && p.isPlayable() && !p.isDead())
|
||||
{
|
||||
p.teleToLocation(SECOND_FLOOR, world.getTemplateId());
|
||||
}
|
||||
world.spawnGroup("second_floor");
|
||||
});
|
||||
}
|
||||
break;
|
||||
}
|
||||
case RITUAL_ALTAR1:
|
||||
{
|
||||
if ((world.getStatus() == 5) && event.equals("teleport2"))
|
||||
{
|
||||
L2World.getInstance().forEachVisibleObjectInRange(npc, L2PcInstance.class, 1000, p ->
|
||||
{
|
||||
if ((p != null) && p.isPlayable() && !p.isDead())
|
||||
{
|
||||
p.teleToLocation(THIRD_FLOOR, world.getTemplateId());
|
||||
}
|
||||
world.spawnGroup("thrid_floor");
|
||||
});
|
||||
}
|
||||
break;
|
||||
}
|
||||
case DINFORD:
|
||||
{
|
||||
if ((world.getStatus() == 6) && event.equals("final_door"))
|
||||
{
|
||||
if (!world.getDoor(DOORS[6]).isOpen())
|
||||
{
|
||||
world.getDoor(DOORS[6]).openMe();
|
||||
}
|
||||
world.setStatus(7);
|
||||
onStatusChanged(world);
|
||||
npc.deleteMe();
|
||||
cancelQuestTimers("check_player");
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return super.onAdvEvent(event, npc, player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAttack(L2Npc npc, L2PcInstance attacker, int damage, boolean isSummon)
|
||||
{
|
||||
if (npc.getInstanceWorld() != null)
|
||||
{
|
||||
if (getRandom(30) < 3)
|
||||
{
|
||||
npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), SHOUT_MSG[getRandom(SHOUT_MSG.length)]));
|
||||
}
|
||||
}
|
||||
return super.onAttack(npc, attacker, damage, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
|
||||
{
|
||||
final Instance world = npc.getInstanceWorld();
|
||||
if (world != null)
|
||||
{
|
||||
int npcId = npc.getId();
|
||||
if (!killedMonsters.containsKey(npcId))
|
||||
{
|
||||
killedMonsters.put(npcId, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
killedMonsters.put(npcId, killedMonsters.get(npcId) + 1);
|
||||
}
|
||||
// 1st Floor
|
||||
if (world.getStatus() == 2)
|
||||
{
|
||||
if (killedMonsters.containsKey(EXECUTOR_CAPTAIN) && (killedMonsters.get(EXECUTOR_CAPTAIN) >= 3))
|
||||
{
|
||||
final int boos1 = world.getTemplateParameters().getInt("boss1");
|
||||
final L2Npc captain = world.getNpc(boos1);
|
||||
if (captain != null)
|
||||
{
|
||||
captain.setIsInvul(false);
|
||||
}
|
||||
}
|
||||
if (killedMonsters.containsKey(CORRUPTED_CAPTAIN) && (killedMonsters.get(CORRUPTED_CAPTAIN) >= 1))
|
||||
{
|
||||
for (L2PcInstance player : playersInside)
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage("You can move to the next floor through the Altar of Sacrifice.", ExShowScreenMessage.MIDDLE_CENTER, 5000));
|
||||
}
|
||||
world.setStatus(3);
|
||||
killedMonsters.clear();
|
||||
onStatusChanged(world);
|
||||
}
|
||||
}
|
||||
// 2st Floor
|
||||
else if (world.getStatus() == 4)
|
||||
{
|
||||
if (killedMonsters.containsKey(ETINA_BLADESMAN) && (killedMonsters.get(ETINA_BLADESMAN) >= 3))
|
||||
{
|
||||
final int boos2 = world.getTemplateParameters().getInt("boss2");
|
||||
final L2Npc priest = world.getNpc(boos2);
|
||||
if (priest != null)
|
||||
{
|
||||
priest.setIsInvul(false);
|
||||
}
|
||||
}
|
||||
if (killedMonsters.containsKey(CORRUPTED_HIGH_PRIEST) && (killedMonsters.get(CORRUPTED_HIGH_PRIEST) >= 1))
|
||||
{
|
||||
for (L2PcInstance player : playersInside)
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage("You can move to the next floor through the Altar of Sacrifice.", ExShowScreenMessage.MIDDLE_CENTER, 5000));
|
||||
}
|
||||
world.setStatus(5);
|
||||
killedMonsters.clear();
|
||||
onStatusChanged(world);
|
||||
|
||||
}
|
||||
}
|
||||
// 3st Floor
|
||||
else if (world.getStatus() == 6)
|
||||
{
|
||||
switch (npc.getId())
|
||||
{
|
||||
case ETINA_GOSPEL:
|
||||
{
|
||||
world.getDoor(DOORS[3]).openMe();
|
||||
ThreadPool.schedule(() -> world.getDoor(DOORS[3]).closeMe(), 5000);
|
||||
break;
|
||||
}
|
||||
case ETINA_PROTECTORS:
|
||||
{
|
||||
world.getDoor(DOORS[4]).openMe();
|
||||
ThreadPool.schedule(() -> world.getDoor(DOORS[4]).closeMe(), 5000);
|
||||
break;
|
||||
}
|
||||
case ETINA_PUNISHERS:
|
||||
{
|
||||
world.getDoor(DOORS[5]).openMe();
|
||||
ThreadPool.schedule(() -> world.getDoor(DOORS[5]).closeMe(), 5000);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (world.getStatus() == 8)
|
||||
{
|
||||
if (killedMonsters.containsKey(MELISSA) && (killedMonsters.get(MELISSA) == 1))
|
||||
{
|
||||
for (L2PcInstance player : playersInside)
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage(NpcStringId.ALTAR_OF_SHILEN_HAS_BEEN_DESTROYED_YOU_VE_WON, ExShowScreenMessage.TOP_CENTER, 5000, true));
|
||||
}
|
||||
playersInside.clear();
|
||||
killedMonsters.clear();
|
||||
world.finishInstance(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onSpawn(L2Npc npc)
|
||||
{
|
||||
if (npc.getInstanceWorld() != null)
|
||||
{
|
||||
switch (npc.getId())
|
||||
{
|
||||
case CORRUPTED_CAPTAIN:
|
||||
case CORRUPTED_HIGH_PRIEST:
|
||||
{
|
||||
npc.setIsInvul(true);
|
||||
break;
|
||||
}
|
||||
case INVISIBLE:
|
||||
{
|
||||
if (npc.isScriptValue(0))
|
||||
{
|
||||
startQuestTimer("check_player", 2000, npc, null, true);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case SHILLIEN_ALTAR:
|
||||
{
|
||||
altar = npc;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return super.onSpawn(npc);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onFirstTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
final Instance world = npc.getInstanceWorld();
|
||||
String htmltext = null;
|
||||
if (isInInstance(world))
|
||||
{
|
||||
switch (npc.getId())
|
||||
{
|
||||
case LOGART_VAN_DYKE:
|
||||
{
|
||||
if ((world.getStatus() > 0) && (world.getStatus() < 3))
|
||||
{
|
||||
return "34331.html";
|
||||
}
|
||||
else if ((world.getStatus() >= 3) && (world.getStatus() < 5))
|
||||
{
|
||||
return "34331-01.html";
|
||||
}
|
||||
else if (world.getStatus() >= 5)
|
||||
{
|
||||
return "34331-02.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case RITUAL_ALTAR0:
|
||||
{
|
||||
if (world.getStatus() >= 3)
|
||||
{
|
||||
return "19121.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case RITUAL_ALTAR1:
|
||||
{
|
||||
if (world.getStatus() >= 5)
|
||||
{
|
||||
return "19122.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case DINFORD:
|
||||
{
|
||||
if (world.getStatus() >= 5)
|
||||
{
|
||||
return "34332.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
public static class VictimDefeatTask implements Runnable
|
||||
{
|
||||
private final Instance _world;
|
||||
private int _victims;
|
||||
private final int _initialTime;
|
||||
private int _time;
|
||||
|
||||
VictimDefeatTask(int victims, int time, Instance world)
|
||||
{
|
||||
_world = world;
|
||||
_victims = victims;
|
||||
_initialTime = time;
|
||||
_time = time;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run()
|
||||
{
|
||||
for (L2PcInstance player : _world.getPlayers())
|
||||
{
|
||||
player.sendPacket(new ExSendUIEvent(player, ExSendUIEvent.TYPE_GP_TIMER, (_time--), 0, NpcStringId.SACRIFICE_LEFT_S1, new String[]
|
||||
{
|
||||
String.valueOf(_victims)
|
||||
}));
|
||||
}
|
||||
if (_time <= 0)
|
||||
{
|
||||
_time = _initialTime;
|
||||
--_victims;
|
||||
for (L2PcInstance player : _world.getPlayers())
|
||||
{
|
||||
player.sendPacket(new Earthquake(player.getX(), player.getY(), player.getZ(), 20, 5));
|
||||
player.sendPacket(new ExShowScreenMessage(NpcStringId.SACRIFICE_HAS_BEEN_KILLED_SACRIFICE_LEFT_S1, ExShowScreenMessage.MIDDLE_CENTER, 3000, String.valueOf(_victims)));
|
||||
}
|
||||
}
|
||||
if ((_world.getStatus() == 2) && !firstFloorVictims.isEmpty())
|
||||
{
|
||||
firstFloorVictims.get(0).deleteMe();
|
||||
firstFloorVictims.remove(0);
|
||||
}
|
||||
if ((_victims == 1) && (_world.getStatus() == 2))
|
||||
{
|
||||
for (L2PcInstance player : _world.getPlayers())
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage("4 lives were sacrificed and the Blessing of Blood is bestowed upon the Corrupted Captain.", ExShowScreenMessage.MIDDLE_CENTER, 10000));
|
||||
}
|
||||
}
|
||||
if ((_victims == 1) && (_world.getStatus() == 4))
|
||||
{
|
||||
for (L2PcInstance player : _world.getPlayers())
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage("4 lives were sacrificed and the Blessing of Blood is bestowed upon the Corrupted High Priest.", ExShowScreenMessage.MIDDLE_CENTER, 10000));
|
||||
}
|
||||
}
|
||||
if (_victims <= 0)
|
||||
{
|
||||
ThreadPool.schedule(() ->
|
||||
{
|
||||
for (L2PcInstance player : _world.getPlayers())
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage("All offerings were sacrificed and the Blessing of Blood is bestowed upon the Embryo Colony in that floor.", ExShowScreenMessage.MIDDLE_CENTER, 3000));
|
||||
}
|
||||
if (timer != null)
|
||||
{
|
||||
timer.cancel(true);
|
||||
timer = null;
|
||||
}
|
||||
_world.finishInstance(1);
|
||||
}, 3000);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void onStatusChanged(final Instance world)
|
||||
{
|
||||
final Instance instance = InstanceManager.getInstance().getInstance(world.getId());
|
||||
switch (instance.getStatus())
|
||||
{
|
||||
case 1:
|
||||
{
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
if (timer != null)
|
||||
{
|
||||
timer.cancel(true);
|
||||
}
|
||||
for (L2PcInstance player : playersInside)
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage(NpcStringId.YOU_MUST_STOP_THE_ALTAR_BEFORE_EVERYTHING_IS_SACRIFICED, ExShowScreenMessage.MIDDLE_CENTER, 6000));
|
||||
}
|
||||
timer = ThreadPool.scheduleAtFixedRate(new VictimDefeatTask(5, ALTAR_TIME, world), 0, 1000);
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
{
|
||||
if (timer != null)
|
||||
{
|
||||
timer.cancel(true);
|
||||
timer = null;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 4:
|
||||
{
|
||||
if (timer != null)
|
||||
{
|
||||
timer.cancel(true);
|
||||
}
|
||||
for (L2PcInstance player : playersInside)
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage(NpcStringId.YOU_MUST_STOP_THE_ALTAR_BEFORE_EVERYTHING_IS_SACRIFICED, ExShowScreenMessage.MIDDLE_CENTER, 6000));
|
||||
}
|
||||
timer = ThreadPool.scheduleAtFixedRate(new VictimDefeatTask(5, ALTAR_TIME, world), 0, 1000);
|
||||
break;
|
||||
}
|
||||
case 5:
|
||||
case 6:
|
||||
{
|
||||
if (timer != null)
|
||||
{
|
||||
timer.cancel(true);
|
||||
timer = null;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 7:
|
||||
{
|
||||
ThreadPool.schedule(() -> timer = ThreadPool.scheduleAtFixedRate(new Runnable()
|
||||
{
|
||||
private int _time = ALTAR_TIME;
|
||||
|
||||
@Override
|
||||
public void run()
|
||||
{
|
||||
if (_time <= 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
boolean defeated = false;
|
||||
if (killedMonsters.containsKey(MELISSA0) && (killedMonsters.get(MELISSA0) == 1) && killedMonsters.containsKey(ISADORA) && (killedMonsters.get(ISADORA) == 1))
|
||||
{
|
||||
defeated = true;
|
||||
for (L2PcInstance player : playersInside)
|
||||
{
|
||||
player.sendPacket(new ExSendUIEvent(player, ExSendUIEvent.TYPE_NORNIL, (_time--), 0, 0, 0, 0, 2518008));
|
||||
player.sendPacket(new ExSendUIEvent(player, 0x01, 0, 0, 0, 0, 0, 2518008));
|
||||
player.sendPacket(new ExShowScreenMessage(NpcStringId.ALTAR_HAS_STOPPED, ExShowScreenMessage.MIDDLE_CENTER, 5000));
|
||||
addSpawn(MELISSA, MELISSA_SPAWN.getX(), MELISSA_SPAWN.getY(), MELISSA_SPAWN.getZ(), 0, false, 0, true, world.getId());
|
||||
if (timer != null)
|
||||
{
|
||||
timer.cancel(true);
|
||||
timer = null;
|
||||
}
|
||||
altar.deleteMe();
|
||||
world.setStatus(8);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (L2PcInstance player : world.getPlayers())
|
||||
{
|
||||
if (_time == ALTAR_TIME)
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage(NpcStringId.ALTAR_OF_SHILEN_IS_STARTING_MUST_FOCUS_FIRE_THE_ALTAR, ExShowScreenMessage.MIDDLE_CENTER, 5000));
|
||||
}
|
||||
player.sendPacket(new ExSendUIEvent(player, ExSendUIEvent.TYPE_NORNIL, (_time--), 0, 0, 0, 0, 2518008));
|
||||
}
|
||||
}
|
||||
|
||||
if (!defeated && (_time == 9))
|
||||
{
|
||||
for (L2PcInstance player : playersInside)
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage("The Altar of Shilen will become activated in 10 seconds.", ExShowScreenMessage.MIDDLE_CENTER, 5000));
|
||||
}
|
||||
}
|
||||
|
||||
if (!defeated && (_time == 4))
|
||||
{
|
||||
for (L2PcInstance player : playersInside)
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage("The Altar of Shilen will become activated in 5 seconds.", ExShowScreenMessage.MIDDLE_CENTER, 5000));
|
||||
}
|
||||
}
|
||||
|
||||
if (!defeated && (_time <= 0))
|
||||
{
|
||||
for (L2PcInstance player : playersInside)
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage(NpcStringId.FOCUS_FIRE_THE_ALTAR_TO_STOP_BLESSING_OF_SHILEN, ExShowScreenMessage.MIDDLE_CENTER, 5000));
|
||||
}
|
||||
|
||||
if (isInInstance(world))
|
||||
{
|
||||
L2World.getInstance().forEachVisibleObjectInRange(altar, L2MonsterInstance.class, 8000, boss ->
|
||||
{
|
||||
if ((boss != null) && !boss.isDead())
|
||||
{
|
||||
altar.doCast(PROTECTED_ALTAR.getSkill());
|
||||
boss.setCurrentHp(boss.getCurrentHp() + (boss.getMaxHp() / 2));
|
||||
for (L2PcInstance player : playersInside)
|
||||
{
|
||||
player.sendPacket(new Earthquake(player.getX(), player.getY(), player.getZ(), 30, 5));
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
if ((_time <= 0) && world.isStatus(7))
|
||||
{
|
||||
ThreadPool.schedule(() ->
|
||||
{
|
||||
_time = ALTAR_TIME;
|
||||
}, 15000);
|
||||
}
|
||||
}
|
||||
}, 0, 1000), 5000);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new AltarOfShilen();
|
||||
}
|
||||
}
|
5
L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AltarOfShilen/condNoGroup.html
vendored
Normal file
5
L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AltarOfShilen/condNoGroup.html
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Agent Georgio:<br>
|
||||
The Altar of Shilen is extremely dangerous.<br>
|
||||
You're trying to go there alone. You may be either very confident or reckless.<br>
|
||||
To let you go is to send you to your death. If you want to go to the Altar of Shilen and stop the ritual, please gather allies and return.
|
||||
</body></html>
|
3
L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AltarOfShilen/condNoLevel.html
vendored
Normal file
3
L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AltarOfShilen/condNoLevel.html
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Agent Georgio:<br>
|
||||
(A party members level must be 101 - 105 Lvl to challenge Altar of Shilen.)
|
||||
</body></html>
|
3
L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AltarOfShilen/condNoPartyLeader.html
vendored
Normal file
3
L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AltarOfShilen/condNoPartyLeader.html
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Agent Georgio:<br>
|
||||
Only a party leader may enter the altar of Shilen
|
||||
</body></html>
|
3
L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AltarOfShilen/condSmallGroup.html
vendored
Normal file
3
L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AltarOfShilen/condSmallGroup.html
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Agent Georgio:<br>
|
||||
You are too weak. Gather more people.
|
||||
</body></html>
|
@@ -683,7 +683,7 @@
|
||||
<height normal="0.1" />
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="19121" level="95" type="L2Monster" name="Altar of Sacrifice">
|
||||
<npc id="19121" level="95" type="L2Npc" name="Altar of Sacrifice" >
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>CONSTRUCT</race>
|
||||
<sex>MALE</sex>
|
||||
@@ -710,7 +710,7 @@
|
||||
<height normal="22.5" />
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="19122" level="95" type="L2Monster" name="Altar of Sacrifice">
|
||||
<npc id="19122" level="95" type="L2Npc" name="Altar of Sacrifice" >
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>CONSTRUCT</race>
|
||||
<sex>MALE</sex>
|
||||
@@ -737,7 +737,7 @@
|
||||
<height normal="22.5" />
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="19123" level="95" type="L2Monster" name="Altar of Shilen">
|
||||
<npc id="19123" level="95" type="L2Npc" name="Altar of Shilen" >
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>CONSTRUCT</race>
|
||||
<sex>MALE</sex>
|
||||
|
@@ -2349,19 +2349,19 @@
|
||||
<height normal="60" />
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="25856" level="96" type="L2RaidBoss" name="Isadora" title="Great Magus of Greed">
|
||||
<npc id="25856" level="104" type="L2RaidBoss" name="Isadora" title="Great Magus of Greed">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<parameters>
|
||||
<param name="IsAggressive" value="1" />
|
||||
<skill name="Skill02_ID" id="14519" level="1" />
|
||||
<skill name="Skill03_ID" id="14520" level="1" />
|
||||
<skill name="Skill01_ID" id="23707" level="4" />
|
||||
<skill name="Skill02_ID" id="16979" level="1" />
|
||||
<param name="Attack_BoostValue" value="146" />
|
||||
</parameters>
|
||||
<race>HUMANOID</race>
|
||||
<sex>FEMALE</sex>
|
||||
<mpReward value="53" type="DIFF" ticks="10" affects="PARTY" />
|
||||
<stats str="164" int="188" dex="48" wit="71" con="111" men="149">
|
||||
<vitals hp="530201" hpRegen="8.5" mp="2242" mpRegen="30" />
|
||||
<vitals hp="2081767" hpRegen="8.5" mp="33087" mpRegen="30" />
|
||||
<speed>
|
||||
<walk ground="30" />
|
||||
<run ground="180" />
|
||||
@@ -2384,9 +2384,9 @@
|
||||
<skill id="4440" level="5" /> <!-- Greater Paralysis Resistance -->
|
||||
<skill id="4441" level="5" /> <!-- Greater Mental Attack Resistance -->
|
||||
<skill id="4439" level="5" /> <!-- Greater Hold Resistance -->
|
||||
<skill id="4494" level="1" /> <!-- Raid Boss -->
|
||||
<skill id="14520" level="1" /> <!-- Ice Box of Hell -->
|
||||
<skill id="14519" level="1" /> <!-- Fire Pit of Hell -->
|
||||
<skill id="16979" level="1" /> <!-- Hellfire -->
|
||||
<skill id="23707" level="4" /> <!-- Chaos fire -->
|
||||
<skill id="16980" level="1" /> <!-- Infernal Icicles -->
|
||||
<skill id="4415" level="3" /> <!-- One-handed Sword -->
|
||||
<skill id="14765" level="4" /> <!-- Blood Siphon Resistance -->
|
||||
<skill id="14620" level="1" /> <!-- Aerial Yoke Resistance 1 -->
|
||||
@@ -2395,7 +2395,7 @@
|
||||
<skill id="14617" level="1" /> <!-- Knock Down Resistance -->
|
||||
<skill id="14619" level="1" /> <!-- Disarm Resistance -->
|
||||
</skillList>
|
||||
<ai clanHelpRange="300" aggroRange="300">
|
||||
<ai clanHelpRange="400" aggroRange="400">
|
||||
<clanList>
|
||||
<clan>EMBRYO_BOSS</clan>
|
||||
</clanList>
|
||||
@@ -2404,21 +2404,123 @@
|
||||
<radius normal="24" />
|
||||
<height normal="60" />
|
||||
</collision>
|
||||
<dropLists>
|
||||
<drop>
|
||||
<item id="17527" min="1" max="1" chance="61.17" /> <!-- Scroll: Enchant Armor (R-grade) -->
|
||||
<item id="36574" min="1" max="1" chance="50.91" /> <!-- Scroll: Modify Weapon (R-grade) -->
|
||||
<item id="36586" min="1" max="1" chance="48.8" /> <!-- Scroll: Modify Armor (R-grade) -->
|
||||
<item id="17526" min="1" max="1" chance="39.83" /> <!-- Scroll: Enchant Weapon (R-grade) -->
|
||||
<item id="35352" min="1" max="1" chance="1.945" /> <!-- Eternal Glove Ingredient -->
|
||||
<item id="35346" min="1" max="1" chance="1.944" /> <!-- Eternal Leather Legging Ingredient -->
|
||||
<item id="35344" min="1" max="1" chance="1.921" /> <!-- Eternal Leather Helmet Ingredient -->
|
||||
<item id="35342" min="1" max="1" chance="1.92" /> <!-- Eternal Boot Ingredient -->
|
||||
<item id="35345" min="1" max="1" chance="1.906" /> <!-- Eternal Leather Armor Ingredient -->
|
||||
<item id="35348" min="1" max="1" chance="1.901" /> <!-- Eternal Leather Boot Ingredient -->
|
||||
<item id="35339" min="1" max="1" chance="1.896" /> <!-- Eternal Breastplate Ingredient -->
|
||||
<item id="35351" min="1" max="1" chance="1.895" /> <!-- Eternal Stocking Ingredient -->
|
||||
<item id="35338" min="1" max="1" chance="1.894" /> <!-- Eternal Helmet Ingredient -->
|
||||
<item id="35343" min="1" max="1" chance="1.889" /> <!-- Eternal Shield Ingredient -->
|
||||
<item id="35353" min="1" max="1" chance="1.884" /> <!-- Eternal Shoe Ingredient -->
|
||||
<item id="35349" min="1" max="1" chance="1.875" /> <!-- Eternal Circlet Ingredient -->
|
||||
<item id="35340" min="1" max="1" chance="1.867" /> <!-- Eternal Gaiter Ingredient -->
|
||||
<item id="35347" min="1" max="1" chance="1.864" /> <!-- Eternal Leather Glove Ingredient -->
|
||||
<item id="35350" min="1" max="1" chance="1.858" /> <!-- Eternal Tunic Ingredient -->
|
||||
<item id="35354" min="1" max="1" chance="1.854" /> <!-- Eternal Sigil Ingredient -->
|
||||
<item id="35341" min="1" max="1" chance="1.825" /> <!-- Eternal Gauntlet Ingredient -->
|
||||
<item id="35328" min="1" max="1" chance="0.75" /> <!-- Amaranthine Cutter Fragment -->
|
||||
<item id="35329" min="1" max="1" chance="0.75" /> <!-- Amaranthine Slasher Fragment -->
|
||||
<item id="35327" min="1" max="1" chance="0.75" /> <!-- Amaranthine Shaper Fragment -->
|
||||
<item id="35331" min="1" max="1" chance="0.75" /> <!-- Amaranthine Fighter Fragment -->
|
||||
<item id="35337" min="1" max="1" chance="0.75" /> <!-- Amaranthine Retributer Fragment -->
|
||||
<item id="35332" min="1" max="1" chance="0.75" /> <!-- Amaranthine Stormer Fragment -->
|
||||
<item id="35333" min="1" max="1" chance="0.75" /> <!-- Amaranthine Thrower Fragment -->
|
||||
<item id="35335" min="1" max="1" chance="0.75" /> <!-- Amaranthine Buster Fragment -->
|
||||
<item id="35334" min="1" max="1" chance="0.75" /> <!-- Amaranthine Shooter Fragment -->
|
||||
<item id="35336" min="1" max="1" chance="0.75" /> <!-- Amaranthine Caster Fragment -->
|
||||
<item id="35330" min="1" max="1" chance="0.75" /> <!-- Amaranthine Avenger Fragment -->
|
||||
<item id="35473" min="1" max="1" chance="0.3" /> <!-- Recipe: Eternal Circlet (60%) -->
|
||||
<item id="35472" min="1" max="1" chance="0.3" /> <!-- Recipe: Eternal Leather Boots (60%) -->
|
||||
<item id="35471" min="1" max="1" chance="0.3" /> <!-- Recipe: Eternal Leather Gloves (60%) -->
|
||||
<item id="35470" min="1" max="1" chance="0.3" /> <!-- Recipe: Eternal Leather Leggings (60%) -->
|
||||
<item id="35469" min="1" max="1" chance="0.3" /> <!-- Recipe: Eternal Leather Armor (60%) -->
|
||||
<item id="35474" min="1" max="1" chance="0.3" /> <!-- Recipe: Eternal Tunic (60%) -->
|
||||
<item id="35475" min="1" max="1" chance="0.3" /> <!-- Recipe: Eternal Stockings (60%) -->
|
||||
<item id="35476" min="1" max="1" chance="0.3" /> <!-- Recipe: Eternal Gloves (60%) -->
|
||||
<item id="35477" min="1" max="1" chance="0.3" /> <!-- Recipe: Eternal Shoes (60%) -->
|
||||
<item id="35478" min="1" max="1" chance="0.3" /> <!-- Recipe: Eternal Sigil (60%) -->
|
||||
<item id="46476" min="1" max="1" chance="0.3" /> <!-- Leona's Soul Crystal - Stage 3 -->
|
||||
<item id="46491" min="1" max="1" chance="0.3" /> <!-- Pantheon's Soul Crystal - Stage 3 -->
|
||||
<item id="46506" min="1" max="1" chance="0.3" /> <!-- Lionel's Soul Crystal - Stage 3 -->
|
||||
<item id="35468" min="1" max="1" chance="0.3" /> <!-- Recipe: Eternal Leather Helmet (60%) -->
|
||||
<item id="35467" min="1" max="1" chance="0.3" /> <!-- Recipe: Eternal Shield (60%) -->
|
||||
<item id="35466" min="1" max="1" chance="0.3" /> <!-- Recipe: Eternal Boots (60%) -->
|
||||
<item id="35452" min="1" max="1" chance="0.3" /> <!-- Recipe: Amaranthine Cutter (60%) -->
|
||||
<item id="35451" min="1" max="1" chance="0.3" /> <!-- Recipe: Amaranthine Shaper (60%) -->
|
||||
<item id="35454" min="1" max="1" chance="0.3" /> <!-- Recipe: Amaranthine Avenger (60%) -->
|
||||
<item id="35455" min="1" max="1" chance="0.3" /> <!-- Recipe: Amaranthine Fighter (60%) -->
|
||||
<item id="35456" min="1" max="1" chance="0.3" /> <!-- Recipe: Amaranthine Stormer (60%) -->
|
||||
<item id="35457" min="1" max="1" chance="0.3" /> <!-- Recipe: Amaranthine Thrower (60%) -->
|
||||
<item id="35458" min="1" max="1" chance="0.3" /> <!-- Recipe: Amaranthine Shooter (60%) -->
|
||||
<item id="35459" min="1" max="1" chance="0.3" /> <!-- Recipe: Amaranthine Buster (60%) -->
|
||||
<item id="35465" min="1" max="1" chance="0.3" /> <!-- Recipe: Eternal Gauntlets (60%) -->
|
||||
<item id="35464" min="1" max="1" chance="0.3" /> <!-- Recipe: Eternal Gaiters (60%) -->
|
||||
<item id="35463" min="1" max="1" chance="0.3" /> <!-- Recipe: Eternal Breastplate (60%) -->
|
||||
<item id="35462" min="1" max="1" chance="0.3" /> <!-- Recipe: Eternal Helmet (60%) -->
|
||||
<item id="35460" min="1" max="1" chance="0.3" /> <!-- Recipe: Amaranthine Caster (60%) -->
|
||||
<item id="35453" min="1" max="1" chance="0.3" /> <!-- Recipe: Amaranthine Slasher (60%) -->
|
||||
<item id="35461" min="1" max="1" chance="0.3" /> <!-- Recipe: Amaranthine Retributer (60%) -->
|
||||
<item id="46493" min="1" max="1" chance="0.075" /> <!-- Pantheon's Soul Crystal - Stage 5 -->
|
||||
<item id="46507" min="1" max="1" chance="0.075" /> <!-- Lionel's Soul Crystal - Stage 4 -->
|
||||
<item id="46508" min="1" max="1" chance="0.075" /> <!-- Lionel's Soul Crystal - Stage 5 -->
|
||||
<item id="46478" min="1" max="1" chance="0.075" /> <!-- Leona's Soul Crystal - Stage 5 -->
|
||||
<item id="46477" min="1" max="1" chance="0.075" /> <!-- Leona's Soul Crystal - Stage 4 -->
|
||||
<item id="46492" min="1" max="1" chance="0.075" /> <!-- Pantheon's Soul Crystal - Stage 4 -->
|
||||
<item id="46446" min="1" max="1" chance="0.075" /> <!-- Kain's Soul Crystal - Stage 3 -->
|
||||
<item id="46447" min="1" max="1" chance="0.075" /> <!-- Kain's Soul Crystal - Stage 4 -->
|
||||
<item id="46462" min="1" max="1" chance="0.075" /> <!-- Mermoden's Soul Crystal - Stage 4 -->
|
||||
<item id="46461" min="1" max="1" chance="0.075" /> <!-- Mermoden's Soul Crystal - Stage 3 -->
|
||||
<item id="46448" min="1" max="1" chance="0.03" /> <!-- Kain's Soul Crystal - Stage 5 -->
|
||||
<item id="46495" min="1" max="1" chance="0.03" /> <!-- Pantheon's Soul Crystal - Stage 7 -->
|
||||
<item id="46494" min="1" max="1" chance="0.03" /> <!-- Pantheon's Soul Crystal - Stage 6 -->
|
||||
<item id="46509" min="1" max="1" chance="0.03" /> <!-- Lionel's Soul Crystal - Stage 6 -->
|
||||
<item id="46510" min="1" max="1" chance="0.03" /> <!-- Lionel's Soul Crystal - Stage 7 -->
|
||||
<item id="46480" min="1" max="1" chance="0.03" /> <!-- Leona's Soul Crystal - Stage 7 -->
|
||||
<item id="46479" min="1" max="1" chance="0.03" /> <!-- Leona's Soul Crystal - Stage 6 -->
|
||||
<item id="46463" min="1" max="1" chance="0.03" /> <!-- Mermoden's Soul Crystal - Stage 5 -->
|
||||
<item id="46464" min="1" max="1" chance="0.03" /> <!-- Mermoden's Soul Crystal - Stage 6 -->
|
||||
<item id="46449" min="1" max="1" chance="0.03" /> <!-- Kain's Soul Crystal - Stage 6 -->
|
||||
<item id="46465" min="1" max="1" chance="0.0075" /> <!-- Mermoden's Soul Crystal - Stage 7 -->
|
||||
<item id="46450" min="1" max="1" chance="0.0075" /> <!-- Kain's Soul Crystal - Stage 7 -->
|
||||
<!-- FIXME: Also drops herbs. -->
|
||||
<item id="8600" min="1" max="1" chance="10" /> <!-- Herb of Life -->
|
||||
<item id="8601" min="1" max="1" chance="8" /> <!-- Major Herb of Life -->
|
||||
<item id="8602" min="1" max="1" chance="2" /> <!-- Superior Herb of Life -->
|
||||
<item id="8603" min="1" max="1" chance="19.8" /> <!-- Herb of Mana -->
|
||||
<item id="8604" min="1" max="1" chance="9.9" /> <!-- Major Herb of Mana -->
|
||||
<item id="8605" min="1" max="1" chance="3.3" /> <!-- Superior Herb of Mana -->
|
||||
<item id="34849" min="1" max="1" chance="0.7" /> <!-- Mysterious Herb of Power -->
|
||||
<item id="34850" min="1" max="1" chance="0.7" /> <!-- Mysterious Herb of Magic -->
|
||||
<item id="13028" min="1" max="1" chance="0.1" /> <!-- Vitality Replenishing Herb -->
|
||||
</drop>
|
||||
<lucky>
|
||||
<item id="39629" min="3" max="3" chance="100" /> <!-- Fortune Pocket - Stage 1 -->
|
||||
</lucky>
|
||||
</dropLists>
|
||||
</npc>
|
||||
<npc id="25857" level="95" type="L2Monster" name="Corrupted Captain">
|
||||
<npc id="25857" level="103" type="L2Monster" name="Corrupted Captain" title="Guardian of the Altar">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<parameters>
|
||||
<param name="IsAggressive" value="1" />
|
||||
<skill name="Skill01_ID" id="14521" level="1" />
|
||||
<skill name="Skill02_ID" id="14194" level="1" />
|
||||
<skill name="Skill01_ID" id="16982" level="1" /> <!-- Devil Horns of Shield -->
|
||||
<skill name="Skill02_ID" id="16981" level="1" /> <!-- Fallen Execution -->
|
||||
<param name="Attack_BoostValue" value="144" />
|
||||
</parameters>
|
||||
<race>HUMANOID</race>
|
||||
<sex>MALE</sex>
|
||||
<acquire exp="49522881" sp="11885" />
|
||||
<acquire exp="38462527312" sp="38462505" />
|
||||
<mpReward value="53" type="DIFF" ticks="10" affects="PARTY" />
|
||||
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
|
||||
<vitals hp="560294" hpRegen="8.5" mp="22058" mpRegen="30" />
|
||||
<vitals hp="1705440" hpRegen="8.5" mp="33087" mpRegen="30" />
|
||||
<speed>
|
||||
<walk ground="30" />
|
||||
<run ground="120" />
|
||||
@@ -2435,10 +2537,12 @@
|
||||
<skillList>
|
||||
<skill id="5467" level="1" /> <!-- Strong against the dark elemental. -->
|
||||
<skill id="4416" level="6" /> <!-- Humanoids -->
|
||||
<skill id="14194" level="1" /> <!-- Range Stun -->
|
||||
<skill id="4415" level="3" /> <!-- One-handed Sword -->
|
||||
<skill id="14765" level="3" /> <!-- Blood Siphon Resistance -->
|
||||
<skill id="4045" level="1" /> <!-- Resist Full Magic Attack -->
|
||||
<skill id="16982" level="1" /> <!-- Devil Horns of Shield -->
|
||||
<skill id="16981" level="1" /> <!-- Fallen Execution -->
|
||||
<skill id="14194" level="1" /> <!-- Range Stun -->
|
||||
</skillList>
|
||||
<ai clanHelpRange="300" aggroRange="300" />
|
||||
<dropLists>
|
||||
@@ -2455,20 +2559,21 @@
|
||||
<height normal="45" />
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="25858" level="95" type="L2Monster" name="Corrupted High Priest">
|
||||
<npc id="25858" level="103" type="L2Monster" name="Corrupted High Priest" title="Guardian of the Altar">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<parameters>
|
||||
<param name="IsAggressive" value="1" />
|
||||
<skill name="Skill01_ID" id="14522" level="1" />
|
||||
<skill name="Skill02_ID" id="14084" level="6" />
|
||||
<skill name="Skill01_ID" id="16983" level="1" /> <!-- Embryo's Blessing -->
|
||||
<skill name="Skill02_ID" id="23707" level="4" /> <!-- Chaos Fire -->
|
||||
<skill name="Skill02_ID" id="16984" level="1" /> <!-- Blind Spark -->
|
||||
<param name="Attack_BoostValue" value="144" />
|
||||
</parameters>
|
||||
<race>HUMANOID</race>
|
||||
<sex>FEMALE</sex>
|
||||
<acquire exp="49522881" sp="11885" />
|
||||
<acquire exp="51283369715" sp="51283269" />
|
||||
<mpReward value="53" type="DIFF" ticks="10" affects="PARTY" />
|
||||
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
|
||||
<vitals hp="560294" hpRegen="8.5" mp="33087" mpRegen="30" />
|
||||
<vitals hp="1705440" hpRegen="8.5" mp="33087" mpRegen="30" />
|
||||
<speed>
|
||||
<walk ground="30" />
|
||||
<run ground="120" />
|
||||
@@ -2481,13 +2586,16 @@
|
||||
</attribute>
|
||||
<abnormalResist physical="10" magical="10" />
|
||||
</stats>
|
||||
<status attackable="false" undying="false" />
|
||||
<status attackable="false" undying="false" randomWalk="false" />
|
||||
<skillList>
|
||||
<skill id="5467" level="1" /> <!-- Strong against the dark elemental. -->
|
||||
<skill id="4416" level="6" /> <!-- Humanoids -->
|
||||
<skill id="4415" level="3" /> <!-- One-handed Sword -->
|
||||
<skill id="14765" level="3" /> <!-- Blood Siphon Resistance -->
|
||||
<skill id="4045" level="1" /> <!-- Resist Full Magic Attack -->
|
||||
<skill id="16983" level="1" /> <!-- Embryo's Blessing -->
|
||||
<skill id="23707" level="1" /> <!-- Chaos Fire -->
|
||||
<skill id="16984" level="1" /> <!-- Blind Spark -->
|
||||
</skillList>
|
||||
<ai clanHelpRange="300" aggroRange="300" />
|
||||
<dropLists>
|
||||
@@ -2892,7 +3000,7 @@
|
||||
<height normal="53" />
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="25866" level="94" type="L2Monster" name="Apherus">
|
||||
<npc id="25866" level="94" type="L2RaidBoss" name="Apherus">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<parameters>
|
||||
<skill name="Skill01_ID" id="14462" level="1" />
|
||||
|
@@ -31,6 +31,7 @@ Goddess of Destruction:
|
||||
-Kartia
|
||||
-Fortuna
|
||||
-Nursery
|
||||
-Altar of Shilen
|
||||
-Kimerian
|
||||
-Istina
|
||||
-Octavis
|
||||
|
@@ -1,4 +1,7 @@
|
||||
<html><head><body>Agent Georgio:<br>
|
||||
Sh... I'm currently on duty. If you don't have anything to say, please go away.<br>
|
||||
<html><body>Agent Georgio:<br>
|
||||
Hush! I'm on a mission.<br>
|
||||
The Kingdom's Royal Guards are investigating a report that a ritual is being held on the Altar of Shilen, which has been closed since Melisa and Isadora disappeared. I'd like to ask you to leave us, if you don't mind.<br>
|
||||
Or, if you want to go to the Altar of Shilen to stop the ritual, I can send you there. Just tell me.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest AltarOfShilen enterInstance">To the Altar of Shilen</Button>
|
||||
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
|
||||
</body></html>
|
281
L2J_Mobius_4.0_GrandCrusade/dist/game/data/instances/AltarOfShilen.xml
vendored
Normal file
281
L2J_Mobius_4.0_GrandCrusade/dist/game/data/instances/AltarOfShilen.xml
vendored
Normal file
@@ -0,0 +1,281 @@
|
||||
<instance id="194" maxWorlds="20" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/instance.xsd">
|
||||
<time duration="60" empty="1" />
|
||||
<locations>
|
||||
<enter type="RANDOM">
|
||||
<location x="179400" y="13683" z="-7396"/><!-- First Room -->
|
||||
</enter>
|
||||
<exit type="ORIGIN" />
|
||||
</locations>
|
||||
<parameters>
|
||||
<param name="boss1" value="25857" />
|
||||
<param name="boss2" value="25858" />
|
||||
</parameters>
|
||||
<conditions>
|
||||
<condition type="Party" showMessageAndHtml="true">
|
||||
<param name="html" value="condNoGroup.html" />
|
||||
</condition>
|
||||
<condition type="PartyLeader">
|
||||
<param name="html" value="condNoPartyLeader.html" />
|
||||
</condition>
|
||||
<condition type="GroupMin">
|
||||
<param name="html" value="condSmallGroup.html" />
|
||||
<param name="limit" value="5" />
|
||||
</condition>
|
||||
<condition type="GroupMax">
|
||||
<param name="limit" value="7" />
|
||||
</condition>
|
||||
<condition type="Level" showMessageAndHtml="true">
|
||||
<param name="html" value="condNoLevel.html" />
|
||||
<param name="min" value="101" />
|
||||
</condition>
|
||||
<condition type="Level" showMessageAndHtml="true">
|
||||
<param name="html" value="condNoLevel.html" />
|
||||
<param name="max" value="105" />
|
||||
</condition>
|
||||
<condition type="Distance" />
|
||||
<condition type="Reenter" />
|
||||
</conditions>
|
||||
<reenter apply="ON_FINISH">
|
||||
<reset day="MONDAY" hour="6" minute="30" />
|
||||
<reset day="TUESDAY" hour="6" minute="30" />
|
||||
<reset day="WEDNESDAY" hour="6" minute="30" />
|
||||
<reset day="THURSDAY" hour="6" minute="30" />
|
||||
<reset day="FRIDAY" hour="6" minute="30" />
|
||||
<reset day="SATURDAY" hour="6" minute="30" />
|
||||
<reset day="SUNDAY" hour="6" minute="30" />
|
||||
</reenter>
|
||||
<doorlist>
|
||||
<door id="25180001">
|
||||
<openStatus default="close" />
|
||||
</door>
|
||||
<door id="25180002">
|
||||
<openStatus default="close" />
|
||||
</door>
|
||||
<door id="25180003">
|
||||
<openStatus default="close" />
|
||||
</door>
|
||||
<door id="25180004">
|
||||
<openStatus default="close" />
|
||||
</door>
|
||||
<door id="25180005">
|
||||
<openStatus default="close" />
|
||||
</door>
|
||||
<door id="25180006">
|
||||
<openStatus default="close" />
|
||||
</door>
|
||||
<door id="25180007">
|
||||
<openStatus default="close" />
|
||||
</door>
|
||||
</doorlist>
|
||||
<spawnlist>
|
||||
<group name="general" spawnByDefault="false">
|
||||
<npc id="25856" x="177833" y="14852" z="-13688" heading="0"/> <!-- Isadora -->
|
||||
<npc id="25855" x="178432" y="14848" z="-13688" heading="0"/> <!-- Maliss -->
|
||||
<npc id="34331" x="179521" y="13610" z="-7392" heading="33344"/> <!-- Logart Van Dyke -->
|
||||
<npc id="34331" x="179543" y="13552" z="-9824" heading="32460"/> <!-- Logart Van Dyke -->
|
||||
<npc id="34331" x="179519" y="12797" z="-12768" heading="32712"/> <!-- Logart Van Dyke -->
|
||||
<npc id="34332" x="178149" y="16676" z="-13648" heading="16600"/> <!-- Dinford -->
|
||||
<npc id="19121" x="178150" y="13600" z="-8016" heading="13828"/> <!-- Altar of Sacrifice -->
|
||||
<npc id="19122" x="178150" y="13600" z="-10448" heading="16772"/> <!-- Altar of Sacrifice -->
|
||||
<npc id="19123" x="178150" y="12840" z="-13392" heading="44317"/> <!-- Altar of Sacrifice -->
|
||||
<npc id="19142" x="177584" y="14400" z="-8088" heading="0"/> <!-- Sacrificial Offering -->
|
||||
<npc id="19143" x="177864" y="14534" z="-8088" heading="0"/> <!-- Sacrificial Offering -->
|
||||
<npc id="19144" x="178149" y="14401" z="-8088" heading="0"/> <!-- Sacrificial Offering -->
|
||||
<npc id="19145" x="178439" y="14528" z="-8088" heading="0"/> <!-- Sacrificial Offering -->
|
||||
<npc id="19146" x="178713" y="14417" z="-8088" heading="0"/> <!-- Sacrificial Offering -->
|
||||
<npc id="19147" x="177589" y="14407" z="-10520" heading="0"/> <!-- Sacrificial Offering -->
|
||||
<npc id="19148" x="177863" y="14541" z="-10520" heading="0"/> <!-- Sacrificial Offering -->
|
||||
<npc id="19149" x="178153" y="14415" z="-10520" heading="0"/> <!-- Sacrificial Offering -->
|
||||
<npc id="19150" x="178442" y="14528" z="-10520" heading="0"/> <!-- Sacrificial Offering -->
|
||||
<npc id="19151" x="178712" y="14408" z="-10520" heading="0"/> <!-- Sacrificial Offering -->
|
||||
</group>
|
||||
<group name="first_floor" spawnByDefault="false">
|
||||
<!-- 1st floor 1st room -->
|
||||
<npc id="23142" x="181315" y="14009" z="-7616" heading="23913" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="182829" y="14851" z="-7616" heading="23465" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="181806" y="14543" z="-7608" heading="39123" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="181944" y="15457" z="-7616" heading="54183" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="180840" y="14674" z="-7616" heading="55476" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="181424" y="13863" z="-7616" heading="21874" /> <!-- Embryo Guard -->
|
||||
<npc id="23141" x="181541" y="14179" z="-7616" heading="23691" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="181614" y="14795" z="-7608" heading="37559" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="182055" y="15303" z="-7616" heading="55513" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="182229" y="15643" z="-7616" heading="55481" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="182417" y="14797" z="-7616" heading="21914" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="182521" y="14650" z="-7616" heading="24720" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="181076" y="14829" z="-7616" heading="55433" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="181181" y="14683" z="-7616" heading="55609" /> <!-- Embryo Fighter -->
|
||||
<npc id="23140" x="181649" y="14031" z="-7616" heading="22548" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="180953" y="14515" z="-7616" heading="55493" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="182713" y="15019" z="-7616" heading="22606" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="181871" y="14999" z="-7608" heading="39090" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="182342" y="15487" z="-7616" heading="55459" /> <!-- Embryo Watchman -->
|
||||
<npc id="23139" x="182070" y="14727" z="-7608" heading="39831" /> <!-- Embryo Researcher -->
|
||||
<npc id="23131" x="181834" y="14767" z="-7608" heading="37586" /> <!-- Embryo Executor Captain -->
|
||||
<!-- 1st floor 2st room -->
|
||||
<npc id="23142" x="182413" y="17524" z="-7864" heading="55494" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="181674" y="18255" z="-7872" heading="6330" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="183339" y="17361" z="-7872" heading="8091" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="182531" y="16784" z="-7872" heading="8091" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="182558" y="18468" z="-7872" heading="39871" /> <!-- Embryo Guard -->
|
||||
<npc id="23141" x="182495" y="17988" z="-7864" heading="56703" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="183142" y="17635" z="-7872" heading="39519" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="182485" y="17168" z="-7872" heading="7171" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="182226" y="18648" z="-7872" heading="38766" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="181910" y="17967" z="-7872" heading="5242" /> <!-- Embryo Fighter -->
|
||||
<npc id="23140" x="182688" y="16898" z="-7872" heading="7195" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="183187" y="17254" z="-7872" heading="38269" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="182224" y="17786" z="-7864" heading="55748" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="181548" y="18164" z="-7872" heading="7239" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="182357" y="18743" z="-7872" heading="38963" /> <!-- Embryo Watchman -->
|
||||
<npc id="23139" x="182421" y="18369" z="-7872" heading="39556" /> <!-- Embryo Researcher -->
|
||||
<npc id="23139" x="181772" y="17873" z="-7872" heading="7271" /> <!-- Embryo Researcher -->
|
||||
<npc id="23139" x="182338" y="17063" z="-7872" heading="6940" /> <!-- Embryo Researcher -->
|
||||
<npc id="23139" x="182991" y="17529" z="-7872" heading="39974" /> <!-- Embryo Researcher -->
|
||||
<npc id="23139" x="182687" y="17717" z="-7864" heading="55632" /> <!-- Embryo Researcher -->
|
||||
<npc id="23131" x="182453" y="17756" z="-7864" heading="55808" /> <!-- Embryo Executor Captain -->
|
||||
<!-- 1st floor 3st room -->
|
||||
<npc id="23142" x="179668" y="18331" z="-8128" heading="6204" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="178844" y="18342" z="-8136" heading="56681" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="179236" y="17838" z="-8136" heading="20051" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="179645" y="18913" z="-8136" heading="56524" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="180290" y="18601" z="-8136" heading="23360" /> <!-- Embryo Guard -->
|
||||
<npc id="23141" x="180009" y="18407" z="-8136" heading="23354" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="179922" y="19106" z="-8136" heading="55523" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="179405" y="18141" z="-8128" heading="6007" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="178487" y="18304" z="-8136" heading="56001" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="179061" y="17503" z="-8136" heading="21608" /> <!-- Embryo Fighter -->
|
||||
<npc id="23140" x="178743" y="18481" z="-8136" heading="54910" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="178956" y="17649" z="-8136" heading="23285" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="179473" y="18605" z="-8128" heading="7076" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="179818" y="19256" z="-8136" heading="56591" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="180394" y="18452" z="-8136" heading="24120" /> <!-- Embryo Watchman -->
|
||||
<npc id="23139" x="179539" y="19062" z="-8136" heading="55014" /> <!-- Embryo Researcher -->
|
||||
<npc id="23139" x="179205" y="18414" z="-8128" heading="6803" /> <!-- Embryo Researcher -->
|
||||
<npc id="23139" x="180118" y="18255" z="-8136" heading="23660" /> <!-- Embryo Researcher -->
|
||||
<npc id="23139" x="178594" y="18156" z="-8136" heading="56048" /> <!-- Embryo Researcher -->
|
||||
<npc id="23139" x="179337" y="17699" z="-8136" heading="22822" /> <!-- Embryo Researcher -->
|
||||
<npc id="23131" x="179442" y="18374" z="-8128" heading="4506" /> <!-- Embryo Executor Captain -->
|
||||
<!-- 1st floor 4st room -->
|
||||
<npc id="23141" x="177740" y="15229" z="-8312" heading="65530" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="178548" y="15228" z="-8312" heading="32481" /> <!-- Embryo Fighter -->
|
||||
<npc id="23142" x="178574" y="15774" z="-8312" heading="32849" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="177427" y="15227" z="-8312" heading="2497" /> <!-- Embryo Guard -->
|
||||
<npc id="23140" x="177708" y="15783" z="-8312" heading="1499" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="178827" y="15787" z="-8312" heading="13834" /> <!-- Embryo Watchman -->
|
||||
<npc id="23139" x="178846" y="15216" z="-8312" heading="32391" /> <!-- Embryo Researcher -->
|
||||
<npc id="23139" x="177445" y="15787" z="-8312" heading="669" /> <!-- Embryo Researcher -->
|
||||
<!-- 1st floor boss -->
|
||||
<npc id="25857" x="178146" y="15000" z="-8312" heading="18233" /> <!-- Corrupted Captain -->
|
||||
</group>
|
||||
<group name="second_floor" spawnByDefault="false">
|
||||
<!-- 2st floor 1st room -->
|
||||
<npc id="23129" x="181632" y="14245" z="-10048" heading="24446" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="181669" y="14792" z="-10040" heading="39262" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="182053" y="15304" z="-10048" heading="55811" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="182857" y="14866" z="-10048" heading="22442" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="181156" y="14912" z="-10048" heading="55993" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23127" x="181272" y="14754" z="-10048" heading="55845" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="182351" y="15523" z="-10048" heading="55330" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="181355" y="14048" z="-10048" heading="22899" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="182534" y="14638" z="-10048" heading="23741" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="181998" y="14734" z="-10040" heading="39347" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23128" x="181805" y="14600" z="-10040" heading="37848" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="181860" y="14928" z="-10040" heading="39680" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="182414" y="14801" z="-10048" heading="26424" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="182238" y="15682" z="-10048" heading="55327" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="180995" y="14557" z="-10048" heading="55965" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="181746" y="14095" z="-10048" heading="21944" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23126" x="181444" y="13882" z="-10048" heading="23910" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23126" x="180906" y="14732" z="-10048" heading="56442" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23126" x="182712" y="15019" z="-10048" heading="23218" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23126" x="181936" y="15470" z="-10048" heading="55180" /> <!-- Embryo Elite Escort -->
|
||||
<!-- 2st floor 2st room -->
|
||||
<npc id="23129" x="182665" y="16916" z="-10304" heading="5486" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="182205" y="18632" z="-10304" heading="38327" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="182417" y="18332" z="-10304" heading="38704" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="181702" y="18273" z="-10304" heading="6517" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="182501" y="16797" z="-10304" heading="6671" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="182991" y="17528" z="-10304" heading="39098" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="183160" y="17474" z="-10304" heading="39074" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23127" x="181917" y="17975" z="-10304" heading="6011" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="182578" y="18447" z="-10304" heading="40250" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="182384" y="18553" z="-10304" heading="40030" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="182517" y="16983" z="-10304" heading="6049" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="183176" y="17270" z="-10304" heading="41931" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23128" x="183153" y="17644" z="-10304" heading="40362" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="182327" y="17051" z="-10304" heading="6919" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="182360" y="18743" z="-10304" heading="38293" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="181540" y="18157" z="-10304" heading="6379" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23126" x="181755" y="17860" z="-10304" heading="4711" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23126" x="181747" y="18063" z="-10304" heading="6737" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23126" x="182486" y="17168" z="-10304" heading="5041" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23126" x="183333" y="17391" z="-10304" heading="38209" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23138" x="182409" y="18255" z="-10304" heading="30021"> <!-- Etina Bladesmen -->
|
||||
<parameters>
|
||||
<param name="SuperPointName" value="etina_bladesmen_1" />
|
||||
</parameters>
|
||||
</npc>
|
||||
<npc id="23138" x="182000" y="17922" z="-10304" heading="22511"> <!-- Etina Bladesmen -->
|
||||
<parameters>
|
||||
<param name="SuperPointName" value="etina_bladesmen_2" />
|
||||
</parameters>
|
||||
</npc>
|
||||
<!-- 2st floor 3st room -->
|
||||
<npc id="23130" x="179540" y="19060" z="-10568" heading="53859" /> <!-- Embryo Elite High Priest -->
|
||||
<npc id="23130" x="178546" y="18123" z="-10568" heading="55565" /> <!-- Embryo Elite High Priest -->
|
||||
<npc id="23130" x="178906" y="17620" z="-10568" heading="23026" /> <!-- Embryo Elite High Priest -->
|
||||
<npc id="23129" x="178437" y="18275" z="-10568" heading="54969" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="179025" y="17458" z="-10568" heading="22279" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="179274" y="18400" z="-10560" heading="7344" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="180125" y="18247" z="-10568" heading="23203" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23128" x="179414" y="18206" z="-10560" heading="5824" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="180010" y="18405" z="-10568" heading="22892" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="178761" y="18499" z="-10568" heading="54666" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="179857" y="19296" z="-10568" heading="54800" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23127" x="179601" y="18340" z="-10560" heading="6348" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="179345" y="17689" z="-10568" heading="22336" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="179646" y="18908" z="-10568" heading="53631" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="180335" y="18581" z="-10568" heading="22933" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23126" x="179974" y="19139" z="-10568" heading="57307" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23126" x="180427" y="18455" z="-10568" heading="25307" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23126" x="179466" y="18541" z="-10560" heading="6681" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23126" x="179229" y="17845" z="-10568" heading="22563" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23131" x="178871" y="18353" z="-10568" heading="57361" /> <!-- Embryo Executor Captain -->
|
||||
<npc id="23138" x="179050" y="18309" z="-10568" heading="38891" /> <!-- Etina Bladesmen -->
|
||||
<!-- 2st floor 4st room -->
|
||||
<npc id="23130" x="178536" y="15981" z="-10744" heading="31126" /> <!-- Embryo Elite High Priest -->
|
||||
<npc id="23126" x="178549" y="15688" z="-10744" heading="33033" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23130" x="178522" y="15390" z="-10744" heading="33219" /> <!-- Embryo Elite High Priest -->
|
||||
<npc id="23128" x="178993" y="15706" z="-10744" heading="32714" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="178735" y="15533" z="-10744" heading="33312" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23127" x="178728" y="15847" z="-10744" heading="33290" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="178978" y="15981" z="-10744" heading="32904" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23129" x="178998" y="15408" z="-10744" heading="33170" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23128" x="177722" y="15379" z="-10744" heading="217" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23127" x="177732" y="15672" z="-10744" heading="64457" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23130" x="177738" y="15981" z="-10744" heading="65477" /> <!-- Embryo Elite High Priest -->
|
||||
<npc id="23130" x="177499" y="15494" z="-10744" heading="64083" /> <!-- Embryo Elite High Priest -->
|
||||
<npc id="23129" x="177498" y="15843" z="-10744" heading="65509" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23128" x="177269" y="15981" z="-10744" heading="789" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23126" x="177261" y="15656" z="-10744" heading="64191" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23129" x="177267" y="15372" z="-10744" heading="1549" /> <!-- Embryo Elite Alchemist -->
|
||||
<!-- 2st floor boss -->
|
||||
<npc id="25858" x="178154" y="15149" z="-10744" heading="15626" /> <!-- Corrupted High Priest -->
|
||||
</group>
|
||||
<group name="thrid_floor" spawnByDefault="false">
|
||||
<npc id="8561" x="181547" y="14035" z="-12992" heading="0" /> <!-- invisible1 -->
|
||||
<npc id="8561" x="182615" y="14779" z="-12992" heading="0" /> <!-- invisible1 -->
|
||||
<npc id="8561" x="182122" y="15470" z="-12992" heading="0" /> <!-- invisible1 -->
|
||||
<npc id="8561" x="181071" y="14765" z="-12992" heading="0" /> <!-- invisible1 -->
|
||||
<npc id="8561" x="183207" y="17472" z="-13248" heading="0" /> <!-- invisible1 -->
|
||||
<npc id="8561" x="182485" y="17000" z="-13248" heading="0" /> <!-- invisible1 -->
|
||||
<npc id="8561" x="181721" y="18030" z="-13248" heading="0" /> <!-- invisible1 -->
|
||||
<npc id="8561" x="182408" y="18565" z="-13248" heading="0" /> <!-- invisible1 -->
|
||||
<npc id="8561" x="179690" y="19125" z="-13512" heading="0" /> <!-- invisible1 -->
|
||||
<npc id="8561" x="180233" y="18389" z="-13512" heading="0" /> <!-- invisible1 -->
|
||||
<npc id="8561" x="179107" y="17593" z="-13512" heading="0" /> <!-- invisible1 -->
|
||||
<npc id="8561" x="178607" y="18350" z="-13512" heading="0" /> <!-- invisible1 -->
|
||||
</group>
|
||||
</spawnlist>
|
||||
</instance>
|
4
L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AltarOfShilen/19121.html
vendored
Normal file
4
L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AltarOfShilen/19121.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>
|
||||
The altar stops humming, and you feel the reverberating power of dimensional.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest AltarOfShilen teleport1">Try to go trough the door.</Button>
|
||||
</body></html>
|
4
L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AltarOfShilen/19122.html
vendored
Normal file
4
L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AltarOfShilen/19122.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>
|
||||
The altar stops humming, and you feel the reverberating power of dimensional.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest AltarOfShilen teleport2">Try to go trough the door.</Button>
|
||||
</body></html>
|
5
L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AltarOfShilen/34331-01.html
vendored
Normal file
5
L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AltarOfShilen/34331-01.html
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Royal Guard Captain Logart Van Dyke:<br>
|
||||
Who is it? Ah, you're the adventurer who volunteered to stop the ritual on the Altar of Shilen. You must be capable enough to stop it. Otherwise, you couldn't come this far. Okay, I'll open the door for you.<br>
|
||||
Don't lower yourb guard once inside.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest AltarOfShilen open_door">Open the door to the 2nd floor</Button>
|
||||
</body></html>
|
7
L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AltarOfShilen/34331-02.html
vendored
Normal file
7
L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AltarOfShilen/34331-02.html
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<html><body>Royal Guard Captain Logart Van Dyke:<br>
|
||||
Who is it? Ah, it's you! You've come this far!<br>
|
||||
The last altar is before you.<br>
|
||||
After Embryos invaded the Keucereus Alliance Base, the existence of the Messiah Castle was revealed. Melisa and Isadora, the twin sisters who had long disappeared, returned and are threatening us. If we fail to stop the ritual, Embryos will invade Aden Continent in no time. We must stop them at all cost.<br>
|
||||
My man Dinford will be waiting for you at the entrance to the last altar. Go to find him.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest AltarOfShilen open_door">Open the door to the 3nd floor</Button>
|
||||
</body></html>
|
5
L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AltarOfShilen/34331.html
vendored
Normal file
5
L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AltarOfShilen/34331.html
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Royal Guard Captain Logart Van Dyke:<br>
|
||||
How did you get in here? The blockade was only recently lifted, and this area is still very dangerous. It is under the control of the Kingdom's Royal Guard.<br>
|
||||
It is suspected that Embryos are preparing somewhere in this area to invade the Aden Continent. The Kingdom's Royal Guard is doing its best to stop them. are you here to stop the Embryo's ritual on the Altar of Shilen? if so. I'll gladly open open this door. Be careful. Only danger awaits you.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest AltarOfShilen open_door">Open the door to the 1st floor</Button>
|
||||
</body></html>
|
6
L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AltarOfShilen/34332.html
vendored
Normal file
6
L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AltarOfShilen/34332.html
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html>Quartermaster Dinford<body>
|
||||
Who is it? Ah, you've come to stop the ritual the ritual on the Altar of Shilen!<br>
|
||||
If so, I'll open the door to the altar.<br>
|
||||
Please stop the threat of the Embrio.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest AltarOfShilen final_door">Open the door.</Button>
|
||||
</body></html>
|
694
L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AltarOfShilen/AltarOfShilen.java
vendored
Normal file
694
L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AltarOfShilen/AltarOfShilen.java
vendored
Normal file
@@ -0,0 +1,694 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program 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.
|
||||
*
|
||||
* This program 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 instances.AltarOfShilen;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.Future;
|
||||
|
||||
import com.l2jmobius.commons.concurrent.ThreadPool;
|
||||
import com.l2jmobius.gameserver.enums.ChatType;
|
||||
import com.l2jmobius.gameserver.instancemanager.InstanceManager;
|
||||
import com.l2jmobius.gameserver.model.L2World;
|
||||
import com.l2jmobius.gameserver.model.Location;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Npc;
|
||||
import com.l2jmobius.gameserver.model.actor.instance.L2MonsterInstance;
|
||||
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||
import com.l2jmobius.gameserver.model.instancezone.Instance;
|
||||
import com.l2jmobius.gameserver.network.NpcStringId;
|
||||
import com.l2jmobius.gameserver.network.serverpackets.Earthquake;
|
||||
import com.l2jmobius.gameserver.network.serverpackets.ExSendUIEvent;
|
||||
import com.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
|
||||
import com.l2jmobius.gameserver.network.serverpackets.NpcSay;
|
||||
|
||||
import instances.AbstractInstance;
|
||||
|
||||
/**
|
||||
* Instance Altar of Shilen
|
||||
* @URL https://l2wiki.com/Altar_of_Shilen
|
||||
* @author Gigi
|
||||
* @date 2018-04-13 - [23:27:28]
|
||||
*/
|
||||
public class AltarOfShilen extends AbstractInstance
|
||||
{
|
||||
// NPCs
|
||||
private static final int LOGART_VAN_DYKE = 34331;
|
||||
private static final int DINFORD = 34332;
|
||||
private static final int ISADORA = 25856;
|
||||
private static final int MELISSA0 = 25855;
|
||||
private static final int MELISSA = 25876; // She dropping items
|
||||
private static final int EXECUTOR_CAPTAIN = 23131;
|
||||
private static final int ETINA_BLADESMAN = 23138;
|
||||
private static final int CORRUPTED_CAPTAIN = 25857;
|
||||
private static final int CORRUPTED_HIGH_PRIEST = 25858;
|
||||
private static final int RITUAL_ALTAR0 = 19121;
|
||||
private static final int RITUAL_ALTAR1 = 19122;
|
||||
private static final int SHILLIEN_ALTAR = 19123;
|
||||
private static final int INVISIBLE = 8561;
|
||||
private static final int ETINA_GOSPEL = 23132;
|
||||
private static final int ETINA_PRIEST = 23133;
|
||||
private static final int ETINA_PROTECTORS = 23134;
|
||||
private static final int ETINA_PUNISHERS = 23135;
|
||||
private static final int ETINA_COMMINATION = 23136;
|
||||
private static final int ETINA_DARKMONAGERS = 23137;
|
||||
private static final int ELITE_ESCORT = 23126;
|
||||
private static final int ELITE_CHASER = 23127;
|
||||
private static final int ELITE_WARRIOR = 23128;
|
||||
private static final int ELITE_ALCHEMIST = 23129;
|
||||
private static final int ELITE_PRIEST = 23130;
|
||||
private static final int EMBRYO_RESERCHER = 23139;
|
||||
private static final int EMBRYO_WATCHMAN = 23140;
|
||||
private static final int EMBRYO_FIGHTER = 23141;
|
||||
private static final int EMBRYO_GUARD = 23142;
|
||||
// Skills
|
||||
static final SkillHolder PROTECTED_ALTAR = new SkillHolder(14496, 1);
|
||||
// Misc
|
||||
private static final int TEMPLATE_ID = 194;
|
||||
private static final int ALTAR_TIME = 180;
|
||||
//@formatter:off
|
||||
private static final int[] DOORS = { 25180001, 25180002, 25180003, 25180004, 25180005, 25180006, 25180007 };
|
||||
//@formatter:on
|
||||
private static final NpcStringId[] SHOUT_MSG =
|
||||
{
|
||||
NpcStringId.I_NEED_HELP,
|
||||
NpcStringId.FOCUS_FIRE_ACCORDING_TO_MY_ORCHESTRATION,
|
||||
NpcStringId.I_NEED_HEAL,
|
||||
NpcStringId.I_M_GOING_TO_BACK_OFF_FOR_A_BIT,
|
||||
NpcStringId.I_WILL_ATTACK_THE_ENEMY_S_HEALER,
|
||||
NpcStringId.STOP_ENEMIES_HEALING,
|
||||
NpcStringId.ATTACK_WEAKENED_ENEMY,
|
||||
NpcStringId.COME_AT_ME,
|
||||
NpcStringId.SWITCH_TO_FAST_SHOOTING_MODE,
|
||||
NpcStringId.SWITCH_TO_FAST_CASTING_MODE,
|
||||
NpcStringId.BLINK_ATTACK,
|
||||
NpcStringId.ONLY_DEATH_AWAITS_FOR_THE_WEAK,
|
||||
};
|
||||
static final Location MELISSA_SPAWN = new Location(178146, 14356, -13688);
|
||||
private static final Location SECOND_FLOOR = new Location(179357, 13664, -9828);
|
||||
private static final Location THIRD_FLOOR = new Location(179354, 12922, -12776);
|
||||
|
||||
final List<L2PcInstance> playersInside = new ArrayList<>();
|
||||
final Map<Integer, Integer> killedMonsters = new ConcurrentHashMap<>();
|
||||
static List<L2Npc> firstFloorVictims = new ArrayList<>();
|
||||
public static Future<?> timer;
|
||||
public L2Npc altar;
|
||||
|
||||
public AltarOfShilen()
|
||||
{
|
||||
super(TEMPLATE_ID);
|
||||
addInstanceCreatedId(TEMPLATE_ID);
|
||||
addFirstTalkId(LOGART_VAN_DYKE, RITUAL_ALTAR0, RITUAL_ALTAR1, DINFORD);
|
||||
addSpawnId(CORRUPTED_CAPTAIN, CORRUPTED_HIGH_PRIEST, INVISIBLE, SHILLIEN_ALTAR);
|
||||
addAttackId(ETINA_GOSPEL, ETINA_PRIEST, ETINA_PROTECTORS, ETINA_PUNISHERS, ETINA_COMMINATION, ETINA_DARKMONAGERS, ELITE_ESCORT, ELITE_CHASER, ELITE_WARRIOR, ELITE_ALCHEMIST, ELITE_PRIEST, EMBRYO_RESERCHER, EMBRYO_WATCHMAN, EMBRYO_FIGHTER, EMBRYO_GUARD);
|
||||
addKillId(EXECUTOR_CAPTAIN, CORRUPTED_CAPTAIN, ETINA_BLADESMAN, CORRUPTED_HIGH_PRIEST, ETINA_GOSPEL, ETINA_PROTECTORS, ETINA_PUNISHERS, MELISSA0, MELISSA, ISADORA);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onInstanceCreated(Instance instance, L2PcInstance player)
|
||||
{
|
||||
instance.spawnGroup("general");
|
||||
instance.spawnGroup("first_floor");
|
||||
instance.setStatus(1);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
final Instance world = npc.getInstanceWorld();
|
||||
if (event.equals("enterInstance"))
|
||||
{
|
||||
enterInstance(player, npc, TEMPLATE_ID);
|
||||
if (player.isGM())
|
||||
{
|
||||
playersInside.add(player);
|
||||
}
|
||||
if (player.getParty() != null)
|
||||
{
|
||||
for (L2PcInstance partyMember : player.getParty().getMembers())
|
||||
{
|
||||
playersInside.add(partyMember);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (event.equals("check_player"))
|
||||
{
|
||||
L2World.getInstance().forEachVisibleObjectInRange(npc, L2PcInstance.class, 400, p ->
|
||||
{
|
||||
if ((p != null) && p.isPlayer() && !p.isDead())
|
||||
{
|
||||
npc.setScriptValue(1);
|
||||
final L2Npc gospel = addSpawn(ETINA_GOSPEL, npc, true, 0, false, world.getId());
|
||||
final L2Npc priest = addSpawn(ETINA_PRIEST, npc, true, 0, false, world.getId());
|
||||
final L2Npc protectors = addSpawn(ETINA_PROTECTORS, npc, true, 0, false, world.getId());
|
||||
final L2Npc punishers = addSpawn(ETINA_PUNISHERS, npc, true, 0, false, world.getId());
|
||||
final L2Npc commination = addSpawn(ETINA_COMMINATION, npc, true, 0, false, world.getId());
|
||||
final L2Npc darkmonagers = addSpawn(ETINA_DARKMONAGERS, npc, true, 0, false, world.getId());
|
||||
addAttackPlayerDesire(gospel, p);
|
||||
addAttackPlayerDesire(priest, p);
|
||||
addAttackPlayerDesire(protectors, p);
|
||||
addAttackPlayerDesire(punishers, p);
|
||||
addAttackPlayerDesire(commination, p);
|
||||
addAttackPlayerDesire(darkmonagers, p);
|
||||
}
|
||||
});
|
||||
}
|
||||
if (isInInstance(world))
|
||||
{
|
||||
switch (npc.getId())
|
||||
{
|
||||
case LOGART_VAN_DYKE:
|
||||
{
|
||||
if (event.equals("open_door"))
|
||||
{
|
||||
if (world.getStatus() == 1)
|
||||
{
|
||||
if (world.getDoor(DOORS[0]) != null)
|
||||
{
|
||||
world.getDoor(DOORS[0]).openMe();
|
||||
}
|
||||
world.setStatus(2);
|
||||
onStatusChanged(world);
|
||||
break;
|
||||
}
|
||||
else if (world.getStatus() == 3)
|
||||
{
|
||||
if (world.getDoor(DOORS[1]) != null)
|
||||
{
|
||||
world.getDoor(DOORS[1]).openMe();
|
||||
}
|
||||
world.setStatus(4);
|
||||
onStatusChanged(world);
|
||||
break;
|
||||
}
|
||||
else if (world.getStatus() == 5)
|
||||
{
|
||||
if (world.getDoor(DOORS[2]) != null)
|
||||
{
|
||||
world.getDoor(DOORS[2]).openMe();
|
||||
}
|
||||
world.setStatus(6);
|
||||
onStatusChanged(world);
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case RITUAL_ALTAR0:
|
||||
{
|
||||
if ((world.getStatus() == 3) && event.equals("teleport1"))
|
||||
{
|
||||
L2World.getInstance().forEachVisibleObjectInRange(npc, L2PcInstance.class, 1000, p ->
|
||||
{
|
||||
if ((p != null) && p.isPlayable() && !p.isDead())
|
||||
{
|
||||
p.teleToLocation(SECOND_FLOOR, world.getTemplateId());
|
||||
}
|
||||
world.spawnGroup("second_floor");
|
||||
});
|
||||
}
|
||||
break;
|
||||
}
|
||||
case RITUAL_ALTAR1:
|
||||
{
|
||||
if ((world.getStatus() == 5) && event.equals("teleport2"))
|
||||
{
|
||||
L2World.getInstance().forEachVisibleObjectInRange(npc, L2PcInstance.class, 1000, p ->
|
||||
{
|
||||
if ((p != null) && p.isPlayable() && !p.isDead())
|
||||
{
|
||||
p.teleToLocation(THIRD_FLOOR, world.getTemplateId());
|
||||
}
|
||||
world.spawnGroup("thrid_floor");
|
||||
});
|
||||
}
|
||||
break;
|
||||
}
|
||||
case DINFORD:
|
||||
{
|
||||
if ((world.getStatus() == 6) && event.equals("final_door"))
|
||||
{
|
||||
if (!world.getDoor(DOORS[6]).isOpen())
|
||||
{
|
||||
world.getDoor(DOORS[6]).openMe();
|
||||
}
|
||||
world.setStatus(7);
|
||||
onStatusChanged(world);
|
||||
npc.deleteMe();
|
||||
cancelQuestTimers("check_player");
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return super.onAdvEvent(event, npc, player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAttack(L2Npc npc, L2PcInstance attacker, int damage, boolean isSummon)
|
||||
{
|
||||
if (npc.getInstanceWorld() != null)
|
||||
{
|
||||
if (getRandom(30) < 3)
|
||||
{
|
||||
npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), SHOUT_MSG[getRandom(SHOUT_MSG.length)]));
|
||||
}
|
||||
}
|
||||
return super.onAttack(npc, attacker, damage, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
|
||||
{
|
||||
final Instance world = npc.getInstanceWorld();
|
||||
if (world != null)
|
||||
{
|
||||
int npcId = npc.getId();
|
||||
if (!killedMonsters.containsKey(npcId))
|
||||
{
|
||||
killedMonsters.put(npcId, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
killedMonsters.put(npcId, killedMonsters.get(npcId) + 1);
|
||||
}
|
||||
// 1st Floor
|
||||
if (world.getStatus() == 2)
|
||||
{
|
||||
if (killedMonsters.containsKey(EXECUTOR_CAPTAIN) && (killedMonsters.get(EXECUTOR_CAPTAIN) >= 3))
|
||||
{
|
||||
final int boos1 = world.getTemplateParameters().getInt("boss1");
|
||||
final L2Npc captain = world.getNpc(boos1);
|
||||
if (captain != null)
|
||||
{
|
||||
captain.setIsInvul(false);
|
||||
}
|
||||
}
|
||||
if (killedMonsters.containsKey(CORRUPTED_CAPTAIN) && (killedMonsters.get(CORRUPTED_CAPTAIN) >= 1))
|
||||
{
|
||||
for (L2PcInstance player : playersInside)
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage(NpcStringId.YOU_CAN_MOVE_TO_THE_NEXT_FLOOR_THROUGH_THE_ALTAR_OF_SACRIFICE, ExShowScreenMessage.MIDDLE_CENTER, 5000));
|
||||
}
|
||||
world.setStatus(3);
|
||||
killedMonsters.clear();
|
||||
onStatusChanged(world);
|
||||
}
|
||||
}
|
||||
// 2st Floor
|
||||
else if (world.getStatus() == 4)
|
||||
{
|
||||
if (killedMonsters.containsKey(ETINA_BLADESMAN) && (killedMonsters.get(ETINA_BLADESMAN) >= 3))
|
||||
{
|
||||
final int boos2 = world.getTemplateParameters().getInt("boss2");
|
||||
final L2Npc priest = world.getNpc(boos2);
|
||||
if (priest != null)
|
||||
{
|
||||
priest.setIsInvul(false);
|
||||
}
|
||||
}
|
||||
if (killedMonsters.containsKey(CORRUPTED_HIGH_PRIEST) && (killedMonsters.get(CORRUPTED_HIGH_PRIEST) >= 1))
|
||||
{
|
||||
for (L2PcInstance player : playersInside)
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage(NpcStringId.YOU_CAN_MOVE_TO_THE_NEXT_FLOOR_THROUGH_THE_ALTAR_OF_SACRIFICE, ExShowScreenMessage.MIDDLE_CENTER, 5000));
|
||||
}
|
||||
world.setStatus(5);
|
||||
killedMonsters.clear();
|
||||
onStatusChanged(world);
|
||||
|
||||
}
|
||||
}
|
||||
// 3st Floor
|
||||
else if (world.getStatus() == 6)
|
||||
{
|
||||
switch (npc.getId())
|
||||
{
|
||||
case ETINA_GOSPEL:
|
||||
{
|
||||
world.getDoor(DOORS[3]).openMe();
|
||||
ThreadPool.schedule(() -> world.getDoor(DOORS[3]).closeMe(), 5000);
|
||||
break;
|
||||
}
|
||||
case ETINA_PROTECTORS:
|
||||
{
|
||||
world.getDoor(DOORS[4]).openMe();
|
||||
ThreadPool.schedule(() -> world.getDoor(DOORS[4]).closeMe(), 5000);
|
||||
break;
|
||||
}
|
||||
case ETINA_PUNISHERS:
|
||||
{
|
||||
world.getDoor(DOORS[5]).openMe();
|
||||
ThreadPool.schedule(() -> world.getDoor(DOORS[5]).closeMe(), 5000);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (world.getStatus() == 8)
|
||||
{
|
||||
if (killedMonsters.containsKey(MELISSA) && (killedMonsters.get(MELISSA) == 1))
|
||||
{
|
||||
for (L2PcInstance player : playersInside)
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage(NpcStringId.ALTAR_OF_SHILEN_HAS_BEEN_DESTROYED_YOU_VE_WON, ExShowScreenMessage.TOP_CENTER, 5000, true));
|
||||
}
|
||||
playersInside.clear();
|
||||
killedMonsters.clear();
|
||||
world.finishInstance(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onSpawn(L2Npc npc)
|
||||
{
|
||||
if (npc.getInstanceWorld() != null)
|
||||
{
|
||||
switch (npc.getId())
|
||||
{
|
||||
case CORRUPTED_CAPTAIN:
|
||||
case CORRUPTED_HIGH_PRIEST:
|
||||
{
|
||||
npc.setIsInvul(true);
|
||||
break;
|
||||
}
|
||||
case INVISIBLE:
|
||||
{
|
||||
if (npc.isScriptValue(0))
|
||||
{
|
||||
startQuestTimer("check_player", 2000, npc, null, true);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case SHILLIEN_ALTAR:
|
||||
{
|
||||
altar = npc;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return super.onSpawn(npc);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onFirstTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
final Instance world = npc.getInstanceWorld();
|
||||
String htmltext = null;
|
||||
if (isInInstance(world))
|
||||
{
|
||||
switch (npc.getId())
|
||||
{
|
||||
case LOGART_VAN_DYKE:
|
||||
{
|
||||
if ((world.getStatus() > 0) && (world.getStatus() < 3))
|
||||
{
|
||||
return "34331.html";
|
||||
}
|
||||
else if ((world.getStatus() >= 3) && (world.getStatus() < 5))
|
||||
{
|
||||
return "34331-01.html";
|
||||
}
|
||||
else if (world.getStatus() >= 5)
|
||||
{
|
||||
return "34331-02.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case RITUAL_ALTAR0:
|
||||
{
|
||||
if (world.getStatus() >= 3)
|
||||
{
|
||||
return "19121.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case RITUAL_ALTAR1:
|
||||
{
|
||||
if (world.getStatus() >= 5)
|
||||
{
|
||||
return "19122.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case DINFORD:
|
||||
{
|
||||
if (world.getStatus() >= 5)
|
||||
{
|
||||
return "34332.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
public static class VictimDefeatTask implements Runnable
|
||||
{
|
||||
private final Instance _world;
|
||||
private int _victims;
|
||||
private final int _initialTime;
|
||||
private int _time;
|
||||
|
||||
VictimDefeatTask(int victims, int time, Instance world)
|
||||
{
|
||||
_world = world;
|
||||
_victims = victims;
|
||||
_initialTime = time;
|
||||
_time = time;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run()
|
||||
{
|
||||
for (L2PcInstance player : _world.getPlayers())
|
||||
{
|
||||
player.sendPacket(new ExSendUIEvent(player, ExSendUIEvent.TYPE_GP_TIMER, (_time--), 0, NpcStringId.SACRIFICE_LEFT_S1, new String[]
|
||||
{
|
||||
String.valueOf(_victims)
|
||||
}));
|
||||
}
|
||||
if (_time <= 0)
|
||||
{
|
||||
_time = _initialTime;
|
||||
--_victims;
|
||||
for (L2PcInstance player : _world.getPlayers())
|
||||
{
|
||||
player.sendPacket(new Earthquake(player.getX(), player.getY(), player.getZ(), 20, 5));
|
||||
player.sendPacket(new ExShowScreenMessage(NpcStringId.SACRIFICE_HAS_BEEN_KILLED_SACRIFICE_LEFT_S1, ExShowScreenMessage.MIDDLE_CENTER, 3000, String.valueOf(_victims)));
|
||||
}
|
||||
}
|
||||
if ((_world.getStatus() == 2) && !firstFloorVictims.isEmpty())
|
||||
{
|
||||
firstFloorVictims.get(0).deleteMe();
|
||||
firstFloorVictims.remove(0);
|
||||
}
|
||||
if ((_victims == 1) && (_world.getStatus() == 2))
|
||||
{
|
||||
for (L2PcInstance player : _world.getPlayers())
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage(NpcStringId.FOUR_LIVES_WERE_SACRIFICED_AND_THE_BLESSING_OF_BLOOD_IS_BESTOWED_UPON_THE_CORRUPTED_CAPTAIN, ExShowScreenMessage.MIDDLE_CENTER, 10000));
|
||||
}
|
||||
}
|
||||
if ((_victims == 1) && (_world.getStatus() == 4))
|
||||
{
|
||||
for (L2PcInstance player : _world.getPlayers())
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage(NpcStringId.FOUR_LIVES_WERE_SACRIFICED_AND_THE_BLESSING_OF_BLOOD_IS_BESTOWED_UPON_THE_CORRUPTED_HIGH_PRIEST, ExShowScreenMessage.MIDDLE_CENTER, 10000));
|
||||
}
|
||||
}
|
||||
if (_victims <= 0)
|
||||
{
|
||||
ThreadPool.schedule(() ->
|
||||
{
|
||||
for (L2PcInstance player : _world.getPlayers())
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage(NpcStringId.ALL_OFFERINGS_WERE_SACRIFICED_AND_THE_BLESSING_OF_BLOOD_IS_BESTOWED_UPON_THE_EMBRYO_COLONY_IN_THAT_FLOOR, ExShowScreenMessage.MIDDLE_CENTER, 3000));
|
||||
}
|
||||
if (timer != null)
|
||||
{
|
||||
timer.cancel(true);
|
||||
timer = null;
|
||||
}
|
||||
_world.finishInstance(1);
|
||||
}, 3000);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void onStatusChanged(final Instance world)
|
||||
{
|
||||
final Instance instance = InstanceManager.getInstance().getInstance(world.getId());
|
||||
switch (instance.getStatus())
|
||||
{
|
||||
case 1:
|
||||
{
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
if (timer != null)
|
||||
{
|
||||
timer.cancel(true);
|
||||
}
|
||||
for (L2PcInstance player : playersInside)
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage(NpcStringId.YOU_MUST_STOP_THE_ALTAR_BEFORE_EVERYTHING_IS_SACRIFICED, ExShowScreenMessage.MIDDLE_CENTER, 6000));
|
||||
}
|
||||
timer = ThreadPool.scheduleAtFixedRate(new VictimDefeatTask(5, ALTAR_TIME, world), 0, 1000);
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
{
|
||||
if (timer != null)
|
||||
{
|
||||
timer.cancel(true);
|
||||
timer = null;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 4:
|
||||
{
|
||||
if (timer != null)
|
||||
{
|
||||
timer.cancel(true);
|
||||
}
|
||||
for (L2PcInstance player : playersInside)
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage(NpcStringId.YOU_MUST_STOP_THE_ALTAR_BEFORE_EVERYTHING_IS_SACRIFICED, ExShowScreenMessage.MIDDLE_CENTER, 6000));
|
||||
}
|
||||
timer = ThreadPool.scheduleAtFixedRate(new VictimDefeatTask(5, ALTAR_TIME, world), 0, 1000);
|
||||
break;
|
||||
}
|
||||
case 5:
|
||||
case 6:
|
||||
{
|
||||
if (timer != null)
|
||||
{
|
||||
timer.cancel(true);
|
||||
timer = null;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 7:
|
||||
{
|
||||
ThreadPool.schedule(() -> timer = ThreadPool.scheduleAtFixedRate(new Runnable()
|
||||
{
|
||||
private int _time = ALTAR_TIME;
|
||||
|
||||
@Override
|
||||
public void run()
|
||||
{
|
||||
if (_time <= 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
boolean defeated = false;
|
||||
if (killedMonsters.containsKey(MELISSA0) && (killedMonsters.get(MELISSA0) == 1) && killedMonsters.containsKey(ISADORA) && (killedMonsters.get(ISADORA) == 1))
|
||||
{
|
||||
defeated = true;
|
||||
for (L2PcInstance player : playersInside)
|
||||
{
|
||||
player.sendPacket(new ExSendUIEvent(player, ExSendUIEvent.TYPE_NORNIL, (_time--), 0, 0, 0, 0, 2518008));
|
||||
player.sendPacket(new ExSendUIEvent(player, 0x01, 0, 0, 0, 0, 0, 2518008));
|
||||
player.sendPacket(new ExShowScreenMessage(NpcStringId.ALTAR_HAS_STOPPED, ExShowScreenMessage.MIDDLE_CENTER, 5000));
|
||||
addSpawn(MELISSA, MELISSA_SPAWN.getX(), MELISSA_SPAWN.getY(), MELISSA_SPAWN.getZ(), 0, false, 0, true, world.getId());
|
||||
if (timer != null)
|
||||
{
|
||||
timer.cancel(true);
|
||||
timer = null;
|
||||
}
|
||||
altar.deleteMe();
|
||||
world.setStatus(8);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (L2PcInstance player : world.getPlayers())
|
||||
{
|
||||
if (_time == ALTAR_TIME)
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage(NpcStringId.ALTAR_OF_SHILEN_IS_STARTING_MUST_FOCUS_FIRE_THE_ALTAR, ExShowScreenMessage.MIDDLE_CENTER, 5000));
|
||||
}
|
||||
player.sendPacket(new ExSendUIEvent(player, ExSendUIEvent.TYPE_NORNIL, (_time--), 0, 0, 0, 0, 2518008));
|
||||
}
|
||||
}
|
||||
|
||||
if (!defeated && (_time == 9))
|
||||
{
|
||||
for (L2PcInstance player : playersInside)
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage(NpcStringId.THE_ALTAR_OF_SHILEN_WILL_BECOME_ACTIVATED_IN_10_SECONDS, ExShowScreenMessage.MIDDLE_CENTER, 5000));
|
||||
}
|
||||
}
|
||||
|
||||
if (!defeated && (_time == 4))
|
||||
{
|
||||
for (L2PcInstance player : playersInside)
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage(NpcStringId.THE_ALTAR_OF_SHILEN_WILL_BECOME_ACTIVATED_IN_5_SECONDS, ExShowScreenMessage.MIDDLE_CENTER, 5000));
|
||||
}
|
||||
}
|
||||
|
||||
if (!defeated && (_time <= 0))
|
||||
{
|
||||
for (L2PcInstance player : playersInside)
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage(NpcStringId.FOCUS_FIRE_THE_ALTAR_TO_STOP_BLESSING_OF_SHILEN, ExShowScreenMessage.MIDDLE_CENTER, 5000));
|
||||
}
|
||||
|
||||
if (isInInstance(world))
|
||||
{
|
||||
L2World.getInstance().forEachVisibleObjectInRange(altar, L2MonsterInstance.class, 8000, boss ->
|
||||
{
|
||||
if ((boss != null) && !boss.isDead())
|
||||
{
|
||||
altar.doCast(PROTECTED_ALTAR.getSkill());
|
||||
boss.setCurrentHp(boss.getCurrentHp() + (boss.getMaxHp() / 2));
|
||||
for (L2PcInstance player : playersInside)
|
||||
{
|
||||
player.sendPacket(new Earthquake(player.getX(), player.getY(), player.getZ(), 30, 5));
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
if ((_time <= 0) && world.isStatus(7))
|
||||
{
|
||||
ThreadPool.schedule(() ->
|
||||
{
|
||||
_time = ALTAR_TIME;
|
||||
}, 15000);
|
||||
}
|
||||
}
|
||||
}, 0, 1000), 5000);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new AltarOfShilen();
|
||||
}
|
||||
}
|
5
L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AltarOfShilen/condNoGroup.html
vendored
Normal file
5
L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AltarOfShilen/condNoGroup.html
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Agent Georgio:<br>
|
||||
The Altar of Shilen is extremely dangerous.<br>
|
||||
You're trying to go there alone. You may be either very confident or reckless.<br>
|
||||
To let you go is to send you to your death. If you want to go to the Altar of Shilen and stop the ritual, please gather allies and return.
|
||||
</body></html>
|
3
L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AltarOfShilen/condNoLevel.html
vendored
Normal file
3
L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AltarOfShilen/condNoLevel.html
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Agent Georgio:<br>
|
||||
(A party members level must be 101 - 105 Lvl to challenge Altar of Shilen.)
|
||||
</body></html>
|
@@ -0,0 +1,3 @@
|
||||
<html><body>Agent Georgio:<br>
|
||||
Only a party leader may enter the altar of Shilen
|
||||
</body></html>
|
@@ -0,0 +1,3 @@
|
||||
<html><body>Agent Georgio:<br>
|
||||
You are too weak. Gather more people.
|
||||
</body></html>
|
@@ -683,7 +683,7 @@
|
||||
<height normal="0.1" />
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="19121" level="95" type="L2Monster" name="Altar of Sacrifice">
|
||||
<npc id="19121" level="95" type="L2Npc" name="Altar of Sacrifice" >
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>CONSTRUCT</race>
|
||||
<sex>MALE</sex>
|
||||
@@ -710,7 +710,7 @@
|
||||
<height normal="22.5" />
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="19122" level="95" type="L2Monster" name="Altar of Sacrifice">
|
||||
<npc id="19122" level="95" type="L2Npc" name="Altar of Sacrifice" >
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>CONSTRUCT</race>
|
||||
<sex>MALE</sex>
|
||||
@@ -737,7 +737,7 @@
|
||||
<height normal="22.5" />
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="19123" level="95" type="L2Monster" name="Altar of Shilen">
|
||||
<npc id="19123" level="95" type="L2Npc" name="Altar of Shilen" >
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>CONSTRUCT</race>
|
||||
<sex>MALE</sex>
|
||||
|
@@ -3245,8 +3245,8 @@
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<parameters>
|
||||
<param name="IsAggressive" value="1" />
|
||||
<skill name="Skill02_ID" id="14519" level="1" />
|
||||
<skill name="Skill03_ID" id="14520" level="1" />
|
||||
<skill name="Skill01_ID" id="23707" level="4" />
|
||||
<skill name="Skill02_ID" id="16979" level="1" />
|
||||
<param name="Attack_BoostValue" value="146" />
|
||||
</parameters>
|
||||
<race>HUMANOID</race>
|
||||
@@ -3276,9 +3276,9 @@
|
||||
<skill id="4440" level="5" /> <!-- Greater Paralysis Resistance -->
|
||||
<skill id="4441" level="5" /> <!-- Greater Mental Attack Resistance -->
|
||||
<skill id="4439" level="5" /> <!-- Greater Hold Resistance -->
|
||||
<skill id="4494" level="1" /> <!-- Raid Boss -->
|
||||
<skill id="14520" level="1" /> <!-- Ice Box of Hell -->
|
||||
<skill id="14519" level="1" /> <!-- Fire Pit of Hell -->
|
||||
<skill id="16979" level="1" /> <!-- Hellfire -->
|
||||
<skill id="23707" level="4" /> <!-- Chaos fire -->
|
||||
<skill id="16980" level="1" /> <!-- Infernal Icicles -->
|
||||
<skill id="4415" level="3" /> <!-- One-handed Sword -->
|
||||
<skill id="14765" level="4" /> <!-- Blood Siphon Resistance -->
|
||||
<skill id="14620" level="1" /> <!-- Aerial Yoke Resistance 1 -->
|
||||
@@ -3287,7 +3287,7 @@
|
||||
<skill id="14617" level="1" /> <!-- Knock Down Resistance -->
|
||||
<skill id="14619" level="1" /> <!-- Disarm Resistance -->
|
||||
</skillList>
|
||||
<ai clanHelpRange="300" aggroRange="300">
|
||||
<ai clanHelpRange="400" aggroRange="400">
|
||||
<clanList>
|
||||
<clan>EMBRYO_BOSS</clan>
|
||||
</clanList>
|
||||
@@ -3403,8 +3403,8 @@
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<parameters>
|
||||
<param name="IsAggressive" value="1" />
|
||||
<skill name="Skill01_ID" id="14521" level="1" />
|
||||
<skill name="Skill02_ID" id="14194" level="1" />
|
||||
<skill name="Skill01_ID" id="16982" level="1" /> <!-- Devil Horns of Shield -->
|
||||
<skill name="Skill02_ID" id="16981" level="1" /> <!-- Fallen Execution -->
|
||||
<param name="Attack_BoostValue" value="144" />
|
||||
</parameters>
|
||||
<race>HUMANOID</race>
|
||||
@@ -3429,10 +3429,12 @@
|
||||
<skillList>
|
||||
<skill id="5467" level="1" /> <!-- Strong against the dark elemental. -->
|
||||
<skill id="4416" level="6" /> <!-- Humanoids -->
|
||||
<skill id="14194" level="1" /> <!-- Range Stun -->
|
||||
<skill id="4415" level="3" /> <!-- One-handed Sword -->
|
||||
<skill id="14765" level="3" /> <!-- Blood Siphon Resistance -->
|
||||
<skill id="4045" level="1" /> <!-- Resist Full Magic Attack -->
|
||||
<skill id="16982" level="1" /> <!-- Devil Horns of Shield -->
|
||||
<skill id="16981" level="1" /> <!-- Fallen Execution -->
|
||||
<skill id="14194" level="1" /> <!-- Range Stun -->
|
||||
</skillList>
|
||||
<ai clanHelpRange="300" aggroRange="300" />
|
||||
<dropLists>
|
||||
@@ -3453,8 +3455,9 @@
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<parameters>
|
||||
<param name="IsAggressive" value="1" />
|
||||
<skill name="Skill01_ID" id="14522" level="1" />
|
||||
<skill name="Skill02_ID" id="14084" level="6" />
|
||||
<skill name="Skill01_ID" id="16983" level="1" /> <!-- Embryo's Blessing -->
|
||||
<skill name="Skill02_ID" id="23707" level="4" /> <!-- Chaos Fire -->
|
||||
<skill name="Skill02_ID" id="16984" level="1" /> <!-- Blind Spark -->
|
||||
<param name="Attack_BoostValue" value="144" />
|
||||
</parameters>
|
||||
<race>HUMANOID</race>
|
||||
@@ -3475,13 +3478,16 @@
|
||||
</attribute>
|
||||
<abnormalResist physical="10" magical="10" />
|
||||
</stats>
|
||||
<status attackable="false" undying="false" />
|
||||
<status attackable="false" undying="false" randomWalk="false" />
|
||||
<skillList>
|
||||
<skill id="5467" level="1" /> <!-- Strong against the dark elemental. -->
|
||||
<skill id="4416" level="6" /> <!-- Humanoids -->
|
||||
<skill id="4415" level="3" /> <!-- One-handed Sword -->
|
||||
<skill id="14765" level="3" /> <!-- Blood Siphon Resistance -->
|
||||
<skill id="4045" level="1" /> <!-- Resist Full Magic Attack -->
|
||||
<skill id="16983" level="1" /> <!-- Embryo's Blessing -->
|
||||
<skill id="23707" level="1" /> <!-- Chaos Fire -->
|
||||
<skill id="16984" level="1" /> <!-- Blind Spark -->
|
||||
</skillList>
|
||||
<ai clanHelpRange="300" aggroRange="300" />
|
||||
<dropLists>
|
||||
@@ -4128,7 +4134,7 @@
|
||||
<acquire exp="169922991147" sp="169922929" raidPoints="7" />
|
||||
<mpReward value="20" type="PER" ticks="10" affects="PARTY" />
|
||||
<stats str="164" int="188" dex="55" wit="78" con="111" men="149">
|
||||
<vitals hp="2081767" hpRegen="8.5" mp="33087" mpRegen="30" />
|
||||
<vitals hp="881767.0" hpRegen="8.5" mp="33087.0" mpRegen="30" />
|
||||
<speed>
|
||||
<walk ground="30" />
|
||||
<run ground="180" />
|
||||
|
@@ -31,6 +31,7 @@ Goddess of Destruction:
|
||||
-Kartia
|
||||
-Fortuna
|
||||
-Nursery
|
||||
-Altar of Shilen
|
||||
-Kimerian
|
||||
-Istina
|
||||
-Octavis
|
||||
|
@@ -1,4 +1,7 @@
|
||||
<html><head><body>Agent Georgio:<br>
|
||||
Sh... I'm currently on duty. If you don't have anything to say, please go away.<br>
|
||||
<html><body>Agent Georgio:<br>
|
||||
Hush! I'm on a mission.<br>
|
||||
The Kingdom's Royal Guards are investigating a report that a ritual is being held on the Altar of Shilen, which has been closed since Melisa and Isadora disappeared. I'd like to ask you to leave us, if you don't mind.<br>
|
||||
Or, if you want to go to the Altar of Shilen to stop the ritual, I can send you there. Just tell me.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest AltarOfShilen enterInstance">To the Altar of Shilen</Button>
|
||||
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
|
||||
</body></html>
|
281
L2J_Mobius_5.0_Salvation/dist/game/data/instances/AltarOfShilen.xml
vendored
Normal file
281
L2J_Mobius_5.0_Salvation/dist/game/data/instances/AltarOfShilen.xml
vendored
Normal file
@@ -0,0 +1,281 @@
|
||||
<instance id="194" maxWorlds="20" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/instance.xsd">
|
||||
<time duration="60" empty="1" />
|
||||
<locations>
|
||||
<enter type="RANDOM">
|
||||
<location x="179400" y="13683" z="-7396"/><!-- First Room -->
|
||||
</enter>
|
||||
<exit type="ORIGIN" />
|
||||
</locations>
|
||||
<parameters>
|
||||
<param name="boss1" value="25857" />
|
||||
<param name="boss2" value="25858" />
|
||||
</parameters>
|
||||
<conditions>
|
||||
<condition type="Party" showMessageAndHtml="true">
|
||||
<param name="html" value="condNoGroup.html" />
|
||||
</condition>
|
||||
<condition type="PartyLeader">
|
||||
<param name="html" value="condNoPartyLeader.html" />
|
||||
</condition>
|
||||
<condition type="GroupMin">
|
||||
<param name="html" value="condSmallGroup.html" />
|
||||
<param name="limit" value="5" />
|
||||
</condition>
|
||||
<condition type="GroupMax">
|
||||
<param name="limit" value="7" />
|
||||
</condition>
|
||||
<condition type="Level" showMessageAndHtml="true">
|
||||
<param name="html" value="condNoLevel.html" />
|
||||
<param name="min" value="101" />
|
||||
</condition>
|
||||
<condition type="Level" showMessageAndHtml="true">
|
||||
<param name="html" value="condNoLevel.html" />
|
||||
<param name="max" value="105" />
|
||||
</condition>
|
||||
<condition type="Distance" />
|
||||
<condition type="Reenter" />
|
||||
</conditions>
|
||||
<reenter apply="ON_FINISH">
|
||||
<reset day="MONDAY" hour="6" minute="30" />
|
||||
<reset day="TUESDAY" hour="6" minute="30" />
|
||||
<reset day="WEDNESDAY" hour="6" minute="30" />
|
||||
<reset day="THURSDAY" hour="6" minute="30" />
|
||||
<reset day="FRIDAY" hour="6" minute="30" />
|
||||
<reset day="SATURDAY" hour="6" minute="30" />
|
||||
<reset day="SUNDAY" hour="6" minute="30" />
|
||||
</reenter>
|
||||
<doorlist>
|
||||
<door id="25180001">
|
||||
<openStatus default="close" />
|
||||
</door>
|
||||
<door id="25180002">
|
||||
<openStatus default="close" />
|
||||
</door>
|
||||
<door id="25180003">
|
||||
<openStatus default="close" />
|
||||
</door>
|
||||
<door id="25180004">
|
||||
<openStatus default="close" />
|
||||
</door>
|
||||
<door id="25180005">
|
||||
<openStatus default="close" />
|
||||
</door>
|
||||
<door id="25180006">
|
||||
<openStatus default="close" />
|
||||
</door>
|
||||
<door id="25180007">
|
||||
<openStatus default="close" />
|
||||
</door>
|
||||
</doorlist>
|
||||
<spawnlist>
|
||||
<group name="general" spawnByDefault="false">
|
||||
<npc id="25856" x="177833" y="14852" z="-13688" heading="0"/> <!-- Isadora -->
|
||||
<npc id="25855" x="178432" y="14848" z="-13688" heading="0"/> <!-- Maliss -->
|
||||
<npc id="34331" x="179521" y="13610" z="-7392" heading="33344"/> <!-- Logart Van Dyke -->
|
||||
<npc id="34331" x="179543" y="13552" z="-9824" heading="32460"/> <!-- Logart Van Dyke -->
|
||||
<npc id="34331" x="179519" y="12797" z="-12768" heading="32712"/> <!-- Logart Van Dyke -->
|
||||
<npc id="34332" x="178149" y="16676" z="-13648" heading="16600"/> <!-- Dinford -->
|
||||
<npc id="19121" x="178150" y="13600" z="-8016" heading="13828"/> <!-- Altar of Sacrifice -->
|
||||
<npc id="19122" x="178150" y="13600" z="-10448" heading="16772"/> <!-- Altar of Sacrifice -->
|
||||
<npc id="19123" x="178150" y="12840" z="-13392" heading="44317"/> <!-- Altar of Sacrifice -->
|
||||
<npc id="19142" x="177584" y="14400" z="-8088" heading="0"/> <!-- Sacrificial Offering -->
|
||||
<npc id="19143" x="177864" y="14534" z="-8088" heading="0"/> <!-- Sacrificial Offering -->
|
||||
<npc id="19144" x="178149" y="14401" z="-8088" heading="0"/> <!-- Sacrificial Offering -->
|
||||
<npc id="19145" x="178439" y="14528" z="-8088" heading="0"/> <!-- Sacrificial Offering -->
|
||||
<npc id="19146" x="178713" y="14417" z="-8088" heading="0"/> <!-- Sacrificial Offering -->
|
||||
<npc id="19147" x="177589" y="14407" z="-10520" heading="0"/> <!-- Sacrificial Offering -->
|
||||
<npc id="19148" x="177863" y="14541" z="-10520" heading="0"/> <!-- Sacrificial Offering -->
|
||||
<npc id="19149" x="178153" y="14415" z="-10520" heading="0"/> <!-- Sacrificial Offering -->
|
||||
<npc id="19150" x="178442" y="14528" z="-10520" heading="0"/> <!-- Sacrificial Offering -->
|
||||
<npc id="19151" x="178712" y="14408" z="-10520" heading="0"/> <!-- Sacrificial Offering -->
|
||||
</group>
|
||||
<group name="first_floor" spawnByDefault="false">
|
||||
<!-- 1st floor 1st room -->
|
||||
<npc id="23142" x="181315" y="14009" z="-7616" heading="23913" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="182829" y="14851" z="-7616" heading="23465" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="181806" y="14543" z="-7608" heading="39123" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="181944" y="15457" z="-7616" heading="54183" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="180840" y="14674" z="-7616" heading="55476" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="181424" y="13863" z="-7616" heading="21874" /> <!-- Embryo Guard -->
|
||||
<npc id="23141" x="181541" y="14179" z="-7616" heading="23691" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="181614" y="14795" z="-7608" heading="37559" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="182055" y="15303" z="-7616" heading="55513" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="182229" y="15643" z="-7616" heading="55481" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="182417" y="14797" z="-7616" heading="21914" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="182521" y="14650" z="-7616" heading="24720" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="181076" y="14829" z="-7616" heading="55433" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="181181" y="14683" z="-7616" heading="55609" /> <!-- Embryo Fighter -->
|
||||
<npc id="23140" x="181649" y="14031" z="-7616" heading="22548" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="180953" y="14515" z="-7616" heading="55493" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="182713" y="15019" z="-7616" heading="22606" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="181871" y="14999" z="-7608" heading="39090" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="182342" y="15487" z="-7616" heading="55459" /> <!-- Embryo Watchman -->
|
||||
<npc id="23139" x="182070" y="14727" z="-7608" heading="39831" /> <!-- Embryo Researcher -->
|
||||
<npc id="23131" x="181834" y="14767" z="-7608" heading="37586" /> <!-- Embryo Executor Captain -->
|
||||
<!-- 1st floor 2st room -->
|
||||
<npc id="23142" x="182413" y="17524" z="-7864" heading="55494" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="181674" y="18255" z="-7872" heading="6330" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="183339" y="17361" z="-7872" heading="8091" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="182531" y="16784" z="-7872" heading="8091" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="182558" y="18468" z="-7872" heading="39871" /> <!-- Embryo Guard -->
|
||||
<npc id="23141" x="182495" y="17988" z="-7864" heading="56703" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="183142" y="17635" z="-7872" heading="39519" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="182485" y="17168" z="-7872" heading="7171" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="182226" y="18648" z="-7872" heading="38766" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="181910" y="17967" z="-7872" heading="5242" /> <!-- Embryo Fighter -->
|
||||
<npc id="23140" x="182688" y="16898" z="-7872" heading="7195" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="183187" y="17254" z="-7872" heading="38269" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="182224" y="17786" z="-7864" heading="55748" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="181548" y="18164" z="-7872" heading="7239" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="182357" y="18743" z="-7872" heading="38963" /> <!-- Embryo Watchman -->
|
||||
<npc id="23139" x="182421" y="18369" z="-7872" heading="39556" /> <!-- Embryo Researcher -->
|
||||
<npc id="23139" x="181772" y="17873" z="-7872" heading="7271" /> <!-- Embryo Researcher -->
|
||||
<npc id="23139" x="182338" y="17063" z="-7872" heading="6940" /> <!-- Embryo Researcher -->
|
||||
<npc id="23139" x="182991" y="17529" z="-7872" heading="39974" /> <!-- Embryo Researcher -->
|
||||
<npc id="23139" x="182687" y="17717" z="-7864" heading="55632" /> <!-- Embryo Researcher -->
|
||||
<npc id="23131" x="182453" y="17756" z="-7864" heading="55808" /> <!-- Embryo Executor Captain -->
|
||||
<!-- 1st floor 3st room -->
|
||||
<npc id="23142" x="179668" y="18331" z="-8128" heading="6204" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="178844" y="18342" z="-8136" heading="56681" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="179236" y="17838" z="-8136" heading="20051" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="179645" y="18913" z="-8136" heading="56524" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="180290" y="18601" z="-8136" heading="23360" /> <!-- Embryo Guard -->
|
||||
<npc id="23141" x="180009" y="18407" z="-8136" heading="23354" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="179922" y="19106" z="-8136" heading="55523" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="179405" y="18141" z="-8128" heading="6007" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="178487" y="18304" z="-8136" heading="56001" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="179061" y="17503" z="-8136" heading="21608" /> <!-- Embryo Fighter -->
|
||||
<npc id="23140" x="178743" y="18481" z="-8136" heading="54910" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="178956" y="17649" z="-8136" heading="23285" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="179473" y="18605" z="-8128" heading="7076" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="179818" y="19256" z="-8136" heading="56591" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="180394" y="18452" z="-8136" heading="24120" /> <!-- Embryo Watchman -->
|
||||
<npc id="23139" x="179539" y="19062" z="-8136" heading="55014" /> <!-- Embryo Researcher -->
|
||||
<npc id="23139" x="179205" y="18414" z="-8128" heading="6803" /> <!-- Embryo Researcher -->
|
||||
<npc id="23139" x="180118" y="18255" z="-8136" heading="23660" /> <!-- Embryo Researcher -->
|
||||
<npc id="23139" x="178594" y="18156" z="-8136" heading="56048" /> <!-- Embryo Researcher -->
|
||||
<npc id="23139" x="179337" y="17699" z="-8136" heading="22822" /> <!-- Embryo Researcher -->
|
||||
<npc id="23131" x="179442" y="18374" z="-8128" heading="4506" /> <!-- Embryo Executor Captain -->
|
||||
<!-- 1st floor 4st room -->
|
||||
<npc id="23141" x="177740" y="15229" z="-8312" heading="65530" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="178548" y="15228" z="-8312" heading="32481" /> <!-- Embryo Fighter -->
|
||||
<npc id="23142" x="178574" y="15774" z="-8312" heading="32849" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="177427" y="15227" z="-8312" heading="2497" /> <!-- Embryo Guard -->
|
||||
<npc id="23140" x="177708" y="15783" z="-8312" heading="1499" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="178827" y="15787" z="-8312" heading="13834" /> <!-- Embryo Watchman -->
|
||||
<npc id="23139" x="178846" y="15216" z="-8312" heading="32391" /> <!-- Embryo Researcher -->
|
||||
<npc id="23139" x="177445" y="15787" z="-8312" heading="669" /> <!-- Embryo Researcher -->
|
||||
<!-- 1st floor boss -->
|
||||
<npc id="25857" x="178146" y="15000" z="-8312" heading="18233" /> <!-- Corrupted Captain -->
|
||||
</group>
|
||||
<group name="second_floor" spawnByDefault="false">
|
||||
<!-- 2st floor 1st room -->
|
||||
<npc id="23129" x="181632" y="14245" z="-10048" heading="24446" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="181669" y="14792" z="-10040" heading="39262" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="182053" y="15304" z="-10048" heading="55811" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="182857" y="14866" z="-10048" heading="22442" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="181156" y="14912" z="-10048" heading="55993" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23127" x="181272" y="14754" z="-10048" heading="55845" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="182351" y="15523" z="-10048" heading="55330" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="181355" y="14048" z="-10048" heading="22899" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="182534" y="14638" z="-10048" heading="23741" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="181998" y="14734" z="-10040" heading="39347" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23128" x="181805" y="14600" z="-10040" heading="37848" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="181860" y="14928" z="-10040" heading="39680" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="182414" y="14801" z="-10048" heading="26424" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="182238" y="15682" z="-10048" heading="55327" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="180995" y="14557" z="-10048" heading="55965" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="181746" y="14095" z="-10048" heading="21944" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23126" x="181444" y="13882" z="-10048" heading="23910" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23126" x="180906" y="14732" z="-10048" heading="56442" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23126" x="182712" y="15019" z="-10048" heading="23218" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23126" x="181936" y="15470" z="-10048" heading="55180" /> <!-- Embryo Elite Escort -->
|
||||
<!-- 2st floor 2st room -->
|
||||
<npc id="23129" x="182665" y="16916" z="-10304" heading="5486" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="182205" y="18632" z="-10304" heading="38327" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="182417" y="18332" z="-10304" heading="38704" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="181702" y="18273" z="-10304" heading="6517" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="182501" y="16797" z="-10304" heading="6671" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="182991" y="17528" z="-10304" heading="39098" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="183160" y="17474" z="-10304" heading="39074" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23127" x="181917" y="17975" z="-10304" heading="6011" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="182578" y="18447" z="-10304" heading="40250" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="182384" y="18553" z="-10304" heading="40030" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="182517" y="16983" z="-10304" heading="6049" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="183176" y="17270" z="-10304" heading="41931" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23128" x="183153" y="17644" z="-10304" heading="40362" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="182327" y="17051" z="-10304" heading="6919" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="182360" y="18743" z="-10304" heading="38293" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="181540" y="18157" z="-10304" heading="6379" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23126" x="181755" y="17860" z="-10304" heading="4711" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23126" x="181747" y="18063" z="-10304" heading="6737" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23126" x="182486" y="17168" z="-10304" heading="5041" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23126" x="183333" y="17391" z="-10304" heading="38209" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23138" x="182409" y="18255" z="-10304" heading="30021"> <!-- Etina Bladesmen -->
|
||||
<parameters>
|
||||
<param name="SuperPointName" value="etina_bladesmen_1" />
|
||||
</parameters>
|
||||
</npc>
|
||||
<npc id="23138" x="182000" y="17922" z="-10304" heading="22511"> <!-- Etina Bladesmen -->
|
||||
<parameters>
|
||||
<param name="SuperPointName" value="etina_bladesmen_2" />
|
||||
</parameters>
|
||||
</npc>
|
||||
<!-- 2st floor 3st room -->
|
||||
<npc id="23130" x="179540" y="19060" z="-10568" heading="53859" /> <!-- Embryo Elite High Priest -->
|
||||
<npc id="23130" x="178546" y="18123" z="-10568" heading="55565" /> <!-- Embryo Elite High Priest -->
|
||||
<npc id="23130" x="178906" y="17620" z="-10568" heading="23026" /> <!-- Embryo Elite High Priest -->
|
||||
<npc id="23129" x="178437" y="18275" z="-10568" heading="54969" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="179025" y="17458" z="-10568" heading="22279" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="179274" y="18400" z="-10560" heading="7344" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="180125" y="18247" z="-10568" heading="23203" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23128" x="179414" y="18206" z="-10560" heading="5824" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="180010" y="18405" z="-10568" heading="22892" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="178761" y="18499" z="-10568" heading="54666" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="179857" y="19296" z="-10568" heading="54800" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23127" x="179601" y="18340" z="-10560" heading="6348" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="179345" y="17689" z="-10568" heading="22336" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="179646" y="18908" z="-10568" heading="53631" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="180335" y="18581" z="-10568" heading="22933" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23126" x="179974" y="19139" z="-10568" heading="57307" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23126" x="180427" y="18455" z="-10568" heading="25307" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23126" x="179466" y="18541" z="-10560" heading="6681" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23126" x="179229" y="17845" z="-10568" heading="22563" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23131" x="178871" y="18353" z="-10568" heading="57361" /> <!-- Embryo Executor Captain -->
|
||||
<npc id="23138" x="179050" y="18309" z="-10568" heading="38891" /> <!-- Etina Bladesmen -->
|
||||
<!-- 2st floor 4st room -->
|
||||
<npc id="23130" x="178536" y="15981" z="-10744" heading="31126" /> <!-- Embryo Elite High Priest -->
|
||||
<npc id="23126" x="178549" y="15688" z="-10744" heading="33033" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23130" x="178522" y="15390" z="-10744" heading="33219" /> <!-- Embryo Elite High Priest -->
|
||||
<npc id="23128" x="178993" y="15706" z="-10744" heading="32714" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="178735" y="15533" z="-10744" heading="33312" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23127" x="178728" y="15847" z="-10744" heading="33290" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="178978" y="15981" z="-10744" heading="32904" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23129" x="178998" y="15408" z="-10744" heading="33170" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23128" x="177722" y="15379" z="-10744" heading="217" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23127" x="177732" y="15672" z="-10744" heading="64457" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23130" x="177738" y="15981" z="-10744" heading="65477" /> <!-- Embryo Elite High Priest -->
|
||||
<npc id="23130" x="177499" y="15494" z="-10744" heading="64083" /> <!-- Embryo Elite High Priest -->
|
||||
<npc id="23129" x="177498" y="15843" z="-10744" heading="65509" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23128" x="177269" y="15981" z="-10744" heading="789" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23126" x="177261" y="15656" z="-10744" heading="64191" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23129" x="177267" y="15372" z="-10744" heading="1549" /> <!-- Embryo Elite Alchemist -->
|
||||
<!-- 2st floor boss -->
|
||||
<npc id="25858" x="178154" y="15149" z="-10744" heading="15626" /> <!-- Corrupted High Priest -->
|
||||
</group>
|
||||
<group name="thrid_floor" spawnByDefault="false">
|
||||
<npc id="8561" x="181547" y="14035" z="-12992" heading="0" /> <!-- invisible1 -->
|
||||
<npc id="8561" x="182615" y="14779" z="-12992" heading="0" /> <!-- invisible1 -->
|
||||
<npc id="8561" x="182122" y="15470" z="-12992" heading="0" /> <!-- invisible1 -->
|
||||
<npc id="8561" x="181071" y="14765" z="-12992" heading="0" /> <!-- invisible1 -->
|
||||
<npc id="8561" x="183207" y="17472" z="-13248" heading="0" /> <!-- invisible1 -->
|
||||
<npc id="8561" x="182485" y="17000" z="-13248" heading="0" /> <!-- invisible1 -->
|
||||
<npc id="8561" x="181721" y="18030" z="-13248" heading="0" /> <!-- invisible1 -->
|
||||
<npc id="8561" x="182408" y="18565" z="-13248" heading="0" /> <!-- invisible1 -->
|
||||
<npc id="8561" x="179690" y="19125" z="-13512" heading="0" /> <!-- invisible1 -->
|
||||
<npc id="8561" x="180233" y="18389" z="-13512" heading="0" /> <!-- invisible1 -->
|
||||
<npc id="8561" x="179107" y="17593" z="-13512" heading="0" /> <!-- invisible1 -->
|
||||
<npc id="8561" x="178607" y="18350" z="-13512" heading="0" /> <!-- invisible1 -->
|
||||
</group>
|
||||
</spawnlist>
|
||||
</instance>
|
4
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/instances/AltarOfShilen/19121.html
vendored
Normal file
4
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/instances/AltarOfShilen/19121.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>
|
||||
The altar stops humming, and you feel the reverberating power of dimensional.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest AltarOfShilen teleport1">Try to go trough the door.</Button>
|
||||
</body></html>
|
4
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/instances/AltarOfShilen/19122.html
vendored
Normal file
4
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/instances/AltarOfShilen/19122.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>
|
||||
The altar stops humming, and you feel the reverberating power of dimensional.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest AltarOfShilen teleport2">Try to go trough the door.</Button>
|
||||
</body></html>
|
5
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/instances/AltarOfShilen/34331-01.html
vendored
Normal file
5
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/instances/AltarOfShilen/34331-01.html
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Royal Guard Captain Logart Van Dyke:<br>
|
||||
Who is it? Ah, you're the adventurer who volunteered to stop the ritual on the Altar of Shilen. You must be capable enough to stop it. Otherwise, you couldn't come this far. Okay, I'll open the door for you.<br>
|
||||
Don't lower yourb guard once inside.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest AltarOfShilen open_door">Open the door to the 2nd floor</Button>
|
||||
</body></html>
|
7
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/instances/AltarOfShilen/34331-02.html
vendored
Normal file
7
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/instances/AltarOfShilen/34331-02.html
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<html><body>Royal Guard Captain Logart Van Dyke:<br>
|
||||
Who is it? Ah, it's you! You've come this far!<br>
|
||||
The last altar is before you.<br>
|
||||
After Embryos invaded the Keucereus Alliance Base, the existence of the Messiah Castle was revealed. Melisa and Isadora, the twin sisters who had long disappeared, returned and are threatening us. If we fail to stop the ritual, Embryos will invade Aden Continent in no time. We must stop them at all cost.<br>
|
||||
My man Dinford will be waiting for you at the entrance to the last altar. Go to find him.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest AltarOfShilen open_door">Open the door to the 3nd floor</Button>
|
||||
</body></html>
|
5
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/instances/AltarOfShilen/34331.html
vendored
Normal file
5
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/instances/AltarOfShilen/34331.html
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Royal Guard Captain Logart Van Dyke:<br>
|
||||
How did you get in here? The blockade was only recently lifted, and this area is still very dangerous. It is under the control of the Kingdom's Royal Guard.<br>
|
||||
It is suspected that Embryos are preparing somewhere in this area to invade the Aden Continent. The Kingdom's Royal Guard is doing its best to stop them. are you here to stop the Embryo's ritual on the Altar of Shilen? if so. I'll gladly open open this door. Be careful. Only danger awaits you.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest AltarOfShilen open_door">Open the door to the 1st floor</Button>
|
||||
</body></html>
|
6
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/instances/AltarOfShilen/34332.html
vendored
Normal file
6
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/instances/AltarOfShilen/34332.html
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html>Quartermaster Dinford<body>
|
||||
Who is it? Ah, you've come to stop the ritual the ritual on the Altar of Shilen!<br>
|
||||
If so, I'll open the door to the altar.<br>
|
||||
Please stop the threat of the Embrio.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest AltarOfShilen final_door">Open the door.</Button>
|
||||
</body></html>
|
694
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/instances/AltarOfShilen/AltarOfShilen.java
vendored
Normal file
694
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/instances/AltarOfShilen/AltarOfShilen.java
vendored
Normal file
@@ -0,0 +1,694 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program 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.
|
||||
*
|
||||
* This program 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 instances.AltarOfShilen;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.Future;
|
||||
|
||||
import com.l2jmobius.commons.concurrent.ThreadPool;
|
||||
import com.l2jmobius.gameserver.enums.ChatType;
|
||||
import com.l2jmobius.gameserver.instancemanager.InstanceManager;
|
||||
import com.l2jmobius.gameserver.model.L2World;
|
||||
import com.l2jmobius.gameserver.model.Location;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Npc;
|
||||
import com.l2jmobius.gameserver.model.actor.instance.L2MonsterInstance;
|
||||
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||
import com.l2jmobius.gameserver.model.instancezone.Instance;
|
||||
import com.l2jmobius.gameserver.network.NpcStringId;
|
||||
import com.l2jmobius.gameserver.network.serverpackets.Earthquake;
|
||||
import com.l2jmobius.gameserver.network.serverpackets.ExSendUIEvent;
|
||||
import com.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
|
||||
import com.l2jmobius.gameserver.network.serverpackets.NpcSay;
|
||||
|
||||
import instances.AbstractInstance;
|
||||
|
||||
/**
|
||||
* Instance Altar of Shilen
|
||||
* @URL https://l2wiki.com/Altar_of_Shilen
|
||||
* @author Gigi
|
||||
* @date 2018-04-13 - [23:27:28]
|
||||
*/
|
||||
public class AltarOfShilen extends AbstractInstance
|
||||
{
|
||||
// NPCs
|
||||
private static final int LOGART_VAN_DYKE = 34331;
|
||||
private static final int DINFORD = 34332;
|
||||
private static final int ISADORA = 25856;
|
||||
private static final int MELISSA0 = 25855;
|
||||
private static final int MELISSA = 25876; // She dropping items
|
||||
private static final int EXECUTOR_CAPTAIN = 23131;
|
||||
private static final int ETINA_BLADESMAN = 23138;
|
||||
private static final int CORRUPTED_CAPTAIN = 25857;
|
||||
private static final int CORRUPTED_HIGH_PRIEST = 25858;
|
||||
private static final int RITUAL_ALTAR0 = 19121;
|
||||
private static final int RITUAL_ALTAR1 = 19122;
|
||||
private static final int SHILLIEN_ALTAR = 19123;
|
||||
private static final int INVISIBLE = 8561;
|
||||
private static final int ETINA_GOSPEL = 23132;
|
||||
private static final int ETINA_PRIEST = 23133;
|
||||
private static final int ETINA_PROTECTORS = 23134;
|
||||
private static final int ETINA_PUNISHERS = 23135;
|
||||
private static final int ETINA_COMMINATION = 23136;
|
||||
private static final int ETINA_DARKMONAGERS = 23137;
|
||||
private static final int ELITE_ESCORT = 23126;
|
||||
private static final int ELITE_CHASER = 23127;
|
||||
private static final int ELITE_WARRIOR = 23128;
|
||||
private static final int ELITE_ALCHEMIST = 23129;
|
||||
private static final int ELITE_PRIEST = 23130;
|
||||
private static final int EMBRYO_RESERCHER = 23139;
|
||||
private static final int EMBRYO_WATCHMAN = 23140;
|
||||
private static final int EMBRYO_FIGHTER = 23141;
|
||||
private static final int EMBRYO_GUARD = 23142;
|
||||
// Skills
|
||||
static final SkillHolder PROTECTED_ALTAR = new SkillHolder(14496, 1);
|
||||
// Misc
|
||||
private static final int TEMPLATE_ID = 194;
|
||||
private static final int ALTAR_TIME = 180;
|
||||
//@formatter:off
|
||||
private static final int[] DOORS = { 25180001, 25180002, 25180003, 25180004, 25180005, 25180006, 25180007 };
|
||||
//@formatter:on
|
||||
private static final NpcStringId[] SHOUT_MSG =
|
||||
{
|
||||
NpcStringId.I_NEED_HELP,
|
||||
NpcStringId.FOCUS_FIRE_ACCORDING_TO_MY_ORCHESTRATION,
|
||||
NpcStringId.I_NEED_HEAL,
|
||||
NpcStringId.I_M_GOING_TO_BACK_OFF_FOR_A_BIT,
|
||||
NpcStringId.I_WILL_ATTACK_THE_ENEMY_S_HEALER,
|
||||
NpcStringId.STOP_ENEMIES_HEALING,
|
||||
NpcStringId.ATTACK_WEAKENED_ENEMY,
|
||||
NpcStringId.COME_AT_ME,
|
||||
NpcStringId.SWITCH_TO_FAST_SHOOTING_MODE,
|
||||
NpcStringId.SWITCH_TO_FAST_CASTING_MODE,
|
||||
NpcStringId.BLINK_ATTACK,
|
||||
NpcStringId.ONLY_DEATH_AWAITS_FOR_THE_WEAK,
|
||||
};
|
||||
static final Location MELISSA_SPAWN = new Location(178146, 14356, -13688);
|
||||
private static final Location SECOND_FLOOR = new Location(179357, 13664, -9828);
|
||||
private static final Location THIRD_FLOOR = new Location(179354, 12922, -12776);
|
||||
|
||||
final List<L2PcInstance> playersInside = new ArrayList<>();
|
||||
final Map<Integer, Integer> killedMonsters = new ConcurrentHashMap<>();
|
||||
static List<L2Npc> firstFloorVictims = new ArrayList<>();
|
||||
public static Future<?> timer;
|
||||
public L2Npc altar;
|
||||
|
||||
public AltarOfShilen()
|
||||
{
|
||||
super(TEMPLATE_ID);
|
||||
addInstanceCreatedId(TEMPLATE_ID);
|
||||
addFirstTalkId(LOGART_VAN_DYKE, RITUAL_ALTAR0, RITUAL_ALTAR1, DINFORD);
|
||||
addSpawnId(CORRUPTED_CAPTAIN, CORRUPTED_HIGH_PRIEST, INVISIBLE, SHILLIEN_ALTAR);
|
||||
addAttackId(ETINA_GOSPEL, ETINA_PRIEST, ETINA_PROTECTORS, ETINA_PUNISHERS, ETINA_COMMINATION, ETINA_DARKMONAGERS, ELITE_ESCORT, ELITE_CHASER, ELITE_WARRIOR, ELITE_ALCHEMIST, ELITE_PRIEST, EMBRYO_RESERCHER, EMBRYO_WATCHMAN, EMBRYO_FIGHTER, EMBRYO_GUARD);
|
||||
addKillId(EXECUTOR_CAPTAIN, CORRUPTED_CAPTAIN, ETINA_BLADESMAN, CORRUPTED_HIGH_PRIEST, ETINA_GOSPEL, ETINA_PROTECTORS, ETINA_PUNISHERS, MELISSA0, MELISSA, ISADORA);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onInstanceCreated(Instance instance, L2PcInstance player)
|
||||
{
|
||||
instance.spawnGroup("general");
|
||||
instance.spawnGroup("first_floor");
|
||||
instance.setStatus(1);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
final Instance world = npc.getInstanceWorld();
|
||||
if (event.equals("enterInstance"))
|
||||
{
|
||||
enterInstance(player, npc, TEMPLATE_ID);
|
||||
if (player.isGM())
|
||||
{
|
||||
playersInside.add(player);
|
||||
}
|
||||
if (player.getParty() != null)
|
||||
{
|
||||
for (L2PcInstance partyMember : player.getParty().getMembers())
|
||||
{
|
||||
playersInside.add(partyMember);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (event.equals("check_player"))
|
||||
{
|
||||
L2World.getInstance().forEachVisibleObjectInRange(npc, L2PcInstance.class, 400, p ->
|
||||
{
|
||||
if ((p != null) && p.isPlayer() && !p.isDead())
|
||||
{
|
||||
npc.setScriptValue(1);
|
||||
final L2Npc gospel = addSpawn(ETINA_GOSPEL, npc, true, 0, false, world.getId());
|
||||
final L2Npc priest = addSpawn(ETINA_PRIEST, npc, true, 0, false, world.getId());
|
||||
final L2Npc protectors = addSpawn(ETINA_PROTECTORS, npc, true, 0, false, world.getId());
|
||||
final L2Npc punishers = addSpawn(ETINA_PUNISHERS, npc, true, 0, false, world.getId());
|
||||
final L2Npc commination = addSpawn(ETINA_COMMINATION, npc, true, 0, false, world.getId());
|
||||
final L2Npc darkmonagers = addSpawn(ETINA_DARKMONAGERS, npc, true, 0, false, world.getId());
|
||||
addAttackPlayerDesire(gospel, p);
|
||||
addAttackPlayerDesire(priest, p);
|
||||
addAttackPlayerDesire(protectors, p);
|
||||
addAttackPlayerDesire(punishers, p);
|
||||
addAttackPlayerDesire(commination, p);
|
||||
addAttackPlayerDesire(darkmonagers, p);
|
||||
}
|
||||
});
|
||||
}
|
||||
if (isInInstance(world))
|
||||
{
|
||||
switch (npc.getId())
|
||||
{
|
||||
case LOGART_VAN_DYKE:
|
||||
{
|
||||
if (event.equals("open_door"))
|
||||
{
|
||||
if (world.getStatus() == 1)
|
||||
{
|
||||
if (world.getDoor(DOORS[0]) != null)
|
||||
{
|
||||
world.getDoor(DOORS[0]).openMe();
|
||||
}
|
||||
world.setStatus(2);
|
||||
onStatusChanged(world);
|
||||
break;
|
||||
}
|
||||
else if (world.getStatus() == 3)
|
||||
{
|
||||
if (world.getDoor(DOORS[1]) != null)
|
||||
{
|
||||
world.getDoor(DOORS[1]).openMe();
|
||||
}
|
||||
world.setStatus(4);
|
||||
onStatusChanged(world);
|
||||
break;
|
||||
}
|
||||
else if (world.getStatus() == 5)
|
||||
{
|
||||
if (world.getDoor(DOORS[2]) != null)
|
||||
{
|
||||
world.getDoor(DOORS[2]).openMe();
|
||||
}
|
||||
world.setStatus(6);
|
||||
onStatusChanged(world);
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case RITUAL_ALTAR0:
|
||||
{
|
||||
if ((world.getStatus() == 3) && event.equals("teleport1"))
|
||||
{
|
||||
L2World.getInstance().forEachVisibleObjectInRange(npc, L2PcInstance.class, 1000, p ->
|
||||
{
|
||||
if ((p != null) && p.isPlayable() && !p.isDead())
|
||||
{
|
||||
p.teleToLocation(SECOND_FLOOR, world.getTemplateId());
|
||||
}
|
||||
world.spawnGroup("second_floor");
|
||||
});
|
||||
}
|
||||
break;
|
||||
}
|
||||
case RITUAL_ALTAR1:
|
||||
{
|
||||
if ((world.getStatus() == 5) && event.equals("teleport2"))
|
||||
{
|
||||
L2World.getInstance().forEachVisibleObjectInRange(npc, L2PcInstance.class, 1000, p ->
|
||||
{
|
||||
if ((p != null) && p.isPlayable() && !p.isDead())
|
||||
{
|
||||
p.teleToLocation(THIRD_FLOOR, world.getTemplateId());
|
||||
}
|
||||
world.spawnGroup("thrid_floor");
|
||||
});
|
||||
}
|
||||
break;
|
||||
}
|
||||
case DINFORD:
|
||||
{
|
||||
if ((world.getStatus() == 6) && event.equals("final_door"))
|
||||
{
|
||||
if (!world.getDoor(DOORS[6]).isOpen())
|
||||
{
|
||||
world.getDoor(DOORS[6]).openMe();
|
||||
}
|
||||
world.setStatus(7);
|
||||
onStatusChanged(world);
|
||||
npc.deleteMe();
|
||||
cancelQuestTimers("check_player");
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return super.onAdvEvent(event, npc, player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAttack(L2Npc npc, L2PcInstance attacker, int damage, boolean isSummon)
|
||||
{
|
||||
if (npc.getInstanceWorld() != null)
|
||||
{
|
||||
if (getRandom(30) < 3)
|
||||
{
|
||||
npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), SHOUT_MSG[getRandom(SHOUT_MSG.length)]));
|
||||
}
|
||||
}
|
||||
return super.onAttack(npc, attacker, damage, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
|
||||
{
|
||||
final Instance world = npc.getInstanceWorld();
|
||||
if (world != null)
|
||||
{
|
||||
int npcId = npc.getId();
|
||||
if (!killedMonsters.containsKey(npcId))
|
||||
{
|
||||
killedMonsters.put(npcId, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
killedMonsters.put(npcId, killedMonsters.get(npcId) + 1);
|
||||
}
|
||||
// 1st Floor
|
||||
if (world.getStatus() == 2)
|
||||
{
|
||||
if (killedMonsters.containsKey(EXECUTOR_CAPTAIN) && (killedMonsters.get(EXECUTOR_CAPTAIN) >= 3))
|
||||
{
|
||||
final int boos1 = world.getTemplateParameters().getInt("boss1");
|
||||
final L2Npc captain = world.getNpc(boos1);
|
||||
if (captain != null)
|
||||
{
|
||||
captain.setIsInvul(false);
|
||||
}
|
||||
}
|
||||
if (killedMonsters.containsKey(CORRUPTED_CAPTAIN) && (killedMonsters.get(CORRUPTED_CAPTAIN) >= 1))
|
||||
{
|
||||
for (L2PcInstance player : playersInside)
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage(NpcStringId.YOU_CAN_MOVE_TO_THE_NEXT_FLOOR_THROUGH_THE_ALTAR_OF_SACRIFICE, ExShowScreenMessage.MIDDLE_CENTER, 5000));
|
||||
}
|
||||
world.setStatus(3);
|
||||
killedMonsters.clear();
|
||||
onStatusChanged(world);
|
||||
}
|
||||
}
|
||||
// 2st Floor
|
||||
else if (world.getStatus() == 4)
|
||||
{
|
||||
if (killedMonsters.containsKey(ETINA_BLADESMAN) && (killedMonsters.get(ETINA_BLADESMAN) >= 3))
|
||||
{
|
||||
final int boos2 = world.getTemplateParameters().getInt("boss2");
|
||||
final L2Npc priest = world.getNpc(boos2);
|
||||
if (priest != null)
|
||||
{
|
||||
priest.setIsInvul(false);
|
||||
}
|
||||
}
|
||||
if (killedMonsters.containsKey(CORRUPTED_HIGH_PRIEST) && (killedMonsters.get(CORRUPTED_HIGH_PRIEST) >= 1))
|
||||
{
|
||||
for (L2PcInstance player : playersInside)
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage(NpcStringId.YOU_CAN_MOVE_TO_THE_NEXT_FLOOR_THROUGH_THE_ALTAR_OF_SACRIFICE, ExShowScreenMessage.MIDDLE_CENTER, 5000));
|
||||
}
|
||||
world.setStatus(5);
|
||||
killedMonsters.clear();
|
||||
onStatusChanged(world);
|
||||
|
||||
}
|
||||
}
|
||||
// 3st Floor
|
||||
else if (world.getStatus() == 6)
|
||||
{
|
||||
switch (npc.getId())
|
||||
{
|
||||
case ETINA_GOSPEL:
|
||||
{
|
||||
world.getDoor(DOORS[3]).openMe();
|
||||
ThreadPool.schedule(() -> world.getDoor(DOORS[3]).closeMe(), 5000);
|
||||
break;
|
||||
}
|
||||
case ETINA_PROTECTORS:
|
||||
{
|
||||
world.getDoor(DOORS[4]).openMe();
|
||||
ThreadPool.schedule(() -> world.getDoor(DOORS[4]).closeMe(), 5000);
|
||||
break;
|
||||
}
|
||||
case ETINA_PUNISHERS:
|
||||
{
|
||||
world.getDoor(DOORS[5]).openMe();
|
||||
ThreadPool.schedule(() -> world.getDoor(DOORS[5]).closeMe(), 5000);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (world.getStatus() == 8)
|
||||
{
|
||||
if (killedMonsters.containsKey(MELISSA) && (killedMonsters.get(MELISSA) == 1))
|
||||
{
|
||||
for (L2PcInstance player : playersInside)
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage(NpcStringId.ALTAR_OF_SHILEN_HAS_BEEN_DESTROYED_YOU_VE_WON, ExShowScreenMessage.TOP_CENTER, 5000, true));
|
||||
}
|
||||
playersInside.clear();
|
||||
killedMonsters.clear();
|
||||
world.finishInstance(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onSpawn(L2Npc npc)
|
||||
{
|
||||
if (npc.getInstanceWorld() != null)
|
||||
{
|
||||
switch (npc.getId())
|
||||
{
|
||||
case CORRUPTED_CAPTAIN:
|
||||
case CORRUPTED_HIGH_PRIEST:
|
||||
{
|
||||
npc.setIsInvul(true);
|
||||
break;
|
||||
}
|
||||
case INVISIBLE:
|
||||
{
|
||||
if (npc.isScriptValue(0))
|
||||
{
|
||||
startQuestTimer("check_player", 2000, npc, null, true);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case SHILLIEN_ALTAR:
|
||||
{
|
||||
altar = npc;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return super.onSpawn(npc);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onFirstTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
final Instance world = npc.getInstanceWorld();
|
||||
String htmltext = null;
|
||||
if (isInInstance(world))
|
||||
{
|
||||
switch (npc.getId())
|
||||
{
|
||||
case LOGART_VAN_DYKE:
|
||||
{
|
||||
if ((world.getStatus() > 0) && (world.getStatus() < 3))
|
||||
{
|
||||
return "34331.html";
|
||||
}
|
||||
else if ((world.getStatus() >= 3) && (world.getStatus() < 5))
|
||||
{
|
||||
return "34331-01.html";
|
||||
}
|
||||
else if (world.getStatus() >= 5)
|
||||
{
|
||||
return "34331-02.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case RITUAL_ALTAR0:
|
||||
{
|
||||
if (world.getStatus() >= 3)
|
||||
{
|
||||
return "19121.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case RITUAL_ALTAR1:
|
||||
{
|
||||
if (world.getStatus() >= 5)
|
||||
{
|
||||
return "19122.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case DINFORD:
|
||||
{
|
||||
if (world.getStatus() >= 5)
|
||||
{
|
||||
return "34332.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
public static class VictimDefeatTask implements Runnable
|
||||
{
|
||||
private final Instance _world;
|
||||
private int _victims;
|
||||
private final int _initialTime;
|
||||
private int _time;
|
||||
|
||||
VictimDefeatTask(int victims, int time, Instance world)
|
||||
{
|
||||
_world = world;
|
||||
_victims = victims;
|
||||
_initialTime = time;
|
||||
_time = time;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run()
|
||||
{
|
||||
for (L2PcInstance player : _world.getPlayers())
|
||||
{
|
||||
player.sendPacket(new ExSendUIEvent(player, ExSendUIEvent.TYPE_GP_TIMER, (_time--), 0, NpcStringId.SACRIFICE_LEFT_S1, new String[]
|
||||
{
|
||||
String.valueOf(_victims)
|
||||
}));
|
||||
}
|
||||
if (_time <= 0)
|
||||
{
|
||||
_time = _initialTime;
|
||||
--_victims;
|
||||
for (L2PcInstance player : _world.getPlayers())
|
||||
{
|
||||
player.sendPacket(new Earthquake(player.getX(), player.getY(), player.getZ(), 20, 5));
|
||||
player.sendPacket(new ExShowScreenMessage(NpcStringId.SACRIFICE_HAS_BEEN_KILLED_SACRIFICE_LEFT_S1, ExShowScreenMessage.MIDDLE_CENTER, 3000, String.valueOf(_victims)));
|
||||
}
|
||||
}
|
||||
if ((_world.getStatus() == 2) && !firstFloorVictims.isEmpty())
|
||||
{
|
||||
firstFloorVictims.get(0).deleteMe();
|
||||
firstFloorVictims.remove(0);
|
||||
}
|
||||
if ((_victims == 1) && (_world.getStatus() == 2))
|
||||
{
|
||||
for (L2PcInstance player : _world.getPlayers())
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage(NpcStringId.FOUR_LIVES_WERE_SACRIFICED_AND_THE_BLESSING_OF_BLOOD_IS_BESTOWED_UPON_THE_CORRUPTED_CAPTAIN, ExShowScreenMessage.MIDDLE_CENTER, 10000));
|
||||
}
|
||||
}
|
||||
if ((_victims == 1) && (_world.getStatus() == 4))
|
||||
{
|
||||
for (L2PcInstance player : _world.getPlayers())
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage(NpcStringId.FOUR_LIVES_WERE_SACRIFICED_AND_THE_BLESSING_OF_BLOOD_IS_BESTOWED_UPON_THE_CORRUPTED_HIGH_PRIEST, ExShowScreenMessage.MIDDLE_CENTER, 10000));
|
||||
}
|
||||
}
|
||||
if (_victims <= 0)
|
||||
{
|
||||
ThreadPool.schedule(() ->
|
||||
{
|
||||
for (L2PcInstance player : _world.getPlayers())
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage(NpcStringId.ALL_OFFERINGS_WERE_SACRIFICED_AND_THE_BLESSING_OF_BLOOD_IS_BESTOWED_UPON_THE_EMBRYO_COLONY_IN_THAT_FLOOR, ExShowScreenMessage.MIDDLE_CENTER, 3000));
|
||||
}
|
||||
if (timer != null)
|
||||
{
|
||||
timer.cancel(true);
|
||||
timer = null;
|
||||
}
|
||||
_world.finishInstance(1);
|
||||
}, 3000);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void onStatusChanged(final Instance world)
|
||||
{
|
||||
final Instance instance = InstanceManager.getInstance().getInstance(world.getId());
|
||||
switch (instance.getStatus())
|
||||
{
|
||||
case 1:
|
||||
{
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
if (timer != null)
|
||||
{
|
||||
timer.cancel(true);
|
||||
}
|
||||
for (L2PcInstance player : playersInside)
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage(NpcStringId.YOU_MUST_STOP_THE_ALTAR_BEFORE_EVERYTHING_IS_SACRIFICED, ExShowScreenMessage.MIDDLE_CENTER, 6000));
|
||||
}
|
||||
timer = ThreadPool.scheduleAtFixedRate(new VictimDefeatTask(5, ALTAR_TIME, world), 0, 1000);
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
{
|
||||
if (timer != null)
|
||||
{
|
||||
timer.cancel(true);
|
||||
timer = null;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 4:
|
||||
{
|
||||
if (timer != null)
|
||||
{
|
||||
timer.cancel(true);
|
||||
}
|
||||
for (L2PcInstance player : playersInside)
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage(NpcStringId.YOU_MUST_STOP_THE_ALTAR_BEFORE_EVERYTHING_IS_SACRIFICED, ExShowScreenMessage.MIDDLE_CENTER, 6000));
|
||||
}
|
||||
timer = ThreadPool.scheduleAtFixedRate(new VictimDefeatTask(5, ALTAR_TIME, world), 0, 1000);
|
||||
break;
|
||||
}
|
||||
case 5:
|
||||
case 6:
|
||||
{
|
||||
if (timer != null)
|
||||
{
|
||||
timer.cancel(true);
|
||||
timer = null;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 7:
|
||||
{
|
||||
ThreadPool.schedule(() -> timer = ThreadPool.scheduleAtFixedRate(new Runnable()
|
||||
{
|
||||
private int _time = ALTAR_TIME;
|
||||
|
||||
@Override
|
||||
public void run()
|
||||
{
|
||||
if (_time <= 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
boolean defeated = false;
|
||||
if (killedMonsters.containsKey(MELISSA0) && (killedMonsters.get(MELISSA0) == 1) && killedMonsters.containsKey(ISADORA) && (killedMonsters.get(ISADORA) == 1))
|
||||
{
|
||||
defeated = true;
|
||||
for (L2PcInstance player : playersInside)
|
||||
{
|
||||
player.sendPacket(new ExSendUIEvent(player, ExSendUIEvent.TYPE_NORNIL, (_time--), 0, 0, 0, 0, 2518008));
|
||||
player.sendPacket(new ExSendUIEvent(player, 0x01, 0, 0, 0, 0, 0, 2518008));
|
||||
player.sendPacket(new ExShowScreenMessage(NpcStringId.ALTAR_HAS_STOPPED, ExShowScreenMessage.MIDDLE_CENTER, 5000));
|
||||
addSpawn(MELISSA, MELISSA_SPAWN.getX(), MELISSA_SPAWN.getY(), MELISSA_SPAWN.getZ(), 0, false, 0, true, world.getId());
|
||||
if (timer != null)
|
||||
{
|
||||
timer.cancel(true);
|
||||
timer = null;
|
||||
}
|
||||
altar.deleteMe();
|
||||
world.setStatus(8);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (L2PcInstance player : world.getPlayers())
|
||||
{
|
||||
if (_time == ALTAR_TIME)
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage(NpcStringId.ALTAR_OF_SHILEN_IS_STARTING_MUST_FOCUS_FIRE_THE_ALTAR, ExShowScreenMessage.MIDDLE_CENTER, 5000));
|
||||
}
|
||||
player.sendPacket(new ExSendUIEvent(player, ExSendUIEvent.TYPE_NORNIL, (_time--), 0, 0, 0, 0, 2518008));
|
||||
}
|
||||
}
|
||||
|
||||
if (!defeated && (_time == 9))
|
||||
{
|
||||
for (L2PcInstance player : playersInside)
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage(NpcStringId.THE_ALTAR_OF_SHILEN_WILL_BECOME_ACTIVATED_IN_10_SECONDS, ExShowScreenMessage.MIDDLE_CENTER, 5000));
|
||||
}
|
||||
}
|
||||
|
||||
if (!defeated && (_time == 4))
|
||||
{
|
||||
for (L2PcInstance player : playersInside)
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage(NpcStringId.THE_ALTAR_OF_SHILEN_WILL_BECOME_ACTIVATED_IN_5_SECONDS, ExShowScreenMessage.MIDDLE_CENTER, 5000));
|
||||
}
|
||||
}
|
||||
|
||||
if (!defeated && (_time <= 0))
|
||||
{
|
||||
for (L2PcInstance player : playersInside)
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage(NpcStringId.FOCUS_FIRE_THE_ALTAR_TO_STOP_BLESSING_OF_SHILEN, ExShowScreenMessage.MIDDLE_CENTER, 5000));
|
||||
}
|
||||
|
||||
if (isInInstance(world))
|
||||
{
|
||||
L2World.getInstance().forEachVisibleObjectInRange(altar, L2MonsterInstance.class, 8000, boss ->
|
||||
{
|
||||
if ((boss != null) && !boss.isDead())
|
||||
{
|
||||
altar.doCast(PROTECTED_ALTAR.getSkill());
|
||||
boss.setCurrentHp(boss.getCurrentHp() + (boss.getMaxHp() / 2));
|
||||
for (L2PcInstance player : playersInside)
|
||||
{
|
||||
player.sendPacket(new Earthquake(player.getX(), player.getY(), player.getZ(), 30, 5));
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
if ((_time <= 0) && world.isStatus(7))
|
||||
{
|
||||
ThreadPool.schedule(() ->
|
||||
{
|
||||
_time = ALTAR_TIME;
|
||||
}, 15000);
|
||||
}
|
||||
}
|
||||
}, 0, 1000), 5000);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new AltarOfShilen();
|
||||
}
|
||||
}
|
5
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/instances/AltarOfShilen/condNoGroup.html
vendored
Normal file
5
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/instances/AltarOfShilen/condNoGroup.html
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Agent Georgio:<br>
|
||||
The Altar of Shilen is extremely dangerous.<br>
|
||||
You're trying to go there alone. You may be either very confident or reckless.<br>
|
||||
To let you go is to send you to your death. If you want to go to the Altar of Shilen and stop the ritual, please gather allies and return.
|
||||
</body></html>
|
3
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/instances/AltarOfShilen/condNoLevel.html
vendored
Normal file
3
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/instances/AltarOfShilen/condNoLevel.html
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Agent Georgio:<br>
|
||||
(A party members level must be 101 - 105 Lvl to challenge Altar of Shilen.)
|
||||
</body></html>
|
@@ -0,0 +1,3 @@
|
||||
<html><body>Agent Georgio:<br>
|
||||
Only a party leader may enter the altar of Shilen
|
||||
</body></html>
|
3
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/instances/AltarOfShilen/condSmallGroup.html
vendored
Normal file
3
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/instances/AltarOfShilen/condSmallGroup.html
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Agent Georgio:<br>
|
||||
You are too weak. Gather more people.
|
||||
</body></html>
|
@@ -683,7 +683,7 @@
|
||||
<height normal="0.1" />
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="19121" level="95" type="L2Monster" name="Altar of Sacrifice">
|
||||
<npc id="19121" level="95" type="L2Npc" name="Altar of Sacrifice" >
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>CONSTRUCT</race>
|
||||
<sex>MALE</sex>
|
||||
@@ -710,7 +710,7 @@
|
||||
<height normal="22.5" />
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="19122" level="95" type="L2Monster" name="Altar of Sacrifice">
|
||||
<npc id="19122" level="95" type="L2Npc" name="Altar of Sacrifice" >
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>CONSTRUCT</race>
|
||||
<sex>MALE</sex>
|
||||
@@ -737,7 +737,7 @@
|
||||
<height normal="22.5" />
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="19123" level="95" type="L2Monster" name="Altar of Shilen">
|
||||
<npc id="19123" level="95" type="L2Npc" name="Altar of Shilen" >
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>CONSTRUCT</race>
|
||||
<sex>MALE</sex>
|
||||
|
@@ -3245,8 +3245,8 @@
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<parameters>
|
||||
<param name="IsAggressive" value="1" />
|
||||
<skill name="Skill02_ID" id="14519" level="1" />
|
||||
<skill name="Skill03_ID" id="14520" level="1" />
|
||||
<skill name="Skill01_ID" id="23707" level="4" />
|
||||
<skill name="Skill02_ID" id="16979" level="1" />
|
||||
<param name="Attack_BoostValue" value="146" />
|
||||
</parameters>
|
||||
<race>HUMANOID</race>
|
||||
@@ -3276,9 +3276,9 @@
|
||||
<skill id="4440" level="5" /> <!-- Greater Paralysis Resistance -->
|
||||
<skill id="4441" level="5" /> <!-- Greater Mental Attack Resistance -->
|
||||
<skill id="4439" level="5" /> <!-- Greater Hold Resistance -->
|
||||
<skill id="4494" level="1" /> <!-- Raid Boss -->
|
||||
<skill id="14520" level="1" /> <!-- Ice Box of Hell -->
|
||||
<skill id="14519" level="1" /> <!-- Fire Pit of Hell -->
|
||||
<skill id="16979" level="1" /> <!-- Hellfire -->
|
||||
<skill id="23707" level="4" /> <!-- Chaos fire -->
|
||||
<skill id="16980" level="1" /> <!-- Infernal Icicles -->
|
||||
<skill id="4415" level="3" /> <!-- One-handed Sword -->
|
||||
<skill id="14765" level="4" /> <!-- Blood Siphon Resistance -->
|
||||
<skill id="14620" level="1" /> <!-- Aerial Yoke Resistance 1 -->
|
||||
@@ -3287,7 +3287,7 @@
|
||||
<skill id="14617" level="1" /> <!-- Knock Down Resistance -->
|
||||
<skill id="14619" level="1" /> <!-- Disarm Resistance -->
|
||||
</skillList>
|
||||
<ai clanHelpRange="300" aggroRange="300">
|
||||
<ai clanHelpRange="400" aggroRange="400">
|
||||
<clanList>
|
||||
<clan>EMBRYO_BOSS</clan>
|
||||
</clanList>
|
||||
@@ -3403,8 +3403,8 @@
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<parameters>
|
||||
<param name="IsAggressive" value="1" />
|
||||
<skill name="Skill01_ID" id="14521" level="1" />
|
||||
<skill name="Skill02_ID" id="14194" level="1" />
|
||||
<skill name="Skill01_ID" id="16982" level="1" /> <!-- Devil Horns of Shield -->
|
||||
<skill name="Skill02_ID" id="16981" level="1" /> <!-- Fallen Execution -->
|
||||
<param name="Attack_BoostValue" value="144" />
|
||||
</parameters>
|
||||
<race>HUMANOID</race>
|
||||
@@ -3429,10 +3429,12 @@
|
||||
<skillList>
|
||||
<skill id="5467" level="1" /> <!-- Strong against the dark elemental. -->
|
||||
<skill id="4416" level="6" /> <!-- Humanoids -->
|
||||
<skill id="14194" level="1" /> <!-- Range Stun -->
|
||||
<skill id="4415" level="3" /> <!-- One-handed Sword -->
|
||||
<skill id="14765" level="3" /> <!-- Blood Siphon Resistance -->
|
||||
<skill id="4045" level="1" /> <!-- Resist Full Magic Attack -->
|
||||
<skill id="16982" level="1" /> <!-- Devil Horns of Shield -->
|
||||
<skill id="16981" level="1" /> <!-- Fallen Execution -->
|
||||
<skill id="14194" level="1" /> <!-- Range Stun -->
|
||||
</skillList>
|
||||
<ai clanHelpRange="300" aggroRange="300" />
|
||||
<dropLists>
|
||||
@@ -3453,8 +3455,9 @@
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<parameters>
|
||||
<param name="IsAggressive" value="1" />
|
||||
<skill name="Skill01_ID" id="14522" level="1" />
|
||||
<skill name="Skill02_ID" id="14084" level="6" />
|
||||
<skill name="Skill01_ID" id="16983" level="1" /> <!-- Embryo's Blessing -->
|
||||
<skill name="Skill02_ID" id="23707" level="4" /> <!-- Chaos Fire -->
|
||||
<skill name="Skill02_ID" id="16984" level="1" /> <!-- Blind Spark -->
|
||||
<param name="Attack_BoostValue" value="144" />
|
||||
</parameters>
|
||||
<race>HUMANOID</race>
|
||||
@@ -3475,13 +3478,16 @@
|
||||
</attribute>
|
||||
<abnormalResist physical="10" magical="10" />
|
||||
</stats>
|
||||
<status attackable="false" undying="false" />
|
||||
<status attackable="false" undying="false" randomWalk="false" />
|
||||
<skillList>
|
||||
<skill id="5467" level="1" /> <!-- Strong against the dark elemental. -->
|
||||
<skill id="4416" level="6" /> <!-- Humanoids -->
|
||||
<skill id="4415" level="3" /> <!-- One-handed Sword -->
|
||||
<skill id="14765" level="3" /> <!-- Blood Siphon Resistance -->
|
||||
<skill id="4045" level="1" /> <!-- Resist Full Magic Attack -->
|
||||
<skill id="16983" level="1" /> <!-- Embryo's Blessing -->
|
||||
<skill id="23707" level="1" /> <!-- Chaos Fire -->
|
||||
<skill id="16984" level="1" /> <!-- Blind Spark -->
|
||||
</skillList>
|
||||
<ai clanHelpRange="300" aggroRange="300" />
|
||||
<dropLists>
|
||||
@@ -4128,7 +4134,7 @@
|
||||
<acquire exp="169922991147" sp="169922929" raidPoints="7" />
|
||||
<mpReward value="20" type="PER" ticks="10" affects="PARTY" />
|
||||
<stats str="164" int="188" dex="55" wit="78" con="111" men="149">
|
||||
<vitals hp="2081767" hpRegen="8.5" mp="33087" mpRegen="30" />
|
||||
<vitals hp="881767.0" hpRegen="8.5" mp="33087.0" mpRegen="30" />
|
||||
<speed>
|
||||
<walk ground="30" />
|
||||
<run ground="180" />
|
||||
|
@@ -29,6 +29,7 @@ Goddess of Destruction:
|
||||
-Kartia
|
||||
-Fortuna
|
||||
-Nursery
|
||||
-Altar of Shilen
|
||||
-Kimerian
|
||||
-Istina
|
||||
-Octavis
|
||||
|
@@ -1,4 +1,7 @@
|
||||
<html><head><body>Agent Georgio:<br>
|
||||
Sh... I'm currently on duty. If you don't have anything to say, please go away.<br>
|
||||
<html><body>Agent Georgio:<br>
|
||||
Hush! I'm on a mission.<br>
|
||||
The Kingdom's Royal Guards are investigating a report that a ritual is being held on the Altar of Shilen, which has been closed since Melisa and Isadora disappeared. I'd like to ask you to leave us, if you don't mind.<br>
|
||||
Or, if you want to go to the Altar of Shilen to stop the ritual, I can send you there. Just tell me.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest AltarOfShilen enterInstance">To the Altar of Shilen</Button>
|
||||
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
|
||||
</body></html>
|
281
L2J_Mobius_5.5_EtinasFate/dist/game/data/instances/AltarOfShilen.xml
vendored
Normal file
281
L2J_Mobius_5.5_EtinasFate/dist/game/data/instances/AltarOfShilen.xml
vendored
Normal file
@@ -0,0 +1,281 @@
|
||||
<instance id="194" maxWorlds="20" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/instance.xsd">
|
||||
<time duration="60" empty="1" />
|
||||
<locations>
|
||||
<enter type="RANDOM">
|
||||
<location x="179400" y="13683" z="-7396"/><!-- First Room -->
|
||||
</enter>
|
||||
<exit type="ORIGIN" />
|
||||
</locations>
|
||||
<parameters>
|
||||
<param name="boss1" value="25857" />
|
||||
<param name="boss2" value="25858" />
|
||||
</parameters>
|
||||
<conditions>
|
||||
<condition type="Party" showMessageAndHtml="true">
|
||||
<param name="html" value="condNoGroup.html" />
|
||||
</condition>
|
||||
<condition type="PartyLeader">
|
||||
<param name="html" value="condNoPartyLeader.html" />
|
||||
</condition>
|
||||
<condition type="GroupMin">
|
||||
<param name="html" value="condSmallGroup.html" />
|
||||
<param name="limit" value="5" />
|
||||
</condition>
|
||||
<condition type="GroupMax">
|
||||
<param name="limit" value="7" />
|
||||
</condition>
|
||||
<condition type="Level" showMessageAndHtml="true">
|
||||
<param name="html" value="condNoLevel.html" />
|
||||
<param name="min" value="101" />
|
||||
</condition>
|
||||
<condition type="Level" showMessageAndHtml="true">
|
||||
<param name="html" value="condNoLevel.html" />
|
||||
<param name="max" value="105" />
|
||||
</condition>
|
||||
<condition type="Distance" />
|
||||
<condition type="Reenter" />
|
||||
</conditions>
|
||||
<reenter apply="ON_FINISH">
|
||||
<reset day="MONDAY" hour="6" minute="30" />
|
||||
<reset day="TUESDAY" hour="6" minute="30" />
|
||||
<reset day="WEDNESDAY" hour="6" minute="30" />
|
||||
<reset day="THURSDAY" hour="6" minute="30" />
|
||||
<reset day="FRIDAY" hour="6" minute="30" />
|
||||
<reset day="SATURDAY" hour="6" minute="30" />
|
||||
<reset day="SUNDAY" hour="6" minute="30" />
|
||||
</reenter>
|
||||
<doorlist>
|
||||
<door id="25180001">
|
||||
<openStatus default="close" />
|
||||
</door>
|
||||
<door id="25180002">
|
||||
<openStatus default="close" />
|
||||
</door>
|
||||
<door id="25180003">
|
||||
<openStatus default="close" />
|
||||
</door>
|
||||
<door id="25180004">
|
||||
<openStatus default="close" />
|
||||
</door>
|
||||
<door id="25180005">
|
||||
<openStatus default="close" />
|
||||
</door>
|
||||
<door id="25180006">
|
||||
<openStatus default="close" />
|
||||
</door>
|
||||
<door id="25180007">
|
||||
<openStatus default="close" />
|
||||
</door>
|
||||
</doorlist>
|
||||
<spawnlist>
|
||||
<group name="general" spawnByDefault="false">
|
||||
<npc id="25856" x="177833" y="14852" z="-13688" heading="0"/> <!-- Isadora -->
|
||||
<npc id="25855" x="178432" y="14848" z="-13688" heading="0"/> <!-- Maliss -->
|
||||
<npc id="34331" x="179521" y="13610" z="-7392" heading="33344"/> <!-- Logart Van Dyke -->
|
||||
<npc id="34331" x="179543" y="13552" z="-9824" heading="32460"/> <!-- Logart Van Dyke -->
|
||||
<npc id="34331" x="179519" y="12797" z="-12768" heading="32712"/> <!-- Logart Van Dyke -->
|
||||
<npc id="34332" x="178149" y="16676" z="-13648" heading="16600"/> <!-- Dinford -->
|
||||
<npc id="19121" x="178150" y="13600" z="-8016" heading="13828"/> <!-- Altar of Sacrifice -->
|
||||
<npc id="19122" x="178150" y="13600" z="-10448" heading="16772"/> <!-- Altar of Sacrifice -->
|
||||
<npc id="19123" x="178150" y="12840" z="-13392" heading="44317"/> <!-- Altar of Sacrifice -->
|
||||
<npc id="19142" x="177584" y="14400" z="-8088" heading="0"/> <!-- Sacrificial Offering -->
|
||||
<npc id="19143" x="177864" y="14534" z="-8088" heading="0"/> <!-- Sacrificial Offering -->
|
||||
<npc id="19144" x="178149" y="14401" z="-8088" heading="0"/> <!-- Sacrificial Offering -->
|
||||
<npc id="19145" x="178439" y="14528" z="-8088" heading="0"/> <!-- Sacrificial Offering -->
|
||||
<npc id="19146" x="178713" y="14417" z="-8088" heading="0"/> <!-- Sacrificial Offering -->
|
||||
<npc id="19147" x="177589" y="14407" z="-10520" heading="0"/> <!-- Sacrificial Offering -->
|
||||
<npc id="19148" x="177863" y="14541" z="-10520" heading="0"/> <!-- Sacrificial Offering -->
|
||||
<npc id="19149" x="178153" y="14415" z="-10520" heading="0"/> <!-- Sacrificial Offering -->
|
||||
<npc id="19150" x="178442" y="14528" z="-10520" heading="0"/> <!-- Sacrificial Offering -->
|
||||
<npc id="19151" x="178712" y="14408" z="-10520" heading="0"/> <!-- Sacrificial Offering -->
|
||||
</group>
|
||||
<group name="first_floor" spawnByDefault="false">
|
||||
<!-- 1st floor 1st room -->
|
||||
<npc id="23142" x="181315" y="14009" z="-7616" heading="23913" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="182829" y="14851" z="-7616" heading="23465" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="181806" y="14543" z="-7608" heading="39123" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="181944" y="15457" z="-7616" heading="54183" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="180840" y="14674" z="-7616" heading="55476" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="181424" y="13863" z="-7616" heading="21874" /> <!-- Embryo Guard -->
|
||||
<npc id="23141" x="181541" y="14179" z="-7616" heading="23691" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="181614" y="14795" z="-7608" heading="37559" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="182055" y="15303" z="-7616" heading="55513" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="182229" y="15643" z="-7616" heading="55481" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="182417" y="14797" z="-7616" heading="21914" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="182521" y="14650" z="-7616" heading="24720" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="181076" y="14829" z="-7616" heading="55433" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="181181" y="14683" z="-7616" heading="55609" /> <!-- Embryo Fighter -->
|
||||
<npc id="23140" x="181649" y="14031" z="-7616" heading="22548" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="180953" y="14515" z="-7616" heading="55493" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="182713" y="15019" z="-7616" heading="22606" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="181871" y="14999" z="-7608" heading="39090" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="182342" y="15487" z="-7616" heading="55459" /> <!-- Embryo Watchman -->
|
||||
<npc id="23139" x="182070" y="14727" z="-7608" heading="39831" /> <!-- Embryo Researcher -->
|
||||
<npc id="23131" x="181834" y="14767" z="-7608" heading="37586" /> <!-- Embryo Executor Captain -->
|
||||
<!-- 1st floor 2st room -->
|
||||
<npc id="23142" x="182413" y="17524" z="-7864" heading="55494" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="181674" y="18255" z="-7872" heading="6330" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="183339" y="17361" z="-7872" heading="8091" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="182531" y="16784" z="-7872" heading="8091" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="182558" y="18468" z="-7872" heading="39871" /> <!-- Embryo Guard -->
|
||||
<npc id="23141" x="182495" y="17988" z="-7864" heading="56703" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="183142" y="17635" z="-7872" heading="39519" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="182485" y="17168" z="-7872" heading="7171" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="182226" y="18648" z="-7872" heading="38766" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="181910" y="17967" z="-7872" heading="5242" /> <!-- Embryo Fighter -->
|
||||
<npc id="23140" x="182688" y="16898" z="-7872" heading="7195" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="183187" y="17254" z="-7872" heading="38269" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="182224" y="17786" z="-7864" heading="55748" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="181548" y="18164" z="-7872" heading="7239" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="182357" y="18743" z="-7872" heading="38963" /> <!-- Embryo Watchman -->
|
||||
<npc id="23139" x="182421" y="18369" z="-7872" heading="39556" /> <!-- Embryo Researcher -->
|
||||
<npc id="23139" x="181772" y="17873" z="-7872" heading="7271" /> <!-- Embryo Researcher -->
|
||||
<npc id="23139" x="182338" y="17063" z="-7872" heading="6940" /> <!-- Embryo Researcher -->
|
||||
<npc id="23139" x="182991" y="17529" z="-7872" heading="39974" /> <!-- Embryo Researcher -->
|
||||
<npc id="23139" x="182687" y="17717" z="-7864" heading="55632" /> <!-- Embryo Researcher -->
|
||||
<npc id="23131" x="182453" y="17756" z="-7864" heading="55808" /> <!-- Embryo Executor Captain -->
|
||||
<!-- 1st floor 3st room -->
|
||||
<npc id="23142" x="179668" y="18331" z="-8128" heading="6204" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="178844" y="18342" z="-8136" heading="56681" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="179236" y="17838" z="-8136" heading="20051" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="179645" y="18913" z="-8136" heading="56524" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="180290" y="18601" z="-8136" heading="23360" /> <!-- Embryo Guard -->
|
||||
<npc id="23141" x="180009" y="18407" z="-8136" heading="23354" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="179922" y="19106" z="-8136" heading="55523" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="179405" y="18141" z="-8128" heading="6007" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="178487" y="18304" z="-8136" heading="56001" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="179061" y="17503" z="-8136" heading="21608" /> <!-- Embryo Fighter -->
|
||||
<npc id="23140" x="178743" y="18481" z="-8136" heading="54910" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="178956" y="17649" z="-8136" heading="23285" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="179473" y="18605" z="-8128" heading="7076" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="179818" y="19256" z="-8136" heading="56591" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="180394" y="18452" z="-8136" heading="24120" /> <!-- Embryo Watchman -->
|
||||
<npc id="23139" x="179539" y="19062" z="-8136" heading="55014" /> <!-- Embryo Researcher -->
|
||||
<npc id="23139" x="179205" y="18414" z="-8128" heading="6803" /> <!-- Embryo Researcher -->
|
||||
<npc id="23139" x="180118" y="18255" z="-8136" heading="23660" /> <!-- Embryo Researcher -->
|
||||
<npc id="23139" x="178594" y="18156" z="-8136" heading="56048" /> <!-- Embryo Researcher -->
|
||||
<npc id="23139" x="179337" y="17699" z="-8136" heading="22822" /> <!-- Embryo Researcher -->
|
||||
<npc id="23131" x="179442" y="18374" z="-8128" heading="4506" /> <!-- Embryo Executor Captain -->
|
||||
<!-- 1st floor 4st room -->
|
||||
<npc id="23141" x="177740" y="15229" z="-8312" heading="65530" /> <!-- Embryo Fighter -->
|
||||
<npc id="23141" x="178548" y="15228" z="-8312" heading="32481" /> <!-- Embryo Fighter -->
|
||||
<npc id="23142" x="178574" y="15774" z="-8312" heading="32849" /> <!-- Embryo Guard -->
|
||||
<npc id="23142" x="177427" y="15227" z="-8312" heading="2497" /> <!-- Embryo Guard -->
|
||||
<npc id="23140" x="177708" y="15783" z="-8312" heading="1499" /> <!-- Embryo Watchman -->
|
||||
<npc id="23140" x="178827" y="15787" z="-8312" heading="13834" /> <!-- Embryo Watchman -->
|
||||
<npc id="23139" x="178846" y="15216" z="-8312" heading="32391" /> <!-- Embryo Researcher -->
|
||||
<npc id="23139" x="177445" y="15787" z="-8312" heading="669" /> <!-- Embryo Researcher -->
|
||||
<!-- 1st floor boss -->
|
||||
<npc id="25857" x="178146" y="15000" z="-8312" heading="18233" /> <!-- Corrupted Captain -->
|
||||
</group>
|
||||
<group name="second_floor" spawnByDefault="false">
|
||||
<!-- 2st floor 1st room -->
|
||||
<npc id="23129" x="181632" y="14245" z="-10048" heading="24446" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="181669" y="14792" z="-10040" heading="39262" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="182053" y="15304" z="-10048" heading="55811" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="182857" y="14866" z="-10048" heading="22442" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="181156" y="14912" z="-10048" heading="55993" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23127" x="181272" y="14754" z="-10048" heading="55845" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="182351" y="15523" z="-10048" heading="55330" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="181355" y="14048" z="-10048" heading="22899" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="182534" y="14638" z="-10048" heading="23741" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="181998" y="14734" z="-10040" heading="39347" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23128" x="181805" y="14600" z="-10040" heading="37848" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="181860" y="14928" z="-10040" heading="39680" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="182414" y="14801" z="-10048" heading="26424" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="182238" y="15682" z="-10048" heading="55327" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="180995" y="14557" z="-10048" heading="55965" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="181746" y="14095" z="-10048" heading="21944" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23126" x="181444" y="13882" z="-10048" heading="23910" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23126" x="180906" y="14732" z="-10048" heading="56442" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23126" x="182712" y="15019" z="-10048" heading="23218" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23126" x="181936" y="15470" z="-10048" heading="55180" /> <!-- Embryo Elite Escort -->
|
||||
<!-- 2st floor 2st room -->
|
||||
<npc id="23129" x="182665" y="16916" z="-10304" heading="5486" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="182205" y="18632" z="-10304" heading="38327" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="182417" y="18332" z="-10304" heading="38704" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="181702" y="18273" z="-10304" heading="6517" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="182501" y="16797" z="-10304" heading="6671" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="182991" y="17528" z="-10304" heading="39098" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="183160" y="17474" z="-10304" heading="39074" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23127" x="181917" y="17975" z="-10304" heading="6011" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="182578" y="18447" z="-10304" heading="40250" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="182384" y="18553" z="-10304" heading="40030" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="182517" y="16983" z="-10304" heading="6049" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="183176" y="17270" z="-10304" heading="41931" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23128" x="183153" y="17644" z="-10304" heading="40362" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="182327" y="17051" z="-10304" heading="6919" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="182360" y="18743" z="-10304" heading="38293" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="181540" y="18157" z="-10304" heading="6379" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23126" x="181755" y="17860" z="-10304" heading="4711" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23126" x="181747" y="18063" z="-10304" heading="6737" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23126" x="182486" y="17168" z="-10304" heading="5041" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23126" x="183333" y="17391" z="-10304" heading="38209" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23138" x="182409" y="18255" z="-10304" heading="30021"> <!-- Etina Bladesmen -->
|
||||
<parameters>
|
||||
<param name="SuperPointName" value="etina_bladesmen_1" />
|
||||
</parameters>
|
||||
</npc>
|
||||
<npc id="23138" x="182000" y="17922" z="-10304" heading="22511"> <!-- Etina Bladesmen -->
|
||||
<parameters>
|
||||
<param name="SuperPointName" value="etina_bladesmen_2" />
|
||||
</parameters>
|
||||
</npc>
|
||||
<!-- 2st floor 3st room -->
|
||||
<npc id="23130" x="179540" y="19060" z="-10568" heading="53859" /> <!-- Embryo Elite High Priest -->
|
||||
<npc id="23130" x="178546" y="18123" z="-10568" heading="55565" /> <!-- Embryo Elite High Priest -->
|
||||
<npc id="23130" x="178906" y="17620" z="-10568" heading="23026" /> <!-- Embryo Elite High Priest -->
|
||||
<npc id="23129" x="178437" y="18275" z="-10568" heading="54969" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="179025" y="17458" z="-10568" heading="22279" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="179274" y="18400" z="-10560" heading="7344" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23129" x="180125" y="18247" z="-10568" heading="23203" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23128" x="179414" y="18206" z="-10560" heading="5824" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="180010" y="18405" z="-10568" heading="22892" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="178761" y="18499" z="-10568" heading="54666" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="179857" y="19296" z="-10568" heading="54800" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23127" x="179601" y="18340" z="-10560" heading="6348" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="179345" y="17689" z="-10568" heading="22336" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="179646" y="18908" z="-10568" heading="53631" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="180335" y="18581" z="-10568" heading="22933" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23126" x="179974" y="19139" z="-10568" heading="57307" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23126" x="180427" y="18455" z="-10568" heading="25307" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23126" x="179466" y="18541" z="-10560" heading="6681" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23126" x="179229" y="17845" z="-10568" heading="22563" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23131" x="178871" y="18353" z="-10568" heading="57361" /> <!-- Embryo Executor Captain -->
|
||||
<npc id="23138" x="179050" y="18309" z="-10568" heading="38891" /> <!-- Etina Bladesmen -->
|
||||
<!-- 2st floor 4st room -->
|
||||
<npc id="23130" x="178536" y="15981" z="-10744" heading="31126" /> <!-- Embryo Elite High Priest -->
|
||||
<npc id="23126" x="178549" y="15688" z="-10744" heading="33033" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23130" x="178522" y="15390" z="-10744" heading="33219" /> <!-- Embryo Elite High Priest -->
|
||||
<npc id="23128" x="178993" y="15706" z="-10744" heading="32714" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23128" x="178735" y="15533" z="-10744" heading="33312" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23127" x="178728" y="15847" z="-10744" heading="33290" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23127" x="178978" y="15981" z="-10744" heading="32904" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23129" x="178998" y="15408" z="-10744" heading="33170" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23128" x="177722" y="15379" z="-10744" heading="217" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23127" x="177732" y="15672" z="-10744" heading="64457" /> <!-- Embryo Elite Chaser -->
|
||||
<npc id="23130" x="177738" y="15981" z="-10744" heading="65477" /> <!-- Embryo Elite High Priest -->
|
||||
<npc id="23130" x="177499" y="15494" z="-10744" heading="64083" /> <!-- Embryo Elite High Priest -->
|
||||
<npc id="23129" x="177498" y="15843" z="-10744" heading="65509" /> <!-- Embryo Elite Alchemist -->
|
||||
<npc id="23128" x="177269" y="15981" z="-10744" heading="789" /> <!-- Embryo Elite Warrior -->
|
||||
<npc id="23126" x="177261" y="15656" z="-10744" heading="64191" /> <!-- Embryo Elite Escort -->
|
||||
<npc id="23129" x="177267" y="15372" z="-10744" heading="1549" /> <!-- Embryo Elite Alchemist -->
|
||||
<!-- 2st floor boss -->
|
||||
<npc id="25858" x="178154" y="15149" z="-10744" heading="15626" /> <!-- Corrupted High Priest -->
|
||||
</group>
|
||||
<group name="thrid_floor" spawnByDefault="false">
|
||||
<npc id="8561" x="181547" y="14035" z="-12992" heading="0" /> <!-- invisible1 -->
|
||||
<npc id="8561" x="182615" y="14779" z="-12992" heading="0" /> <!-- invisible1 -->
|
||||
<npc id="8561" x="182122" y="15470" z="-12992" heading="0" /> <!-- invisible1 -->
|
||||
<npc id="8561" x="181071" y="14765" z="-12992" heading="0" /> <!-- invisible1 -->
|
||||
<npc id="8561" x="183207" y="17472" z="-13248" heading="0" /> <!-- invisible1 -->
|
||||
<npc id="8561" x="182485" y="17000" z="-13248" heading="0" /> <!-- invisible1 -->
|
||||
<npc id="8561" x="181721" y="18030" z="-13248" heading="0" /> <!-- invisible1 -->
|
||||
<npc id="8561" x="182408" y="18565" z="-13248" heading="0" /> <!-- invisible1 -->
|
||||
<npc id="8561" x="179690" y="19125" z="-13512" heading="0" /> <!-- invisible1 -->
|
||||
<npc id="8561" x="180233" y="18389" z="-13512" heading="0" /> <!-- invisible1 -->
|
||||
<npc id="8561" x="179107" y="17593" z="-13512" heading="0" /> <!-- invisible1 -->
|
||||
<npc id="8561" x="178607" y="18350" z="-13512" heading="0" /> <!-- invisible1 -->
|
||||
</group>
|
||||
</spawnlist>
|
||||
</instance>
|
4
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/instances/AltarOfShilen/19121.html
vendored
Normal file
4
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/instances/AltarOfShilen/19121.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>
|
||||
The altar stops humming, and you feel the reverberating power of dimensional.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest AltarOfShilen teleport1">Try to go trough the door.</Button>
|
||||
</body></html>
|
4
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/instances/AltarOfShilen/19122.html
vendored
Normal file
4
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/instances/AltarOfShilen/19122.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>
|
||||
The altar stops humming, and you feel the reverberating power of dimensional.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest AltarOfShilen teleport2">Try to go trough the door.</Button>
|
||||
</body></html>
|
5
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/instances/AltarOfShilen/34331-01.html
vendored
Normal file
5
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/instances/AltarOfShilen/34331-01.html
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Royal Guard Captain Logart Van Dyke:<br>
|
||||
Who is it? Ah, you're the adventurer who volunteered to stop the ritual on the Altar of Shilen. You must be capable enough to stop it. Otherwise, you couldn't come this far. Okay, I'll open the door for you.<br>
|
||||
Don't lower yourb guard once inside.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest AltarOfShilen open_door">Open the door to the 2nd floor</Button>
|
||||
</body></html>
|
7
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/instances/AltarOfShilen/34331-02.html
vendored
Normal file
7
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/instances/AltarOfShilen/34331-02.html
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<html><body>Royal Guard Captain Logart Van Dyke:<br>
|
||||
Who is it? Ah, it's you! You've come this far!<br>
|
||||
The last altar is before you.<br>
|
||||
After Embryos invaded the Keucereus Alliance Base, the existence of the Messiah Castle was revealed. Melisa and Isadora, the twin sisters who had long disappeared, returned and are threatening us. If we fail to stop the ritual, Embryos will invade Aden Continent in no time. We must stop them at all cost.<br>
|
||||
My man Dinford will be waiting for you at the entrance to the last altar. Go to find him.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest AltarOfShilen open_door">Open the door to the 3nd floor</Button>
|
||||
</body></html>
|
5
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/instances/AltarOfShilen/34331.html
vendored
Normal file
5
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/instances/AltarOfShilen/34331.html
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Royal Guard Captain Logart Van Dyke:<br>
|
||||
How did you get in here? The blockade was only recently lifted, and this area is still very dangerous. It is under the control of the Kingdom's Royal Guard.<br>
|
||||
It is suspected that Embryos are preparing somewhere in this area to invade the Aden Continent. The Kingdom's Royal Guard is doing its best to stop them. are you here to stop the Embryo's ritual on the Altar of Shilen? if so. I'll gladly open open this door. Be careful. Only danger awaits you.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest AltarOfShilen open_door">Open the door to the 1st floor</Button>
|
||||
</body></html>
|
6
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/instances/AltarOfShilen/34332.html
vendored
Normal file
6
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/instances/AltarOfShilen/34332.html
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html>Quartermaster Dinford<body>
|
||||
Who is it? Ah, you've come to stop the ritual the ritual on the Altar of Shilen!<br>
|
||||
If so, I'll open the door to the altar.<br>
|
||||
Please stop the threat of the Embrio.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest AltarOfShilen final_door">Open the door.</Button>
|
||||
</body></html>
|
694
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/instances/AltarOfShilen/AltarOfShilen.java
vendored
Normal file
694
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/instances/AltarOfShilen/AltarOfShilen.java
vendored
Normal file
@@ -0,0 +1,694 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program 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.
|
||||
*
|
||||
* This program 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 instances.AltarOfShilen;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.Future;
|
||||
|
||||
import com.l2jmobius.commons.concurrent.ThreadPool;
|
||||
import com.l2jmobius.gameserver.enums.ChatType;
|
||||
import com.l2jmobius.gameserver.instancemanager.InstanceManager;
|
||||
import com.l2jmobius.gameserver.model.L2World;
|
||||
import com.l2jmobius.gameserver.model.Location;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Npc;
|
||||
import com.l2jmobius.gameserver.model.actor.instance.L2MonsterInstance;
|
||||
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||
import com.l2jmobius.gameserver.model.instancezone.Instance;
|
||||
import com.l2jmobius.gameserver.network.NpcStringId;
|
||||
import com.l2jmobius.gameserver.network.serverpackets.Earthquake;
|
||||
import com.l2jmobius.gameserver.network.serverpackets.ExSendUIEvent;
|
||||
import com.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
|
||||
import com.l2jmobius.gameserver.network.serverpackets.NpcSay;
|
||||
|
||||
import instances.AbstractInstance;
|
||||
|
||||
/**
|
||||
* Instance Altar of Shilen
|
||||
* @URL https://l2wiki.com/Altar_of_Shilen
|
||||
* @author Gigi
|
||||
* @date 2018-04-13 - [23:27:28]
|
||||
*/
|
||||
public class AltarOfShilen extends AbstractInstance
|
||||
{
|
||||
// NPCs
|
||||
private static final int LOGART_VAN_DYKE = 34331;
|
||||
private static final int DINFORD = 34332;
|
||||
private static final int ISADORA = 25856;
|
||||
private static final int MELISSA0 = 25855;
|
||||
private static final int MELISSA = 25876; // She dropping items
|
||||
private static final int EXECUTOR_CAPTAIN = 23131;
|
||||
private static final int ETINA_BLADESMAN = 23138;
|
||||
private static final int CORRUPTED_CAPTAIN = 25857;
|
||||
private static final int CORRUPTED_HIGH_PRIEST = 25858;
|
||||
private static final int RITUAL_ALTAR0 = 19121;
|
||||
private static final int RITUAL_ALTAR1 = 19122;
|
||||
private static final int SHILLIEN_ALTAR = 19123;
|
||||
private static final int INVISIBLE = 8561;
|
||||
private static final int ETINA_GOSPEL = 23132;
|
||||
private static final int ETINA_PRIEST = 23133;
|
||||
private static final int ETINA_PROTECTORS = 23134;
|
||||
private static final int ETINA_PUNISHERS = 23135;
|
||||
private static final int ETINA_COMMINATION = 23136;
|
||||
private static final int ETINA_DARKMONAGERS = 23137;
|
||||
private static final int ELITE_ESCORT = 23126;
|
||||
private static final int ELITE_CHASER = 23127;
|
||||
private static final int ELITE_WARRIOR = 23128;
|
||||
private static final int ELITE_ALCHEMIST = 23129;
|
||||
private static final int ELITE_PRIEST = 23130;
|
||||
private static final int EMBRYO_RESERCHER = 23139;
|
||||
private static final int EMBRYO_WATCHMAN = 23140;
|
||||
private static final int EMBRYO_FIGHTER = 23141;
|
||||
private static final int EMBRYO_GUARD = 23142;
|
||||
// Skills
|
||||
static final SkillHolder PROTECTED_ALTAR = new SkillHolder(14496, 1);
|
||||
// Misc
|
||||
private static final int TEMPLATE_ID = 194;
|
||||
private static final int ALTAR_TIME = 180;
|
||||
//@formatter:off
|
||||
private static final int[] DOORS = { 25180001, 25180002, 25180003, 25180004, 25180005, 25180006, 25180007 };
|
||||
//@formatter:on
|
||||
private static final NpcStringId[] SHOUT_MSG =
|
||||
{
|
||||
NpcStringId.I_NEED_HELP,
|
||||
NpcStringId.FOCUS_FIRE_ACCORDING_TO_MY_ORCHESTRATION,
|
||||
NpcStringId.I_NEED_HEAL,
|
||||
NpcStringId.I_M_GOING_TO_BACK_OFF_FOR_A_BIT,
|
||||
NpcStringId.I_WILL_ATTACK_THE_ENEMY_S_HEALER,
|
||||
NpcStringId.STOP_ENEMIES_HEALING,
|
||||
NpcStringId.ATTACK_WEAKENED_ENEMY,
|
||||
NpcStringId.COME_AT_ME,
|
||||
NpcStringId.SWITCH_TO_FAST_SHOOTING_MODE,
|
||||
NpcStringId.SWITCH_TO_FAST_CASTING_MODE,
|
||||
NpcStringId.BLINK_ATTACK,
|
||||
NpcStringId.ONLY_DEATH_AWAITS_FOR_THE_WEAK,
|
||||
};
|
||||
static final Location MELISSA_SPAWN = new Location(178146, 14356, -13688);
|
||||
private static final Location SECOND_FLOOR = new Location(179357, 13664, -9828);
|
||||
private static final Location THIRD_FLOOR = new Location(179354, 12922, -12776);
|
||||
|
||||
final List<L2PcInstance> playersInside = new ArrayList<>();
|
||||
final Map<Integer, Integer> killedMonsters = new ConcurrentHashMap<>();
|
||||
static List<L2Npc> firstFloorVictims = new ArrayList<>();
|
||||
public static Future<?> timer;
|
||||
public L2Npc altar;
|
||||
|
||||
public AltarOfShilen()
|
||||
{
|
||||
super(TEMPLATE_ID);
|
||||
addInstanceCreatedId(TEMPLATE_ID);
|
||||
addFirstTalkId(LOGART_VAN_DYKE, RITUAL_ALTAR0, RITUAL_ALTAR1, DINFORD);
|
||||
addSpawnId(CORRUPTED_CAPTAIN, CORRUPTED_HIGH_PRIEST, INVISIBLE, SHILLIEN_ALTAR);
|
||||
addAttackId(ETINA_GOSPEL, ETINA_PRIEST, ETINA_PROTECTORS, ETINA_PUNISHERS, ETINA_COMMINATION, ETINA_DARKMONAGERS, ELITE_ESCORT, ELITE_CHASER, ELITE_WARRIOR, ELITE_ALCHEMIST, ELITE_PRIEST, EMBRYO_RESERCHER, EMBRYO_WATCHMAN, EMBRYO_FIGHTER, EMBRYO_GUARD);
|
||||
addKillId(EXECUTOR_CAPTAIN, CORRUPTED_CAPTAIN, ETINA_BLADESMAN, CORRUPTED_HIGH_PRIEST, ETINA_GOSPEL, ETINA_PROTECTORS, ETINA_PUNISHERS, MELISSA0, MELISSA, ISADORA);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onInstanceCreated(Instance instance, L2PcInstance player)
|
||||
{
|
||||
instance.spawnGroup("general");
|
||||
instance.spawnGroup("first_floor");
|
||||
instance.setStatus(1);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
final Instance world = npc.getInstanceWorld();
|
||||
if (event.equals("enterInstance"))
|
||||
{
|
||||
enterInstance(player, npc, TEMPLATE_ID);
|
||||
if (player.isGM())
|
||||
{
|
||||
playersInside.add(player);
|
||||
}
|
||||
if (player.getParty() != null)
|
||||
{
|
||||
for (L2PcInstance partyMember : player.getParty().getMembers())
|
||||
{
|
||||
playersInside.add(partyMember);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (event.equals("check_player"))
|
||||
{
|
||||
L2World.getInstance().forEachVisibleObjectInRange(npc, L2PcInstance.class, 400, p ->
|
||||
{
|
||||
if ((p != null) && p.isPlayer() && !p.isDead())
|
||||
{
|
||||
npc.setScriptValue(1);
|
||||
final L2Npc gospel = addSpawn(ETINA_GOSPEL, npc, true, 0, false, world.getId());
|
||||
final L2Npc priest = addSpawn(ETINA_PRIEST, npc, true, 0, false, world.getId());
|
||||
final L2Npc protectors = addSpawn(ETINA_PROTECTORS, npc, true, 0, false, world.getId());
|
||||
final L2Npc punishers = addSpawn(ETINA_PUNISHERS, npc, true, 0, false, world.getId());
|
||||
final L2Npc commination = addSpawn(ETINA_COMMINATION, npc, true, 0, false, world.getId());
|
||||
final L2Npc darkmonagers = addSpawn(ETINA_DARKMONAGERS, npc, true, 0, false, world.getId());
|
||||
addAttackPlayerDesire(gospel, p);
|
||||
addAttackPlayerDesire(priest, p);
|
||||
addAttackPlayerDesire(protectors, p);
|
||||
addAttackPlayerDesire(punishers, p);
|
||||
addAttackPlayerDesire(commination, p);
|
||||
addAttackPlayerDesire(darkmonagers, p);
|
||||
}
|
||||
});
|
||||
}
|
||||
if (isInInstance(world))
|
||||
{
|
||||
switch (npc.getId())
|
||||
{
|
||||
case LOGART_VAN_DYKE:
|
||||
{
|
||||
if (event.equals("open_door"))
|
||||
{
|
||||
if (world.getStatus() == 1)
|
||||
{
|
||||
if (world.getDoor(DOORS[0]) != null)
|
||||
{
|
||||
world.getDoor(DOORS[0]).openMe();
|
||||
}
|
||||
world.setStatus(2);
|
||||
onStatusChanged(world);
|
||||
break;
|
||||
}
|
||||
else if (world.getStatus() == 3)
|
||||
{
|
||||
if (world.getDoor(DOORS[1]) != null)
|
||||
{
|
||||
world.getDoor(DOORS[1]).openMe();
|
||||
}
|
||||
world.setStatus(4);
|
||||
onStatusChanged(world);
|
||||
break;
|
||||
}
|
||||
else if (world.getStatus() == 5)
|
||||
{
|
||||
if (world.getDoor(DOORS[2]) != null)
|
||||
{
|
||||
world.getDoor(DOORS[2]).openMe();
|
||||
}
|
||||
world.setStatus(6);
|
||||
onStatusChanged(world);
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case RITUAL_ALTAR0:
|
||||
{
|
||||
if ((world.getStatus() == 3) && event.equals("teleport1"))
|
||||
{
|
||||
L2World.getInstance().forEachVisibleObjectInRange(npc, L2PcInstance.class, 1000, p ->
|
||||
{
|
||||
if ((p != null) && p.isPlayable() && !p.isDead())
|
||||
{
|
||||
p.teleToLocation(SECOND_FLOOR, world.getTemplateId());
|
||||
}
|
||||
world.spawnGroup("second_floor");
|
||||
});
|
||||
}
|
||||
break;
|
||||
}
|
||||
case RITUAL_ALTAR1:
|
||||
{
|
||||
if ((world.getStatus() == 5) && event.equals("teleport2"))
|
||||
{
|
||||
L2World.getInstance().forEachVisibleObjectInRange(npc, L2PcInstance.class, 1000, p ->
|
||||
{
|
||||
if ((p != null) && p.isPlayable() && !p.isDead())
|
||||
{
|
||||
p.teleToLocation(THIRD_FLOOR, world.getTemplateId());
|
||||
}
|
||||
world.spawnGroup("thrid_floor");
|
||||
});
|
||||
}
|
||||
break;
|
||||
}
|
||||
case DINFORD:
|
||||
{
|
||||
if ((world.getStatus() == 6) && event.equals("final_door"))
|
||||
{
|
||||
if (!world.getDoor(DOORS[6]).isOpen())
|
||||
{
|
||||
world.getDoor(DOORS[6]).openMe();
|
||||
}
|
||||
world.setStatus(7);
|
||||
onStatusChanged(world);
|
||||
npc.deleteMe();
|
||||
cancelQuestTimers("check_player");
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return super.onAdvEvent(event, npc, player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAttack(L2Npc npc, L2PcInstance attacker, int damage, boolean isSummon)
|
||||
{
|
||||
if (npc.getInstanceWorld() != null)
|
||||
{
|
||||
if (getRandom(30) < 3)
|
||||
{
|
||||
npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), SHOUT_MSG[getRandom(SHOUT_MSG.length)]));
|
||||
}
|
||||
}
|
||||
return super.onAttack(npc, attacker, damage, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
|
||||
{
|
||||
final Instance world = npc.getInstanceWorld();
|
||||
if (world != null)
|
||||
{
|
||||
int npcId = npc.getId();
|
||||
if (!killedMonsters.containsKey(npcId))
|
||||
{
|
||||
killedMonsters.put(npcId, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
killedMonsters.put(npcId, killedMonsters.get(npcId) + 1);
|
||||
}
|
||||
// 1st Floor
|
||||
if (world.getStatus() == 2)
|
||||
{
|
||||
if (killedMonsters.containsKey(EXECUTOR_CAPTAIN) && (killedMonsters.get(EXECUTOR_CAPTAIN) >= 3))
|
||||
{
|
||||
final int boos1 = world.getTemplateParameters().getInt("boss1");
|
||||
final L2Npc captain = world.getNpc(boos1);
|
||||
if (captain != null)
|
||||
{
|
||||
captain.setIsInvul(false);
|
||||
}
|
||||
}
|
||||
if (killedMonsters.containsKey(CORRUPTED_CAPTAIN) && (killedMonsters.get(CORRUPTED_CAPTAIN) >= 1))
|
||||
{
|
||||
for (L2PcInstance player : playersInside)
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage(NpcStringId.YOU_CAN_MOVE_TO_THE_NEXT_FLOOR_THROUGH_THE_ALTAR_OF_SACRIFICE, ExShowScreenMessage.MIDDLE_CENTER, 5000));
|
||||
}
|
||||
world.setStatus(3);
|
||||
killedMonsters.clear();
|
||||
onStatusChanged(world);
|
||||
}
|
||||
}
|
||||
// 2st Floor
|
||||
else if (world.getStatus() == 4)
|
||||
{
|
||||
if (killedMonsters.containsKey(ETINA_BLADESMAN) && (killedMonsters.get(ETINA_BLADESMAN) >= 3))
|
||||
{
|
||||
final int boos2 = world.getTemplateParameters().getInt("boss2");
|
||||
final L2Npc priest = world.getNpc(boos2);
|
||||
if (priest != null)
|
||||
{
|
||||
priest.setIsInvul(false);
|
||||
}
|
||||
}
|
||||
if (killedMonsters.containsKey(CORRUPTED_HIGH_PRIEST) && (killedMonsters.get(CORRUPTED_HIGH_PRIEST) >= 1))
|
||||
{
|
||||
for (L2PcInstance player : playersInside)
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage(NpcStringId.YOU_CAN_MOVE_TO_THE_NEXT_FLOOR_THROUGH_THE_ALTAR_OF_SACRIFICE, ExShowScreenMessage.MIDDLE_CENTER, 5000));
|
||||
}
|
||||
world.setStatus(5);
|
||||
killedMonsters.clear();
|
||||
onStatusChanged(world);
|
||||
|
||||
}
|
||||
}
|
||||
// 3st Floor
|
||||
else if (world.getStatus() == 6)
|
||||
{
|
||||
switch (npc.getId())
|
||||
{
|
||||
case ETINA_GOSPEL:
|
||||
{
|
||||
world.getDoor(DOORS[3]).openMe();
|
||||
ThreadPool.schedule(() -> world.getDoor(DOORS[3]).closeMe(), 5000);
|
||||
break;
|
||||
}
|
||||
case ETINA_PROTECTORS:
|
||||
{
|
||||
world.getDoor(DOORS[4]).openMe();
|
||||
ThreadPool.schedule(() -> world.getDoor(DOORS[4]).closeMe(), 5000);
|
||||
break;
|
||||
}
|
||||
case ETINA_PUNISHERS:
|
||||
{
|
||||
world.getDoor(DOORS[5]).openMe();
|
||||
ThreadPool.schedule(() -> world.getDoor(DOORS[5]).closeMe(), 5000);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (world.getStatus() == 8)
|
||||
{
|
||||
if (killedMonsters.containsKey(MELISSA) && (killedMonsters.get(MELISSA) == 1))
|
||||
{
|
||||
for (L2PcInstance player : playersInside)
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage(NpcStringId.ALTAR_OF_SHILEN_HAS_BEEN_DESTROYED_YOU_VE_WON, ExShowScreenMessage.TOP_CENTER, 5000, true));
|
||||
}
|
||||
playersInside.clear();
|
||||
killedMonsters.clear();
|
||||
world.finishInstance(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onSpawn(L2Npc npc)
|
||||
{
|
||||
if (npc.getInstanceWorld() != null)
|
||||
{
|
||||
switch (npc.getId())
|
||||
{
|
||||
case CORRUPTED_CAPTAIN:
|
||||
case CORRUPTED_HIGH_PRIEST:
|
||||
{
|
||||
npc.setIsInvul(true);
|
||||
break;
|
||||
}
|
||||
case INVISIBLE:
|
||||
{
|
||||
if (npc.isScriptValue(0))
|
||||
{
|
||||
startQuestTimer("check_player", 2000, npc, null, true);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case SHILLIEN_ALTAR:
|
||||
{
|
||||
altar = npc;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return super.onSpawn(npc);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onFirstTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
final Instance world = npc.getInstanceWorld();
|
||||
String htmltext = null;
|
||||
if (isInInstance(world))
|
||||
{
|
||||
switch (npc.getId())
|
||||
{
|
||||
case LOGART_VAN_DYKE:
|
||||
{
|
||||
if ((world.getStatus() > 0) && (world.getStatus() < 3))
|
||||
{
|
||||
return "34331.html";
|
||||
}
|
||||
else if ((world.getStatus() >= 3) && (world.getStatus() < 5))
|
||||
{
|
||||
return "34331-01.html";
|
||||
}
|
||||
else if (world.getStatus() >= 5)
|
||||
{
|
||||
return "34331-02.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case RITUAL_ALTAR0:
|
||||
{
|
||||
if (world.getStatus() >= 3)
|
||||
{
|
||||
return "19121.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case RITUAL_ALTAR1:
|
||||
{
|
||||
if (world.getStatus() >= 5)
|
||||
{
|
||||
return "19122.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case DINFORD:
|
||||
{
|
||||
if (world.getStatus() >= 5)
|
||||
{
|
||||
return "34332.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
public static class VictimDefeatTask implements Runnable
|
||||
{
|
||||
private final Instance _world;
|
||||
private int _victims;
|
||||
private final int _initialTime;
|
||||
private int _time;
|
||||
|
||||
VictimDefeatTask(int victims, int time, Instance world)
|
||||
{
|
||||
_world = world;
|
||||
_victims = victims;
|
||||
_initialTime = time;
|
||||
_time = time;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run()
|
||||
{
|
||||
for (L2PcInstance player : _world.getPlayers())
|
||||
{
|
||||
player.sendPacket(new ExSendUIEvent(player, ExSendUIEvent.TYPE_GP_TIMER, (_time--), 0, NpcStringId.SACRIFICE_LEFT_S1, new String[]
|
||||
{
|
||||
String.valueOf(_victims)
|
||||
}));
|
||||
}
|
||||
if (_time <= 0)
|
||||
{
|
||||
_time = _initialTime;
|
||||
--_victims;
|
||||
for (L2PcInstance player : _world.getPlayers())
|
||||
{
|
||||
player.sendPacket(new Earthquake(player.getX(), player.getY(), player.getZ(), 20, 5));
|
||||
player.sendPacket(new ExShowScreenMessage(NpcStringId.SACRIFICE_HAS_BEEN_KILLED_SACRIFICE_LEFT_S1, ExShowScreenMessage.MIDDLE_CENTER, 3000, String.valueOf(_victims)));
|
||||
}
|
||||
}
|
||||
if ((_world.getStatus() == 2) && !firstFloorVictims.isEmpty())
|
||||
{
|
||||
firstFloorVictims.get(0).deleteMe();
|
||||
firstFloorVictims.remove(0);
|
||||
}
|
||||
if ((_victims == 1) && (_world.getStatus() == 2))
|
||||
{
|
||||
for (L2PcInstance player : _world.getPlayers())
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage(NpcStringId.FOUR_LIVES_WERE_SACRIFICED_AND_THE_BLESSING_OF_BLOOD_IS_BESTOWED_UPON_THE_CORRUPTED_CAPTAIN, ExShowScreenMessage.MIDDLE_CENTER, 10000));
|
||||
}
|
||||
}
|
||||
if ((_victims == 1) && (_world.getStatus() == 4))
|
||||
{
|
||||
for (L2PcInstance player : _world.getPlayers())
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage(NpcStringId.FOUR_LIVES_WERE_SACRIFICED_AND_THE_BLESSING_OF_BLOOD_IS_BESTOWED_UPON_THE_CORRUPTED_HIGH_PRIEST, ExShowScreenMessage.MIDDLE_CENTER, 10000));
|
||||
}
|
||||
}
|
||||
if (_victims <= 0)
|
||||
{
|
||||
ThreadPool.schedule(() ->
|
||||
{
|
||||
for (L2PcInstance player : _world.getPlayers())
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage(NpcStringId.ALL_OFFERINGS_WERE_SACRIFICED_AND_THE_BLESSING_OF_BLOOD_IS_BESTOWED_UPON_THE_EMBRYO_COLONY_IN_THAT_FLOOR, ExShowScreenMessage.MIDDLE_CENTER, 3000));
|
||||
}
|
||||
if (timer != null)
|
||||
{
|
||||
timer.cancel(true);
|
||||
timer = null;
|
||||
}
|
||||
_world.finishInstance(1);
|
||||
}, 3000);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void onStatusChanged(final Instance world)
|
||||
{
|
||||
final Instance instance = InstanceManager.getInstance().getInstance(world.getId());
|
||||
switch (instance.getStatus())
|
||||
{
|
||||
case 1:
|
||||
{
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
if (timer != null)
|
||||
{
|
||||
timer.cancel(true);
|
||||
}
|
||||
for (L2PcInstance player : playersInside)
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage(NpcStringId.YOU_MUST_STOP_THE_ALTAR_BEFORE_EVERYTHING_IS_SACRIFICED, ExShowScreenMessage.MIDDLE_CENTER, 6000));
|
||||
}
|
||||
timer = ThreadPool.scheduleAtFixedRate(new VictimDefeatTask(5, ALTAR_TIME, world), 0, 1000);
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
{
|
||||
if (timer != null)
|
||||
{
|
||||
timer.cancel(true);
|
||||
timer = null;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 4:
|
||||
{
|
||||
if (timer != null)
|
||||
{
|
||||
timer.cancel(true);
|
||||
}
|
||||
for (L2PcInstance player : playersInside)
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage(NpcStringId.YOU_MUST_STOP_THE_ALTAR_BEFORE_EVERYTHING_IS_SACRIFICED, ExShowScreenMessage.MIDDLE_CENTER, 6000));
|
||||
}
|
||||
timer = ThreadPool.scheduleAtFixedRate(new VictimDefeatTask(5, ALTAR_TIME, world), 0, 1000);
|
||||
break;
|
||||
}
|
||||
case 5:
|
||||
case 6:
|
||||
{
|
||||
if (timer != null)
|
||||
{
|
||||
timer.cancel(true);
|
||||
timer = null;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 7:
|
||||
{
|
||||
ThreadPool.schedule(() -> timer = ThreadPool.scheduleAtFixedRate(new Runnable()
|
||||
{
|
||||
private int _time = ALTAR_TIME;
|
||||
|
||||
@Override
|
||||
public void run()
|
||||
{
|
||||
if (_time <= 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
boolean defeated = false;
|
||||
if (killedMonsters.containsKey(MELISSA0) && (killedMonsters.get(MELISSA0) == 1) && killedMonsters.containsKey(ISADORA) && (killedMonsters.get(ISADORA) == 1))
|
||||
{
|
||||
defeated = true;
|
||||
for (L2PcInstance player : playersInside)
|
||||
{
|
||||
player.sendPacket(new ExSendUIEvent(player, ExSendUIEvent.TYPE_NORNIL, (_time--), 0, 0, 0, 0, 2518008));
|
||||
player.sendPacket(new ExSendUIEvent(player, 0x01, 0, 0, 0, 0, 0, 2518008));
|
||||
player.sendPacket(new ExShowScreenMessage(NpcStringId.ALTAR_HAS_STOPPED, ExShowScreenMessage.MIDDLE_CENTER, 5000));
|
||||
addSpawn(MELISSA, MELISSA_SPAWN.getX(), MELISSA_SPAWN.getY(), MELISSA_SPAWN.getZ(), 0, false, 0, true, world.getId());
|
||||
if (timer != null)
|
||||
{
|
||||
timer.cancel(true);
|
||||
timer = null;
|
||||
}
|
||||
altar.deleteMe();
|
||||
world.setStatus(8);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (L2PcInstance player : world.getPlayers())
|
||||
{
|
||||
if (_time == ALTAR_TIME)
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage(NpcStringId.ALTAR_OF_SHILEN_IS_STARTING_MUST_FOCUS_FIRE_THE_ALTAR, ExShowScreenMessage.MIDDLE_CENTER, 5000));
|
||||
}
|
||||
player.sendPacket(new ExSendUIEvent(player, ExSendUIEvent.TYPE_NORNIL, (_time--), 0, 0, 0, 0, 2518008));
|
||||
}
|
||||
}
|
||||
|
||||
if (!defeated && (_time == 9))
|
||||
{
|
||||
for (L2PcInstance player : playersInside)
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage(NpcStringId.THE_ALTAR_OF_SHILEN_WILL_BECOME_ACTIVATED_IN_10_SECONDS, ExShowScreenMessage.MIDDLE_CENTER, 5000));
|
||||
}
|
||||
}
|
||||
|
||||
if (!defeated && (_time == 4))
|
||||
{
|
||||
for (L2PcInstance player : playersInside)
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage(NpcStringId.THE_ALTAR_OF_SHILEN_WILL_BECOME_ACTIVATED_IN_5_SECONDS, ExShowScreenMessage.MIDDLE_CENTER, 5000));
|
||||
}
|
||||
}
|
||||
|
||||
if (!defeated && (_time <= 0))
|
||||
{
|
||||
for (L2PcInstance player : playersInside)
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage(NpcStringId.FOCUS_FIRE_THE_ALTAR_TO_STOP_BLESSING_OF_SHILEN, ExShowScreenMessage.MIDDLE_CENTER, 5000));
|
||||
}
|
||||
|
||||
if (isInInstance(world))
|
||||
{
|
||||
L2World.getInstance().forEachVisibleObjectInRange(altar, L2MonsterInstance.class, 8000, boss ->
|
||||
{
|
||||
if ((boss != null) && !boss.isDead())
|
||||
{
|
||||
altar.doCast(PROTECTED_ALTAR.getSkill());
|
||||
boss.setCurrentHp(boss.getCurrentHp() + (boss.getMaxHp() / 2));
|
||||
for (L2PcInstance player : playersInside)
|
||||
{
|
||||
player.sendPacket(new Earthquake(player.getX(), player.getY(), player.getZ(), 30, 5));
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
if ((_time <= 0) && world.isStatus(7))
|
||||
{
|
||||
ThreadPool.schedule(() ->
|
||||
{
|
||||
_time = ALTAR_TIME;
|
||||
}, 15000);
|
||||
}
|
||||
}
|
||||
}, 0, 1000), 5000);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new AltarOfShilen();
|
||||
}
|
||||
}
|
5
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/instances/AltarOfShilen/condNoGroup.html
vendored
Normal file
5
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/instances/AltarOfShilen/condNoGroup.html
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Agent Georgio:<br>
|
||||
The Altar of Shilen is extremely dangerous.<br>
|
||||
You're trying to go there alone. You may be either very confident or reckless.<br>
|
||||
To let you go is to send you to your death. If you want to go to the Altar of Shilen and stop the ritual, please gather allies and return.
|
||||
</body></html>
|
3
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/instances/AltarOfShilen/condNoLevel.html
vendored
Normal file
3
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/instances/AltarOfShilen/condNoLevel.html
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Agent Georgio:<br>
|
||||
(A party members level must be 101 - 105 Lvl to challenge Altar of Shilen.)
|
||||
</body></html>
|
@@ -0,0 +1,3 @@
|
||||
<html><body>Agent Georgio:<br>
|
||||
Only a party leader may enter the altar of Shilen
|
||||
</body></html>
|
3
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/instances/AltarOfShilen/condSmallGroup.html
vendored
Normal file
3
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/instances/AltarOfShilen/condSmallGroup.html
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Agent Georgio:<br>
|
||||
You are too weak. Gather more people.
|
||||
</body></html>
|
@@ -683,7 +683,7 @@
|
||||
<height normal="0.1" />
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="19121" level="95" type="L2Monster" name="Altar of Sacrifice">
|
||||
<npc id="19121" level="95" type="L2Npc" name="Altar of Sacrifice" >
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>CONSTRUCT</race>
|
||||
<sex>MALE</sex>
|
||||
@@ -710,7 +710,7 @@
|
||||
<height normal="22.5" />
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="19122" level="95" type="L2Monster" name="Altar of Sacrifice">
|
||||
<npc id="19122" level="95" type="L2Npc" name="Altar of Sacrifice" >
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>CONSTRUCT</race>
|
||||
<sex>MALE</sex>
|
||||
@@ -737,7 +737,7 @@
|
||||
<height normal="22.5" />
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="19123" level="95" type="L2Monster" name="Altar of Shilen">
|
||||
<npc id="19123" level="95" type="L2Npc" name="Altar of Shilen" >
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>CONSTRUCT</race>
|
||||
<sex>MALE</sex>
|
||||
|
@@ -3245,8 +3245,8 @@
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<parameters>
|
||||
<param name="IsAggressive" value="1" />
|
||||
<skill name="Skill02_ID" id="14519" level="1" />
|
||||
<skill name="Skill03_ID" id="14520" level="1" />
|
||||
<skill name="Skill01_ID" id="23707" level="4" />
|
||||
<skill name="Skill02_ID" id="16979" level="1" />
|
||||
<param name="Attack_BoostValue" value="146" />
|
||||
</parameters>
|
||||
<race>HUMANOID</race>
|
||||
@@ -3276,9 +3276,9 @@
|
||||
<skill id="4440" level="5" /> <!-- Greater Paralysis Resistance -->
|
||||
<skill id="4441" level="5" /> <!-- Greater Mental Attack Resistance -->
|
||||
<skill id="4439" level="5" /> <!-- Greater Hold Resistance -->
|
||||
<skill id="4494" level="1" /> <!-- Raid Boss -->
|
||||
<skill id="14520" level="1" /> <!-- Ice Box of Hell -->
|
||||
<skill id="14519" level="1" /> <!-- Fire Pit of Hell -->
|
||||
<skill id="16979" level="1" /> <!-- Hellfire -->
|
||||
<skill id="23707" level="4" /> <!-- Chaos fire -->
|
||||
<skill id="16980" level="1" /> <!-- Infernal Icicles -->
|
||||
<skill id="4415" level="3" /> <!-- One-handed Sword -->
|
||||
<skill id="14765" level="4" /> <!-- Blood Siphon Resistance -->
|
||||
<skill id="14620" level="1" /> <!-- Aerial Yoke Resistance 1 -->
|
||||
@@ -3287,7 +3287,7 @@
|
||||
<skill id="14617" level="1" /> <!-- Knock Down Resistance -->
|
||||
<skill id="14619" level="1" /> <!-- Disarm Resistance -->
|
||||
</skillList>
|
||||
<ai clanHelpRange="300" aggroRange="300">
|
||||
<ai clanHelpRange="400" aggroRange="400">
|
||||
<clanList>
|
||||
<clan>EMBRYO_BOSS</clan>
|
||||
</clanList>
|
||||
@@ -3403,8 +3403,8 @@
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<parameters>
|
||||
<param name="IsAggressive" value="1" />
|
||||
<skill name="Skill01_ID" id="14521" level="1" />
|
||||
<skill name="Skill02_ID" id="14194" level="1" />
|
||||
<skill name="Skill01_ID" id="16982" level="1" /> <!-- Devil Horns of Shield -->
|
||||
<skill name="Skill02_ID" id="16981" level="1" /> <!-- Fallen Execution -->
|
||||
<param name="Attack_BoostValue" value="144" />
|
||||
</parameters>
|
||||
<race>HUMANOID</race>
|
||||
@@ -3429,10 +3429,12 @@
|
||||
<skillList>
|
||||
<skill id="5467" level="1" /> <!-- Strong against the dark elemental. -->
|
||||
<skill id="4416" level="6" /> <!-- Humanoids -->
|
||||
<skill id="14194" level="1" /> <!-- Range Stun -->
|
||||
<skill id="4415" level="3" /> <!-- One-handed Sword -->
|
||||
<skill id="14765" level="3" /> <!-- Blood Siphon Resistance -->
|
||||
<skill id="4045" level="1" /> <!-- Resist Full Magic Attack -->
|
||||
<skill id="16982" level="1" /> <!-- Devil Horns of Shield -->
|
||||
<skill id="16981" level="1" /> <!-- Fallen Execution -->
|
||||
<skill id="14194" level="1" /> <!-- Range Stun -->
|
||||
</skillList>
|
||||
<ai clanHelpRange="300" aggroRange="300" />
|
||||
<dropLists>
|
||||
@@ -3453,8 +3455,9 @@
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<parameters>
|
||||
<param name="IsAggressive" value="1" />
|
||||
<skill name="Skill01_ID" id="14522" level="1" />
|
||||
<skill name="Skill02_ID" id="14084" level="6" />
|
||||
<skill name="Skill01_ID" id="16983" level="1" /> <!-- Embryo's Blessing -->
|
||||
<skill name="Skill02_ID" id="23707" level="4" /> <!-- Chaos Fire -->
|
||||
<skill name="Skill02_ID" id="16984" level="1" /> <!-- Blind Spark -->
|
||||
<param name="Attack_BoostValue" value="144" />
|
||||
</parameters>
|
||||
<race>HUMANOID</race>
|
||||
@@ -3475,13 +3478,16 @@
|
||||
</attribute>
|
||||
<abnormalResist physical="10" magical="10" />
|
||||
</stats>
|
||||
<status attackable="false" undying="false" />
|
||||
<status attackable="false" undying="false" randomWalk="false" />
|
||||
<skillList>
|
||||
<skill id="5467" level="1" /> <!-- Strong against the dark elemental. -->
|
||||
<skill id="4416" level="6" /> <!-- Humanoids -->
|
||||
<skill id="4415" level="3" /> <!-- One-handed Sword -->
|
||||
<skill id="14765" level="3" /> <!-- Blood Siphon Resistance -->
|
||||
<skill id="4045" level="1" /> <!-- Resist Full Magic Attack -->
|
||||
<skill id="16983" level="1" /> <!-- Embryo's Blessing -->
|
||||
<skill id="23707" level="1" /> <!-- Chaos Fire -->
|
||||
<skill id="16984" level="1" /> <!-- Blind Spark -->
|
||||
</skillList>
|
||||
<ai clanHelpRange="300" aggroRange="300" />
|
||||
<dropLists>
|
||||
@@ -4128,7 +4134,7 @@
|
||||
<acquire exp="169922991147" sp="169922929" raidPoints="7" />
|
||||
<mpReward value="20" type="PER" ticks="10" affects="PARTY" />
|
||||
<stats str="164" int="188" dex="55" wit="78" con="111" men="149">
|
||||
<vitals hp="2081767" hpRegen="8.5" mp="33087" mpRegen="30" />
|
||||
<vitals hp="881767.0" hpRegen="8.5" mp="33087.0" mpRegen="30" />
|
||||
<speed>
|
||||
<walk ground="30" />
|
||||
<run ground="180" />
|
||||
|
@@ -29,6 +29,7 @@ Goddess of Destruction:
|
||||
-Kartia
|
||||
-Fortuna
|
||||
-Nursery
|
||||
-Altar of Shilen
|
||||
-Kimerian
|
||||
-Istina
|
||||
-Octavis
|
||||
|
Reference in New Issue
Block a user