Custom Birth of Draco event.

This commit is contained in:
MobiusDev
2017-10-07 15:56:36 +00:00
parent 2f33c0156e
commit c05c4e43dd
57 changed files with 873 additions and 123 deletions

View File

@@ -0,0 +1,12 @@
<html><body>Flame Servant Aslan:<br>
I come at the request of Pa'agrio Lord Kakai. Shilen has distributed Draco Eggs among her monsters, spreading the power of darkness. If the Dracos hatch, terrible monsters will run amuck!<br1>
Steal <font color="LEVEL">Draco Eggs</font> from their monstrous new families. The Dracos must hatch under our care.<br>
<!--<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest BirthOfDraco giveAgathion">"Give me a Flame Spirit Summon Bracelet."</Button>-->
<!--<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest BirthOfDraco 33687-04.htm">"How do I hatch a Small Draco Egg?"</Button>-->
<!--<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest BirthOfDraco 33687-07.htm">"How do I hatch a Large Draco Egg?"</Button>-->
<!--<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest BirthOfDraco 33687-09.htm">"I'd like to buy something with the Shattered Egg Shells."</Button>-->
<!--<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest BirthOfDraco 33687-09.htm">"Can I get something for giving you 50 Shattered Egg Shells?"</Button>-->
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest BirthOfDraco howtohatch.htm">"How do I hatch a Draco Egg?"</Button><!-- custom -->
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest BirthOfDraco lyndraco.htm">"I want to summon a Lyn Draco."</Button><!-- custom -->
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest BirthOfDraco rewards.htm">"I'd like to get something with the Shattered Egg Shells."</Button><!-- custom -->
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Servant of Flames Aslan:<br>
Now! Take this <font color="LEVEL">Flame Spirit Agathion Bracelet</font>. You can use this bracelet to call forth a <font color="LEVEL">Flame Spirit Agathion</font>. The Flame Spirit will share the power of Pa'agrio that you can use to incubate the <font color="LEVEL">Draco Eggs</font>.
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Servant of Flames Aslan:<br>
You already received the <font color="LEVEL">Flame Spirit Agathion Bracelet</font>. Use the bracelet to call forth the <font color="LEVEL">Flame Spirit Agathion</font> and incubate the <font color="LEVEL">Draco Eggs</font>.
</body></html>

View File

@@ -0,0 +1,10 @@
<html><body>Flame Servant Aslan:<br>
Let me tell you how to hatch a <font color="LEVEL">Small Draco Egg</font>.<br>
Remember, <font color="LEVEL">you can hatch a Small Draco Egg by yourself</font>.<br>
Summon the <font color="LEVEL">Small Draco Egg</font> in your inventory. It will appear with a base temperature of <font color="LEVEL">16 degrees</font>.<br>
The <font color="LEVEL">Flame Spirit Agathion</font> can use <font color="LEVEL">Pa'agrio's Hand</font> on the <font color="LEVEL">Small Draco Egg</font> to raise its temperature. But this is not always easy! Even the Flame Spirit struggles to wield Pa'agrio's Hand. <font color="LEVEL">The temperature increase may be anywhere between 1 - 10 degrees</font>.<br>
The egg should hatch between 26 - 36 degrees. It will definitely hatch if the temperature hits exactly <font color="LEVEL">37 degrees</font>. After that point, though, it will break!<br>
Draco researchers say <font color="LEVEL">the closer the temperature is to 37 degrees, the more likely it is to hatch</font>.<br>
<font color="LEVEL">Oh! One last thing. When you're in a party, your Draco Egg will be summoned at the same time as your other party members' eggs!</font><br>
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest BirthOfDraco 33687-01.htm">Back</Button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Servant of Flames Aslan:<br>
I'm sorry! You weren't able to receive a gift this time.<br>
But don't get too down. Whenever you bring me <font color="LEVEL">50 Shattered Egg Shells</font>, you will be able to try your luck.
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Servant of Flames Aslan:<br>
You don't have enough <font color="LEVEL">Shattered Egg Shells</font>! You need at least <font color="LEVEL">50</font> to receive a gift.
</body></html>

View File

