Mystic Tavern, Story of Freya addition.

Contributed by gigilo1968.
This commit is contained in:
MobiusDev 2019-02-11 08:41:11 +00:00
parent 2086a5e86f
commit e30dd45963
170 changed files with 6828 additions and 726 deletions

View File

@ -1,4 +0,0 @@
<html><body>Mystic Summoning Crystal:<br>
A blue crystal. You can summon an employee by pressing on the crystal.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Quest">"So if I press this..."</button>
</body></html>

View File

@ -0,0 +1,166 @@
<?xml version="1.0" encoding="UTF-8"?>
<instance id="261" maxWorlds="100" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../xsd/instance.xsd">
<time duration="60" empty="0" />
<removeBuffs type="ALL" />
<locations>
<enter type="FIXED">
<location x="212440" y="-46728" z="-11225" />
</enter>
<exit type="FIXED" >
<location x="-50152" y="-148232" z="-14181" />
</exit>
</locations>
<parameters>
<param name="1_st_door" value="26160602" />
</parameters>
<reenter apply="ON_ENTER">
<reset day="WEDNESDAY" hour="6" minute="30" />
<reset day="SATURDAY" hour="6" minute="30" />
</reenter>
<doorlist>
<door id="26160602"/>
</doorlist>
<spawnlist>
<group name="general" spawnByDefault="true">
<npc id="34171" x="213077" y="-49260" z="-11225" heading="22517" /> <!-- Melisa -->
<npc id="34172" x="212936" y="-49260" z="-11225" heading="7855" /> <!-- Sayan -->
</group>
<group name="helper" spawnByDefault="true">
<npc id="34173" x="213096" y="-47704" z="-11225" heading="16383" /> <!-- Kanna -->
<npc id="34174" x="212309" y="-43139" z="-880" heading="0" /> <!-- Sirra -->
</group>
<group name="monsters" spawnByDefault="true">
<npc id="23724" x="216904" y="-41912" z="-1126" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="216760" y="-41784" z="-1131" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="217048" y="-41784" z="-1166" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="217208" y="-41688" z="-1208" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="217240" y="-41448" z="-1248" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="221352" y="-39384" z="-2758" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="221320" y="-39320" z="-2757" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="221224" y="-39080" z="-2758" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="223784" y="-40200" z="-2798" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="223640" y="-40280" z="-2798" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="223688" y="-40360" z="-2798" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="223800" y="-40360" z="-2798" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="224168" y="-42056" z="-2785" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="224280" y="-41928" z="-2772" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="224104" y="-41928" z="-2786" heading="0" /> <!-- Buffalo -->
<npc id="23725" x="223080" y="-38664" z="-2720" heading="0" /> <!-- Ursus -->
<npc id="23725" x="223624" y="-40104" z="-2791" heading="0" /> <!-- Ursus -->
<npc id="23725" x="218104" y="-39896" z="-1756" heading="0" /> <!-- Ursus -->
<npc id="23725" x="218056" y="-39784" z="-1748" heading="0" /> <!-- Ursus -->
<npc id="23686" x="219416" y="-41032" z="-2166" heading="0" /> <!-- Frost Glacier Golem -->
<npc id="23686" x="216904" y="-39880" z="-1358" heading="0" /> <!-- Frost Glacier Golem -->
<npc id="23686" x="224616" y="-38552" z="-2814" heading="0" /> <!-- Frost Glacier Golem -->
<npc id="23686" x="225976" y="-38760" z="-2813" heading="0" /> <!-- Frost Glacier Golem -->
<npc id="23686" x="218696" y="-48984" z="-2344" heading="0" /> <!-- Frost Glacier Golem -->
<npc id="23686" x="226264" y="-51032" z="-2622" heading="0" /> <!-- Frost Glacier Golem -->
<npc id="23686" x="226686" y="-41711" z="-2776" heading="0" /> <!-- Frost Glacier Golem -->
<npc id="23686" x="222306" y="-44947" z="-2600" heading="0" /> <!-- Frost Glacier Golem -->
<npc id="23686" x="219492" y="-49018" z="-2312" heading="0" /> <!-- Frost Glacier Golem -->
<npc id="23686" x="226160" y="-45974" z="-2768" heading="0" /> <!-- Frost Glacier Golem -->
<npc id="23686" x="223808" y="-48315" z="-2624" heading="0" /> <!-- Frost Glacier Golem -->
<npc id="23687" x="221976" y="-51944" z="-2610" heading="0" /> <!-- Frost Glacier Golem -->
<npc id="23688" x="219896" y="-41496" z="-2175" heading="0" /> <!-- Frost Knight -->
<npc id="23688" x="220136" y="-41112" z="-2199" heading="0" /> <!-- Frost Knight -->
<npc id="23688" x="222184" y="-38024" z="-2731" heading="0" /> <!-- Frost Knight -->
<npc id="23688" x="222488" y="-38168" z="-2723" heading="0" /> <!-- Frost Knight -->
<npc id="23719" x="225720" y="-40792" z="-2792" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="225688" y="-41064" z="-2788" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="225704" y="-41336" z="-2789" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="225912" y="-41576" z="-2798" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="226648" y="-41528" z="-2809" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="226712" y="-41128" z="-2799" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="226360" y="-40936" z="-2799" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="226152" y="-41240" z="-2803" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="226264" y="-41432" z="-2807" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="226264" y="-41432" z="-2807" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="219976" y="-46808" z="-2369" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="219800" y="-46728" z="-2364" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="219448" y="-46632" z="-2345" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="219016" y="-46664" z="-2339" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="219032" y="-46984" z="-2344" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="219320" y="-47256" z="-2346" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="219080" y="-47448" z="-2345" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="218808" y="-47768" z="-2339" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="218776" y="-48040" z="-2338" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="218840" y="-48456" z="-2341" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="219128" y="-48536" z="-2345" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="219592" y="-48216" z="-2351" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="225496" y="-45000" z="-2783" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="225704" y="-44808" z="-2801" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="226152" y="-44792" z="-2799" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="226104" y="-45016" z="-2800" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="226408" y="-45240" z="-2799" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="226328" y="-45496" z="-2802" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="226120" y="-45544" z="-2799" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="226120" y="-45544" z="-2799" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="222312" y="-47848" z="-2604" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="222360" y="-47896" z="-2612" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="222536" y="-47992" z="-2627" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="222792" y="-48008" z="-2637" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="223000" y="-47912" z="-2640" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="222952" y="-48008" z="-2644" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="223592" y="-50584" z="-2609" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="223512" y="-50744" z="-2612" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="222776" y="-50648" z="-2619" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="222600" y="-50632" z="-2620" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="222376" y="-50600" z="-2624" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="222232" y="-50664" z="-2630" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="222072" y="-50920" z="-2651" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="222248" y="-50984" z="-2636" heading="0" /> <!-- Frozen Knight -->
<npc id="23722" x="221672" y="-43976" z="-2678" heading="0" /> <!-- Frost Buffalo -->
<npc id="23722" x="221080" y="-45080" z="-2619" heading="0" /> <!-- Frost Buffalo -->
<npc id="23722" x="222360" y="-46136" z="-2616" heading="0" /> <!-- Frost Buffalo -->
</group>
<group name="knight" spawnByDefault="false">
<npc id="23703" x="212199" y="-43251" z="-840" heading="6357" /> <!-- Ice Knight -->
<npc id="34175" x="212161" y="-43295" z="-840" heading="8782" /> <!-- Knight -->
<npc id="34175" x="212248" y="-43291" z="-840" heading="527" /> <!-- Knight -->
<npc id="34175" x="212186" y="-43200" z="-840" heading="49418" /> <!-- Knight -->
</group>
<group name="knightSolo" spawnByDefault="false">
<npc id="23703" x="223304" y="-42488" z="-2783" heading="0" /> <!-- Ice Knight -->
<npc id="34175" x="214152" y="-42200" z="-861" heading="0" /> <!-- Knight -->
<npc id="34175" x="214440" y="-42344" z="-917" heading="0" /> <!-- Knight -->
<npc id="34175" x="214440" y="-42376" z="-917" heading="0" /> <!-- Knight -->
</group>
<group name="buffalo" spawnByDefault="false">
<npc id="23724" x="226568" y="-40936" z="-2804" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="226664" y="-41240" z="-2806" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="226552" y="-41400" z="-2807" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="226472" y="-41352" z="-2808" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="226152" y="-41096" z="-2806" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="225896" y="-41064" z="-2806" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="225608" y="-41016" z="-2808" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="225416" y="-41064" z="-2798" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="225688" y="-41512" z="-2798" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="225848" y="-41832" z="-2800" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="226040" y="-41992" z="-2798" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="226264" y="-41432" z="-2807" heading="0" /> <!-- Buffalo -->
<npc id="23725" x="226760" y="-40872" z="-2798" heading="0" /> <!-- Ursus -->
</group>
<group name="panthera" spawnByDefault="false">
<npc id="23720" x="219656" y="-48616" z="-2345" heading="0" /> <!-- Panthera -->
<npc id="23720" x="219800" y="-48696" z="-2350" heading="0" /> <!-- Panthera -->
<npc id="23720" x="219352" y="-48824" z="-2340" heading="0" /> <!-- Panthera -->
<npc id="23720" x="219160" y="-48824" z="-2341" heading="0" /> <!-- Panthera -->
<npc id="23720" x="218936" y="-48568" z="-2340" heading="0" /> <!-- Panthera -->
<npc id="23720" x="218872" y="-48232" z="-2338" heading="0" /> <!-- Panthera -->
<npc id="23720" x="218696" y="-47768" z="-2338" heading="0" /> <!-- Panthera -->
<npc id="23720" x="218680" y="-47528" z="-2338" heading="0" /> <!-- Panthera -->
<npc id="23720" x="218952" y="-47240" z="-2342" heading="0" /> <!-- Panthera -->
<npc id="23720" x="219352" y="-47064" z="-2345" heading="0" /> <!-- Panthera -->
</group>
<group name="ursus" spawnByDefault="false">
<npc id="23723" x="225160" y="-50712" z="-2593" heading="0" /> <!-- Frost Ursus -->
<npc id="23723" x="224808" y="-50536" z="-2598" heading="0" /> <!-- Frost Ursus -->
<npc id="23723" x="224104" y="-49544" z="-2609" heading="0" /> <!-- Frost Ursus -->
<npc id="23723" x="224312" y="-49016" z="-2616" heading="0" /> <!-- Frost Ursus -->
<npc id="23723" x="224120" y="-48616" z="-2655" heading="0" /> <!-- Frost Ursus -->
</group>
<group name="freya" spawnByDefault="false">
<npc id="23689" x="213032" y="-49256" z="-11230" heading="0" /> <!-- Freya -->
</group>
</spawnlist>
</instance>

View File

@ -0,0 +1,3 @@
<html><body>Mystic Summoning Crystal:<br>
You are not the party leader.
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Mystic Summoning Crystal:<br>
Someone on your party is too low level to listen to a story like this.
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Mystic Summoning Crystal:<br>
You need a party to tell a story.
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Mystic Summoning Crystal:<br>
All party members must have completed the <font color="LEVEL">Grand Opening! Come to Our Pub!</font> quest.
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Mystic Summoning Crystal:<br>
You already told some stories, come back later.
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Mystic Summoning Crystal:<br>
You need more people to tell a story.
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Mystic Summoning Crystal:<br>
All members must sit on a chair to start with the story.
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Mystic Summoning Crystal:<br>
A blue crystal. You can start telling a story by pressing on the crystal.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest MysticTavern tellStory">"So if I press this..."</Button>
</body></html>

View File

@ -0,0 +1,147 @@
/*
* 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.MysticTavern;
import java.util.ArrayList;
import java.util.List;
import com.l2jmobius.gameserver.instancemanager.InstanceManager;
import com.l2jmobius.gameserver.model.L2Party;
import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.quest.QuestState;
import ai.AbstractNpcAI;
import instances.MysticTavern.StoryOfFreya.StoryOfFreya;
import quests.Q10297_GrandOpeningComeToOurPub.Q10297_GrandOpeningComeToOurPub;
/**
* This AI manages the entry to the Mystic Tavern instances.
* @URL https://l2wiki.com/Mystic_Tavern
* @VIDEO FREYA: https://www.youtube.com/watch?v=-pUB6ghrsLI
* @VIDEO TAUTI: https://www.youtube.com/watch?v=_Wz-kxXzJK4
* @VIDEO KELBIM: https://www.youtube.com/watch?v=wL1D49u6vxE
* @author Mobius
*/
public class MysticTavern extends AbstractNpcAI
{
// NPC
private static final int GLOBE = 34200;
// Instances
private static final int INSTANCE_FREYA = 261;
// private static final int INSTANCE_TAUTI = 262;
// private static final int INSTANCE_KELBIM = 263;
// Misc
private static final int MINIMUM_PLAYER_LEVEL = 99;
private static final int MINIMUM_PARTY_MEMBERS = 5;
public MysticTavern()
{
addFirstTalkId(GLOBE);
}
@Override
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
if (event.equals("tellStory"))
{
final List<Integer> availableInstances = new ArrayList<>();
availableInstances.add(INSTANCE_FREYA);
// availableInstances.add(INSTANCE_TAUTI);
// availableInstances.add(INSTANCE_KELBIM);
if (!player.isGM())
{
final L2Party party = player.getParty();
if (party == null)
{
return "34200-no-party.html";
}
if (party.getLeader() != player)
{
return "34200-no-leader.html";
}
if (party.getMemberCount() < MINIMUM_PARTY_MEMBERS)
{
return "34200-not-enough-members.html";
}
for (L2PcInstance member : party.getMembers())
{
if ((member == null) || !member.isSitting() || (member.calculateDistance3D(player) > 500))
{
return "34200-not-sitting.html";
}
if (member.getLevel() < MINIMUM_PLAYER_LEVEL)
{
return "34200-no-level.html";
}
final QuestState qs = member.getQuestState(Q10297_GrandOpeningComeToOurPub.class.getSimpleName());
if ((qs == null) || !qs.isCompleted())
{
return "34200-no-quest.html";
}
if (InstanceManager.getInstance().getInstanceTime(member, INSTANCE_FREYA) > 0)
{
availableInstances.remove(INSTANCE_FREYA);
}
// if (InstanceManager.getInstance().getInstanceTime(member, INSTANCE_TAUTI) > 0)
// {
// availableInstances.remove(INSTANCE_TAUTI);
// }
// if (InstanceManager.getInstance().getInstanceTime(member, INSTANCE_KELBIM) > 0)
// {
// availableInstances.remove(INSTANCE_KELBIM);
// }
}
if (availableInstances.isEmpty())
{
return "34200-not-available.html";
}
}
// enter randomly
switch (availableInstances.get(getRandom(availableInstances.size())))
{
case INSTANCE_FREYA:
{
player.processQuestEvent(StoryOfFreya.class.getSimpleName(), "start_story");
break;
}
// case INSTANCE_TAUTI:
// {
// player.processQuestEvent(StoryOfTauti.class.getSimpleName(), "start_story");
// break;
// }
// case INSTANCE_KELBIM:
// {
// player.processQuestEvent(StoryOfKelbim.class.getSimpleName(), "start_story");
// break;
// }
}
}
return null;
}
@Override
public String onFirstTalk(L2Npc npc, L2PcInstance player)
{
return "34200.html";
}
public static void main(String[] args)
{
new MysticTavern();
}
}

View File

@ -0,0 +1,4 @@
<html><body>Sage Sayan:<br>
Are you a traveler? I was in need of some help. Glad to see you here.<br>
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest StoryOfFreya 34172-02.html">"I can help."</Button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Sage Sayan:<br>
I used to have a rare treasure. It's a crystal filled with cold energy. I was showing it to the Princess, but I dropped it and the cold energy engulfed her.<br>
The cold has been affecting her. I have to help her out, but can't leave her side. <br>
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest StoryOfFreya 34172-03.html">"What do you need to do?"</Button>
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>Sage Sayan:<br>
The crystal is special, so even if it breaks, you can make a crystal with the shards. Once the crystal is made, it will gain back its power, so as long as we get the shards, we can save the Princess by taking out all the cold energy from her.<br>
The problem is that the crystal shards are scattered around the Labyrinth... I can't leave this place, since I have to watch over the Princess. Do you think you can help? I can send you to the Labyrinth to collect the Ice Crystal Shards.<br>
Please keep in mind that I can't send all of you at once. Come to me one by one, and I'll send you.<br>
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest StoryOfFreya startInstance">"Alright, please send me to the Summer Labyrinth."</Button>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Sage Sayan:<br>
Someone hasn't given me the shard yet. Please wait until I get all of them.
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>Sayan:<br>
Hello, there. I'm Sayan.<br>
People call me a sage, but please just refer to me as Sayan. I'm staying by Princess Melissa's side, to tell her about the things that go around in the world.<br>
Issues do arise, but the Princess likes to hear about the world.<br>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h Quest StoryOfFreya 34172-06.html">Quest</Button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Sayan:<br>
Oh! You've found all the shards. I'll take care of the rest.<br>
Princess Melissa has been in pain for a long time, so it won't be easy to heal her, but I'm sure that if everyone stays around to watch her get better, she'll feel better soon.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest StoryOfFreya startFreya">"Let's get started."</Button>
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>Sayan:<br>
Hello, there. I'm Sayan.<br>
People call me a sage, but please just refer to me as Sayan. I'm staying by Princess Melissa's side, to tell her about the things that go around in the world.<br>
Issues do arise, but the Princess likes to hear about the world.<br>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h Quest StoryOfFreya 34172-01.html">Quest</Button>
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>Knight Captain Kanna:<br>
Hello, this is Princess Melissa's castle. The door is closed, so I can't go in, but the Princess has been making painful noises. Have you finished already?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest StoryOfFreya openDoor">"I would like to go inside."</Button><br>
If you haven't finished Sayan's request, I can send you to the old Summer Labyrinth.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest StoryOfFreya summerLabirynth">"Yes, I would like to go the old Summer Labyrinth."</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Knight Captain Kanna:<br>
There's someone out of range. Please gather around me to go meet Princess Melissa.<br>
I'll open the door once you gather around.
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Knight Captain Kanna:<br>
It looks like you aren't the party leader, or aren't part of party either. I can only help the party leader.
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Knight Captain Kanna:<br>
Hello, this is Princess Melissa's castle. How can I help you?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest StoryOfFreya openDoor">"I would like to go inside."</Button>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Sirra:<br>
You can't fool me. You must be a party leader for me to help you out.
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Sirra:<br>
Princess Melissa... always making my life more difficult. But I guess that's my job.<br>
What brings you here, traveler? Did you finish?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest StoryOfFreya backCastle">"I want to go back to the castle."</Button>
</body></html>

View File

@ -0,0 +1,473 @@
/*
* 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.MysticTavern.StoryOfFreya;
import java.util.List;
import com.l2jmobius.Config;
import com.l2jmobius.gameserver.enums.Movie;
import com.l2jmobius.gameserver.instancemanager.QuestManager;
import com.l2jmobius.gameserver.instancemanager.ZoneManager;
import com.l2jmobius.gameserver.model.L2Party;
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.FriendlyNpcInstance;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.instancezone.Instance;
import com.l2jmobius.gameserver.model.quest.Quest;
import com.l2jmobius.gameserver.model.quest.QuestState;
import com.l2jmobius.gameserver.model.zone.type.L2ScriptZone;
import com.l2jmobius.gameserver.network.NpcStringId;
import com.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import com.l2jmobius.gameserver.network.serverpackets.OnEventTrigger;
import instances.AbstractInstance;
import quests.Q00835_PitiableMelisa.Q00835_PitiableMelisa;
/**
* Mystic Tavern Freya Instance
* @author Gigi
* @date 2019-02-05 - [19:54:29]
*/
public class StoryOfFreya extends AbstractInstance
{
// NPCs
private static final int SAYAN = 34172;
private static final int KANNA = 34173;
private static final int SYRRA = 34174;
private static final int FREYA = 23689;
private static final int ICE_KNIGHT = 23703;
private static final int KNIGHT = 34175;
private static final int FROST_GOLEM = 23686;
private static final int FROST_KNIGHT = 23688;
private static final int GLACIER_GOLEM = 23718;
private static final int GLACIER_FROSTBRINGER = 23687;
// Other
private static final int TEMPLATE_ID = 261;
private static final int ICE_CRYSTAL_SHARD = 46594;
private static final Location CASTLE_TELEPORT = new Location(212410, -46728, -11225);
private static final Location LABIRYNTH_TELEPORT = new Location(213145, -43145, -872);
private static final L2ScriptZone FIRST_SPAWN_ZONE = ZoneManager.getInstance().getZoneById(80013, L2ScriptZone.class);
private static final L2ScriptZone SECOND_SPAWN_ZONE = ZoneManager.getInstance().getZoneById(80014, L2ScriptZone.class);
private static final L2ScriptZone THRID_SPAWN_ZONE = ZoneManager.getInstance().getZoneById(80015, L2ScriptZone.class);
private static final L2ScriptZone FOURTH_SPAWN_ZONE = ZoneManager.getInstance().getZoneById(80016, L2ScriptZone.class);
private static final L2ScriptZone FIFTH_SPAWN_ZONE = ZoneManager.getInstance().getZoneById(80017, L2ScriptZone.class);
private static final L2ScriptZone SIXTH_SPAWN_ZONE = ZoneManager.getInstance().getZoneById(80018, L2ScriptZone.class);
private static final int FREYA_SNOW = 26160228;
public StoryOfFreya()
{
super(TEMPLATE_ID);
addTalkId(SAYAN, KANNA, SYRRA);
addFirstTalkId(SAYAN, KANNA, SYRRA);
addSpawnId(FREYA, ICE_KNIGHT);
addAttackId(FROST_GOLEM, GLACIER_FROSTBRINGER, FREYA);
addKillId(ICE_KNIGHT, FROST_GOLEM, GLACIER_FROSTBRINGER, FREYA);
}
@Override
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
String htmltext = null;
final Instance world = npc.getInstanceWorld();
if (isInInstance(world))
{
switch (event)
{
case "34172-02.html":
case "34172-03.html":
{
htmltext = event;
break;
}
case "34172-01.html":
{
if (!player.isInParty() || !player.getParty().isLeader(player))
{
htmltext = "34172-04.html";
break;
}
htmltext = event;
break;
}
case "34172-06.html":
{
if (!player.isInParty() || !player.getParty().isLeader(player))
{
htmltext = "34172-04.html";
break;
}
final L2Party party = player.getParty();
final List<L2PcInstance> members = party.getMembers();
for (L2PcInstance member : members)
{
if (member.isInsideRadius3D(npc, Config.ALT_PARTY_RANGE))
{
QuestProgress(npc, member);
}
}
htmltext = event;
break;
}
case "start_story":
{
player.standUp();
enterInstance(player, null, TEMPLATE_ID);
if (player.getParty() != null)
{
for (L2PcInstance member : player.getParty().getMembers())
{
if (member != player)
{
member.standUp();
member.teleToLocation(player, player.getInstanceWorld());
}
}
}
break;
}
case "startInstance":
{
if (player.isInParty())
{
final L2Party party = player.getParty();
final List<L2PcInstance> members = party.getMembers();
for (L2PcInstance member : members)
{
if (member.isInsideRadius3D(npc, Config.ALT_PARTY_RANGE))
{
member.teleToLocation(LABIRYNTH_TELEPORT, world.getTemplateId());
world.setStatus(1);
QuestProgress(npc, member);
}
}
if (getRandom(10) < 5)
{
world.spawnGroup("knight");
world.broadcastPacket(new ExShowScreenMessage(NpcStringId.ICE_KNIGHTS_GOT_IN_DEFEAT_THE_ICE_KNIGHTS, ExShowScreenMessage.TOP_CENTER, 20000, true));
}
else
{
world.spawnGroup("knightSolo");
}
}
break;
}
case "openDoor":
{
if (world.isStatus(0))
{
if (!player.isInParty() || !player.getParty().isLeader(player))
{
htmltext = "34173-03.html";
break;
}
if (player.isInParty())
{
final L2Party party = player.getParty();
final List<L2PcInstance> members = party.getMembers();
for (L2PcInstance member : members)
{
if ((member == null) || (member.calculateDistance3D(npc) > 300))
{
htmltext = "34173-02.html";
break;
}
}
}
world.openCloseDoor(world.getTemplateParameters().getInt("1_st_door"), true);
startQuestTimer("closeDoor", 60000, npc, null);
break;
}
else if (world.getStatus() > 0)
{
if (player.getInventory().getInventoryItemCount(ICE_CRYSTAL_SHARD, -1) == 10)
{
world.openCloseDoor(world.getTemplateParameters().getInt("1_st_door"), true);
startQuestTimer("closeDoor", 30000, npc, null);
break;
}
htmltext = "34173-03.html";
break;
}
}
case "closeDoor":
{
world.openCloseDoor(world.getTemplateParameters().getInt("1_st_door"), false);
break;
}
case "summerLabirynth":
{
player.teleToLocation(LABIRYNTH_TELEPORT, world.getTemplateId());
break;
}
case "backCastle":
{
if (!player.isInParty() || !player.getParty().isLeader(player))
{
htmltext = "34174-01.html";
break;
}
if (player.isInParty())
{
final L2Party party = player.getParty();
final List<L2PcInstance> members = party.getMembers();
for (L2PcInstance member : members)
{
if (member.isInsideRadius3D(npc, Config.ALT_PARTY_RANGE))
{
player.teleToLocation(CASTLE_TELEPORT, world.getTemplateId());
}
}
}
break;
}
case "startFreya":
{
world.despawnGroup("general");
playMovie(world.getPlayers(), Movie.EPIC_FREYA_SCENE);
startQuestTimer("freyaSpawn", 20000, npc, null);
break;
}
case "freyaSpawn":
{
world.spawnGroup("freya");
world.broadcastPacket(new OnEventTrigger(FREYA_SNOW, true));
break;
}
case "startAttack":
{
for (final L2Npc nearby : L2World.getInstance().getVisibleObjectsInRange(npc, FriendlyNpcInstance.class, 300))
{
if (nearby.getId() == KNIGHT)
{
nearby.setIsInvul(true);
npc.reduceCurrentHp(1, nearby, null);
nearby.reduceCurrentHp(1, npc, null);
addAttackDesire(nearby, npc);
}
}
break;
}
case "finishInstance":
{
world.finishInstance(0);
break;
}
}
}
return htmltext;
}
@Override
public String onAttack(L2Npc npc, L2PcInstance attacker, int damage, boolean isSummon)
{
final Instance world = npc.getInstanceWorld();
if (isInInstance(world))
{
switch (npc.getId())
{
case FROST_GOLEM:
{
if ((FIRST_SPAWN_ZONE.isInsideZone(npc) || SIXTH_SPAWN_ZONE.isInsideZone(npc)) && (npc.isScriptValue(0)))
{
npc.setScriptValue(1);
for (int i = 0; i < 6; i++)
{
final L2Npc knight = addSpawn(FROST_KNIGHT, npc.getX() + getRandom(-100, 100), npc.getY() + getRandom(-100, 100), npc.getZ(), getRandom(64000), false, 300000, false, world.getId());
addAttackPlayerDesire(knight, attacker);
}
}
if (THRID_SPAWN_ZONE.isInsideZone(npc) && (npc.isScriptValue(0)))
{
npc.setScriptValue(1);
for (int a = 0; a < 8; a++)
{
final L2Npc golem = addSpawn(GLACIER_GOLEM, npc.getX() + getRandom(-100, 100), npc.getY() + getRandom(-100, 100), npc.getZ(), getRandom(64000), false, 300000, false, world.getId());
addAttackPlayerDesire(golem, attacker);
}
}
break;
}
case GLACIER_FROSTBRINGER:
{
if (npc.isScriptValue(0))
{
npc.setScriptValue(1);
for (int b = 0; b < 4; b++)
{
final L2Npc knight = addSpawn(FROST_KNIGHT, npc.getX() + getRandom(-100, 100), npc.getY() + getRandom(-100, 100), npc.getZ(), getRandom(64000), false, 300000, false, world.getId());
addAttackPlayerDesire(knight, attacker);
}
}
break;
}
case FREYA:
{
if (npc.isScriptValue(0))
{
npc.setScriptValue(1);
for (int c = 0; c < 6; c++)
{
final L2Npc knight = addSpawn(FROST_KNIGHT, npc.getX() + getRandom(-100, 100), npc.getY() + getRandom(-100, 100), npc.getZ(), getRandom(64000), false, 300000, false, world.getId());
addAttackPlayerDesire(knight, attacker);
}
}
break;
}
}
}
return super.onAttack(npc, attacker, damage, isSummon);
}
@Override
public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon)
{
final Instance world = npc.getInstanceWorld();
if (isInInstance(world))
{
switch (npc.getId())
{
case FROST_GOLEM:
{
if (SECOND_SPAWN_ZONE.isInsideZone(npc))
{
world.spawnGroup("buffalo");
}
if (FOURTH_SPAWN_ZONE.isInsideZone(npc) && (world.getStatus() == 1))
{
world.setStatus(2);
world.broadcastPacket(new ExShowScreenMessage(NpcStringId.AN_INTENSE_COLD_IS_COMING_LOOK_AROUND, ExShowScreenMessage.TOP_CENTER, 7000, true));
world.spawnGroup("panthera");
}
if (FIFTH_SPAWN_ZONE.isInsideZone(npc))
{
world.spawnGroup("ursus");
}
break;
}
case GLACIER_FROSTBRINGER:
{
addSpawn(SYRRA, npc, false, 120000, false, world.getId());
break;
}
case FREYA:
{
startQuestTimer("finishInstance", 5000, npc, null);
if (player.isInParty())
{
final L2Party party = player.getParty();
final List<L2PcInstance> members = party.getMembers();
for (L2PcInstance member : members)
{
if (member.isInsideRadius3D(npc, Config.ALT_PARTY_RANGE))
{
QuestProgress(npc, member);
}
}
}
break;
}
}
}
return super.onKill(npc, player, isSummon);
}
@Override
public String onSpawn(L2Npc npc)
{
final Instance world = npc.getInstanceWorld();
if (isInInstance(world))
{
switch (npc.getId())
{
case FREYA:
{
npc.setCurrentHp(npc.getMaxHp() / 2);
break;
}
case ICE_KNIGHT:
{
startQuestTimer("startAttack", 2000, npc, null);
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 SAYAN:
{
if (world.isStatus(0))
{
htmltext = "34172.html";
break;
}
htmltext = "34172-05.html";
break;
}
case KANNA:
{
if (world.isStatus(0))
{
htmltext = "34173.html";
break;
}
htmltext = "34173-01.html";
break;
}
case SYRRA:
{
htmltext = "34174.html";
break;
}
}
}
return htmltext;
}
protected void QuestProgress(L2Npc npc, L2PcInstance player)
{
final QuestState qs = player.getQuestState(Q00835_PitiableMelisa.class.getSimpleName());
if ((qs != null) && qs.isStarted())
{
final Quest qs835 = QuestManager.getInstance().getQuest(Q00835_PitiableMelisa.class.getSimpleName());
if (qs835 != null)
{
qs835.notifyEvent("NOTIFY_Q835", npc, player);
}
}
}
public static void main(String[] args)
{
new StoryOfFreya();
}
}

