Merged with released L2J-Unity files.

This commit is contained in:
mobiusdev
2016-06-12 01:34:09 +00:00
parent e003e87887
commit 635557f5da
18352 changed files with 3245113 additions and 2892959 deletions

View File

@@ -0,0 +1,4 @@
<html><body>Andy the Patrol:<br>
What brings you here? This place is very dangerous. It's not a place for someone like you.<br>
(This quest is only for Ertheia characters.)
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Andy the Patrol:<br>
What brings you here? This place is very dangerous. It's not a place for someone like you.<br>
(Only characters Lv. 52 or above may undertake this quest.)
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Andy the Patrol:<br>
You said that you can take care of the problems with the force field at the Sea of Spores, right? Do you know what the role of force file is? You may not know since you're new to the Material Realm.<br>
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10780_AWeakenedBarrier 33845-04.htm">"Enlighten me."</Button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Andy the Patrol:<br>
The force field in the Sea of Spores was created to separate the body of water inside the sea. I don't even want to imagine what would happen then it collapses. But the force field has been getting weaker recently.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10780_AWeakenedBarrier 33845-05.htm">"What happens when it breaks?"</Button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Andy the Patrol:<br>
Once the force field collapses, the rotting sea will start expanding outside. We have barely managed to get the rotting sea under control. If this happens, it will decimate the nearby villages and endanger people travelling nearby.<br>
Since you're here to help me with the force field, can I ask you for a favor?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10780_AWeakenedBarrier 33845-06.htm">"Try me."</Button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Andy the Patrol:<br>
Finding the reason the force field is getting weaker is important. But the bigger problem is that strange monsters are threatening the force field. If the force field can't withstand the attacks and collapses...<br>
Right now <font color="LEVEL">Paterson's Disciple Bacon</font> is inside the Sea of Spores studying how to reinforce the force field. Perhaps it's a good idea to go and ask him. If you could kill <font color="LEVEL">20 each of</font> <font color="LEVEL">Giant Fungi, Rotting Trees, Corroded Skeletons, Rotten Corpses, Corpse Spiders, and Explosive Spiders</font> inside the <font color="LEVEL">Sea of Spores</font> on your way, then I won't have to worry about the force field collapsing.
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Andy the Patrol:<br>
Bacon is inside the Sea of Spores.
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Paterson's Disciple Bacon:<br>
The investigation is still not finished. For now, go and slay some monsters.
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Paterson's Disciple Bacon:<br>
You're just in time. We just finished analyzing all the data collected so far. Did you come back from slaying monsters that may pose a threat to the barrier restoration efforts?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10780_AWeakenedBarrier 33846-03.html">"That's exactly what I did."</Button>
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Paterson's Disciple Bacon:<br>
Good work. It would've been really bad if the monsters broke the barrier before we had a chance to restore it. I don't have to worry anymore, thanks to you. So now, let's take a look at those results.
</body></html>

View File

@@ -0,0 +1,175 @@
/*
* 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.Q10780_AWeakenedBarrier;
import java.util.HashSet;
import java.util.Set;
import com.l2jmobius.gameserver.enums.Race;
import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.holders.NpcLogListHolder;
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;
/**
* A Weakened Barrier (10780)
* @author malyelfik
*/
public final class Q10780_AWeakenedBarrier extends Quest
{
// NPCs
private static final int ANDY = 33845;
private static final int BACON = 33846;
// Monsters
private static final int[] MONSTERS =
{
20555, // Giant Fungus
20558, // Rotting tree
23305, // Corroded Skeleton
23306, // Rotten Corpse
23307, // Corpse Spider
23308, // Explosive Spider
};
// Items
private static final int ENCHANT_ARMOR_B = 948;
// Misc
private static final int MIN_LEVEL = 52;
private static final int MAX_LEVEL = 58;
private static final String KILL_COUNT_VAR = "KillCount";
public Q10780_AWeakenedBarrier()
{
super(10780);
addStartNpc(ANDY);
addTalkId(ANDY, BACON);
addKillId(MONSTERS);
addCondRace(Race.ERTHEIA, "33845-01.htm");
addCondLevel(MIN_LEVEL, MAX_LEVEL, "33845-02.htm");
}
@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 "33845-04.htm":
case "33845-05.htm":
break;
case "33845-06.htm":
{
qs.startQuest();
break;
}
case "33846-03.html":
{
if (qs.isCond(2))
{
giveItems(player, ENCHANT_ARMOR_B, 5);
giveStoryQuestReward(player, 36);
addExpAndSp(player, 3811500, 914);
qs.exitQuest(false, true);
}
break;
}
default:
htmltext = null;
}
return htmltext;
}
@Override
public String onTalk(L2Npc npc, L2PcInstance player)
{
final QuestState qs = getQuestState(player, true);
String htmltext = getNoQuestMsg(player);
if (npc.getId() == ANDY)
{
switch (qs.getState())
{
case State.CREATED:
htmltext = "33845-03.htm";
break;
case State.STARTED:
if (qs.isCond(1))
{
htmltext = "33845-07.html";
}
break;
case State.COMPLETED:
htmltext = getAlreadyCompletedMsg(player);
break;
}
}
else if (qs.isStarted())
{
htmltext = (qs.isCond(1)) ? "33846-01.html" : "33846-02.html";
}
return htmltext;
}
@Override
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
{
final QuestState qs = getQuestState(killer, false);
if ((qs != null) && qs.isCond(1))
{
int count = qs.getInt(KILL_COUNT_VAR);
if (count < 20)
{
qs.set(KILL_COUNT_VAR, ++count);
if (count >= 20)
{
qs.setCond(2, true);
}
else
{
sendNpcLogList(killer);
}
}
}
return super.onKill(npc, killer, isSummon);
}
@Override
public Set<NpcLogListHolder> getNpcLogList(L2PcInstance player)
{
final QuestState qs = getQuestState(player, false);
if ((qs != null) && qs.isCond(1))
{
final int killCount = qs.getInt(KILL_COUNT_VAR);
if (killCount > 0)
{
final Set<NpcLogListHolder> holder = new HashSet<>(1);
holder.add(new NpcLogListHolder(NpcStringId.KILL_MONSTERS_NEAR_THE_SEA_OF_SPORES, killCount));
return holder;
}
}
return super.getNpcLogList(player);
}
}