ExCaLiBuR® Posted June 5, 2014 Posted June 5, 2014 /* 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. * * http://www.gnu.org/copyleft/gpl.html */ package com.l2jfrozen.gameserver.model.actor.instance; import com.l2jfrozen.gameserver.ai.CtrlIntention; import com.l2jfrozen.gameserver.ai.L2CharacterAI; import com.l2jfrozen.gameserver.managers.CastleManager; import com.l2jfrozen.gameserver.model.entity.siege.Castle; import com.l2jfrozen.gameserver.network.serverpackets.*; import com.l2jfrozen.gameserver.templates.L2NpcTemplate; import javolution.text.TextBuilder; // Referenced classes of package com.l2jfrozen.gameserver.model.actor.instance: // L2FolkInstance, L2PcInstance public class L2SiegeRegisterInstance extends L2FolkInstance { public L2SiegeRegisterInstance(int objectId, L2NpcTemplate template) { super(objectId, template); } public void onAction(L2PcInstance player) { if(!canTarget(player)) return; player.setLastFolkNPC(this); if(this != player.getTarget()) { player.setTarget(this); MyTargetSelected my = new MyTargetSelected(getObjectId(), 0); player.sendPacket(my); my = null; player.sendPacket(new ValidateLocation(this)); } else if(!canInteract(player)) player.getAI().setIntention(CtrlIntention.AI_INTENTION_INTERACT, this); else showHtmlWindow(player); player.sendPacket(ActionFailed.STATIC_PACKET); } public void onBypassFeedback(L2PcInstance player, String command) { if(command.startsWith("gludio_castle")) showSiegeInfoWindow(player, 1); else if(command.startsWith("dion_castle")) showSiegeInfoWindow(player, 2); else if(command.startsWith("giran_castle")) showSiegeInfoWindow(player, 3); else if(command.startsWith("oren_castle")) showSiegeInfoWindow(player, 4); else if(command.startsWith("aden_castle")) showSiegeInfoWindow(player, 5); else if(command.startsWith("innadril_castle")) showSiegeInfoWindow(player, 6); else if(command.startsWith("goddard_castle")) showSiegeInfoWindow(player, 7); else if(command.startsWith("rune_castle")) showSiegeInfoWindow(player, 8); else if(command.startsWith("schuttgart_castle")) showSiegeInfoWindow(player, 9); else super.onBypassFeedback(player, command); } public void showHtmlWindow(L2PcInstance activeChar) { NpcHtmlMessage nhm = new NpcHtmlMessage(5); TextBuilder replyMSG = new TextBuilder(""); replyMSG.append("<html><body><center><title>L2 ..........</title>"); replyMSG.append("<br><img src=\"l2font-e.replay_logo-e\" width=255 height=60>"); replyMSG.append("<br><br>Welcome adventurer."); replyMSG.append("<br><br>Register your clan to conquer a castle and Good luck."); replyMSG.append("<br><br><img src=\"L2UI_CH3.onscrmsg_pattern01_2\" width=300 height=32>"); replyMSG.append("<table width=280><tr>"); replyMSG.append((new StringBuilder()).append("<td><button value=Giran action=\"bypass -h npc_").append(getObjectId()).append("_giran_castle\" width=75 height=21 back=L2UI_ch3.Btn1_normalOn fore=L2UI_ch3.Btn1_normalOn></td>").toString()); replyMSG.append((new StringBuilder()).append("<td><button value=Aden action=\"bypass -h npc_").append(getObjectId()).append("_aden_castle\" width=75 height=21 back=L2UI_ch3.Btn1_normalOn fore=L2UI_ch3.Btn1_normalOn></td>").toString()); replyMSG.append((new StringBuilder()).append("<td><button value=Rune action=\"bypass -h npc_").append(getObjectId()).append("_rune_castle\" width=75 height=21 back=L2UI_ch3.Btn1_normalOn fore=L2UI_ch3.Btn1_normalOn></td>").toString()); replyMSG.append("</tr></table>"); replyMSG.append("<br><br>"); replyMSG.append("<table width=280><tr>"); replyMSG.append((new StringBuilder()).append("<td><button value=Goddard action=\"bypass -h npc_").append(getObjectId()).append("_goddard_castle\" width=75 height=21 back=L2UI_ch3.Btn1_normalOn fore=L2UI_ch3.Btn1_normalOn></td>").toString()); replyMSG.append((new StringBuilder()).append("<td><button value=Dion action=\"bypass -h npc_").append(getObjectId()).append("_dion_castle\" width=75 height=21 back=L2UI_ch3.Btn1_normalOn fore=L2UI_ch3.Btn1_normalOn></td>").toString()); replyMSG.append((new StringBuilder()).append("<td><button value=schuttgart action=\"bypass -h npc_").append(getObjectId()).append("_schuttgart_castle\" width=75 height=21 back=L2UI_ch3.Btn1_normalOn fore=L2UI_ch3.Btn1_normalOn></td>").toString()); replyMSG.append("</tr></table>"); replyMSG.append("<br><br>"); replyMSG.append("<table width=280><tr>"); replyMSG.append((new StringBuilder()).append("<td><button value=Innadril action=\"bypass -h npc_").append(getObjectId()).append("_innadril_castle\" width=75 height=21 back=L2UI_ch3.Btn1_normalOn fore=L2UI_ch3.Btn1_normalOn></td>").toString()); replyMSG.append((new StringBuilder()).append("<td><button value=Oren action=\"bypass -h npc_").append(getObjectId()).append("_oren_castle\" width=75 height=21 back=L2UI_ch3.Btn1_normalOn fore=L2UI_ch3.Btn1_normalOn></td>").toString()); replyMSG.append((new StringBuilder()).append("<td><button value=Gludio action=\"bypass -h npc_").append(getObjectId()).append("_gludio_castle\" width=75 height=21 back=L2UI_ch3.Btn1_normalOn fore=L2UI_ch3.Btn1_normalOn></td>").toString()); replyMSG.append("</tr></table>"); replyMSG.append("<br><img src=\"L2UI_CH3.onscrmsg_pattern01_1\" width=300 height=32>"); nhm.setHtml(replyMSG.toString()); activeChar.sendPacket(nhm); } public void showSiegeInfoWindow(L2PcInstance player, int castleId) { Castle c = CastleManager.getInstance().getCastleById(castleId); if(c != null) player.sendPacket(new SiegeInfo(c)); } } 1
WolfGiaS3na Posted June 5, 2014 Posted June 5, 2014 stop with these siege npc - menus , i get bored :P 5 siege npc on each page :.
xdem Posted June 5, 2014 Posted June 5, 2014 /* 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. * * http://www.gnu.org/copyleft/gpl.html */ package com.l2jfrozen.gameserver.model.actor.instance; import com.l2jfrozen.gameserver.ai.CtrlIntention; import com.l2jfrozen.gameserver.ai.L2CharacterAI; import com.l2jfrozen.gameserver.managers.CastleManager; import com.l2jfrozen.gameserver.model.entity.siege.Castle; import com.l2jfrozen.gameserver.network.serverpackets.*; import com.l2jfrozen.gameserver.templates.L2NpcTemplate; import javolution.text.TextBuilder; // Referenced classes of package com.l2jfrozen.gameserver.model.actor.instance: // L2FolkInstance, L2PcInstance public class L2SiegeRegisterInstance extends L2FolkInstance { public L2SiegeRegisterInstance(int objectId, L2NpcTemplate template) { super(objectId, template); } public void onAction(L2PcInstance player) { if(!canTarget(player)) return; player.setLastFolkNPC(this); if(this != player.getTarget()) { player.setTarget(this); MyTargetSelected my = new MyTargetSelected(getObjectId(), 0); player.sendPacket(my); my = null; player.sendPacket(new ValidateLocation(this)); } else if(!canInteract(player)) player.getAI().setIntention(CtrlIntention.AI_INTENTION_INTERACT, this); else showHtmlWindow(player); player.sendPacket(ActionFailed.STATIC_PACKET); } public void onBypassFeedback(L2PcInstance player, String command) { if(command.startsWith("gludio_castle")) showSiegeInfoWindow(player, 1); else if(command.startsWith("dion_castle")) showSiegeInfoWindow(player, 2); else if(command.startsWith("giran_castle")) showSiegeInfoWindow(player, 3); else if(command.startsWith("oren_castle")) showSiegeInfoWindow(player, 4); else if(command.startsWith("aden_castle")) showSiegeInfoWindow(player, 5); else if(command.startsWith("innadril_castle")) showSiegeInfoWindow(player, 6); else if(command.startsWith("goddard_castle")) showSiegeInfoWindow(player, 7); else if(command.startsWith("rune_castle")) showSiegeInfoWindow(player, 8); else if(command.startsWith("schuttgart_castle")) showSiegeInfoWindow(player, 9); else super.onBypassFeedback(player, command); } public void showHtmlWindow(L2PcInstance activeChar) { NpcHtmlMessage nhm = new NpcHtmlMessage(5); TextBuilder replyMSG = new TextBuilder(""); replyMSG.append("<html><body><center><title>L2 ..........</title>"); replyMSG.append("<br><img src=\"l2font-e.replay_logo-e\" width=255 height=60>"); replyMSG.append("<br><br>Welcome adventurer."); replyMSG.append("<br><br>Register your clan to conquer a castle and Good luck."); replyMSG.append("<br><br><img src=\"L2UI_CH3.onscrmsg_pattern01_2\" width=300 height=32>"); replyMSG.append("<table width=280><tr>"); replyMSG.append((new StringBuilder()).append("<td><button value=Giran action=\"bypass -h npc_").append(getObjectId()).append("_giran_castle\" width=75 height=21 back=L2UI_ch3.Btn1_normalOn fore=L2UI_ch3.Btn1_normalOn></td>").toString()); replyMSG.append((new StringBuilder()).append("<td><button value=Aden action=\"bypass -h npc_").append(getObjectId()).append("_aden_castle\" width=75 height=21 back=L2UI_ch3.Btn1_normalOn fore=L2UI_ch3.Btn1_normalOn></td>").toString()); replyMSG.append((new StringBuilder()).append("<td><button value=Rune action=\"bypass -h npc_").append(getObjectId()).append("_rune_castle\" width=75 height=21 back=L2UI_ch3.Btn1_normalOn fore=L2UI_ch3.Btn1_normalOn></td>").toString()); replyMSG.append("</tr></table>"); replyMSG.append("<br><br>"); replyMSG.append("<table width=280><tr>"); replyMSG.append((new StringBuilder()).append("<td><button value=Goddard action=\"bypass -h npc_").append(getObjectId()).append("_goddard_castle\" width=75 height=21 back=L2UI_ch3.Btn1_normalOn fore=L2UI_ch3.Btn1_normalOn></td>").toString()); replyMSG.append((new StringBuilder()).append("<td><button value=Dion action=\"bypass -h npc_").append(getObjectId()).append("_dion_castle\" width=75 height=21 back=L2UI_ch3.Btn1_normalOn fore=L2UI_ch3.Btn1_normalOn></td>").toString()); replyMSG.append((new StringBuilder()).append("<td><button value=schuttgart action=\"bypass -h npc_").append(getObjectId()).append("_schuttgart_castle\" width=75 height=21 back=L2UI_ch3.Btn1_normalOn fore=L2UI_ch3.Btn1_normalOn></td>").toString()); replyMSG.append("</tr></table>"); replyMSG.append("<br><br>"); replyMSG.append("<table width=280><tr>"); replyMSG.append((new StringBuilder()).append("<td><button value=Innadril action=\"bypass -h npc_").append(getObjectId()).append("_innadril_castle\" width=75 height=21 back=L2UI_ch3.Btn1_normalOn fore=L2UI_ch3.Btn1_normalOn></td>").toString()); replyMSG.append((new StringBuilder()).append("<td><button value=Oren action=\"bypass -h npc_").append(getObjectId()).append("_oren_castle\" width=75 height=21 back=L2UI_ch3.Btn1_normalOn fore=L2UI_ch3.Btn1_normalOn></td>").toString()); replyMSG.append((new StringBuilder()).append("<td><button value=Gludio action=\"bypass -h npc_").append(getObjectId()).append("_gludio_castle\" width=75 height=21 back=L2UI_ch3.Btn1_normalOn fore=L2UI_ch3.Btn1_normalOn></td>").toString()); replyMSG.append("</tr></table>"); replyMSG.append("<br><img src=\"L2UI_CH3.onscrmsg_pattern01_1\" width=300 height=32>"); nhm.setHtml(replyMSG.toString()); activeChar.sendPacket(nhm); } public void showSiegeInfoWindow(L2PcInstance player, int castleId) { Castle c = CastleManager.getInstance().getCastleById(castleId); if(c != null) player.sendPacket(new SiegeInfo(c)); } } well coded
Recommended Posts