Quest The Oath of the Wind (10758).

Contributed by Stayway.
This commit is contained in:
MobiusDev 2016-01-20 08:38:10 +00:00
parent 3d68c35fed
commit 36ba13be7a
12 changed files with 229 additions and 7 deletions

View File

@ -0,0 +1,5 @@
<html><body>Research Pio:<br>
Hi! Nice to see you. I had something to ask.<br>
You said that Ertheia is from the Wind Spirit Realm. Then what are Ertheia to the Wind Spirits from the Wind Spirit Realm?<br>
<button align=LEFT icon=NORMAL action="bypass -h Quest Q10758_TheOathOfTheWind 33963-02.htm">"We are sometimes a friend, and sometimes their master."</button>
</body></html>

View File

@ -0,0 +1,9 @@
<html><body>Researcher Pio:<br>
I see.<br>
I have a hypothesis.<br>
If the energy from the Wind Realm is coming here through the Dimensional Rift...<br>
If the energy from the rift is mixing with the wind energy and being absorbed by the spirits...<br>
Then wouldn't the spirits respond to Ertheia even if they have lost their minds?<br>
I need to test it. Can you help me? This will be my last request.<br>
<button align=LEFT icon=NORMAL action="bypass -h Quest Q10758_TheOathOfTheWind 33963-03.htm">"Just don't touch the hair."</button>
</body></html>

View File

@ -0,0 +1,7 @@
<html><body>Researcher Pio:<br>
Haha, deal!<br>
I will summon Windima in front of you. Try attacking it. I want to see what happens.<br>
Oh, don't worry. It's only a <font color="LEVEL">Windima Clone</font> I made based on my data.<br>
Let me know when you're ready!<br>
<button align=LEFT icon=NORMAL action="bypass -h Quest Q10758_TheOathOfTheWind accept">"I'm ready."</button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Researcher Pio:<br>
Amazing! My hypothesis was right. Did you see it? It paid respects to you!<br>
<button align=LEFT icon=NORMAL action="bypass -h Quest Q10758_TheOathOfTheWind 33963-05.htm">"I did."</button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Researcher Pio:<br>
I knew it. The energy from the Wind Spirit Realm was influencing Windy Hill.<br>
Thank you for helping me. I need to report this to High Priest Levian.<br>
Bye! See you again! Ertheia with pretty ears!<br>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Researcher Pio:<br>
Attack the Windima. I want to see what happens.<br>
Did it not appear? I'll summon again.<br>
<button align=LEFT icon=NORMAL action="bypass -h Quest Q10758_TheOathOfTheWind accept">"Summon it, and do it right."</button>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Research Pio:<br>
(Quest only available to Ertheia characters Lv. 28+ who have completed the quest "Quieting the Storm.")
</body></html>

View File

