Jump to content

Recommended Posts

Posted (edited)

there a lot of posts like this but anyway ;D

u use .castle command and it shows up a html with all the castles so u can join in a siege

 

gameserver/handler/voicedcommandhandlers

 

create this

package com.l2jfrozen.gameserver.handler.voicedcommandhandlers;

import javolution.text.TextBuilder;

import com.l2jfrozen.gameserver.handler.IVoicedCommandHandler;
import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance;
import com.l2jfrozen.gameserver.network.serverpackets.NpcHtmlMessage;

/**
 * @author te0x
 */
public class CastleManagersVCmd implements IVoicedCommandHandler
{
       private static final String[] VOICED_COMMANDS =
       {
               "castle",
       };
      
       @Override
       public boolean useVoicedCommand(String command, L2PcInstance activeChar, String target)
       {
               if (command.startsWith("castle")) {
                       sendHtml(activeChar);
               }
               return true;
       }
      
       private void sendHtml(L2PcInstance activeChar)
       {
TextBuilder tb = new TextBuilder();
NpcHtmlMessage html = new NpcHtmlMessage(1);

tb.append("<html><head><title>Castle Manager</title></head>");
tb.append("<body>");      
tb.append("<center>");
tb.append("<table width=\"250\" cellpadding=\"5\" bgcolor=\"999999\">");
tb.append("<tr>");
tb.append("<td align=\"center\"><font color=\"FF4400\">Castles Panel</font>");
tb.append("<br1><font color=\"333333\">An easy way to participate in a castle siege</font>");
tb.append("<br1><font color=\"333333\">Be the Ruler!</font></td>");
tb.append("</tr>");
tb.append("</table>");
tb.append("</center>");
tb.append("<br>");
tb.append("<img src=\"l2ui.squaregray\" width=\"300\" height=\"1\">");
tb.append("<br>");
tb.append("<center>");
tb.append("<button value=\"Giran\" action=\"bypass -h giran\" width=75 height=21 back=\"L2UI_ch3.Btn1_normalOn\" fore=\"L2UI_ch3.Btn1_normal\">");
tb.append("<table>");
tb.append("<tr><td><button value=\"Aden\" action=\"bypass -h aden\" width=75 height=21 back=\"L2UI_ch3.Btn1_normalOn\" fore=\"L2UI_ch3.Btn1_normal\"></td><td><button value=\"Rune\" action=\"bypass -h rune\" width=75 height=21 back=\"L2UI_ch3.Btn1_normalOn\" fore=\"L2UI_ch3.Btn1_normal\"></td></tr>");
tb.append("<tr><td><button value=\"Goddard\" action=\"bypass -h goddard\" width=75 height=21 back=\"L2UI_ch3.Btn1_normalOn\" fore=\"L2UI_ch3.Btn1_normal\"></td><td><button value=\"Schuttgart\" action=\"bypass -h schuttgart\" width=75 height=21 back=\"L2UI_ch3.Btn1_normalOn\" fore=\"L2UI_ch3.Btn1_normal\"></td></tr>");
tb.append("<tr><td><button value=\"Oren\" action=\"bypass -h oren\" width=75 height=21 back=\"L2UI_ch3.Btn1_normalOn\" fore=\"L2UI_ch3.Btn1_normal\"></td><td><button value=\"Innadril\" action=\"bypass -h innadril\" width=75 height=21 back=\"L2UI_ch3.Btn1_normalOn\" fore=\"L2UI_ch3.Btn1_normal\"></td></tr>");
tb.append("<tr><td><button value=\"Dion\" action=\"bypass -h dion\" width=75 height=21 back=\"L2UI_ch3.Btn1_normalOn\" fore=\"L2UI_ch3.Btn1_normal\"></td><td><button value=\"Gludio\" action=\"bypass -h gludio\" width=75 height=21 back=\"L2UI_ch3.Btn1_normalOn\" fore=\"L2UI_ch3.Btn1_normal\"></td></tr>");
tb.append("</table>");
tb.append("</center>");
tb.append("<br>");
tb.append("<center>");
tb.append("<img src=\"l2ui_ch3.herotower_deco\" width=256 height=32><br>");
tb.append("</center>");
tb.append("<center>");
tb.append("</center>");
tb.append("</body></html>");

html.setHtml(tb.toString());
activeChar.sendPacket(html);
       }
      