@@ -0,0 +1,10 @@
<html><body>Flame Servant Aslan:<br>
Let me tell you how to hatch a <font color="LEVEL">Large Draco Egg</font>.<br>
First, <font color="LEVEL">it takes a party to hatch a Large Draco Egg</font>.<br>
Second, summon the <font color="LEVEL">Large Draco Egg</font> from your inventory. It will appear with a base temperature of <font color="LEVEL">16 degrees</font>.<br>
Third, have the <font color="LEVEL">Flame Spirit Agathion</font> use <font color="LEVEL">Pa'agrio's Hand</font> to raise the egg's temperature. But be warned! Even the Flame Spirit has a hard time handling Pa'agrio's Hand. <font color="LEVEL">The temperature increase may be anywhere between 0.1 - 1 degree</font>.<br>
Fourth, the egg should hatch between 36 - 36.9 degrees with room for failure. It will definitely hatch if the temperature hits exactly <font color="LEVEL">37 degrees</font>. But it will break if you exceed that temperature!<br>
Draco researchers say <font color="LEVEL">the closer the temperature is to 37 degrees, the more likely it is to hatch</font>.<br>
<font color="LEVEL">Oh! One last thing. <font color="LEVEL">When you're in a party, your Draco Egg will be summoned at the same time as your other party members' eggs</font>!</font><br>
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest BirthOfDraco 33687-01.htm">Back</Button>
</body></html>

View File

@@ -0,0 +1,8 @@
<html><body>Flame Servant Aslan:<br>
Give me <font color="LEVEL">50 Shattered Egg Shells</font>, and you may get one of the following items:<br>
<font color="LEVEL">Small Draco Egg, Large Draco Egg, Draco's Gift, or Draco's Shiny Gift.</font><br>
<font color="LEVEL">But not all the time, mind you. You might not get anything at all.</font><br>
The choice is yours. Will you try your luck?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest BirthOfDraco giveFiftyEggs">"Sure, why not. Here are your 50 eggs."</Button>
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest BirthOfDraco 33687-01.htm">Back</Button>
</body></html>

View File

@@ -0,0 +1,6 @@
<html><body>Flame Servant Aslan:<br>
If you want, I can bestow my energy to help you hatch multiple <font color="LEVEL">Small Draco Eggs</font> at once.<br>
<font color="LEVEL">But remember, a combination of eggs will have multiplied effects as well. You can only get one reward if a <font color="LEVEL">Lyn Draco</font> appears! Oh, and once the eggs are combined, they cannot be separated. Will you still combine them?</font><br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest BirthOfDraco giveEggs">"Here, 10 eggs."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest BirthOfDraco giveFiftyEggs">"Here, 50 eggs."</Button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Flame Servant Aslan:<br>
Do you want exchange more?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h menu_select?ask=-4300&reply=12">"Here, 10 eggs."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h menu_select?ask=-4300&reply=13">"Here, 50 eggs."</Button>
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Flame Servant Aslan:<br>
You don't have enough Small Draco Eggs. I can exchange some for you if you bring more.
</body></html>

View File

@@ -0,0 +1,123 @@
/*
* 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 events.BirthOfDraco;
import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.quest.LongTimeEvent;
/**
* Birth of Draco
* @URL http://www.lineage2.com/en/news/events/birth-of-draco.php
* @author Mobius
*/
public final class BirthOfDraco extends LongTimeEvent
{
// NPCs
private static final int ASLAN = 33687;
private static final int LYN_DRACO = 33828;
// Items
private static final int SMALL_EGG = 34864;
private static final int LARGE_EGG = 34865;
private static final int SHATTERED_EGG = 34866;
private static final int SHINY_GIFT = 34868;
// private static final int AGATHION = 34869; // needs proper ExSendUIEvent
private BirthOfDraco()
{
addStartNpc(ASLAN);
addFirstTalkId(ASLAN);
addTalkId(ASLAN);
}
@Override
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
String htmltext = null;
switch (event)
{
case "33687-01.htm":
case "33687-04.htm":
case "33687-07.htm":
case "33687-08.htm":
case "33687-09.htm":
case "howtohatch.htm": // custom info
case "lyndraco.htm": // custom info
case "rewards.htm": // custom info
{
htmltext = event;
break;
}
case "giveFiftySmallEggs":
{
if (getQuestItemsCount(player, SMALL_EGG) >= 50)
{
takeItems(player, SMALL_EGG, 50);
addSpawn(LYN_DRACO, player.getX(), player.getY(), player.getZ(), player.getHeading() + 32500, true, 180000);
}
else
{
htmltext = "33687-11.htm";
}
break;
}
case "getRandomReward":
{
if (getQuestItemsCount(player, SHATTERED_EGG) >= 50)
{
takeItems(player, SHATTERED_EGG, 50);
if (getRandom(100) < 30)
{
giveItems(player, SHINY_GIFT, 1);
}
else if (getRandom(100) < 30)
{
giveItems(player, LARGE_EGG, 1);
}
else if (getRandom(100) < 30)
{
giveItems(player, SMALL_EGG, 1);
}
else
{
htmltext = "33687-05.htm";
}
}
else
{
htmltext = "33687-06.htm";
}
break;
}
/*
* case "giveAgathion": { if (hasQuestItems(player, AGATHION)) { htmltext = "33687-03.htm"; } else { giveItems(player, AGATHION, 1); htmltext = "33687-02.htm"; } break; }
*/
}
return htmltext;
}
@Override
public String onFirstTalk(L2Npc npc, L2PcInstance player)
{
return npc.getId() + "-01.htm";
}
public static void main(String[] args)
{
new BirthOfDraco();
}
}