@ -0,0 +1,167 @@
/*
* 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.Q10758_TheOathOfTheWind;
import com.l2jmobius.gameserver.ai.CtrlIntention;
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.ItemHolder;
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.serverpackets.ExQuestNpcLogList;
import com.l2jmobius.gameserver.util.Util;
import quests.Q10757_QuietingTheStorm.Q10757_QuietingTheStorm;
/**
* The Oath of the Wind (10758)
* @author Stayway
*/
public class Q10758_TheOathOfTheWind extends Quest
{
// NPC
private static final int PIO = 33963;
// Monster
private static final int WINDIMA_CLONE = 27522;
// Items
private static final ItemHolder GUILD_COIN = new ItemHolder(37045, 7);
// Rewards
private static final int EXP_REWARD = 561645;
private static final int SP_REWARD = 134;
// Others
private static final int MIN_LEVEL = 28;
public Q10758_TheOathOfTheWind()
{
super(10758, Q10758_TheOathOfTheWind.class.getSimpleName(), "The Oath of the Wind");
addStartNpc(PIO);
addTalkId(PIO);
addKillId(WINDIMA_CLONE);
addCondMinLevel(MIN_LEVEL, "no_level.htm");
addCondRace(Race.ERTHEIA, "noErtheia.html");
addCondCompletedQuest(Q10757_QuietingTheStorm.class.getSimpleName(), "restriction.html");
}
@Override
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
final QuestState qs = getQuestState(player, false);
if (qs == null)
{
return null;
}
String htmltext = null;
switch (event)
{
case "33963-02.htm":
case "33963-03.htm":
case "33963-04.htm":
{
htmltext = event;
break;
}
case "accept": // start the quest
{
qs.startQuest();
qs.set(Integer.toString(WINDIMA_CLONE), 0);
npc = addSpawn(WINDIMA_CLONE, -93534, 89674, -3216, 0, false, 0, false, player.getInstanceId());
startQuestTimer("windima_despawn", 100000, null, player);
npc.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, player);
htmltext = event;
break;
}
case "33963-05.htm":
{
if (qs.isCond(2))
{
giveItems(player, GUILD_COIN);
addExpAndSp(player, EXP_REWARD, SP_REWARD);
qs.unset(Integer.toString(WINDIMA_CLONE));
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 = null;
switch (qs.getState())
{
case State.CREATED:
{
if (player.getRace() != Race.ERTHEIA)
{
htmltext = "noErtheia.html";
}
else
{
htmltext = "33963-01.htm";
}
break;
}
case State.STARTED:
{
if (qs.isCond(1))
{
htmltext = "33963-06.html";
}
else if (qs.isCond(2))
{
htmltext = "33963-04.html";
}
break;
}
case State.COMPLETED:
{
htmltext = getAlreadyCompletedMsg(player);
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(WINDIMA_CLONE));
kills++;
qs.set(Integer.toString(WINDIMA_CLONE), kills);
final ExQuestNpcLogList log = new ExQuestNpcLogList(getId());
log.addNpc(WINDIMA_CLONE, qs.getInt(Integer.toString(WINDIMA_CLONE)));
killer.sendPacket(log);
if (qs.getInt(Integer.toString(WINDIMA_CLONE)) >= 1)
{
qs.setCond(2);
}
}
return super.onKill(npc, killer, isSummon);
}
}

View File

@ -0,0 +1,3 @@
<html><body>Research Pio:<br>
You are not Ertheia, this quest is not for you.
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>You don't meet level requirements<br>
(Quest available from level 28+)
</body></html>

View File

@ -255,6 +255,7 @@ import quests.Q10746_SeeTheWorld.Q10746_SeeTheWorld;
import quests.Q10755_LettersFromTheQueen_WindyHill.Q10755_LettersFromTheQueen_WindyHill;
import quests.Q10756_AnInterdimensionalDraft.Q10756_AnInterdimensionalDraft;
import quests.Q10757_QuietingTheStorm.Q10757_QuietingTheStorm;
import quests.Q10758_TheOathOfTheWind.Q10758_TheOathOfTheWind;
/**
* @author NosBit
@ -500,7 +501,8 @@ public class QuestMasterHandler
Q10746_SeeTheWorld.class,
Q10755_LettersFromTheQueen_WindyHill.class,
Q10756_AnInterdimensionalDraft.class,
Q10757_QuietingTheStorm.class
Q10757_QuietingTheStorm.class,
Q10758_TheOathOfTheWind.class
};
public static void main(String[] args)

View File

@ -505,18 +505,27 @@
<height normal="22.5" />
</collision>
</npc>
<npc id="27522" level="28" type="L2Npc" name="Windima" title="Clone">
<!-- AUTO GENERATED NPC TODO: FIX IT -->
<race>HUMAN</race>
<sex>FEMALE</sex>
<npc id="27522" level="28" type="L2Monster" name="Windima" title="Clone">
<parameters>
<param name="MoveAroundSocial" value="0" />
<param name="MoveAroundSocial1" value="0" />
<param name="MoveAroundSocial2" value="0" />
<skill name="DeBuff" id="4098" level="1" /> <!-- Silence -->
</parameters>
<race>ELEMENTAL</race>
<acquire exp="0" sp="0" />
<stats>
<vitals hp="1881" hpRegen="7.5" mp="1345.8" mpRegen="2.7" />
<vitals hp="1881" hpRegen="3.5" mp="231" mpRegen="1.5" />
<attack physical="119.09" magical="35.77" random="50" critical="1" accuracy="9" attackSpeed="253" type="BLUNT" range="40" distance="80" width="120" />
<defence physical="144.948" magical="92.519" />
<attribute>
<defence fire="20" water="20" wind="20" earth="20" holy="20" dark="20" />
</attribute>
<speed>
<walk ground="50" />
<run ground="120" />
</speed>
</stats>
<status attackable="false" />
<collision>
<radius normal="23" />
<height normal="90" />