Переглянути джерело

BETA: Love Your Gatekeeper event.

Patch by: Gladicek
Thanks to: LasTravel, malyelfik
Reviewed by: Zoey76
Zoey76 12 роки тому
батько
коміт
d935f17e67

+ 1 - 0
L2J_DataPack_BETA/dist/game/data/scripts.cfg

@@ -780,3 +780,4 @@ events/CharacterBirthday/CharacterBirthday.java
 #events/TheValentineEvent/TheValentineEvent.java
 #events/FreyaCelebration/FreyaCelebration.java
 #events/MasterOfEnchanting/MasterOfEnchanting.java
+#events/LoveYourGatekeeper/LoveYourGatekeeper.java

+ 11 - 0
L2J_DataPack_BETA/dist/game/data/scripts/events/LoveYourGatekeeper/32477-1.htm

@@ -0,0 +1,11 @@
+<html><body>Volunteer:<br>
+We gatekeepers are under constant criticism and attack, always dealing with complaints that our teleportation services are too slow or too limited. We don't retaliate, but not because we can't, mind you.<br>
+I'm sure you can see some of our strength in the way we endure the attacks upon us.<br>
+But this is only a glimpse of our true power. We have decided to use our power for the greater good.<br>
+Just 10,000 Adena, my friend! For a donation of 10,000 Adena, you too can purchase a genuine <font color="LEVEL">Gatekeeper Transformation Stick</font>.<br>
+You can make a donation once a day to earn this Shadow Item which gives you the ability to transform into a gatekeeper and experience our great powers.<br>
+You can only use the gatekeeper powers when you have this stick equipped.<br>
+Once you remove it, you will revert to your original form.<br>
+The money that you donate will benefit our Gatekeeper Welfare Foundation, so please participate!<br>
+<a action="bypass -h Quest LoveYourGatekeeper 32477.htm">Back</a>
+</body></html>

+ 9 - 0
L2J_DataPack_BETA/dist/game/data/scripts/events/LoveYourGatekeeper/32477-2.htm

@@ -0,0 +1,9 @@
+<html><body>Volunteer:<br>
+You can use the Gatekeeper Transformation Stick to transform yourself to look like us for an entire hour!<br>
+When you use the Gatekeeper Transformation Stick to look like us, you will possess our great powers and you will gain vitality while hunting. It's fantastic!<br>
+You can obtain a Gatekeeper Transformation Stick once a day per account for a donation of just 10,000 Adena.<br>
+All proceeds go to the Gatekeeper Welfare Foundation, so please participate early and often!<br>
+Please know that during the transformation, your physical form and your attributes will change.<br>
+<a action="bypass -h Quest LoveYourGatekeeper transform_stick">Donate 10,000 Adena.</a><br>
+<a action="bypass -h Quest LoveYourGatekeeper 32477-4.htm">"I won't give up my precious Adena!"</a>
+</body></html>

+ 5 - 0
L2J_DataPack_BETA/dist/game/data/scripts/events/LoveYourGatekeeper/32477-3.htm

@@ -0,0 +1,5 @@
+<html><body>Volunteer:<br>
+You don't have enough Adena. A Gatekeeper Transformation Stick costs 10,000 Adena!<br>
+Don't worry about the expense -- it's worth it.<br>
+<a action="bypass -h Quest LoveYourGatekeeper 32477.htm">Back</a>
+</body></html>

+ 5 - 0
L2J_DataPack_BETA/dist/game/data/scripts/events/LoveYourGatekeeper/32477-4.htm

@@ -0,0 +1,5 @@
+<html><body>Volunteer:<br>
+Oh... you've gone too far!<br>
+Is 10,000 Adena really such an exorbitant sum?<br>
+<a action="bypass -h Quest LoveYourGatekeeper 32477.htm">Go back.</a>
+</body></html>

+ 8 - 0
L2J_DataPack_BETA/dist/game/data/scripts/events/LoveYourGatekeeper/32477-5.htm

