Pagan Temple rework.
Contributed by hlwrave.
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
/*
|
||||
* 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 ai.npc.Teleports.DimensionalWarpTeleport;
|
||||
|
||||
import com.l2jmobius.gameserver.model.Location;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Npc;
|
||||
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
||||
|
||||
import ai.npc.AbstractNpcAI;
|
||||
|
||||
/**
|
||||
* @author hlwrave
|
||||
*/
|
||||
final class DimensionalWarpTeleport extends AbstractNpcAI
|
||||
{
|
||||
// NPC
|
||||
private final static int RESED = 33974;
|
||||
// Misc
|
||||
private final static int MIN_LEVEL = 99;
|
||||
// Items
|
||||
private final static int WARP_CRYSTAL = 39597;
|
||||
private final static int WARP_CRYSTAL_COUNT = 3;
|
||||
// Location
|
||||
private final static Location DIMENSIONAL_WARP = new Location(-76785, -217420, 4016);
|
||||
|
||||
private DimensionalWarpTeleport()
|
||||
{
|
||||
super(DimensionalWarpTeleport.class.getSimpleName(), "ai/npc/Teleports");
|
||||
addStartNpc(RESED);
|
||||
addTalkId(RESED);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
if ((hasQuestItems(player, WARP_CRYSTAL)) && (player.getLevel() >= MIN_LEVEL) && (getQuestItemsCount(player, WARP_CRYSTAL) >= WARP_CRYSTAL_COUNT) && (player.isAwaken()))
|
||||
{
|
||||
takeItems(player, WARP_CRYSTAL, 3);
|
||||
player.teleToLocation(DIMENSIONAL_WARP);
|
||||
}
|
||||
else if (player.getLevel() < MIN_LEVEL)
|
||||
{
|
||||
return "no_level.htm";
|
||||
}
|
||||
else if (getQuestItemsCount(player, WARP_CRYSTAL) < WARP_CRYSTAL_COUNT)
|
||||
{
|
||||
return "no_item.htm";
|
||||
}
|
||||
else
|
||||
{
|
||||
return "non_awakened.htm";
|
||||
}
|
||||
return super.onTalk(npc, player);
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new DimensionalWarpTeleport();
|
||||
}
|
||||
}
|
3
trunk/dist/game/data/scripts/ai/npc/Teleports/DimensionalWarpTeleport/no_item.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/ai/npc/Teleports/DimensionalWarpTeleport/no_item.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Resed:<br>
|
||||
You must have a <font color="LEVEL">3</font> Warp Crystal , in order to teleport Dimensional Warp.
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/ai/npc/Teleports/DimensionalWarpTeleport/no_level.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/ai/npc/Teleports/DimensionalWarpTeleport/no_level.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Resed:<br>
|
||||
I do not believe our paths are meant to cross here. Perhaps later down the road.<br>
|
||||
(Only characters Lv. 99. or Above)
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/ai/npc/Teleports/DimensionalWarpTeleport/non_awakened.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/ai/npc/Teleports/DimensionalWarpTeleport/non_awakened.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Resed:<br>
|
||||
Sorry, I can't teleoprt you to Dimensional Warp. Come back when you have Awakened to it.
|
||||
</body></html>
|
68
trunk/dist/game/data/scripts/ai/npc/Teleports/KargosTeleport/KargosTeleport.java
vendored
Normal file
68
trunk/dist/game/data/scripts/ai/npc/Teleports/KargosTeleport/KargosTeleport.java
vendored
Normal file
@@ -0,0 +1,68 @@
|
||||
/*
|
||||
* 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 ai.npc.Teleports.KargosTeleport;
|
||||
|
||||
import com.l2jmobius.gameserver.model.Location;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Npc;
|
||||
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
||||
|
||||
import ai.npc.AbstractNpcAI;
|
||||
|
||||
/**
|
||||
* @author hlwrave
|
||||
*/
|
||||
final class KargosTeleport extends AbstractNpcAI
|
||||
{
|
||||
// NPC
|
||||
private final static int KARGOS = 33821;
|
||||
// Items
|
||||
private final static int PAGAN_MARK = 8067;
|
||||
private final static int VISITOR_MARK = 8064;
|
||||
// Locations
|
||||
private final static Location PAGAN_TEMPLE = new Location(-16350, -37579, -10725);
|
||||
private final static Location PAGAN_ROOM = new Location(-12766, -35840, -10851);
|
||||
|
||||
private KargosTeleport()
|
||||
{
|
||||
super(KargosTeleport.class.getSimpleName(), "ai/npc/Teleports");
|
||||
addStartNpc(KARGOS);
|
||||
addTalkId(KARGOS);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
if (hasQuestItems(player, PAGAN_MARK, VISITOR_MARK))
|
||||
{
|
||||
player.teleToLocation(PAGAN_TEMPLE);
|
||||
}
|
||||
else if (hasQuestItems(player, VISITOR_MARK))
|
||||
{
|
||||
player.teleToLocation(PAGAN_ROOM);
|
||||
}
|
||||
else
|
||||
{
|
||||
return "noItem.htm";
|
||||
}
|
||||
return super.onTalk(npc, player);
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new KargosTeleport();
|
||||
}
|
||||
}
|
4
trunk/dist/game/data/scripts/ai/npc/Teleports/KargosTeleport/noItem.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/ai/npc/Teleports/KargosTeleport/noItem.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Kargos:<br>
|
||||
You have nothing that would cover the holes.<br>
|
||||
(You must have a Visitor's Mark, a Pagan's Mark in order to teleport Pagan Temple.)
|
||||
</body></html>
|
169
trunk/dist/game/data/scripts/quests/Q00757_TriolsMovement/Q00757_TriolsMovement.java
vendored
Normal file
169
trunk/dist/game/data/scripts/quests/Q00757_TriolsMovement/Q00757_TriolsMovement.java
vendored
Normal file
@@ -0,0 +1,169 @@
|
||||
/*
|
||||
* 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.Q00757_TriolsMovement;
|
||||
|
||||
import com.l2jmobius.gameserver.enums.QuestType;
|
||||
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;
|
||||
import com.l2jmobius.gameserver.util.Util;
|
||||
|
||||
/**
|
||||
* @author hlwrave
|
||||
*/
|
||||
public class Q00757_TriolsMovement extends Quest
|
||||
{
|
||||
// NPCs
|
||||
private static final int RADZEN = 33803;
|
||||
// Items
|
||||
private static final int SPIRIT = 36231;
|
||||
private static final int TOTEM = 36230;
|
||||
private static final int SPIRIT_COUNT = 100;
|
||||
private static final int TOTEM_COUNT = 100;
|
||||
// Mobs
|
||||
private static final int[] MOBS =
|
||||
{
|
||||
22140,
|
||||
22147,
|
||||
23278,
|
||||
23283,
|
||||
22146,
|
||||
22155,
|
||||
22141,
|
||||
22144,
|
||||
22139,
|
||||
22152,
|
||||
22153,
|
||||
22154,
|
||||
};
|
||||
|
||||
public Q00757_TriolsMovement()
|
||||
{
|
||||
super(757, Q00757_TriolsMovement.class.getSimpleName(), "Triols Movement");
|
||||
addStartNpc(RADZEN);
|
||||
addTalkId(RADZEN);
|
||||
registerQuestItems(SPIRIT, TOTEM);
|
||||
addKillId(MOBS);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
String htmltext = event;
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
|
||||
if (qs == null)
|
||||
{
|
||||
return getNoQuestMsg(player);
|
||||
}
|
||||
|
||||
switch (event)
|
||||
{
|
||||
case "accepted.htm":
|
||||
{
|
||||
qs.setCond(1);
|
||||
qs.startQuest();
|
||||
break;
|
||||
}
|
||||
case "endquest.htm":
|
||||
{
|
||||
if (qs.isCond(2))
|
||||
{
|
||||
qs.takeItems(SPIRIT, -100);
|
||||
qs.takeItems(TOTEM, -100);
|
||||
qs.giveItems(57, 745929);
|
||||
qs.giveItems(36232, 1);
|
||||
qs.addExpAndSp(301518549, 7236360);
|
||||
qs.exitQuest(QuestType.DAILY, true);
|
||||
htmltext = "endquest.htm";
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
String htmltext = getNoQuestMsg(player);
|
||||
final QuestState qs = getQuestState(player, true);
|
||||
if (qs == null)
|
||||
{
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
switch (qs.getState())
|
||||
{
|
||||
case State.COMPLETED:
|
||||
{
|
||||
htmltext = "You have completed this quest today, come back tomorow at 6:30!";
|
||||
break;
|
||||
}
|
||||
case State.CREATED:
|
||||
{
|
||||
if (player.getLevel() >= 97)
|
||||
{
|
||||
htmltext = "start.htm";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "no_level.htm";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case State.STARTED:
|
||||
{
|
||||
if (qs.isCond(1))
|
||||
{
|
||||
htmltext = "notcollected.htm";
|
||||
}
|
||||
else if (qs.isCond(2))
|
||||
{
|
||||
htmltext = "collected.htm";
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
|
||||
{
|
||||
final QuestState qs = getQuestState(killer, false);
|
||||
if ((qs != null) && qs.isCond(1) && qs.isStarted())
|
||||
{
|
||||
|
||||
if (Util.contains(MOBS, npc.getId()))
|
||||
{
|
||||
giveItemRandomly(killer, npc, TOTEM, 1, 100, 1.0, true);
|
||||
}
|
||||
if (Util.contains(MOBS, npc.getId()))
|
||||
{
|
||||
giveItemRandomly(killer, npc, SPIRIT, 1, 100, 1.0, true);
|
||||
}
|
||||
if ((getQuestItemsCount(killer, SPIRIT) == SPIRIT_COUNT) && (getQuestItemsCount(killer, TOTEM) == TOTEM_COUNT))
|
||||
{
|
||||
qs.setCond(2);
|
||||
}
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
}
|
7
trunk/dist/game/data/scripts/quests/Q00757_TriolsMovement/accepted.htm
vendored
Normal file
7
trunk/dist/game/data/scripts/quests/Q00757_TriolsMovement/accepted.htm
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<html><body>Sec:<br>
|
||||
This is great news for us!<br>
|
||||
Here is a list of monsters which must be eliminated:<br>
|
||||
Risen worker Ritual Offering, Amateur Tyrol, Tyrol believer, priest of Tyrol, the High Priest of Tyrol, The Forgotten Victim, Resurrected Temple Knight, Soldier of the old aristocracy, Guardian of the Temple, the captain of the Temple Ritual Sacrifice.<br>
|
||||
In a sign of proof of the offense bring 50 "Pagan Totem", and also you can collect "Pagan Spirit" through this thing I can replenish your energy!<br>
|
||||
Come see me when you've gathered 50 "Pagan Totem" and as much as possible, "the Spirit of the Gentiles."
|
||||
</body></html>
|
5
trunk/dist/game/data/scripts/quests/Q00757_TriolsMovement/collected.htm
vendored
Normal file
5
trunk/dist/game/data/scripts/quests/Q00757_TriolsMovement/collected.htm
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Sec:<br>
|
||||
I can see how theirs are shining precious totems!<br>
|
||||
Show that even brought?<br><br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00757_TriolsMovement endquest.htm">"Show"</button>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00757_TriolsMovement/endquest.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00757_TriolsMovement/endquest.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Sec:<br>
|
||||
Thank you for helping us keep the balance among Rassam! So as that's your reward, I was able to fill up a bit of energy you above all.<br>
|
||||
Triols all exactly is a lot out there, and the rest a come back tomorrow to continue the mission of our gods!
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/quests/Q00757_TriolsMovement/no_level.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q00757_TriolsMovement/no_level.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>You don't meet level requirements<br>
|
||||
(Quest available from level 97 or above.)
|
||||
</body></html>
|
7
trunk/dist/game/data/scripts/quests/Q00757_TriolsMovement/notcollected.htm
vendored
Normal file
7
trunk/dist/game/data/scripts/quests/Q00757_TriolsMovement/notcollected.htm
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<html><body>Sec:<br>
|
||||
This is great news for us!<br>
|
||||
Here is a list of monsters which must be eliminated:<br>
|
||||
Risen worker Ritual Offering, Amateur Tyrol, Tyrol believer, priest of Tyrol, the High Priest of Tyrol, The Forgotten Victim, Resurrected Temple Knight, Soldier of the old aristocracy, Guardian of the Temple, the captain of the Temple Ritual Sacrifice.<br>
|
||||
In a sign of proof of the offense bring 50 "Pagan Totem", and also you can collect "Pagan Spirit" through this thing I can replenish your energy!<br>
|
||||
Come see me when you've gathered 50 "Pagan Totem" and as much as possible, "the Spirit of the Gentiles."
|
||||
</body></html>
|
5
trunk/dist/game/data/scripts/quests/Q00757_TriolsMovement/start.htm
vendored
Normal file
5
trunk/dist/game/data/scripts/quests/Q00757_TriolsMovement/start.htm
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Sec:<br>
|
||||
We would never have thought that the triplets can multiply so fast, according to our research theirs number exceeds the norm by 389 percent!<br>
|
||||
You are here that would stop this growth?<br><br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00757_TriolsMovement accepted.htm">"Yes, I'm the one who need it!"</button>
|
||||
</body></html>
|
152
trunk/dist/game/data/scripts/quests/Q10388_ConspiracyBehindDoor/Q10388_ConspiracyBehindDoor.java
vendored
Normal file
152
trunk/dist/game/data/scripts/quests/Q10388_ConspiracyBehindDoor/Q10388_ConspiracyBehindDoor.java
vendored
Normal file
@@ -0,0 +1,152 @@
|
||||
/*
|
||||
* 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.Q10388_ConspiracyBehindDoor;
|
||||
|
||||
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;
|
||||
|
||||
/**
|
||||
* @author hlwrave
|
||||
*/
|
||||
public class Q10388_ConspiracyBehindDoor extends Quest
|
||||
{
|
||||
// NPCs
|
||||
private static final int ELIA = 31329;
|
||||
private static final int KARGOS = 33821;
|
||||
private static final int HICHEN = 33820;
|
||||
private static final int RAZDEN = 33803;
|
||||
// Item
|
||||
private static final int VISITORS_BADGE = 8064;
|
||||
|
||||
public Q10388_ConspiracyBehindDoor()
|
||||
{
|
||||
super(10388, Q10388_ConspiracyBehindDoor.class.getSimpleName(), "Conspiracy Behind Door");
|
||||
addStartNpc(ELIA);
|
||||
addTalkId(ELIA, KARGOS, HICHEN, RAZDEN);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
String htmltext = event;
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
|
||||
if (qs == null)
|
||||
{
|
||||
return getNoQuestMsg(player);
|
||||
}
|
||||
|
||||
switch (event)
|
||||
{
|
||||
case "go.htm":
|
||||
{
|
||||
qs.setCond(1);
|
||||
qs.startQuest();
|
||||
break;
|
||||
}
|
||||
case "toCond2.htm":
|
||||
{
|
||||
qs.setCond(2);
|
||||
break;
|
||||
}
|
||||
case "toCond3.htm":
|
||||
{
|
||||
qs.setCond(3);
|
||||
qs.giveItems(VISITORS_BADGE, 1);
|
||||
break;
|
||||
}
|
||||
case "final.htm":
|
||||
{
|
||||
qs.addExpAndSp(29638350, 2963835);
|
||||
qs.exitQuest(false, true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
String htmltext = getNoQuestMsg(player);
|
||||
final QuestState qs = getQuestState(player, true);
|
||||
if (qs == null)
|
||||
{
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
final int npcId = npc.getId();
|
||||
switch (qs.getState())
|
||||
{
|
||||
case State.COMPLETED:
|
||||
{
|
||||
htmltext = getAlreadyCompletedMsg(player);
|
||||
break;
|
||||
}
|
||||
case State.CREATED:
|
||||
{
|
||||
if (npcId == ELIA)
|
||||
{
|
||||
if (player.getLevel() >= 97)
|
||||
{
|
||||
htmltext = "start.htm";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "nolvl.htm";
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case State.STARTED:
|
||||
{
|
||||
switch (npcId)
|
||||
{
|
||||
case KARGOS:
|
||||
{
|
||||
if (qs.isCond(1))
|
||||
{
|
||||
htmltext = "cond1.htm";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case HICHEN:
|
||||
{
|
||||
if (qs.isCond(2))
|
||||
{
|
||||
htmltext = "cond2.htm";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case RAZDEN:
|
||||
{
|
||||
if (qs.isCond(3))
|
||||
{
|
||||
htmltext = "cond3.htm";
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
}
|
6
trunk/dist/game/data/scripts/quests/Q10388_ConspiracyBehindDoor/cond1.htm
vendored
Normal file
6
trunk/dist/game/data/scripts/quests/Q10388_ConspiracyBehindDoor/cond1.htm
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>Kargos:<br>
|
||||
Sir , nice to see you, I see you with a message from our good priest.
|
||||
What then if you are willing to learn of a secret conspiracy , you have to talk to the Costumed Knight Hichen find it will not be easy , he secretly investigating this conspiracy in the Temple of the Pagans.
|
||||
I hope that he will have good news for you!<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10388_ConspiracyBehindDoor toCond2.htm">"I still know him!!!"</button>
|
||||
</body></html>
|
5
trunk/dist/game/data/scripts/quests/Q10388_ConspiracyBehindDoor/cond2.htm
vendored
Normal file
5
trunk/dist/game/data/scripts/quests/Q10388_ConspiracyBehindDoor/cond2.htm
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Hichen:<br>
|
||||
Quiet...! I learned something... outside the door is a new evil that must win our glorious world... Unfortunately I can not say anything more yasnoe..ne dolgo..na stand here we can watch..
|
||||
Go to undress... not long ago he sent me a spy... said that he learned something over a secret... it go immediately.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10388_ConspiracyBehindDoor toCond3.htm">"Thank you!"</button>
|
||||
</body></html>
|
5
trunk/dist/game/data/scripts/quests/Q10388_ConspiracyBehindDoor/cond3.htm
vendored
Normal file
5
trunk/dist/game/data/scripts/quests/Q10388_ConspiracyBehindDoor/cond3.htm
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Radzen:<br>
|
||||
Do not be afraid , come near... I see what you come up with questions... but I will have one and you.
|
||||
You would not find me without the help Hichen, it happens nothing handed?!!<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10388_ConspiracyBehindDoor final.htm">"Tell about a strange message..."</button>
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/quests/Q10388_ConspiracyBehindDoor/final.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q10388_ConspiracyBehindDoor/final.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Radzen:<br>
|
||||
So the ships harbor... tomorrow!? Oh, God, thank you for the information... here's a reward... not much but it's all there... come on later, I need to work!!!
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/quests/Q10388_ConspiracyBehindDoor/go.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q10388_ConspiracyBehindDoor/go.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Eliyah:<br>
|
||||
Oh thank you brave soldier, give me Kargos rays of light and blessing of the gods!
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/quests/Q10388_ConspiracyBehindDoor/nolvl.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q10388_ConspiracyBehindDoor/nolvl.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Elia:<br>
|
||||
Sorry, but it seems you lost your job.. not by force , go work out , come when you reach the 97-level!
|
||||
</body></html>
|
7
trunk/dist/game/data/scripts/quests/Q10388_ConspiracyBehindDoor/start.htm
vendored
Normal file
7
trunk/dist/game/data/scripts/quests/Q10388_ConspiracyBehindDoor/start.htm
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<html><body>Eliyah:<br>
|
||||
Oh, my eyes let me down? It is you? About who says it? Those who will save the world?<br>
|
||||
Of course, not all at once.. first we must learn that hides from us the evil of those same doors!<br>
|
||||
And you do not know about this?! <br>
|
||||
Go and have a talk with the Chief Kargos Knight and he will enlighten your not knowing!<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10388_ConspiracyBehindDoor go.htm">"I think yes!"</button>
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/quests/Q10388_ConspiracyBehindDoor/toCond2.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q10388_ConspiracyBehindDoor/toCond2.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Kargos:<br>
|
||||
Well, Well , good luck to you friend, I hope luck will smile to you!
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/quests/Q10388_ConspiracyBehindDoor/toCond3.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q10388_ConspiracyBehindDoor/toCond3.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Kichen:<br>
|
||||
Yes ... quiet ... * whispers * .. tell him the ships come into the harbor tomorrow .. good luck ..
|
||||
</body></html>
|
166
trunk/dist/game/data/scripts/quests/Q10389_TheVoiceOfAuthority/Q10389_TheVoiceOfAuthority.java
vendored
Normal file
166
trunk/dist/game/data/scripts/quests/Q10389_TheVoiceOfAuthority/Q10389_TheVoiceOfAuthority.java
vendored
Normal file
@@ -0,0 +1,166 @@
|
||||
/*
|
||||
* 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.Q10389_TheVoiceOfAuthority;
|
||||
|
||||
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;
|
||||
import com.l2jmobius.gameserver.network.NpcStringId;
|
||||
import com.l2jmobius.gameserver.network.serverpackets.ExQuestNpcLogList;
|
||||
import com.l2jmobius.gameserver.util.Util;
|
||||
|
||||
import quests.Q10388_ConspiracyBehindDoor.Q10388_ConspiracyBehindDoor;
|
||||
|
||||
/**
|
||||
* @author hlwrave
|
||||
*/
|
||||
public class Q10389_TheVoiceOfAuthority extends Quest
|
||||
{
|
||||
// NPCs
|
||||
private static final int RADZEN = 33803;
|
||||
// Monsters
|
||||
private static final int MOB_1 = 22139;
|
||||
private static final int MOB_2 = 22140;
|
||||
private static final int MOB_3 = 22141;
|
||||
private static final int MOB_4 = 22147;
|
||||
private static final int MOB_5 = 22154;
|
||||
private static final int MOB_6 = 22144;
|
||||
private static final int MOB_7 = 22145;
|
||||
private static final int MOB_8 = 22148;
|
||||
private static final int MOB_9 = 22142;
|
||||
private static final int MOB_10 = 22155;
|
||||
|
||||
public Q10389_TheVoiceOfAuthority()
|
||||
{
|
||||
super(10389, Q10389_TheVoiceOfAuthority.class.getSimpleName(), "The Voice Of Authority");
|
||||
addCondCompletedQuest(Q10388_ConspiracyBehindDoor.class.getSimpleName(), "no_quest.htm");
|
||||
addStartNpc(RADZEN);
|
||||
addTalkId(RADZEN);
|
||||
addKillId(MOB_1, MOB_2, MOB_3, MOB_4, MOB_5, MOB_6, MOB_7, MOB_8, MOB_9, MOB_10);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
String htmltext = event;
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
|
||||
if (qs == null)
|
||||
{
|
||||
return getNoQuestMsg(player);
|
||||
}
|
||||
|
||||
switch (event)
|
||||
{
|
||||
case "accepted.htm":
|
||||
{
|
||||
qs.setCond(1);
|
||||
qs.startQuest();
|
||||
qs.set(Integer.toString(MOB_1), 0);
|
||||
qs.set(Integer.toString(MOB_2), 0);
|
||||
qs.set(Integer.toString(MOB_3), 0);
|
||||
qs.set(Integer.toString(MOB_4), 0);
|
||||
qs.set(Integer.toString(MOB_5), 0);
|
||||
qs.set(Integer.toString(MOB_6), 0);
|
||||
qs.set(Integer.toString(MOB_7), 0);
|
||||
qs.set(Integer.toString(MOB_8), 0);
|
||||
qs.set(Integer.toString(MOB_9), 0);
|
||||
qs.set(Integer.toString(MOB_10), 0);
|
||||
break;
|
||||
}
|
||||
case "endquest.htm":
|
||||
{
|
||||
qs.giveItems(57, 1302720);
|
||||
qs.giveItems(8067, 1);
|
||||
qs.addExpAndSp(592767000, 142264);
|
||||
qs.exitQuest(false, true);
|
||||
htmltext = "endquest.htm";
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
String htmltext = getNoQuestMsg(player);
|
||||
final QuestState qs = getQuestState(player, true);
|
||||
if (qs == null)
|
||||
{
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
switch (qs.getState())
|
||||
{
|
||||
case State.COMPLETED:
|
||||
{
|
||||
htmltext = getAlreadyCompletedMsg(player);
|
||||
break;
|
||||
}
|
||||
case State.CREATED:
|
||||
{
|
||||
if (player.getLevel() >= 97)
|
||||
{
|
||||
htmltext = "start.htm";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "no_level.htm";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case State.STARTED:
|
||||
{
|
||||
if (qs.isCond(1))
|
||||
{
|
||||
htmltext = "notcollected.htm";
|
||||
}
|
||||
else if (qs.isCond(2))
|
||||
{
|
||||
htmltext = "collected.htm";
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
|
||||
{
|
||||
final QuestState qs = getRandomPartyMemberState(killer, -1, 3, npc);
|
||||
if ((qs != null) && qs.isStarted() && qs.isCond(1) && Util.checkIfInRange(1500, npc, qs.getPlayer(), false))
|
||||
{
|
||||
int kills = qs.getInt(Integer.toString(MOB_1));
|
||||
kills++;
|
||||
qs.set(Integer.toString(MOB_1), kills);
|
||||
|
||||
final ExQuestNpcLogList log = new ExQuestNpcLogList(getId());
|
||||
log.addNpcString(NpcStringId.ELIMINATE_THE_PAGANS_IN_THE_ANTEROOM, kills);
|
||||
killer.sendPacket(log);
|
||||
|
||||
if (kills >= 30)
|
||||
{
|
||||
qs.setCond(2);
|
||||
}
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
}
|
3
trunk/dist/game/data/scripts/quests/Q10389_TheVoiceOfAuthority/accepted.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q10389_TheVoiceOfAuthority/accepted.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Radzi:<br>
|
||||
You need to kill 30 monsters, that's what it is: A soldier of the old aristocracy, the Risen worker Forgotten Sacrifice Offering Ritual, Ritual Sacrifice, Resurrected Temple Knight, who believes Tyrol, Tyrol, Amateur, High Priest of the Tyrol. Come back when you're done!
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q10389_TheVoiceOfAuthority/collected.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q10389_TheVoiceOfAuthority/collected.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Radzi:<br>
|
||||
Quickly you're done, I'm happy.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10389_TheVoiceOfAuthority endquest.htm">"What's next?"</button>
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/quests/Q10389_TheVoiceOfAuthority/endquest.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q10389_TheVoiceOfAuthority/endquest.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Radzi:<br>
|
||||
I will give you higher authorities coped with all the complexities, here is your reward and a sign of loyalty.
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/quests/Q10389_TheVoiceOfAuthority/no_level.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q10389_TheVoiceOfAuthority/no_level.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>You don't meet level requirements<br>
|
||||
(Quest available from level 97 or above.)
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/quests/Q10389_TheVoiceOfAuthority/no_quest.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q10389_TheVoiceOfAuthority/no_quest.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>You don't meet level requirements<br>
|
||||
You cannot procceed with this quest until you have completed the Conspiracy Behind Door quest.
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/quests/Q10389_TheVoiceOfAuthority/notcollected.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q10389_TheVoiceOfAuthority/notcollected.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Radzi:<br>
|
||||
You need to kill 30 monsters, that's what it is: A soldier of the old aristocracy, the Risen worker Forgotten Sacrifice Offering Ritual, Ritual Sacrifice, Resurrected Temple Knight, who believes Tyrol, Tyrol, Amateur, High Priest of the Tyrol. Come back when you're done!
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q10389_TheVoiceOfAuthority/start.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q10389_TheVoiceOfAuthority/start.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Radzi:<br>
|
||||
You are not a bad try, but to get to this temple is not so simple. You have not shown us that you are really true to us. I am giving you a chance to prove their loyalty, are you ready?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10389_TheVoiceOfAuthority accepted.htm">"Yes, I'm ready!"</button>
|
||||
</body></html>
|
@@ -168,6 +168,7 @@ import quests.Q00699_GuardianOfTheSkies.Q00699_GuardianOfTheSkies;
|
||||
import quests.Q00700_CursedLife.Q00700_CursedLife;
|
||||
import quests.Q00701_ProofOfExistence.Q00701_ProofOfExistence;
|
||||
import quests.Q00702_ATrapForRevenge.Q00702_ATrapForRevenge;
|
||||
import quests.Q00757_TriolsMovement.Q00757_TriolsMovement;
|
||||
import quests.Q00901_HowLavasaurusesAreMade.Q00901_HowLavasaurusesAreMade;
|
||||
import quests.Q00902_ReclaimOurEra.Q00902_ReclaimOurEra;
|
||||
import quests.Q00903_TheCallOfAntharas.Q00903_TheCallOfAntharas;
|
||||
@@ -223,6 +224,8 @@ import quests.Q10364_ObligationsOfTheSeeker.Q10364_ObligationsOfTheSeeker;
|
||||
import quests.Q10365_SeekerEscort.Q10365_SeekerEscort;
|
||||
import quests.Q10366_RuinsStatusUpdate.Q10366_RuinsStatusUpdate;
|
||||
import quests.Q10368_RebellionOfMonsters.Q10368_RebellionOfMonsters;
|
||||
import quests.Q10388_ConspiracyBehindDoor.Q10388_ConspiracyBehindDoor;
|
||||
import quests.Q10389_TheVoiceOfAuthority.Q10389_TheVoiceOfAuthority;
|
||||
import quests.Q10390_KekropusLetter.Q10390_KekropusLetter;
|
||||
import quests.Q10393_KekropusLetter_AClueCompleted.Q10393_KekropusLetter_AClueCompleted;
|
||||
import quests.Q10397_KekropusLetter_ASuspiciousBadge.Q10397_KekropusLetter_ASuspiciousBadge;
|
||||
@@ -421,6 +424,7 @@ final class QuestMasterHandler
|
||||
Q00700_CursedLife.class,
|
||||
Q00701_ProofOfExistence.class,
|
||||
Q00702_ATrapForRevenge.class,
|
||||
Q00757_TriolsMovement.class,
|
||||
Q00901_HowLavasaurusesAreMade.class,
|
||||
Q00902_ReclaimOurEra.class,
|
||||
Q00903_TheCallOfAntharas.class,
|
||||
@@ -476,6 +480,8 @@ final class QuestMasterHandler
|
||||
Q10365_SeekerEscort.class,
|
||||
Q10366_RuinsStatusUpdate.class,
|
||||
Q10368_RebellionOfMonsters.class,
|
||||
Q10388_ConspiracyBehindDoor.class,
|
||||
Q10389_TheVoiceOfAuthority.class,
|
||||
Q10390_KekropusLetter.class,
|
||||
Q10393_KekropusLetter_AClueCompleted.class,
|
||||
Q10397_KekropusLetter_ASuspiciousBadge.class,
|
||||
|
Reference in New Issue
Block a user