View File

@ -23,7 +23,6 @@
824 Attack the Command Post
833 Devil's Treasure, Tauti
834 Against Dragonclaw
835 Pitiable Melisa
10352 Legacy of Cruma Tower
10357 Altar of Blood that Awakens Destruction
10374 That Place Succubus

View File

@ -0,0 +1,6 @@
<html><body>Mystic Tavern Owner Settlen:<br>
Did you hear Princess Melissa's story? Such a pity.<br>
From what I heard... Sage Sayan is not human. Well, I'm not sure what he is.<br>
Princess Melissa isn't the only one who's suffered like that, though. Even her maid, Sirra was affected by it. Anyway, was the story fun?<br>
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q00835_PitiableMelisa 34180-02.html">"Yes, thank you"</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Mystic Tavern Owner Settlen:<br>
Thank you for listening to our stories with such great interest. Here's a small gift for you.<br>
Please come by often and let's all have a great time again.
</body></html>

View File

@ -0,0 +1,157 @@
/*
* 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 quests.Q00835_PitiableMelisa;
import com.l2jmobius.Config;
import com.l2jmobius.gameserver.enums.Movie;
import com.l2jmobius.gameserver.enums.QuestType;
import com.l2jmobius.gameserver.model.actor.L2Character;
import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.quest.Quest;
import com.l2jmobius.gameserver.model.quest.QuestState;
import com.l2jmobius.gameserver.model.quest.State;
/**
* Pitiable Melisa (835)
* @URL https://l2wiki.com/Pitiable_Melisa
* @author Gigi
* @date 2019-02-04 - [23:59:06]
*/
public class Q00835_PitiableMelisa extends Quest
{
// NPCs
private static final int KANNA = 34173;
private static final int SETTLEN = 34180;
// Monsters
private static final int[] MONSTERS =
{
23686, // Frost Glacier Golem
23687 // Glacier Golem
};
// Items
private static final int ICE_CRYSTAL_SHARD = 46594;
private static final int FRENZED_TAUTIS_FRAGMENT = 47884;
private static final int INSANE_KELBIMS_FRAGMENT = 47885;
private static final int SOE_MISTYC_TAVERN = 46564;
private static final int MYSTIC_ARMOR_PIACE = 46587;
public Q00835_PitiableMelisa()
{
super(835);
addStartNpc(KANNA);
addTalkId(SETTLEN);
addSeeCreatureId(KANNA);
addKillId(MONSTERS);
registerQuestItems(ICE_CRYSTAL_SHARD);
}
@Override
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
String htmltext = null;
final QuestState qs = getQuestState(player, false);
switch (event)
{
case "NOTIFY_Q835":
{
qs.setCond(qs.getCond() + 1, true);
break;
}
case "34180-02.html":
{
final int chance = getRandom(100);
if (chance <= 10)
{
giveItems(player, FRENZED_TAUTIS_FRAGMENT, 1);
}
else if ((chance > 10) && (chance <= 20))
{
giveItems(player, INSANE_KELBIMS_FRAGMENT, 1);
}
else if ((chance > 20) && (chance <= 50))
{
giveItems(player, MYSTIC_ARMOR_PIACE, 1);
}
else
{
giveItems(player, SOE_MISTYC_TAVERN, 1);
}
addExpAndSp(player, 6_362_541_900L, 15_270_101);
qs.exitQuest(QuestType.REPEATABLE, true);
htmltext = event;
break;
}
}
return htmltext;
}
@Override
public String onTalk(L2Npc npc, L2PcInstance player)
{
String htmltext = getNoQuestMsg(player);
final QuestState qs = getQuestState(player, true);
switch (qs.getState())
{
case State.STARTED:
{
if (qs.isCond(5))
{
htmltext = "34180-01.html";
}
}
}
return htmltext;
}
@Override
public String onSeeCreature(L2Npc npc, L2Character creature, boolean isSummon)
{
final L2PcInstance player = creature.getActingPlayer();
if (player != null)
{
final QuestState qs = getQuestState(player, true);
if (!qs.isStarted())
{
playMovie(player, Movie.EPIC_FREYA_SLIDE);
qs.startQuest();
}
}
return super.onSeeCreature(npc, creature, isSummon);
}
@Override
public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon)
{
executeForEachPlayer(player, npc, isSummon, true, false);
return super.onKill(npc, player, isSummon);
}
@Override
public void actionForEachPlayer(L2PcInstance player, L2Npc npc, boolean isSummon)
{
final QuestState qs = getQuestState(player, false);
if ((qs != null) && qs.isCond(2) && player.isInsideRadius3D(npc, Config.ALT_PARTY_RANGE))
{
if (giveItemRandomly(player, npc, ICE_CRYSTAL_SHARD, 1, 10, 1.0, true))
{
qs.setCond(3, true);
}
}
}
}

View File

@ -221,6 +221,7 @@ import quests.Q00828_EvasBlessing.Q00828_EvasBlessing;
import quests.Q00829_MaphrsSalvation.Q00829_MaphrsSalvation;
import quests.Q00830_TheWayOfTheGiantsPawn.Q00830_TheWayOfTheGiantsPawn;
import quests.Q00831_SayhasScheme.Q00831_SayhasScheme;
import quests.Q00835_PitiableMelisa.Q00835_PitiableMelisa;
import quests.Q00901_HowLavasaurusesAreMade.Q00901_HowLavasaurusesAreMade;
import quests.Q00902_ReclaimOurEra.Q00902_ReclaimOurEra;
import quests.Q00903_TheCallOfAntharas.Q00903_TheCallOfAntharas;
@ -701,6 +702,7 @@ public class QuestMasterHandler
Q00829_MaphrsSalvation.class,
Q00830_TheWayOfTheGiantsPawn.class,
Q00831_SayhasScheme.class,
Q00835_PitiableMelisa.class,
Q00901_HowLavasaurusesAreMade.class,
Q00902_ReclaimOurEra.class,
Q00903_TheCallOfAntharas.class,

View File

@ -3970,39 +3970,73 @@
<height normal="35.25" />
</collision>
</npc>
<npc id="23686" level="100" type="L2Npc" name="Frost Glacier Golem">
<!-- AUTO GENERATED NPC TODO: FIX IT -->
<npc id="23686" level="100" type="L2Monster" name="Frost Glacier Golem">
<parameters>
<skill name="Skill01_ID" id="16551" level="1" />
<skill name="Skill02_ID" id="16552" level="1" />
<skill name="Skill03_ID" id="16553" level="1" />
<param name="Skill01_Probablity" value="500" />
<param name="Skill02_Probablity" value="500" />
<param name="Skill03_Probablity" value="500" />
</parameters>
<race>ELEMENTAL</race>
<sex>FEMALE</sex>
<sex>MALE</sex>
<acquire exp="1528257600" sp="3056600" />
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
<vitals hp="403282" hpRegen="7.5" mp="23928" mpRegen="2.7" />
<vitals hp="3871504.046242775" hpRegen="7.5" mp="36613.0" mpRegen="2.7" />
<attack physical="47619.04761904762" magical="8403.361344537815" random="5" critical="4" accuracy="5" attackSpeed="253" type="FIST" range="40" distance="80" width="120" />
<defence physical="3703.703703703704" magical="2150.537634408602" />
<attribute>
<defence fire="250" water="250" wind="200" earth="250" holy="250" dark="250" />
<attack type="WATER" value="330" />
</attribute>
<speed>
<walk ground="60" />
<run ground="180" />
</speed>
</stats>
<status attackable="false" />
<status attackable="false" randomWalk="false" />
<ai clanHelpRange="800" aggroRange="400">
<clanList>
<clan>FROST_GOLEM</clan>
</clanList>
</ai>
<skillList>
<skill id="5463" level="1" /> <!-- Water Attack -->
<skill id="4416" level="7" /> <!-- Spirits -->
<skill id="16551" level="1" /> <!-- Ice Attack -->
<skill id="16552" level="1" /> <!-- Ice Fist -->
<skill id="16553" level="1" /> <!-- Ice Breath -->
</skillList>
<collision>
<radius normal="50" />
<height normal="47.5" />
</collision>
</npc>
<npc id="23687" level="100" type="L2Npc" name="Frost Glacier Golem" title="Frostbringer">
<npc id="23687" level="100" type="L2Monster" name="Frost Glacier Golem" title="Frostbringer">
<!-- AUTO GENERATED NPC TODO: FIX IT -->
<race>ELEMENTAL</race>
<sex>FEMALE</sex>
<sex>MALE</sex>
<acquire exp="1528257600" sp="3056600" />
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
<vitals hp="403282" hpRegen="7.5" mp="23928" mpRegen="2.7" />
<vitals hp="5032952.023121387" hpRegen="7.5" mp="36613.0" mpRegen="2.7" />
<attack physical="15570.537548504614" magical="9962.751329129412" random="5" critical="4" accuracy="5" attackSpeed="253" type="FIST" range="40" distance="80" width="120" />
<defence physical="2574" magical="1737" />
<attribute>
<defence fire="250" water="250" wind="200" earth="250" holy="250" dark="250" />
<attack type="WATER" value="330" />
</attribute>
<speed>
<walk ground="60" />
<run ground="180" />
</speed>
</stats>
<status attackable="false" />
<status attackable="false" randomWalk="false" />
<ai clanHelpRange="800" aggroRange="400">
<clanList>
<clan>FROST_GOLEM</clan>
</clanList>
</ai>
<skillList>
<skill id="5463" level="1" /> <!-- Water Attack -->
<skill id="4416" level="7" /> <!-- Spirits -->
@ -4012,18 +4046,29 @@
<height normal="72.75" />
</collision>
</npc>
<npc id="23688" level="100" type="L2Npc" name="Frost Knight">
<npc id="23688" level="100" type="L2Monster" name="Frost Knight">
<!-- AUTO GENERATED NPC TODO: FIX IT -->
<race>HUMANOID</race>
<sex>FEMALE</sex>
<sex>MALE</sex>
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
<vitals hp="53771" hpRegen="7.5" mp="23928" mpRegen="2.7" />
<vitals hp="53771.1" hpRegen="7.5" mp="36613" mpRegen="2.7" />
<attack physical="10731.52506" magical="3499.53679" random="10" critical="4" accuracy="4.75" attackSpeed="250" type="POLE" range="80" distance="80" width="120" />
<defence physical="6305.35947" magical="3203.311781207645" />
<attribute>
<defence fire="150" water="150" wind="150" earth="150" holy="150" dark="150" />
<attack type="WATER" value="250" />
</attribute>
<speed>
<walk ground="36" />
<run ground="180" />
</speed>
</stats>
<status attackable="false" />
<ai clanHelpRange="1000" aggroRange="600">
<clanList>
<clan>FROST_GOLEM</clan>
</clanList>
</ai>
<skillList>
<skill id="5463" level="1" /> <!-- Water Attack -->
<skill id="4416" level="6" /> <!-- Humanoids -->
@ -4033,22 +4078,48 @@
<height normal="25" />
</collision>
</npc>
<npc id="23689" level="85" type="L2Npc" name="Freya">
<!-- AUTO GENERATED NPC TODO: FIX IT -->
<race>HUMAN</race>
<npc id="23689" level="102" type="L2Monster" name="Freya">
<parameters>
<skill name="Skill01_ID" id="6278" level="1" />
<skill name="Skill02_ID" id="6279" level="1" />
<param name="Skill01_Probablity" value="1000" />
<param name="Skill02_Probablity" value="500" />
</parameters>
<race>HUMANOID</race>
<sex>FEMALE</sex>
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
<vitals hp="12498818" hpRegen="7.5" mp="47856" mpRegen="2.7" />
<vitals hp="19256267.64705882" hpRegen="7.5" mp="96766" mpRegen="2.7" />
<attack physical="21208.8451812642" magical="5528.31840933477" random="10" critical="4" accuracy="7" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" />
<defence physical="3589.082047322" magical="2193.8" evasion="11" />
<attribute>
<attack type="WATER" value="200" />
<defence fire="150" water="200" wind="200" earth="200" holy="200" dark="200" default="300" />
</attribute>
<speed>
<walk ground="54" />
<run ground="180" />
</speed>
<abnormalResist physical="230" magical="230" />
</stats>
<status attackable="false" />
<status undying="false" />
<skillList>
<skill id="5463" level="1" /> <!-- Water Attack -->
<skill id="4045" level="1" /> <!-- Resist Full Magic Attack -->
<skill id="4408" level="1" /> <!-- HP Increase (1x) -->
<skill id="4409" level="1" /> <!-- MP Increase (1x) -->
<skill id="4410" level="11" /> <!-- Average P. Atk. -->
<skill id="4411" level="11" /> <!-- Average M. Atk. -->
<skill id="4412" level="11" /> <!-- Average P. Def. -->
<skill id="4413" level="11" /> <!-- Average M. Def. -->
<skill id="4414" level="2" /> <!-- Standard Type -->
<skill id="4415" level="3" /> <!-- One-handed Sword -->
<skill id="4416" level="6" /> <!-- Humanoids -->
<skill id="5463" level="1" /> <!-- Water Attacks -->
<skill id="6644" level="1" /> <!-- Ice Queen Freya -->
<skill id="14765" level="4" /> <!-- Blood Siphon Resistance -->
<skill id="6278" level="1" /> <!-- Ice Ball -->
<skill id="6279" level="1" /> <!-- Frozen Storm -->
</skillList>
<exCrtEffect>true</exCrtEffect>
<collision>
<radius normal="22" />
<height normal="55" />

View File

