Jump to content

[Share]Random spots gatekeeper


Recommended Posts

Well , it's quite easy and totally simple to be coded.

It's usefull only for faction servers i think or if you edit it you can make it to be usefull for pvp servers too for farming zones. Anyway one friend will open faction server and he requested me a gatekeeper that will teleport players to random spots. So here it is.

 

### Eclipse Workspace Patch 1.0
#P aVa Tester
Index: java/net/sf/l2j/gameserver/clientpackets/RequestBypassToServer.java
===================================================================
--- java/net/sf/l2j/gameserver/clientpackets/RequestBypassToServer.java	(revision 9)
+++ java/net/sf/l2j/gameserver/clientpackets/RequestBypassToServer.java	(working copy)
@@ -29,10 +29,12 @@
import net.sf.l2j.gameserver.model.L2CharPosition;
import net.sf.l2j.gameserver.model.L2Object;
import net.sf.l2j.gameserver.model.L2World;
+import net.sf.l2j.gameserver.model.actor.instance.L2CustomTeleporterInstance;
import net.sf.l2j.gameserver.model.actor.instance.L2NpcInstance;
import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
import net.sf.l2j.gameserver.model.entity.L2Event;
import net.sf.l2j.gameserver.serverpackets.ActionFailed;
+import net.sf.l2j.gameserver.serverpackets.CreatureSay;
import net.sf.l2j.gameserver.serverpackets.NpcHtmlMessage;

/**
@@ -86,6 +88,17 @@
			{
				playerHelp(activeChar, _command.substring(12));
			}
+			else if (_command.startsWith("randomTeleport"))
+			{	
+				int[] randomLocations = L2CustomTeleporterInstance.getRandomArray();
+				
+				int coordinateX = randomLocations[0];
+				int coordinateY = randomLocations[1];
+				int coordinateZ = randomLocations[2];
+				
+				activeChar.sendPacket(new CreatureSay(0,Say2.PARTY,"Clarissa","You teleported in a random spawn."));
+				activeChar.teleToLocation(coordinateX, coordinateY, coordinateZ);	
+			}
			else if (_command.startsWith("npc_"))
			{
				if(!activeChar.validateBypass(_command))
Index: java/net/sf/l2j/gameserver/model/actor/instance/L2CustomTeleporterInstance.java
===================================================================
--- java/net/sf/l2j/gameserver/model/actor/instance/L2CustomTeleporterInstance.java	(revision 0)
+++ java/net/sf/l2j/gameserver/model/actor/instance/L2CustomTeleporterInstance.java	(revision 0)
@@ -0,0 +1,61 @@
+
+package net.sf.l2j.gameserver.model.actor.instance;
+
+import javolution.text.TextBuilder;
+
+import net.sf.l2j.gameserver.serverpackets.NpcHtmlMessage;
+import net.sf.l2j.gameserver.templates.L2NpcTemplate;
+import net.sf.l2j.util.Rnd;
+
+/**
+ * This class created for l2j aVatar and it handles
+ * a custom gatekeeper that allows players to teleport
+ * in random locations every time.
+ * 
+ *@author Iratus
+ */
+public class L2CustomTeleporterInstance extends L2NpcInstance
+{
+	
+	private static final int[][] CUSTOM_LOCATIONS =
+	{
+		{60580,-93972,-1351},
+		{109060,-128655,-3084},
+		{-69904,116410,-3519},
+		{-85170,105725,-3585},
+		{81198,75743,03377}
+	};
+
+	public static int[] getRandomArray()
+	{
+		return CUSTOM_LOCATIONS[Rnd.get(CUSTOM_LOCATIONS.length)];
+	}
+	
+	public L2CustomTeleporterInstance(int objectId, L2NpcTemplate template)
+	{
+		super(objectId, template);
+	}
+	
+    @Override
+	public void showChatWindow(L2PcInstance player , int val)
+    {
+    	if(player == null) return;
+    		
+    	TextBuilder tb = new TextBuilder();
+    	NpcHtmlMessage html = new NpcHtmlMessage(this.getObjectId());
+    	
+    	tb.append("<html><head>");
+    	tb.append("<title> Random Gatekeeper </title>");
+    	tb.append("</head><body>");
+    	tb.append("<center>");
+    	tb.append("Welcome visitor <font color=\"F7FE2E\">"+player.getName()+"</font><br>");
+    	tb.append("<font color=\"088A85\">Press the magic button to teleport into a random spawn</font><br>");
+    	tb.append("<button value=\"Teleport Me\" action=\"bypass -h randomTeleport\" width=68 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\">");
+    	tb.append("</center>");
+    	tb.append("</body></html>");
+    	
+    	html.setHtml(tb.toString());
+    	player.sendPacket(html);
+    }
+	
+}

Link to comment
Share on other sites

when i am filling and writing L2CustomTeleporterInstance it says : CANNOT BE RESOLVED. there is no custom teleporter instance in Model.actor.instance. what must i do? thanks . the same does to creature say

Link to comment
Share on other sites

when i am filling and writing L2CustomTeleporterInstance it says : CANNOT BE RESOLVED. there is no custom teleporter instance in Model.actor.instance. what must i do? thanks . the same does to creature say

you should create that class,as you can see in the code.
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...