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

@@ -1,5 +1,5 @@
<html><body>Karla:<br>
I can tell you came from the Whispering Woods. How do I know? Um, I can feel Karaphon's power inside you.<br>
Haha, just kidding. There was a leaf stuck on you, that's all. You are quite guillible, aren't you? Anyway, what brings you here?
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10745_TheSecretIngredients 33933-02.html">"I'm running errands for Dolkin."</button>
<html><body>Karla:<br>
I can tell you came from the Whispering Woods. How do I know? Um, I can feel Karaphon's power inside you.<br>
Haha, I'm kidding. There was a leaf stuck on you, that's all. You're quite gullible, aren't you? Anyway, what brings you here?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10745_TheSecretIngredients 33933-02.html">"I'm running errands for Dolkin."</button>
</body></html>

View File

@@ -1,4 +1,4 @@
<html><body>Karla:<br>
Ah... Dolkin, that old dwarf again!<br>
He's always taking advantage of nice kids like you. You brought his report, right? I will pay you for your troubles. Give me report.
<html><body>Karla:<br>
Ah...Dolkin, that old dwarf again!<br>
He's always taking advantage of nice kids like you. You brought his report, right? I will pay you for your troubles. Give me the report.
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Maestro Dolkin:<br>
There's a secret deep in this forest.<br>
(This quest can only be performed by Ertheia who are between Lv. 17 and 25.)
</body></html>

View File

@@ -1,4 +1,4 @@
<html><body>Maestro Dolkin:<br>
Want to hear some good news? There is a very interesting creature living deep within the Whispering Woods. It looks like the Treant, but it's got a special characteristic all its own. How about it? Aren't you curious? If you help me, of course I'll give you something good in return!<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10745_TheSecretIngredients 33954-02.html">"Okay, I'll help."</button>
<html><body>Maestro Dolkin:<br>
Want to hear some good news? There's a very interesting creature living deep within the Whispering Woods. It looks like the Treant, but it's got a special characteristic all its own. How about it? Aren't you curious? If you help me, of course I'll give you something good in return!<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10745_TheSecretIngredients 33954-02.htm">"Okay, I'll help."</button>
</body></html>

View File

@@ -1,6 +1,5 @@
<html><body>Maestro Dolkin:<br>
The creature in question is called <font color="LEVEL">Karaphon!</font> Its leaves are like scales, making them very tough.<br1>
The truth is, a Treant's leaves are also very good, but they can't compare to the leaves of a Karaphon.<br>
Bring me back its leaves and I'll give you something just as good. Will you go?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest KaraphonHabitat enter_instance">"Fine, fine."</button>
<html><body>Maestro Dolkin:<br>
The creature in question is called <font color="LEVEL">Karaphon</font>! Its leaves are like scales, making them very tough. The truth is, a Treant's leaves are also very good, but they can't compare to the leaves of a Karaphon.<br>
Bring me back its leaves and I'll give you something just as good. Will you go?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest KaraphonHabitat enter_instance">"Fine, fine."</button>
</body></html>

View File

@@ -1,6 +1,4 @@
<html><body>Maestro Dolkin:<br>
Oh, you've managed to come back in one piece!<br>
No no, don't look at me like that. I'm just relieved that you came back safely. I wasn't worried, if that's what you're thinking. Hm Hm.<br>
But, there is still something you need to do for me. I can continue to do research here thanks to <font color="LEVEL">Karla</font>, and she asks that I create a strong armor for a fox in return..<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10745_TheSecretIngredients 33954-04.html">"Armor for a fox ?"</button>
<html><body>Maestro Dolkin:<br>
Did you get scared and run away? Can you muster up the courage to go back?
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest KaraphonHabitat enter_instance">"I'm not afraid."</button>
</body></html>

View File

@@ -1,5 +1,6 @@
<html><body>Maestro Dolkin:<br>
Hey, you wanna do me a favor? I need to get <font color="LEVEL">Karla</font> the monthly progress update on my research. Why don't you stop by and drop it off for me?<br>
It's research about fox armor. She's been looking for one ever since her fox died that day. She doesn't like to talk about it, but you can tell it eats away at her.<br>
Well, run along now! She'll see to it that you don't walk away empty-handed.
<html><body>Maestro Dolkin:<br>
Oh, you've managed to come back in one piece!<br>
No no, don't look at me like that. I'm just relieved that you came back safely. I wasn't worried, if that's what you're thinking. Hm hm.<br>
But, there's still something you need to do for me. I can continue to do research here thanks to <font color="LEVEL">Karla</font>, and she asks that I create a strong armor for a fox in return..<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10745_TheSecretIngredients 33954-05.html">"Armor for a fox?"</button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Maestro Dolkin:<br>
Hey, you wanna do me a favor? I need to get <font color="LEVEL">Karla</font> the monthly progress update on my research. Why don't you stop by and drop it off for me?<br>
It's research about fox armor. She's been looking for one ever since her fox died that day. She doesn't like to talk about it, but you can tell it eats away at her.<br>
Well, run along now! She'll see to it that you don't walk away empty-handed.
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Maestro Dolkin:<br>
You should leave now if you're going to take that <font color="LEVEL">report</font> to <font color="LEVEL">Karla</font>.
</body></html>