@ -1,7 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../xsd/npcs.xsd">
<npc id="23700" level="85" type="L2Npc" name="Altar Guardian">
<!-- AUTO GENERATED NPC TODO: FIX IT -->
<npc id="23700" level="100" type="L2Npc" name="Altar Guardian">
<race>HUMAN</race>
<sex>FEMALE</sex>
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
@ -10,15 +9,18 @@
<walk ground="60" />
<run ground="240" />
</speed>
<attack physical="23610.1029394933" magical="5767.28134561036" random="10" critical="4" accuracy="5" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" />
<defence physical="3839.95121517957" magical="2066.69244923556" />
<attribute>
<defence fire="150" water="150" wind="150" earth="150" holy="150" dark="150" default="150" />
</attribute>
</stats>
<status attackable="false" />
<collision>
<radius normal="9" />
<height normal="23" />
</collision>
</npc>
<npc id="23701" level="85" type="L2Npc" name="Knight Guard" title="Dragonclaw Clan">
<!-- AUTO GENERATED NPC TODO: FIX IT -->
<npc id="23701" level="100" type="L2Npc" name="Knight Guard" title="Dragonclaw Clan">
<race>HUMAN</race>
<sex>FEMALE</sex>
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
@ -27,15 +29,18 @@
<walk ground="60" />
<run ground="200" />
</speed>
<attack physical="23610.1029394933" magical="5767.28134561036" random="10" critical="4" accuracy="5" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" />
<defence physical="3839.95121517957" magical="2066.69244923556" />
<attribute>
<defence fire="150" water="150" wind="150" earth="150" holy="150" dark="150" default="150" />
</attribute>
</stats>
<status attackable="false" />
<collision>
<radius normal="9" />
<height normal="18" />
</collision>
</npc>
<npc id="23702" level="85" type="L2Npc" name="Duran" title="Dragonclaw Royal Guard">
<!-- AUTO GENERATED NPC TODO: FIX IT -->
<npc id="23702" level="101" type="L2Npc" name="Duran" title="Dragonclaw Royal Guard">
<race>HUMAN</race>
<sex>FEMALE</sex>
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
@ -44,16 +49,19 @@
<walk ground="60" />
<run ground="200" />
</speed>
<attack physical="23610.1029394933" magical="5767.28134561036" random="10" critical="4" accuracy="5" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" />
<defence physical="3839.95121517957" magical="2066.69244923556" />
<attribute>
<defence fire="150" water="150" wind="150" earth="150" holy="150" dark="150" default="150" />
</attribute>
</stats>
<status attackable="false" />
<collision>
<radius normal="9" />
<height normal="23" />
</collision>
</npc>
<npc id="23703" level="85" type="L2Npc" name="Ice Knight" title="Winter Omen">
<!-- AUTO GENERATED NPC TODO: FIX IT -->
<race>HUMAN</race>
<npc id="23703" level="101" type="L2Npc" name="Ice Knight" title="Winter Omen">
<race>HUMANOID</race>
<sex>FEMALE</sex>
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
<vitals hp="403282" hpRegen="7.5" mp="23928" mpRegen="2.7" />
@ -61,8 +69,12 @@
<walk ground="20" />
<run ground="180" />
</speed>
<attack physical="23610.1029394933" magical="5767.28134561036" random="10" critical="4" accuracy="5" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" />
<defence physical="3839.95121517957" magical="2066.69244923556" />
<attribute>
<defence fire="150" water="150" wind="150" earth="150" holy="150" dark="150" default="150" />
</attribute>
</stats>
<status attackable="false" />
<skillList>
<skill id="5463" level="1" /> <!-- Water Attack -->
<skill id="4416" level="6" /> <!-- Humanoids -->
@ -72,9 +84,8 @@
<height normal="31" />
</collision>
</npc>
<npc id="23704" level="85" type="L2Npc" name="Ifrit" title="Master of Flames">
<!-- AUTO GENERATED NPC TODO: FIX IT -->
<race>HUMAN</race>
<npc id="23704" level="101" type="L2Npc" name="Ifrit" title="Master of Flames">
<race>ELEMENTAL</race>
<sex>FEMALE</sex>
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
<vitals hp="418660" hpRegen="7.5" mp="47856" mpRegen="2.7" />
@ -82,8 +93,12 @@
<walk ground="38" />
<run ground="180" />
</speed>
<attack physical="23610.1029394933" magical="5767.28134561036" random="10" critical="4" accuracy="5" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" />
<defence physical="3839.95121517957" magical="2066.69244923556" />
<attribute>
<defence fire="150" water="150" wind="150" earth="150" holy="150" dark="150" default="150" />
</attribute>
</stats>
<status attackable="false" />
<skillList>
<skill id="5462" level="1" /> <!-- Fire Attack -->
<skill id="4416" level="7" /> <!-- Spirits -->
@ -93,9 +108,8 @@
<height normal="55" />
</collision>
</npc>
<npc id="23705" level="85" type="L2Npc" name="Arimanes" title="Master of Flames">
<!-- AUTO GENERATED NPC TODO: FIX IT -->
<race>HUMAN</race>
<npc id="23705" level="101" type="L2Npc" name="Arimanes" title="Master of Flames">
<race>DEMONIC</race>
<sex>FEMALE</sex>
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
<vitals hp="418660" hpRegen="7.5" mp="47856" mpRegen="2.7" />
@ -103,8 +117,12 @@
<walk ground="35" />
<run ground="180" />
</speed>
<attack physical="23610.1029394933" magical="5767.28134561036" random="10" critical="4" accuracy="5" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" />
<defence physical="3839.95121517957" magical="2066.69244923556" />
<attribute>
<defence fire="150" water="150" wind="150" earth="150" holy="150" dark="150" default="150" />
</attribute>
</stats>
<status attackable="false" />
<skillList>
<skill id="5462" level="1" /> <!-- Fire Attack -->
<skill id="4416" level="9" /> <!-- Demons -->
@ -114,8 +132,7 @@
<height normal="57.75" grown="69" />
</collision>
</npc>
<npc id="23706" level="85" type="L2Npc" name="Kelbim's Follower">
<!-- AUTO GENERATED NPC TODO: FIX IT -->
<npc id="23706" level="100" type="L2Npc" name="Kelbim's Follower">
<race>HUMAN</race>
<sex>FEMALE</sex>
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
@ -124,15 +141,18 @@
<walk ground="60" />
<run ground="200" />
</speed>
<attack physical="23610.1029394933" magical="5767.28134561036" random="10" critical="4" accuracy="5" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" />
<defence physical="3839.95121517957" magical="2066.69244923556" />
<attribute>
<defence fire="150" water="150" wind="150" earth="150" holy="150" dark="150" default="150" />
</attribute>
</stats>
<status attackable="false" />
<collision>
<radius normal="7.5" />
<height normal="24" />
</collision>
</npc>
<npc id="23707" level="85" type="L2Npc" name="Kelbim's Follower">
<!-- AUTO GENERATED NPC TODO: FIX IT -->
<npc id="23707" level="100" type="L2Npc" name="Kelbim's Follower">
<race>HUMAN</race>
<sex>FEMALE</sex>
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
@ -141,15 +161,18 @@
<walk ground="60" />
<run ground="200" />
</speed>
<attack physical="23610.1029394933" magical="5767.28134561036" random="10" critical="4" accuracy="5" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" />
<defence physical="3839.95121517957" magical="2066.69244923556" />
<attribute>
<defence fire="150" water="150" wind="150" earth="150" holy="150" dark="150" default="150" />
</attribute>
</stats>
<status attackable="false" />
<collision>
<radius normal="7" />
<height normal="27" />
</collision>
</npc>
<npc id="23708" level="85" type="L2Npc" name="Kelbim's Follower">
<!-- AUTO GENERATED NPC TODO: FIX IT -->
<npc id="23708" level="100" type="L2Npc" name="Kelbim's Follower">
<race>HUMAN</race>
<sex>FEMALE</sex>
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
@ -158,16 +181,19 @@
<walk ground="60" />
<run ground="200" />
</speed>
<attack physical="23610.1029394933" magical="5767.28134561036" random="10" critical="4" accuracy="5" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" />
<defence physical="3839.95121517957" magical="2066.69244923556" />
<attribute>
<defence fire="150" water="150" wind="150" earth="150" holy="150" dark="150" default="150" />
</attribute>
</stats>
<status attackable="false" />
<collision>
<radius normal="9" />
<height normal="18" />
</collision>
</npc>
<npc id="23709" level="85" type="L2Npc" name="Flame Scarab">
<!-- AUTO GENERATED NPC TODO: FIX IT -->
<race>HUMAN</race>
<npc id="23709" level="100" type="L2Npc" name="Flame Scarab">
<race>BUG</race>
<sex>FEMALE</sex>
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
<vitals hp="215084" hpRegen="7.5" mp="23928" mpRegen="2.7" />
@ -175,8 +201,12 @@
<walk ground="45" />
<run ground="180" />
</speed>
<attack physical="23610.1029394933" magical="5767.28134561036" random="10" critical="4" accuracy="5" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" />
<defence physical="3839.95121517957" magical="2066.69244923556" />
<attribute>
<defence fire="150" water="150" wind="150" earth="150" holy="150" dark="150" default="150" />
</attribute>
</stats>
<status attackable="false" />
<skillList>
<skill id="5462" level="1" /> <!-- Fire Attack -->
<skill id="4416" level="12" /> <!-- Bugs -->
@ -186,8 +216,7 @@
<height normal="22" />
</collision>
</npc>
<npc id="23710" level="85" type="L2Npc" name="Knight Guardian">
<!-- AUTO GENERATED NPC TODO: FIX IT -->
<npc id="23710" level="100" type="L2Npc" name="Knight Guardian">
<race>HUMAN</race>
<sex>FEMALE</sex>
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
@ -196,15 +225,18 @@
<walk ground="60" />
<run ground="200" />
</speed>
<attack physical="23610.1029394933" magical="5767.28134561036" random="10" critical="4" accuracy="5" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" />
<defence physical="3839.95121517957" magical="2066.69244923556" />
<attribute>
<defence fire="150" water="150" wind="150" earth="150" holy="150" dark="150" default="150" />
</attribute>
</stats>
<status attackable="false" />
<collision>
<radius normal="7.5" />
<height normal="24" />
</collision>
</npc>
<npc id="23711" level="85" type="L2Npc" name="Altar Guardian Soldier">
<!-- AUTO GENERATED NPC TODO: FIX IT -->
<npc id="23711" level="100" type="L2Npc" name="Altar Guardian Soldier">
<race>HUMAN</race>
<sex>FEMALE</sex>
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
@ -213,32 +245,39 @@
<walk ground="60" />
<run ground="200" />
</speed>
<attack physical="23610.1029394933" magical="5767.28134561036" random="10" critical="4" accuracy="5" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" />
<defence physical="3839.95121517957" magical="2066.69244923556" />
<attribute>
<defence fire="150" water="150" wind="150" earth="150" holy="150" dark="150" default="150" />
</attribute>
</stats>
<status attackable="false" />
<collision>
<radius normal="7" />
<height normal="27" />
</collision>
</npc>
<npc id="23712" level="85" type="L2Npc" name="Altar Guardian Archer">
<!-- AUTO GENERATED NPC TODO: FIX IT -->
<npc id="23712" level="100" type="L2Npc" name="Altar Guardian Archer">
<race>HUMAN</race>
<sex>FEMALE</sex>
<equipment rhand="15302" />
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
<vitals hp="53771" hpRegen="7.5" mp="23928" mpRegen="2.7" />
<speed>
<walk ground="60" />
<run ground="200" />
</speed>
<attack physical="23610.1029394933" magical="5767.28134561036" random="10" critical="4" accuracy="5" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" />
<defence physical="3839.95121517957" magical="2066.69244923556" />
<attribute>
<defence fire="150" water="150" wind="150" earth="150" holy="150" dark="150" default="150" />
</attribute>
</stats>
<status attackable="false" />
<collision>
<radius normal="7.5" />
<height normal="24" />
</collision>
</npc>
<npc id="23713" level="85" type="L2Npc" name="Altar Guardian Wizard">
<!-- AUTO GENERATED NPC TODO: FIX IT -->
<npc id="23713" level="100" type="L2Npc" name="Altar Guardian Wizard">
<race>HUMAN</race>
<sex>FEMALE</sex>
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
@ -247,8 +286,12 @@
<walk ground="60" />
<run ground="200" />
</speed>
<attack physical="23610.1029394933" magical="5767.28134561036" random="10" critical="4" accuracy="5" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" />
<defence physical="3839.95121517957" magical="2066.69244923556" />
<attribute>
<defence fire="150" water="150" wind="150" earth="150" holy="150" dark="150" default="150" />
</attribute>
</stats>
<status attackable="false" />
<collision>
<radius normal="6.5" />
<height normal="22.5" />
@ -288,8 +331,7 @@
<height normal="25" />
</collision>
</npc>
<npc id="23716" level="85" type="L2Npc" name="Wild Hog Cannon">
<!-- AUTO GENERATED NPC TODO: FIX IT -->
<npc id="23716" level="100" type="L2Npc" name="Wild Hog Cannon">
<race>HUMAN</race>
<sex>FEMALE</sex>
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
@ -298,15 +340,18 @@
<walk ground="10" />
<run ground="200" />
</speed>
<attack physical="23610.1029394933" magical="5767.28134561036" random="10" critical="4" accuracy="5" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" />
<defence physical="3839.95121517957" magical="2066.69244923556" />
<attribute>
<defence fire="150" water="150" wind="150" earth="150" holy="150" dark="150" default="150" />
</attribute>
</stats>
<status attackable="false" />
<collision>
<radius normal="46.5" />
<height normal="43.5" />
</collision>
</npc>
<npc id="23717" level="85" type="L2Npc" name="Siege Golem">
<!-- AUTO GENERATED NPC TODO: FIX IT -->
<npc id="23717" level="100" type="L2Npc" name="Siege Golem">
<race>HUMAN</race>
<sex>FEMALE</sex>
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
@ -315,8 +360,12 @@
<walk ground="70" />
<run ground="180" />
</speed>
<attack physical="23610.1029394933" magical="5767.28134561036" random="10" critical="4" accuracy="5" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" />
<defence physical="3839.95121517957" magical="2066.69244923556" />
<attribute>
<defence fire="150" water="150" wind="150" earth="150" holy="150" dark="150" default="150" />
</attribute>
</stats>
<status attackable="false" />
<collision>
<radius normal="50" />
<height normal="68" />
@ -344,17 +393,27 @@
<height normal="37.4" />
</collision>
</npc>
<npc id="23719" level="85" type="L2Npc" name="Frozen Knight">
<npc id="23719" level="100" type="L2Monster" name="Frozen Knight">
<race>HUMANOID</race>
<sex>MALE</sex>
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
<vitals hp="53771" hpRegen="7.5" mp="23928" mpRegen="2.7" />
<vitals hp="53771.1" hpRegen="7.5" mp="23928.0" mpRegen="2.7" />
<attack physical="23610.1029394933" magical="5767.28134561036" random="10" critical="4" accuracy="5" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" />
<defence physical="6839.95121517957" magical="3066.69244923556" />
<attribute>
<defence fire="150" water="150" wind="150" earth="150" holy="150" dark="150" default="150" />
</attribute>
<speed>
<walk ground="36" />
<run ground="180" />
</speed>
</stats>
<status attackable="false" />
<ai clanHelpRange="1000" aggroRange="600">
<clanList>
<clan>FROST_GOLEM</clan>
</clanList>
</ai>
<skillList>
<skill id="5463" level="1" /> <!-- Water Attack -->
<skill id="4416" level="6" /> <!-- Humanoids -->
@ -364,18 +423,35 @@
<height normal="25" />
</collision>
</npc>
<npc id="23720" level="85" type="L2Npc" name="Panthera">
<npc id="23720" level="100" type="L2Monster" name="Panthera">
<!-- AUTO GENERATED NPC TODO: FIX IT -->
<race>HUMAN</race>
<parameters>
<param name="MoveAroundSocial" value="120" />
<param name="MoveAroundSocial1" value="30" />
<param name="MoveAroundSocial2" value="120" />
<param name="SoulShot" value="100" />
<param name="SoulShotRate" value="10" />
<param name="SpiritShot" value="100" />
<param name="SpiritShotRate" value="5" />
<param name="LongRangeGuardRate" value="5" />
</parameters>
<race>BEAST</race>
<sex>FEMALE</sex>
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
<vitals hp="15841" hpRegen="7.5" mp="2355" mpRegen="2.7" />
<vitals hp="15841.04046242775" hpRegen="7.5" mp="2355.0" mpRegen="2.7" />
<attack physical="5731.52506" magical="1499.53679" random="50" critical="1" accuracy="9" attackSpeed="253" type="BLUNT" range="40" distance="80" width="120" />
<defence physical="4305.35947" magical="1203.311781207645" />
<speed>
<walk ground="60" />
<run ground="180" />
</speed>
</stats>
<status attackable="false" />
<ai clanHelpRange="400" aggroRange="100">
<clanList>
<clan>FROST_ANIMAL</clan>
</clanList>
</ai>
<skillList>
<skill id="5463" level="1" /> <!-- Water Attack -->
<skill id="4416" level="3" /> <!-- Beast -->
@ -385,12 +461,27 @@
<height normal="28" />
</collision>
</npc>
<npc id="23721" level="85" type="L2Npc" name="Maze Buffalo">
<npc id="23721" level="100" type="L2Npc" name="Maze Buffalo">
<!-- AUTO GENERATED NPC TODO: FIX IT -->
<race>HUMAN</race>
<parameters>
<param name="MoveAroundSocial" value="120" />
<param name="MoveAroundSocial1" value="30" />
<param name="MoveAroundSocial2" value="120" />
<param name="SoulShot" value="100" />
<param name="SoulShotRate" value="10" />
<param name="SpiritShot" value="100" />
<param name="SpiritShotRate" value="5" />
<param name="LongRangeGuardRate" value="5" />
</parameters>
<race>BEAST</race>
<sex>FEMALE</sex>
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
<vitals hp="15841" hpRegen="7.5" mp="2355" mpRegen="2.7" />
<vitals hp="15841.7282909073" hpRegen="7.5" mp="2355.0" mpRegen="2.7" />
<attack physical="23610.1029394933" magical="5767.28134561036" random="10" critical="4" accuracy="5" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" />
<defence physical="3839.95121517957" magical="2066.69244923556" />
<attribute>
<defence fire="150" water="150" wind="150" earth="150" holy="150" dark="150" default="150" />
</attribute>
<speed>
<walk ground="20" />
<run ground="180" />
@ -406,12 +497,24 @@
<height normal="31" grown="38" />
</collision>
</npc>
<npc id="23722" level="85" type="L2Npc" name="Frost Buffalo">
<npc id="23722" level="100" type="L2Monster" name="Frost Buffalo">
<!-- AUTO GENERATED NPC TODO: FIX IT -->
<race>HUMAN</race>
<parameters>
<param name="MoveAroundSocial" value="120" />
<param name="MoveAroundSocial1" value="30" />
<param name="MoveAroundSocial2" value="120" />
<param name="SoulShot" value="100" />
<param name="SoulShotRate" value="10" />
<param name="SpiritShot" value="100" />
<param name="SpiritShotRate" value="5" />
<param name="LongRangeGuardRate" value="5" />
</parameters>
<race>BEAST</race>
<sex>FEMALE</sex>
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
<vitals hp="15841" hpRegen="7.5" mp="2355" mpRegen="2.7" />
<vitals hp="15841.7282909073" hpRegen="7.5" mp="2355.0" mpRegen="2.7" />
<attack physical="15731.52506" magical="1499.53679" random="50" critical="1" accuracy="9" attackSpeed="253" type="BLUNT" range="40" distance="80" width="120" />
<defence physical="5305.35947" magical="1203.311781207645" />
<speed>
<walk ground="20" />
<run ground="180" />
@ -427,9 +530,19 @@
<height normal="34.7" />
</collision>
</npc>
<npc id="23723" level="85" type="L2Npc" name="Frost Ursus">
<npc id="23723" level="100" type="L2Npc" name="Frost Ursus">
<!-- AUTO GENERATED NPC TODO: FIX IT -->
<race>HUMAN</race>
<parameters>
<param name="MoveAroundSocial" value="120" />
<param name="MoveAroundSocial1" value="30" />
<param name="MoveAroundSocial2" value="120" />
<param name="SoulShot" value="100" />
<param name="SoulShotRate" value="10" />
<param name="SpiritShot" value="100" />
<param name="SpiritShotRate" value="5" />
<param name="LongRangeGuardRate" value="5" />
</parameters>
<race>ANIMAL</race>
<sex>FEMALE</sex>
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
<vitals hp="15841" hpRegen="7.5" mp="2355" mpRegen="2.7" />
@ -437,8 +550,18 @@
<walk ground="40" />
<run ground="180" />
</speed>
<attack physical="23610.1029394933" magical="5767.28134561036" random="10" critical="4" accuracy="5" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" />
<defence physical="3839.95121517957" magical="2066.69244923556" />
<attribute>
<defence fire="150" water="150" wind="150" earth="150" holy="150" dark="150" default="150" />
</attribute>
</stats>
<status attackable="false" />
<ai clanHelpRange="400" aggroRange="100">
<clanList>
<clan>FROST_ANIMAL</clan>
</clanList>
</ai>
<skillList>
<skill id="5463" level="1" /> <!-- Water Attack -->
<skill id="4416" level="4" /> <!-- Animals -->
@ -448,18 +571,34 @@
<height normal="40" />
</collision>
</npc>
<npc id="23724" level="85" type="L2Npc" name="Buffalo">
<!-- AUTO GENERATED NPC TODO: FIX IT -->
<race>HUMAN</race>
<sex>FEMALE</sex>
<npc id="23724" level="100" type="L2Monster" name="Buffalo">
<parameters>
<param name="MoveAroundSocial" value="120" />
<param name="MoveAroundSocial1" value="30" />
<param name="MoveAroundSocial2" value="120" />
<param name="SoulShot" value="100" />
<param name="SoulShotRate" value="10" />
<param name="SpiritShot" value="100" />
<param name="SpiritShotRate" value="5" />
<param name="LongRangeGuardRate" value="5" />
</parameters>
<race>BEAST</race>
<sex>MALE</sex>
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
<vitals hp="15841" hpRegen="7.5" mp="2355" mpRegen="2.7" />
<vitals hp="15841.04046242775" hpRegen="7.5" mp="2355.0" mpRegen="2.7" />
<attack physical="5731.52506" magical="1499.53679" random="50" critical="1" accuracy="9" attackSpeed="253" type="BLUNT" range="40" distance="80" width="120" />
<defence physical="4305.35947" magical="1203.311781207645" />
<speed>
<walk ground="80" />
<run ground="180" />
</speed>
</stats>
<status attackable="false" />
<ai clanHelpRange="400" aggroRange="100">
<clanList>
<clan>FROST_ANIMAL</clan>
</clanList>
</ai>
<skillList>
<skill id="5463" level="1" /> <!-- Water Attack -->
<skill id="4416" level="3" /> <!-- Beast -->
@ -469,18 +608,34 @@
<height normal="31" grown="38" />
</collision>
</npc>
<npc id="23725" level="85" type="L2Npc" name="Ursus">
<!-- AUTO GENERATED NPC TODO: FIX IT -->
<race>HUMAN</race>
<sex>FEMALE</sex>
<npc id="23725" level="100" type="L2Monster" name="Ursus">
<parameters>
<param name="MoveAroundSocial" value="120" />
<param name="MoveAroundSocial1" value="30" />
<param name="MoveAroundSocial2" value="120" />
<param name="SoulShot" value="100" />
<param name="SoulShotRate" value="10" />
<param name="SpiritShot" value="100" />
<param name="SpiritShotRate" value="5" />
<param name="LongRangeGuardRate" value="5" />
</parameters>
<race>ANIMAL</race>
<sex>MALE</sex>
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
<vitals hp="15841" hpRegen="7.5" mp="2355" mpRegen="2.7" />
<vitals hp="15841.7282909073" hpRegen="7.5" mp="2355.0" mpRegen="2.7" />
<attack physical="5731.52506" magical="1499.53679" random="50" critical="1" accuracy="9" attackSpeed="253" type="BLUNT" range="40" distance="80" width="120" />
<defence physical="4305.35947" magical="1203.311781207645" />
<speed>
<walk ground="40" />
<run ground="180" />
</speed>
</stats>
<status attackable="false" />
<ai clanHelpRange="400" aggroRange="100">
<clanList>
<clan>FROST_ANIMAL</clan>
</clanList>
</ai>
<skillList>
<skill id="5463" level="1" /> <!-- Water Attack -->
<skill id="4416" level="4" /> <!-- Animals -->
@ -490,12 +645,17 @@
<height normal="40" />
</collision>
</npc>
<npc id="23726" level="85" type="L2Npc" name="Frost Glacier Golem">
<npc id="23726" level="100" type="L2Monster" name="Frost Glacier Golem">
<!-- AUTO GENERATED NPC TODO: FIX IT -->
<race>HUMAN</race>
<sex>FEMALE</sex>
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
<vitals hp="524266" hpRegen="7.5" mp="23928" mpRegen="2.7" />
<vitals hp="524266.0" hpRegen="7.5" mp="23928.0" mpRegen="2.7" />
<attack physical="23610.1029394933" magical="5767.28134561036" random="10" critical="4" accuracy="5" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" />
<defence physical="3839.95121517957" magical="2066.69244923556" />
<attribute>
<defence fire="150" water="150" wind="150" earth="150" holy="150" dark="150" default="150" />
</attribute>
<speed>
<walk ground="60" />
<run ground="180" />

View File

@ -431,7 +431,7 @@
<knockDown>true</knockDown>
</effect>
<effect name="BlockActions">
<allowedSkills>10279;10517;10025;10776;11770;1904;11264;11093;13314;1912</allowedSkills>
<allowedSkills>10279;10517;10025;10776;11770;1904;11264;11093;13314;1912;30516</allowedSkills>
</effect>
</effects>
</skill>
@ -444,30 +444,80 @@
<coolTime>720</coolTime>
<effectPoint>-96</effectPoint>
<reuseDelay>3000</reuseDelay>
<attributeType>WATER</attributeType>
<attributeValue>20</attributeValue>
<magicCriticalRate>5</magicCriticalRate>
<reuseDelay>10000</reuseDelay>
<targetType>ENEMY</targetType>
<affectScope>SINGLE</affectScope>
<effects>
<effect name="MagicalAttack">
<power>210</power>
</effect>
</effects>
</skill>
<skill id="16552" toLevel="1" name="Ice Fist">
<!-- Freeze the opponent along with the damage from your first. -->
<icon>icon.skill11017</icon>
<operateType>A2</operateType>
<abnormalLvl>1</abnormalLvl>
<abnormalTime>5</abnormalTime>
<mpConsume>19</mpConsume>
<castRange>40</castRange>
<castRange>100</castRange>
<effectRange>900</effectRange>
<affectRange>200</affectRange>
<isMagic>2</isMagic> <!-- Static Skill -->
<hitCancelTime>2</hitCancelTime>
<hitTime>3000</hitTime>
<coolTime>720</coolTime>
<reuseDelay>3000</reuseDelay>
<effectPoint>-96</effectPoint>
<isDebuff>true</isDebuff>
<targetType>ENEMY</targetType>
<affectScope>SINGLE</affectScope>
<effects>
<effect name="PhysicalAttack">
<power>9000</power>
</effect>
<effect name="BlockActions">
<allowedSkills>10279;10517;10025;10776;11770;1904;11264;11093;13314;1912;30516</allowedSkills>
</effect>
</effects>
</skill>
<skill id="16553" toLevel="1" name="Ice Breath">
<!-- Freeze enemies in front of you with your breath. -->
<icon>icon.skill11017</icon>
<abnormalLvl>1</abnormalLvl>
<abnormalTime>5</abnormalTime>
<abnormalType>FREEZING</abnormalType>
<abnormalVisualEffect>FROZEN_PILLAR</abnormalVisualEffect>
<operateType>A2</operateType>
<affectLimit>5-12</affectLimit>
<mpConsume>10</mpConsume>
<castRange>40</castRange>
<effectRange>400</effectRange>
<hitTime>3000</hitTime>
<coolTime>500</coolTime>
<reuseDelay>10000</reuseDelay>
<effectPoint>-125</effectPoint>
<isDebuff>true</isDebuff>
<targetType>ENEMY_ONLY</targetType>
<affectScope>FAN</affectScope>
<affectObject>NOT_FRIEND</affectObject>
<fanRange>0;0;200;180</fanRange>
<effects>
<effect name="BlockActions">
<allowedSkills>10279;10517;10025;10776;11770;1904;11264;11093;13314;1912;30516</allowedSkills>
</effect>
<effect name="DamOverTime">
<power>115</power>
<ticks>5</ticks>
</effect>
<effect name="Speed">
<amount>-100</amount>
<mode>DIFF</mode>
</effect>
</effects>
</skill>
<skill id="16554" toLevel="1" name="Spinning Slash">
<!-- Inflicts damage and stuns enemies around. -->

View File

@ -1097,4 +1097,22 @@
<stat name="instanceId" val="260" />
<node X="-81666" Y="152746" />
</zone>
<zone name="Mystic_Tavern_Freya_Zone1" id="80013" type="ScriptZone" shape="Cylinder" minZ="-2800" maxZ="-2750" rad="600">
<node X="224795" Y="-38613" />
</zone>
<zone name="Mystic_Tavern_Freya_Zone2" id="80014" type="ScriptZone" shape="Cylinder" minZ="-2800" maxZ="-2750" rad="1800">
<node X="225935" Y="-41215" />
</zone>
<zone name="Mystic_Tavern_Freya_Zone3" id="80015" type="ScriptZone" shape="Cylinder" minZ="-2700" maxZ="-2500" rad="1800">
<node X="222305" Y="-44945" />
</zone>
<zone name="Mystic_Tavern_Freya_Zone4" id="80016" type="ScriptZone" shape="Cylinder" minZ="-2350" maxZ="-2250" rad="1500">
<node X="219147" Y="-47983" />
</zone>
<zone name="Mystic_Tavern_Freya_Zone5" id="80017" type="ScriptZone" shape="Cylinder" minZ="-2700" maxZ="-2550" rad="1600">
<node X="223625" Y="-48360" />
</zone>
<zone name="Mystic_Tavern_Freya_Zone6" id="80018" type="ScriptZone" shape="Cylinder" minZ="-2650" maxZ="-2500" rad="1100">
<node X="225947" Y="-50420" />
</zone>
</list>

