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;

Posted

 

thanks for sharing, my mistake here was of import 
that fis wrong ... 
100% working thanks: D

 

:)

  • 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

    • 🧵 [FREE RELEASE] L2Updater + AntiCheat + Build System + Full Website ⚔️ Presentation After a long time of development, testing, and improvements, I decided to release this project for free to the community. This is a complete package for anyone who wants to build a Lineage II server with a professional-level structure. The idea was not just to create a simple tool, but a full ecosystem that covers everything a modern server needs. 🚀 What’s Included This release contains: ✔ Modern Launcher (Windows) ✔ Smart Update System (FULL + PATCH) ✔ AntiCheat protection (client-side DLL) ✔ Build System for generating updates ✔ Complete Website (register + ranking + pages) Everything is integrated to work together. 🧠 Project Concept The goal of this project is simple: Instead of using outdated launchers or fragmented systems, this package provides: ✔ Organization ✔ Performance ✔ Security ✔ Scalability 🔄 Update System The updater is based on a manifest system, where: ✔ The client checks versions automatically ✔ Only changed files are downloaded (patch system) ✔ Full client is downloaded if needed ✔ Files are validated using hash This results in: Faster updates Lower bandwidth usage Better user experience 🛡️ AntiCheat System The AntiCheat included in this package works directly on the client side. It provides: ✔ Protection against modified clients ✔ Basic cheat detection ✔ File integrity validation ✔ Blocking of suspicious environments This helps maintain a fair and controlled gameplay environment. 🏗️ Build System (Patch Creator) A full build system is included to automate updates. Features: ✔ Detect changed files automatically ✔ Generate FULL packages ✔ Generate PATCH updates ✔ Create manifest.json automatically This allows you to manage updates like: 🌐 Website System A complete website is included, featuring: ✔ Account registration ✔ Player ranking (PvP / PK) ✔ News pages ✔ Integration with the server database 🎯 Why Use This? Many servers fail because they lack structure. This package solves that by providing: ✔ A complete environment ✔ Organized update flow ✔ Integrated systems ✔ Ready-to-use base ⚙️ Technical Details ✔ Launcher developed with modern UI concepts ✔ Patch system based on hash validation ✔ Integration between server, launcher, and website ✔ Expandable architecture 📦 Download 👉 (https://mega.nz/file/AusTnYQK#ZhvArkZpDS7FH60TXd2rg5wT2OxSg9v2pJ2GLrJbyiQ / download link here) 💬 Final Words If your server does not have a system like this today: This project is designed to help you reach a higher level.  
    • Am not interested in your clients. I stopped selling files a long time ago, so you are not my competitor. And the reason no one complains is because every time someone posted about your ‘FILES,’ you CRY TO the forum admins close the topic 😄 and delete the comments as well. Not to mention how many times you were banned here maybe that just happened by mistake, right? 🙂       ps Go fix your packets instead of sitting on MaxCheaters 24/7 you’ll probably get trashed here again soon 🙂
    • You have absolutely no idea how many clients I have, and yet here I don't see anyone else crying but you... very strange, could it be that nobody believes you anymore?
    • The only reason I’m writing under your post is because of my experience with you. Now I see you being very active again, so I think people should know what happened.  And I’m not the only person who has had this kind of experience with you. It’s not about the money. It’s about what you do and how you act.
    • GX-EXT is mine 🙂 What extender did you make? I also made extenders for 286 and GD... you've been offering the same garbage for years... and if you're hounding me, it's because if you put your project next to mine, it will be 100% clear that your project is garbage and mine is the best. Cheers.
  • 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..