Updated Letter Collector event.

Thanks to Index.
This commit is contained in:
MobiusDevelopment
2021-11-04 02:07:20 +00:00
parent 0dc934ff26
commit e9430b97dd
35 changed files with 1345 additions and 1415 deletions

View File

@@ -1,8 +0,0 @@
<html><body>Angel Cat:<br>
Traveler, are you interested in collecting letters?<br>
Collect letters to create <font color="LEVEL">LINEAGE II</font>, <font color="LEVEL">TOGETHER</font>, or <font color="LEVEL">NCSOFT</font>, and bring them to me! I'll give you a gift!<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest LetterCollector 33873-2.htm">"Tell me about the Letter Collecter Event."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest LetterCollector lineage">"I've collected 'LINEAGE II.'"</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest LetterCollector together">"I've collected 'TOGETHER.'"</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest LetterCollector ncsoft">"I've collected 'NCSOFT.'"</Button>
</body></html>

View File

@@ -1,9 +0,0 @@
<html><body>Angel Cat:<br>
<font color="LEVEL">So, here's the gist:</font><br>
If you hunt monsters in the Lineage II world, you have a chance of obtaining letter-engraved items.
If you collect those letters and bring them to me, I'll give you a gift depending on the combination.<br>
There are a total of 14 letters, and they are:<br>
<font color="LEVEL">A</font>, <font color="LEVEL">C</font>, <font color="LEVEL">E</font>, <font color="LEVEL">F</font>, <font color="LEVEL">G</font>, <font color="LEVEL">I</font>, <font color="LEVEL">L</font>, <font color="LEVEL">N</font>, <font color="LEVEL">O</font>, <font color="LEVEL">S</font>, <font color="LEVEL">T</font>, <font color="LEVEL">II</font>, <font color="LEVEL">R</font>, and <font color="LEVEL">H</font>.<br><br>
<br><br><br>Combine the letters and numbers to create <font color="LEVEL">LINEAGE II</font>, <font color="LEVEL">TOGETHER</font>, or <font color="LEVEL">NCSOFT</font>.<br><br>
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest LetterCollector 33873-1.htm">Back</Button>
</body></html>

View File