View File

@ -1,4 +0,0 @@
<html><body>Mystic Summoning Crystal:<br>
A blue crystal. You can summon an employee by pressing on the crystal.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Quest">"So if I press this..."</button>
</body></html>

View File

@ -0,0 +1,166 @@
<?xml version="1.0" encoding="UTF-8"?>
<instance id="261" maxWorlds="100" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../xsd/instance.xsd">
<time duration="60" empty="0" />
<removeBuffs type="ALL" />
<locations>
<enter type="FIXED">
<location x="212440" y="-46728" z="-11225" />
</enter>
<exit type="FIXED" >
<location x="-50152" y="-148232" z="-14181" />
</exit>
</locations>
<parameters>
<param name="1_st_door" value="26160602" />
</parameters>
<reenter apply="ON_ENTER">
<reset day="WEDNESDAY" hour="6" minute="30" />
<reset day="SATURDAY" hour="6" minute="30" />
</reenter>
<doorlist>
<door id="26160602"/>
</doorlist>
<spawnlist>
<group name="general" spawnByDefault="true">
<npc id="34171" x="213077" y="-49260" z="-11225" heading="22517" /> <!-- Melisa -->
<npc id="34172" x="212936" y="-49260" z="-11225" heading="7855" /> <!-- Sayan -->
</group>
<group name="helper" spawnByDefault="true">
<npc id="34173" x="213096" y="-47704" z="-11225" heading="16383" /> <!-- Kanna -->
<npc id="34174" x="212309" y="-43139" z="-880" heading="0" /> <!-- Sirra -->
</group>
<group name="monsters" spawnByDefault="true">
<npc id="23724" x="216904" y="-41912" z="-1126" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="216760" y="-41784" z="-1131" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="217048" y="-41784" z="-1166" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="217208" y="-41688" z="-1208" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="217240" y="-41448" z="-1248" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="221352" y="-39384" z="-2758" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="221320" y="-39320" z="-2757" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="221224" y="-39080" z="-2758" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="223784" y="-40200" z="-2798" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="223640" y="-40280" z="-2798" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="223688" y="-40360" z="-2798" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="223800" y="-40360" z="-2798" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="224168" y="-42056" z="-2785" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="224280" y="-41928" z="-2772" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="224104" y="-41928" z="-2786" heading="0" /> <!-- Buffalo -->
<npc id="23725" x="223080" y="-38664" z="-2720" heading="0" /> <!-- Ursus -->
<npc id="23725" x="223624" y="-40104" z="-2791" heading="0" /> <!-- Ursus -->
<npc id="23725" x="218104" y="-39896" z="-1756" heading="0" /> <!-- Ursus -->
<npc id="23725" x="218056" y="-39784" z="-1748" heading="0" /> <!-- Ursus -->
<npc id="23686" x="219416" y="-41032" z="-2166" heading="0" /> <!-- Frost Glacier Golem -->
<npc id="23686" x="216904" y="-39880" z="-1358" heading="0" /> <!-- Frost Glacier Golem -->
<npc id="23686" x="224616" y="-38552" z="-2814" heading="0" /> <!-- Frost Glacier Golem -->
<npc id="23686" x="225976" y="-38760" z="-2813" heading="0" /> <!-- Frost Glacier Golem -->
<npc id="23686" x="218696" y="-48984" z="-2344" heading="0" /> <!-- Frost Glacier Golem -->
<npc id="23686" x="226264" y="-51032" z="-2622" heading="0" /> <!-- Frost Glacier Golem -->
<npc id="23686" x="226686" y="-41711" z="-2776" heading="0" /> <!-- Frost Glacier Golem -->
<npc id="23686" x="222306" y="-44947" z="-2600" heading="0" /> <!-- Frost Glacier Golem -->
<npc id="23686" x="219492" y="-49018" z="-2312" heading="0" /> <!-- Frost Glacier Golem -->
<npc id="23686" x="226160" y="-45974" z="-2768" heading="0" /> <!-- Frost Glacier Golem -->
<npc id="23686" x="223808" y="-48315" z="-2624" heading="0" /> <!-- Frost Glacier Golem -->
<npc id="23687" x="221976" y="-51944" z="-2610" heading="0" /> <!-- Frost Glacier Golem -->
<npc id="23688" x="219896" y="-41496" z="-2175" heading="0" /> <!-- Frost Knight -->
<npc id="23688" x="220136" y="-41112" z="-2199" heading="0" /> <!-- Frost Knight -->
<npc id="23688" x="222184" y="-38024" z="-2731" heading="0" /> <!-- Frost Knight -->
<npc id="23688" x="222488" y="-38168" z="-2723" heading="0" /> <!-- Frost Knight -->
<npc id="23719" x="225720" y="-40792" z="-2792" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="225688" y="-41064" z="-2788" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="225704" y="-41336" z="-2789" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="225912" y="-41576" z="-2798" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="226648" y="-41528" z="-2809" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="226712" y="-41128" z="-2799" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="226360" y="-40936" z="-2799" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="226152" y="-41240" z="-2803" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="226264" y="-41432" z="-2807" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="226264" y="-41432" z="-2807" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="219976" y="-46808" z="-2369" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="219800" y="-46728" z="-2364" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="219448" y="-46632" z="-2345" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="219016" y="-46664" z="-2339" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="219032" y="-46984" z="-2344" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="219320" y="-47256" z="-2346" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="219080" y="-47448" z="-2345" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="218808" y="-47768" z="-2339" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="218776" y="-48040" z="-2338" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="218840" y="-48456" z="-2341" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="219128" y="-48536" z="-2345" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="219592" y="-48216" z="-2351" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="225496" y="-45000" z="-2783" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="225704" y="-44808" z="-2801" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="226152" y="-44792" z="-2799" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="226104" y="-45016" z="-2800" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="226408" y="-45240" z="-2799" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="226328" y="-45496" z="-2802" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="226120" y="-45544" z="-2799" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="226120" y="-45544" z="-2799" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="222312" y="-47848" z="-2604" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="222360" y="-47896" z="-2612" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="222536" y="-47992" z="-2627" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="222792" y="-48008" z="-2637" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="223000" y="-47912" z="-2640" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="222952" y="-48008" z="-2644" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="223592" y="-50584" z="-2609" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="223512" y="-50744" z="-2612" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="222776" y="-50648" z="-2619" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="222600" y="-50632" z="-2620" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="222376" y="-50600" z="-2624" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="222232" y="-50664" z="-2630" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="222072" y="-50920" z="-2651" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="222248" y="-50984" z="-2636" heading="0" /> <!-- Frozen Knight -->
<npc id="23722" x="221672" y="-43976" z="-2678" heading="0" /> <!-- Frost Buffalo -->
<npc id="23722" x="221080" y="-45080" z="-2619" heading="0" /> <!-- Frost Buffalo -->
<npc id="23722" x="222360" y="-46136" z="-2616" heading="0" /> <!-- Frost Buffalo -->
</group>
<group name="knight" spawnByDefault="false">
<npc id="23703" x="212199" y="-43251" z="-840" heading="6357" /> <!-- Ice Knight -->
<npc id="34175" x="212161" y="-43295" z="-840" heading="8782" /> <!-- Knight -->
<npc id="34175" x="212248" y="-43291" z="-840" heading="527" /> <!-- Knight -->
<npc id="34175" x="212186" y="-43200" z="-840" heading="49418" /> <!-- Knight -->
</group>
<group name="knightSolo" spawnByDefault="false">
<npc id="23703" x="223304" y="-42488" z="-2783" heading="0" /> <!-- Ice Knight -->
<npc id="34175" x="214152" y="-42200" z="-861" heading="0" /> <!-- Knight -->
<npc id="34175" x="214440" y="-42344" z="-917" heading="0" /> <!-- Knight -->
<npc id="34175" x="214440" y="-42376" z="-917" heading="0" /> <!-- Knight -->
</group>
<group name="buffalo" spawnByDefault="false">
<npc id="23724" x="226568" y="-40936" z="-2804" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="226664" y="-41240" z="-2806" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="226552" y="-41400" z="-2807" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="226472" y="-41352" z="-2808" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="226152" y="-41096" z="-2806" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="225896" y="-41064" z="-2806" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="225608" y="-41016" z="-2808" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="225416" y="-41064" z="-2798" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="225688" y="-41512" z="-2798" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="225848" y="-41832" z="-2800" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="226040" y="-41992" z="-2798" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="226264" y="-41432" z="-2807" heading="0" /> <!-- Buffalo -->
<npc id="23725" x="226760" y="-40872" z="-2798" heading="0" /> <!-- Ursus -->
</group>
<group name="panthera" spawnByDefault="false">
<npc id="23720" x="219656" y="-48616" z="-2345" heading="0" /> <!-- Panthera -->
<npc id="23720" x="219800" y="-48696" z="-2350" heading="0" /> <!-- Panthera -->
<npc id="23720" x="219352" y="-48824" z="-2340" heading="0" /> <!-- Panthera -->
<npc id="23720" x="219160" y="-48824" z="-2341" heading="0" /> <!-- Panthera -->
<npc id="23720" x="218936" y="-48568" z="-2340" heading="0" /> <!-- Panthera -->
<npc id="23720" x="218872" y="-48232" z="-2338" heading="0" /> <!-- Panthera -->
<npc id="23720" x="218696" y="-47768" z="-2338" heading="0" /> <!-- Panthera -->
<npc id="23720" x="218680" y="-47528" z="-2338" heading="0" /> <!-- Panthera -->
<npc id="23720" x="218952" y="-47240" z="-2342" heading="0" /> <!-- Panthera -->
<npc id="23720" x="219352" y="-47064" z="-2345" heading="0" /> <!-- Panthera -->
</group>
<group name="ursus" spawnByDefault="false">
<npc id="23723" x="225160" y="-50712" z="-2593" heading="0" /> <!-- Frost Ursus -->
<npc id="23723" x="224808" y="-50536" z="-2598" heading="0" /> <!-- Frost Ursus -->
<npc id="23723" x="224104" y="-49544" z="-2609" heading="0" /> <!-- Frost Ursus -->
<npc id="23723" x="224312" y="-49016" z="-2616" heading="0" /> <!-- Frost Ursus -->
<npc id="23723" x="224120" y="-48616" z="-2655" heading="0" /> <!-- Frost Ursus -->
</group>
<group name="freya" spawnByDefault="false">
<npc id="23689" x="213032" y="-49256" z="-11230" heading="0" /> <!-- Freya -->
</group>
</spawnlist>
</instance>

View File

@ -0,0 +1,3 @@
<html><body>Mystic Summoning Crystal:<br>
You are not the party leader.
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Mystic Summoning Crystal:<br>
Someone on your party is too low level to listen to a story like this.
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Mystic Summoning Crystal:<br>
You need a party to tell a story.
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Mystic Summoning Crystal:<br>
All party members must have completed the <font color="LEVEL">Grand Opening! Come to Our Pub!</font> quest.
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Mystic Summoning Crystal:<br>
You already told some stories, come back later.
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Mystic Summoning Crystal:<br>
You need more people to tell a story.
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Mystic Summoning Crystal:<br>
All members must sit on a chair to start with the story.
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Mystic Summoning Crystal:<br>
A blue crystal. You can start telling a story by pressing on the crystal.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest MysticTavern tellStory">"So if I press this..."</Button>
</body></html>

View File

@ -0,0 +1,147 @@
/*
* 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.MysticTavern;
import java.util.ArrayList;
import java.util.List;
import com.l2jmobius.gameserver.instancemanager.InstanceManager;
import com.l2jmobius.gameserver.model.L2Party;
import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.quest.QuestState;
import ai.AbstractNpcAI;
import instances.MysticTavern.StoryOfFreya.StoryOfFreya;
import quests.Q10297_GrandOpeningComeToOurPub.Q10297_GrandOpeningComeToOurPub;
/**
* This AI manages the entry to the Mystic Tavern instances.
* @URL https://l2wiki.com/Mystic_Tavern
* @VIDEO FREYA: https://www.youtube.com/watch?v=-pUB6ghrsLI
* @VIDEO TAUTI: https://www.youtube.com/watch?v=_Wz-kxXzJK4
* @VIDEO KELBIM: https://www.youtube.com/watch?v=wL1D49u6vxE
* @author Mobius
*/
public class MysticTavern extends AbstractNpcAI
{
// NPC
private static final int GLOBE = 34200;
// Instances
private static final int INSTANCE_FREYA = 261;
// private static final int INSTANCE_TAUTI = 262;
// private static final int INSTANCE_KELBIM = 263;
// Misc
private static final int MINIMUM_PLAYER_LEVEL = 99;
private static final int MINIMUM_PARTY_MEMBERS = 5;
public MysticTavern()
{
addFirstTalkId(GLOBE);
}
@Override
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
if (event.equals("tellStory"))
{
final List<Integer> availableInstances = new ArrayList<>();
availableInstances.add(INSTANCE_FREYA);
// availableInstances.add(INSTANCE_TAUTI);
// availableInstances.add(INSTANCE_KELBIM);
if (!player.isGM())
{
final L2Party party = player.getParty();
if (party == null)
{
return "34200-no-party.html";
}
if (party.getLeader() != player)
{
return "34200-no-leader.html";
}
if (party.getMemberCount() < MINIMUM_PARTY_MEMBERS)
{
return "34200-not-enough-members.html";
}
for (L2PcInstance member : party.getMembers())
{
if ((member == null) || !member.isSitting() || (member.calculateDistance3D(player) > 500))
{
return "34200-not-sitting.html";
}
if (member.getLevel() < MINIMUM_PLAYER_LEVEL)
{
return "34200-no-level.html";
}
final QuestState qs = member.getQuestState(Q10297_GrandOpeningComeToOurPub.class.getSimpleName());
if ((qs == null) || !qs.isCompleted())
{
return "34200-no-quest.html";
}
if (InstanceManager.getInstance().getInstanceTime(member, INSTANCE_FREYA) > 0)
{
availableInstances.remove(INSTANCE_FREYA);
}
// if (InstanceManager.getInstance().getInstanceTime(member, INSTANCE_TAUTI) > 0)
// {
// availableInstances.remove(INSTANCE_TAUTI);
// }
// if (InstanceManager.getInstance().getInstanceTime(member, INSTANCE_KELBIM) > 0)
// {
// availableInstances.remove(INSTANCE_KELBIM);
// }
}
if (availableInstances.isEmpty())
{
return "34200-not-available.html";
}
}
// enter randomly
switch (availableInstances.get(getRandom(availableInstances.size())))
{
case INSTANCE_FREYA:
{
player.processQuestEvent(StoryOfFreya.class.getSimpleName(), "start_story");
break;
}
// case INSTANCE_TAUTI:
// {
// player.processQuestEvent(StoryOfTauti.class.getSimpleName(), "start_story");
// break;
// }
// case INSTANCE_KELBIM:
// {
// player.processQuestEvent(StoryOfKelbim.class.getSimpleName(), "start_story");
// break;
// }
}
}
return null;
}
@Override
public String onFirstTalk(L2Npc npc, L2PcInstance player)
{
return "34200.html";
}
public static void main(String[] args)
{
new MysticTavern();
}
}

View File

@ -0,0 +1,4 @@
<html><body>Sage Sayan:<br>
Are you a traveler? I was in need of some help. Glad to see you here.<br>
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest StoryOfFreya 34172-02.html">"I can help."</Button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Sage Sayan:<br>
I used to have a rare treasure. It's a crystal filled with cold energy. I was showing it to the Princess, but I dropped it and the cold energy engulfed her.<br>
The cold has been affecting her. I have to help her out, but can't leave her side. <br>
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest StoryOfFreya 34172-03.html">"What do you need to do?"</Button>
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>Sage Sayan:<br>
The crystal is special, so even if it breaks, you can make a crystal with the shards. Once the crystal is made, it will gain back its power, so as long as we get the shards, we can save the Princess by taking out all the cold energy from her.<br>
The problem is that the crystal shards are scattered around the Labyrinth... I can't leave this place, since I have to watch over the Princess. Do you think you can help? I can send you to the Labyrinth to collect the Ice Crystal Shards.<br>
Please keep in mind that I can't send all of you at once. Come to me one by one, and I'll send you.<br>
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest StoryOfFreya startInstance">"Alright, please send me to the Summer Labyrinth."</Button>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Sage Sayan:<br>
Someone hasn't given me the shard yet. Please wait until I get all of them.
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>Sayan:<br>
Hello, there. I'm Sayan.<br>
People call me a sage, but please just refer to me as Sayan. I'm staying by Princess Melissa's side, to tell her about the things that go around in the world.<br>
Issues do arise, but the Princess likes to hear about the world.<br>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h Quest StoryOfFreya 34172-06.html">Quest</Button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Sayan:<br>
Oh! You've found all the shards. I'll take care of the rest.<br>
Princess Melissa has been in pain for a long time, so it won't be easy to heal her, but I'm sure that if everyone stays around to watch her get better, she'll feel better soon.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest StoryOfFreya startFreya">"Let's get started."</Button>
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>Sayan:<br>
Hello, there. I'm Sayan.<br>
People call me a sage, but please just refer to me as Sayan. I'm staying by Princess Melissa's side, to tell her about the things that go around in the world.<br>
Issues do arise, but the Princess likes to hear about the world.<br>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h Quest StoryOfFreya 34172-01.html">Quest</Button>
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>Knight Captain Kanna:<br>
Hello, this is Princess Melissa's castle. The door is closed, so I can't go in, but the Princess has been making painful noises. Have you finished already?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest StoryOfFreya openDoor">"I would like to go inside."</Button><br>
If you haven't finished Sayan's request, I can send you to the old Summer Labyrinth.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest StoryOfFreya summerLabirynth">"Yes, I would like to go the old Summer Labyrinth."</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Knight Captain Kanna:<br>
There's someone out of range. Please gather around me to go meet Princess Melissa.<br>
I'll open the door once you gather around.
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Knight Captain Kanna:<br>
It looks like you aren't the party leader, or aren't part of party either. I can only help the party leader.
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Knight Captain Kanna:<br>
Hello, this is Princess Melissa's castle. How can I help you?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest StoryOfFreya openDoor">"I would like to go inside."</Button>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Sirra:<br>
You can't fool me. You must be a party leader for me to help you out.
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Sirra:<br>
Princess Melissa... always making my life more difficult. But I guess that's my job.<br>
What brings you here, traveler? Did you finish?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest StoryOfFreya backCastle">"I want to go back to the castle."</Button>
</body></html>

View File

@ -0,0 +1,473 @@
/*
* 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.MysticTavern.StoryOfFreya;
import java.util.List;
import com.l2jmobius.Config;
import com.l2jmobius.gameserver.enums.Movie;
import com.l2jmobius.gameserver.instancemanager.QuestManager;
import com.l2jmobius.gameserver.instancemanager.ZoneManager;
import com.l2jmobius.gameserver.model.L2Party;
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.FriendlyNpcInstance;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.instancezone.Instance;
import com.l2jmobius.gameserver.model.quest.Quest;
import com.l2jmobius.gameserver.model.quest.QuestState;
import com.l2jmobius.gameserver.model.zone.type.L2ScriptZone;
import com.l2jmobius.gameserver.network.NpcStringId;
import com.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import com.l2jmobius.gameserver.network.serverpackets.OnEventTrigger;
import instances.AbstractInstance;
import quests.Q00835_PitiableMelisa.Q00835_PitiableMelisa;
/**
* Mystic Tavern Freya Instance
* @author Gigi
* @date 2019-02-05 - [19:54:29]
*/
public class StoryOfFreya extends AbstractInstance
{
// NPCs
private static final int SAYAN = 34172;
private static final int KANNA = 34173;
private static final int SYRRA = 34174;
private static final int FREYA = 23689;
private static final int ICE_KNIGHT = 23703;
private static final int KNIGHT = 34175;
private static final int FROST_GOLEM = 23686;
private static final int FROST_KNIGHT = 23688;
private static final int GLACIER_GOLEM = 23718;
private static final int GLACIER_FROSTBRINGER = 23687;
// Other
private static final int TEMPLATE_ID = 261;
private static final int ICE_CRYSTAL_SHARD = 46594;
private static final Location CASTLE_TELEPORT = new Location(212410, -46728, -11225);
private static final Location LABIRYNTH_TELEPORT = new Location(213145, -43145, -872);
private static final L2ScriptZone FIRST_SPAWN_ZONE = ZoneManager.getInstance().getZoneById(80013, L2ScriptZone.class);
private static final L2ScriptZone SECOND_SPAWN_ZONE = ZoneManager.getInstance().getZoneById(80014, L2ScriptZone.class);
private static final L2ScriptZone THRID_SPAWN_ZONE = ZoneManager.getInstance().getZoneById(80015, L2ScriptZone.class);
private static final L2ScriptZone FOURTH_SPAWN_ZONE = ZoneManager.getInstance().getZoneById(80016, L2ScriptZone.class);
private static final L2ScriptZone FIFTH_SPAWN_ZONE = ZoneManager.getInstance().getZoneById(80017, L2ScriptZone.class);
private static final L2ScriptZone SIXTH_SPAWN_ZONE = ZoneManager.getInstance().getZoneById(80018, L2ScriptZone.class);
private static final int FREYA_SNOW = 26160228;
public StoryOfFreya()
{
super(TEMPLATE_ID);
addTalkId(SAYAN, KANNA, SYRRA);
addFirstTalkId(SAYAN, KANNA, SYRRA);
addSpawnId(FREYA, ICE_KNIGHT);
addAttackId(FROST_GOLEM, GLACIER_FROSTBRINGER, FREYA);
addKillId(ICE_KNIGHT, FROST_GOLEM, GLACIER_FROSTBRINGER, FREYA);
}
@Override
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
String htmltext = null;
final Instance world = npc.getInstanceWorld();
if (isInInstance(world))
{
switch (event)
{
case "34172-02.html":
case "34172-03.html":
{
htmltext = event;
break;
}
case "34172-01.html":
{
if (!player.isInParty() || !player.getParty().isLeader(player))
{
htmltext = "34172-04.html";
break;
}
htmltext = event;
break;
}
case "34172-06.html":
{
if (!player.isInParty() || !player.getParty().isLeader(player))
{
htmltext = "34172-04.html";
break;
}
final L2Party party = player.getParty();
final List<L2PcInstance> members = party.getMembers();
for (L2PcInstance member : members)
{
if (member.isInsideRadius3D(npc, Config.ALT_PARTY_RANGE))
{
QuestProgress(npc, member);
}
}
htmltext = event;
break;
}
case "start_story":
{
player.standUp();
enterInstance(player, null, TEMPLATE_ID);
if (player.getParty() != null)
{
for (L2PcInstance member : player.getParty().getMembers())
{
if (member != player)
{
member.standUp();
member.teleToLocation(player, player.getInstanceWorld());
}
}
}
break;
}
case "startInstance":
{
if (player.isInParty())
{
final L2Party party = player.getParty();
final List<L2PcInstance> members = party.getMembers();
for (L2PcInstance member : members)
{
if (member.isInsideRadius3D(npc, Config.ALT_PARTY_RANGE))
{
member.teleToLocation(LABIRYNTH_TELEPORT, world.getTemplateId());
world.setStatus(1);
QuestProgress(npc, member);
}
}
if (getRandom(10) < 5)
{
world.spawnGroup("knight");
world.broadcastPacket(new ExShowScreenMessage(NpcStringId.ICE_KNIGHTS_GOT_IN_DEFEAT_THE_ICE_KNIGHTS, ExShowScreenMessage.TOP_CENTER, 20000, true));
}
else
{
world.spawnGroup("knightSolo");
}
}
break;
}
case "openDoor":
{
if (world.isStatus(0))
{
if (!player.isInParty() || !player.getParty().isLeader(player))
{
htmltext = "34173-03.html";
break;
}
if (player.isInParty())
{
final L2Party party = player.getParty();
final List<L2PcInstance> members = party.getMembers();
for (L2PcInstance member : members)
{
if ((member == null) || (member.calculateDistance3D(npc) > 300))
{
htmltext = "34173-02.html";
break;
}
}
}
world.openCloseDoor(world.getTemplateParameters().getInt("1_st_door"), true);
startQuestTimer("closeDoor", 60000, npc, null);
break;
}
else if (world.getStatus() > 0)
{
if (player.getInventory().getInventoryItemCount(ICE_CRYSTAL_SHARD, -1) == 10)
{
world.openCloseDoor(world.getTemplateParameters().getInt("1_st_door"), true);
startQuestTimer("closeDoor", 30000, npc, null);
break;
}
htmltext = "34173-03.html";
break;
}
}
case "closeDoor":
{
world.openCloseDoor(world.getTemplateParameters().getInt("1_st_door"), false);
break;
}
case "summerLabirynth":
{
player.teleToLocation(LABIRYNTH_TELEPORT, world.getTemplateId());
break;
}
case "backCastle":
{
if (!player.isInParty() || !player.getParty().isLeader(player))
{
htmltext = "34174-01.html";
break;
}
if (player.isInParty())
{
final L2Party party = player.getParty();
final List<L2PcInstance> members = party.getMembers();
for (L2PcInstance member : members)
{
if (member.isInsideRadius3D(npc, Config.ALT_PARTY_RANGE))
{
player.teleToLocation(CASTLE_TELEPORT, world.getTemplateId());
}
}
}
break;
}
case "startFreya":
{
world.despawnGroup("general");
playMovie(world.getPlayers(), Movie.EPIC_FREYA_SCENE);
startQuestTimer("freyaSpawn", 20000, npc, null);
break;
}
case "freyaSpawn":
{
world.spawnGroup("freya");
world.broadcastPacket(new OnEventTrigger(FREYA_SNOW, true));
break;
}
case "startAttack":
{
for (final L2Npc nearby : L2World.getInstance().getVisibleObjectsInRange(npc, FriendlyNpcInstance.class, 300))
{
if (nearby.getId() == KNIGHT)
{
nearby.setIsInvul(true);
npc.reduceCurrentHp(1, nearby, null);
nearby.reduceCurrentHp(1, npc, null);
addAttackDesire(nearby, npc);
}
}
break;
}
case "finishInstance":
{
world.finishInstance(0);
break;
}
}
}
return htmltext;
}
@Override
public String onAttack(L2Npc npc, L2PcInstance attacker, int damage, boolean isSummon)
{
final Instance world = npc.getInstanceWorld();
if (isInInstance(world))
{
switch (npc.getId())
{
case FROST_GOLEM:
{
if ((FIRST_SPAWN_ZONE.isInsideZone(npc) || SIXTH_SPAWN_ZONE.isInsideZone(npc)) && (npc.isScriptValue(0)))
{
npc.setScriptValue(1);
for (int i = 0; i < 6; i++)
{
final L2Npc knight = addSpawn(FROST_KNIGHT, npc.getX() + getRandom(-100, 100), npc.getY() + getRandom(-100, 100), npc.getZ(), getRandom(64000), false, 300000, false, world.getId());
addAttackPlayerDesire(knight, attacker);
}
}
if (THRID_SPAWN_ZONE.isInsideZone(npc) && (npc.isScriptValue(0)))
{
npc.setScriptValue(1);
for (int a = 0; a < 8; a++)
{
final L2Npc golem = addSpawn(GLACIER_GOLEM, npc.getX() + getRandom(-100, 100), npc.getY() + getRandom(-100, 100), npc.getZ(), getRandom(64000), false, 300000, false, world.getId());
addAttackPlayerDesire(golem, attacker);
}
}
break;
}
case GLACIER_FROSTBRINGER:
{
if (npc.isScriptValue(0))
{
npc.setScriptValue(1);
for (int b = 0; b < 4; b++)
{
final L2Npc knight = addSpawn(FROST_KNIGHT, npc.getX() + getRandom(-100, 100), npc.getY() + getRandom(-100, 100), npc.getZ(), getRandom(64000), false, 300000, false, world.getId());
addAttackPlayerDesire(knight, attacker);
}
}
break;
}
case FREYA:
{
if (npc.isScriptValue(0))
{
npc.setScriptValue(1);
for (int c = 0; c < 6; c++)
{
final L2Npc knight = addSpawn(FROST_KNIGHT, npc.getX() + getRandom(-100, 100), npc.getY() + getRandom(-100, 100), npc.getZ(), getRandom(64000), false, 300000, false, world.getId());
addAttackPlayerDesire(knight, attacker);
}
}
break;
}
}
}
return super.onAttack(npc, attacker, damage, isSummon);
}
@Override
public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon)
{
final Instance world = npc.getInstanceWorld();
if (isInInstance(world))
{
switch (npc.getId())
{
case FROST_GOLEM:
{
if (SECOND_SPAWN_ZONE.isInsideZone(npc))
{
world.spawnGroup("buffalo");
}
if (FOURTH_SPAWN_ZONE.isInsideZone(npc) && (world.getStatus() == 1))
{
world.setStatus(2);
world.broadcastPacket(new ExShowScreenMessage(NpcStringId.AN_INTENSE_COLD_IS_COMING_LOOK_AROUND, ExShowScreenMessage.TOP_CENTER, 7000, true));
world.spawnGroup("panthera");
}
if (FIFTH_SPAWN_ZONE.isInsideZone(npc))
{
world.spawnGroup("ursus");
}
break;
}
case GLACIER_FROSTBRINGER:
{
addSpawn(SYRRA, npc, false, 120000, false, world.getId());
break;
}
case FREYA:
{
startQuestTimer("finishInstance", 5000, npc, null);
if (player.isInParty())
{
final L2Party party = player.getParty();
final List<L2PcInstance> members = party.getMembers();
for (L2PcInstance member : members)
{
if (member.isInsideRadius3D(npc, Config.ALT_PARTY_RANGE))
{
QuestProgress(npc, member);
}
}
}
break;
}
}
}
return super.onKill(npc, player, isSummon);
}
@Override
public String onSpawn(L2Npc npc)
{
final Instance world = npc.getInstanceWorld();
if (isInInstance(world))
{
switch (npc.getId())
{
case FREYA:
{
npc.setCurrentHp(npc.getMaxHp() / 2);
break;
}
case ICE_KNIGHT:
{
startQuestTimer("startAttack", 2000, npc, null);
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 SAYAN:
{
if (world.isStatus(0))
{
htmltext = "34172.html";
break;
}
htmltext = "34172-05.html";
break;
}
case KANNA:
{
if (world.isStatus(0))
{
htmltext = "34173.html";
break;
}
htmltext = "34173-01.html";
break;
}
case SYRRA:
{
htmltext = "34174.html";
break;
}
}
}
return htmltext;
}
protected void QuestProgress(L2Npc npc, L2PcInstance player)
{
final QuestState qs = player.getQuestState(Q00835_PitiableMelisa.class.getSimpleName());
if ((qs != null) && qs.isStarted())
{
final Quest qs835 = QuestManager.getInstance().getQuest(Q00835_PitiableMelisa.class.getSimpleName());
if (qs835 != null)
{
qs835.notifyEvent("NOTIFY_Q835", npc, player);
}
}
}
public static void main(String[] args)
{
new StoryOfFreya();
}
}