View File

@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<event name="Birth of Draco" active="13 05 2012-11 06 2012" enableShrines="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../xsd/eventConfig.xsd">
<droplist>
<add item="34863" min="1" max="1" chance="3%" /> <!-- Contaminated Draco Egg -->
</droplist>
<spawnlist>
<add npc="33687" x="-14143" y="123176" z="-3096" heading="30212" /> <!-- Gludio -->
<add npc="33687" x="16354" y="142848" z="-2680" heading="14450" /> <!-- Dion -->
<add npc="33687" x="80814" y="147987" z="-3448" heading="3355" /> <!-- Giran -->
<add npc="33687" x="82008" y="53874" z="-1472" heading="3355" /> <!-- Oren -->
<add npc="33687" x="147457" y="27863" z="-2248" heading="17863" /> <!-- Aden -->
<add npc="33687" x="112172" y="220447" z="-3648" heading="30708" /> <!-- Heine -->
<add npc="33687" x="148195" y="-57368" z="-2752" heading="17863" /> <!-- Goddard -->
<add npc="33687" x="44530" y="-48368" z="-776" heading="14450" /> <!-- Rune -->
<add npc="33687" x="86897" y="-141346" z="-1320" heading="49153" /> <!-- Shutgard -->
<add npc="33687" x="-114822" y="256385" z="-1472" heading="49744" /> <!-- Talking Island -->
<add npc="33687" x="-78832" y="249115" z="-3272" heading="56380" /> <!-- Faeron Village -->
<add npc="33687" x="-80485" y="149537" z="-3016" heading="16383" /> <!-- Gluddin -->
<add npc="33687" x="117380" y="76684" z="-2672" heading="40961" /> <!-- Hunters Village -->
<add npc="33687" x="208499" y="87743" z="-1006" heading="11264" /> <!-- Arcan -->
</spawnlist>
<messages>
<add type="onEnd" text="Birth of Draco: Event end!" />
<add type="onEnter" text="Birth of Draco: Event ongoing!" />
</messages>
</event>

View File

@@ -0,0 +1,7 @@
<html><body>Flame Servant Aslan:<br>
Let me tell you how to hatch a <font color="LEVEL">Draco Egg</font>.<br>
Summon the <font color="LEVEL">Draco Egg</font> from your your inventory.<br>
Draco researchers say <font color="LEVEL">the closer the temperature is to 37 degrees, the more likely it is to hatch</font>.<br>
Start hitting the <font color="LEVEL">Draco Egg</font> to raise it's temperature. Bigger eggs need more time to hatch.<br>
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest BirthOfDraco 33687-01.htm">Back</Button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Flame Servant Aslan:<br>
Give me <font color="LEVEL">50 Small Draco Eggs</font> to summon a Lyn Draco that has a chance to drop better quality items.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest BirthOfDraco giveFiftySmallEggs">"Sure, why not. Here are your 50 eggs."</Button>
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest BirthOfDraco 33687-01.htm">Back</Button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Flame Servant Aslan:<br>
Give me <font color="LEVEL">50 Shattered Egg Shells</font> and get a random gift, or nothing!<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest BirthOfDraco getRandomReward">"Sure, why not. Here are your 50 eggs."</Button>
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest BirthOfDraco 33687-01.htm">Back</Button>
</body></html>