@@ -16,230 +16,42 @@
*/
package events.LetterCollector;
import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.holders.ItemHolder;
import org.l2jmobius.gameserver.model.events.EventType;
import org.l2jmobius.gameserver.model.events.ListenerRegisterType;
import org.l2jmobius.gameserver.model.events.annotations.RegisterEvent;
import org.l2jmobius.gameserver.model.events.annotations.RegisterType;
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerLogin;
import org.l2jmobius.gameserver.model.quest.LongTimeEvent;
import org.l2jmobius.gameserver.network.serverpackets.ExLetterCollectorUI;
/**
* Event: Letter Collector
* @URL http://www.lineage2.com/en/news/events/letter-collector-event-05112016.php
* @author Mobius, Gigi
* @author Mobius
*/
public class LetterCollector extends LongTimeEvent
{
// NPC
private static final int ANGEL_CAT = 33873;
// Items
private static final int A = 3875;
private static final int C = 3876;
private static final int E = 3877;
private static final int F = 3878;
private static final int G = 3879;
private static final int H = 3880;
private static final int I = 3881;
private static final int L = 3882;
private static final int N = 3883;
private static final int O = 3884;
private static final int R = 3885;
private static final int S = 3886;
private static final int T = 3887;
private static final int II = 3888;
// Rewards
private static final ItemHolder[] REWARDS_TAUTI =
{
new ItemHolder(34998, 1), // Tauti's One-handed Axe
new ItemHolder(35001, 1), // Tauti's Dual Axe
};
private static final ItemHolder[] REWARDS_SPECTER =
{
new ItemHolder(18035, 1), // Blessed Specter Shaper
new ItemHolder(18036, 1), // Blessed Specter Cutter
new ItemHolder(18037, 1), // Blessed Specter Slasher
new ItemHolder(18038, 1), // Blessed Specter Avenger
new ItemHolder(18039, 1), // Blessed Specter Fighter
new ItemHolder(18040, 1), // Blessed Specter Stormer
new ItemHolder(18041, 1), // Blessed Specter Thrower
new ItemHolder(18042, 1), // Blessed Specter Shooter
new ItemHolder(18043, 1), // Blessed Specter Buster
new ItemHolder(18044, 1), // Blessed Specter Caster
new ItemHolder(18045, 1), // Blessed Specter Retributer
new ItemHolder(18046, 1), // Blessed Specter Dualsword
new ItemHolder(18047, 1), // Blessed Specter Dual Dagger
new ItemHolder(18048, 1), // Blessed Specter Dual Blunt Weapon
};
private static final ItemHolder[] REWARDS_SERAPH =
{
new ItemHolder(18049, 1), // Blessed Seraph Helmet
new ItemHolder(18050, 1), // Blessed Seraph Breastplate
new ItemHolder(18051, 1), // Blessed Seraph Gaiters
new ItemHolder(18052, 1), // Blessed Seraph Gauntlets
new ItemHolder(18053, 1), // Blessed Seraph Boots
new ItemHolder(18054, 1), // Blessed Seraph Shield
new ItemHolder(18055, 1), // Blessed Seraph Leather Helmet
new ItemHolder(18056, 1), // Blessed Seraph Leather Armor
new ItemHolder(18057, 1), // Blessed Seraph Leather Leggings
new ItemHolder(18058, 1), // Blessed Seraph Leather Gloves
new ItemHolder(18059, 1), // Blessed Seraph Leather Boots
new ItemHolder(18060, 1), // Blessed Seraph Circlet
new ItemHolder(18061, 1), // Blessed Seraph Tunic
new ItemHolder(18062, 1), // Blessed Seraph Stockings
new ItemHolder(18063, 1), // Blessed Seraph Gloves
new ItemHolder(18064, 1), // Blessed Seraph Shoes
new ItemHolder(18065, 1), // Blessed Seraph Sigil
};
private static final ItemHolder[] REWARDS_OTHER =
{
new ItemHolder(17371, 20), // Crystal (R-grade)
new ItemHolder(17754, 2000), // Soulshot (R-grade)
new ItemHolder(19440, 1), // Gemstone (R-grade)
new ItemHolder(19442, 500), // Blessed Spiritshot (R-grade)
new ItemHolder(34945, 1), // Lv. 3 Giant Dye Pack
new ItemHolder(34946, 1), // Lv. 3 Legendary Dye Pack
new ItemHolder(34947, 1), // Lv. 3 Ancient Dye Pack
new ItemHolder(34950, 1), // Lv. 4 Giant Dye Pack
new ItemHolder(34951, 1), // Lv. 4 Legendary Dye Pack
new ItemHolder(34952, 1), // Lv. 4 Ancient Dye Pack
new ItemHolder(34953, 1), // Lv. 5 Giant Dye Pack
new ItemHolder(34954, 1), // Lv. 5 Legendary Dye Pack
new ItemHolder(34955, 1), // Lv. 5 Ancient Dye Pack
new ItemHolder(35567, 1), // Dark Eternal Enhancement Stone
new ItemHolder(37009, 3), // Blueberry Cake (MP)
new ItemHolder(37802, 1), // Dark Eternal Enhancement Stone Fragment
new ItemHolder(38101, 1), // Leona's Scroll: 1,000,000 SP
new ItemHolder(38102, 1), // Leona's Scroll: 5,000,000 SP
new ItemHolder(38103, 1), // Leona's Scroll: 10,000,000 SP
new ItemHolder(39560, 1), // Low-grade Wind Dye Pack
new ItemHolder(39561, 1), // Mid-grade Wind Dye Pack
new ItemHolder(39562, 1), // High-grade Wind Dye Pack
new ItemHolder(39633, 1), // Fortune Pocket - Stage 5
};
private LetterCollector()
{
addStartNpc(ANGEL_CAT);
addFirstTalkId(ANGEL_CAT);
addTalkId(ANGEL_CAT);
}
@Override
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
@RegisterEvent(EventType.ON_PLAYER_LOGIN)
@RegisterType(ListenerRegisterType.GLOBAL_PLAYERS)
public void onPlayerLogin(OnPlayerLogin event)
{
String htmltext = null;
switch (event)
if (!isEventPeriod())
{
case "33873-1.htm":
case "33873-2.htm":
{
htmltext = event;
break;
}
case "lineage":
{
if ((getQuestItemsCount(player, L) >= 1) && //
(getQuestItemsCount(player, I) >= 1) && //
(getQuestItemsCount(player, N) >= 1) && //
(getQuestItemsCount(player, E) >= 2) && //
(getQuestItemsCount(player, A) >= 1) && //
(getQuestItemsCount(player, G) >= 1) && //
(getQuestItemsCount(player, II) >= 1))
{
takeItems(player, L, 1);
takeItems(player, I, 1);
takeItems(player, N, 1);
takeItems(player, E, 2);
takeItems(player, A, 1);
takeItems(player, G, 1);
takeItems(player, II, 1);
giveItems(player, getReward());
htmltext = "33873-1.htm";
}
else
{
htmltext = "noItem.htm";
}
break;
}
case "together":
{
if ((getQuestItemsCount(player, T) >= 2) && //
(getQuestItemsCount(player, O) >= 1) && //
(getQuestItemsCount(player, G) >= 1) && //
(getQuestItemsCount(player, E) >= 2) && //
(getQuestItemsCount(player, H) >= 1) && //
(getQuestItemsCount(player, R) >= 1))
{
takeItems(player, T, 2);
takeItems(player, O, 1);
takeItems(player, G, 1);
takeItems(player, E, 2);
takeItems(player, H, 1);
takeItems(player, R, 1);
giveItems(player, getReward());
htmltext = "33873-1.htm";
}
else
{
htmltext = "noItem.htm";
}
break;
}
case "ncsoft":
{
if ((getQuestItemsCount(player, N) >= 1) && //
(getQuestItemsCount(player, C) >= 1) && //
(getQuestItemsCount(player, S) >= 1) && //
(getQuestItemsCount(player, O) >= 1) && //
(getQuestItemsCount(player, F) >= 1) && //
(getQuestItemsCount(player, T) >= 1))
{
takeItems(player, N, 1);
takeItems(player, C, 1);
takeItems(player, S, 1);
takeItems(player, O, 1);
takeItems(player, F, 1);
takeItems(player, T, 1);
giveItems(player, getReward());
htmltext = "33873-1.htm";
}
else
{
htmltext = "noItem.htm";
}
break;
}
return;
}
return htmltext;
}
private ItemHolder getReward()
{
if (getRandom(100) < 1)
final PlayerInstance player = event.getPlayer();
if (player != null)
{
return getRandomEntry(REWARDS_TAUTI);
player.sendPacket(ExLetterCollectorUI.STATIC_PACKET);
}
else if (getRandom(100) < 3)
{
return getRandomEntry(REWARDS_SPECTER);
}
else if (getRandom(100) < 3)
{
return getRandomEntry(REWARDS_SERAPH);
}
else
{
return getRandomEntry(REWARDS_OTHER);
}
}
@Override
public String onFirstTalk(Npc npc, PlayerInstance player)
{
return npc.getId() + "-1.htm";
}
public static void main(String[] args)
{
new LetterCollector();
}
}
}