View File

@ -34,7 +34,6 @@
832 Hunter Guild Request - Southern Region, Isle of Prayer
833 Devil's Treasure, Tauti
834 Against Dragonclaw
835 Pitiable Melisa
836 Request from the Blackbird Clan
837 Request from the Giant Trackers
838 Request from the Mother Tree Guardians

View File

@ -0,0 +1,6 @@
<html><body>Mystic Tavern Owner Settlen:<br>
Did you hear Princess Melissa's story? Such a pity.<br>
From what I heard... Sage Sayan is not human. Well, I'm not sure what he is.<br>
Princess Melissa isn't the only one who's suffered like that, though. Even her maid, Sirra was affected by it. Anyway, was the story fun?<br>
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q00835_PitiableMelisa 34180-02.html">"Yes, thank you"</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Mystic Tavern Owner Settlen:<br>
Thank you for listening to our stories with such great interest. Here's a small gift for you.<br>
Please come by often and let's all have a great time again.
</body></html>

View File

@ -0,0 +1,157 @@
/*
* 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 quests.Q00835_PitiableMelisa;
import com.l2jmobius.Config;
import com.l2jmobius.gameserver.enums.Movie;
import com.l2jmobius.gameserver.enums.QuestType;
import com.l2jmobius.gameserver.model.actor.L2Character;
import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.quest.Quest;
import com.l2jmobius.gameserver.model.quest.QuestState;
import com.l2jmobius.gameserver.model.quest.State;
/**
* Pitiable Melisa (835)
* @URL https://l2wiki.com/Pitiable_Melisa
* @author Gigi
* @date 2019-02-04 - [23:59:06]
*/
public class Q00835_PitiableMelisa extends Quest
{
// NPCs
private static final int KANNA = 34173;
private static final int SETTLEN = 34180;
// Monsters
private static final int[] MONSTERS =
{
23686, // Frost Glacier Golem
23687 // Glacier Golem
};
// Items
private static final int ICE_CRYSTAL_SHARD = 46594;
private static final int FRENZED_TAUTIS_FRAGMENT = 47884;
private static final int INSANE_KELBIMS_FRAGMENT = 47885;
private static final int SOE_MISTYC_TAVERN = 46564;
private static final int MYSTIC_ARMOR_PIACE = 46587;
public Q00835_PitiableMelisa()
{
super(835);
addStartNpc(KANNA);
addTalkId(SETTLEN);
addSeeCreatureId(KANNA);
addKillId(MONSTERS);
registerQuestItems(ICE_CRYSTAL_SHARD);
}
@Override
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
String htmltext = null;
final QuestState qs = getQuestState(player, false);
switch (event)
{
case "NOTIFY_Q835":
{
qs.setCond(qs.getCond() + 1, true);
break;
}
case "34180-02.html":
{
final int chance = getRandom(100);
if (chance <= 10)
{
giveItems(player, FRENZED_TAUTIS_FRAGMENT, 1);
}
else if ((chance > 10) && (chance <= 20))
{
giveItems(player, INSANE_KELBIMS_FRAGMENT, 1);
}
else if ((chance > 20) && (chance <= 50))
{
giveItems(player, MYSTIC_ARMOR_PIACE, 1);
}
else
{
giveItems(player, SOE_MISTYC_TAVERN, 1);
}
addExpAndSp(player, 6_362_541_900L, 15_270_101);
qs.exitQuest(QuestType.REPEATABLE, true);
htmltext = event;
break;
}
}
return htmltext;
}
@Override
public String onTalk(L2Npc npc, L2PcInstance player)
{
String htmltext = getNoQuestMsg(player);
final QuestState qs = getQuestState(player, true);
switch (qs.getState())
{
case State.STARTED:
{
if (qs.isCond(5))
{
htmltext = "34180-01.html";
}
}
}
return htmltext;
}
@Override
public String onSeeCreature(L2Npc npc, L2Character creature, boolean isSummon)
{
final L2PcInstance player = creature.getActingPlayer();
if (player != null)
{
final QuestState qs = getQuestState(player, true);
if (!qs.isStarted())
{
playMovie(player, Movie.EPIC_FREYA_SLIDE);
qs.startQuest();
}
}
return super.onSeeCreature(npc, creature, isSummon);
}
@Override
public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon)
{
executeForEachPlayer(player, npc, isSummon, true, false);
return super.onKill(npc, player, isSummon);
}
@Override
public void actionForEachPlayer(L2PcInstance player, L2Npc npc, boolean isSummon)
{
final QuestState qs = getQuestState(player, false);
if ((qs != null) && qs.isCond(2) && player.isInsideRadius3D(npc, Config.ALT_PARTY_RANGE))
{
if (giveItemRandomly(player, npc, ICE_CRYSTAL_SHARD, 1, 10, 1.0, true))
{
qs.setCond(3, true);
}
}
}
}

View File

@ -192,6 +192,7 @@ import quests.Q00828_EvasBlessing.Q00828_EvasBlessing;
import quests.Q00829_MaphrsSalvation.Q00829_MaphrsSalvation;
import quests.Q00830_TheWayOfTheGiantsPawn.Q00830_TheWayOfTheGiantsPawn;
import quests.Q00831_SayhasScheme.Q00831_SayhasScheme;
import quests.Q00835_PitiableMelisa.Q00835_PitiableMelisa;
import quests.Q00901_HowLavasaurusesAreMade.Q00901_HowLavasaurusesAreMade;
import quests.Q00902_ReclaimOurEra.Q00902_ReclaimOurEra;
import quests.Q00903_TheCallOfAntharas.Q00903_TheCallOfAntharas;
@ -638,6 +639,7 @@ public class QuestMasterHandler
Q00829_MaphrsSalvation.class,
Q00830_TheWayOfTheGiantsPawn.class,
Q00831_SayhasScheme.class,
Q00835_PitiableMelisa.class,
Q00901_HowLavasaurusesAreMade.class,
Q00902_ReclaimOurEra.class,
Q00903_TheCallOfAntharas.class,

View File

@ -3970,39 +3970,73 @@
<height normal="35.25" />
</collision>
</npc>
<npc id="23686" level="100" type="L2Npc" name="Frost Glacier Golem">
<!-- AUTO GENERATED NPC TODO: FIX IT -->
<npc id="23686" level="100" type="L2Monster" name="Frost Glacier Golem">
<parameters>
<skill name="Skill01_ID" id="16551" level="1" />
<skill name="Skill02_ID" id="16552" level="1" />
<skill name="Skill03_ID" id="16553" level="1" />
<param name="Skill01_Probablity" value="500" />
<param name="Skill02_Probablity" value="500" />
<param name="Skill03_Probablity" value="500" />
</parameters>
<race>ELEMENTAL</race>
<sex>FEMALE</sex>
<sex>MALE</sex>
<acquire exp="1528257600" sp="3056600" />
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
<vitals hp="403282" hpRegen="7.5" mp="23928" mpRegen="2.7" />
<vitals hp="3871504.046242775" hpRegen="7.5" mp="36613.0" mpRegen="2.7" />
<attack physical="47619.04761904762" magical="8403.361344537815" random="5" critical="4" accuracy="5" attackSpeed="253" type="FIST" range="40" distance="80" width="120" />
<defence physical="3703.703703703704" magical="2150.537634408602" />
<attribute>
<defence fire="250" water="250" wind="200" earth="250" holy="250" dark="250" />
<attack type="WATER" value="330" />
</attribute>
<speed>
<walk ground="60" />
<run ground="180" />
</speed>
</stats>
<status attackable="false" />
<status attackable="false" randomWalk="false" />
<ai clanHelpRange="800" aggroRange="400">
<clanList>
<clan>FROST_GOLEM</clan>
</clanList>
</ai>
<skillList>
<skill id="5463" level="1" /> <!-- Water Attack -->
<skill id="4416" level="7" /> <!-- Spirits -->
<skill id="16551" level="1" /> <!-- Ice Attack -->
<skill id="16552" level="1" /> <!-- Ice Fist -->
<skill id="16553" level="1" /> <!-- Ice Breath -->
</skillList>
<collision>
<radius normal="50" />
<height normal="47.5" />
</collision>
</npc>
<npc id="23687" level="100" type="L2Npc" name="Frost Glacier Golem" title="Frostbringer">
<npc id="23687" level="100" type="L2Monster" name="Frost Glacier Golem" title="Frostbringer">
<!-- AUTO GENERATED NPC TODO: FIX IT -->
<race>ELEMENTAL</race>
<sex>FEMALE</sex>
<sex>MALE</sex>
<acquire exp="1528257600" sp="3056600" />
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
<vitals hp="403282" hpRegen="7.5" mp="23928" mpRegen="2.7" />
<vitals hp="5032952.023121387" hpRegen="7.5" mp="36613.0" mpRegen="2.7" />
<attack physical="15570.537548504614" magical="9962.751329129412" random="5" critical="4" accuracy="5" attackSpeed="253" type="FIST" range="40" distance="80" width="120" />
<defence physical="2574" magical="1737" />
<attribute>
<defence fire="250" water="250" wind="200" earth="250" holy="250" dark="250" />
<attack type="WATER" value="330" />
</attribute>
<speed>
<walk ground="60" />
<run ground="180" />
</speed>
</stats>
<status attackable="false" />
<status attackable="false" randomWalk="false" />
<ai clanHelpRange="800" aggroRange="400">
<clanList>
<clan>FROST_GOLEM</clan>
</clanList>
</ai>
<skillList>
<skill id="5463" level="1" /> <!-- Water Attack -->
<skill id="4416" level="7" /> <!-- Spirits -->
@ -4012,18 +4046,29 @@
<height normal="72.75" />
</collision>
</npc>
<npc id="23688" level="100" type="L2Npc" name="Frost Knight">
<npc id="23688" level="100" type="L2Monster" name="Frost Knight">
<!-- AUTO GENERATED NPC TODO: FIX IT -->
<race>HUMANOID</race>
<sex>FEMALE</sex>
<sex>MALE</sex>
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
<vitals hp="53771" hpRegen="7.5" mp="23928" mpRegen="2.7" />
<vitals hp="53771.1" hpRegen="7.5" mp="36613" mpRegen="2.7" />
<attack physical="10731.52506" magical="3499.53679" random="10" critical="4" accuracy="4.75" attackSpeed="250" type="POLE" range="80" distance="80" width="120" />
<defence physical="6305.35947" magical="3203.311781207645" />
<attribute>
<defence fire="150" water="150" wind="150" earth="150" holy="150" dark="150" />
<attack type="WATER" value="250" />
</attribute>
<speed>
<walk ground="36" />
<run ground="180" />
</speed>
</stats>
<status attackable="false" />
<ai clanHelpRange="1000" aggroRange="600">
<clanList>
<clan>FROST_GOLEM</clan>
</clanList>
</ai>
<skillList>
<skill id="5463" level="1" /> <!-- Water Attack -->
<skill id="4416" level="6" /> <!-- Humanoids -->
@ -4033,22 +4078,48 @@
<height normal="25" />
</collision>
</npc>
<npc id="23689" level="85" type="L2Npc" name="Freya">
<!-- AUTO GENERATED NPC TODO: FIX IT -->
<race>HUMAN</race>
<npc id="23689" level="102" type="L2Monster" name="Freya">
<parameters>
<skill name="Skill01_ID" id="6278" level="1" />
<skill name="Skill02_ID" id="6279" level="1" />
<param name="Skill01_Probablity" value="1000" />
<param name="Skill02_Probablity" value="500" />
</parameters>
<race>HUMANOID</race>
<sex>FEMALE</sex>
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
<vitals hp="12498818" hpRegen="7.5" mp="47856" mpRegen="2.7" />
<vitals hp="19256267.64705882" hpRegen="7.5" mp="96766" mpRegen="2.7" />
<attack physical="21208.8451812642" magical="5528.31840933477" random="10" critical="4" accuracy="7" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" />
<defence physical="3589.082047322" magical="2193.8" evasion="11" />
<attribute>
<attack type="WATER" value="200" />
<defence fire="150" water="200" wind="200" earth="200" holy="200" dark="200" default="300" />
</attribute>
<speed>
<walk ground="54" />
<run ground="180" />
</speed>
<abnormalResist physical="230" magical="230" />
</stats>
<status attackable="false" />
<status undying="false" />
<skillList>
<skill id="5463" level="1" /> <!-- Water Attack -->
<skill id="4045" level="1" /> <!-- Resist Full Magic Attack -->
<skill id="4408" level="1" /> <!-- HP Increase (1x) -->
<skill id="4409" level="1" /> <!-- MP Increase (1x) -->
<skill id="4410" level="11" /> <!-- Average P. Atk. -->
<skill id="4411" level="11" /> <!-- Average M. Atk. -->
<skill id="4412" level="11" /> <!-- Average P. Def. -->
<skill id="4413" level="11" /> <!-- Average M. Def. -->
<skill id="4414" level="2" /> <!-- Standard Type -->
<skill id="4415" level="3" /> <!-- One-handed Sword -->
<skill id="4416" level="6" /> <!-- Humanoids -->
<skill id="5463" level="1" /> <!-- Water Attacks -->
<skill id="6644" level="1" /> <!-- Ice Queen Freya -->
<skill id="14765" level="4" /> <!-- Blood Siphon Resistance -->
<skill id="6278" level="1" /> <!-- Ice Ball -->
<skill id="6279" level="1" /> <!-- Frozen Storm -->
</skillList>
<exCrtEffect>true</exCrtEffect>
<collision>
<radius normal="22" />
<height normal="55" />

View File