@@ -0,0 +1,8 @@
+<html>><body>Volunteer:<br>
+Well, aren't you kind...<br>
+Your encouragement and support gives us even more strength.<br>
+As a token of our gratitude, we will allow you to change your appearance to look like us.<br>
+I should warn you though: unlike using a Gatekeeper Transformation Stick, you won't be able to display any real power with this regular appearance change.<br>
+<a action="bypass -h Quest LoveYourGatekeeper transform">"Yes, please!"</a><br>
+<a action="bypass -h Quest LoveYourGatekeeper 32477.htm">"I don't know. It sounds scary."</a>
+</body></html>

+ 8 - 0
L2J_DataPack_BETA/dist/game/data/scripts/events/LoveYourGatekeeper/32477.htm

@@ -0,0 +1,8 @@
+<html><body>Volunteer:<br>
+Goodness! Don't hit me!<br>
+I am from the Gatekeeper Welfare Foundation. We are currently sponsoring a <font color="LEVEL">"Love Your Gatekeeper" campaign</font>.<br>
+Please take part and show your support for our brave gatekeepers.<br>
+<a action="bypass -h Quest LoveYourGatekeeper 32477-1.htm">Learn about the campaign.</a><br>
+<a action="bypass -h Quest LoveYourGatekeeper 32477-2.htm">Purchase a Transformation Stick.</a><br>
+<a action="bypass -h Quest LoveYourGatekeeper 32477-5.htm">Encourage the gatekeeper.</a>
+</body></html>

+ 129 - 0
L2J_DataPack_BETA/dist/game/data/scripts/events/LoveYourGatekeeper/LoveYourGatekeeper.java

@@ -0,0 +1,129 @@
+/*
+ * Copyright (C) 2004-2013 L2J DataPack
+ * 
+ * This file is part of L2J DataPack.
+ * 
+ * L2J DataPack 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.
+ * 
+ * L2J DataPack 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.LoveYourGatekeeper;
+
+import com.l2jserver.gameserver.model.actor.L2Npc;
+import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jserver.gameserver.model.event.LongTimeEvent;
+import com.l2jserver.gameserver.model.holders.SkillHolder;
+import com.l2jserver.gameserver.model.itemcontainer.PcInventory;
+import com.l2jserver.gameserver.model.quest.QuestState;
+import com.l2jserver.gameserver.model.quest.State;
+import com.l2jserver.gameserver.network.SystemMessageId;
+import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
+
+/**
+ * Love Your Gatekeeper event.
+ * @author Gladicek
+ */
+public class LoveYourGatekeeper extends LongTimeEvent
+{
+	// NCP
+	private static final int GATEKEEPER = 32477;
+	// Item
+	private static final int GATEKEEPER_TRANSFORMATION_STICK = 12814;
+	// Misc
+	private static final int HOURS = 24;
+	private static final int PRICE = 10000;
+	// Skills
+	private static SkillHolder TELEPORTER_TRANSFORM = new SkillHolder(5655, 1);
+	
+	public LoveYourGatekeeper()
+	{
+		super(LoveYourGatekeeper.class.getSimpleName(), "events");
+		addStartNpc(GATEKEEPER);
+		addFirstTalkId(GATEKEEPER);
+		addTalkId(GATEKEEPER);
+	}
+	
+	@Override
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+	{
+		final QuestState st = player.getQuestState(getName());
+		if (st == null)
+		{
+			return getNoQuestMsg(player);
+		}
+		
+		switch (event)
+		{
+			case "transform_stick":
+			{
+				if (player.getAdena() >= PRICE)
+				{
+					long _reuse = 0;
+					String _streuse = st.get("reuse");
+					if (_streuse != null)
+					{
+						_reuse = Long.parseLong(_streuse);
+					}
+					if (_reuse > System.currentTimeMillis())
+					{
+						final long remainingTime = (_reuse - System.currentTimeMillis()) / 1000;
+						final int hours = (int) (remainingTime / 3600);
+						final int minutes = (int) ((remainingTime % 3600) / 60);
+						final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.AVAILABLE_AFTER_S1_S2_HOURS_S3_MINUTES);
+						sm.addItemName(GATEKEEPER_TRANSFORMATION_STICK);
+						sm.addNumber(hours);
+						sm.addNumber(minutes);
+						player.sendPacket(sm);
+					}
+					else
+					{
+						st.takeItems(PcInventory.ADENA_ID, PRICE);
+						st.giveItems(GATEKEEPER_TRANSFORMATION_STICK, 1);
+						st.setState(State.STARTED);
+						st.set("reuse", String.valueOf(System.currentTimeMillis() + (HOURS * 3600000)));
+					}
+					
+				}
+				else
+				{
+					return "32477-3.htm";
+				}
+				return null;
+			}
+			case "transform":
+			{
+				if (player.isTransformed())
+				{
+					return null;
+				}
+				player.doCast(TELEPORTER_TRANSFORM.getSkill());
+				return null;
+			}
+		}
+		return event;
+	}
+	
+	@Override
+	public String onFirstTalk(L2Npc npc, L2PcInstance player)
+	{
+		if (player.getQuestState(getName()) == null)
+		{
+			newQuestState(player);
+		}
+		return "32477.htm";
+	}
+	
+	public static void main(String[] args)
+	{
+		new LoveYourGatekeeper();
+	}
+}

