Jump to content

Recommended Posts

Posted

Special Gatekeeper

 


 

Description: Normal Gatekeeper, but with special ability, to show how many players are inside those locations.

 

It may be easily edited,  for default it has only 3 locations, without subcategories etc, but if u wish may be added.

 

Its quest based, not an instance.

 

Also more statistics like player killers inside etc may be added (...) Sample screenshot:

 

fs6qp.jpg

 


 

package custom.SpecialGatekeeper;

import com.l2jarchid.Config;
import com.l2jarchid.gameserver.instancemanager.ZoneManager;
import com.l2jarchid.gameserver.model.actor.L2Character;
import com.l2jarchid.gameserver.model.actor.L2Npc;
import com.l2jarchid.gameserver.model.actor.L2Player;
import com.l2jarchid.gameserver.model.quest.Quest;
import com.l2jarchid.gameserver.model.quest.QuestState;
import com.l2jarchid.gameserver.model.zone.L2ZoneType;

/**
* @author Matim
* <br>Special Gatekeeper NPC.
* <br>Show current players count from zone.
* <br>This code may be easily edited.
* <br>By default it has few arenas teleports.
*/
public class SpecialGatekeeper extends Quest
{
protected static L2Player player;

private final static String qn = "SpecialGatekeeper";
private final static int NPC = Config.SPECIAL_GK_NPC_ID;

public SpecialGatekeeper(int questId, String name, String descr) 
{
	super(questId, name, descr);
	addFirstTalkId(NPC);
	addStartNpc(NPC);
	addTalkId(NPC);
}

@Override
public String onAdvEvent(String event, L2Npc npc, L2Player player)
{
	String htmltext = "";

	if(event.equalsIgnoreCase("1"))
		player.teleToLocation(73890, 142656, -3778);
	else if (event.equalsIgnoreCase("2"))
		player.teleToLocation(-86979, 142402, -3643);
	else if (event.equalsIgnoreCase("3"))
		player.teleToLocation(147451, 46728, -3410);
	else if (event.equalsIgnoreCase("4"))
		player.teleToLocation(12312, 182752, -3558);
	else	
		htmltext = "Error, check whole GK code!";
	return htmltext;
}

@Override
public String onFirstTalk(L2Npc npc, L2Player player)
{
	String htmltext = "";
	QuestState qs = player.getQuestState(qn);
	if (qs == null)
		qs = newQuestState(player);

	htmltext = "<html><title>Special Gatekeeper</title><head><body><center>" +
			   "<br><img src=l2ui.bbs_lineage2 height=16 width=80>" +
			   "<font color=AAAAAA>Special Gatekeeper</font><br>" +
                   "<img src=L2UI_CH3.herotower_deco width=256 height=32>" +
                   
                   "Players Inside: <font color=\"LEVEL\">" + getPlayerInsideCount(11600) + "</font>" +
                   "<button value=\"Aden\" action=\"bypass -h Quest SpecialGatekeeper 1\" back=\"L2UI_ch3.bigbutton_over\" fore=\"L2UI_ch3.bigbutton\" width=95 height=21><br>" +
                   
                   "Players Inside: <font color=\"LEVEL\">" + getPlayerInsideCount(10500) + "</font>" +
                   "<button value=\"Giran\" action=\"bypass -h Quest SpecialGatekeeper 2\" back=\"L2UI_ch3.bigbutton_over\" fore=\"L2UI_ch3.bigbutton\" width=95 height=21><br>" +
                   
                   "Players Inside: <font color=\"LEVEL\">" + getPlayerInsideCount(11012) + "</font>" +
                   "<button value=\"MOS\" action=\"bypass -h Quest SpecialGatekeeper 3\" back=\"L2UI_ch3.bigbutton_over\" fore=\"L2UI_ch3.bigbutton\" width=95 height=21><br>" +
                   
                   "Players Inside: <font color=\"LEVEL\">" + getPlayerInsideCount(11013) + "</font>" +
                   "<button value=\"VARKA\" action=\"bypass -h Quest SpecialGatekeeper 4\" back=\"L2UI_ch3.bigbutton_over\" fore=\"L2UI_ch3.bigbutton\" width=95 height=21><br>" +
			   
			   "Players Inside: <font color=\"PI\">" + getPlayerInsideCount(11013) + "</font>" +
                   "<button value=\"VARKA\" action=\"bypass -h Quest SpecialGatekeeper 4\" back=\"L2UI_ch3.bigbutton_over\" fore=\"L2UI_ch3.bigbutton\" width=95 height=21><br>" +

			   "<font color=\"cc9900\"><img src=\"L2UI_CH3.herotower_deco\" width=256 height=32></font><br1></center></body></head></html>";
			   
	return htmltext;
}

/**
 * @param zoneId
 * @return player count from given zone ID
 */
public static int getPlayerInsideCount(int zoneId)
{
	int i = 0;
	for (L2ZoneType zone : ZoneManager.getInstance().getAllZones())
		if (zone.getId() == zoneId)
		{
			for (L2Character character : zone.getCharactersInside().values())
				if (character instanceof L2Player)
					i++;
				return i;
		}
	return -1;
}

public static void main(String[] args)
{
	new SpecialGatekeeper(-1, qn, "SpecialGatekeeper");
}
}

Posted

sry , SpecialGatekeeper.java ? no need Scripts? custom/SpecialGatekeeper.java ?

 

Simply look at package.

Posted

wtf ?

 

[Hidden post: You need 200 posts to see it. You currently have 130.]

 

RapBoy,

Comment: nc work...nc share :)

Posts: 181

?

 

 

when the post was created, wasn't hidden at 200 post

Posted

when the post was created, wasn't hidden at 200 post

 

true, I do it after his reply.

 

Anyway. Matim awesome work. ;)

Posted

Matim, i haven't got 200 posts. Can u give me link to this share? I'll be very happy. I saw this gk 1 year ago and it was very nice.

 

1 year ago and the post was created on:

« on: August 25, 2011, 01:26:19 AM »

 

 

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...