Jump to content

[Npc] Custom Siege Register


Recommended Posts

/* 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));
    }
}

  • Upvote 1
Link to comment
Share on other sites

 

/* 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

 

b33d7ae73938d5d2acd44c72d5fa96da.png

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.


×
×
  • Create New...