valanths1990 Posted September 1, 2012 Posted September 1, 2012 here is the castle manager all in one: Coreside: create a file in model/actor/instance with name L2CastleManageInstance.java and paste the code bellow /* This program 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 2, or (at your option) * any later version. * * This program 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, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA * 02111-1307, USA. * * [url]http://www.gnu.org/copyleft/gpl.html[/url] */ package com.l2jserver.gameserver.model.actor.instance; import com.l2jserver.gameserver.instancemanager.CastleManager; import com.l2jserver.gameserver.model.actor.templates.L2NpcTemplate; import com.l2jserver.gameserver.model.entity.Castle; import com.l2jserver.gameserver.network.serverpackets.ActionFailed; import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage; import com.l2jserver.gameserver.network.serverpackets.SiegeInfo; /** * @author -=DoctorNo=- */ public class L2CastleManageInstance extends L2NpcInstance { public L2CastleManageInstance(int objectId, L2NpcTemplate template) { super(objectId, template); } @Override public void onBypassFeedback(L2PcInstance player, String command) { if(player == null ) return; if (!canTarget(player)) return; else if (command.startsWith("siege_")) { int castleId = 0; if (command.startsWith("siege_gludio")) castleId = 1; else if (command.startsWith("siege_dion")) castleId = 2; else if (command.startsWith("siege_giran")) castleId = 3; else if (command.startsWith("siege_oren")) castleId = 4; else if (command.startsWith("siege_aden")) castleId = 5; else if (command.startsWith("siege_innadril")) castleId = 6; else if (command.startsWith("siege_goddard")) castleId = 7; else if (command.startsWith("siege_rune")) castleId = 8; else if (command.startsWith("siege_schuttgart")) castleId = 9; Castle castle = CastleManager.getInstance().getCastleById(castleId); if(castle != null && castleId != 0) player.sendPacket(new SiegeInfo(castle)); } } @Override public void showChatWindow(L2PcInstance player) { player.sendPacket(ActionFailed.STATIC_PACKET); NpcHtmlMessage html = new NpcHtmlMessage(getObjectId()); html.setFile(player.getHtmlPrefix(), "data/html/mods/CastleManager.htm"); html.replace("%objectId%", String.valueOf(getObjectId())); player.sendPacket(html); } } Datapack: create one html file with name CastleManager.htm in data/html/mods/ and paste the code bellow <html><title>Castle Manager</title> <body> <center> <table> <tr><td align=center><font color="LEVEL">Choose The Castle Manager.</font></td></tr> <tr><td height=10></td></tr> <tr><td align=center><button action="bypass -h npc_%objectId%_siege_giran" value="Giran Castle" width=200 height=27 back="L2UI_CT1.OlympiadWnd_DF_HeroConfirm_Down" fore="L2UI_CT1.OlympiadWnd_DF_HeroConfirm"></td></tr> <tr><td align=center><button action="bypass -h npc_%objectId%_siege_aden" value="Aden Castle" width=200 height=27 back="L2UI_CT1.OlympiadWnd_DF_HeroConfirm_Down" fore="L2UI_CT1.OlympiadWnd_DF_HeroConfirm"></td></tr> <tr><td align=center><button action="bypass -h npc_%objectId%_siege_rune" value="Rune Castle" width=200 height=27 back="L2UI_CT1.OlympiadWnd_DF_HeroConfirm_Down" fore="L2UI_CT1.OlympiadWnd_DF_HeroConfirm"></td></tr> <tr><td align=center><button action="bypass -h npc_%objectId%_siege_oren" value="Oren Castle" width=200 height=27 back="L2UI_CT1.OlympiadWnd_DF_HeroConfirm_Down" fore="L2UI_CT1.OlympiadWnd_DF_HeroConfirm"></td></tr> <tr><td align=center><button action="bypass -h npc_%objectId%_siege_dion" value="Dion Castle" width=200 height=27 back="L2UI_CT1.OlympiadWnd_DF_HeroConfirm_Down" fore="L2UI_CT1.OlympiadWnd_DF_HeroConfirm"></td></tr> <tr><td align=center><button action="bypass -h npc_%objectId%_siege_gludio" value="Gludio Castle" width=200 height=27 back="L2UI_CT1.OlympiadWnd_DF_HeroConfirm_Down" fore="L2UI_CT1.OlympiadWnd_DF_HeroConfirm"></td></tr> <tr><td align=center><button action="bypass -h npc_%objectId%_siege_goddard" value="Goddard Castle" width=200 height=27 back="L2UI_CT1.OlympiadWnd_DF_HeroConfirm_Down" fore="L2UI_CT1.OlympiadWnd_DF_HeroConfirm"></td></tr> <tr><td align=center><button action="bypass -h npc_%objectId%_siege_schuttgart" value="Schuttgart Castle" width=200 height=27 back="L2UI_CT1.OlympiadWnd_DF_HeroConfirm_Down" fore="L2UI_CT1.OlympiadWnd_DF_HeroConfirm"></td></tr> <tr><td align=center><button action="bypass -h npc_%objectId%_siege_innadril" value="Innadril Castle" width=200 height=27 back="L2UI_CT1.OlympiadWnd_DF_HeroConfirm_Down" fore="L2UI_CT1.OlympiadWnd_DF_HeroConfirm"></td></tr> </table> <br><br> <font color=3293F3>L2Total Team</font><br> <img src="L2UI.SquareWhite" width=258 height=1> </body> </center></html> PS. Tested in Beta H5 last rev. pics added: http://i50.tinypic.com/savbit.jpg[/img]
^Wyatt Posted September 1, 2012 Posted September 1, 2012 Simple but useful for high rates servers I guess. Good share.
valanths1990 Posted September 1, 2012 Author Posted September 1, 2012 It can be better, anyway good share! How??? i could not think a better way right now :/
`KnipeX Posted September 1, 2012 Posted September 1, 2012 Excellent share one too valanths :P Keep sharing these good things!
Dulens. Posted September 1, 2012 Posted September 1, 2012 How??? i could not think a better way right now :/ You can do it with 1 java file, not html etc. We will speak tomorrow. I have this code ready to show you.
valanths1990 Posted September 1, 2012 Author Posted September 1, 2012 You can do it with 1 java file, not html etc. We will speak tomorrow. I have this code ready to show you. i dont think that it is better to hard code everything, that's why we have datapack, i didn't hard coded on purpose, cause some ppl are not able to change it, btw thanks for your advice ;)
valanths1990 Posted September 1, 2012 Author Posted September 1, 2012 thank you all for your good word ;)
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