+ 40 - 0
L2J_DataPack_BETA/dist/game/data/scripts/events/LoveYourGatekeeper/config.xml

@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<event name="Love Your Gatekeeper" active="27 02 2008-28 02 2008" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../xsd/eventConfig.xsd">
+	<spawnlist>
+		<add npc="32477" x="-80762" y="151118" z="-3043" heading="28672" />
+		<add npc="32477" x="-84046" y="150193" z="-3129" heading="4096" />
+		<add npc="32477" x="-82675" y="151652" z="-3129" heading="46943" />
+		<add npc="32477" x="-12992" y="122818" z="-3117" heading="0" />
+		<add npc="32477" x="-13964" y="121947" z="-2988" heading="32768" />
+		<add npc="32477" x="-14823" y="123752" z="-3117" heading="8192" />
+		<add npc="32477" x="18178" y="145149" z="-3054" heading="7400" />
+		<add npc="32477" x="19185" y="144377" z="-3097" heading="32768" />
+		<add npc="32477" x="19508" y="145753" z="-3086" heading="47999" />
+		<add npc="32477" x="17396" y="170259" z="-3507" heading="30000" />
+		<add npc="32477" x="44150" y="-48708" z="-800" heading="32999" />
+		<add npc="32477" x="44280" y="-47664" z="-792" heading="49167" />
+		<add npc="32477" x="79806" y="55570" z="-1560" heading="0" />
+		<add npc="32477" x="83328" y="55824" z="-1525" heading="32768" />
+		<add npc="32477" x="80986" y="54504" z="-1525" heading="32768" />
+		<add npc="32477" x="83358" y="149223" z="-3400" heading="32768" />
+		<add npc="32477" x="82277" y="148598" z="-3467" heading="0" />
+		<add npc="32477" x="81621" y="148725" z="-3467" heading="32768" />
+		<add npc="32477" x="81680" y="145656" z="-3533" heading="32768" />
+		<add npc="32477" x="117498" y="76630" z="-2695" heading="38000" />
+		<add npc="32477" x="119536" y="76988" z="-2275" heading="40960" />
+		<add npc="32477" x="111585" y="221011" z="-3544" heading="16384" />
+		<add npc="32477" x="107922" y="218094" z="-3675" heading="0" />
+		<add npc="32477" x="114920" y="220020" z="-3632" heading="32768" />
+		<add npc="32477" x="147888" y="-58048" z="-2979" heading="49000" />
+		<add npc="32477" x="147285" y="-56461" z="-2776" heading="11500" />
+		<add npc="32477" x="147120" y="27312" z="-2192" heading="40960" />
+		<add npc="32477" x="147959" y="25695" z="-2000" heading="16384" />
+		<add npc="32477" x="87792" y="-142240" z="-1343" heading="44000" />
+		<add npc="32477" x="87557" y="-140657" z="-1542" heading="20476" />
+		<add npc="32477" x="115933" y="76482" z="-2711" heading="58999" />
+	</spawnlist>
+	<messages>
+		<add type="onEnd" text="Love Your Gatekeeper: Event end!" />
+		<add type="onEnter" text="Love Your Gatekeeper: Event ongoing!" />
+	</messages>
+</event>