Q10385_RedThreadOfFate improvements.
Contributed by Stayway.
This commit is contained in:
@@ -10,8 +10,5 @@
|
|||||||
<spawn npcId="33749" x="210312" y="13768" z="-3754" heading="0" respawn="0" />
|
<spawn npcId="33749" x="210312" y="13768" z="-3754" heading="0" respawn="0" />
|
||||||
<spawn npcId="30031" x="210344" y="16024" z="-3748" heading="0" respawn="0" />
|
<spawn npcId="30031" x="210344" y="16024" z="-3748" heading="0" respawn="0" />
|
||||||
</group>
|
</group>
|
||||||
<group name="dark">
|
|
||||||
<spawn npcId="33751" x="209372" y="15037" z="-3729" heading="0" respawn="0" />
|
|
||||||
</group>
|
|
||||||
</spawnlist>
|
</spawnlist>
|
||||||
</instance>
|
</instance>
|
3
trunk/dist/game/data/scripts/instances/TalkingIsland/33748-04.html
vendored
Normal file
3
trunk/dist/game/data/scripts/instances/TalkingIsland/33748-04.html
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<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!
|
||||||
|
</body></html>
|
3
trunk/dist/game/data/scripts/instances/TalkingIsland/33749-03.html
vendored
Normal file
3
trunk/dist/game/data/scripts/instances/TalkingIsland/33749-03.html
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Roxxy:<br>
|
||||||
|
If you really know something about this village, <font color="LEVEL">High Priest Biotin</font> would have greeted you.
|
||||||
|
</body></html>
|
@@ -16,9 +16,11 @@
|
|||||||
*/
|
*/
|
||||||
package instances.TalkingIsland;
|
package instances.TalkingIsland;
|
||||||
|
|
||||||
|
import com.l2jmobius.gameserver.ai.CtrlIntention;
|
||||||
import com.l2jmobius.gameserver.instancemanager.InstanceManager;
|
import com.l2jmobius.gameserver.instancemanager.InstanceManager;
|
||||||
import com.l2jmobius.gameserver.model.L2Object;
|
import com.l2jmobius.gameserver.model.L2Object;
|
||||||
import com.l2jmobius.gameserver.model.Location;
|
import com.l2jmobius.gameserver.model.Location;
|
||||||
|
import com.l2jmobius.gameserver.model.actor.L2Character;
|
||||||
import com.l2jmobius.gameserver.model.actor.L2Npc;
|
import com.l2jmobius.gameserver.model.actor.L2Npc;
|
||||||
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
||||||
import com.l2jmobius.gameserver.model.holders.SkillHolder;
|
import com.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||||
@@ -26,6 +28,7 @@ import com.l2jmobius.gameserver.model.instancezone.InstanceWorld;
|
|||||||
import com.l2jmobius.gameserver.model.quest.QuestState;
|
import com.l2jmobius.gameserver.model.quest.QuestState;
|
||||||
import com.l2jmobius.gameserver.model.quest.State;
|
import com.l2jmobius.gameserver.model.quest.State;
|
||||||
import com.l2jmobius.gameserver.model.skills.Skill;
|
import com.l2jmobius.gameserver.model.skills.Skill;
|
||||||
|
import com.l2jmobius.gameserver.model.zone.L2ZoneType;
|
||||||
import com.l2jmobius.gameserver.network.NpcStringId;
|
import com.l2jmobius.gameserver.network.NpcStringId;
|
||||||
import com.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
|
import com.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
|
||||||
|
|
||||||
@@ -46,10 +49,12 @@ public class TalkingIsland extends AbstractInstance
|
|||||||
// Skill
|
// Skill
|
||||||
private static final SkillHolder NPC_TREE = new SkillHolder(9579, 1);
|
private static final SkillHolder NPC_TREE = new SkillHolder(9579, 1);
|
||||||
// Locations
|
// Locations
|
||||||
|
private static final Location DARK_KNIGHT_LOC = new Location(209372, 15037, -3729, 0);
|
||||||
private static final Location START_LOC = new Location(210705, 13259, -3754);
|
private static final Location START_LOC = new Location(210705, 13259, -3754);
|
||||||
private static final Location EXIT_LOC = new Location(-113647, 246016, -3696);
|
private static final Location EXIT_LOC = new Location(-113647, 246016, -3696);
|
||||||
// Instance
|
// Instance
|
||||||
private static final int TEMPLATE_ID = 241;
|
private static final int TEMPLATE_ID = 241;
|
||||||
|
private static final int ZONE = 33751;
|
||||||
|
|
||||||
class TIWorld extends InstanceWorld
|
class TIWorld extends InstanceWorld
|
||||||
{
|
{
|
||||||
@@ -63,6 +68,7 @@ public class TalkingIsland extends AbstractInstance
|
|||||||
addFirstTalkId(DARIN, ROXXY, BIOTIN, DARK_KNIGHT);
|
addFirstTalkId(DARIN, ROXXY, BIOTIN, DARK_KNIGHT);
|
||||||
addSkillSeeId(MOTHER_TREE);
|
addSkillSeeId(MOTHER_TREE);
|
||||||
addSpawnId(DARK_KNIGHT);
|
addSpawnId(DARK_KNIGHT);
|
||||||
|
addEnterZoneId(ZONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -84,13 +90,7 @@ public class TalkingIsland extends AbstractInstance
|
|||||||
if (qs.isCond(20) && (player.getInstanceId() == world.getInstanceId()))
|
if (qs.isCond(20) && (player.getInstanceId() == world.getInstanceId()))
|
||||||
{
|
{
|
||||||
qs.setCond(21);
|
qs.setCond(21);
|
||||||
spawnGroup("dark", world.getInstanceId());
|
|
||||||
showOnScreenMsg(player, NpcStringId.GO_OUTSIDE_THE_TEMPLE, ExShowScreenMessage.TOP_CENTER, 4500);
|
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";
|
return "30031-03.html";
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -108,6 +108,8 @@ public class TalkingIsland extends AbstractInstance
|
|||||||
if (qs.isCond(19))
|
if (qs.isCond(19))
|
||||||
{
|
{
|
||||||
showOnScreenMsg(player, NpcStringId.SPEAK_WITH_ROXXY, ExShowScreenMessage.TOP_CENTER, 4500);
|
showOnScreenMsg(player, NpcStringId.SPEAK_WITH_ROXXY, ExShowScreenMessage.TOP_CENTER, 4500);
|
||||||
|
qs.setMemoState(1);
|
||||||
|
return "33748-03.html";
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -115,11 +117,19 @@ public class TalkingIsland extends AbstractInstance
|
|||||||
{
|
{
|
||||||
qs.setCond(22);
|
qs.setCond(22);
|
||||||
{
|
{
|
||||||
teleportPlayer(player, EXIT_LOC, 0);
|
|
||||||
player.showQuestMovie(75);
|
player.showQuestMovie(75);
|
||||||
|
player.setMovieId(75);
|
||||||
|
player.setIsTeleporting(true, false);
|
||||||
|
startQuestTimer("TELEPORT", 38000, npc, player);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
case "TELEPORT":
|
||||||
|
{
|
||||||
|
teleportPlayer(player, EXIT_LOC, 0);
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return htmltext;
|
return htmltext;
|
||||||
}
|
}
|
||||||
@@ -127,6 +137,7 @@ public class TalkingIsland extends AbstractInstance
|
|||||||
@Override
|
@Override
|
||||||
public String onTalk(L2Npc npc, L2PcInstance player)
|
public String onTalk(L2Npc npc, L2PcInstance player)
|
||||||
{
|
{
|
||||||
|
final TIWorld world = (TIWorld) InstanceManager.getInstance().getWorld(npc.getInstanceId());
|
||||||
final QuestState qs = player.getQuestState(Q10385_RedThreadOfFate.class.getSimpleName());
|
final QuestState qs = player.getQuestState(Q10385_RedThreadOfFate.class.getSimpleName());
|
||||||
String htmltext = null;
|
String htmltext = null;
|
||||||
|
|
||||||
@@ -151,6 +162,10 @@ public class TalkingIsland extends AbstractInstance
|
|||||||
qs.setCond(20);
|
qs.setCond(20);
|
||||||
htmltext = "33749-02.html";
|
htmltext = "33749-02.html";
|
||||||
}
|
}
|
||||||
|
else if (qs.isCond(20))
|
||||||
|
{
|
||||||
|
htmltext = "33749-03.html";
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case BIOTIN:
|
case BIOTIN:
|
||||||
@@ -167,10 +182,15 @@ public class TalkingIsland extends AbstractInstance
|
|||||||
{
|
{
|
||||||
htmltext = "33751-02.html";
|
htmltext = "33751-02.html";
|
||||||
}
|
}
|
||||||
|
if (qs.isCond(22))
|
||||||
|
{
|
||||||
|
InstanceManager.getInstance().getInstance(world.getInstanceId()).setDuration(38000);
|
||||||
|
InstanceManager.getInstance().getInstance(world.getInstanceId()).setEmptyDestroyTime(0);
|
||||||
|
world.removeAllowed(player.getObjectId());
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return htmltext;
|
return htmltext;
|
||||||
@@ -187,10 +207,14 @@ public class TalkingIsland extends AbstractInstance
|
|||||||
{
|
{
|
||||||
case DARIN:
|
case DARIN:
|
||||||
{
|
{
|
||||||
if (qs.isCond(19))
|
if ((qs.isCond(19)) && qs.isMemoState(0))
|
||||||
{
|
{
|
||||||
htmltext = "33748-01.html";
|
htmltext = "33748-01.html";
|
||||||
}
|
}
|
||||||
|
else if ((qs.isCond(19)) && qs.isMemoState(1))
|
||||||
|
{
|
||||||
|
htmltext = "33748-04.html";
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ROXXY:
|
case ROXXY:
|
||||||
@@ -199,6 +223,10 @@ public class TalkingIsland extends AbstractInstance
|
|||||||
{
|
{
|
||||||
htmltext = "33749-01.html";
|
htmltext = "33749-01.html";
|
||||||
}
|
}
|
||||||
|
else if (qs.isCond(20))
|
||||||
|
{
|
||||||
|
htmltext = "33749-03.html";
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case BIOTIN:
|
case BIOTIN:
|
||||||
@@ -238,6 +266,25 @@ public class TalkingIsland extends AbstractInstance
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String onEnterZone(L2Character character, L2ZoneType zone)
|
||||||
|
{
|
||||||
|
if (character.isPlayer())
|
||||||
|
{
|
||||||
|
final L2PcInstance player = character.getActingPlayer();
|
||||||
|
final TIWorld world = (TIWorld) InstanceManager.getInstance().getWorld(character.getInstanceId());
|
||||||
|
final QuestState qs = player.getQuestState(Q10385_RedThreadOfFate.class.getSimpleName());
|
||||||
|
if ((qs != null) && qs.isCond(21))
|
||||||
|
{
|
||||||
|
world.dark = addSpawn(DARK_KNIGHT, DARK_KNIGHT_LOC, false, 0, false, world.getInstanceId());
|
||||||
|
world.dark.getAI().setIntention(CtrlIntention.AI_INTENTION_FOLLOW, player);
|
||||||
|
showOnScreenMsg(player, NpcStringId.A_MYSTERIOUS_DARK_KNIGHT_IS_HERE, ExShowScreenMessage.TOP_CENTER, 4500);
|
||||||
|
}
|
||||||
|
return super.onEnterZone(character, zone);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onEnterInstance(L2PcInstance player, InstanceWorld world, boolean firstEntrance)
|
public void onEnterInstance(L2PcInstance player, InstanceWorld world, boolean firstEntrance)
|
||||||
{
|
{
|
||||||
|
3
trunk/dist/game/data/scripts/quests/Q10385_RedThreadOfFate/30370-05.html
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q10385_RedThreadOfFate/30370-05.html
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Nerupa:<br>
|
||||||
|
Didn't you say you were off to find Enfeux? Hurry along to the <font color="LEVEL">Valley of Saints</font>
|
||||||
|
</body></html>
|
3
trunk/dist/game/data/scripts/quests/Q10385_RedThreadOfFate/31149-03.html
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q10385_RedThreadOfFate/31149-03.html
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Alchemist's Mixing Urn:<br>
|
||||||
|
After rummaging through the jar, you found nothing valuable. Go back to the Blacksmith of Flame, Vulcan, through Magic Trader Wesley.
|
||||||
|
</body></html>
|
3
trunk/dist/game/data/scripts/quests/Q10385_RedThreadOfFate/31519-03.html
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q10385_RedThreadOfFate/31519-03.html
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Enfeux:<br>
|
||||||
|
Return to the <font color="LEVEL">Town of Rune</font> and ask <font color="LEVEL">High Priest Innocentin</font> at Einhasad Temple about the gem.
|
||||||
|
</body></html>
|
5
trunk/dist/game/data/scripts/quests/Q10385_RedThreadOfFate/31539-09.html
vendored
Normal file
5
trunk/dist/game/data/scripts/quests/Q10385_RedThreadOfFate/31539-09.html
vendored
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
<html><body>Vulcan, Blacksmith of the Flame:<br>
|
||||||
|
You forgot what to do?<br1>
|
||||||
|
Go to the <font color="LEVEL">basement floor of the Ivory Tower where all the shops are</font>, and you will see an <font color="LEVEL">Alchemist's Mixing Urn</font>. Put in all the ingredients I gave you and mix them.<br>
|
||||||
|
On your way back here, tell <font color="LEVEL">Magic Trader Wesley</font> that I sent you there. Then he will send you back here with his scroll.
|
||||||
|
</body></html>
|
3
trunk/dist/game/data/scripts/quests/Q10385_RedThreadOfFate/31539-10.html
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q10385_RedThreadOfFate/31539-10.html
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Vulcan, Blacksmith of the Flame:<br>
|
||||||
|
Now that you have what you wanted from me, you will just walk away? Please bury my letter in the <font color="LEVEL">Dwarven Village</font> for my poor wife who was killed by the Earth Wyrm.
|
||||||
|
</body></html>
|
@@ -1,5 +1,5 @@
|
|||||||
<html><body>Heine Water Source:<br>
|
<html><body>Heine Water Source:<br>
|
||||||
Clean-looking water.<br>
|
Clean-looking water.<br>
|
||||||
Not sure, if this is the Clearest Water, but try scooping the water.<br>
|
Not sure, if this is the Clearest Water, but try scooping the water.<br>
|
||||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10385_RedThreadOfFate TP2">"I'll try scooping the water."</button>
|
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10385_RedThreadOfFate">"I'll try scooping the water."</button>
|
||||||
</body></html>
|
</body></html>
|
3
trunk/dist/game/data/scripts/quests/Q10385_RedThreadOfFate/33785-02.html
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q10385_RedThreadOfFate/33785-02.html
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<html><body>The Altar of Shilen:<br>
|
||||||
|
The stone statue of Shilen stands before you, dark and foreboding despite its inanimate nature.
|
||||||
|
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q10385_RedThreadOfFate/33787-02.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q10385_RedThreadOfFate/33787-02.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
<html><body<Deserted Dwarven House:<br>
|
||||||
|
Abandoned house at the Dwarven Village, destroyed by the Earth Wyrm.<br>
|
||||||
|
Along with Talking Island Village, the Dwarven Village was the most severely damaged by the wakening of the Goddess of Destruction.
|
||||||
|
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q10385_RedThreadOfFate/33788-02.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q10385_RedThreadOfFate/33788-02.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
<html><body>Pa'agrio Temple:<br>
|
||||||
|
Pa'agrio Temple. Its doors are sealed shut. <br>
|
||||||
|
The Orcs have now lost their anchor in this vast world...
|
||||||
|
</body></html>
|
3
trunk/dist/game/data/scripts/quests/Q10385_RedThreadOfFate/33789-02.html
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q10385_RedThreadOfFate/33789-02.html
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Cave of Souls:<br>
|
||||||
|
Kamaels were created here before the waking of the Goddess of Destruction. The place is desolate now, with rocks crumbled down.
|
||||||
|
</body></html>
|
@@ -59,7 +59,6 @@ public class Q10385_RedThreadOfFate extends Quest
|
|||||||
private static final int SHILEN = 33785;
|
private static final int SHILEN = 33785;
|
||||||
private static final int SOULS = 33789;
|
private static final int SOULS = 33789;
|
||||||
private static final int MOTHER_TREE = 33786;
|
private static final int MOTHER_TREE = 33786;
|
||||||
|
|
||||||
// Items
|
// Items
|
||||||
private static final int MYSTERIOUS_LETTER = 36072;
|
private static final int MYSTERIOUS_LETTER = 36072;
|
||||||
private static final int WATER_GARDEN_OF_EVA = 36066;
|
private static final int WATER_GARDEN_OF_EVA = 36066;
|
||||||
@@ -99,11 +98,12 @@ public class Q10385_RedThreadOfFate extends Quest
|
|||||||
super(10385, Q10385_RedThreadOfFate.class.getSimpleName(), "Red Thread of Fate");
|
super(10385, Q10385_RedThreadOfFate.class.getSimpleName(), "Red Thread of Fate");
|
||||||
addStartNpc(RAINA);
|
addStartNpc(RAINA);
|
||||||
addTalkId(RAINA, MORELYN, LANYA, WATER_SOURCE, LADY_OF_THE_LAKE, NERUPA, ENFEUX, INNOCENTIN, VULCAN, URN, WESLEY, HOUSE, PAAGRIO_TEMPLE, SHILEN, SOULS, MOTHER_TREE);
|
addTalkId(RAINA, MORELYN, LANYA, WATER_SOURCE, LADY_OF_THE_LAKE, NERUPA, ENFEUX, INNOCENTIN, VULCAN, URN, WESLEY, HOUSE, PAAGRIO_TEMPLE, SHILEN, SOULS, MOTHER_TREE);
|
||||||
addFirstTalkId(LANYA, HOUSE, PAAGRIO_TEMPLE, SHILEN, SOULS, MOTHER_TREE);
|
addFirstTalkId(LANYA, WATER_SOURCE, HOUSE, PAAGRIO_TEMPLE, SHILEN, SOULS, MOTHER_TREE);
|
||||||
addSocialActionSeeId(LANYA);
|
addSocialActionSeeId(LANYA);
|
||||||
addSkillSeeId(HOUSE, PAAGRIO_TEMPLE, SHILEN, SOULS, MOTHER_TREE);
|
addSkillSeeId(HOUSE, PAAGRIO_TEMPLE, SHILEN, SOULS, MOTHER_TREE);
|
||||||
registerQuestItems(MYSTERIOUS_LETTER, WATER_GARDEN_OF_EVA, CLEAREST_WATER, PUREST_SOUL, VULCAN_TRUE_GOLD, VULCAN_PURE_SILVER, VULCAN_BLOOD_FIRE, FIERCEST_FLAME, FONDEST_HEART, SCROLL_OF_ESCAPE_VOA, SCROLL_OF_ESCAPE_FOG, SCROLL_OF_ESCAPE_IT, SCROLL_OF_ESCAPE_DV);
|
registerQuestItems(MYSTERIOUS_LETTER, WATER_GARDEN_OF_EVA, CLEAREST_WATER, PUREST_SOUL, VULCAN_TRUE_GOLD, VULCAN_PURE_SILVER, VULCAN_BLOOD_FIRE, FIERCEST_FLAME, FONDEST_HEART, SCROLL_OF_ESCAPE_VOA, SCROLL_OF_ESCAPE_FOG, SCROLL_OF_ESCAPE_IT, SCROLL_OF_ESCAPE_DV);
|
||||||
addKillId(SHILEN_MESSENGER);
|
addKillId(SHILEN_MESSENGER);
|
||||||
|
addAttackId(SHILEN_MESSENGER);
|
||||||
addSpawnId(SHILEN_MESSENGER);
|
addSpawnId(SHILEN_MESSENGER);
|
||||||
addCondNotRace(Race.ERTHEIA, "noRace.html");
|
addCondNotRace(Race.ERTHEIA, "noRace.html");
|
||||||
addCondCompletedQuest(Q10338_SeizeYourDestiny.class.getSimpleName(), "restriction.html");
|
addCondCompletedQuest(Q10338_SeizeYourDestiny.class.getSimpleName(), "restriction.html");
|
||||||
@@ -180,16 +180,6 @@ public class Q10385_RedThreadOfFate extends Quest
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case "TP2":
|
|
||||||
{
|
|
||||||
if (qs.isCond(5))
|
|
||||||
{
|
|
||||||
qs.setCond(6);
|
|
||||||
player.teleToLocation(WATER_LOC, 0);
|
|
||||||
giveItems(player, WATER_GARDEN_OF_EVA, 1);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case "31745-03.html":
|
case "31745-03.html":
|
||||||
{
|
{
|
||||||
if (qs.isCond(6))
|
if (qs.isCond(6))
|
||||||
@@ -227,6 +217,7 @@ public class Q10385_RedThreadOfFate extends Quest
|
|||||||
{
|
{
|
||||||
qs.setCond(9);
|
qs.setCond(9);
|
||||||
giveItems(player, PUREST_SOUL, 1);
|
giveItems(player, PUREST_SOUL, 1);
|
||||||
|
htmltext = "31519-02.html";
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -236,6 +227,7 @@ public class Q10385_RedThreadOfFate extends Quest
|
|||||||
{
|
{
|
||||||
qs.setCond(10);
|
qs.setCond(10);
|
||||||
giveItems(player, SCROLL_OF_ESCAPE_FOG, 1);
|
giveItems(player, SCROLL_OF_ESCAPE_FOG, 1);
|
||||||
|
htmltext = "31328-02.html";
|
||||||
showOnScreenMsg(player, NpcStringId.TRY_USING_THE_TELEPORT_SCROLL_INNOCENTIN_GAVE_YOU_TO_GO_TO_THE_FORGE_OF_THE_GODS, ExShowScreenMessage.TOP_CENTER, 4500);
|
showOnScreenMsg(player, NpcStringId.TRY_USING_THE_TELEPORT_SCROLL_INNOCENTIN_GAVE_YOU_TO_GO_TO_THE_FORGE_OF_THE_GODS, ExShowScreenMessage.TOP_CENTER, 4500);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -249,6 +241,7 @@ public class Q10385_RedThreadOfFate extends Quest
|
|||||||
giveItems(player, VULCAN_TRUE_GOLD, 1);
|
giveItems(player, VULCAN_TRUE_GOLD, 1);
|
||||||
giveItems(player, VULCAN_PURE_SILVER, 1);
|
giveItems(player, VULCAN_PURE_SILVER, 1);
|
||||||
giveItems(player, VULCAN_BLOOD_FIRE, 1);
|
giveItems(player, VULCAN_BLOOD_FIRE, 1);
|
||||||
|
htmltext = "31539-04.html";
|
||||||
showOnScreenMsg(player, NpcStringId.TRY_USING_THE_TELEPORT_SCROLL_VULCAN_GAVE_YOU_TO_GO_TO_IVORY_TOWER, ExShowScreenMessage.TOP_CENTER, 4500);
|
showOnScreenMsg(player, NpcStringId.TRY_USING_THE_TELEPORT_SCROLL_VULCAN_GAVE_YOU_TO_GO_TO_IVORY_TOWER, ExShowScreenMessage.TOP_CENTER, 4500);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -291,6 +284,7 @@ public class Q10385_RedThreadOfFate extends Quest
|
|||||||
giveItems(player, SCROLL_OF_ESCAPE_DV, 1);
|
giveItems(player, SCROLL_OF_ESCAPE_DV, 1);
|
||||||
giveItems(player, FIERCEST_FLAME, 1);
|
giveItems(player, FIERCEST_FLAME, 1);
|
||||||
giveItems(player, FONDEST_HEART, 1);
|
giveItems(player, FONDEST_HEART, 1);
|
||||||
|
htmltext = "31539-08.html";
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -310,18 +304,26 @@ public class Q10385_RedThreadOfFate extends Quest
|
|||||||
switch (qs.getCond())
|
switch (qs.getCond())
|
||||||
{
|
{
|
||||||
case 14:
|
case 14:
|
||||||
|
{
|
||||||
|
if (skill.getId() == NPC_HOUSE.getSkillId())
|
||||||
{
|
{
|
||||||
castSkill(npc, player, NPC_HOUSE.getSkill());
|
castSkill(npc, player, NPC_HOUSE.getSkill());
|
||||||
qs.setCond(15);
|
qs.setCond(15);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
case 15:
|
case 15:
|
||||||
|
{
|
||||||
|
if (skill.getId() == NPC_PAAGRIO.getSkillId())
|
||||||
{
|
{
|
||||||
castSkill(npc, player, NPC_PAAGRIO.getSkill());
|
castSkill(npc, player, NPC_PAAGRIO.getSkill());
|
||||||
qs.setCond(16);
|
qs.setCond(16);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
case 16:
|
case 16:
|
||||||
|
{
|
||||||
|
if (skill.getId() == NPC_SHILEN.getSkillId())
|
||||||
{
|
{
|
||||||
castSkill(npc, player, NPC_SHILEN.getSkill());
|
castSkill(npc, player, NPC_SHILEN.getSkill());
|
||||||
addAttackDesire(addSpawn(SHILEN_MESSENGER, npc, true, 0, false), player);
|
addAttackDesire(addSpawn(SHILEN_MESSENGER, npc, true, 0, false), player);
|
||||||
@@ -331,13 +333,19 @@ public class Q10385_RedThreadOfFate extends Quest
|
|||||||
qs.setCond(17);
|
qs.setCond(17);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
case 17:
|
case 17:
|
||||||
|
{
|
||||||
|
if (skill.getId() == NPC_SOULS.getSkillId())
|
||||||
{
|
{
|
||||||
castSkill(npc, player, NPC_SOULS.getSkill());
|
castSkill(npc, player, NPC_SOULS.getSkill());
|
||||||
qs.setCond(18);
|
qs.setCond(18);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
case 18:
|
case 18:
|
||||||
|
{
|
||||||
|
if (skill.getId() == NPC_TREE.getSkillId())
|
||||||
{
|
{
|
||||||
castSkill(npc, player, NPC_TREE.getSkill());
|
castSkill(npc, player, NPC_TREE.getSkill());
|
||||||
qs.setCond(19);
|
qs.setCond(19);
|
||||||
@@ -346,6 +354,8 @@ public class Q10385_RedThreadOfFate extends Quest
|
|||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
|
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
|
||||||
@@ -424,13 +434,27 @@ public class Q10385_RedThreadOfFate extends Quest
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case WATER_SOURCE:
|
||||||
|
{
|
||||||
|
if (qs.isCond(5))
|
||||||
|
{
|
||||||
|
htmltext = "33784-01.html";
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
case HOUSE:
|
case HOUSE:
|
||||||
{
|
{
|
||||||
if (qs.isCond(14))
|
if (qs.isCond(14))
|
||||||
{
|
{
|
||||||
htmltext = "33788-01.html";
|
htmltext = "33788-01.html";
|
||||||
}
|
|
||||||
showOnScreenMsg(player, NpcStringId.USE_THE_FONDEST_HEART_IN_YOUR_INVENTORY, ExShowScreenMessage.TOP_CENTER, 4500);
|
showOnScreenMsg(player, NpcStringId.USE_THE_FONDEST_HEART_IN_YOUR_INVENTORY, ExShowScreenMessage.TOP_CENTER, 4500);
|
||||||
|
}
|
||||||
|
else if (qs.isCond(15))
|
||||||
|
{
|
||||||
|
{
|
||||||
|
htmltext = "33788-02.html";
|
||||||
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case PAAGRIO_TEMPLE:
|
case PAAGRIO_TEMPLE:
|
||||||
@@ -438,8 +462,14 @@ public class Q10385_RedThreadOfFate extends Quest
|
|||||||
if (qs.isCond(15))
|
if (qs.isCond(15))
|
||||||
{
|
{
|
||||||
htmltext = "33787-01.html";
|
htmltext = "33787-01.html";
|
||||||
}
|
|
||||||
showOnScreenMsg(player, NpcStringId.USE_THE_FIERCEST_FLAME_IN_YOUR_INVENTORY, ExShowScreenMessage.TOP_CENTER, 4500);
|
showOnScreenMsg(player, NpcStringId.USE_THE_FIERCEST_FLAME_IN_YOUR_INVENTORY, ExShowScreenMessage.TOP_CENTER, 4500);
|
||||||
|
}
|
||||||
|
else if (qs.isCond(16))
|
||||||
|
{
|
||||||
|
{
|
||||||
|
htmltext = "33787-02.html";
|
||||||
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case SHILEN:
|
case SHILEN:
|
||||||
@@ -447,8 +477,14 @@ public class Q10385_RedThreadOfFate extends Quest
|
|||||||
if (qs.isCond(16))
|
if (qs.isCond(16))
|
||||||
{
|
{
|
||||||
htmltext = "33785-01.html";
|
htmltext = "33785-01.html";
|
||||||
}
|
|
||||||
showOnScreenMsg(player, NpcStringId.USE_THE_BRIGHTEST_LIGHT_IN_YOUR_INVENTORY, ExShowScreenMessage.TOP_CENTER, 4500);
|
showOnScreenMsg(player, NpcStringId.USE_THE_BRIGHTEST_LIGHT_IN_YOUR_INVENTORY, ExShowScreenMessage.TOP_CENTER, 4500);
|
||||||
|
}
|
||||||
|
else if (qs.isCond(17))
|
||||||
|
{
|
||||||
|
{
|
||||||
|
htmltext = "33785-02.html";
|
||||||
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case SOULS:
|
case SOULS:
|
||||||
@@ -456,8 +492,14 @@ public class Q10385_RedThreadOfFate extends Quest
|
|||||||
if (qs.isCond(17))
|
if (qs.isCond(17))
|
||||||
{
|
{
|
||||||
htmltext = "33789-01.html";
|
htmltext = "33789-01.html";
|
||||||
}
|
|
||||||
showOnScreenMsg(player, NpcStringId.USE_THE_PUREST_SOUL_IN_YOUR_INVENTORY, ExShowScreenMessage.TOP_CENTER, 4500);
|
showOnScreenMsg(player, NpcStringId.USE_THE_PUREST_SOUL_IN_YOUR_INVENTORY, ExShowScreenMessage.TOP_CENTER, 4500);
|
||||||
|
}
|
||||||
|
else if (qs.isCond(18))
|
||||||
|
{
|
||||||
|
{
|
||||||
|
htmltext = "33789-02.html";
|
||||||
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case MOTHER_TREE:
|
case MOTHER_TREE:
|
||||||
@@ -526,7 +568,9 @@ public class Q10385_RedThreadOfFate extends Quest
|
|||||||
{
|
{
|
||||||
if (qs.isCond(5))
|
if (qs.isCond(5))
|
||||||
{
|
{
|
||||||
htmltext = "33784-01.html";
|
qs.setCond(6);
|
||||||
|
player.teleToLocation(WATER_LOC, 0);
|
||||||
|
giveItems(player, WATER_GARDEN_OF_EVA, 1);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -544,6 +588,12 @@ public class Q10385_RedThreadOfFate extends Quest
|
|||||||
{
|
{
|
||||||
htmltext = "30370-01.html";
|
htmltext = "30370-01.html";
|
||||||
}
|
}
|
||||||
|
else if (qs.isCond(8))
|
||||||
|
{
|
||||||
|
{
|
||||||
|
htmltext = "30370-05.html";
|
||||||
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ENFEUX:
|
case ENFEUX:
|
||||||
@@ -552,6 +602,12 @@ public class Q10385_RedThreadOfFate extends Quest
|
|||||||
{
|
{
|
||||||
htmltext = "31519-01.html";
|
htmltext = "31519-01.html";
|
||||||
}
|
}
|
||||||
|
else if (qs.isCond(9))
|
||||||
|
{
|
||||||
|
{
|
||||||
|
htmltext = "31519-03.html";
|
||||||
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case INNOCENTIN:
|
case INNOCENTIN:
|
||||||
@@ -572,10 +628,18 @@ public class Q10385_RedThreadOfFate extends Quest
|
|||||||
{
|
{
|
||||||
htmltext = "31539-01.html";
|
htmltext = "31539-01.html";
|
||||||
}
|
}
|
||||||
|
else if (qs.isCond(11))
|
||||||
|
{
|
||||||
|
htmltext = "31539-09.html";
|
||||||
|
}
|
||||||
else if (qs.isCond(13))
|
else if (qs.isCond(13))
|
||||||
{
|
{
|
||||||
htmltext = "31539-05.html";
|
htmltext = "31539-05.html";
|
||||||
}
|
}
|
||||||
|
else if (qs.isCond(14))
|
||||||
|
{
|
||||||
|
htmltext = "31539-10.html";
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case URN:
|
case URN:
|
||||||
@@ -584,6 +648,10 @@ public class Q10385_RedThreadOfFate extends Quest
|
|||||||
{
|
{
|
||||||
htmltext = "31149-01.html";
|
htmltext = "31149-01.html";
|
||||||
}
|
}
|
||||||
|
else if (qs.isCond(12))
|
||||||
|
{
|
||||||
|
htmltext = "31149-03.html";
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case WESLEY:
|
case WESLEY:
|
||||||
|
12
trunk/dist/game/data/zones/custom_script.xml
vendored
12
trunk/dist/game/data/zones/custom_script.xml
vendored
@@ -245,6 +245,18 @@
|
|||||||
<node X="-114536" Y="257336" />
|
<node X="-114536" Y="257336" />
|
||||||
<node X="-114520" Y="257496" />
|
<node X="-114520" Y="257496" />
|
||||||
</zone>
|
</zone>
|
||||||
|
<zone name="talking_island_dark_knight" id="33751" type="ScriptZone" shape="NPoly" minZ="-3755" maxZ="-3685">
|
||||||
|
<node X="209431" Y="15217" />
|
||||||
|
<node X="209336" Y="15536" />
|
||||||
|
<node X="210171" Y="16373" />
|
||||||
|
<node X="210005" Y="16484" />
|
||||||
|
<node X="207353" Y="13443" />
|
||||||
|
<node X="210664" Y="10363" />
|
||||||
|
<node X="212533" Y="12276" />
|
||||||
|
<node X="213840" Y="13987" />
|
||||||
|
<node X="210597" Y="16835" />
|
||||||
|
<node X="210049" Y="16529" />
|
||||||
|
</zone>
|
||||||
<zone name="ye_sagira_ruins_movie_zone" id="10361" type="ScriptZone" shape="NPoly" minZ="-1700" maxZ="-1637">
|
<zone name="ye_sagira_ruins_movie_zone" id="10361" type="ScriptZone" shape="NPoly" minZ="-1700" maxZ="-1637">
|
||||||
<node X="-115086" Y="230896" />
|
<node X="-115086" Y="230896" />
|
||||||
<node X="-115448" Y="230009" />
|
<node X="-115448" Y="230009" />
|
||||||
|
Reference in New Issue
Block a user