@ -393,21 +393,27 @@
<height normal="37.4" />
</collision>
</npc>
<npc id="23719" level="100" type="L2Npc" name="Frozen Knight">
<npc id="23719" level="100" type="L2Monster" name="Frozen Knight">
<race>HUMANOID</race>
<sex>MALE</sex>
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
<vitals hp="53771" hpRegen="7.5" mp="23928" mpRegen="2.7" />
<vitals hp="53771.1" hpRegen="7.5" mp="23928.0" mpRegen="2.7" />
<attack physical="23610.1029394933" magical="5767.28134561036" random="10" critical="4" accuracy="5" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" />
<defence physical="6839.95121517957" magical="3066.69244923556" />
<attribute>
<defence fire="150" water="150" wind="150" earth="150" holy="150" dark="150" default="150" />
</attribute>
<speed>
<walk ground="36" />
<run ground="180" />
</speed>
<attack physical="23610.1029394933" magical="5767.28134561036" random="10" critical="4" accuracy="5" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" />
<defence physical="3839.95121517957" magical="2066.69244923556" />
<attribute>
<defence fire="150" water="150" wind="150" earth="150" holy="150" dark="150" default="150" />
</attribute>
</stats>
<status attackable="false" />
<ai clanHelpRange="1000" aggroRange="600">
<clanList>
<clan>FROST_GOLEM</clan>
</clanList>
</ai>
<skillList>
<skill id="5463" level="1" /> <!-- Water Attack -->
<skill id="4416" level="6" /> <!-- Humanoids -->
@ -417,71 +423,98 @@
<height normal="25" />
</collision>
</npc>
<npc id="23720" level="56" type="L2Monster" name="Panthera">
<npc id="23720" level="100" type="L2Monster" name="Panthera">
<!-- AUTO GENERATED NPC TODO: FIX IT -->
<parameters>
<param name="MoveAroundSocial" value="120" />
<param name="MoveAroundSocial1" value="30" />
<param name="MoveAroundSocial2" value="120" />
<param name="SoulShot" value="100" />
<param name="SoulShotRate" value="10" />
<param name="SpiritShot" value="100" />
<param name="SpiritShotRate" value="5" />
<param name="LongRangeGuardRate" value="5" />
</parameters>
<race>BEAST</race>
<sex>FEMALE</sex>
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
<vitals hp="15841" hpRegen="7.5" mp="2355" mpRegen="2.7" />
<vitals hp="15841.04046242775" hpRegen="7.5" mp="2355.0" mpRegen="2.7" />
<attack physical="5731.52506" magical="1499.53679" random="50" critical="1" accuracy="9" attackSpeed="253" type="BLUNT" range="40" distance="80" width="120" />
<defence physical="4305.35947" magical="1203.311781207645" />
<speed>
<walk ground="60" />
<run ground="180" />
</speed>
</stats>
<status attackable="false" />
<ai clanHelpRange="400" aggroRange="100">
<clanList>
<clan>FROST_ANIMAL</clan>
</clanList>
</ai>
<skillList>
<skill id="5463" level="1" /> <!-- Water Attack -->
<skill id="4416" level="3" /> <!-- Beast -->
</skillList>
<collision>
<radius normal="34" />
<height normal="28" />
</collision>
</npc>
<npc id="23721" level="100" type="L2Npc" name="Maze Buffalo">
<!-- AUTO GENERATED NPC TODO: FIX IT -->
<parameters>
<param name="MoveAroundSocial" value="120" />
<param name="MoveAroundSocial1" value="30" />
<param name="MoveAroundSocial2" value="120" />
<param name="SoulShot" value="100" />
<param name="SoulShotRate" value="10" />
<param name="SpiritShot" value="100" />
<param name="SpiritShotRate" value="5" />
<param name="LongRangeGuardRate" value="5" />
</parameters>
<race>BEAST</race>
<sex>FEMALE</sex>
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
<vitals hp="15841.7282909073" hpRegen="7.5" mp="2355.0" mpRegen="2.7" />
<attack physical="23610.1029394933" magical="5767.28134561036" random="10" critical="4" accuracy="5" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" />
<defence physical="3839.95121517957" magical="2066.69244923556" />
<attribute>
<defence fire="150" water="150" wind="150" earth="150" holy="150" dark="150" default="150" />
</attribute>
<speed>
<walk ground="20" />
<run ground="180" />
</speed>
</stats>
<status attackable="false" />
<skillList>
<skill id="5463" level="1" /> <!-- Water Attack -->
<skill id="4416" level="3" /> <!-- Beast -->
</skillList>
<collision>
<radius normal="34" />
<height normal="28" />
</collision>
<dropLists>
<drop>
<item id="57" min="85" max="199" chance="70" /> <!-- Adena -->
<item id="36522" min="1" max="1" chance="2.179" /> <!-- Silver -->
</drop>
<spoil>
<item id="36531" min="1" max="1" chance="32.68" /> <!-- Thread -->
<item id="36532" min="1" max="1" chance="0.75" /> <!-- Thin Braid -->
<item id="36880" min="1" max="1" chance="0.003" /> <!-- Recipe: Thread - Downgrade -->
</spoil>
<lucky>
<item id="39629" min="1" max="1" chance="100" /> <!-- Fortune Pocket - Stage 1 -->
</lucky>
</dropLists>
</npc>
<npc id="23721" level="100" type="L2Npc" name="Maze Buffalo">
<race>BEAST</race>
<sex>FEMALE</sex>
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
<vitals hp="15841" hpRegen="7.5" mp="2355" mpRegen="2.7" />
<speed>
<walk ground="20" />
<run ground="180" />
</speed>
<attack physical="23610.1029394933" magical="5767.28134561036" random="10" critical="4" accuracy="5" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" />
<defence physical="3839.95121517957" magical="2066.69244923556" />
<attribute>
<defence fire="150" water="150" wind="150" earth="150" holy="150" dark="150" default="150" />
</attribute>
</stats>
<skillList>
<skill id="5463" level="1" /> <!-- Water Attack -->
<skill id="4416" level="3" /> <!-- Beast -->
</skillList>
<collision>
<radius normal="22" grown="27" />
<height normal="31" grown="38" />
</collision>
</npc>
<npc id="23722" level="61" type="L2Monster" name="Frost Buffalo">
<npc id="23722" level="100" type="L2Monster" name="Frost Buffalo">
<!-- AUTO GENERATED NPC TODO: FIX IT -->
<parameters>
<param name="MoveAroundSocial" value="120" />
<param name="MoveAroundSocial1" value="30" />
<param name="MoveAroundSocial2" value="120" />
<param name="SoulShot" value="100" />
<param name="SoulShotRate" value="10" />
<param name="SpiritShot" value="100" />
<param name="SpiritShotRate" value="5" />
<param name="LongRangeGuardRate" value="5" />
</parameters>
<race>BEAST</race>
<sex>FEMALE</sex>
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
<vitals hp="15841" hpRegen="7.5" mp="2355" mpRegen="2.7" />
<vitals hp="15841.7282909073" hpRegen="7.5" mp="2355.0" mpRegen="2.7" />
<attack physical="15731.52506" magical="1499.53679" random="50" critical="1" accuracy="9" attackSpeed="253" type="BLUNT" range="40" distance="80" width="120" />
<defence physical="5305.35947" magical="1203.311781207645" />
<speed>
<walk ground="20" />
<run ground="180" />
@ -496,34 +529,19 @@
<radius normal="24" />
<height normal="34.7" />
</collision>
<dropLists>
<drop>
<item id="57" min="96" max="225" chance="70" /> <!-- Adena -->
<item id="36527" min="1" max="1" chance="7.262" /> <!-- Synthetic Fiber -->
<!-- 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>
<spoil>
<item id="36531" min="1" max="1" chance="21.07" /> <!-- Thread -->
<item id="36532" min="1" max="1" chance="0.3" /> <!-- Thin Braid -->
<item id="36880" min="1" max="1" chance="0.003" /> <!-- Recipe: Thread - Downgrade -->
<item id="36882" min="1" max="1" chance="0.003" /> <!-- Recipe: Thin Braid - Upgrade -->
<item id="36881" min="1" max="1" chance="9" /> <!-- Recipe: Thin Braid - Downgrade -->
</spoil>
<lucky>
<item id="39629" min="1" max="1" chance="100" /> <!-- Fortune Pocket - Stage 1 -->
</lucky>
</dropLists>
</npc>
<npc id="23723" level="100" type="L2Npc" name="Frost Ursus">
<!-- AUTO GENERATED NPC TODO: FIX IT -->
<parameters>
<param name="MoveAroundSocial" value="120" />
<param name="MoveAroundSocial1" value="30" />
<param name="MoveAroundSocial2" value="120" />
<param name="SoulShot" value="100" />
<param name="SoulShotRate" value="10" />
<param name="SpiritShot" value="100" />
<param name="SpiritShotRate" value="5" />
<param name="LongRangeGuardRate" value="5" />
</parameters>
<race>ANIMAL</race>
<sex>FEMALE</sex>
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
@ -538,6 +556,12 @@
<defence fire="150" water="150" wind="150" earth="150" holy="150" dark="150" default="150" />
</attribute>
</stats>
<status attackable="false" />
<ai clanHelpRange="400" aggroRange="100">
<clanList>
<clan>FROST_ANIMAL</clan>
</clanList>
</ai>
<skillList>
<skill id="5463" level="1" /> <!-- Water Attack -->
<skill id="4416" level="4" /> <!-- Animals -->
@ -547,18 +571,34 @@
<height normal="40" />
</collision>
</npc>
<npc id="23724" level="70" type="L2Monster" name="Buffalo">
<!-- AUTO GENERATED NPC TODO: FIX IT -->
<npc id="23724" level="100" type="L2Monster" name="Buffalo">
<parameters>
<param name="MoveAroundSocial" value="120" />
<param name="MoveAroundSocial1" value="30" />
<param name="MoveAroundSocial2" value="120" />
<param name="SoulShot" value="100" />
<param name="SoulShotRate" value="10" />
<param name="SpiritShot" value="100" />
<param name="SpiritShotRate" value="5" />
<param name="LongRangeGuardRate" value="5" />
</parameters>
<race>BEAST</race>
<sex>FEMALE</sex>
<sex>MALE</sex>
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
<vitals hp="15841" hpRegen="7.5" mp="2355" mpRegen="2.7" />
<vitals hp="15841.04046242775" hpRegen="7.5" mp="2355.0" mpRegen="2.7" />
<attack physical="5731.52506" magical="1499.53679" random="50" critical="1" accuracy="9" attackSpeed="253" type="BLUNT" range="40" distance="80" width="120" />
<defence physical="4305.35947" magical="1203.311781207645" />
<speed>
<walk ground="80" />
<run ground="180" />
</speed>
</stats>
<status attackable="false" />
<ai clanHelpRange="400" aggroRange="100">
<clanList>
<clan>FROST_ANIMAL</clan>
</clanList>
</ai>
<skillList>
<skill id="5463" level="1" /> <!-- Water Attack -->
<skill id="4416" level="3" /> <!-- Beast -->
@ -567,42 +607,35 @@
<radius normal="22" grown="27" />
<height normal="31" grown="38" />
</collision>
<dropLists>
<drop>
<item id="57" min="57" max="131" chance="70" /> <!-- Adena -->
<item id="36518" min="1" max="1" chance="0.3" /> <!-- Durable Leather -->
<item id="36862" min="1" max="1" chance="0.0009" /> <!-- Recipe: Quality Leather - Upgrade -->
<!-- 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>
<spoil>
<item id="36518" min="1" max="1" chance="0.75" /> <!-- Durable Leather -->
</spoil>
<lucky>
<item id="39629" min="1" max="1" chance="100" /> <!-- Fortune Pocket - Stage 1 -->
</lucky>
</dropLists>
</npc>
<npc id="23725" level="62" type="L2Monster" name="Ursus">
<!-- AUTO GENERATED NPC TODO: FIX IT -->
<npc id="23725" level="100" type="L2Monster" name="Ursus">
<parameters>
<param name="MoveAroundSocial" value="120" />
<param name="MoveAroundSocial1" value="30" />
<param name="MoveAroundSocial2" value="120" />
<param name="SoulShot" value="100" />
<param name="SoulShotRate" value="10" />
<param name="SpiritShot" value="100" />
<param name="SpiritShotRate" value="5" />
<param name="LongRangeGuardRate" value="5" />
</parameters>
<race>ANIMAL</race>
<sex>FEMALE</sex>
<sex>MALE</sex>
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
<vitals hp="15841" hpRegen="7.5" mp="2355" mpRegen="2.7" />
<vitals hp="15841.7282909073" hpRegen="7.5" mp="2355.0" mpRegen="2.7" />
<attack physical="5731.52506" magical="1499.53679" random="50" critical="1" accuracy="9" attackSpeed="253" type="BLUNT" range="40" distance="80" width="120" />
<defence physical="4305.35947" magical="1203.311781207645" />
<speed>
<walk ground="40" />
<run ground="180" />
</speed>
</stats>
<status attackable="false" />
<ai clanHelpRange="400" aggroRange="100">
<clanList>
<clan>FROST_ANIMAL</clan>
</clanList>
</ai>
<skillList>
<skill id="5463" level="1" /> <!-- Water Attack -->
<skill id="4416" level="4" /> <!-- Animals -->
@ -611,36 +644,24 @@
<radius normal="21" />
<height normal="40" />
</collision>
<dropLists>
<drop>
<item id="57" min="105" max="245" chance="70" /> <!-- Adena -->
<item id="36518" min="1" max="1" chance="1.413" /> <!-- Durable Leather -->
</drop>
<spoil>
<item id="36532" min="1" max="1" chance="0.75" /> <!-- Thin Braid -->
<item id="36882" min="1" max="1" chance="0.003" /> <!-- Recipe: Thin Braid - Upgrade -->
<item id="36881" min="1" max="1" chance="9" /> <!-- Recipe: Thin Braid - Downgrade -->
</spoil>
<lucky>
<item id="39629" min="1" max="1" chance="100" /> <!-- Fortune Pocket - Stage 1 -->
</lucky>
</dropLists>
</npc>
<npc id="23726" level="100" type="L2Npc" name="Frost Glacier Golem">
<race>ELEMENTAL</race>
<npc id="23726" level="100" type="L2Monster" name="Frost Glacier Golem">
<!-- AUTO GENERATED NPC TODO: FIX IT -->
<race>HUMAN</race>
<sex>FEMALE</sex>
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
<vitals hp="524266" hpRegen="7.5" mp="23928" mpRegen="2.7" />
<speed>
<walk ground="60" />
<run ground="180" />
</speed>
<vitals hp="524266.0" hpRegen="7.5" mp="23928.0" mpRegen="2.7" />
<attack physical="23610.1029394933" magical="5767.28134561036" random="10" critical="4" accuracy="5" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" />
<defence physical="3839.95121517957" magical="2066.69244923556" />
<attribute>
<defence fire="150" water="150" wind="150" earth="150" holy="150" dark="150" default="150" />
</attribute>
<speed>
<walk ground="60" />
<run ground="180" />
</speed>
</stats>
<status attackable="false" />
<skillList>
<skill id="5463" level="1" /> <!-- Water Attack -->
<skill id="4416" level="7" /> <!-- Spirits -->

View File

@ -431,7 +431,7 @@
<knockDown>true</knockDown>
</effect>
<effect name="BlockActions">
<allowedSkills>10279;10517;10025;10776;11770;1904;11264;11093;13314;1912</allowedSkills>
<allowedSkills>10279;10517;10025;10776;11770;1904;11264;11093;13314;1912;30516</allowedSkills>
</effect>
</effects>
</skill>
@ -444,30 +444,80 @@
<coolTime>720</coolTime>
<effectPoint>-96</effectPoint>
<reuseDelay>3000</reuseDelay>
<attributeType>WATER</attributeType>
<attributeValue>20</attributeValue>
<magicCriticalRate>5</magicCriticalRate>
<reuseDelay>10000</reuseDelay>
<targetType>ENEMY</targetType>
<affectScope>SINGLE</affectScope>
<effects>
<effect name="MagicalAttack">
<power>210</power>
</effect>
</effects>
</skill>
<skill id="16552" toLevel="1" name="Ice Fist">
<!-- Deals damage and freezes the opponent. -->
<icon>icon.skill11017</icon>
<operateType>A2</operateType>
<abnormalLvl>1</abnormalLvl>
<abnormalTime>5</abnormalTime>
<mpConsume>19</mpConsume>
<castRange>40</castRange>
<castRange>100</castRange>
<effectRange>900</effectRange>
<affectRange>200</affectRange>
<isMagic>2</isMagic> <!-- Static Skill -->
<hitCancelTime>2</hitCancelTime>
<hitTime>3000</hitTime>
<coolTime>720</coolTime>
<reuseDelay>3000</reuseDelay>
<effectPoint>-96</effectPoint>
<isDebuff>true</isDebuff>
<targetType>ENEMY</targetType>
<affectScope>SINGLE</affectScope>
<effects>
<effect name="PhysicalAttack">
<power>9000</power>
</effect>
<effect name="BlockActions">
<allowedSkills>10279;10517;10025;10776;11770;1904;11264;11093;13314;1912;30516</allowedSkills>
</effect>
</effects>
</skill>
<skill id="16553" toLevel="1" name="Ice Breath">
<!-- Icy breath freezes opponents ahead of you. -->
<icon>icon.skill11017</icon>
<abnormalLvl>1</abnormalLvl>
<abnormalTime>5</abnormalTime>
<abnormalType>FREEZING</abnormalType>
<abnormalVisualEffect>FROZEN_PILLAR</abnormalVisualEffect>
<operateType>A2</operateType>
<affectLimit>5-12</affectLimit>
<mpConsume>10</mpConsume>
<castRange>40</castRange>
<effectRange>400</effectRange>
<hitTime>3000</hitTime>
<coolTime>500</coolTime>
<reuseDelay>10000</reuseDelay>
<effectPoint>-125</effectPoint>
<isDebuff>true</isDebuff>
<targetType>ENEMY_ONLY</targetType>
<affectScope>FAN</affectScope>
<affectObject>NOT_FRIEND</affectObject>
<fanRange>0;0;200;180</fanRange>
<effects>
<effect name="BlockActions">
<allowedSkills>10279;10517;10025;10776;11770;1904;11264;11093;13314;1912;30516</allowedSkills>
</effect>
<effect name="DamOverTime">
<power>115</power>
<ticks>5</ticks>
</effect>
<effect name="Speed">
<amount>-100</amount>
<mode>DIFF</mode>
</effect>
</effects>
</skill>
<skill id="16554" toLevel="1" name="Spinning Slash">
<!-- Deals damage and simultaneously stuns enemies around you. -->
@ -876,7 +926,6 @@
<effect name="MagicalAttack">
<power>1500</power> <!-- TODO -->
</effect>
<effect name="BlockActions" />
<effect name="BlockActions">
<allowedSkills>10279;10517;10025;10776;11770;1904;11264;11093;13314;1912;30516</allowedSkills>
</effect>
@ -926,8 +975,7 @@
<trait>SHOCK</trait>
<isDebuff>true</isDebuff>
<effects>
<effect name="BlockActions" />
<effect name="BlockActions">
<effect name="BlockActions">
<allowedSkills>10279;10517;10025;10776;11770;1904;11264;11093;13314;1912;30516</allowedSkills>
</effect>
</effects>
@ -1064,7 +1112,6 @@
<effect name="PhysicalAttack"> <!-- TODO -->
<power>100000</power>
</effect>
<effect name="BlockActions" />
<effect name="BlockActions">
<allowedSkills>10279;10517;10025;10776;11770;1904;11264;11093;13314;1912;30516</allowedSkills>
</effect>

View File

@ -1097,4 +1097,22 @@
<stat name="instanceId" val="260" />
<node X="-81666" Y="152746" />
</zone>
<zone name="Mystic_Tavern_Freya_Zone1" id="80013" type="ScriptZone" shape="Cylinder" minZ="-2800" maxZ="-2750" rad="600">
<node X="224795" Y="-38613" />
</zone>
<zone name="Mystic_Tavern_Freya_Zone2" id="80014" type="ScriptZone" shape="Cylinder" minZ="-2800" maxZ="-2750" rad="1800">
<node X="225935" Y="-41215" />
</zone>
<zone name="Mystic_Tavern_Freya_Zone3" id="80015" type="ScriptZone" shape="Cylinder" minZ="-2700" maxZ="-2500" rad="1800">
<node X="222305" Y="-44945" />
</zone>
<zone name="Mystic_Tavern_Freya_Zone4" id="80016" type="ScriptZone" shape="Cylinder" minZ="-2350" maxZ="-2250" rad="1500">
<node X="219147" Y="-47983" />
</zone>
<zone name="Mystic_Tavern_Freya_Zone5" id="80017" type="ScriptZone" shape="Cylinder" minZ="-2700" maxZ="-2550" rad="1600">
<node X="223625" Y="-48360" />
</zone>
<zone name="Mystic_Tavern_Freya_Zone6" id="80018" type="ScriptZone" shape="Cylinder" minZ="-2650" maxZ="-2500" rad="1100">
<node X="225947" Y="-50420" />
</zone>
</list>

View File

@ -1,4 +0,0 @@
<html><body>Mystic Summoning Crystal:<br>
A blue crystal. You can summon an employee by pressing on the crystal.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Quest">"So if I press this..."</button>
</body></html>

View File

@ -0,0 +1,166 @@
<?xml version="1.0" encoding="UTF-8"?>
<instance id="261" maxWorlds="100" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../xsd/instance.xsd">
<time duration="60" empty="0" />
<removeBuffs type="ALL" />
<locations>
<enter type="FIXED">
<location x="212440" y="-46728" z="-11225" />
</enter>
<exit type="FIXED" >
<location x="-50152" y="-148232" z="-14181" />
</exit>
</locations>
<parameters>
<param name="1_st_door" value="26160602" />
</parameters>
<reenter apply="ON_ENTER">
<reset day="WEDNESDAY" hour="6" minute="30" />
<reset day="SATURDAY" hour="6" minute="30" />
</reenter>
<doorlist>
<door id="26160602"/>
</doorlist>
<spawnlist>
<group name="general" spawnByDefault="true">
<npc id="34171" x="213077" y="-49260" z="-11225" heading="22517" /> <!-- Melisa -->
<npc id="34172" x="212936" y="-49260" z="-11225" heading="7855" /> <!-- Sayan -->
</group>
<group name="helper" spawnByDefault="true">
<npc id="34173" x="213096" y="-47704" z="-11225" heading="16383" /> <!-- Kanna -->
<npc id="34174" x="212309" y="-43139" z="-880" heading="0" /> <!-- Sirra -->
</group>
<group name="monsters" spawnByDefault="true">
<npc id="23724" x="216904" y="-41912" z="-1126" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="216760" y="-41784" z="-1131" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="217048" y="-41784" z="-1166" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="217208" y="-41688" z="-1208" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="217240" y="-41448" z="-1248" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="221352" y="-39384" z="-2758" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="221320" y="-39320" z="-2757" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="221224" y="-39080" z="-2758" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="223784" y="-40200" z="-2798" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="223640" y="-40280" z="-2798" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="223688" y="-40360" z="-2798" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="223800" y="-40360" z="-2798" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="224168" y="-42056" z="-2785" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="224280" y="-41928" z="-2772" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="224104" y="-41928" z="-2786" heading="0" /> <!-- Buffalo -->
<npc id="23725" x="223080" y="-38664" z="-2720" heading="0" /> <!-- Ursus -->
<npc id="23725" x="223624" y="-40104" z="-2791" heading="0" /> <!-- Ursus -->
<npc id="23725" x="218104" y="-39896" z="-1756" heading="0" /> <!-- Ursus -->
<npc id="23725" x="218056" y="-39784" z="-1748" heading="0" /> <!-- Ursus -->
<npc id="23686" x="219416" y="-41032" z="-2166" heading="0" /> <!-- Frost Glacier Golem -->
<npc id="23686" x="216904" y="-39880" z="-1358" heading="0" /> <!-- Frost Glacier Golem -->
<npc id="23686" x="224616" y="-38552" z="-2814" heading="0" /> <!-- Frost Glacier Golem -->
<npc id="23686" x="225976" y="-38760" z="-2813" heading="0" /> <!-- Frost Glacier Golem -->
<npc id="23686" x="218696" y="-48984" z="-2344" heading="0" /> <!-- Frost Glacier Golem -->
<npc id="23686" x="226264" y="-51032" z="-2622" heading="0" /> <!-- Frost Glacier Golem -->
<npc id="23686" x="226686" y="-41711" z="-2776" heading="0" /> <!-- Frost Glacier Golem -->
<npc id="23686" x="222306" y="-44947" z="-2600" heading="0" /> <!-- Frost Glacier Golem -->
<npc id="23686" x="219492" y="-49018" z="-2312" heading="0" /> <!-- Frost Glacier Golem -->
<npc id="23686" x="226160" y="-45974" z="-2768" heading="0" /> <!-- Frost Glacier Golem -->
<npc id="23686" x="223808" y="-48315" z="-2624" heading="0" /> <!-- Frost Glacier Golem -->
<npc id="23687" x="221976" y="-51944" z="-2610" heading="0" /> <!-- Frost Glacier Golem -->
<npc id="23688" x="219896" y="-41496" z="-2175" heading="0" /> <!-- Frost Knight -->
<npc id="23688" x="220136" y="-41112" z="-2199" heading="0" /> <!-- Frost Knight -->
<npc id="23688" x="222184" y="-38024" z="-2731" heading="0" /> <!-- Frost Knight -->
<npc id="23688" x="222488" y="-38168" z="-2723" heading="0" /> <!-- Frost Knight -->
<npc id="23719" x="225720" y="-40792" z="-2792" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="225688" y="-41064" z="-2788" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="225704" y="-41336" z="-2789" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="225912" y="-41576" z="-2798" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="226648" y="-41528" z="-2809" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="226712" y="-41128" z="-2799" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="226360" y="-40936" z="-2799" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="226152" y="-41240" z="-2803" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="226264" y="-41432" z="-2807" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="226264" y="-41432" z="-2807" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="219976" y="-46808" z="-2369" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="219800" y="-46728" z="-2364" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="219448" y="-46632" z="-2345" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="219016" y="-46664" z="-2339" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="219032" y="-46984" z="-2344" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="219320" y="-47256" z="-2346" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="219080" y="-47448" z="-2345" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="218808" y="-47768" z="-2339" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="218776" y="-48040" z="-2338" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="218840" y="-48456" z="-2341" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="219128" y="-48536" z="-2345" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="219592" y="-48216" z="-2351" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="225496" y="-45000" z="-2783" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="225704" y="-44808" z="-2801" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="226152" y="-44792" z="-2799" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="226104" y="-45016" z="-2800" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="226408" y="-45240" z="-2799" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="226328" y="-45496" z="-2802" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="226120" y="-45544" z="-2799" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="226120" y="-45544" z="-2799" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="222312" y="-47848" z="-2604" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="222360" y="-47896" z="-2612" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="222536" y="-47992" z="-2627" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="222792" y="-48008" z="-2637" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="223000" y="-47912" z="-2640" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="222952" y="-48008" z="-2644" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="223592" y="-50584" z="-2609" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="223512" y="-50744" z="-2612" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="222776" y="-50648" z="-2619" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="222600" y="-50632" z="-2620" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="222376" y="-50600" z="-2624" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="222232" y="-50664" z="-2630" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="222072" y="-50920" z="-2651" heading="0" /> <!-- Frozen Knight -->
<npc id="23719" x="222248" y="-50984" z="-2636" heading="0" /> <!-- Frozen Knight -->
<npc id="23722" x="221672" y="-43976" z="-2678" heading="0" /> <!-- Frost Buffalo -->
<npc id="23722" x="221080" y="-45080" z="-2619" heading="0" /> <!-- Frost Buffalo -->
<npc id="23722" x="222360" y="-46136" z="-2616" heading="0" /> <!-- Frost Buffalo -->
</group>
<group name="knight" spawnByDefault="false">
<npc id="23703" x="212199" y="-43251" z="-840" heading="6357" /> <!-- Ice Knight -->
<npc id="34175" x="212161" y="-43295" z="-840" heading="8782" /> <!-- Knight -->
<npc id="34175" x="212248" y="-43291" z="-840" heading="527" /> <!-- Knight -->
<npc id="34175" x="212186" y="-43200" z="-840" heading="49418" /> <!-- Knight -->
</group>
<group name="knightSolo" spawnByDefault="false">
<npc id="23703" x="223304" y="-42488" z="-2783" heading="0" /> <!-- Ice Knight -->
<npc id="34175" x="214152" y="-42200" z="-861" heading="0" /> <!-- Knight -->
<npc id="34175" x="214440" y="-42344" z="-917" heading="0" /> <!-- Knight -->
<npc id="34175" x="214440" y="-42376" z="-917" heading="0" /> <!-- Knight -->
</group>
<group name="buffalo" spawnByDefault="false">
<npc id="23724" x="226568" y="-40936" z="-2804" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="226664" y="-41240" z="-2806" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="226552" y="-41400" z="-2807" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="226472" y="-41352" z="-2808" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="226152" y="-41096" z="-2806" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="225896" y="-41064" z="-2806" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="225608" y="-41016" z="-2808" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="225416" y="-41064" z="-2798" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="225688" y="-41512" z="-2798" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="225848" y="-41832" z="-2800" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="226040" y="-41992" z="-2798" heading="0" /> <!-- Buffalo -->
<npc id="23724" x="226264" y="-41432" z="-2807" heading="0" /> <!-- Buffalo -->
<npc id="23725" x="226760" y="-40872" z="-2798" heading="0" /> <!-- Ursus -->
</group>
<group name="panthera" spawnByDefault="false">
<npc id="23720" x="219656" y="-48616" z="-2345" heading="0" /> <!-- Panthera -->
<npc id="23720" x="219800" y="-48696" z="-2350" heading="0" /> <!-- Panthera -->
<npc id="23720" x="219352" y="-48824" z="-2340" heading="0" /> <!-- Panthera -->
<npc id="23720" x="219160" y="-48824" z="-2341" heading="0" /> <!-- Panthera -->
<npc id="23720" x="218936" y="-48568" z="-2340" heading="0" /> <!-- Panthera -->
<npc id="23720" x="218872" y="-48232" z="-2338" heading="0" /> <!-- Panthera -->
<npc id="23720" x="218696" y="-47768" z="-2338" heading="0" /> <!-- Panthera -->
<npc id="23720" x="218680" y="-47528" z="-2338" heading="0" /> <!-- Panthera -->
<npc id="23720" x="218952" y="-47240" z="-2342" heading="0" /> <!-- Panthera -->
<npc id="23720" x="219352" y="-47064" z="-2345" heading="0" /> <!-- Panthera -->
</group>
<group name="ursus" spawnByDefault="false">
<npc id="23723" x="225160" y="-50712" z="-2593" heading="0" /> <!-- Frost Ursus -->
<npc id="23723" x="224808" y="-50536" z="-2598" heading="0" /> <!-- Frost Ursus -->
<npc id="23723" x="224104" y="-49544" z="-2609" heading="0" /> <!-- Frost Ursus -->
<npc id="23723" x="224312" y="-49016" z="-2616" heading="0" /> <!-- Frost Ursus -->
<npc id="23723" x="224120" y="-48616" z="-2655" heading="0" /> <!-- Frost Ursus -->
</group>
<group name="freya" spawnByDefault="false">
<npc id="23689" x="213032" y="-49256" z="-11230" heading="0" /> <!-- Freya -->
</group>
</spawnlist>
</instance>