       @Override
       public String[] getVoicedCommandList()
       {
               return VOICED_COMMANDS;
       }
} 

now network/clientpackets/RequestBypassToServer.java

put the import 


import com.l2jfrozen.gameserver.network.serverpackets.SiegeInfo;

import com.l2jfrozen.gameserver.managers.CastleManager;

import com.l2jfrozen.gameserver.model.entity.siege.Castle;

 

find this

			else if (_command.startsWith("OlympiadArenaChange"))
			{
				Olympiad.bypassChangeArena(_command, activeChar);
			}

below add these

			else if (_command.startsWith("gludio"))
			{
				int castleId = 1;
                Castle castle = CastleManager.getInstance().getCastleById(castleId);
                activeChar.sendPacket(new SiegeInfo(castle));
			}
			else if (_command.startsWith("dion"))
			{
				int castleId = 2;
                Castle castle = CastleManager.getInstance().getCastleById(castleId);
                activeChar.sendPacket(new SiegeInfo(castle));
			}
			else if (_command.startsWith("giran"))
			{
				int castleId = 3;
                Castle castle = CastleManager.getInstance().getCastleById(castleId);
                activeChar.sendPacket(new SiegeInfo(castle));
			}
			else if (_command.startsWith("oren"))
			{
				int castleId = 4;
                Castle castle = CastleManager.getInstance().getCastleById(castleId);
                activeChar.sendPacket(new SiegeInfo(castle));
			}
			else if (_command.startsWith("aden"))
			{
				int castleId = 5;
                Castle castle = CastleManager.getInstance().getCastleById(castleId);
                activeChar.sendPacket(new SiegeInfo(castle));
			}
			else if (_command.startsWith("innadril"))
			{
				int castleId = 6;
                Castle castle = CastleManager.getInstance().getCastleById(castleId);
                activeChar.sendPacket(new SiegeInfo(castle));
			}
			else if (_command.startsWith("goddard"))
			{
				int castleId = 7;
                Castle castle = CastleManager.getInstance().getCastleById(castleId);
                activeChar.sendPacket(new SiegeInfo(castle));
			}
			else if (_command.startsWith("rune"))
			{
				int castleId = 8;
                Castle castle = CastleManager.getInstance().getCastleById(castleId);
                activeChar.sendPacket(new SiegeInfo(castle));
			}
			else if (_command.startsWith("schuttgart"))
			{
				int castleId = 9;
                Castle castle = CastleManager.getInstance().getCastleById(castleId);
                activeChar.sendPacket(new SiegeInfo(castle));
			}

propably there is a better way to do this but this works also ^^

 

dont forget to register the voicedcommand. thats all ;D

Edited by te0x
Posted (edited)

here gave the error would not have to create a method in pcinstance?

int castleId = 9;
                Castle castle = CastleManager.getInstance().getCastleById(castleId);
                activeChar.sendPacket(new SiegeInfo(castle));
Edited by Wallisteer
Posted

 

here gave the error would not have to create a method in pcinstance?

int castleId = 9;
                Castle castle = CastleManager.getInstance().getCastleById(castleId);
                activeChar.sendPacket(new SiegeInfo(castle));

show our error here

Posted (edited)
the import error is thus lacking 
bele has created the most import error in this line here 
 
getCastleById 
 
 
 
unable to fix the error, with the help of eclipse 
 
compiled usual but then when I the command opens the window html 
 
al when I click the error in the console looks
 
eeefe.png

 

 

idiomta'm sorry the brasilheiro

Edited by Wallisteer
Posted

You do not need 10 times Castle castle = CastleManager.getInstance().getCastleById(castleId); .. only one line is enough..

Posted (edited)

well i forgot the imports

 

import com.l2jfrozen.gameserver.network.serverpackets.SiegeInfo;

import com.l2jfrozen.gameserver.managers.CastleManager;

import com.l2jfrozen.gameserver.model.entity.siege.Castle;

 

well try it and tell me

Edited by te0x
Posted (edited)

You do not need 10 times Castle castle = CastleManager.getInstance().getCastleById(castleId); .. only one line is enough..

actually now i am learning.. thats why they are badly coded ;D

thanks btw

Edited by te0x
Posted

You do not need 10 times Castle castle = CastleManager.getInstance().getCastleById(castleId); .. only one line is enough..

 

did not quite understand ... 
 

I got this error

 

eeefe.png

Posted

 

did not quite understand ... 
 

