Quest Red Thread of Fate (10385).
Contributed by Stayway.
This commit is contained in:
@@ -55,6 +55,7 @@ import instances.NornilsGarden.NornilsGarden;
|
||||
import instances.PailakaDevilsLegacy.PailakaDevilsLegacy;
|
||||
import instances.PailakaSongOfIceAndFire.PailakaSongOfIceAndFire;
|
||||
import instances.SanctumOftheLordsOfDawn.SanctumOftheLordsOfDawn;
|
||||
import instances.TalkingIsland.TalkingIsland;
|
||||
|
||||
/**
|
||||
* Instance class-loader.
|
||||
@@ -102,6 +103,7 @@ final class InstanceLoader
|
||||
PailakaDevilsLegacy.class,
|
||||
PailakaSongOfIceAndFire.class,
|
||||
SanctumOftheLordsOfDawn.class,
|
||||
TalkingIsland.class,
|
||||
};
|
||||
|
||||
public static void main(String[] args)
|
||||
|
4
trunk/dist/game/data/scripts/instances/TalkingIsland/30031-01.html
vendored
Normal file
4
trunk/dist/game/data/scripts/instances/TalkingIsland/30031-01.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>High Priest Biotin:<br>
|
||||
You have traveled afair. It was to see me, was it not? Then speak. All is well under the blessings of Einhasad, Goodess of Light.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest TalkingIsland">"Well then, ok. I came from the future."</button>
|
||||
</body></html>
|
5
trunk/dist/game/data/scripts/instances/TalkingIsland/30031-02.html
vendored
Normal file
5
trunk/dist/game/data/scripts/instances/TalkingIsland/30031-02.html
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>High Priest Biotin:<br>
|
||||
The future, you say? I was given no such word, and I am the High Priest of Einhasad. If you are here to give me wisdom from the future. I should have been made aware of Einhasad's will.<br>
|
||||
Oh, do not look so crestfallen. It is not that I disbelieve what you say. So come, tell me. what has happened where you come from?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest TalkingIsland 30031-03.html">"The Goddess of Destruction is awakened."</button>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/instances/TalkingIsland/30031-03.html
vendored
Normal file
4
trunk/dist/game/data/scripts/instances/TalkingIsland/30031-03.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>High Priest Biotin:<br>
|
||||
Goddess of...Destruction? That cannot be. Shilen was sealed away by Einhasad, Goddess of Light!<br>
|
||||
This is quiet, peaceful village. Please do not speak of such things to the people here.
|
||||
</body></html>
|
7
trunk/dist/game/data/scripts/instances/TalkingIsland/33491-01.htm
vendored
Normal file
7
trunk/dist/game/data/scripts/instances/TalkingIsland/33491-01.htm
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<html><body>Subclass/Dual Class Master Raina:<br>
|
||||
Hello, %charname%. Or shall I call you One with the Power of the Giants?<br>
|
||||
I've been waiting for you.<br>
|
||||
No need to look surprised. I was visited by a <font color="LEVEL">Mysterious Dark Knight</font> the other day.<br>
|
||||
He left me a letter for someone who would appear before me with the power of the Giants. Ring a bell?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10385_RedThreadOfFate 33491-02.htm">"Um. So what's the letter about?"</button>
|
||||
</body></html>
|
5
trunk/dist/game/data/scripts/instances/TalkingIsland/33491-02.htm
vendored
Normal file
5
trunk/dist/game/data/scripts/instances/TalkingIsland/33491-02.htm
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Subclass/Dual Class Master Raina:<br>
|
||||
He said the letter was of grave importance and not everyone. One who reads the letter is fated to be led by the <font color="LEVEL">Red Thread od Fate</font>.<br>
|
||||
So, are you sure you want to read this letter?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10385_RedThreadOfFate 33491-03.htm">"Yes. I can't back out now."</button>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/instances/TalkingIsland/33491-03.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/instances/TalkingIsland/33491-03.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Subclass/Dual Class Master Raina:<br>
|
||||
Here it is.<br>
|
||||
I haven't read it. The Mysterious Dark Knight said the letter outlines everything you must do.<br>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/instances/TalkingIsland/33491-04.html
vendored
Normal file
4
trunk/dist/game/data/scripts/instances/TalkingIsland/33491-04.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Subclass/Dual Class Master Raina:<br>
|
||||
I have nothing more to tell you.<br>
|
||||
The Mysterious Dark Knight told me that everything you need to know is written in the <font color="LEVEL">Mysterious Letter</font>.
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/instances/TalkingIsland/33748-01.html
vendored
Normal file
4
trunk/dist/game/data/scripts/instances/TalkingIsland/33748-01.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Darin:<br>
|
||||
You don't seem to be from around here. Are you a traveller? Perhaps wandering the world with your loved one waiting from home?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest TalkingIsland">"This is... really Talking Island Village? I'm not mistaken?"</button>
|
||||
</body></html>
|
5
trunk/dist/game/data/scripts/instances/TalkingIsland/33748-02.html
vendored
Normal file
5
trunk/dist/game/data/scripts/instances/TalkingIsland/33748-02.html
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Darin:<br>
|
||||
Why of course. This is the Talking Island Village, home of warm sunlight and gentle winds.<br>
|
||||
It's a place of peace and beauty!<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest TalkingIsland 33748-03.html">"That is not true. The Talking Island Village of the past has been destroyed."</button>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/instances/TalkingIsland/33748-03.html
vendored
Normal file
4
trunk/dist/game/data/scripts/instances/TalkingIsland/33748-03.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Darin:<br>
|
||||
The village is untouched, as you can see.<br>
|
||||
<font color="LEVEL">Roxxy</font> has been worrying about ominous winds lately, and she doesn't need strangers coming in here spreading unlucky rumors. Get out!<br>
|
||||
</body></html>
|
5
trunk/dist/game/data/scripts/instances/TalkingIsland/33749-01.html
vendored
Normal file
5
trunk/dist/game/data/scripts/instances/TalkingIsland/33749-01.html
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Roxxy:<br>
|
||||
You smell of faraway lands Strange... where did you come from?<br>
|
||||
Don't try to lie to me. There have been ominous winds lately... tell me. Who has sent you here?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest TalkingIsland">"Well then, ok. I came from the future."</button>
|
||||
</body></html>
|
6
trunk/dist/game/data/scripts/instances/TalkingIsland/33749-02.html
vendored
Normal file
6
trunk/dist/game/data/scripts/instances/TalkingIsland/33749-02.html
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>Roxxy:<br>
|
||||
The future, huh? Very funny.<br>
|
||||
The Ivory Tower has been on edge too lately, with the ominous winds and all. You try to use this chance to spread rumors, and you'll regret it!<br>
|
||||
You didn't say anything strange to Darin too, did you? I'm gonna get real angry if you did!<br>
|
||||
If you really did come from the future as you say, why don't you go see <font color="LEVEL">High Priest Biotin</font>?<br>
|
||||
</body></html>
|
7
trunk/dist/game/data/scripts/instances/TalkingIsland/33751-01.html
vendored
Normal file
7
trunk/dist/game/data/scripts/instances/TalkingIsland/33751-01.html
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<html><body>Mysterious Dark Knight:<br>
|
||||
Ye bound by the Red Thread of Fate...<br>
|
||||
So you have been following the pull of your destiny. Lighting Shilen's darkness, breathing life to the dying Mother Tree, filling the emptiness in Kamaels' hearts... the flame you lit at the Pa'agrio Temple will go to touch the Orcs with that person's fond heart.<br>
|
||||
Your part is done. Now return, and march onward toward your destiny.<br>
|
||||
Do not forget what you have seen here - you shall never see this place again.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest TalkingIsland">"Wait, what person?"</button>
|
||||
</body></html>
|
7
trunk/dist/game/data/scripts/instances/TalkingIsland/33751-02.html
vendored
Normal file
7
trunk/dist/game/data/scripts/instances/TalkingIsland/33751-02.html
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<html><body>Mysterious Dark Knight:<br>
|
||||
The person bound to you through the Red Thread of Fate...<br>
|
||||
Perhaps you have met. Perhaps you haven't.<br>
|
||||
This world no longer exists. You cannot linger.<br>
|
||||
Go back to your world.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest TalkingIsland 33751-03.html">"Wait, please. I want to know more."</button>
|
||||
</body></html>
|
5
trunk/dist/game/data/scripts/instances/TalkingIsland/33751-03.html
vendored
Normal file
5
trunk/dist/game/data/scripts/instances/TalkingIsland/33751-03.html
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Mysterious Dark Knight:<br>
|
||||
This world no longer exists. You cannot stay here any longer.<br>
|
||||
Go back to your world.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest TalkingIsland exit">"Wait, please. I need some details."</button>
|
||||
</body></html>
|
250
trunk/dist/game/data/scripts/instances/TalkingIsland/TalkingIsland.java
vendored
Normal file
250
trunk/dist/game/data/scripts/instances/TalkingIsland/TalkingIsland.java
vendored
Normal file
@@ -0,0 +1,250 @@
|
||||
/*
|
||||
* 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.TalkingIsland;
|
||||
|
||||
import com.l2jmobius.gameserver.instancemanager.InstanceManager;
|
||||
import com.l2jmobius.gameserver.model.L2Object;
|
||||
import com.l2jmobius.gameserver.model.Location;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Npc;
|
||||
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||
import com.l2jmobius.gameserver.model.instancezone.InstanceWorld;
|
||||
import com.l2jmobius.gameserver.model.quest.QuestState;
|
||||
import com.l2jmobius.gameserver.model.quest.State;
|
||||
import com.l2jmobius.gameserver.model.skills.Skill;
|
||||
import com.l2jmobius.gameserver.network.NpcStringId;
|
||||
import com.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
|
||||
|
||||
import instances.AbstractInstance;
|
||||
import quests.Q10385_RedThreadOfFate.Q10385_RedThreadOfFate;
|
||||
|
||||
/**
|
||||
* @author Stayway
|
||||
*/
|
||||
public class TalkingIsland extends AbstractInstance
|
||||
{
|
||||
// NPCs
|
||||
private static final int DARK_KNIGHT = 33751;
|
||||
private static final int DARIN = 33748;
|
||||
private static final int ROXXY = 33749;
|
||||
private static final int BIOTIN = 30031;
|
||||
private static final int MOTHER_TREE = 33786;
|
||||
// Skill
|
||||
private static final SkillHolder NPC_TREE = new SkillHolder(9579, 1);
|
||||
// Locations
|
||||
private static final Location START_LOC = new Location(210705, 13259, -3754);
|
||||
private static final Location EXIT_LOC = new Location(-113647, 246016, -3696);
|
||||
// Instance
|
||||
private static final int TEMPLATE_ID = 241;
|
||||
|
||||
class TIWorld extends InstanceWorld
|
||||
{
|
||||
L2Npc dark = null;
|
||||
}
|
||||
|
||||
public TalkingIsland()
|
||||
{
|
||||
super(TalkingIsland.class.getSimpleName());
|
||||
addTalkId(DARIN, ROXXY, BIOTIN, DARK_KNIGHT);
|
||||
addFirstTalkId(DARIN, ROXXY, BIOTIN, DARK_KNIGHT);
|
||||
addSkillSeeId(MOTHER_TREE);
|
||||
addSpawnId(DARK_KNIGHT);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
final TIWorld world = (TIWorld) InstanceManager.getInstance().getWorld(npc.getInstanceId());
|
||||
final QuestState qs = player.getQuestState(Q10385_RedThreadOfFate.class.getSimpleName());
|
||||
|
||||
String htmltext = null;
|
||||
switch (event)
|
||||
{
|
||||
case "33751-03.html":
|
||||
{
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "30031-03.html":
|
||||
{
|
||||
if (qs.isCond(20) && (player.getInstanceId() == world.getInstanceId()))
|
||||
{
|
||||
qs.setCond(21);
|
||||
spawnGroup("dark", world.getInstanceId());
|
||||
showOnScreenMsg(player, NpcStringId.GO_OUTSIDE_THE_TEMPLE, ExShowScreenMessage.TOP_CENTER, 4500);
|
||||
final double distance = npc.calculateDistance(player, false, false);
|
||||
if ((distance <= 200))
|
||||
{
|
||||
showOnScreenMsg(player, NpcStringId.A_MYSTERIOUS_DARK_KNIGHT_IS_HERE, ExShowScreenMessage.TOP_CENTER, 4500);
|
||||
}
|
||||
return "30031-03.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "33751-02.html":
|
||||
{
|
||||
if (qs.isCond(21))
|
||||
{
|
||||
return "33751-02.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "33748-03.html":
|
||||
{
|
||||
if (qs.isCond(19))
|
||||
{
|
||||
showOnScreenMsg(player, NpcStringId.SPEAK_WITH_ROXXY, ExShowScreenMessage.TOP_CENTER, 4500);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "exit":
|
||||
{
|
||||
qs.setCond(22);
|
||||
{
|
||||
teleportPlayer(player, EXIT_LOC, 0);
|
||||
player.showQuestMovie(75);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
final QuestState qs = player.getQuestState(Q10385_RedThreadOfFate.class.getSimpleName());
|
||||
String htmltext = null;
|
||||
|
||||
switch (qs.getState())
|
||||
{
|
||||
case State.STARTED:
|
||||
{
|
||||
switch (npc.getId())
|
||||
{
|
||||
case DARIN:
|
||||
{
|
||||
if (qs.isCond(19))
|
||||
{
|
||||
htmltext = "33748-02.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case ROXXY:
|
||||
{
|
||||
if (qs.isCond(19))
|
||||
{
|
||||
qs.setCond(20);
|
||||
htmltext = "33749-02.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case BIOTIN:
|
||||
{
|
||||
if (qs.isCond(20))
|
||||
{
|
||||
htmltext = "30031-02.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case DARK_KNIGHT:
|
||||
{
|
||||
if (qs.isCond(21))
|
||||
{
|
||||
htmltext = "33751-02.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onFirstTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
final QuestState qs = player.getQuestState(Q10385_RedThreadOfFate.class.getSimpleName());
|
||||
String htmltext = null;
|
||||
if ((qs != null))
|
||||
{
|
||||
switch (npc.getId())
|
||||
{
|
||||
case DARIN:
|
||||
{
|
||||
if (qs.isCond(19))
|
||||
{
|
||||
htmltext = "33748-01.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case ROXXY:
|
||||
{
|
||||
if (qs.isCond(19))
|
||||
{
|
||||
htmltext = "33749-01.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case BIOTIN:
|
||||
{
|
||||
if (qs.isCond(20))
|
||||
{
|
||||
htmltext = "30031-01.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case DARK_KNIGHT:
|
||||
{
|
||||
if (qs.isCond(21))
|
||||
{
|
||||
htmltext = "33751-01.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onSkillSee(L2Npc npc, L2PcInstance player, Skill skill, L2Object[] targets, boolean isSummon)
|
||||
{
|
||||
final QuestState qs = player.getQuestState(Q10385_RedThreadOfFate.class.getSimpleName());
|
||||
if ((qs != null) && qs.isCond(19))
|
||||
{
|
||||
final Skill npcDefault = NPC_TREE.getSkill();
|
||||
castSkill(npc, player, npcDefault);
|
||||
}
|
||||
{
|
||||
enterInstance(player, new TIWorld(), "TalkingIsland.xml", TEMPLATE_ID);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEnterInstance(L2PcInstance player, InstanceWorld world, boolean firstEntrance)
|
||||
{
|
||||
if (firstEntrance)
|
||||
{
|
||||
world.addAllowed(player.getObjectId());
|
||||
}
|
||||
teleportPlayer(player, START_LOC, world.getInstanceId());
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user