View File

@@ -1,27 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<event name="Letter Collector" active="11 05 1016-01 06 2016" enableShrines="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../xsd/eventConfig.xsd">
<event name="Letter Collector" active="30 06 2021-29 07 2021" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../xsd/eventConfig.xsd">
<!-- Minimum level (95) also set at ExLetterCollectorUI.java -->
<!-- Rewards and items set at ExLetterCollectorTakeReward.java -->
<droplist>
<add item="37004" min="1" max="1" chance="3%" /> <!-- Letter Collector's Pouch: LINEAGE II -->
<add item="37003" min="1" max="1" chance="3%" /> <!-- Letter Collector's Pouch: TOGETHER -->
<add item="37005" min="1" max="1" chance="3%" /> <!-- Letter Collector's Pouch: NCSOFT -->
<add item="37006" min="1" max="1" chance="1%" /> <!-- Letter Collector's Pouch: RIIS -->
<add item="3875" min="1" max="1" chance="1%" minLevel="95" /> <!-- Letter Collector's A -->
<add item="3877" min="1" max="1" chance="1%" minLevel="95" /> <!-- Letter Collector's E -->
<add item="3879" min="1" max="1" chance="1%" minLevel="95" /> <!-- Letter Collector's G -->
<add item="3881" min="1" max="1" chance="1%" minLevel="95" /> <!-- Letter Collector's I -->
<add item="3882" min="1" max="1" chance="1%" minLevel="95" /> <!-- Letter Collector's L -->
<add item="3883" min="1" max="1" chance="1%" minLevel="95" /> <!-- Letter Collector's N -->
<add item="3884" min="1" max="1" chance="1%" minLevel="95" /> <!-- Letter Collector's O -->
<add item="3886" min="1" max="1" chance="1%" minLevel="95" /> <!-- Letter Collector's T -->
<add item="3880" min="1" max="1" chance="1%" minLevel="95" /> <!-- Letter Collector's H -->
<add item="3888" min="1" max="1" chance="1%" minLevel="95" /> <!-- Letter Collector's II -->
<add item="22894" min="1" max="1" chance="1%" minLevel="95" /> <!-- Letter Collector's W -->
<add item="29545" min="1" max="1" chance="1%" minLevel="95" /> <!-- Letter Collector's D -->
<add item="29825" min="1" max="1" chance="1%" minLevel="95" /> <!-- Letter Collector's P -->
</droplist>
<spawnlist>
<add npc="33873" x="-14143" y="123176" z="-3096" heading="30212" /> <!-- Gludio -->
<add npc="33873" x="16354" y="142848" z="-2680" heading="14450" /> <!-- Dion -->
<add npc="33873" x="80814" y="147987" z="-3448" heading="3355" /> <!-- Giran -->
<add npc="33873" x="82008" y="53874" z="-1472" heading="3355" /> <!-- Oren -->
<add npc="33873" x="147457" y="27863" z="-2248" heading="17863" /> <!-- Aden -->
<add npc="33873" x="112172" y="220447" z="-3648" heading="30708" /> <!-- Heine -->
<add npc="33873" x="148195" y="-57368" z="-2752" heading="17863" /> <!-- Goddard -->
<add npc="33873" x="44530" y="-48368" z="-776" heading="14450" /> <!-- Rune -->
<add npc="33873" x="86897" y="-141346" z="-1320" heading="49153" /> <!-- Shutgard -->
<add npc="33873" x="-114822" y="256385" z="-1472" heading="49744" /> <!-- Talking Island -->
<add npc="33873" x="-78832" y="249115" z="-3272" heading="56380" /> <!-- Faeron Village -->
<add npc="33873" x="-80485" y="149537" z="-3016" heading="16383" /> <!-- Gluddin -->
<add npc="33873" x="117380" y="76684" z="-2672" heading="40961" /> <!-- Hunters Village -->
<add npc="33873" x="208499" y="87743" z="-1006" heading="11264" /> <!-- Arcan -->
</spawnlist>
<messages>
<add type="onEnd" text="Letter Collector: Event end!" />
<add type="onEnter" text="Letter Collector: Event ongoing!" />

View File

@@ -1,4 +0,0 @@
<html><body>Angel Cat:<br>
I'm sorry, but you'll need more letters to play.<br>
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest LetterCollector 33873-1.htm">Back</Button>
</body></html>