View File

@ -0,0 +1,3 @@
<html><body>Mystic Summoning Crystal:<br>
You are not the party leader.
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Mystic Summoning Crystal:<br>
Someone on your party is too low level to listen to a story like this.
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Mystic Summoning Crystal:<br>
You need a party to tell a story.
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Mystic Summoning Crystal:<br>
All party members must have completed the <font color="LEVEL">Grand Opening! Come to Our Pub!</font> quest.
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Mystic Summoning Crystal:<br>
You already told some stories, come back later.
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Mystic Summoning Crystal:<br>
You need more people to tell a story.
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Mystic Summoning Crystal:<br>
All members must sit on a chair to start with the story.
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Mystic Summoning Crystal:<br>
A blue crystal. You can start telling a story by pressing on the crystal.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest MysticTavern tellStory">"So if I press this..."</Button>
</body></html>

View File

@ -0,0 +1,147 @@
/*
* 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.MysticTavern;
import java.util.ArrayList;
import java.util.List;
import com.l2jmobius.gameserver.instancemanager.InstanceManager;
import com.l2jmobius.gameserver.model.L2Party;
import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.quest.QuestState;
import ai.AbstractNpcAI;
import instances.MysticTavern.StoryOfFreya.StoryOfFreya;
import quests.Q10297_GrandOpeningComeToOurPub.Q10297_GrandOpeningComeToOurPub;
/**
* This AI manages the entry to the Mystic Tavern instances.
* @URL https://l2wiki.com/Mystic_Tavern
* @VIDEO FREYA: https://www.youtube.com/watch?v=-pUB6ghrsLI
* @VIDEO TAUTI: https://www.youtube.com/watch?v=_Wz-kxXzJK4
* @VIDEO KELBIM: https://www.youtube.com/watch?v=wL1D49u6vxE
* @author Mobius
*/
public class MysticTavern extends AbstractNpcAI
{
// NPC
private static final int GLOBE = 34200;
// Instances
private static final int INSTANCE_FREYA = 261;
// private static final int INSTANCE_TAUTI = 262;
// private static final int INSTANCE_KELBIM = 263;
// Misc
private static final int MINIMUM_PLAYER_LEVEL = 99;
private static final int MINIMUM_PARTY_MEMBERS = 5;
public MysticTavern()
{
addFirstTalkId(GLOBE);
}
@Override
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
if (event.equals("tellStory"))
{
final List<Integer> availableInstances = new ArrayList<>();
availableInstances.add(INSTANCE_FREYA);
// availableInstances.add(INSTANCE_TAUTI);
// availableInstances.add(INSTANCE_KELBIM);
if (!player.isGM())
{
final L2Party party = player.getParty();
if (party == null)
{
return "34200-no-party.html";
}
if (party.getLeader() != player)
{
return "34200-no-leader.html";
}
if (party.getMemberCount() < MINIMUM_PARTY_MEMBERS)
{
return "34200-not-enough-members.html";
}
for (L2PcInstance member : party.getMembers())
{
if ((member == null) || !member.isSitting() || (member.calculateDistance3D(player) > 500))
{
return "34200-not-sitting.html";
}
if (member.getLevel() < MINIMUM_PLAYER_LEVEL)
{
return "34200-no-level.html";
}
final QuestState qs = member.getQuestState(Q10297_GrandOpeningComeToOurPub.class.getSimpleName());
if ((qs == null) || !qs.isCompleted())
{
return "34200-no-quest.html";
}
if (InstanceManager.getInstance().getInstanceTime(member, INSTANCE_FREYA) > 0)
{
availableInstances.remove(INSTANCE_FREYA);
}
// if (InstanceManager.getInstance().getInstanceTime(member, INSTANCE_TAUTI) > 0)
// {
// availableInstances.remove(INSTANCE_TAUTI);
// }
// if (InstanceManager.getInstance().getInstanceTime(member, INSTANCE_KELBIM) > 0)
// {
// availableInstances.remove(INSTANCE_KELBIM);
// }
}
if (availableInstances.isEmpty())
{
return "34200-not-available.html";
}
}
// enter randomly
switch (availableInstances.get(getRandom(availableInstances.size())))
{
case INSTANCE_FREYA:
{
player.processQuestEvent(StoryOfFreya.class.getSimpleName(), "start_story");
break;
}
// case INSTANCE_TAUTI:
// {
// player.processQuestEvent(StoryOfTauti.class.getSimpleName(), "start_story");
// break;
// }
// case INSTANCE_KELBIM:
// {
// player.processQuestEvent(StoryOfKelbim.class.getSimpleName(), "start_story");
// break;
// }
}
}
return null;
}
@Override
public String onFirstTalk(L2Npc npc, L2PcInstance player)
{
return "34200.html";
}
public static void main(String[] args)
{
new MysticTavern();
}
}

View File

@ -0,0 +1,4 @@
<html><body>Sage Sayan:<br>
Are you a traveler? I was in need of some help. Glad to see you here.<br>
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest StoryOfFreya 34172-02.html">"I can help."</Button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Sage Sayan:<br>
I used to have a rare treasure. It's a crystal filled with cold energy. I was showing it to the Princess, but I dropped it and the cold energy engulfed her.<br>
The cold has been affecting her. I have to help her out, but can't leave her side. <br>
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest StoryOfFreya 34172-03.html">"What do you need to do?"</Button>
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>Sage Sayan:<br>
The crystal is special, so even if it breaks, you can make a crystal with the shards. Once the crystal is made, it will gain back its power, so as long as we get the shards, we can save the Princess by taking out all the cold energy from her.<br>
The problem is that the crystal shards are scattered around the Labyrinth... I can't leave this place, since I have to watch over the Princess. Do you think you can help? I can send you to the Labyrinth to collect the Ice Crystal Shards.<br>
Please keep in mind that I can't send all of you at once. Come to me one by one, and I'll send you.<br>
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest StoryOfFreya startInstance">"Alright, please send me to the Summer Labyrinth."</Button>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Sage Sayan:<br>
Someone hasn't given me the shard yet. Please wait until I get all of them.
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>Sayan:<br>
Hello, there. I'm Sayan.<br>
People call me a sage, but please just refer to me as Sayan. I'm staying by Princess Melissa's side, to tell her about the things that go around in the world.<br>
Issues do arise, but the Princess likes to hear about the world.<br>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h Quest StoryOfFreya 34172-06.html">Quest</Button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Sayan:<br>
Oh! You've found all the shards. I'll take care of the rest.<br>
Princess Melissa has been in pain for a long time, so it won't be easy to heal her, but I'm sure that if everyone stays around to watch her get better, she'll feel better soon.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest StoryOfFreya startFreya">"Let's get started."</Button>
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>Sayan:<br>
Hello, there. I'm Sayan.<br>
People call me a sage, but please just refer to me as Sayan. I'm staying by Princess Melissa's side, to tell her about the things that go around in the world.<br>
Issues do arise, but the Princess likes to hear about the world.<br>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h Quest StoryOfFreya 34172-01.html">Quest</Button>
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>Knight Captain Kanna:<br>
Hello, this is Princess Melissa's castle. The door is closed, so I can't go in, but the Princess has been making painful noises. Have you finished already?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest StoryOfFreya openDoor">"I would like to go inside."</Button><br>
If you haven't finished Sayan's request, I can send you to the old Summer Labyrinth.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest StoryOfFreya summerLabirynth">"Yes, I would like to go the old Summer Labyrinth."</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Knight Captain Kanna:<br>
There's someone out of range. Please gather around me to go meet Princess Melissa.<br>
I'll open the door once you gather around.
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Knight Captain Kanna:<br>
It looks like you aren't the party leader, or aren't part of party either. I can only help the party leader.
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Knight Captain Kanna:<br>
Hello, this is Princess Melissa's castle. How can I help you?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest StoryOfFreya openDoor">"I would like to go inside."</Button>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Sirra:<br>
You can't fool me. You must be a party leader for me to help you out.
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Sirra:<br>
Princess Melissa... always making my life more difficult. But I guess that's my job.<br>
What brings you here, traveler? Did you finish?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest StoryOfFreya backCastle">"I want to go back to the castle."</Button>
</body></html>

View File

@ -0,0 +1,473 @@
/*
* 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.MysticTavern.StoryOfFreya;
import java.util.List;
import com.l2jmobius.Config;
import com.l2jmobius.gameserver.enums.Movie;
import com.l2jmobius.gameserver.instancemanager.QuestManager;
import com.l2jmobius.gameserver.instancemanager.ZoneManager;
import com.l2jmobius.gameserver.model.L2Party;
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.FriendlyNpcInstance;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.instancezone.Instance;
import com.l2jmobius.gameserver.model.quest.Quest;
import com.l2jmobius.gameserver.model.quest.QuestState;
import com.l2jmobius.gameserver.model.zone.type.L2ScriptZone;
import com.l2jmobius.gameserver.network.NpcStringId;
import com.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import com.l2jmobius.gameserver.network.serverpackets.OnEventTrigger;
import instances.AbstractInstance;
import quests.Q00835_PitiableMelisa.Q00835_PitiableMelisa;
/**
* Mystic Tavern Freya Instance
* @author Gigi
* @date 2019-02-05 - [19:54:29]
*/
public class StoryOfFreya extends AbstractInstance
{
// NPCs
private static final int SAYAN = 34172;
private static final int KANNA = 34173;
private static final int SYRRA = 34174;
private static final int FREYA = 23689;
private static final int ICE_KNIGHT = 23703;
private static final int KNIGHT = 34175;
private static final int FROST_GOLEM = 23686;
private static final int FROST_KNIGHT = 23688;
private static final int GLACIER_GOLEM = 23718;
private static final int GLACIER_FROSTBRINGER = 23687;
// Other
private static final int TEMPLATE_ID = 261;
private static final int ICE_CRYSTAL_SHARD = 46594;
private static final Location CASTLE_TELEPORT = new Location(212410, -46728, -11225);
private static final Location LABIRYNTH_TELEPORT = new Location(213145, -43145, -872);
private static final L2ScriptZone FIRST_SPAWN_ZONE = ZoneManager.getInstance().getZoneById(80013, L2ScriptZone.class);
private static final L2ScriptZone SECOND_SPAWN_ZONE = ZoneManager.getInstance().getZoneById(80014, L2ScriptZone.class);
private static final L2ScriptZone THRID_SPAWN_ZONE = ZoneManager.getInstance().getZoneById(80015, L2ScriptZone.class);
private static final L2ScriptZone FOURTH_SPAWN_ZONE = ZoneManager.getInstance().getZoneById(80016, L2ScriptZone.class);
private static final L2ScriptZone FIFTH_SPAWN_ZONE = ZoneManager.getInstance().getZoneById(80017, L2ScriptZone.class);
private static final L2ScriptZone SIXTH_SPAWN_ZONE = ZoneManager.getInstance().getZoneById(80018, L2ScriptZone.class);
private static final int FREYA_SNOW = 26160228;
public StoryOfFreya()
{
super(TEMPLATE_ID);
addTalkId(SAYAN, KANNA, SYRRA);
addFirstTalkId(SAYAN, KANNA, SYRRA);
addSpawnId(FREYA, ICE_KNIGHT);
addAttackId(FROST_GOLEM, GLACIER_FROSTBRINGER, FREYA);
addKillId(ICE_KNIGHT, FROST_GOLEM, GLACIER_FROSTBRINGER, FREYA);
}
@Override
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
String htmltext = null;
final Instance world = npc.getInstanceWorld();
if (isInInstance(world))
{
switch (event)
{
case "34172-02.html":
case "34172-03.html":
{
htmltext = event;
break;
}
case "34172-01.html":
{
if (!player.isInParty() || !player.getParty().isLeader(player))
{
htmltext = "34172-04.html";
break;
}
htmltext = event;
break;
}
case "34172-06.html":
{
if (!player.isInParty() || !player.getParty().isLeader(player))
{
htmltext = "34172-04.html";
break;
}
final L2Party party = player.getParty();
final List<L2PcInstance> members = party.getMembers();
for (L2PcInstance member : members)
{
if (member.isInsideRadius3D(npc, Config.ALT_PARTY_RANGE))
{
QuestProgress(npc, member);
}
}
htmltext = event;
break;
}
case "start_story":
{
player.standUp();
enterInstance(player, null, TEMPLATE_ID);
if (player.getParty() != null)
{
for (L2PcInstance member : player.getParty().getMembers())
{
if (member != player)
{
member.standUp();
member.teleToLocation(player, player.getInstanceWorld());
}
}
}
break;
}
case "startInstance":
{
if (player.isInParty())
{
final L2Party party = player.getParty();
final List<L2PcInstance> members = party.getMembers();
for (L2PcInstance member : members)
{
if (member.isInsideRadius3D(npc, Config.ALT_PARTY_RANGE))
{
member.teleToLocation(LABIRYNTH_TELEPORT, world.getTemplateId());
world.setStatus(1);
QuestProgress(npc, member);
}
}
if (getRandom(10) < 5)
{
world.spawnGroup("knight");
world.broadcastPacket(new ExShowScreenMessage(NpcStringId.ICE_KNIGHTS_GOT_IN_DEFEAT_THE_ICE_KNIGHTS, ExShowScreenMessage.TOP_CENTER, 20000, true));
}
else
{
world.spawnGroup("knightSolo");
}
}
break;
}
case "openDoor":
{
if (world.isStatus(0))
{
if (!player.isInParty() || !player.getParty().isLeader(player))
{
htmltext = "34173-03.html";
break;
}
if (player.isInParty())
{
final L2Party party = player.getParty();
final List<L2PcInstance> members = party.getMembers();
for (L2PcInstance member : members)
{
if ((member == null) || (member.calculateDistance3D(npc) > 300))
{
htmltext = "34173-02.html";
break;
}
}
}
world.openCloseDoor(world.getTemplateParameters().getInt("1_st_door"), true);
startQuestTimer("closeDoor", 60000, npc, null);
break;
}
else if (world.getStatus() > 0)
{
if (player.getInventory().getInventoryItemCount(ICE_CRYSTAL_SHARD, -1) == 10)
{
world.openCloseDoor(world.getTemplateParameters().getInt("1_st_door"), true);
startQuestTimer("closeDoor", 30000, npc, null);
break;
}
htmltext = "34173-03.html";
break;
}
}
case "closeDoor":
{
world.openCloseDoor(world.getTemplateParameters().getInt("1_st_door"), false);
break;
}
case "summerLabirynth":
{
player.teleToLocation(LABIRYNTH_TELEPORT, world.getTemplateId());
break;
}
case "backCastle":
{
if (!player.isInParty() || !player.getParty().isLeader(player))
{
htmltext = "34174-01.html";
break;
}
if (player.isInParty())
{
final L2Party party = player.getParty();
final List<L2PcInstance> members = party.getMembers();
for (L2PcInstance member : members)
{
if (member.isInsideRadius3D(npc, Config.ALT_PARTY_RANGE))
{
player.teleToLocation(CASTLE_TELEPORT, world.getTemplateId());
}
}
}
break;
}
case "startFreya":
{
world.despawnGroup("general");
playMovie(world.getPlayers(), Movie.EPIC_FREYA_SCENE);
startQuestTimer("freyaSpawn", 20000, npc, null);
break;
}
case "freyaSpawn":
{
world.spawnGroup("freya");
world.broadcastPacket(new OnEventTrigger(FREYA_SNOW, true));
break;
}
case "startAttack":
{
for (final L2Npc nearby : L2World.getInstance().getVisibleObjectsInRange(npc, FriendlyNpcInstance.class, 300))
{
if (nearby.getId() == KNIGHT)
{
nearby.setIsInvul(true);
npc.reduceCurrentHp(1, nearby, null);
nearby.reduceCurrentHp(1, npc, null);
addAttackDesire(nearby, npc);
}
}
break;
}
case "finishInstance":
{
world.finishInstance(0);
break;
}
}
}
return htmltext;
}
@Override
public String onAttack(L2Npc npc, L2PcInstance attacker, int damage, boolean isSummon)
{
final Instance world = npc.getInstanceWorld();
if (isInInstance(world))
{
switch (npc.getId())
{
case FROST_GOLEM:
{
if ((FIRST_SPAWN_ZONE.isInsideZone(npc) || SIXTH_SPAWN_ZONE.isInsideZone(npc)) && (npc.isScriptValue(0)))
{
npc.setScriptValue(1);
for (int i = 0; i < 6; i++)
{
final L2Npc knight = addSpawn(FROST_KNIGHT, npc.getX() + getRandom(-100, 100), npc.getY() + getRandom(-100, 100), npc.getZ(), getRandom(64000), false, 300000, false, world.getId());
addAttackPlayerDesire(knight, attacker);
}
}
if (THRID_SPAWN_ZONE.isInsideZone(npc) && (npc.isScriptValue(0)))
{
npc.setScriptValue(1);
for (int a = 0; a < 8; a++)
{
final L2Npc golem = addSpawn(GLACIER_GOLEM, npc.getX() + getRandom(-100, 100), npc.getY() + getRandom(-100, 100), npc.getZ(), getRandom(64000), false, 300000, false, world.getId());
addAttackPlayerDesire(golem, attacker);
}
}
break;
}
case GLACIER_FROSTBRINGER:
{
if (npc.isScriptValue(0))
{
npc.setScriptValue(1);
for (int b = 0; b < 4; b++)
{
final L2Npc knight = addSpawn(FROST_KNIGHT, npc.getX() + getRandom(-100, 100), npc.getY() + getRandom(-100, 100), npc.getZ(), getRandom(64000), false, 300000, false, world.getId());
addAttackPlayerDesire(knight, attacker);
}
}
break;
}
case FREYA:
{
if (npc.isScriptValue(0))
{
npc.setScriptValue(1);
for (int c = 0; c < 6; c++)
{
final L2Npc knight = addSpawn(FROST_KNIGHT, npc.getX() + getRandom(-100, 100), npc.getY() + getRandom(-100, 100), npc.getZ(), getRandom(64000), false, 300000, false, world.getId());
addAttackPlayerDesire(knight, attacker);
}
}
break;
}
}
}
return super.onAttack(npc, attacker, damage, isSummon);
}
@Override
public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon)
{
final Instance world = npc.getInstanceWorld();
if (isInInstance(world))
{
switch (npc.getId())
{
case FROST_GOLEM:
{
if (SECOND_SPAWN_ZONE.isInsideZone(npc))
{
world.spawnGroup("buffalo");
}
if (FOURTH_SPAWN_ZONE.isInsideZone(npc) && (world.getStatus() == 1))
{
world.setStatus(2);
world.broadcastPacket(new ExShowScreenMessage(NpcStringId.AN_INTENSE_COLD_IS_COMING_LOOK_AROUND, ExShowScreenMessage.TOP_CENTER, 7000, true));
world.spawnGroup("panthera");
}
if (FIFTH_SPAWN_ZONE.isInsideZone(npc))
{
world.spawnGroup("ursus");
}
break;
}
case GLACIER_FROSTBRINGER:
{
addSpawn(SYRRA, npc, false, 120000, false, world.getId());
break;
}
case FREYA:
{
startQuestTimer("finishInstance", 5000, npc, null);
if (player.isInParty())
{
final L2Party party = player.getParty();
final List<L2PcInstance> members = party.getMembers();
for (L2PcInstance member : members)
{
if (member.isInsideRadius3D(npc, Config.ALT_PARTY_RANGE))
{
QuestProgress(npc, member);
}
}
}
break;
}
}
}
return super.onKill(npc, player, isSummon);
}
@Override
public String onSpawn(L2Npc npc)
{
final Instance world = npc.getInstanceWorld();
if (isInInstance(world))
{
switch (npc.getId())
{
case FREYA:
{
npc.setCurrentHp(npc.getMaxHp() / 2);
break;
}
case ICE_KNIGHT:
{
startQuestTimer("startAttack", 2000, npc, null);
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 SAYAN:
{
if (world.isStatus(0))
{
htmltext = "34172.html";
break;
}
htmltext = "34172-05.html";
break;
}
case KANNA:
{
if (world.isStatus(0))
{
htmltext = "34173.html";
break;
}
htmltext = "34173-01.html";
break;
}
case SYRRA:
{
htmltext = "34174.html";
break;
}
}
}
return htmltext;
}
protected void QuestProgress(L2Npc npc, L2PcInstance player)
{
final QuestState qs = player.getQuestState(Q00835_PitiableMelisa.class.getSimpleName());
if ((qs != null) && qs.isStarted())
{
final Quest qs835 = QuestManager.getInstance().getQuest(Q00835_PitiableMelisa.class.getSimpleName());
if (qs835 != null)
{
qs835.notifyEvent("NOTIFY_Q835", npc, player);
}
}
}
public static void main(String[] args)
{
new StoryOfFreya();
}
}

View File

@ -88,7 +88,6 @@
832 Hunter Guild Request - Southern Region, Isle of Prayer
833 Devil's Treasure, Tauti
834 Against Dragonclaw
835 Pitiable Melisa
836 Request from the Blackbird Clan
837 Request from the Giant Trackers
838 Request from the Mother Tree Guardians

View File

@ -0,0 +1,6 @@
<html><body>Mystic Tavern Owner Settlen:<br>
Did you hear Princess Melissa's story? Such a pity.<br>
From what I heard... Sage Sayan is not human. Well, I'm not sure what he is.<br>
Princess Melissa isn't the only one who's suffered like that, though. Even her maid, Sirra was affected by it. Anyway, was the story fun?<br>
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q00835_PitiableMelisa 34180-02.html">"Yes, thank you"</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Mystic Tavern Owner Settlen:<br>
Thank you for listening to our stories with such great interest. Here's a small gift for you.<br>
Please come by often and let's all have a great time again.
</body></html>

View File

@ -0,0 +1,157 @@
/*
* 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 quests.Q00835_PitiableMelisa;
import com.l2jmobius.Config;
import com.l2jmobius.gameserver.enums.Movie;
import com.l2jmobius.gameserver.enums.QuestType;
import com.l2jmobius.gameserver.model.actor.L2Character;
import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.quest.Quest;
import com.l2jmobius.gameserver.model.quest.QuestState;
import com.l2jmobius.gameserver.model.quest.State;
/**
* Pitiable Melisa (835)
* @URL https://l2wiki.com/Pitiable_Melisa
* @author Gigi
* @date 2019-02-04 - [23:59:06]
*/
public class Q00835_PitiableMelisa extends Quest
{
// NPCs
private static final int KANNA = 34173;
private static final int SETTLEN = 34180;
// Monsters
private static final int[] MONSTERS =
{
23686, // Frost Glacier Golem
23687 // Glacier Golem
};
// Items
private static final int ICE_CRYSTAL_SHARD = 46594;
private static final int FRENZED_TAUTIS_FRAGMENT = 47884;
private static final int INSANE_KELBIMS_FRAGMENT = 47885;
private static final int SOE_MISTYC_TAVERN = 46564;
private static final int MYSTIC_ARMOR_PIACE = 46587;
public Q00835_PitiableMelisa()
{
super(835);
addStartNpc(KANNA);
addTalkId(SETTLEN);
addSeeCreatureId(KANNA);
addKillId(MONSTERS);
registerQuestItems(ICE_CRYSTAL_SHARD);
}
@Override
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
String htmltext = null;
final QuestState qs = getQuestState(player, false);
switch (event)
{
case "NOTIFY_Q835":
{
qs.setCond(qs.getCond() + 1, true);
break;
}
case "34180-02.html":
{
final int chance = getRandom(100);
if (chance <= 10)
{
giveItems(player, FRENZED_TAUTIS_FRAGMENT, 1);
}
else if ((chance > 10) && (chance <= 20))
{
giveItems(player, INSANE_KELBIMS_FRAGMENT, 1);
}
else if ((chance > 20) && (chance <= 50))
{
giveItems(player, MYSTIC_ARMOR_PIACE, 1);
}
else
{
giveItems(player, SOE_MISTYC_TAVERN, 1);
}
addExpAndSp(player, 6_362_541_900L, 15_270_101);
qs.exitQuest(QuestType.REPEATABLE, true);
htmltext = event;
break;
}
}
return htmltext;
}
@Override
public String onTalk(L2Npc npc, L2PcInstance player)
{
String htmltext = getNoQuestMsg(player);
final QuestState qs = getQuestState(player, true);
switch (qs.getState())
{
case State.STARTED:
{
if (qs.isCond(5))
{
htmltext = "34180-01.html";
}
}
}
return htmltext;
}
@Override
public String onSeeCreature(L2Npc npc, L2Character creature, boolean isSummon)
{
final L2PcInstance player = creature.getActingPlayer();
if (player != null)
{
final QuestState qs = getQuestState(player, true);
if (!qs.isStarted())
{
playMovie(player, Movie.EPIC_FREYA_SLIDE);
qs.startQuest();
}
}
return super.onSeeCreature(npc, creature, isSummon);
}
@Override
public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon)
{
executeForEachPlayer(player, npc, isSummon, true, false);
return super.onKill(npc, player, isSummon);
}
@Override
public void actionForEachPlayer(L2PcInstance player, L2Npc npc, boolean isSummon)
{
final QuestState qs = getQuestState(player, false);
if ((qs != null) && qs.isCond(2) && player.isInsideRadius3D(npc, Config.ALT_PARTY_RANGE))
{
if (giveItemRandomly(player, npc, ICE_CRYSTAL_SHARD, 1, 10, 1.0, true))
{
qs.setCond(3, true);
}
}
}
}