View File

@@ -1,205 +1,188 @@
/*
* 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.Q10745_TheSecretIngredients;
import com.l2jmobius.gameserver.enums.Race;
import com.l2jmobius.gameserver.model.Location;
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.network.NpcStringId;
import com.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
/**
* @author Neanrakyr
*/
public class Q10745_TheSecretIngredients extends Quest
{
// Npcs
private static final int DOLKIN = 33954;
private static final int DOLKIN_INSTANCE = 34002;
private static final int KARLA = 33933;
// Monsters
private static final int KARAPHON = 23459;
private static final int KEEN_HONEYBEE = 23460;
private static final int KEEN_GROWLER = 23461;
// Locations
private static final Location DOLKIN_INSTANCE_SPAWN = new Location(-82407, 246018, -14158);
// Items
private static final ItemHolder SECRET_INGREDIENTS = new ItemHolder(39533, 1);
private static final ItemHolder DOLKIN_REPORT = new ItemHolder(39534, 1);
private static final ItemHolder FAERON_SUPPORT_BOX = new ItemHolder(40262, 1);
private static final ItemHolder FAERON_SUPPORT_BOX_MAGE = new ItemHolder(40263, 1);
// Level Condition
private static final int MIN_LEVEL = 17;
private static final int MAX_LEVEL = 25;
public Q10745_TheSecretIngredients()
{
super(10745, Q10745_TheSecretIngredients.class.getSimpleName(), "The Secret Ingredients");
addStartNpc(DOLKIN);
addTalkId(DOLKIN, DOLKIN_INSTANCE, KARLA);
addKillId(KARAPHON, KEEN_HONEYBEE, KEEN_GROWLER);
registerQuestItems(SECRET_INGREDIENTS.getId(), DOLKIN_REPORT.getId());
addCondLevel(MIN_LEVEL, MAX_LEVEL, "no_quest.html");
addCondRace(Race.ERTHEIA, "no_quest.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 "33954-02.html":
{
qs.startQuest();
htmltext = event;
break;
}
case "33954-04.html":
{
if (qs.isCond(2))
{
qs.setCond(3);
takeItem(player, SECRET_INGREDIENTS);
giveItems(player, DOLKIN_REPORT);
htmltext = event;
}
break;
}
case "33933-02.html":
{
if (qs.isCond(3))
{
giveAdena(player, 48000, true);
addExpAndSp(player, 241076, 5);
if (player.isMageClass())
{
giveItems(player, FAERON_SUPPORT_BOX_MAGE);
}
else
{
giveItems(player, FAERON_SUPPORT_BOX);
}
showOnScreenMsg(player, NpcStringId.CHECK_YOUR_EQUIPMENT_IN_YOUR_INVENTORY, ExShowScreenMessage.TOP_CENTER, 4500);
qs.exitQuest(false, true);
htmltext = event;
}
break;
}
case "spawn_dolkin":
{
showOnScreenMsg(player, NpcStringId.TALK_TO_DOLKIN_AND_LEAVE_THE_KARAPHON_HABITAT, ExShowScreenMessage.TOP_CENTER, 4500);
addSpawn(DOLKIN_INSTANCE, DOLKIN_INSTANCE_SPAWN, false, 0, false, player.getInstanceId());
break;
}
}
return htmltext;
}
@Override
public String onTalk(L2Npc npc, L2PcInstance player)
{
final QuestState qs = getQuestState(player, true);
String htmltext = qs.isCompleted() ? getAlreadyCompletedMsg(player) : getNoQuestMsg(player);
switch (npc.getId())
{
case DOLKIN:
{
if (qs.isCreated())
{
htmltext = "33954-01.htm";
}
else if (qs.isCond(2))
{
htmltext = "33954-03.html";
}
break;
}
case KARLA:
{
switch (qs.getCond())
{
case 3:
{
htmltext = "33933-01.html";
break;
}
}
}
case DOLKIN_INSTANCE:
{
switch (qs.getCond())
{
case 2:
{
htmltext = "34002.html";
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))
{
switch (npc.getId())
{
case KARAPHON:
{
qs.set("KARAPHON", 1);
break;
}
case KEEN_HONEYBEE:
{
qs.set("KEEN_HONEYBEE", 1);
break;
}
case KEEN_GROWLER:
{
qs.set("KEEN_GROWLER", 1);
break;
}
}
if ((qs.get("KARAPHON") != null) && (qs.get("KEEN_HONEYBEE") != null) && (qs.get("KEEN_GROWLER") != null))
{
giveItems(killer, SECRET_INGREDIENTS);
qs.setCond(2, true);
startQuestTimer("spawn_dolkin", 5000, npc, killer);
}
}
return super.onKill(npc, killer, isSummon);
}
/*
* 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.Q10745_TheSecretIngredients;
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.network.NpcStringId;
import com.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
/**
* The Secret Ingredients (10745)
* @author Sdw
*/
public final class Q10745_TheSecretIngredients extends Quest
{
// Npc's
private static final int DOLKIN = 33954;
private static final int KARLA = 33933;
private static final int DOLKIN_INSTANCE = 34002;
// Mobs
private static final int KARAPHON = 23459;
private static final int KEEN_HONEYBEE = 23460;
private static final int KEEN_GROWLER = 23461;
// Items
private static final ItemHolder DOLKIN_REPORT = new ItemHolder(39534, 1);
private static final ItemHolder SECRET_INGREDIENTS = new ItemHolder(39533, 1);
private static final ItemHolder FAERON_SUPPORT_BOX_MAGE = new ItemHolder(40263, 1);
private static final ItemHolder FAERON_SUPPORT_BOX = new ItemHolder(40262, 1);
// Misc
private static final int MIN_LEVEL = 17;
private static final int MAX_LEVEL = 25;
public Q10745_TheSecretIngredients()
{
super(10745);
addStartNpc(DOLKIN);
addTalkId(DOLKIN, KARLA);
addKillId(KARAPHON, KEEN_HONEYBEE, KEEN_GROWLER);
addCondRace(Race.ERTHEIA, "");
addCondLevel(MIN_LEVEL, MAX_LEVEL, "33954-00.htm");
registerQuestItems(SECRET_INGREDIENTS.getId(), DOLKIN_REPORT.getId());
}
@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 "33954-02.htm":
{
qs.startQuest();
break;
}
case "33954-05.html":
{
if (qs.isCond(2))
{
qs.setCond(3, true);
takeItem(player, SECRET_INGREDIENTS);
giveItems(player, DOLKIN_REPORT);
}
break;
}
case "33933-02.html":
{
if (qs.isCond(3))
{
giveAdena(player, 48000, true);
addExpAndSp(player, 241076, 5);
if (player.isMageClass())
{
giveItems(player, FAERON_SUPPORT_BOX_MAGE);
}
else
{
giveItems(player, FAERON_SUPPORT_BOX);
}
showOnScreenMsg(player, NpcStringId.CHECK_YOUR_EQUIPMENT_IN_YOUR_INVENTORY, ExShowScreenMessage.TOP_CENTER, 10000);
qs.exitQuest(false, true);
}
break;
}
case "SPAWN_DOLKIN":
{
showOnScreenMsg(player, NpcStringId.TALK_TO_DOLKIN_AND_LEAVE_THE_KARAPHON_HABITAT, ExShowScreenMessage.TOP_CENTER, 5000);
addSpawn(DOLKIN_INSTANCE, npc.getLocation(), false, 0, false, player.getInstanceId());
htmltext = null;
break;
}
default:
htmltext = null;
}
return htmltext;
}
@Override
public String onTalk(L2Npc npc, L2PcInstance player)
{
final QuestState qs = getQuestState(player, true);
String htmltext = qs.isCompleted() ? getAlreadyCompletedMsg(player) : getNoQuestMsg(player);
switch (npc.getId())
{
case DOLKIN:
{
if (qs.isCreated())
{
htmltext = "33954-01.htm";
}
else if (qs.isStarted())
{
if (qs.isCond(1))
{
htmltext = "33954-03.html";
}
else if (qs.isCond(2))
{
htmltext = "33954-04.html";
}
else if (qs.isCond(3))
{
htmltext = "33954-06.html";
}
}
break;
}
case KARLA:
{
if (qs.isCond(3))
{
htmltext = "33933-01.html";
}
break;
}
}
return htmltext;
}
@Override
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
{
final QuestState qs = getQuestState(killer, false);
if (qs != null)
{
int killedMobs = qs.getMemoStateEx(0);
if (npc.getId() == KARAPHON)
{
giveItems(killer, SECRET_INGREDIENTS);
qs.setCond(2, true);
}
if ((++killedMobs) == 3)
{
startQuestTimer("SPAWN_DOLKIN", 5000, npc, killer);
}
else
{
qs.setMemoStateEx(0, killedMobs);
}
}
return super.onKill(npc, killer, isSummon);
}
}

View File

@@ -1 +0,0 @@
<html><body>You either don't meet this NPC's minimum quest requirements, or your level is too low to start this quest.</body></html>