Matim Posted August 25, 2011 Posted August 25, 2011 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: 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"); } }
Matim Posted August 25, 2011 Author Posted August 25, 2011 sry , SpecialGatekeeper.java ? no need Scripts? custom/SpecialGatekeeper.java ? Simply look at package.
`NeverMore Posted August 25, 2011 Posted August 25, 2011 haha Nice1 man ..! Good Work , Never seen again sth like that ..! Nice idea ....
Magaiveris Posted August 26, 2011 Posted August 26, 2011 wtf ? [Hidden post: You need 200 posts to see it. You currently have 130.] RapBoy, Comment: nc work...nc share :) Posts: 181 ?
redmoon Posted August 26, 2011 Posted August 26, 2011 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
Justice Posted August 26, 2011 Posted August 26, 2011 when the post was created, wasn't hidden at 200 post true, I do it after his reply. Anyway. Matim awesome work. ;)
FFs Posted August 28, 2011 Posted August 28, 2011 Great gatekeeper for a pvp server who have fram areas! :D I'll use it! thanx a lot!
Discovery Posted August 30, 2011 Posted August 30, 2011 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.
FFs Posted August 30, 2011 Posted August 30, 2011 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 »
Discovery Posted August 31, 2011 Posted August 31, 2011 I saw this GK on the Matim's server presentation, not here.
Zake Posted September 4, 2011 Posted September 4, 2011 1 year ago and the post was created on: « on: August 25, 2011, 01:26:19 AM » he was dreaming for this
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now