Initial Grand Crusade changes.
This commit is contained in:
@@ -26,7 +26,6 @@ import com.l2jmobius.gameserver.model.actor.instance.L2MonsterInstance;
|
||||
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||
import com.l2jmobius.gameserver.model.skills.Skill;
|
||||
import com.l2jmobius.gameserver.network.NpcStringId;
|
||||
import com.l2jmobius.gameserver.network.serverpackets.Earthquake;
|
||||
import com.l2jmobius.gameserver.network.serverpackets.OnEventTrigger;
|
||||
|
||||
@@ -94,7 +93,7 @@ public final class Cannon extends AbstractNpcAI
|
||||
{
|
||||
takeItems(player, CANNONBALL, 1);
|
||||
npc.setScriptValue(0);
|
||||
npc.setTitleString(NpcStringId.CANNON_IS_LOADING);
|
||||
npc.setTitle("Cannon is loading");
|
||||
npc.broadcastInfo();
|
||||
addSkillCastDesire(npc, npc, PRESENT_SKILL, 23);
|
||||
startQuestTimer("CANNON_RECHARGE", 300000, npc, null);
|
||||
@@ -104,7 +103,7 @@ public final class Cannon extends AbstractNpcAI
|
||||
case "CANNON_RECHARGE":
|
||||
{
|
||||
npc.setScriptValue(1);
|
||||
npc.setTitleString(NpcStringId.EMPTY_CANNON);
|
||||
npc.setTitle("Empty Cannon");
|
||||
npc.broadcastInfo();
|
||||
break;
|
||||
}
|
||||
|
||||
75
L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/others/MonsterBook.java
vendored
Normal file
75
L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/others/MonsterBook.java
vendored
Normal file
@@ -0,0 +1,75 @@
|
||||
/*
|
||||
* 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.others;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.l2jmobius.gameserver.data.xml.impl.MonsterBookData;
|
||||
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.holders.MonsterBookCardHolder;
|
||||
|
||||
import ai.AbstractNpcAI;
|
||||
|
||||
/**
|
||||
* @author Mobius
|
||||
*/
|
||||
public class MonsterBook extends AbstractNpcAI
|
||||
{
|
||||
private static final int MAXIMUM_REWARD_RANGE = 2500;
|
||||
|
||||
private MonsterBook()
|
||||
{
|
||||
for (MonsterBookCardHolder card : MonsterBookData.getInstance().getMonsterBookCards())
|
||||
{
|
||||
addKillId(card.getMonsterId());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
|
||||
{
|
||||
final L2Party party = killer.getParty();
|
||||
List<L2PcInstance> rewardedPlayers = new ArrayList<>();
|
||||
if (party != null)
|
||||
{
|
||||
rewardedPlayers = party.isInCommandChannel() ? party.getCommandChannel().getMembers() : party.getMembers();
|
||||
}
|
||||
else
|
||||
{
|
||||
rewardedPlayers.add(killer);
|
||||
}
|
||||
|
||||
final MonsterBookCardHolder card = MonsterBookData.getInstance().getMonsterBookCardByMonsterId(npc.getId());
|
||||
for (L2PcInstance player : rewardedPlayers)
|
||||
{
|
||||
if ((player != null) && (player.calculateDistance(killer, false, false) < MAXIMUM_REWARD_RANGE))
|
||||
{
|
||||
player.updateMonsterBook(card);
|
||||
}
|
||||
}
|
||||
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new MonsterBook();
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,59 @@
|
||||
482 Recertification of Value
|
||||
504 Competition for the Bandit Stronghold
|
||||
655 A Grand Plan for Taming Wild Beasts
|
||||
665 Basic Training for Hunter Guild Member
|
||||
666 Knowledgeable Hunter Guild Member
|
||||
667 How to Cover Shilen's Eyes
|
||||
668 Fight with Giants
|
||||
669 Intense Fight against Dragon
|
||||
670 Defeating the Lord of Seed
|
||||
671 Path to Finding the Past
|
||||
672 Embryo the Archenemy
|
||||
673 Beleth' Ambition
|
||||
690 |Attack| Begin Alliance Base Defense - 1
|
||||
691 |Attack| Begin Alliance Base Defense - 2
|
||||
692 |Attack| Begin Alliance Base Defense - 3
|
||||
693 |Defense| Protecting Military Power - 1
|
||||
694 |Defense| Protecting Military Power - 2
|
||||
695 |Defense| Protecting Military Power - 3
|
||||
696 |Support| Defense Battery Crafting Support - 1
|
||||
697 |Support| Defense Battery Crafting Support - 2
|
||||
698 |Support| Defense Battery Crafting Support - 3
|
||||
699 |Attack| Sabotage Embryo Solider - 1
|
||||
700 |Attack| Sabotage Embryo Solider - 2
|
||||
701 |Attack| Sabotage Embryo Solider - 3
|
||||
702 |Defense| Gracian Soldier Support - 1
|
||||
703 |Defense| Gracian Soldier Support - 2
|
||||
704 |Defense| Gracian Soldier Support - 3
|
||||
705 |Support| Defense Battery Cannonball Crafting - 1
|
||||
706 |Support| Defense Battery Cannonball Crafting - 2
|
||||
707 |Support| Defense Battery Cannonball Crafting - 3
|
||||
708 |Attack| Neutralize Embryo - 1
|
||||
709 |Attack| Neutralize Embryo - 2
|
||||
710 |Attack| Neutralize Embryo - 3
|
||||
711 |Defense| All-out Battle - 1
|
||||
712 |Defense| All-out Battle - 2
|
||||
713 |Defense| Join the battle - 3
|
||||
714 |Support| Installing Defense Battery - 1
|
||||
715 |Support| Installing Defense Battery - 2
|
||||
716 |Support| Installing Defense Battery - 3
|
||||
717 |Attack| Eliminate Embryo Captain - 1
|
||||
718 |Attack| Eliminate Embryo Captain - 2
|
||||
719 |Attack| Eliminate Embryo Captain - 3
|
||||
720 |Defense| Eliminate Embryo Captain - 1
|
||||
721 |Defense| Eliminate Embryo Captain - 2
|
||||
722 |Defense| Eliminate Embryo Captain - 3
|
||||
723 |Support| Eliminate Enemy with Defense Battery - 1
|
||||
724 |Support| Defeat enemies with the defense artillery - 2
|
||||
725 |Support| Eliminate Enemy with Defense Battery - 3
|
||||
729 |Attack| Impede Kain
|
||||
730 |Defense| Impede Kain
|
||||
731 |Support| Impede Kain
|
||||
732 Red Libra's Request - Kartia's Labyrinth
|
||||
733 Red Libra's Request - Crystal Prison (Baylor)
|
||||
734 Red Libra Request - Nightmare Kamaloka
|
||||
735 Red Libra Request - Embryo Command Post
|
||||
736 Red Libra Request - Altar of Shilen
|
||||
744 The Alligator Hunter returns
|
||||
745 The Outlaws are Incoming
|
||||
746 The Reason One Cannot Wait
|
||||
@@ -15,7 +68,9 @@
|
||||
780 Utilize the Darkness - Seed of Infinity
|
||||
781 Utilize the Darkness - Seed of Annihilation
|
||||
782 Utilize the Darkness - Seed of Hellfire
|
||||
788 Red Libra Request - Altar of Evil
|
||||
789 Waiting for Pa'agrio
|
||||
791 Red Libra Request - Fairy Settlement
|
||||
792 The Superion Giants
|
||||
800 Hunter Guild Request - Altar of Evil
|
||||
801 Hunter Guild Request - Gludio Territory
|
||||
@@ -53,11 +108,17 @@
|
||||
844 Giant's Treasure
|
||||
845 Sabotage the Embryo Supplies
|
||||
846 Building up Strength
|
||||
910 Red Libra Request - Lv. 1
|
||||
911 Red Libra Request - Lv. 2
|
||||
912 Red Libra Request - Lv. 3
|
||||
913 Red Libra Request - Lv. 4
|
||||
914 Red Libra Request - Lv. 5
|
||||
861 Kain's Choice
|
||||
910 Red Libra Request - Isle of Souls
|
||||
911 Red Libra's Request - Seal of Shilen
|
||||
912 Red Libra Request - Monsters from Three Areas
|
||||
913 Red Libra Request - Raider's Crossroads
|
||||
914 Red Libra Request - Hellbound
|
||||
915 Red Libra Request - Enchanted Valley
|
||||
916 Red Libra Request - Giant's Cave
|
||||
917 Red Libra Request - Garden of Spirits
|
||||
918 Red Libra Request - Atelia Fortress
|
||||
919 Red Libra Request - Superion
|
||||
922 Hunter Guild Request - Northern Region, Isle of Prayer
|
||||
923 Shinedust Extraction
|
||||
924 Giant of the Restoration Room
|
||||
@@ -70,11 +131,19 @@
|
||||
932 Sayha's Energy
|
||||
938 The Fisherman's Other Hobby
|
||||
940 Hunter Guild Request - Atelia Fortress
|
||||
985 Adventure Guild's Special Request - Lv1
|
||||
986 Adventure Guild's Special Request - Lv. 2
|
||||
987 Adventure Guild's Special Request - Lv. 3
|
||||
988 Adventure Guild's Special Request - Lv. 4
|
||||
989 Adventure Guild's Special Request - Lv. 5
|
||||
10298 Wasteland Queen
|
||||
10357 Altar of Blood that Awakens Destruction
|
||||
10355 Blacksmith's Soul-awakening Weapon - 1
|
||||
10356 Blacksmith's Soul-awakening Weapon - 2
|
||||
10373 Exploring the Dimension - Sealing the Dimension
|
||||
10396 Witch of Spores
|
||||
10418 The Immortal Pirate King
|
||||
10423 Embryo Stronghold Ambush
|
||||
10454 Final Embryo Apostle
|
||||
10456 Operation: Rescue
|
||||
10457 Kefensis' Illusion
|
||||
10506 Diana's Request
|
||||
@@ -89,6 +158,7 @@
|
||||
10530 Kekropus' Letter, The Dragon's Transition Achieve Level 81
|
||||
10531 Odd Happenings at Dragon Valley Strange Things Afoot in the Valley
|
||||
10532 Uncovering the Conspiracy Eliminate the Undead and Dragons
|
||||
10535 Blacksmith's Soul-awakening Weapon - 3
|
||||
10537 Kamael Disarray To Retbach
|
||||
10538 Giant's Evolution Cause of failed evolution
|
||||
10539 Energy Supply Cutoff Plan Defeat Halisha's Henchman
|
||||
@@ -121,4 +191,14 @@
|
||||
10856 Superion Appears
|
||||
10857 Secret Teleport
|
||||
10858 Queen Ramona, Controller of the Vessel
|
||||
10859 Own the Earth and the Heavens
|
||||
10859 Own the Earth and the Heavens
|
||||
10873 Exalted, Reaching Another Level
|
||||
10874 Against the New Enemy
|
||||
10875 For Reputation
|
||||
10876 Leader's Grace
|
||||
10877 Break Through Crisis
|
||||
10879 Exalted, Guide to Power
|
||||
10880 The Last One Standing
|
||||
10881 For the Pride
|
||||
10882 Victory Collection
|
||||
10883 Immortal Honor
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
<html><body>Watcher of Antharas Theodric:<br>
|
||||
You have a <font color="LEVEL">Portal Stone</font>... it means that you are one of the few who can challenge Antharas.<br>
|
||||
So, do you feel that you are up to the challenge of defeating the land dragon?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00904_DragonTrophyAntharas 30755-05.htm">Say that you can defeat it.</Button>
|
||||
</body></html>
|
||||
@@ -1,4 +0,0 @@
|
||||
<html><body>Watcher of Antharas Theodric:<br>
|
||||
Do you look down on the earth dragon? Its claws have shattered countless lives.<br>
|
||||
(Only characters at level 85 or above can undertake this quest.)
|
||||
</body></html>
|
||||
@@ -1,5 +0,0 @@
|
||||
<html><body>Watcher of Antharas Theodric:<br>
|
||||
Ah, you have returned, and with a victor's skip in your step!<br>
|
||||
You have defeated the dragon! Your power shall be praised throughout the lands!<br>
|
||||
(This quest can be done only a day. This quest gets initialized everyday at 6:30 am.)
|
||||
</body></html>
|
||||
@@ -1,4 +0,0 @@
|
||||
<html><body>Watcher of Antharas Theodric:<br>
|
||||
The fact that you don't have the <font color="LEVEL">Portal Stone</font> means you didn't satisfy the minimum requirement for this mission.<br>
|
||||
If you really want to defeat Antharas, first you need to get recognized by <font color="LEVEL">Gabrielle</font> in Giran village.
|
||||
</body></html>
|
||||
@@ -1,5 +0,0 @@
|
||||
<html><body>Watcher of Antharas Theodric:<br>
|
||||
You may think that you are invincible and that your courage is unmatched, but does anyone know of your fame?<br>
|
||||
Do you wish to become famous?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00904_DragonTrophyAntharas 30755-06.htm">Ask how to become famous.</Button>
|
||||
</body></html>
|
||||
@@ -1,5 +0,0 @@
|
||||
<html><body>Watcher of Antharas Theodric:<br>
|
||||
It's simple really. Use your strength and destroy the first offspring of the Goddess of Destruction... Antharas. Who is the Goddess of Destruction? This discussion will have to wait for another time.<br>
|
||||
Do you think you can handle the challenge to defeat Antharas?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00904_DragonTrophyAntharas 30755-07.html">"I shall defeat Antharas."</Button>
|
||||
</body></html>
|
||||
@@ -1,4 +0,0 @@
|
||||
<html><body>Watcher of Antharas Theodric:<br>
|
||||
I wish you the best of luck. Unfortunately I cannot go with you on this journey. However, I am sure there are others just like you who wish to take on Antharas.<br>
|
||||
You may wish to continue once you have acquired <font color="LEVEL">a large group of highly skilled adventurers</font> to go with you on your journey.
|
||||
</body></html>
|
||||
@@ -1,5 +0,0 @@
|
||||
<html><body>Watcher of Antharas Theodric:<br>
|
||||
I know for a fact that you have not destroyed Antharas.<br>
|
||||
When you do, I know for I shall have heard it echo throughout the winds.<br>
|
||||
Until that time, I stand... I wait... and I watch.
|
||||
</body></html>
|
||||
@@ -1,5 +0,0 @@
|
||||
<html><body>Watcher of Antharas Theodric:<br>
|
||||
Word has already spread throughout the land that you and your fellowship have defeated the land dragon Antharas. Enjoy your victory while it lasts. Unfortunately, the legends are true about Antharas... the beast can never truly be killed. It will rise once again.<br>
|
||||
True to my code, I will stand watch for the land dragon's return. When it does I will be here awaiting your return.<br>
|
||||
As promised, here is the gift of fame and fortune. These are rare... be sure to use them wisely.
|
||||
</body></html>
|
||||
@@ -1,170 +0,0 @@
|
||||
/*
|
||||
* 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.Q00904_DragonTrophyAntharas;
|
||||
|
||||
import com.l2jmobius.gameserver.enums.QuestSound;
|
||||
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;
|
||||
|
||||
/**
|
||||
* Dragon Trophy - Antharas (904)
|
||||
* @author Zoey76
|
||||
*/
|
||||
public final class Q00904_DragonTrophyAntharas extends Quest
|
||||
{
|
||||
// NPC
|
||||
private static final int THEODRIC = 30755;
|
||||
// Monster
|
||||
private static final int ANTHARAS = 29068;
|
||||
// Items
|
||||
private static final int MEDAL_OF_GLORY = 21874;
|
||||
private static final int PORTAL_STONE = 3865;
|
||||
// Misc
|
||||
private static final int MIN_LEVEL = 85;
|
||||
|
||||
public Q00904_DragonTrophyAntharas()
|
||||
{
|
||||
super(904);
|
||||
addStartNpc(THEODRIC);
|
||||
addTalkId(THEODRIC);
|
||||
addKillId(ANTHARAS);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void actionForEachPlayer(L2PcInstance player, L2Npc npc, boolean isSummon)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
if ((qs != null) && qs.isCond(1) && Util.checkIfInRange(1500, npc, player, false))
|
||||
{
|
||||
qs.setCond(2, true);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
if (qs == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
String htmltext = null;
|
||||
if ((player.getLevel() >= MIN_LEVEL) && hasQuestItems(player, PORTAL_STONE))
|
||||
{
|
||||
switch (event)
|
||||
{
|
||||
case "30755-05.htm":
|
||||
case "30755-06.htm":
|
||||
{
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "30755-07.html":
|
||||
{
|
||||
qs.startQuest();
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
|
||||
{
|
||||
executeForEachPlayer(killer, npc, isSummon, true, true);
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, true);
|
||||
String htmltext = getNoQuestMsg(player);
|
||||
switch (qs.getState())
|
||||
{
|
||||
case State.CREATED:
|
||||
{
|
||||
if (player.getLevel() < MIN_LEVEL)
|
||||
{
|
||||
htmltext = "30755-02.html";
|
||||
}
|
||||
else if (!hasQuestItems(player, PORTAL_STONE))
|
||||
{
|
||||
htmltext = "30755-04.html";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "30755-01.htm";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case State.STARTED:
|
||||
{
|
||||
switch (qs.getCond())
|
||||
{
|
||||
case 1:
|
||||
{
|
||||
htmltext = "30755-08.html";
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
giveItems(player, MEDAL_OF_GLORY, 30);
|
||||
playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
qs.exitQuest(QuestType.DAILY, true);
|
||||
htmltext = "30755-09.html";
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case State.COMPLETED:
|
||||
{
|
||||
if (!qs.isNowAvailable())
|
||||
{
|
||||
htmltext = "30755-03.html";
|
||||
}
|
||||
else
|
||||
{
|
||||
qs.setState(State.CREATED);
|
||||
if (player.getLevel() < MIN_LEVEL)
|
||||
{
|
||||
htmltext = "30755-02.html";
|
||||
}
|
||||
else if (!hasQuestItems(player, PORTAL_STONE))
|
||||
{
|
||||
htmltext = "30755-04.html";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "30755-01.htm";
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
<html><body>Watcher of Valakas Klein:<br>
|
||||
Is it hot in here or is it just me? Ha, that one never gets old... well, maybe a little. As you probably know this path leads to the lair of Valakas.<br>
|
||||
Oh how many have come and became one with the flame that fills these halls...<br>
|
||||
Valakas calls and those brave souls answer. Not like you though. Destiny has brought you here to face and defeat Valakas.<br>
|
||||
Do you want to fight the beast? Do ya? Who wants to fight Valakas?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00907_DragonTrophyValakas 31540-05.htm">"I do! I want to fight Valakas!"</Button>
|
||||
</body></html>
|
||||
@@ -1,4 +0,0 @@
|
||||
<html><body>Watcher of Valakas Klein:<br>
|
||||
Do you look down on the fire dragon? Its claws have shattered countless lives.<br>
|
||||
(Only characters at level 85 or above can undertake this quest.)
|
||||
</body></html>
|
||||
@@ -1,6 +0,0 @@
|
||||
<html><body>Watcher of Valakas Klein:<br>
|
||||
Glorious adventurer.<br>
|
||||
The dragon's nemesis.<br>
|
||||
You have defeated the dragon. Your power in defeating the evil beast shall be praised throughout the land.<br>
|
||||
(This quest can be done only a day. This quest gets initialized everyday at 6:30 am.)
|
||||
</body></html>
|
||||
@@ -1,4 +0,0 @@
|
||||
<html><body>Watcher of Valakas Klein:<br>
|
||||
The fact that you don't have the <font color="LEVEL">Floating Stone</font> means you did not satisfy the minimum requirement for this mission.<br>
|
||||
If you really want to defeat Valakas, you must first obtain a Vacualite Floating Stone.
|
||||
</body></html>
|
||||
@@ -1,4 +0,0 @@
|
||||
<html><body>Watcher of Valakas Klein:<br>
|
||||
That a boy... er, girl... ah... you... that's the spirit! I'm somewhat mildy confident of your chances... definitely much better than the hordes of previous adventurers who have been sent to their deaths.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00907_DragonTrophyValakas 31540-06.htm">"Nice... anything I need to do?"</Button>
|
||||
</body></html>
|
||||
@@ -1,6 +0,0 @@
|
||||
<html><body>Watcher of Valakas Klein:<br>
|
||||
Nothing special... just march through the vast army of creatures created by the Fire Dragon Valakas into his lair and vanquish the most feared and deadly creature known to roam this land which will most likely kill you and all those around you.<br>
|
||||
Nah, nothing too much. Just come back with proof you have defeated Valakas and I'll have a surprise waiting for you.<br>
|
||||
You'll never guess what it is.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00907_DragonTrophyValakas 31540-07.html">"Those new Medals of Glory?"</Button>
|
||||
</body></html>
|
||||
@@ -1,5 +0,0 @@
|
||||
<html><body>Watcher of Valakas Klein:<br>
|
||||
Yeah. How did you... never mind. Best of luck kid, you're gonna need it.<br>
|
||||
You know I feel really dumb for saying this and stop me if you have heard it before... cause you know I've sent how many people to their countless deaths trying to kill that thing that everyone starts to look the same, but you shouldn't go after Valakas solo.<br>
|
||||
Your best bet would be <font color="LEVEL">attacking Valakas with a large group of equally skilled adventurers.</font>
|
||||
</body></html>
|
||||
@@ -1,4 +0,0 @@
|
||||
<html><body>Watcher of Valakas Klein:<br>
|
||||
Defeating Valakas is something that you must do with your comrades.<br>
|
||||
I shall wait here for news of your victory against the beast.
|
||||
</body></html>
|
||||
@@ -1,6 +0,0 @@
|
||||
<html><body>Watcher of Valakas Klein:<br>
|
||||
What's that you say? You managed to kill the fire dragon? Well, yes, I heard but I thought they were talking about some other adventurer who managed to kill Valakas.<br>
|
||||
You must feel like Emperor Shunaiman on Aden Mountain so who would want to mess with you.<br>
|
||||
Well allow me to be the one to kick you off your pedestal so you can fall back to the real world. Valakas ain't dead. Never really dies. He comes back, ever now and then... grumpy as ever and we can expect someone like you to come knocking on his door asking him to turn down that noise.<br>
|
||||
Well buck up kid, take these Medals of Glory... better than a lousy t-shirt.
|
||||
</body></html>
|
||||
@@ -1,171 +0,0 @@
|
||||
/*
|
||||
* 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.Q00907_DragonTrophyValakas;
|
||||
|
||||
import com.l2jmobius.gameserver.enums.QuestSound;
|
||||
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;
|
||||
|
||||
/**
|
||||
* Dragon Trophy - Valakas (907)
|
||||
* @author Zoey76
|
||||
*/
|
||||
public class Q00907_DragonTrophyValakas extends Quest
|
||||
{
|
||||
// NPC
|
||||
private static final int KLEIN = 31540;
|
||||
// Monster
|
||||
private static final int VALAKAS = 29028;
|
||||
// Items
|
||||
private static final int MEDAL_OF_GLORY = 21874;
|
||||
private static final int VACUALITE_FLOATING_STONE = 7267;
|
||||
// Misc
|
||||
private static final int MIN_LEVEL = 85;
|
||||
|
||||
public Q00907_DragonTrophyValakas()
|
||||
{
|
||||
super(907);
|
||||
addStartNpc(KLEIN);
|
||||
addTalkId(KLEIN);
|
||||
addKillId(VALAKAS);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void actionForEachPlayer(L2PcInstance player, L2Npc npc, boolean isSummon)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
if ((qs != null) && qs.isCond(1) && Util.checkIfInRange(1500, npc, player, false))
|
||||
{
|
||||
qs.setCond(2, true);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
if (qs == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
String htmltext = null;
|
||||
if ((player.getLevel() >= MIN_LEVEL) && hasQuestItems(player, VACUALITE_FLOATING_STONE))
|
||||
{
|
||||
switch (event)
|
||||
{
|
||||
case "31540-05.htm":
|
||||
case "31540-06.htm":
|
||||
{
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "31540-07.html":
|
||||
{
|
||||
qs.startQuest();
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
|
||||
{
|
||||
executeForEachPlayer(killer, npc, isSummon, true, true);
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, true);
|
||||
String htmltext = getNoQuestMsg(player);
|
||||
|
||||
switch (qs.getState())
|
||||
{
|
||||
case State.CREATED:
|
||||
{
|
||||
if (player.getLevel() < MIN_LEVEL)
|
||||
{
|
||||
htmltext = "31540-02.html";
|
||||
}
|
||||
else if (!hasQuestItems(player, VACUALITE_FLOATING_STONE))
|
||||
{
|
||||
htmltext = "31540-04.html";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "31540-01.htm";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case State.STARTED:
|
||||
{
|
||||
switch (qs.getCond())
|
||||
{
|
||||
case 1:
|
||||
{
|
||||
htmltext = "31540-08.html";
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
giveItems(player, MEDAL_OF_GLORY, 30);
|
||||
playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
qs.exitQuest(QuestType.DAILY, true);
|
||||
htmltext = "31540-09.html";
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case State.COMPLETED:
|
||||
{
|
||||
if (!qs.isNowAvailable())
|
||||
{
|
||||
htmltext = "31540-03.html";
|
||||
}
|
||||
else
|
||||
{
|
||||
qs.setState(State.CREATED);
|
||||
if (player.getLevel() < MIN_LEVEL)
|
||||
{
|
||||
htmltext = "31540-02.html";
|
||||
}
|
||||
else if (!hasQuestItems(player, VACUALITE_FLOATING_STONE))
|
||||
{
|
||||
htmltext = "31540-04.html";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "31540-01.htm";
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
}
|
||||
@@ -81,11 +81,10 @@ public final class Q10363_RequestOfTheSeeker extends Quest
|
||||
case "33450-03.htm":
|
||||
{
|
||||
qs.startQuest();
|
||||
showOnScreenMsg(player, NpcStringId.USE_THE_YE_SAGIRA_TELEPORT_DEVICE_TO_GO_TO_EXPLORATION_AREA_2, ExShowScreenMessage.TOP_CENTER, 10000);
|
||||
showOnScreenMsg(player, NpcStringId.USE_THE_YE_SAGIRA_TELEPORT_DEVICE_SHINING_WITH_A_RED_SHIMMER_TO_GO_TO_EXPLORATION_AREA_2, ExShowScreenMessage.TOP_CENTER, 10000);
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
|
||||
case "33451-02.html":
|
||||
{
|
||||
if (qs.isCond(2))
|
||||
@@ -94,7 +93,6 @@ public final class Q10363_RequestOfTheSeeker extends Quest
|
||||
addExpAndSp(player, 70000, 13);
|
||||
qs.exitQuest(false, true);
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -115,7 +113,6 @@ public final class Q10363_RequestOfTheSeeker extends Quest
|
||||
if (npc.getId() == NAGEL)
|
||||
{
|
||||
htmltext = "33450-01.htm";
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -123,30 +120,17 @@ public final class Q10363_RequestOfTheSeeker extends Quest
|
||||
{
|
||||
if (npc.getId() == NAGEL)
|
||||
{
|
||||
switch (qs.getCond())
|
||||
{
|
||||
case 1:
|
||||
case 2:
|
||||
{
|
||||
htmltext = "33450-04.html";
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
htmltext = "33450-04.html";
|
||||
}
|
||||
else if (npc.getId() == CELIN)
|
||||
else if ((npc.getId() == CELIN) && qs.isCond(2))
|
||||
{
|
||||
if (qs.isCond(2))
|
||||
{
|
||||
htmltext = "33451-01.html";
|
||||
break;
|
||||
}
|
||||
htmltext = "33451-01.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case State.COMPLETED:
|
||||
{
|
||||
htmltext = npc.getId() == NAGEL ? "33450-07.html" : "33451-04.html";
|
||||
htmltext = getAlreadyCompletedMsg(player);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,7 +29,7 @@ import quests.Q10363_RequestOfTheSeeker.Q10363_RequestOfTheSeeker;
|
||||
/**
|
||||
* Obligations of the Seeker (10364)
|
||||
* @URL https://l2wiki.com/Obligations_of_the_Seeker
|
||||
* @author Gladicek
|
||||
* @author Stayway
|
||||
*/
|
||||
public final class Q10364_ObligationsOfTheSeeker extends Quest
|
||||
{
|
||||
@@ -37,6 +37,7 @@ public final class Q10364_ObligationsOfTheSeeker extends Quest
|
||||
private static final int CELIN = 33451;
|
||||
private static final int WALTER = 33452;
|
||||
private static final int DEP = 33453;
|
||||
// Monsters
|
||||
private static final int KRAPHER = 22996;
|
||||
private static final int AVIAN = 22994;
|
||||
// Items
|
||||
@@ -44,7 +45,7 @@ public final class Q10364_ObligationsOfTheSeeker extends Quest
|
||||
private static final int LEATHER_SHOES = 37;
|
||||
// Misc
|
||||
private static final int MIN_LEVEL = 13;
|
||||
private static final int MAX_LEVEL = 20;
|
||||
private static final int MAX_LEVEL = 25;
|
||||
|
||||
public Q10364_ObligationsOfTheSeeker()
|
||||
{
|
||||
@@ -81,7 +82,7 @@ public final class Q10364_ObligationsOfTheSeeker extends Quest
|
||||
case "33451-03.html":
|
||||
{
|
||||
qs.startQuest();
|
||||
showOnScreenMsg(player, NpcStringId.USE_THE_YE_SAGIRA_TELEPORT_DEVICE_TO_GO_TO_EXPLORATION_AREA_3, ExShowScreenMessage.TOP_CENTER, 10000);
|
||||
showOnScreenMsg(player, NpcStringId.USE_THE_YE_SAGIRA_TELEPORT_DEVICE_SHINING_WITH_A_RED_SHIMMER_TO_GO_TO_EXPLORATION_AREA_3, ExShowScreenMessage.TOP_CENTER, 10000);
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
@@ -91,7 +92,6 @@ public final class Q10364_ObligationsOfTheSeeker extends Quest
|
||||
{
|
||||
qs.setCond(2, true);
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -103,7 +103,6 @@ public final class Q10364_ObligationsOfTheSeeker extends Quest
|
||||
addExpAndSp(player, 114000, 14);
|
||||
qs.exitQuest(false, true);
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -122,7 +121,7 @@ public final class Q10364_ObligationsOfTheSeeker extends Quest
|
||||
{
|
||||
qs.setCond(0);
|
||||
qs.setCond(3);
|
||||
showOnScreenMsg(killer, NpcStringId.USE_THE_YE_SAGIRA_TELEPORT_DEVICE_TO_GO_TO_EXPLORATION_AREA_4, ExShowScreenMessage.TOP_CENTER, 4500);
|
||||
showOnScreenMsg(killer, NpcStringId.USE_THE_YE_SAGIRA_TELEPORT_DEVICE_SHINING_WITH_A_RED_SHIMMER_TO_GO_TO_EXPLORATION_AREA_4, ExShowScreenMessage.TOP_CENTER, 4500);
|
||||
}
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
@@ -141,7 +140,6 @@ public final class Q10364_ObligationsOfTheSeeker extends Quest
|
||||
if (npc.getId() == CELIN)
|
||||
{
|
||||
htmltext = "33451-01.htm";
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -153,9 +151,8 @@ public final class Q10364_ObligationsOfTheSeeker extends Quest
|
||||
{
|
||||
if (qs.isCond(1))
|
||||
{
|
||||
showOnScreenMsg(player, NpcStringId.USE_THE_YE_SAGIRA_TELEPORT_DEVICE_TO_GO_TO_EXPLORATION_AREA_3, ExShowScreenMessage.TOP_CENTER, 10000);
|
||||
htmltext = "33451-06.html";
|
||||
break;
|
||||
showOnScreenMsg(player, NpcStringId.USE_THE_YE_SAGIRA_TELEPORT_DEVICE_SHINING_WITH_A_RED_SHIMMER_TO_GO_TO_EXPLORATION_AREA_3, ExShowScreenMessage.TOP_CENTER, 10000);
|
||||
htmltext = "33451-05.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -186,33 +183,15 @@ public final class Q10364_ObligationsOfTheSeeker extends Quest
|
||||
if (qs.isCond(3))
|
||||
{
|
||||
htmltext = "33453-01.html";
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case State.COMPLETED:
|
||||
{
|
||||
switch (npc.getId())
|
||||
{
|
||||
case CELIN:
|
||||
{
|
||||
htmltext = "33451-05.html";
|
||||
break;
|
||||
}
|
||||
case WALTER:
|
||||
{
|
||||
htmltext = "33452-07.html";
|
||||
break;
|
||||
}
|
||||
case DEP:
|
||||
{
|
||||
htmltext = "33453-05.html";
|
||||
break;
|
||||
}
|
||||
}
|
||||
htmltext = getAlreadyCompletedMsg(player);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -87,7 +87,6 @@ public final class Q10365_ForTheSearchdogKing extends Quest
|
||||
addExpAndSp(player, 172000, 15);
|
||||
qs.exitQuest(false, true);
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -99,7 +98,6 @@ public final class Q10365_ForTheSearchdogKing extends Quest
|
||||
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
|
||||
{
|
||||
final QuestState qs = getQuestState(killer, false);
|
||||
|
||||
if ((qs != null) && qs.isCond(1))
|
||||
{
|
||||
if (giveItemRandomly(killer, npc, KINGS_TONIC, 1, 20, 0.5, true))
|
||||
@@ -125,7 +123,6 @@ public final class Q10365_ForTheSearchdogKing extends Quest
|
||||
if (npc.getId() == DEP)
|
||||
{
|
||||
htmltext = "33453-01.htm";
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -137,10 +134,10 @@ public final class Q10365_ForTheSearchdogKing extends Quest
|
||||
{
|
||||
if (qs.isCond(1))
|
||||
{
|
||||
showOnScreenMsg(player, NpcStringId.USE_THE_YE_SAGIRA_TELEPORT_DEVICE_TO_GO_TO_EXPLORATION_AREA_3, ExShowScreenMessage.TOP_CENTER, 10000);
|
||||
showOnScreenMsg(player, NpcStringId.USE_THE_YE_SAGIRA_TELEPORT_DEVICE_SHINING_WITH_A_RED_SHIMMER_TO_GO_TO_EXPLORATION_AREA_5, ExShowScreenMessage.TOP_CENTER, 10000);
|
||||
htmltext = "33453-05.html";
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case SEBION:
|
||||
{
|
||||
@@ -150,15 +147,14 @@ public final class Q10365_ForTheSearchdogKing extends Quest
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case State.COMPLETED:
|
||||
{
|
||||
htmltext = getAlreadyCompletedMsg(player);
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case State.COMPLETED:
|
||||
{
|
||||
htmltext = getAlreadyCompletedMsg(player);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<html><body>Sebion:<br>
|
||||
This place is dangerous. I think it's best if you go back to town.<br>
|
||||
(Only level 16-25 characters who have completed the 'For The Searchdog King' may complete this quest.)
|
||||
(Only level 17-25 characters who have completed the 'For The Searchdog King' may complete this quest.)
|
||||
</body></html>
|
||||
@@ -44,11 +44,10 @@ public final class Q10366_ReportOnTheSituationAtTheRuins extends Quest
|
||||
22993, // Critter
|
||||
22994, // Avian
|
||||
22995, // Rider
|
||||
23122
|
||||
// Eyesaroch
|
||||
23122 // Eyesaroch
|
||||
};
|
||||
// Misc
|
||||
private static final int MIN_LEVEL = 16;
|
||||
private static final int MIN_LEVEL = 17;
|
||||
private static final int MAX_LEVEL = 25;
|
||||
private static final String KILL_COUNT_VAR = "KillCount";
|
||||
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
<html><body>Eva's Knight Lionel Hunter:<br>
|
||||
The powers you possess may be to die for to the common folk, but they are nothing to me. But Lady Eva chooses, not I. With her favor, you deserve to at least hear me out. Well, listen well.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10461_TappingThePowerWithin 33907-02.htm">"Uh oh."</Button>
|
||||
</body></html>
|
||||
@@ -1,4 +0,0 @@
|
||||
<html><body>Eva's Knight Lionel Hunter:<br>
|
||||
Who do you think are the ones who live on in history? Noble are their souls, and their strength is unhindered by bodily limits.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10461_TappingThePowerWithin 33907-03.htm">"Oh. Uh, I knew that. Anyway, go on."</Button>
|
||||
</body></html>
|
||||
@@ -1,4 +0,0 @@
|
||||
<html><body>Eva's Knight Lionel Hunter:<br>
|
||||
Well then, how do you measure up? Perhaps slightly greater than others in strength, but nowhere close to a legendary hero. But Lady Eva has chosen you, and I bow to her choice. I will help you if you wish to take the next step in strengthening yourself. Are you willing?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10461_TappingThePowerWithin 33907-04.htm">"Yes."</Button>
|
||||
</body></html>
|
||||
@@ -1,4 +0,0 @@
|
||||
<html><body>Eva's Knight Lionel Hunter:<br>
|
||||
Very well. If you wish to tap the power within you, listen to my words, and listen carefully. I need your full conviction that you want this, before allowing you to choose the class which will bring about this new power.<br><br>
|
||||
<font color="LEVEL">(This quest only rewards either the main or dual class. Please switch to the class for which you want rewards before proceeding with the quest.)</font>
|
||||
</body></html>
|
||||
@@ -1,5 +0,0 @@
|
||||
<html><body>Eva's Knight Lionel Hunter:<br>
|
||||
Are you ready? Ready to bring out your hidden power? As the first step, I will give you <font color="LEVEL">Skill Points</font> so that you can acquire <font color="LEVEL">Ability Points</font> with them.<br>
|
||||
<font color="LEVEL">(In this quest, you get skill points required to get the 1st Ability Point.Please switch to the class for which you want rewards before proceeding with the quest. If your character already has AP, you may be unable to acquire the 1 AP with the SP awarded.)</font><br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10461_TappingThePowerWithin 33907-06.html">"I'd like to receive rewards for the current class."</Button>
|
||||
</body></html>
|
||||
@@ -1,3 +0,0 @@
|
||||
<html><body>Eva's Knight Lionel Hunter:<br>
|
||||
Very well. You are ready. Whether this leads to glory or suffering is for you to decide. Eva be with you!
|
||||
</body></html>
|
||||
@@ -1,4 +0,0 @@
|
||||
<html><body>Eva's Knight Lionel Hunter:<br>
|
||||
I only serve Lady Eva and Innadril. If you have no business with me, be gone.<br>
|
||||
(Only Noblesse or Exalted characters Lv. 99 or above can perform this quest.)
|
||||
</body></html>
|
||||
@@ -1,3 +0,0 @@
|
||||
<html><body>Eva's Knight Lionel Hunter:<br>
|
||||
I see that there is nothing I can teach you that you do not already know yourself.
|
||||
</body></html>
|
||||
@@ -1,125 +0,0 @@
|
||||
/*
|
||||
* 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.Q10461_TappingThePowerWithin;
|
||||
|
||||
import com.l2jmobius.gameserver.enums.ChatType;
|
||||
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.ExShowScreenMessage;
|
||||
import com.l2jmobius.gameserver.network.serverpackets.TutorialShowHtml;
|
||||
import com.l2jmobius.gameserver.network.serverpackets.ability.ExShowAPListWnd;
|
||||
|
||||
/**
|
||||
* Tapping The Power Within (10461)
|
||||
* @author Gladicek
|
||||
*/
|
||||
public final class Q10461_TappingThePowerWithin extends Quest
|
||||
{
|
||||
// NPCs
|
||||
private static final int LIONEL_HUNTER = 33907;
|
||||
// Misc
|
||||
private static final int MIN_LEVEL = 99;
|
||||
|
||||
public Q10461_TappingThePowerWithin()
|
||||
{
|
||||
super(10461);
|
||||
addStartNpc(LIONEL_HUNTER);
|
||||
addTalkId(LIONEL_HUNTER);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
if (qs == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
String htmltext = event;
|
||||
|
||||
switch (event)
|
||||
{
|
||||
case "33907-02.htm":
|
||||
case "33907-03.htm":
|
||||
{
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "33907-04.htm":
|
||||
{
|
||||
qs.startQuest();
|
||||
npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.DOES_YOUR_FATE_NOT_WEIGH_UPON_YOU);
|
||||
player.sendPacket(new TutorialShowHtml(npc.getObjectId(), "..\\L2text\\QT_025_ability_01.htm", TutorialShowHtml.LARGE_WINDOW));
|
||||
break;
|
||||
}
|
||||
case "33907-06.html":
|
||||
{
|
||||
if (!player.isSubClassActive() || (player.isDualClassActive()))
|
||||
{
|
||||
showOnScreenMsg(player, NpcStringId.OPEN_THE_ABILITY_SCREEN_IN_THE_CHARACTER_INFORMATION_SCREEN_NPRESS_ADJUST_POINTS_TO_ADJUST_THE_ACQUIRED_SP_AND_ABILITY_POINTS, ExShowScreenMessage.TOP_CENTER, 5000);
|
||||
npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.THIS_IS_JUST_THE_BEGINNING);
|
||||
player.sendPacket(ExShowAPListWnd.STATIC_PACKET);
|
||||
addExpAndSp(player, 0, 250_000_000);
|
||||
qs.exitQuest(false, true);
|
||||
htmltext = event;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, true);
|
||||
String htmltext = getNoQuestMsg(player);
|
||||
|
||||
switch (qs.getState())
|
||||
{
|
||||
case State.CREATED:
|
||||
{
|
||||
if (((player.getLevel() >= MIN_LEVEL) && (player.getNobleLevel() > 0)))
|
||||
{
|
||||
htmltext = "33907-01.htm";
|
||||
break;
|
||||
}
|
||||
htmltext = "33907-07.html";
|
||||
break;
|
||||
}
|
||||
case State.STARTED:
|
||||
{
|
||||
if (qs.isCond(1))
|
||||
{
|
||||
htmltext = "33907-05.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case State.COMPLETED:
|
||||
{
|
||||
htmltext = "33907-08.html";
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
}
|
||||
@@ -188,10 +188,8 @@ import quests.Q00823_DisappearedRaceNewFairy.Q00823_DisappearedRaceNewFairy;
|
||||
import quests.Q00901_HowLavasaurusesAreMade.Q00901_HowLavasaurusesAreMade;
|
||||
import quests.Q00902_ReclaimOurEra.Q00902_ReclaimOurEra;
|
||||
import quests.Q00903_TheCallOfAntharas.Q00903_TheCallOfAntharas;
|
||||
import quests.Q00904_DragonTrophyAntharas.Q00904_DragonTrophyAntharas;
|
||||
import quests.Q00905_RefinedDragonBlood.Q00905_RefinedDragonBlood;
|
||||
import quests.Q00906_TheCallOfValakas.Q00906_TheCallOfValakas;
|
||||
import quests.Q00907_DragonTrophyValakas.Q00907_DragonTrophyValakas;
|
||||
import quests.Q00937_ToReviveTheFishingGuild.Q00937_ToReviveTheFishingGuild;
|
||||
import quests.Q10273_GoodDayToFly.Q10273_GoodDayToFly;
|
||||
import quests.Q10274_CollectingInTheAir.Q10274_CollectingInTheAir;
|
||||
@@ -321,7 +319,6 @@ import quests.Q10453_StoppingTheWindDragon.Q10453_StoppingTheWindDragon;
|
||||
import quests.Q10455_ElikiasLetter.Q10455_ElikiasLetter;
|
||||
import quests.Q10459_ASickAmbition.Q10459_ASickAmbition;
|
||||
import quests.Q10460_ReturnOfTheAlligatorHunter.Q10460_ReturnOfTheAlligatorHunter;
|
||||
import quests.Q10461_TappingThePowerWithin.Q10461_TappingThePowerWithin;
|
||||
import quests.Q10462_TemperARustingBlade.Q10462_TemperARustingBlade;
|
||||
import quests.Q10465_SoulFrostSword.Q10465_SoulFrostSword;
|
||||
import quests.Q10472_WindsOfFateEncroachingShadows.Q10472_WindsOfFateEncroachingShadows;
|
||||
@@ -608,10 +605,8 @@ public class QuestMasterHandler
|
||||
Q00901_HowLavasaurusesAreMade.class,
|
||||
Q00902_ReclaimOurEra.class,
|
||||
Q00903_TheCallOfAntharas.class,
|
||||
Q00904_DragonTrophyAntharas.class,
|
||||
Q00905_RefinedDragonBlood.class,
|
||||
Q00906_TheCallOfValakas.class,
|
||||
Q00907_DragonTrophyValakas.class,
|
||||
Q00937_ToReviveTheFishingGuild.class,
|
||||
Q10273_GoodDayToFly.class,
|
||||
Q10274_CollectingInTheAir.class,
|
||||
@@ -741,7 +736,6 @@ public class QuestMasterHandler
|
||||
Q10455_ElikiasLetter.class,
|
||||
Q10459_ASickAmbition.class,
|
||||
Q10460_ReturnOfTheAlligatorHunter.class,
|
||||
Q10461_TappingThePowerWithin.class,
|
||||
Q10462_TemperARustingBlade.class,
|
||||
Q10465_SoulFrostSword.class,
|
||||
Q10472_WindsOfFateEncroachingShadows.class,
|
||||
|
||||
Reference in New Issue
Block a user