I got this error

 

eeefe.png

 

try to use the imports 

import com.l2jfrozen.gameserver.network.serverpackets.SiegeInfo;

import com.l2jfrozen.gameserver.managers.CastleManager;

import com.l2jfrozen.gameserver.model.entity.siege.Castle;

  • 2 weeks later...
Posted

1. convert the method to static
2. WTF is this?

tb.append("</center>");
tb.append("<center>");
tb.append("</center>");
tb.append("</body></html>");

3. you're supposed to use StringBuilder instead of TextBuilder

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 account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Posts

    • L2 Pearl — Fresh Interlude Lineage 2 Server L2 Pearl is a fresh Interlude Lineage 2 server focused on fair progression, competitive PvP and long-term gameplay. Every player starts from zero, with a clean economy, balanced progression and a strong focus on active community and clan gameplay. Server Timeline Account Creation: 29 September 2026 Open Beta: 2 October 2026 Grand Opening: 9 October 2026 First Seal Validation: 23 October 2026 First Mammon Appearance: 23 October 2026 First Olympiad Match: 23 October 2026 Mammon A-Grade Services: 24–25 October 2026 First Castle Siege: 25 October 2026 Open Beta progress will be wiped before the official launch. Main Features Interlude Chronicle with Classic GUI XP / SP x5 Adena x3 General Drop x2 Spoil x3 Key Materials and Recipes x2 Quest Item Drop x2 Maximum Level 80 Up to 3 Subclasses Offline Shops Full Geodata with Pathnodes Events available from Level 20 One box per PC Two boxes with VIP .menu System The .menu command gives players quick access to useful quality-of-life features: Block unwanted buffs Block system messages Delevel your character Set up and manage an offline shop Enable automatic HP potions Enable automatic CP potions Configure personal gameplay preferences The system is designed to make everyday gameplay easier while keeping the classic Interlude experience intact. Events and Rewards Events are available from Level 20 and include: Team vs Team Capture the Flag Deathmatch Special Live Events Players will receive full buffs during events, allowing everyone to focus on teamwork and PvP. By participating in events, players can earn Glittering Medals and exchange them for event-related rewards. Rates and Economy XP / SP: x5 Adena: x3 General Drop: x2 Spoil: x3 Key Materials and Recipes: x2 Quest Item Drop: x2 Equipment: x1 Quest Rewards: x1 Raid and Epic Drops: x1 Equipment and major rewards remain at x1 to preserve their value and keep farming, crafting, trading and party play meaningful. Enchant and Progression Safe Enchant: +3 Maximum Weapon Enchant: +16 Maximum Armor Enchant: +10 Normal Scroll Success Rate: 55% Blessed Scroll Success Rate: 65% 1st and 2nd Class Changes: Free 3rd Class Change: Quest or donation Nobless: Quest or donation Barakiel required for the Nobless quest PvP and Endgame Content Olympiad Seven Signs Mammon Services Castle Sieges Weekly Sieges Team vs Team Capture the Flag Deathmatch Special Live Events Fair Play No Pay-to-Win shop Dedicated anti-cheat protection Active GM support Clean economy from launch Progression based on effort, teamwork and skill L2 Pearl is built for players who want a fresh start, meaningful progression and a competitive environment where clans and individuals can build their own reputation. Create your account from 29 September, invite your friends and prepare your clan. The gates of L2 Pearl open on 9 October 2026.   Website: www.l2pearl.com
    • Πάντως πρέπει να υπάρχει ακόμα πολύ κόμπλεξ εδώ μέσα.     εδώ τα μισά είναι άσχετα. Θα μπορούσε να αφήσει τουλάχιστον ένα reply.   Κάτι τέτοια είναι που μου σπαν τα νεύρα.   Χάρηκα πάντως που σας είδα.   @Karaκαι δικό σου σχόλιο πρέπει να διέγραψαν .   
    • Buying & Selling WOW forever gold scammers and fake MM don't write me. I'll go first only if you have a very good rating and in small steps trade. [💰] Payment [💰] USDT Crypto [all] ~ Binance ~ PayPal ! ~ DISCORD: rmtgold
    • 🚀 All subscription services running smoothly with 100% uptime. Grab your tools from our verified store!
  • Topics

×
×
  • Create New...

Important Information

This community uses essential cookies to function properly. Non-essential cookies and third-party services are used only with your consent. Read our Privacy Policy and We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..