View File

@ -193,6 +193,7 @@ import quests.Q00828_EvasBlessing.Q00828_EvasBlessing;
import quests.Q00829_MaphrsSalvation.Q00829_MaphrsSalvation;
import quests.Q00830_TheWayOfTheGiantsPawn.Q00830_TheWayOfTheGiantsPawn;
import quests.Q00831_SayhasScheme.Q00831_SayhasScheme;
import quests.Q00835_PitiableMelisa.Q00835_PitiableMelisa;
import quests.Q00901_HowLavasaurusesAreMade.Q00901_HowLavasaurusesAreMade;
import quests.Q00902_ReclaimOurEra.Q00902_ReclaimOurEra;
import quests.Q00903_TheCallOfAntharas.Q00903_TheCallOfAntharas;
@ -637,6 +638,7 @@ public class QuestMasterHandler
Q00829_MaphrsSalvation.class,
Q00830_TheWayOfTheGiantsPawn.class,
Q00831_SayhasScheme.class,
Q00835_PitiableMelisa.class,
Q00901_HowLavasaurusesAreMade.class,
Q00902_ReclaimOurEra.class,
Q00903_TheCallOfAntharas.class,

View File

@ -3970,39 +3970,73 @@
<height normal="35.25" />
</collision>
</npc>
<npc id="23686" level="100" type="L2Npc" name="Frost Glacier Golem">
<!-- AUTO GENERATED NPC TODO: FIX IT -->
<npc id="23686" level="100" type="L2Monster" name="Frost Glacier Golem">
<parameters>
<skill name="Skill01_ID" id="16551" level="1" />
<skill name="Skill02_ID" id="16552" level="1" />
<skill name="Skill03_ID" id="16553" level="1" />
<param name="Skill01_Probablity" value="500" />
<param name="Skill02_Probablity" value="500" />
<param name="Skill03_Probablity" value="500" />
</parameters>
<race>ELEMENTAL</race>
<sex>FEMALE</sex>
<sex>MALE</sex>
<acquire exp="1528257600" sp="3056600" />
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
<vitals hp="403282" hpRegen="7.5" mp="23928" mpRegen="2.7" />
<vitals hp="3871504.046242775" hpRegen="7.5" mp="36613.0" mpRegen="2.7" />
<attack physical="47619.04761904762" magical="8403.361344537815" random="5" critical="4" accuracy="5" attackSpeed="253" type="FIST" range="40" distance="80" width="120" />
<defence physical="3703.703703703704" magical="2150.537634408602" />
<attribute>
<defence fire="250" water="250" wind="200" earth="250" holy="250" dark="250" />
<attack type="WATER" value="330" />
</attribute>
<speed>
<walk ground="60" />
<run ground="180" />
</speed>
</stats>
<status attackable="false" />
<status attackable="false" randomWalk="false" />
<ai clanHelpRange="800" aggroRange="400">
<clanList>
<clan>FROST_GOLEM</clan>
</clanList>
</ai>
<skillList>
<skill id="5463" level="1" /> <!-- Water Attack -->
<skill id="4416" level="7" /> <!-- Spirits -->
<skill id="16551" level="1" /> <!-- Ice Attack -->
<skill id="16552" level="1" /> <!-- Ice Fist -->
<skill id="16553" level="1" /> <!-- Ice Breath -->
</skillList>
<collision>
<radius normal="50" />
<height normal="47.5" />
</collision>
</npc>
<npc id="23687" level="100" type="L2Npc" name="Frost Glacier Golem" title="Frostbringer">
<npc id="23687" level="100" type="L2Monster" name="Frost Glacier Golem" title="Frostbringer">
<!-- AUTO GENERATED NPC TODO: FIX IT -->
<race>ELEMENTAL</race>
<sex>FEMALE</sex>
<sex>MALE</sex>
<acquire exp="1528257600" sp="3056600" />
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
<vitals hp="403282" hpRegen="7.5" mp="23928" mpRegen="2.7" />
<vitals hp="5032952.023121387" hpRegen="7.5" mp="36613.0" mpRegen="2.7" />
<attack physical="15570.537548504614" magical="9962.751329129412" random="5" critical="4" accuracy="5" attackSpeed="253" type="FIST" range="40" distance="80" width="120" />
<defence physical="2574" magical="1737" />
<attribute>
<defence fire="250" water="250" wind="200" earth="250" holy="250" dark="250" />
<attack type="WATER" value="330" />
</attribute>
<speed>
<walk ground="60" />
<run ground="180" />
</speed>
</stats>
<status attackable="false" />
<status attackable="false" randomWalk="false" />
<ai clanHelpRange="800" aggroRange="400">
<clanList>
<clan>FROST_GOLEM</clan>
</clanList>
</ai>
<skillList>
<skill id="5463" level="1" /> <!-- Water Attack -->
<skill id="4416" level="7" /> <!-- Spirits -->
@ -4012,18 +4046,29 @@
<height normal="72.75" />
</collision>
</npc>
<npc id="23688" level="100" type="L2Npc" name="Frost Knight">
<npc id="23688" level="100" type="L2Monster" name="Frost Knight">
<!-- AUTO GENERATED NPC TODO: FIX IT -->
<race>HUMANOID</race>
<sex>FEMALE</sex>
<sex>MALE</sex>
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
<vitals hp="53771" hpRegen="7.5" mp="23928" mpRegen="2.7" />
<vitals hp="53771.1" hpRegen="7.5" mp="36613" mpRegen="2.7" />
<attack physical="10731.52506" magical="3499.53679" random="10" critical="4" accuracy="4.75" attackSpeed="250" type="POLE" range="80" distance="80" width="120" />
<defence physical="6305.35947" magical="3203.311781207645" />
<attribute>
<defence fire="150" water="150" wind="150" earth="150" holy="150" dark="150" />
<attack type="WATER" value="250" />
</attribute>
<speed>
<walk ground="36" />
<run ground="180" />
</speed>
</stats>
<status attackable="false" />
<ai clanHelpRange="1000" aggroRange="600">
<clanList>
<clan>FROST_GOLEM</clan>
</clanList>
</ai>
<skillList>
<skill id="5463" level="1" /> <!-- Water Attack -->
<skill id="4416" level="6" /> <!-- Humanoids -->
@ -4033,22 +4078,48 @@
<height normal="25" />
</collision>
</npc>
<npc id="23689" level="85" type="L2Npc" name="Freya">
<!-- AUTO GENERATED NPC TODO: FIX IT -->
<race>HUMAN</race>
<npc id="23689" level="102" type="L2Monster" name="Freya">
<parameters>
<skill name="Skill01_ID" id="6278" level="1" />
<skill name="Skill02_ID" id="6279" level="1" />
<param name="Skill01_Probablity" value="1000" />
<param name="Skill02_Probablity" value="500" />
</parameters>
<race>HUMANOID</race>
<sex>FEMALE</sex>
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
<vitals hp="12498818" hpRegen="7.5" mp="47856" mpRegen="2.7" />
<vitals hp="19256267.64705882" hpRegen="7.5" mp="96766" mpRegen="2.7" />
<attack physical="21208.8451812642" magical="5528.31840933477" random="10" critical="4" accuracy="7" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" />
<defence physical="3589.082047322" magical="2193.8" evasion="11" />
<attribute>
<attack type="WATER" value="200" />
<defence fire="150" water="200" wind="200" earth="200" holy="200" dark="200" default="300" />
</attribute>
<speed>
<walk ground="54" />
<run ground="180" />
</speed>
<abnormalResist physical="230" magical="230" />
</stats>
<status attackable="false" />
<status undying="false" />
<skillList>
<skill id="5463" level="1" /> <!-- Water Attack -->
<skill id="4045" level="1" /> <!-- Resist Full Magic Attack -->
<skill id="4408" level="1" /> <!-- HP Increase (1x) -->
<skill id="4409" level="1" /> <!-- MP Increase (1x) -->
<skill id="4410" level="11" /> <!-- Average P. Atk. -->
<skill id="4411" level="11" /> <!-- Average M. Atk. -->
<skill id="4412" level="11" /> <!-- Average P. Def. -->
<skill id="4413" level="11" /> <!-- Average M. Def. -->
<skill id="4414" level="2" /> <!-- Standard Type -->
<skill id="4415" level="3" /> <!-- One-handed Sword -->
<skill id="4416" level="6" /> <!-- Humanoids -->
<skill id="5463" level="1" /> <!-- Water Attacks -->
<skill id="6644" level="1" /> <!-- Ice Queen Freya -->
<skill id="14765" level="4" /> <!-- Blood Siphon Resistance -->
<skill id="6278" level="1" /> <!-- Ice Ball -->
<skill id="6279" level="1" /> <!-- Frozen Storm -->
</skillList>
<exCrtEffect>true</exCrtEffect>
<collision>
<radius normal="22" />
<height normal="55" />

View File

@ -393,21 +393,27 @@
<height normal="37.4" />
</collision>
</npc>
<npc id="23719" level="100" type="L2Npc" name="Frozen Knight">
<npc id="23719" level="100" type="L2Monster" name="Frozen Knight">
<race>HUMANOID</race>
<sex>MALE</sex>
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
<vitals hp="53771" hpRegen="7.5" mp="23928" mpRegen="2.7" />
<vitals hp="53771.1" hpRegen="7.5" mp="23928.0" mpRegen="2.7" />
<attack physical="23610.1029394933" magical="5767.28134561036" random="10" critical="4" accuracy="5" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" />
<defence physical="6839.95121517957" magical="3066.69244923556" />
<attribute>
<defence fire="150" water="150" wind="150" earth="150" holy="150" dark="150" default="150" />
</attribute>
<speed>
<walk ground="36" />
<run ground="180" />
</speed>
<attack physical="23610.1029394933" magical="5767.28134561036" random="10" critical="4" accuracy="5" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" />
<defence physical="3839.95121517957" magical="2066.69244923556" />
<attribute>
<defence fire="150" water="150" wind="150" earth="150" holy="150" dark="150" default="150" />
</attribute>
</stats>
<status attackable="false" />
<ai clanHelpRange="1000" aggroRange="600">
<clanList>
<clan>FROST_GOLEM</clan>
</clanList>
</ai>
<skillList>
<skill id="5463" level="1" /> <!-- Water Attack -->
<skill id="4416" level="6" /> <!-- Humanoids -->
@ -417,71 +423,98 @@
<height normal="25" />
</collision>
</npc>
<npc id="23720" level="56" type="L2Monster" name="Panthera">
<npc id="23720" level="100" type="L2Monster" name="Panthera">
<!-- AUTO GENERATED NPC TODO: FIX IT -->
<parameters>
<param name="MoveAroundSocial" value="120" />
<param name="MoveAroundSocial1" value="30" />
<param name="MoveAroundSocial2" value="120" />
<param name="SoulShot" value="100" />
<param name="SoulShotRate" value="10" />
<param name="SpiritShot" value="100" />
<param name="SpiritShotRate" value="5" />
<param name="LongRangeGuardRate" value="5" />
</parameters>
<race>BEAST</race>
<sex>FEMALE</sex>
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
<vitals hp="15841" hpRegen="7.5" mp="2355" mpRegen="2.7" />
<vitals hp="15841.04046242775" hpRegen="7.5" mp="2355.0" mpRegen="2.7" />
<attack physical="5731.52506" magical="1499.53679" random="50" critical="1" accuracy="9" attackSpeed="253" type="BLUNT" range="40" distance="80" width="120" />
<defence physical="4305.35947" magical="1203.311781207645" />
<speed>
<walk ground="60" />
<run ground="180" />
</speed>
</stats>
<status attackable="false" />
<ai clanHelpRange="400" aggroRange="100">
<clanList>
<clan>FROST_ANIMAL</clan>
</clanList>
</ai>
<skillList>
<skill id="5463" level="1" /> <!-- Water Attack -->
<skill id="4416" level="3" /> <!-- Beast -->
</skillList>
<collision>
<radius normal="34" />
<height normal="28" />
</collision>
</npc>
<npc id="23721" level="100" type="L2Npc" name="Maze Buffalo">
<!-- AUTO GENERATED NPC TODO: FIX IT -->
<parameters>
<param name="MoveAroundSocial" value="120" />
<param name="MoveAroundSocial1" value="30" />
<param name="MoveAroundSocial2" value="120" />
<param name="SoulShot" value="100" />
<param name="SoulShotRate" value="10" />
<param name="SpiritShot" value="100" />
<param name="SpiritShotRate" value="5" />
<param name="LongRangeGuardRate" value="5" />
</parameters>
<race>BEAST</race>
<sex>FEMALE</sex>
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
<vitals hp="15841.7282909073" hpRegen="7.5" mp="2355.0" mpRegen="2.7" />
<attack physical="23610.1029394933" magical="5767.28134561036" random="10" critical="4" accuracy="5" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" />
<defence physical="3839.95121517957" magical="2066.69244923556" />
<attribute>
<defence fire="150" water="150" wind="150" earth="150" holy="150" dark="150" default="150" />
</attribute>
<speed>
<walk ground="20" />
<run ground="180" />
</speed>
</stats>
<status attackable="false" />
<skillList>
<skill id="5463" level="1" /> <!-- Water Attack -->
<skill id="4416" level="3" /> <!-- Beast -->
</skillList>
<collision>
<radius normal="34" />
<height normal="28" />
</collision>
<dropLists>
<drop>
<item id="57" min="85" max="199" chance="70" /> <!-- Adena -->
<item id="36522" min="1" max="1" chance="2.179" /> <!-- Silver -->
</drop>
<spoil>
<item id="36531" min="1" max="1" chance="32.68" /> <!-- Thread -->
<item id="36532" min="1" max="1" chance="0.75" /> <!-- Thin Braid -->
<item id="36880" min="1" max="1" chance="0.003" /> <!-- Recipe: Thread - Downgrade -->
</spoil>
<lucky>
<item id="39629" min="1" max="1" chance="100" /> <!-- Fortune Pocket - Stage 1 -->
</lucky>
</dropLists>
</npc>
<npc id="23721" level="100" type="L2Npc" name="Maze Buffalo">
<race>BEAST</race>
<sex>FEMALE</sex>
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
<vitals hp="15841" hpRegen="7.5" mp="2355" mpRegen="2.7" />
<speed>
<walk ground="20" />
<run ground="180" />
</speed>
<attack physical="23610.1029394933" magical="5767.28134561036" random="10" critical="4" accuracy="5" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" />
<defence physical="3839.95121517957" magical="2066.69244923556" />
<attribute>
<defence fire="150" water="150" wind="150" earth="150" holy="150" dark="150" default="150" />
</attribute>
</stats>
<skillList>
<skill id="5463" level="1" /> <!-- Water Attack -->
<skill id="4416" level="3" /> <!-- Beast -->
</skillList>
<collision>
<radius normal="22" grown="27" />
<height normal="31" grown="38" />
</collision>
</npc>
<npc id="23722" level="61" type="L2Monster" name="Frost Buffalo">
<npc id="23722" level="100" type="L2Monster" name="Frost Buffalo">
<!-- AUTO GENERATED NPC TODO: FIX IT -->
<parameters>
<param name="MoveAroundSocial" value="120" />
<param name="MoveAroundSocial1" value="30" />
<param name="MoveAroundSocial2" value="120" />
<param name="SoulShot" value="100" />
<param name="SoulShotRate" value="10" />
<param name="SpiritShot" value="100" />
<param name="SpiritShotRate" value="5" />
<param name="LongRangeGuardRate" value="5" />
</parameters>
<race>BEAST</race>
<sex>FEMALE</sex>
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
<vitals hp="15841" hpRegen="7.5" mp="2355" mpRegen="2.7" />
<vitals hp="15841.7282909073" hpRegen="7.5" mp="2355.0" mpRegen="2.7" />
<attack physical="15731.52506" magical="1499.53679" random="50" critical="1" accuracy="9" attackSpeed="253" type="BLUNT" range="40" distance="80" width="120" />
<defence physical="5305.35947" magical="1203.311781207645" />
<speed>
<walk ground="20" />
<run ground="180" />
@ -496,34 +529,19 @@
<radius normal="24" />
<height normal="34.7" />
</collision>
<dropLists>
<drop>
<item id="57" min="96" max="225" chance="70" /> <!-- Adena -->
<item id="36527" min="1" max="1" chance="7.262" /> <!-- Synthetic Fiber -->
<!-- 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>
<spoil>
<item id="36531" min="1" max="1" chance="21.07" /> <!-- Thread -->
<item id="36532" min="1" max="1" chance="0.3" /> <!-- Thin Braid -->
<item id="36880" min="1" max="1" chance="0.003" /> <!-- Recipe: Thread - Downgrade -->
<item id="36882" min="1" max="1" chance="0.003" /> <!-- Recipe: Thin Braid - Upgrade -->
<item id="36881" min="1" max="1" chance="9" /> <!-- Recipe: Thin Braid - Downgrade -->
</spoil>
<lucky>
<item id="39629" min="1" max="1" chance="100" /> <!-- Fortune Pocket - Stage 1 -->
</lucky>
</dropLists>
</npc>
<npc id="23723" level="100" type="L2Npc" name="Frost Ursus">
<!-- AUTO GENERATED NPC TODO: FIX IT -->
<parameters>
<param name="MoveAroundSocial" value="120" />
<param name="MoveAroundSocial1" value="30" />
<param name="MoveAroundSocial2" value="120" />
<param name="SoulShot" value="100" />
<param name="SoulShotRate" value="10" />
<param name="SpiritShot" value="100" />
<param name="SpiritShotRate" value="5" />
<param name="LongRangeGuardRate" value="5" />
</parameters>
<race>ANIMAL</race>
<sex>FEMALE</sex>
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
@ -538,6 +556,12 @@
<defence fire="150" water="150" wind="150" earth="150" holy="150" dark="150" default="150" />
</attribute>
</stats>
<status attackable="false" />
<ai clanHelpRange="400" aggroRange="100">
<clanList>
<clan>FROST_ANIMAL</clan>
</clanList>
</ai>
<skillList>
<skill id="5463" level="1" /> <!-- Water Attack -->
<skill id="4416" level="4" /> <!-- Animals -->
@ -547,18 +571,34 @@
<height normal="40" />
</collision>
</npc>
<npc id="23724" level="70" type="L2Monster" name="Buffalo">
<!-- AUTO GENERATED NPC TODO: FIX IT -->
<npc id="23724" level="100" type="L2Monster" name="Buffalo">
<parameters>
<param name="MoveAroundSocial" value="120" />
<param name="MoveAroundSocial1" value="30" />
<param name="MoveAroundSocial2" value="120" />
<param name="SoulShot" value="100" />
<param name="SoulShotRate" value="10" />
<param name="SpiritShot" value="100" />
<param name="SpiritShotRate" value="5" />
<param name="LongRangeGuardRate" value="5" />
</parameters>
<race>BEAST</race>
<sex>FEMALE</sex>
<sex>MALE</sex>
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
<vitals hp="15841" hpRegen="7.5" mp="2355" mpRegen="2.7" />
<vitals hp="15841.04046242775" hpRegen="7.5" mp="2355.0" mpRegen="2.7" />
<attack physical="5731.52506" magical="1499.53679" random="50" critical="1" accuracy="9" attackSpeed="253" type="BLUNT" range="40" distance="80" width="120" />
<defence physical="4305.35947" magical="1203.311781207645" />
<speed>
<walk ground="80" />
<run ground="180" />
</speed>
</stats>
<status attackable="false" />
<ai clanHelpRange="400" aggroRange="100">
<clanList>
<clan>FROST_ANIMAL</clan>
</clanList>
</ai>
<skillList>
<skill id="5463" level="1" /> <!-- Water Attack -->
<skill id="4416" level="3" /> <!-- Beast -->
@ -567,42 +607,35 @@
<radius normal="22" grown="27" />
<height normal="31" grown="38" />
</collision>
<dropLists>
<drop>
<item id="57" min="57" max="131" chance="70" /> <!-- Adena -->
<item id="36518" min="1" max="1" chance="0.3" /> <!-- Durable Leather -->
<item id="36862" min="1" max="1" chance="0.0009" /> <!-- Recipe: Quality Leather - Upgrade -->
<!-- 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>
<spoil>
<item id="36518" min="1" max="1" chance="0.75" /> <!-- Durable Leather -->
</spoil>
<lucky>
<item id="39629" min="1" max="1" chance="100" /> <!-- Fortune Pocket - Stage 1 -->
</lucky>
</dropLists>
</npc>
<npc id="23725" level="62" type="L2Monster" name="Ursus">
<!-- AUTO GENERATED NPC TODO: FIX IT -->
<npc id="23725" level="100" type="L2Monster" name="Ursus">
<parameters>
<param name="MoveAroundSocial" value="120" />
<param name="MoveAroundSocial1" value="30" />
<param name="MoveAroundSocial2" value="120" />
<param name="SoulShot" value="100" />
<param name="SoulShotRate" value="10" />
<param name="SpiritShot" value="100" />
<param name="SpiritShotRate" value="5" />
<param name="LongRangeGuardRate" value="5" />
</parameters>
<race>ANIMAL</race>
<sex>FEMALE</sex>
<sex>MALE</sex>
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
<vitals hp="15841" hpRegen="7.5" mp="2355" mpRegen="2.7" />
<vitals hp="15841.7282909073" hpRegen="7.5" mp="2355.0" mpRegen="2.7" />
<attack physical="5731.52506" magical="1499.53679" random="50" critical="1" accuracy="9" attackSpeed="253" type="BLUNT" range="40" distance="80" width="120" />
<defence physical="4305.35947" magical="1203.311781207645" />
<speed>
<walk ground="40" />
<run ground="180" />
</speed>
</stats>
<status attackable="false" />
<ai clanHelpRange="400" aggroRange="100">
<clanList>
<clan>FROST_ANIMAL</clan>
</clanList>
</ai>
<skillList>
<skill id="5463" level="1" /> <!-- Water Attack -->
<skill id="4416" level="4" /> <!-- Animals -->
@ -611,36 +644,24 @@
<radius normal="21" />
<height normal="40" />
</collision>
<dropLists>
<drop>
<item id="57" min="105" max="245" chance="70" /> <!-- Adena -->
<item id="36518" min="1" max="1" chance="1.413" /> <!-- Durable Leather -->
</drop>
<spoil>
<item id="36532" min="1" max="1" chance="0.75" /> <!-- Thin Braid -->
<item id="36882" min="1" max="1" chance="0.003" /> <!-- Recipe: Thin Braid - Upgrade -->
<item id="36881" min="1" max="1" chance="9" /> <!-- Recipe: Thin Braid - Downgrade -->
</spoil>
<lucky>
<item id="39629" min="1" max="1" chance="100" /> <!-- Fortune Pocket - Stage 1 -->
</lucky>
</dropLists>
</npc>
<npc id="23726" level="100" type="L2Npc" name="Frost Glacier Golem">
<race>ELEMENTAL</race>
<npc id="23726" level="100" type="L2Monster" name="Frost Glacier Golem">
<!-- AUTO GENERATED NPC TODO: FIX IT -->
<race>HUMAN</race>
<sex>FEMALE</sex>
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
<vitals hp="524266" hpRegen="7.5" mp="23928" mpRegen="2.7" />
<speed>
<walk ground="60" />
<run ground="180" />
</speed>
<vitals hp="524266.0" hpRegen="7.5" mp="23928.0" mpRegen="2.7" />
<attack physical="23610.1029394933" magical="5767.28134561036" random="10" critical="4" accuracy="5" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" />
<defence physical="3839.95121517957" magical="2066.69244923556" />
<attribute>
<defence fire="150" water="150" wind="150" earth="150" holy="150" dark="150" default="150" />
</attribute>
<speed>
<walk ground="60" />
<run ground="180" />
</speed>
</stats>
<status attackable="false" />
<skillList>
<skill id="5463" level="1" /> <!-- Water Attack -->
<skill id="4416" level="7" /> <!-- Spirits -->

Some files were not shown because too many files have changed in this diff Show More