Updated Letter Collector event.
Thanks to Index.
This commit is contained in:
		| @@ -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> | ||||
| @@ -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> | ||||
| @@ -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(); | ||||
| 	} | ||||
| } | ||||
| } | ||||
|   | ||||
| @@ -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!" /> | ||||
|   | ||||
| @@ -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>  | ||||
		Reference in New Issue
	
	Block a user
	 MobiusDevelopment
					MobiusDevelopment