Pailaka Injured Dragon.
This commit is contained in:
parent
aac1764c59
commit
a1dd8a254e
5
trunk/dist/game/data/html/default/32502.htm
vendored
Normal file
5
trunk/dist/game/data/html/default/32502.htm
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
<html><body>Ketra Orc Supporter:<br>
|
||||
The Great Dragon's descendant has fallen to our enemy!<br>
|
||||
Those goat-headed ruffians have captured the protector of the Ketra Orcs: the Dragon of Fire!<br>
|
||||
<a action="bypass -h npc_%objectId%_Quest">Quest</a>
|
||||
</body></html>
|
5
trunk/dist/game/data/html/default/32509.htm
vendored
Normal file
5
trunk/dist/game/data/html/default/32509.htm
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
<html><body>Ketra Orc Intelligence Officer:<br>
|
||||
Dejakar Oroka!<br>
|
||||
You hold the Spear of Silenos! Your coming was foretold.<br>
|
||||
<a action="bypass -h npc_%objectId%_Quest">Quest</a>
|
||||
</body></html>
|
5
trunk/dist/game/data/html/default/32512.htm
vendored
Normal file
5
trunk/dist/game/data/html/default/32512.htm
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
<html><body>Ketra Orc Supporter:<br>
|
||||
Dejakar Oroka!<br>
|
||||
Latana used the last flicker of energy to summon me here! My friend, you have earned the gratitude of all the Ketra Orcs.<br>
|
||||
<a action="bypass -h npc_%objectId%_Quest">Quest</a>
|
||||
</body></html>
|
83
trunk/dist/game/data/instances/PailakaInjuredDragon.xml
vendored
Normal file
83
trunk/dist/game/data/instances/PailakaInjuredDragon.xml
vendored
Normal file
@ -0,0 +1,83 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<instance name="Pailaka (Injured dragon)" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/instance.xsd">
|
||||
<activityTime val="90" />
|
||||
<allowSummon val="false" />
|
||||
<emptyDestroyTime val="3000" />
|
||||
<spawnPoint spawnX="147725" spawnY="-56517" spawnZ="-2780" />
|
||||
<spawnlist>
|
||||
<group name="general">
|
||||
<spawn npcId="18635" x="122077" y="-46098" z="-2914" heading="5028" respawn="0" />
|
||||
<spawn npcId="18635" x="122019" y="-45634" z="-2908" heading="64841" respawn="0" />
|
||||
<spawn npcId="18635" x="117184" y="-51722" z="-2575" heading="55468" respawn="0" />
|
||||
<spawn npcId="18635" x="116876" y="-51937" z="-2572" heading="59301" respawn="0" />
|
||||
<spawn npcId="18636" x="122023" y="-45769" z="-2910" heading="63593" respawn="0" />
|
||||
<spawn npcId="18636" x="122050" y="-45999" z="-2910" heading="1701" respawn="0" />
|
||||
<spawn npcId="18636" x="117097" y="-51774" z="-2577" heading="51453" respawn="0" />
|
||||
<spawn npcId="18636" x="116926" y="-51876" z="-2580" heading="56322" respawn="0" />
|
||||
<spawn npcId="18637" x="123164" y="-52003" z="-2461" heading="13414" respawn="0" />
|
||||
<spawn npcId="18637" x="123726" y="-51665" z="-2467" heading="6603" respawn="0" />
|
||||
<spawn npcId="18637" x="111641" y="-56027" z="-2783" heading="43022" respawn="0" />
|
||||
<spawn npcId="18637" x="123965" y="-51293" z="-2471" heading="5746" respawn="0" />
|
||||
<spawn npcId="18637" x="125010" y="-50813" z="-2460" heading="1407" respawn="0" />
|
||||
<spawn npcId="18637" x="122474" y="-42594" z="-3240" heading="49260" respawn="0" />
|
||||
<spawn npcId="18637" x="121814" y="-41622" z="-3181" heading="5457" respawn="0" />
|
||||
<spawn npcId="18637" x="121424" y="-41452" z="-3163" heading="41426" respawn="0" />
|
||||
<spawn npcId="18637" x="121264" y="-41559" z="-3164" heading="47583" respawn="0" />
|
||||
<spawn npcId="18637" x="121516" y="-43081" z="-3216" heading="61535" respawn="0" />
|
||||
<spawn npcId="18642" x="117013" y="-51840" z="-2578" heading="55135" respawn="0" />
|
||||
<spawn npcId="18642" x="122038" y="-45904" z="-2914" heading="771" respawn="0" />
|
||||
<spawn npcId="18646" x="116054" y="-46439" z="-2637" heading="63477" respawn="0" />
|
||||
<spawn npcId="18646" x="116057" y="-46521" z="-2644" heading="65025" respawn="0" />
|
||||
<spawn npcId="18646" x="116503" y="-55918" z="-2449" heading="589" respawn="0" />
|
||||
<spawn npcId="18646" x="116490" y="-56022" z="-2445" heading="61772" respawn="0" />
|
||||
<spawn npcId="18646" x="116075" y="-50463" z="-2642" heading="53954" respawn="0" />
|
||||
<spawn npcId="18646" x="116020" y="-50497" z="-2643" heading="55751" respawn="0" />
|
||||
<spawn npcId="18647" x="108759" y="-53478" z="-2606" heading="25521" respawn="0" />
|
||||
<spawn npcId="18647" x="108415" y="-53924" z="-2564" heading="18727" respawn="0" />
|
||||
<spawn npcId="18647" x="107850" y="-52954" z="-2417" heading="21437" respawn="0" />
|
||||
<spawn npcId="18649" x="111616" y="-43922" z="-2635" heading="60699" respawn="0" />
|
||||
<spawn npcId="18649" x="110110" y="-39799" z="-1850" heading="46038" respawn="0" />
|
||||
<spawn npcId="18649" x="109955" y="-39811" z="-1855" heading="48647" respawn="0" />
|
||||
<spawn npcId="18649" x="111606" y="-43746" z="-2633" heading="62267" respawn="0" />
|
||||
<spawn npcId="18649" x="111614" y="-44071" z="-2642" heading="63794" respawn="0" />
|
||||
<spawn npcId="18650" x="109874" y="-39833" z="-1837" heading="48408" respawn="0" />
|
||||
<spawn npcId="18650" x="111602" y="-43846" z="-2638" heading="63427" respawn="0" />
|
||||
<spawn npcId="18650" x="110205" y="-39800" z="-1840" heading="46882" respawn="0" />
|
||||
<spawn npcId="18650" x="111618" y="-44003" z="-2637" heading="59709" respawn="0" />
|
||||
<spawn npcId="18650" x="111619" y="-44129" z="-2650" heading="2365" respawn="0" />
|
||||
<spawn npcId="18651" x="111214" y="-55683" z="-2798" heading="27410" respawn="0" />
|
||||
<spawn npcId="18651" x="111515" y="-55735" z="-2811" heading="24213" respawn="0" />
|
||||
<spawn npcId="18651" x="110462" y="-54609" z="-2882" heading="24283" respawn="0" />
|
||||
<spawn npcId="18651" x="111556" y="-54895" z="-2861" heading="20821" respawn="0" />
|
||||
<spawn npcId="18653" x="116213" y="-50301" z="-2622" heading="50611" respawn="0" />
|
||||
<spawn npcId="18653" x="116432" y="-55729" z="-2441" heading="65250" respawn="0" />
|
||||
<spawn npcId="18653" x="115780" y="-50465" z="-2620" heading="52135" respawn="0" />
|
||||
<spawn npcId="18653" x="116433" y="-56194" z="-2432" heading="927" respawn="0" />
|
||||
<spawn npcId="18653" x="115997" y="-46271" z="-2637" heading="63732" respawn="0" />
|
||||
<spawn npcId="18653" x="116063" y="-46680" z="-2658" heading="4323" respawn="0" />
|
||||
<spawn npcId="18654" x="116155" y="-50420" z="-2635" heading="53262" respawn="0" />
|
||||
<spawn npcId="18654" x="115952" y="-50528" z="-2646" heading="52507" respawn="0" />
|
||||
<spawn npcId="18654" x="116481" y="-56108" z="-2437" heading="62531" respawn="0" />
|
||||
<spawn npcId="18654" x="116499" y="-55822" z="-2449" heading="63477" respawn="0" />
|
||||
<spawn npcId="18654" x="116056" y="-46341" z="-2630" heading="63791" respawn="0" />
|
||||
<spawn npcId="18654" x="116084" y="-46587" z="-2651" heading="1141" respawn="0" />
|
||||
<spawn npcId="18655" x="108892" y="-41031" z="-2204" heading="64381" respawn="0" />
|
||||
<spawn npcId="18655" x="108877" y="-41436" z="-2144" heading="64321" respawn="0" />
|
||||
<spawn npcId="18655" x="109326" y="-45781" z="-2235" heading="5945" respawn="0" />
|
||||
<spawn npcId="18655" x="109584" y="-46100" z="-2263" heading="9356" respawn="0" />
|
||||
<spawn npcId="18655" x="108862" y="-41323" z="-2174" heading="62422" respawn="0" />
|
||||
<spawn npcId="18655" x="108886" y="-41185" z="-2196" heading="64884" respawn="0" />
|
||||
<spawn npcId="18655" x="109458" y="-45980" z="-2263" heading="6915" respawn="0" />
|
||||
<spawn npcId="18657" x="109393" y="-45893" z="-2253" heading="5549" respawn="0" />
|
||||
<spawn npcId="18657" x="109516" y="-46032" z="-2268" heading="4362" respawn="0" />
|
||||
<spawn npcId="18657" x="109272" y="-45665" z="-2210" heading="4731" respawn="0" />
|
||||
<spawn npcId="18657" x="108888" y="-41114" z="-2195" heading="64256" respawn="0" />
|
||||
<spawn npcId="18657" x="108878" y="-41260" z="-2188" heading="64876" respawn="0" />
|
||||
<spawn npcId="18657" x="108869" y="-41376" z="-2163" heading="2280" respawn="0" />
|
||||
<spawn npcId="18659" x="110023" y="-39802" z="-1852" heading="48655" respawn="0" />
|
||||
<spawn npcId="32502" x="125524" y="-40946" z="-3718" heading="8279" respawn="0" />
|
||||
<spawn npcId="32509" x="110074" y="-41324" z="-2285" heading="33580" respawn="0" />
|
||||
<spawn npcId="32509" x="113745" y="-47565" z="-2593" heading="55710" respawn="0" />
|
||||
</group>
|
||||
</spawnlist>
|
||||
</instance>
|
5
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32499-00.htm
vendored
Normal file
5
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32499-00.htm
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
<html><body>Ketra Orc Shaman:<br>
|
||||
I perceive darkness...and chaos... The protector of our race, the great Red Dragon, lies imprisoned and in torment there.<br>
|
||||
He summons us to return him to his rightful place of glory, but...<br>
|
||||
<a action="bypass -h Quest Q00144_PailakaInjuredDragon 32499-01.htm">Ask to hear more.</a>
|
||||
</body></html>
|
6
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32499-01.htm
vendored
Normal file
6
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32499-01.htm
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
<html><body>Ktra Orc Shaman:<br>
|
||||
The Ketra believe we are children of the Spirit of Fire.<br>
|
||||
We worship the Red Dragon, who wields the stongest fire in all Goddard.<br>
|
||||
Lately. however, we have felt a darkness flickering within the pure flame. It seems to be growing -- and the fire's power seems to be weaking!<br>
|
||||
<a action="bypass -h Quest Q00144_PailakaInjuredDragon 32499-02.htm">Ask about this strange darkness.</a><br>
|
||||
</body></html>
|
7
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32499-02.htm
vendored
Normal file
7
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32499-02.htm
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
<html><body>Ketra Orc Shaman:<br>
|
||||
It is a darkness wothout shape or substance.<br>
|
||||
It came from across the sea, and now spreads its black shadow over our land as well.<br>
|
||||
The Humans call the source of the darkness "Kamaloka" and shadow it casts "Pailaka." Now even our great protector is helpess before it!<br>
|
||||
We must summon all our strength to defeat the darkness!<br>
|
||||
<a action="bypass -h Quest Q00144_PailakaInjuredDragon 32499-03.htm">Keep listening.</a><br>
|
||||
</body></html>
|
9
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32499-03.htm
vendored
Normal file
9
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32499-03.htm
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
<html><body>Ketra Orc Shaman:<br>
|
||||
Warrior, I ask you to aid us!<br>
|
||||
Because of our Ketra heritage, we cannot enter the Shadow of Darkness ourselves.<br>
|
||||
But I believe an adventurer like you can do so and remove this curse from us.<br>
|
||||
Will you do it?<br>
|
||||
(This quest takes place in Pailaka. It does not affect the Varka Silenos alliance quest or the Ketra Orc alliance quest.)<br>
|
||||
<font color="LEVEL">Vitality points are awarded for completing this quest. You will acquired them immediately upon complettion of the quest. If you recieve the reward while your Vitality Level is high, you may notice a slight reduction.)</font><br>
|
||||
<a action="bypass -h Quest Q00144_PailakaInjuredDragon 32499-04.html">Say yes.</a>
|
||||
</body></html>
|
7
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32499-04.html
vendored
Normal file
7
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32499-04.html
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
<html><body>Ketra Orc Shaman:<br>
|
||||
Our thanks, warrior! One of the last vision the flames gave me before becoming too weak was that there are others like us in the Shadow World.<br>
|
||||
They will help you.<br>
|
||||
When you are prepared, I will send you to the Shadow World, Pailaka!<br>
|
||||
<a action="bypass -h Quest Q00144_PailakaInjuredDragon enter">Go now</a><br>
|
||||
<a action="bypass -h Quest Q00144_PailakaInjuredDragon 32499-07.html">Come back later</a>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32499-05.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32499-05.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Ketra Orc Shaman:<br>
|
||||
Oh! The Spirit of Fire! I can feel it Imprisoned within darkness!<br>
|
||||
<a action="bypass -h Quest Q00144_PailakaInjuredDragon 32499-00.htm">Quest</a>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32499-06.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32499-06.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Ketra Orc Shaman:<br>
|
||||
Warrior, do you wish to enter the Shadow World, Pailaka?<br>
|
||||
<a action="bypass -h Quest Q00144_PailakaInjuredDragon enter">Enter Pailaka</a>
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32499-07.html
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32499-07.html
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
<html><body>Ketra Orc Shaman:<br>
|
||||
Very well, I shall wait here until you are ready.
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32499-08.html
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32499-08.html
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
<html><body>Ketra Orc Shaman:<br>
|
||||
Now looking for Ketra Orc in that world! He can help you in that place!
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32499-09.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32499-09.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Ketra Orc Shaman:<br>
|
||||
You have to enter the shadow world.<br1>Are you ready?<br>
|
||||
<a action="bypass -h Quest Q00144_PailakaInjuredDragon enters">Enter</a>
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32499-10.html
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32499-10.html
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
<html><body>Ketra Orc Shaman:<br>
|
||||
I believe his power will removed wrapped in the shadows surrounding sparkles!
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32499-completed.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32499-completed.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Ketra Orc Shaman:<br>
|
||||
Now I feel the dark atmosphere of it! Boring Silenus breath is gone!<br>
|
||||
Quest is complete!
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32499-no.html
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32499-no.html
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
<html><body>Ketra Orc Shaman:<br>
|
||||
Only players of more than 73 level can perform this task.
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32499-over.html
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32499-over.html
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
<html><body>Ketra Orc Shaman:<br>
|
||||
Only heroes up to 77 level, can perform this task.
|
||||
</body></html>
|
5
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32502-00.html
vendored
Normal file
5
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32502-00.html
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
<html><body>Ketra Orc Supporter:<br>
|
||||
The Dragon of Fire, a descendant of the Great Valakas, appeared just as we Ketra Orcs were fighting those vile Varka Silenos.<br>
|
||||
He took our side and drove our enemies from the field of battle!<br>
|
||||
<a action="bypass -h Quest Q00144_PailakaInjuredDragon 32502-01.html">Keep listening.</a>
|
||||
</body></html>
|
5
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32502-01.html
vendored
Normal file
5
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32502-01.html
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
<html><body>Ketra Orc Supporter:<br>
|
||||
However, we were exhausted from the long conflict. Since the Silenos could not match Latana's strength, they resorted to trickery: they summoned magical water to engulf him!<br>
|
||||
We tried to rescue him, but his wing was injurd and he was captured...<br>
|
||||
<a action="bypass -h Quest Q00144_PailakaInjuredDragon 32502-02.html">Ask if he wants to rescue the dragon.</a>
|
||||
</body></html>
|
6
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32502-02.html
vendored
Normal file
6
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32502-02.html
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
<html><body>Ketra Orc Supporter:<br>
|
||||
Of course! That is the dream of every loyal Ketra Orc! But our shaman senses that time is running out!<br>
|
||||
The evil Silenos shamans are trying to brainwash Latana into helping them.<br>
|
||||
Thanks to his in-born energy of fire, he has resisted their attempts so far. But injured as he is, he cannot hold out much longer...<br>
|
||||
<a action="bypass -h Quest Q00144_PailakaInjuredDragon 32502-03.html">Ask what can be done.</a>
|
||||
</body></html>
|
6
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32502-03.html
vendored
Normal file
6
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32502-03.html
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
<html><body>Katra Orc Shaman:<br>
|
||||
Truthfully, I do not know.<br>
|
||||
There is a small chance that if you can pierce the wall surronding him, Latana will come to his senses.<br>
|
||||
If so, we could at least free his spirit, if now his body, to return to the Great Fire...<br>
|
||||
<a action="bypass -h Quest Q00144_PailakaInjuredDragon 32502-04.html">"I understand."</a>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32502-04.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32502-04.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Katra Orc Supporter:<br>
|
||||
Know that, even wounded, the Dragon of Fire is very powerful. To help you slay him amd set his spirit free, use this <font color="LEVEL">Spear of Silenos</font>, which we captured from our enemy. It can <font color="LEVEL">use a power called Obliteration Storm to increase the effectiveness of critical hits</font>! Its power has not reached its full potential, but by defeating the Varka Silenos you can obtain items necessary to enchance its power. Use it to destroy our enemy and send Latana's spirit to the World of Fire!<br>
|
||||
<a action="bypass -h Quest Q00144_PailakaInjuredDragon 32502-05.html">Ask about the enemy.</a>
|
||||
</body></html>
|
5
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32502-05.html
vendored
Normal file
5
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32502-05.html
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
<html><body>Katra Orc Supporter:<br>
|
||||
The enemy are Varka Silenos soldiers. Their camps are positioned to prevent access to the dragon. It will be impossible to sneak past them.<br>
|
||||
By facing and defeating them, however, you can obtain a scroll needed to enchance the Spear of Silenos.<br>
|
||||
They and only then will you ready to face Latana, the Dragon of Fire!
|
||||
</body></html>
|
5
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32502-06.html
vendored
Normal file
5
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32502-06.html
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
<html><body>Ketra Orc Supporter:<br>
|
||||
The Great Dragon's descendant has fallen to our enemy!<br>
|
||||
Those goat-headed ruffians have captured the protector of the Ketra Orcs: the Dragon of Fire!<br>
|
||||
<a action="bypass -h Quest Q00144_PailakaInjuredDragon 32502-00.html">Quest</a>
|
||||
</body></html>
|
6
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32509-00.html
vendored
Normal file
6
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32509-00.html
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
<html><body>Ketra Orc Intelligence Officer:<br>
|
||||
If you have the Scroll of Enchant Weapon made with the blood of Silenos, I will perform a sacred ceremony to enhance the spear!<br>
|
||||
If you wish, I can also bestow on you some of our tribe's powerful enhancement magic!<br>
|
||||
<a action="bypass -h Quest Q00144_PailakaInjuredDragon 32509-02.html">Enhance the weapon.</a><br>
|
||||
<a action="bypass -h Quest Q00144_PailakaInjuredDragon 32509-06.html">Receive enhancement magic.</a>
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32509-01.html
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32509-01.html
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
<html><body>Ketra Orc Intelligence Officer:<br>
|
||||
You still need an Enchant Scroll, Acquire one by slaying more Silenos!
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32509-02.html
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32509-02.html
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
<html><body>Ketra Orc Intelligence Officer:<br>
|
||||
Your weapon has been enchanced! The Spear of Silenos has regained its original power! You now possess the power of Obliteration Storm. Sadly, it is still not yet powerful enough to defeat Latana...
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32509-03.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32509-03.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Ketra Orc Intelligence Officer:<br>
|
||||
The Spear of Silenos has regained its power! And now the power of Obliteration Storm has also reached its peak.<br>
|
||||
With this I hope you can send Latana back to the Fore World, warrior!
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32509-03a.html
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32509-03a.html
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
<html><body>Ketra Orc Intelligence Officer:<br>
|
||||
This weapon cant be upgraded! Here is more power than ever!
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32509-04.html
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32509-04.html
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
<html><body>Ketra Orc Intelligence Officer:<br>
|
||||
You cannot receive any more enchancements! All 5 spells have been used.
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32509-05.html
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32509-05.html
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
<html><body>Ketra Orc Intelligence Officer:<br>
|
||||
The fifth and final enchancement is complete!
|
||||
</body></html>
|
16
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32509-06.html
vendored
Normal file
16
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32509-06.html
vendored
Normal file
@ -0,0 +1,16 @@
|
||||
<html><body>Ketra Orc Intelligence Officer:<br>
|
||||
We possesss several types of enchanement magic. Unfortunately, I can only grant you <font color="LEVEL">a total of 5 spells</font>!<br>
|
||||
Please select them from the list below:<br>
|
||||
<a action="bypass -h Quest Q00144_PailakaInjuredDragon buff1">Haste Lv2</a><br>
|
||||
<a action="bypass -h Quest Q00144_PailakaInjuredDragon buff2">Wind Walk Lv2</a><br>
|
||||
<a action="bypass -h Quest Q00144_PailakaInjuredDragon buff3">Empower Lv3</a><br>
|
||||
<a action="bypass -h Quest Q00144_PailakaInjuredDragon buff4">Acumen Lv3</a><br>
|
||||
<a action="bypass -h Quest Q00144_PailakaInjuredDragon buff5">Concentration Lv6</a><br>
|
||||
<a action="bypass -h Quest Q00144_PailakaInjuredDragon buff6">Might Lv3</a><br>
|
||||
<a action="bypass -h Quest Q00144_PailakaInjuredDragon buff7">Guidance Lv3</a><br>
|
||||
<a action="bypass -h Quest Q00144_PailakaInjuredDragon buff8">Focus Lv3</a><br>
|
||||
<a action="bypass -h Quest Q00144_PailakaInjuredDragon buff9">Death Wisper Lv3</a><br>
|
||||
<a action="bypass -h Quest Q00144_PailakaInjuredDragon buff10">Berserker Spirit Lv2</a><br>
|
||||
<a action="bypass -h Quest Q00144_PailakaInjuredDragon buff11">Vampiric Rage Lv4</a><br>
|
||||
<a action="bypass -h Quest Q00144_PailakaInjuredDragon buff12">Blessed Body Lv6</a>
|
||||
</body></html>
|
16
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32509-06a.html
vendored
Normal file
16
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32509-06a.html
vendored
Normal file
@ -0,0 +1,16 @@
|
||||
<html><body>Ketra Orc Intelligence Officer:<br>
|
||||
We possesss several types of enchanement magic. Unfortunately, I can only grant you <font color="LEVEL">a total of 5 spells</font>!<br>
|
||||
Please select them from the list below:<br>
|
||||
<a action="bypass -h Quest Q00144_PailakaInjuredDragon buff1">Haste Lv2</a><br>
|
||||
<a action="bypass -h Quest Q00144_PailakaInjuredDragon buff2">Wind Walk Lv2</a><br>
|
||||
<a action="bypass -h Quest Q00144_PailakaInjuredDragon buff3">Empower Lv3</a><br>
|
||||
<a action="bypass -h Quest Q00144_PailakaInjuredDragon buff4">Acumen Lv3</a><br>
|
||||
<a action="bypass -h Quest Q00144_PailakaInjuredDragon buff5">Concentration Lv6</a><br>
|
||||
<a action="bypass -h Quest Q00144_PailakaInjuredDragon buff6">Might Lv3</a><br>
|
||||
<a action="bypass -h Quest Q00144_PailakaInjuredDragon buff7">Guidance Lv3</a><br>
|
||||
<a action="bypass -h Quest Q00144_PailakaInjuredDragon buff8">Focus Lv3</a><br>
|
||||
<a action="bypass -h Quest Q00144_PailakaInjuredDragon buff9">Death Wisper Lv3</a><br>
|
||||
<a action="bypass -h Quest Q00144_PailakaInjuredDragon buff10">Berserker Spirit Lv2</a><br>
|
||||
<a action="bypass -h Quest Q00144_PailakaInjuredDragon buff11">Vampiric Rage Lv4</a><br>
|
||||
<a action="bypass -h Quest Q00144_PailakaInjuredDragon buff12">Blessed Body Lv6</a>
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32509-07.html
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32509-07.html
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
<html><body>Ketra Orc Intelligence Officer:<br>
|
||||
I can't find your Spear!
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32512-01.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32512-01.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Ketra Orc Supporter:<br>
|
||||
Would you return the Spear of Silenos to us, since it is a sacred relic of our people! We will neturally reward you for it.<br>
|
||||
<a action="bypass -h Quest Q00144_PailakaInjuredDragon 32512-02.html">"Return the Spear."</a>
|
||||
</body></html>
|
6
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32512-02.html
vendored
Normal file
6
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32512-02.html
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
<html><body>Ketra Orc Supporter:<br>
|
||||
You have done it!<br>
|
||||
You have lifted the curse! I no longer feel the taint of darkness upon our Atlar of Fire!<br>
|
||||
Warrior, I wish you could stay heer with us, but our shaman decrees that you must leave...<br>
|
||||
Here is a Scroll of Escape that he has prepared for you. Use it to return safely to your world.
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32512-03.html
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/32512-03.html
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
<html><body>Ketra Orc Supporter:<br>
|
||||
Use the Scroll of Escape that I gave you to return to your world.
|
||||
</body></html>
|
975
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/Q00144_PailakaInjuredDragon.java
vendored
Normal file
975
trunk/dist/game/data/scripts/quests/Q00144_PailakaInjuredDragon/Q00144_PailakaInjuredDragon.java
vendored
Normal file
@ -0,0 +1,975 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2014 L2J DataPack
|
||||
*
|
||||
* This file is part of L2J DataPack.
|
||||
*
|
||||
* L2J DataPack is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* L2J DataPack is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package quests.Q00144_PailakaInjuredDragon;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.Map;
|
||||
|
||||
import javolution.util.FastList;
|
||||
import javolution.util.FastMap;
|
||||
|
||||
import com.l2jserver.gameserver.ai.CtrlEvent;
|
||||
import com.l2jserver.gameserver.ai.CtrlIntention;
|
||||
import com.l2jserver.gameserver.datatables.SkillData;
|
||||
import com.l2jserver.gameserver.enums.QuestSound;
|
||||
import com.l2jserver.gameserver.instancemanager.InstanceManager;
|
||||
import com.l2jserver.gameserver.model.actor.L2Character;
|
||||
import com.l2jserver.gameserver.model.actor.L2Npc;
|
||||
import com.l2jserver.gameserver.model.actor.L2Summon;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2MonsterInstance;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PetInstance;
|
||||
import com.l2jserver.gameserver.model.entity.Instance;
|
||||
import com.l2jserver.gameserver.model.instancezone.InstanceWorld;
|
||||
import com.l2jserver.gameserver.model.quest.Quest;
|
||||
import com.l2jserver.gameserver.model.quest.QuestState;
|
||||
import com.l2jserver.gameserver.model.quest.State;
|
||||
import com.l2jserver.gameserver.model.zone.L2ZoneType;
|
||||
import com.l2jserver.gameserver.network.SystemMessageId;
|
||||
import com.l2jserver.gameserver.util.Util;
|
||||
import com.l2jserver.util.Rnd;
|
||||
|
||||
/**
|
||||
* Pailaka Injured Dragon (based on same quest by Synerge?)
|
||||
* @author Pandragon
|
||||
*/
|
||||
public class Q00144_PailakaInjuredDragon extends Quest
|
||||
{
|
||||
private static final int MIN_LEVEL = 73;
|
||||
private static final int MAX_LEVEL = 77;
|
||||
private static final int MAX_SUMMON_LEVEL = 80;
|
||||
private static final int EXIT_TIME = 5;
|
||||
private static final int INSTANCE_ID = 45;
|
||||
protected static final int[] TELEPORT =
|
||||
{
|
||||
125757,
|
||||
-40928,
|
||||
-3736
|
||||
};
|
||||
|
||||
// @formatter:off
|
||||
// NO EXIT ZONES
|
||||
private static final Map<Integer, int[]> NOEXIT_ZONES = new FastMap<>();
|
||||
static
|
||||
{
|
||||
NOEXIT_ZONES.put(200001, new int[]{123167, -45743, -3023});
|
||||
NOEXIT_ZONES.put(200002, new int[]{117783, -46398, -2560});
|
||||
NOEXIT_ZONES.put(200003, new int[]{116791, -51556, -2584});
|
||||
NOEXIT_ZONES.put(200004, new int[]{117993, -52505, -2480});
|
||||
NOEXIT_ZONES.put(200005, new int[]{113226, -44080, -2776});
|
||||
NOEXIT_ZONES.put(200006, new int[]{110326, -45016, -2444});
|
||||
NOEXIT_ZONES.put(200007, new int[]{118341, -55951, -2280});
|
||||
NOEXIT_ZONES.put(200008, new int[]{110127, -41562, -2332});
|
||||
}
|
||||
|
||||
// Npcs
|
||||
private static final int KETRA_ORC_SHAMAN = 32499;
|
||||
private static final int KETRA_ORC_SUPPORTER = 32502;
|
||||
private static final int KETRA_ORC_SUPPORTER2 = 32512;
|
||||
private static final int KETRA_ORC_INTELIGENCE_OFFICER = 32509;
|
||||
|
||||
// Wall Mobs
|
||||
private static final int VARKA_SILENOS_RECRUIT = 18635;
|
||||
private static final int VARKA_SILENOS_FOOTMAN = 18636;
|
||||
private static final int VARKA_SILENOS_WARRIOR = 18642;
|
||||
private static final int VARKA_SILENOS_OFFICER = 18646;
|
||||
private static final int VARKAS_COMMANDER = 18654;
|
||||
private static final int VARKA_ELITE_GUARD = 18653;
|
||||
private static final int VARKA_SILENOS_GREAT_MAGUS = 18649;
|
||||
private static final int VARKA_SILENOS_GENERAL = 18650;
|
||||
private static final int VARKA_SILENOS_HEAD_GUARD = 18655;
|
||||
private static final int PROPHET_GUARD = 18657;
|
||||
private static final int VARKAS_PROPHET = 18659;
|
||||
|
||||
// Extra Wall Silenos
|
||||
private static final int VARKA_SILENOS_MEDIUM = 18644;
|
||||
private static final int VARKA_SILENOS_PRIEST = 18641;
|
||||
private static final int VARKA_SILENOS_SHAMAN = 18640;
|
||||
private static final int VARKA_SILENOS_SEER = 18648;
|
||||
private static final int VARKA_SILENOS_MAGNUS = 18645;
|
||||
private static final int DISCIPLE_OF_PROPHET = 18658;
|
||||
private static final int VARKA_HEAD_MAGUS = 18656;
|
||||
private static final int VARKA_SILENOS_GREAT_SEER = 18652;
|
||||
|
||||
// Normal Mobs
|
||||
private static final int ANTYLOPE_1 = 18637;
|
||||
private static final int ANTYLOPE_2 = 18643;
|
||||
private static final int ANTYLOPE_3 = 18651;
|
||||
private static final int FLAVA = 18647;
|
||||
|
||||
// Boss
|
||||
private static final int LATANA = 18660;
|
||||
|
||||
// Items
|
||||
private static final int SPEAR = 13052;
|
||||
private static final int ENCHSPEAR = 13053;
|
||||
private static final int LASTSPEAR = 13054;
|
||||
private static final int STAGE1 = 13056;
|
||||
private static final int STAGE2 = 13057;
|
||||
|
||||
private static final int SHIELD_POTION = 13032;
|
||||
private static final int HEAL_POTION = 13033;
|
||||
|
||||
// Rewards
|
||||
private static final int PSHIRT = 13296;
|
||||
private static final int SCROLL_OF_ESCAPE = 736;
|
||||
|
||||
private static int buff_counter = 5;
|
||||
|
||||
// Arrays
|
||||
private static final int[] NPCS =
|
||||
{
|
||||
KETRA_ORC_SHAMAN,
|
||||
KETRA_ORC_SUPPORTER,
|
||||
KETRA_ORC_INTELIGENCE_OFFICER,
|
||||
KETRA_ORC_SUPPORTER2
|
||||
};
|
||||
|
||||
private static final int[] WALL_MONSTERS =
|
||||
{
|
||||
// 1st Row Mobs
|
||||
VARKA_SILENOS_FOOTMAN,
|
||||
VARKA_SILENOS_WARRIOR,
|
||||
VARKA_SILENOS_OFFICER,
|
||||
VARKAS_COMMANDER,
|
||||
VARKA_SILENOS_RECRUIT,
|
||||
PROPHET_GUARD,
|
||||
VARKA_ELITE_GUARD,
|
||||
VARKA_SILENOS_GREAT_MAGUS,
|
||||
VARKA_SILENOS_GENERAL,
|
||||
VARKA_SILENOS_HEAD_GUARD,
|
||||
PROPHET_GUARD,
|
||||
VARKAS_PROPHET,
|
||||
|
||||
// 2nd Row Mobs
|
||||
DISCIPLE_OF_PROPHET,
|
||||
VARKA_HEAD_MAGUS,
|
||||
VARKA_SILENOS_GREAT_SEER,
|
||||
VARKA_SILENOS_SHAMAN,
|
||||
VARKA_SILENOS_MAGNUS,
|
||||
VARKA_SILENOS_SEER,
|
||||
VARKA_SILENOS_MEDIUM,
|
||||
VARKA_SILENOS_PRIEST
|
||||
};
|
||||
|
||||
private static final int[] OTHER_MONSTERS =
|
||||
{
|
||||
ANTYLOPE_1,
|
||||
ANTYLOPE_2,
|
||||
ANTYLOPE_3,
|
||||
FLAVA
|
||||
};
|
||||
|
||||
private static final int[] ITEMS =
|
||||
{
|
||||
SPEAR,
|
||||
ENCHSPEAR,
|
||||
LASTSPEAR,
|
||||
STAGE1,
|
||||
STAGE2,
|
||||
SHIELD_POTION,
|
||||
HEAL_POTION
|
||||
};
|
||||
|
||||
private static final int[][] BUFFS =
|
||||
{
|
||||
{4357,2}, // Haste Lv2
|
||||
{4342,2}, // Wind Walk Lv2
|
||||
{4356,3}, // Empower Lv3
|
||||
{4355,3}, // Acumen Lv3
|
||||
{4351,6}, // Concentration Lv6
|
||||
{4345,3}, // Might Lv3
|
||||
{4358,3}, // Guidance Lv3
|
||||
{4359,3}, // Focus Lv3
|
||||
{4360,3}, // Death Wisper Lv3
|
||||
{4352,2}, // Berserker Spirit Lv2
|
||||
{4354,4}, // Vampiric Rage Lv4
|
||||
{4347,6} // Blessed Body Lv6
|
||||
};
|
||||
|
||||
private static final FastList<PailakaDrop> DROPLIST = new FastList<>();
|
||||
static
|
||||
{
|
||||
DROPLIST.add(new PailakaDrop(HEAL_POTION, 80));
|
||||
DROPLIST.add(new PailakaDrop(SHIELD_POTION, 30));
|
||||
}
|
||||
|
||||
private static final int[][] HP_HERBS_DROPLIST =
|
||||
{
|
||||
// itemId, count, chance
|
||||
{ 8601, 1, 40 }, { 8600, 1, 70 }
|
||||
};
|
||||
|
||||
private static final int[][] MP_HERBS_DROPLIST =
|
||||
{
|
||||
// itemId, count, chance
|
||||
{ 8604, 1, 40 }, { 8603, 1, 70 }
|
||||
};
|
||||
// @formatter:on
|
||||
|
||||
public Q00144_PailakaInjuredDragon()
|
||||
{
|
||||
super(144, Q00144_PailakaInjuredDragon.class.getSimpleName(), "Pailaka - Injured Dragon");
|
||||
addStartNpc(KETRA_ORC_SHAMAN);
|
||||
addKillId(LATANA);
|
||||
|
||||
questItemIds = ITEMS;
|
||||
|
||||
for (int npcId : NPCS)
|
||||
{
|
||||
addTalkId(npcId);
|
||||
}
|
||||
|
||||
for (int mobId : OTHER_MONSTERS)
|
||||
{
|
||||
addKillId(mobId);
|
||||
}
|
||||
|
||||
for (int mobId : WALL_MONSTERS)
|
||||
{
|
||||
addSpawnId(mobId);
|
||||
addKillId(mobId);
|
||||
}
|
||||
|
||||
for (int zoneid : NOEXIT_ZONES.keySet())
|
||||
{
|
||||
addEnterZoneId(zoneid);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public final String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
final QuestState qs = player.getQuestState(getName());
|
||||
if (qs == null)
|
||||
{
|
||||
return getNoQuestMsg(player);
|
||||
}
|
||||
|
||||
final int cond = qs.getCond();
|
||||
if (event.equals("enter"))
|
||||
{
|
||||
enterInstance(player);
|
||||
return "32499-08.html";
|
||||
}
|
||||
else if (event.equals("enters"))
|
||||
{
|
||||
enterInstance(player);
|
||||
return "32499-10.html";
|
||||
}
|
||||
else if (event.equals("32499-02.htm"))
|
||||
{
|
||||
if (cond == 0)
|
||||
{
|
||||
qs.set("cond", "1");
|
||||
qs.setState(State.STARTED);
|
||||
qs.playSound(QuestSound.ITEMSOUND_QUEST_ACCEPT);
|
||||
}
|
||||
}
|
||||
else if (event.equals("32499-04.html"))
|
||||
{
|
||||
if (cond == 1)
|
||||
{
|
||||
qs.set("cond", "2");
|
||||
qs.playSound(QuestSound.ITEMSOUND_QUEST_ACCEPT);
|
||||
}
|
||||
}
|
||||
else if (event.equals("32502-04.html"))
|
||||
{
|
||||
if ((cond == 2) && !qs.hasQuestItems(SPEAR))
|
||||
{
|
||||
qs.set("cond", "3");
|
||||
qs.playSound(QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
qs.giveItems(SPEAR, 1);
|
||||
}
|
||||
}
|
||||
else if (event.equals("32509-02.html"))
|
||||
{
|
||||
if ((cond == 3) && qs.hasQuestItems(SPEAR))
|
||||
{
|
||||
if (!qs.hasQuestItems(SPEAR) && !qs.hasQuestItems(STAGE1))
|
||||
{
|
||||
return "32509-07.html";
|
||||
}
|
||||
if (qs.hasQuestItems(SPEAR) && !qs.hasQuestItems(STAGE1))
|
||||
{
|
||||
return "32509-01.html";
|
||||
}
|
||||
if (qs.hasQuestItems(SPEAR) && qs.hasQuestItems(STAGE1))
|
||||
{
|
||||
qs.takeItems(SPEAR, -1);
|
||||
qs.takeItems(STAGE1, -1);
|
||||
qs.giveItems(ENCHSPEAR, 1);
|
||||
qs.playSound(QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
return "32509-02.html";
|
||||
}
|
||||
}
|
||||
if ((cond == 3) && qs.hasQuestItems(ENCHSPEAR))
|
||||
{
|
||||
if (!qs.hasQuestItems(ENCHSPEAR) && !qs.hasQuestItems(STAGE2))
|
||||
{
|
||||
return "32509-07.html";
|
||||
}
|
||||
if (qs.hasQuestItems(ENCHSPEAR) && !qs.hasQuestItems(STAGE2))
|
||||
{
|
||||
return "32509-01.html";
|
||||
}
|
||||
if (qs.hasQuestItems(ENCHSPEAR) && qs.hasQuestItems(STAGE2))
|
||||
{
|
||||
qs.takeItems(ENCHSPEAR, -1);
|
||||
qs.takeItems(STAGE2, -1);
|
||||
qs.giveItems(LASTSPEAR, 1);
|
||||
qs.playSound(QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
|
||||
// Spawns Latana.
|
||||
addSpawn(LATANA, 105732, -41787, -1782, 35742, false, 0, false, npc.getInstanceId());
|
||||
|
||||
return "32509-03.html";
|
||||
}
|
||||
}
|
||||
if ((cond == 3) && qs.hasQuestItems(LASTSPEAR))
|
||||
{
|
||||
if (qs.hasQuestItems(LASTSPEAR))
|
||||
{
|
||||
return "32509-03a.html";
|
||||
}
|
||||
if (!qs.hasQuestItems(LASTSPEAR))
|
||||
{
|
||||
return "32509-07.html";
|
||||
}
|
||||
}
|
||||
return "32509-07.html";
|
||||
}
|
||||
else if (event.equals("32509-06.html"))
|
||||
{
|
||||
if (buff_counter < 1)
|
||||
{
|
||||
return "32509-04.html";
|
||||
}
|
||||
}
|
||||
else if (event.equals("32512-02.html"))
|
||||
{
|
||||
qs.unset("cond");
|
||||
qs.playSound(QuestSound.ITEMSOUND_QUEST_FINISH);
|
||||
qs.exitQuest(false);
|
||||
|
||||
Instance inst = InstanceManager.getInstance().getInstance(npc.getInstanceId());
|
||||
inst.setDuration(EXIT_TIME * 60000);
|
||||
inst.setEmptyDestroyTime(0);
|
||||
|
||||
if (inst.containsPlayer(player.getObjectId()))
|
||||
{
|
||||
player.setVitalityPoints(20000, true);
|
||||
qs.addExpAndSp(28000000, 2850000);
|
||||
qs.giveItems(SCROLL_OF_ESCAPE, 1);
|
||||
qs.giveItems(PSHIRT, 1);
|
||||
}
|
||||
}
|
||||
else if (event.startsWith("buff"))
|
||||
{
|
||||
if (buff_counter > 0)
|
||||
{
|
||||
final int nr = Integer.parseInt(event.split("buff")[1]);
|
||||
giveBuff(npc, player, BUFFS[nr - 1][0], BUFFS[nr - 1][1]);
|
||||
return "32509-06a.html";
|
||||
}
|
||||
return "32509-05.html";
|
||||
}
|
||||
else if (event.equals("latana_animation"))
|
||||
{
|
||||
npc.abortAttack();
|
||||
npc.abortCast();
|
||||
npc.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
||||
player.abortAttack();
|
||||
player.abortCast();
|
||||
player.stopMove(null);
|
||||
if (player.hasSummon())
|
||||
{
|
||||
player.getSummon().abortAttack();
|
||||
player.getSummon().abortCast();
|
||||
player.getSummon().stopMove(null);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
else if (event.equals("latana_animation2"))
|
||||
{
|
||||
npc.doCast(SkillData.getInstance().getSkill(5759, 1));
|
||||
npc.getAI().notifyEvent(CtrlEvent.EVT_ATTACKED, player);
|
||||
return null;
|
||||
}
|
||||
return event;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final String onTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
final QuestState qs = player.getQuestState(getName());
|
||||
if (qs == null)
|
||||
{
|
||||
return getNoQuestMsg(player);
|
||||
}
|
||||
|
||||
final int cond = qs.getCond();
|
||||
switch (npc.getId())
|
||||
{
|
||||
case KETRA_ORC_SHAMAN:
|
||||
switch (qs.getState())
|
||||
{
|
||||
case State.CREATED:
|
||||
if (player.getLevel() < MIN_LEVEL)
|
||||
{
|
||||
return "32499-no.html";
|
||||
}
|
||||
if (player.getLevel() > MAX_LEVEL)
|
||||
{
|
||||
return "32499-over.html";
|
||||
}
|
||||
return "32499-00.htm";
|
||||
case State.STARTED:
|
||||
if (player.getLevel() < MIN_LEVEL)
|
||||
{
|
||||
return "32499-no.html";
|
||||
}
|
||||
if (player.getLevel() > MAX_LEVEL)
|
||||
{
|
||||
return "32499-over.html";
|
||||
}
|
||||
if (cond == 1)
|
||||
{
|
||||
return "32499-06.html";
|
||||
}
|
||||
else if (cond >= 2)
|
||||
{
|
||||
return "32499-09.html";
|
||||
}
|
||||
case State.COMPLETED:
|
||||
return "32499-completed.html";
|
||||
default:
|
||||
return "32499-no.html";
|
||||
}
|
||||
case KETRA_ORC_SUPPORTER:
|
||||
if (cond > 2)
|
||||
{
|
||||
return "32502-04.html";
|
||||
}
|
||||
return "32502-00.html";
|
||||
case KETRA_ORC_INTELIGENCE_OFFICER:
|
||||
return "32509-00.html";
|
||||
case KETRA_ORC_SUPPORTER2:
|
||||
if (qs.getState() == State.COMPLETED)
|
||||
{
|
||||
return "32512-03.html";
|
||||
}
|
||||
else if (cond == 4)
|
||||
{
|
||||
return "32512-01.html";
|
||||
}
|
||||
}
|
||||
|
||||
return getNoQuestMsg(player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final String onKill(L2Npc npc, L2PcInstance player, boolean isSummon)
|
||||
{
|
||||
QuestState qs = player.getQuestState(getName());
|
||||
if ((qs == null) || (qs.getState() != State.STARTED))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
// There are lots of mobs walls, and item get is random, it could happen that you dont get the item until the last wall, and there's 4 different silenos groups. 1 enchant comes only from group 2 and the 2nd comes from group 4. Chances, lets say 20% of getting the enchant when killing the
|
||||
// right mob When you kill a mob wall, another mage type appears behind. If all mobs from the front are killed then the ones that are behind are despawned. Also this mobs should be damaged, like with 30% of max HP, because they should be easy to kill.
|
||||
final int cond = qs.getCond();
|
||||
switch (npc.getId())
|
||||
{
|
||||
case VARKA_SILENOS_FOOTMAN:
|
||||
case VARKA_SILENOS_RECRUIT:
|
||||
dropHerb(npc, player, HP_HERBS_DROPLIST);
|
||||
if ((cond == 3) && qs.hasQuestItems(SPEAR) && !qs.hasQuestItems(STAGE1) && (Rnd.get(100) < 5))
|
||||
{
|
||||
qs.giveItems(STAGE1, 1);
|
||||
qs.playSound(QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
}
|
||||
|
||||
// Spawns Mage Type silenos behind the one that was killed.
|
||||
spawnMageBehind(npc, player, VARKA_SILENOS_MEDIUM);
|
||||
|
||||
// Check if all the first row have been killed. Despawn mages.
|
||||
checkIfLastInWall(npc);
|
||||
break;
|
||||
case VARKA_SILENOS_WARRIOR:
|
||||
dropHerb(npc, player, HP_HERBS_DROPLIST);
|
||||
if ((cond == 3) && qs.hasQuestItems(SPEAR) && !qs.hasQuestItems(STAGE1) && (Rnd.get(100) < 10))
|
||||
{
|
||||
qs.giveItems(STAGE1, 1);
|
||||
qs.playSound(QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
}
|
||||
|
||||
// Spawns Mage Type silenos behind the one that was killed.
|
||||
spawnMageBehind(npc, player, VARKA_SILENOS_PRIEST);
|
||||
|
||||
// Check if all the first row have been killed. Despawn mages.
|
||||
checkIfLastInWall(npc);
|
||||
break;
|
||||
case VARKA_ELITE_GUARD:
|
||||
dropHerb(npc, player, HP_HERBS_DROPLIST);
|
||||
if ((cond == 3) && qs.hasQuestItems(SPEAR) && !qs.hasQuestItems(STAGE1) && (Rnd.get(100) < 15))
|
||||
{
|
||||
qs.giveItems(STAGE1, 1);
|
||||
qs.playSound(QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
}
|
||||
|
||||
// Spawns Mage Type silenos behind the one that was killed.
|
||||
spawnMageBehind(npc, player, VARKA_SILENOS_SHAMAN);
|
||||
|
||||
// Check if all the first row have been killed. Despawn mages.
|
||||
checkIfLastInWall(npc);
|
||||
break;
|
||||
case VARKAS_COMMANDER:
|
||||
case VARKA_SILENOS_OFFICER:
|
||||
dropHerb(npc, player, HP_HERBS_DROPLIST);
|
||||
if ((cond == 3) && qs.hasQuestItems(SPEAR) && !qs.hasQuestItems(STAGE1) && (Rnd.get(100) < 25))
|
||||
{
|
||||
qs.giveItems(STAGE1, 1);
|
||||
qs.playSound(QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
}
|
||||
|
||||
// Spawns Mage Type silenos behind the one that was killed.
|
||||
spawnMageBehind(npc, player, VARKA_SILENOS_SEER);
|
||||
|
||||
// Check if all the first row have been killed. Despawn mages.
|
||||
checkIfLastInWall(npc);
|
||||
break;
|
||||
case VARKA_SILENOS_GREAT_MAGUS:
|
||||
case VARKA_SILENOS_GENERAL:
|
||||
dropHerb(npc, player, HP_HERBS_DROPLIST);
|
||||
if ((cond == 3) && qs.hasQuestItems(ENCHSPEAR) && !qs.hasQuestItems(STAGE2) && (Rnd.get(100) < 5))
|
||||
{
|
||||
qs.giveItems(STAGE2, 1);
|
||||
qs.playSound(QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
}
|
||||
|
||||
// Spawns Mage Type silenos behind the one that was killed.
|
||||
spawnMageBehind(npc, player, VARKA_SILENOS_MAGNUS);
|
||||
|
||||
// Check if all the first row have been killed. Despawn mages.
|
||||
checkIfLastInWall(npc);
|
||||
break;
|
||||
case VARKAS_PROPHET:
|
||||
dropHerb(npc, player, HP_HERBS_DROPLIST);
|
||||
if ((cond == 3) && qs.hasQuestItems(ENCHSPEAR) && !qs.hasQuestItems(STAGE2) && (Rnd.get(100) < 10))
|
||||
{
|
||||
qs.giveItems(STAGE2, 1);
|
||||
qs.playSound(QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
}
|
||||
|
||||
// Spawns Mage Type silenos behind the one that was killed.
|
||||
spawnMageBehind(npc, player, DISCIPLE_OF_PROPHET);
|
||||
|
||||
// Check if all the first row have been killed. Despawn mages.
|
||||
checkIfLastInWall(npc);
|
||||
break;
|
||||
case VARKA_SILENOS_HEAD_GUARD:
|
||||
dropHerb(npc, player, HP_HERBS_DROPLIST);
|
||||
if ((cond == 3) && qs.hasQuestItems(ENCHSPEAR) && !qs.hasQuestItems(STAGE2) && (Rnd.get(100) < 20))
|
||||
{
|
||||
qs.giveItems(STAGE2, 1);
|
||||
qs.playSound(QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
}
|
||||
|
||||
// Spawns Mage Type silenos behind the one that was killed.
|
||||
spawnMageBehind(npc, player, VARKA_HEAD_MAGUS);
|
||||
|
||||
// Check if all the first row have been killed. Despawn mages.
|
||||
checkIfLastInWall(npc);
|
||||
break;
|
||||
case PROPHET_GUARD:
|
||||
dropHerb(npc, player, HP_HERBS_DROPLIST);
|
||||
if ((cond == 3) && qs.hasQuestItems(ENCHSPEAR) && !qs.hasQuestItems(STAGE2) && (Rnd.get(100) < 25))
|
||||
{
|
||||
qs.giveItems(STAGE2, 1);
|
||||
qs.playSound(QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
}
|
||||
|
||||
// Spawns Mage Type silenos behind the one that was killed.
|
||||
spawnMageBehind(npc, player, VARKA_SILENOS_GREAT_SEER);
|
||||
|
||||
// Check if all the first row have been killed. Despawn mages.
|
||||
checkIfLastInWall(npc);
|
||||
break;
|
||||
case LATANA:
|
||||
qs.set("cond", "4");
|
||||
qs.playSound(QuestSound.ITEMSOUND_QUEST_MIDDLE);
|
||||
|
||||
// Spawns Ketra Orc Supporter.
|
||||
addSpawn(KETRA_ORC_SUPPORTER2, npc.getX(), npc.getY(), npc.getZ(), npc.getHeading(), false, 0, false, npc.getInstanceId());
|
||||
break;
|
||||
case ANTYLOPE_1:
|
||||
case ANTYLOPE_2:
|
||||
case ANTYLOPE_3:
|
||||
case FLAVA:
|
||||
dropItem(npc, player);
|
||||
break;
|
||||
default:
|
||||
// hardcoded herb drops.
|
||||
dropHerb(npc, player, HP_HERBS_DROPLIST);
|
||||
dropHerb(npc, player, MP_HERBS_DROPLIST);
|
||||
break;
|
||||
}
|
||||
return super.onKill(npc, player, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onSpawn(L2Npc npc)
|
||||
{
|
||||
if (npc instanceof L2MonsterInstance)
|
||||
{
|
||||
for (int mobId : WALL_MONSTERS)
|
||||
{
|
||||
// Every monster on pailaka should be Aggresive and Active, with the same clan, also wall mobs cannot move, they all use magic from far, and if you get in combat range they hit.
|
||||
if (mobId == npc.getId())
|
||||
{
|
||||
final L2MonsterInstance monster = (L2MonsterInstance) npc;
|
||||
monster.setIsImmobilized(true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return super.onSpawn(npc);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onEnterZone(L2Character character, L2ZoneType zone)
|
||||
{
|
||||
if ((character instanceof L2PcInstance) && !character.isDead() && !character.isTeleporting() && ((L2PcInstance) character).isOnline())
|
||||
{
|
||||
InstanceWorld world = InstanceManager.getInstance().getWorld(character.getInstanceId());
|
||||
if ((world != null) && (world.getTemplateId() == INSTANCE_ID))
|
||||
{
|
||||
// If a player wants to go by a mob wall without kill it, he will be returned back to a spawn point.
|
||||
final int[] zoneTeleport = NOEXIT_ZONES.get(zone.getId());
|
||||
if (zoneTeleport != null)
|
||||
{
|
||||
final Collection<L2Character> knowns = character.getKnownList().getKnownCharactersInRadius(700);
|
||||
for (L2Character npcs : knowns)
|
||||
{
|
||||
if (!(npcs instanceof L2Npc))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (npcs.isDead())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
teleportPlayer(character.getActingPlayer(), zoneTeleport, world.getInstanceId());
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return super.onEnterZone(character, zone);
|
||||
}
|
||||
|
||||
// Spawns Mage Type silenos behind the one that was killed. Aggro against the player that kill the mob.
|
||||
private final void spawnMageBehind(L2Npc npc, L2PcInstance player, int mageId)
|
||||
{
|
||||
final double rads = Math.toRadians(Util.convertHeadingToDegree(npc.getSpawn().getHeading()) + 180);
|
||||
final int mageX = (int) (npc.getX() + (150 * Math.cos(rads)));
|
||||
final int mageY = (int) (npc.getY() + (150 * Math.sin(rads)));
|
||||
final L2Npc mageBack = addSpawn(mageId, mageX, mageY, npc.getZ(), npc.getSpawn().getHeading(), false, 0, true, npc.getInstanceId());
|
||||
mageBack.getAI().notifyEvent(CtrlEvent.EVT_AGGRESSION, player, 1000);
|
||||
}
|
||||
|
||||
// This function will check if there is other mob alive in this wall of mobs. If all mobs in the first row are dead then despawn the second row mobs, the mages.
|
||||
private final void checkIfLastInWall(L2Npc npc)
|
||||
{
|
||||
final Collection<L2Character> knowns = npc.getKnownList().getKnownCharactersInRadius(700);
|
||||
for (L2Character npcs : knowns)
|
||||
{
|
||||
if (!(npcs instanceof L2Npc))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (npcs.isDead())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
final L2Npc knownNpc = (L2Npc) npcs;
|
||||
|
||||
switch (npc.getId())
|
||||
{
|
||||
case VARKA_SILENOS_FOOTMAN:
|
||||
case VARKA_SILENOS_RECRUIT:
|
||||
case VARKA_SILENOS_WARRIOR:
|
||||
switch (knownNpc.getId())
|
||||
{
|
||||
case VARKA_SILENOS_FOOTMAN:
|
||||
case VARKA_SILENOS_RECRUIT:
|
||||
case VARKA_SILENOS_WARRIOR:
|
||||
return;
|
||||
}
|
||||
break;
|
||||
case VARKA_ELITE_GUARD:
|
||||
case VARKAS_COMMANDER:
|
||||
case VARKA_SILENOS_OFFICER:
|
||||
switch (knownNpc.getId())
|
||||
{
|
||||
case VARKA_ELITE_GUARD:
|
||||
case VARKAS_COMMANDER:
|
||||
case VARKA_SILENOS_OFFICER:
|
||||
return;
|
||||
}
|
||||
break;
|
||||
case VARKA_SILENOS_GREAT_MAGUS:
|
||||
case VARKA_SILENOS_GENERAL:
|
||||
case VARKAS_PROPHET:
|
||||
switch (knownNpc.getId())
|
||||
{
|
||||
case VARKA_SILENOS_GREAT_MAGUS:
|
||||
case VARKA_SILENOS_GENERAL:
|
||||
case VARKAS_PROPHET:
|
||||
return;
|
||||
}
|
||||
break;
|
||||
case VARKA_SILENOS_HEAD_GUARD:
|
||||
case PROPHET_GUARD:
|
||||
switch (knownNpc.getId())
|
||||
{
|
||||
case VARKA_SILENOS_HEAD_GUARD:
|
||||
case PROPHET_GUARD:
|
||||
return;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// We didnt find any mob on the first row alive, so despawn the second row mobs.
|
||||
for (L2Character npcs : knowns)
|
||||
{
|
||||
if (!(npcs instanceof L2Npc))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (npcs.isDead())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
final L2Npc knownNpc = (L2Npc) npcs;
|
||||
|
||||
switch (npc.getId())
|
||||
{
|
||||
case VARKA_SILENOS_FOOTMAN:
|
||||
case VARKA_SILENOS_RECRUIT:
|
||||
case VARKA_SILENOS_WARRIOR:
|
||||
switch (knownNpc.getId())
|
||||
{
|
||||
case VARKA_SILENOS_MEDIUM:
|
||||
case VARKA_SILENOS_PRIEST:
|
||||
knownNpc.abortCast();
|
||||
knownNpc.deleteMe();
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case VARKA_ELITE_GUARD:
|
||||
case VARKAS_COMMANDER:
|
||||
case VARKA_SILENOS_OFFICER:
|
||||
switch (knownNpc.getId())
|
||||
{
|
||||
case VARKA_SILENOS_SHAMAN:
|
||||
case VARKA_SILENOS_SEER:
|
||||
knownNpc.abortCast();
|
||||
knownNpc.deleteMe();
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case VARKA_SILENOS_GREAT_MAGUS:
|
||||
case VARKA_SILENOS_GENERAL:
|
||||
case VARKAS_PROPHET:
|
||||
switch (knownNpc.getId())
|
||||
{
|
||||
case VARKA_SILENOS_MAGNUS:
|
||||
case DISCIPLE_OF_PROPHET:
|
||||
knownNpc.abortCast();
|
||||
knownNpc.deleteMe();
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case VARKA_SILENOS_HEAD_GUARD:
|
||||
case PROPHET_GUARD:
|
||||
switch (knownNpc.getId())
|
||||
{
|
||||
case VARKA_HEAD_MAGUS:
|
||||
case VARKA_SILENOS_GREAT_SEER:
|
||||
knownNpc.abortCast();
|
||||
knownNpc.deleteMe();
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static final class Teleport implements Runnable
|
||||
{
|
||||
private final L2Character _char;
|
||||
private final int _instanceId;
|
||||
|
||||
public Teleport(L2Character c, int id)
|
||||
{
|
||||
_char = c;
|
||||
_instanceId = id;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run()
|
||||
{
|
||||
try
|
||||
{
|
||||
teleportPlayer((L2PcInstance) _char, TELEPORT, _instanceId);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static class PailakaDrop
|
||||
{
|
||||
private final int _itemId;
|
||||
private final int _chance;
|
||||
|
||||
public PailakaDrop(int itemId, int chance)
|
||||
{
|
||||
_itemId = itemId;
|
||||
_chance = chance;
|
||||
}
|
||||
|
||||
public int getItemID()
|
||||
{
|
||||
return _itemId;
|
||||
}
|
||||
|
||||
public int getChance()
|
||||
{
|
||||
return _chance;
|
||||
}
|
||||
}
|
||||
|
||||
private static final void dropHerb(L2Npc mob, L2PcInstance player, int[][] drop)
|
||||
{
|
||||
final int chance = Rnd.get(100);
|
||||
for (int[] element : drop)
|
||||
{
|
||||
if (chance < element[2])
|
||||
{
|
||||
((L2MonsterInstance) mob).dropItem(player, element[0], element[1]);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static final void dropItem(L2Npc mob, L2PcInstance player)
|
||||
{
|
||||
// To make random drops, we shuffle the droplist every time its used.
|
||||
Collections.shuffle(DROPLIST);
|
||||
for (PailakaDrop pd : DROPLIST)
|
||||
{
|
||||
if (Rnd.get(100) < pd.getChance())
|
||||
{
|
||||
((L2MonsterInstance) mob).dropItem(player, pd.getItemID(), Rnd.get(1, 6));
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static void giveBuff(L2Npc npc, L2PcInstance player, int skillId, int level)
|
||||
{
|
||||
npc.setTarget(player);
|
||||
npc.doCast(SkillData.getInstance().getSkill(skillId, level));
|
||||
buff_counter--;
|
||||
return;
|
||||
}
|
||||
|
||||
protected static final void teleportPlayer(L2PcInstance player, int[] coords, int instanceId)
|
||||
{
|
||||
player.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
||||
player.setInstanceId(instanceId);
|
||||
player.teleToLocation(coords[0], coords[1], coords[2], true);
|
||||
}
|
||||
|
||||
private final synchronized void enterInstance(L2PcInstance player)
|
||||
{
|
||||
// Check for existing instances for this player.
|
||||
InstanceWorld world = InstanceManager.getInstance().getPlayerWorld(player);
|
||||
if (world != null)
|
||||
{
|
||||
if (world.getTemplateId() != INSTANCE_ID)
|
||||
{
|
||||
player.sendPacket(SystemMessageId.YOU_HAVE_ENTERED_ANOTHER_INSTANT_ZONE_THEREFORE_YOU_CANNOT_ENTER_CORRESPONDING_DUNGEON);
|
||||
return;
|
||||
}
|
||||
Instance inst = InstanceManager.getInstance().getInstance(world.getInstanceId());
|
||||
if (inst != null)
|
||||
{
|
||||
// Check max summon levels.
|
||||
checkMaxSummonLevel(player);
|
||||
|
||||
teleportPlayer(player, TELEPORT, world.getInstanceId());
|
||||
}
|
||||
}
|
||||
// New instance.
|
||||
else
|
||||
{
|
||||
final int instanceId = InstanceManager.getInstance().createDynamicInstance("PailakaInjuredDragon.xml");
|
||||
|
||||
world = new InstanceWorld();
|
||||
world.setInstanceId(instanceId);
|
||||
world.setTemplateId(INSTANCE_ID);
|
||||
InstanceManager.getInstance().addWorld(world);
|
||||
|
||||
// Check max summon levels.
|
||||
checkMaxSummonLevel(player);
|
||||
|
||||
world.addAllowed(player.getObjectId());
|
||||
teleportPlayer(player, TELEPORT, instanceId);
|
||||
}
|
||||
}
|
||||
|
||||
// Checks if the summon or pet that the player has can be used.
|
||||
private final void checkMaxSummonLevel(L2PcInstance player)
|
||||
{
|
||||
final L2Summon pet = player.getSummon();
|
||||
if (pet instanceof L2PetInstance)
|
||||
{
|
||||
if (pet.getLevel() > MAX_SUMMON_LEVEL)
|
||||
{
|
||||
pet.unSummon(player);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -82,6 +82,7 @@ import quests.Q00140_ShadowFoxPart2.Q00140_ShadowFoxPart2;
|
||||
import quests.Q00141_ShadowFoxPart3.Q00141_ShadowFoxPart3;
|
||||
import quests.Q00142_FallenAngelRequestOfDawn.Q00142_FallenAngelRequestOfDawn;
|
||||
import quests.Q00143_FallenAngelRequestOfDusk.Q00143_FallenAngelRequestOfDusk;
|
||||
import quests.Q00144_PailakaInjuredDragon.Q00144_PailakaInjuredDragon;
|
||||
import quests.Q00146_TheZeroHour.Q00146_TheZeroHour;
|
||||
import quests.Q00147_PathtoBecominganEliteMercenary.Q00147_PathtoBecominganEliteMercenary;
|
||||
import quests.Q00148_PathtoBecominganExaltedMercenary.Q00148_PathtoBecominganExaltedMercenary;
|
||||
@ -370,6 +371,7 @@ public class QuestMasterHandler
|
||||
Q00141_ShadowFoxPart3.class,
|
||||
Q00142_FallenAngelRequestOfDawn.class,
|
||||
Q00143_FallenAngelRequestOfDusk.class,
|
||||
Q00144_PailakaInjuredDragon.class,
|
||||
Q00146_TheZeroHour.class,
|
||||
Q00147_PathtoBecominganEliteMercenary.class,
|
||||
Q00148_PathtoBecominganExaltedMercenary.class,
|
||||
|
@ -3631,8 +3631,8 @@
|
||||
<defence fire="20" water="20" wind="20" earth="20" holy="20" dark="20" />
|
||||
</attribute>
|
||||
<speed>
|
||||
<walk ground="1" />
|
||||
<run ground="80" />
|
||||
<walk ground="0" />
|
||||
<run ground="0" />
|
||||
</speed>
|
||||
</stats>
|
||||
<status undying="false" canBeSown="true" />
|
||||
|
57
trunk/dist/game/data/zones/custom_script.xml
vendored
57
trunk/dist/game/data/zones/custom_script.xml
vendored
@ -240,4 +240,61 @@
|
||||
<node X="-114536" Y="257336" />
|
||||
<node X="-114520" Y="257496" />
|
||||
</zone>
|
||||
<!-- Pailaka Injured Dragon. No exit zones for mob walls -->
|
||||
<zone name="Pailaka Injured Dragon 1" id="200001" type="ScriptZone" shape="NPoly" minZ="-3500" maxZ="-2000">
|
||||
<node X="117769" Y="-46202" />
|
||||
<node X="117828" Y="-46590" />
|
||||
<node X="121923" Y="-46364" />
|
||||
<node X="121763" Y="-44674" />
|
||||
</zone>
|
||||
<zone name="Pailaka Injured Dragon 2" id="200002" type="ScriptZone" shape="NPoly" minZ="-3500" maxZ="-2000">
|
||||
<node X="115970" Y="-45694" />
|
||||
<node X="115620" Y="-46220" />
|
||||
<node X="115593" Y="-46683" />
|
||||
<node X="116477" Y="-47716" />
|
||||
<node X="115839" Y="-46610" />
|
||||
<node X="115819" Y="-46203" />
|
||||
</zone>
|
||||
<zone name="Pailaka Injured Dragon 3" id="200003" type="ScriptZone" shape="NPoly" minZ="-3500" maxZ="-2000">
|
||||
<node X="116346" Y="-49927" />
|
||||
<node X="115202" Y="-50560" />
|
||||
<node X="115330" Y="-50608" />
|
||||
<node X="116347" Y="-50083" />
|
||||
</zone>
|
||||
<zone name="Pailaka Injured Dragon 4" id="200004" type="ScriptZone" shape="NPoly" minZ="-3500" maxZ="-2000">
|
||||
<node X="117275" Y="-51185" />
|
||||
<node X="116018" Y="-51776" />
|
||||
<node X="116278" Y="-52213" />
|
||||
<node X="117526" Y="-51052" />
|
||||
</zone>
|
||||
<zone name="Pailaka Injured Dragon 5" id="200005" type="ScriptZone" shape="NPoly" minZ="-3500" maxZ="-2000">
|
||||
<node X="111137" Y="-43445" />
|
||||
<node X="111187" Y="-44394" />
|
||||
<node X="111392" Y="-44275" />
|
||||
<node X="111355" Y="-43370" />
|
||||
</zone>
|
||||
<zone name="Pailaka Injured Dragon 6" id="200006" type="ScriptZone" shape="NPoly" minZ="-3000" maxZ="-1500">
|
||||
<node X="108768" Y="-45613" />
|
||||
<node X="109882" Y="-47555" />
|
||||
<node X="110229" Y="-47049" />
|
||||
<node X="108917" Y="-45580" />
|
||||
</zone>
|
||||
<zone name="Pailaka Injured Dragon 7" id="200007" type="ScriptZone" shape="NPoly" minZ="-3500" maxZ="-2000">
|
||||
<node X="115979" Y="-55112" />
|
||||
<node X="115753" Y="-56598" />
|
||||
<node X="116242" Y="-56532" />
|
||||
<node X="116211" Y="-55042" />
|
||||
</zone>
|
||||
<zone name="Pailaka Injured Dragon 8" id="200008" type="ScriptZone" shape="NPoly" minZ="-3500" maxZ="-2000">
|
||||
<node X="108467" Y="-40835" />
|
||||
<node X="108533" Y="-41590" />
|
||||
<node X="108666" Y="-41584" />
|
||||
<node X="108623" Y="-40839" />
|
||||
</zone>
|
||||
<zone name="Pailaka Injured Dragon 9" id="200009" type="ScriptZone" shape="NPoly" minZ="-2500" maxZ="-1500">
|
||||
<node X="110456" Y="-39399" />
|
||||
<node X="109835" Y="-39410" />
|
||||
<node X="109830" Y="-39550" />
|
||||
<node X="110457" Y="-39540" />
|
||||
</zone>
|
||||
</list>
|
Loading…
Reference in New Issue
Block a user