Jump to content

Recommended Posts

Posted

.menu command based on elfo's /menu

i still cant get the difference between .command and /command but ppl prefer commands with .

### Eclipse Workspace Patch 1.0
#P L2jFrozen_GameServer
Index: head-src/com/l2jfrozen/gameserver/handler/itemhandlers/BeastSoulShot.java
===================================================================
--- head-src/com/l2jfrozen/gameserver/handler/itemhandlers/BeastSoulShot.java	(revision 986)
+++ head-src/com/l2jfrozen/gameserver/handler/itemhandlers/BeastSoulShot.java	(working copy)
@@ -156,7 +156,8 @@
 
 		// Pet uses the power of spirit.
 		activeOwner.sendPacket(new SystemMessage(SystemMessageId.PET_USE_THE_POWER_OF_SPIRIT));
-		Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUser(activePet, activePet, 2033, 1, 0, 0), 360000/*600*/);
+		if (!activeOwner.isSSDisabled())
+			Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUser(activePet, activePet, 2033, 1, 0, 0), 360000/*600*/);
 
 		activeOwner = null;
 		activePet = null;
Index: head-src/com/l2jfrozen/gameserver/handler/itemhandlers/FishShots.java
===================================================================
--- head-src/com/l2jfrozen/gameserver/handler/itemhandlers/FishShots.java	(revision 986)
+++ head-src/com/l2jfrozen/gameserver/handler/itemhandlers/FishShots.java	(working copy)
@@ -92,7 +92,8 @@
 		//activeChar.sendPacket(new SystemMessage(SystemMessage.ENABLED_SPIRITSHOT));
 
 		MagicSkillUser MSU = new MagicSkillUser(activeChar, SKILL_IDS[grade], 1, 0, 0);
-		Broadcast.toSelfAndKnownPlayers(activeChar, MSU);
+		if (!activeChar.isSSDisabled())
+			Broadcast.toSelfAndKnownPlayers(activeChar, MSU);
 		MSU = null;
 		activeChar.setTarget(oldTarget);
 
Index: head-src/com/l2jfrozen/gameserver/model/actor/instance/L2PcInstance.java
===================================================================
--- head-src/com/l2jfrozen/gameserver/model/actor/instance/L2PcInstance.java	(revision 986)
+++ head-src/com/l2jfrozen/gameserver/model/actor/instance/L2PcInstance.java	(working copy)
@@ -20222,4 +20222,60 @@
 		}
 		sendSkillList();
 	}
+	
+	private boolean _cantGainXP = false;
+	private boolean _isPartyInvProt = false;
+	private boolean _isInTradeProt = false;
+	private boolean _isSSDisabled = false;
+	private boolean _isInRefusal = false;
+	
+	public boolean isInTradeProt()
+	{
+		return _isInTradeProt;
+	}
+	
+	public void setIsInTradeProt(boolean value)
+	{
+		_isInTradeProt = value;
+	}
+	
+	public boolean isSSDisabled()
+	{
+		return _isSSDisabled;
+	}
+	
+	public void setIsSSDisabled(boolean value)
+	{
+		_isSSDisabled = value;
+	}
+	
+	public boolean isPartyInvProt()
+	{
+		return _isPartyInvProt;
+	}
+	
+	public void setIsPartyInvProt(boolean value)
+	{
+		_isPartyInvProt = value;
+	}
+	
+	public void cantGainXP(boolean b)
+	{
+		_cantGainXP = b;
+	}
+	
+	public boolean cantGainXP()
+	{
+		return _cantGainXP;
+	}
+	
+	public void setInRefusalMode(boolean b)
+	{
+		_isInRefusal = b;
+	}
+	
+	public boolean isInRefusalMode()
+	{
+		return _isInRefusal;
+	}
 }
\ No newline at end of file
Index: head-src/com/l2jfrozen/gameserver/network/clientpackets/RequestJoinParty.java
===================================================================
--- head-src/com/l2jfrozen/gameserver/network/clientpackets/RequestJoinParty.java	(revision 986)
+++ head-src/com/l2jfrozen/gameserver/network/clientpackets/RequestJoinParty.java	(working copy)
@@ -78,6 +78,12 @@
 			return;
 		}
 		
+		if (target.isPartyInvProt())
+		{
+			requestor.sendMessage("You can't invite that player because he is in party protection.");
+			return;
+		}
+		
 		if (target.isInParty())
 		{
 			SystemMessage msg = new SystemMessage(SystemMessageId.S1_IS_ALREADY_IN_PARTY);
Index: head-src/com/l2jfrozen/gameserver/handler/itemhandlers/BlessedSpiritShot.java
===================================================================
--- head-src/com/l2jfrozen/gameserver/handler/itemhandlers/BlessedSpiritShot.java	(revision 986)
+++ head-src/com/l2jfrozen/gameserver/handler/itemhandlers/BlessedSpiritShot.java	(working copy)
@@ -137,7 +137,8 @@
 
 		// Send message to client
 		activeChar.sendPacket(new SystemMessage(SystemMessageId.ENABLED_SPIRITSHOT));
-		Broadcast.toSelfAndKnownPlayersInRadius(activeChar, new MagicSkillUser(activeChar, activeChar, SKILL_IDS[weaponGrade], 1, 0, 0), 360000/*600*/);
+		if (!activeChar.isSSDisabled())
+			Broadcast.toSelfAndKnownPlayersInRadius(activeChar, new MagicSkillUser(activeChar, activeChar, SKILL_IDS[weaponGrade], 1, 0, 0), 360000/*600*/);
 
 		activeChar = null;
 		weaponInst = null;
Index: head-src/com/l2jfrozen/gameserver/handler/VoicedCommandHandler.java
===================================================================
--- head-src/com/l2jfrozen/gameserver/handler/VoicedCommandHandler.java	(revision 986)
+++ head-src/com/l2jfrozen/gameserver/handler/VoicedCommandHandler.java	(working copy)
import com.l2jfrozen.gameserver.handler.voicedcommandhandlers.Wedding;
+import com.l2jfrozen.gameserver.handler.voicedcommandhandlers.Menu;


+registerVoicedCommandHandler( new Menu());

if (Config.BANKING_SYSTEM_ENABLED)
Index: head-src/com/l2jfrozen/gameserver/handler/voicedcommandhandlers/Menu.java
===================================================================
--- head-src/com/l2jfrozen/gameserver/handler/voicedcommandhandlers/Menu.java	(revision 0)
+++ head-src/com/l2jfrozen/gameserver/handler/voicedcommandhandlers/Menu.java	(revision 0)
@@ -0,0 +1,173 @@
/*
 * 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 3 of the License, 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, see <http://www.gnu.org/licenses/>.
 */
package com.l2jfrozen.gameserver.handler.voicedcommandhandlers;

import javolution.text.TextBuilder;

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

public class Menu implements IVoicedCommandHandler
{
	               private final String[] _voicedCommands =
	               {
	                       "menu"
	               };
      
       @Override
       public boolean useVoicedCommand(String command, L2PcInstance activeChar, String target)
       {
               mainHtml(activeChar);
               return true;
       }
      
       public static void mainHtml(L2PcInstance activeChar)
       {
               NpcHtmlMessage nhm = new NpcHtmlMessage(5);
               TextBuilder tb = new TextBuilder("");
              
               tb.append("<html><head><title>Personal Menu</title></head><body>");
               tb.append("<center>");
               tb.append("<table width=\"250\" cellpadding=\"5\" bgcolor=\"000000\">");
               tb.append("<tr>");
               tb.append("<td width=\"45\" valign=\"top\" align=\"center\"><img src=\"L2ui_ch3.menubutton4\" width=\"38\" height=\"38\"></td>");
               tb.append("<td valign=\"top\">Players online <font color=\"FF6600\"> "+L2World.getInstance().getAllPlayers().size()+"</font>");  
               tb.append("<br1><font color=\"00FF00\">"+activeChar.getName()+"</font>, use this menu for everything related to your gameplay.<br1></td>");
               tb.append("</tr>");
               tb.append("</table>");
               tb.append("</center>");
               tb.append("<center>");
               tb.append("<table border=\"1\" width=\"100\" height=\"12\" bgcolor=\"000000\">");
               tb.append("<tr>");
               tb.append("<td width=\"52\">ON</td>");
               tb.append("<td width=\"16\"><button width=16 height=12 back=\"L2UI_CH3.br_bar1_hp\" fore=\"L2UI_CH3.br_bar1_hp\"></td>");
               tb.append("<td><button width=32 height=12 back=\"L2UI_CH3.tutorial_pointer1\" fore=\"L2UI_CH3.tutorial_pointer1\"></td>");
               tb.append("</tr>");
               tb.append("<tr>");
               tb.append("<td width=\"52\">OFF</td>");
               tb.append("<td width=\"16\"><button width=16 height=12 back=\"L2UI_CH3.br_bar1_mp\" fore=\"L2UI_CH3.br_bar1_mp\"></td>");
               tb.append("<td><button width=32 height=12 back=\"L2UI_CH3.tutorial_pointer1\" fore=\"L2UI_CH3.tutorial_pointer1\"></td>");
               tb.append("</tr>");
               tb.append("</table><br>");
               tb.append("<table border=\"1\" width=\"250\" height=\"12\" bgcolor=\"000000\">");
               tb.append("<tr>");
               tb.append("<td align=\"center\" width=\"52\">Buff Protection</td>");
               if(activeChar.isBuffProtected())
               tb.append("<td width=\"16\"><button action=\"bypass -h buffprot\" width=24 height=12 back=\"L2UI_CH3.br_bar1_hp\" fore=\"L2UI_CH3.br_bar1_hp\"></td>");
               if(!activeChar.isBuffProtected())
               tb.append("<td width=\"16\"><button action=\"bypass -h buffprot\" width=24 height=12 back=\"L2UI_CH3.br_bar1_mp\" fore=\"L2UI_CH3.br_bar1_mp\"></td>");
               tb.append("</tr>");
               tb.append("<tr><td width=\"250\"><font color=\"00FF00\">By enabling that you won't be able to recieve ANY buff from another character.</font></td></tr>");
               tb.append("</table>");
                              tb.append("<table border=\"1\" width=\"250\" height=\"12\" bgcolor=\"000000\">");
                              tb.append("<tr>");
                              tb.append("<td align=\"center\" width=\"52\">Personal Message Refusal</td>");
                              if(activeChar.getMessageRefusal())
                              tb.append("<td width=\"16\"><button action=\"bypass -h pmref\" width=24 height=12 back=\"L2UI_CH3.br_bar1_hp\" fore=\"L2UI_CH3.br_bar1_hp\"></td>");
                              if(!activeChar.getMessageRefusal())
                              tb.append("<td width=\"16\"><button action=\"bypass -h pmref\" width=24 height=12 back=\"L2UI_CH3.br_bar1_mp\" fore=\"L2UI_CH3.br_bar1_mp\"></td>");
                              tb.append("</tr>");
                              tb.append("<tr><td width=\"250\"><font color=\"00FF00\">By enabling that you won't be able to recieve ANY pm from another character.</font></td></tr>");
                              tb.append("</table>");
                              tb.append("<table border=\"1\" width=\"250\" height=\"12\" bgcolor=\"000000\">");
                              tb.append("<tr>");
               tb.append("<table border=\"1\" width=\"250\" height=\"12\" bgcolor=\"000000\">");
               tb.append("<tr>");
               tb.append("<td align=\"center\" width=\"52\">Trade Request Protection</td>");
               if(activeChar.isInTradeProt())
               tb.append("<td width=\"16\"><button action=\"bypass -h tradeprot\" width=24 height=12 back=\"L2UI_CH3.br_bar1_hp\" fore=\"L2UI_CH3.br_bar1_hp\"></td>");
               if(!activeChar.isInTradeProt())
               tb.append("<td width=\"16\"><button action=\"bypass -h tradeprot\" width=24 height=12 back=\"L2UI_CH3.br_bar1_mp\" fore=\"L2UI_CH3.br_bar1_mp\"></td>");
               tb.append("</tr>");
               tb.append("<tr><td width=\"250\"><font color=\"00FF00\">By enabling that you won't be able to recieve ANY trade request from another character.</font></td></tr>");
               tb.append("</table>");
               tb.append("<table border=\"1\" width=\"250\" height=\"12\" bgcolor=\"000000\">");
               tb.append("<tr>");
               tb.append("<td align=\"center\" width=\"52\">Soulshot/Spiritshot Effect</td>");
               if(activeChar.isSSDisabled())
               tb.append("<td width=\"16\"><button action=\"bypass -h ssprot\" width=24 height=12 back=\"L2UI_CH3.br_bar1_hp\" fore=\"L2UI_CH3.br_bar1_hp\"></td>");
               if(!activeChar.isSSDisabled())
               tb.append("<td width=\"16\"><button action=\"bypass -h ssprot\" width=24 height=12 back=\"L2UI_CH3.br_bar1_mp\" fore=\"L2UI_CH3.br_bar1_mp\"></td>");
               tb.append("</tr>");
               tb.append("<tr><td width=\"250\"><font color=\"00FF00\">By enabling that you will enchance your pc's performance by disabling your ss effects.</font></td><td align=\"center\" valign=\"middle\"><button action=\"bypass -h page2\" width=16 height=16 back=\"L2UI_CH3.next1\" fore=\"L2UI_CH3.next1\"></td></tr>");
               tb.append("</table>");
              
               tb.append("</center>");
               tb.append("</body></html>");
              
               nhm.setHtml(tb.toString());
               activeChar.sendPacket(nhm);
       }
      
       public static void mainHtml2(L2PcInstance activeChar)
       {
               NpcHtmlMessage nhm = new NpcHtmlMessage(5);
               TextBuilder tb = new TextBuilder("");
              
               tb.append("<html><head><title>Personal Menu</title></head><body>");
               tb.append("<center>");
               tb.append("<table width=\"250\" cellpadding=\"5\" bgcolor=\"000000\">");
               tb.append("<tr>");
               tb.append("<td width=\"45\" valign=\"top\" align=\"center\"><img src=\"L2ui_ch3.menubutton4\" width=\"38\" height=\"38\"></td>");
               tb.append("<td valign=\"top\">Players online <font color=\"FF6600\"> "+L2World.getInstance().getAllPlayers().size()+"</font>"); 
               tb.append("<br1><font color=\"00FF00\">"+activeChar.getName()+"</font>, use this menu for everything related to your gameplay.<br1></td>");
               tb.append("</tr>");
               tb.append("</table>");
               tb.append("</center>");
               tb.append("<center>");
               tb.append("<table border=\"1\" width=\"100\" height=\"12\" bgcolor=\"000000\">");
               tb.append("<tr>");
               tb.append("<td width=\"52\">ON</td>");
               tb.append("<td width=\"16\"><button width=16 height=12 back=\"L2UI_CH3.br_bar1_hp\" fore=\"L2UI_CH3.br_bar1_hp\"></td>");
               tb.append("<td><button width=32 height=12 back=\"L2UI_CH3.tutorial_pointer1\" fore=\"L2UI_CH3.tutorial_pointer1\"></td>");
               tb.append("</tr>");
               tb.append("<tr>");
               tb.append("<td width=\"52\">OFF</td>");
               tb.append("<td width=\"16\"><button width=16 height=12 back=\"L2UI_CH3.br_bar1_mp\" fore=\"L2UI_CH3.br_bar1_mp\"></td>");
               tb.append("<td><button width=32 height=12 back=\"L2UI_CH3.tutorial_pointer1\" fore=\"L2UI_CH3.tutorial_pointer1\"></td>");
               tb.append("</tr>");
               tb.append("</table><br>");
               tb.append("<table border=\"1\" width=\"250\" height=\"12\" bgcolor=\"000000\">");
               tb.append("<tr>");
               tb.append("<td align=\"center\" width=\"52\">Party Invite Protection</td>");
               if(activeChar.isPartyInvProt())
               tb.append("<td width=\"16\"><button action=\"bypass -h partyin\" width=24 height=12 back=\"L2UI_CH3.br_bar1_hp\" fore=\"L2UI_CH3.br_bar1_hp\"></td>");
               if(!activeChar.isPartyInvProt())
               tb.append("<td width=\"16\"><button action=\"bypass -h partyin\" width=24 height=12 back=\"L2UI_CH3.br_bar1_mp\" fore=\"L2UI_CH3.br_bar1_mp\"></td>");
               tb.append("</tr>");
               tb.append("<tr><td width=\"250\"><font color=\"00FF00\">By enabling that you won't be able to recieve ANY party invite from another character.</font></td></tr>");
               tb.append("</table>"); 
               tb.append("<table border=\"1\" width=\"250\" height=\"12\" bgcolor=\"000000\">");
               tb.append("<tr>");
               tb.append("<td align=\"center\" width=\"52\">Exp Gain Protection</td>");
               if(activeChar.cantGainXP())
               tb.append("<td width=\"16\"><button action=\"bypass -h xpnot\" width=24 height=12 back=\"L2UI_CH3.br_bar1_hp\" fore=\"L2UI_CH3.br_bar1_hp\"></td>");
               if(!activeChar.cantGainXP())
               tb.append("<td width=\"16\"><button action=\"bypass -h xpnot\" width=24 height=12 back=\"L2UI_CH3.br_bar1_mp\" fore=\"L2UI_CH3.br_bar1_mp\"></td>");
               tb.append("</tr>");
               tb.append("<tr><td width=\"250\"><font color=\"00FF00\">By enabling that you won't be able to recieve expirience from killing monsters.</font></td><td align=\"center\" valign=\"middle\"><button action=\"bypass -h page1\" width=16 height=16 back=\"L2UI_CH3.back1\" fore=\"L2UI_CH3.next1\"></td></tr>");
               tb.append("</table>"); 
               tb.append("</center>");
               tb.append("</body></html>");
              
               nhm.setHtml(tb.toString());
               activeChar.sendPacket(nhm);
       }
      
       @Override
       public String[] getVoicedCommandList()
       {
               return _voicedCommands;
       }
}
\ No newline at end of file
Index: head-src/com/l2jfrozen/gameserver/handler/itemhandlers/SpiritShot.java
===================================================================
--- head-src/com/l2jfrozen/gameserver/handler/itemhandlers/SpiritShot.java	(revision 986)
+++ head-src/com/l2jfrozen/gameserver/handler/itemhandlers/SpiritShot.java	(working copy)
@@ -128,7 +128,8 @@
 
 		// Send message to client
 		activeChar.sendPacket(new SystemMessage(SystemMessageId.ENABLED_SPIRITSHOT));
-		Broadcast.toSelfAndKnownPlayersInRadius(activeChar, new MagicSkillUser(activeChar, activeChar, SKILL_IDS[weaponGrade], 1, 0, 0), 360000/*600*/);
+		if (!activeChar.isSSDisabled())
+			Broadcast.toSelfAndKnownPlayersInRadius(activeChar, new MagicSkillUser(activeChar, activeChar, SKILL_IDS[weaponGrade], 1, 0, 0), 360000/*600*/);
 
 		activeChar = null;
 	}
Index: head-src/com/l2jfrozen/gameserver/network/clientpackets/TradeRequest.java
===================================================================
--- head-src/com/l2jfrozen/gameserver/network/clientpackets/TradeRequest.java	(revision 986)
+++ head-src/com/l2jfrozen/gameserver/network/clientpackets/TradeRequest.java	(working copy)
@@ -202,7 +202,13 @@
 			player.sendPacket(new SystemMessage(SystemMessageId.TARGET_TOO_FAR));
 			return;
 		}
-
+		
+		if (partner.isInTradeProt())
+		{
+			player.sendMessage(partner.getName() + " is in Trade Protection Mode");
+			return;
+		}
+		
 		// Alt game - Karma punishment
 		if(!Config.ALT_GAME_KARMA_PLAYER_CAN_TRADE && (player.getKarma() > 0 || partner.getKarma() > 0))
 		{
Index: head-src/com/l2jfrozen/gameserver/handler/itemhandlers/SoulShots.java
===================================================================
--- head-src/com/l2jfrozen/gameserver/handler/itemhandlers/SoulShots.java	(revision 986)
+++ head-src/com/l2jfrozen/gameserver/handler/itemhandlers/SoulShots.java	(working copy)
@@ -142,7 +142,8 @@
 
 		// Send message to client
 		activeChar.sendPacket(new SystemMessage(SystemMessageId.ENABLED_SOULSHOT));
-		Broadcast.toSelfAndKnownPlayersInRadius(activeChar, new MagicSkillUser(activeChar, activeChar, SKILL_IDS[weaponGrade], 1, 0, 0), 360000/*600*/);
+		if (!activeChar.isSSDisabled())
+			Broadcast.toSelfAndKnownPlayersInRadius(activeChar, new MagicSkillUser(activeChar, activeChar, SKILL_IDS[weaponGrade], 1, 0, 0), 360000/*600*/);
 
 		activeChar = null;
 	}
Index: head-src/com/l2jfrozen/gameserver/model/actor/stat/PcStat.java
===================================================================
--- head-src/com/l2jfrozen/gameserver/model/actor/stat/PcStat.java	(revision 986)
+++ head-src/com/l2jfrozen/gameserver/model/actor/stat/PcStat.java	(working copy)
@@ -58,6 +58,9 @@
 		//Player is Gm and access level is below or equal to canGainExp and is in party, don't give Xp
 		if(!getActiveChar().getAccessLevel().canGainExp() && getActiveChar().isInParty())
 			return false;
+		
+		if (activeChar.cantGainXP())
+			return false;
 
 		if(!super.addExp(value))
 			return false;
@@ -111,6 +114,9 @@
 		L2PcInstance activeChar = getActiveChar();
 		if(!activeChar.getAccessLevel().canGainExp() && activeChar.isInParty())
 			return false;
+		
+		if (activeChar.cantGainXP())
+			return false;
 
 		// if this player has a pet that takes from the owner's Exp, give the pet Exp now
 
Index: head-src/com/l2jfrozen/gameserver/network/clientpackets/RequestBypassToServer.java
===================================================================
--- head-src/com/l2jfrozen/gameserver/network/clientpackets/RequestBypassToServer.java	(revision 986)
+++ head-src/com/l2jfrozen/gameserver/network/clientpackets/RequestBypassToServer.java	(working copy)
@@ -28,6 +28,7 @@
 import com.l2jfrozen.gameserver.handler.AdminCommandHandler;
 import com.l2jfrozen.gameserver.handler.IAdminCommandHandler;
 import com.l2jfrozen.gameserver.handler.custom.CustomBypassHandler;
+import com.l2jfrozen.gameserver.handler.voicedcommandhandlers.Menu;
 import com.l2jfrozen.gameserver.model.L2Object;
 import com.l2jfrozen.gameserver.model.L2World;
 import com.l2jfrozen.gameserver.model.actor.instance.L2ClassMasterInstance;
@@ -41,8 +42,10 @@
 import com.l2jfrozen.gameserver.model.entity.event.TvT;
 import com.l2jfrozen.gameserver.model.entity.event.VIP;
 import com.l2jfrozen.gameserver.model.entity.olympiad.Olympiad;
+import com.l2jfrozen.gameserver.network.SystemMessageId;
 import com.l2jfrozen.gameserver.network.serverpackets.ActionFailed;
 import com.l2jfrozen.gameserver.network.serverpackets.NpcHtmlMessage;
+import com.l2jfrozen.gameserver.network.serverpackets.SystemMessage;
 import com.l2jfrozen.gameserver.util.GMAudit;
 
 public final class RequestBypassToServer extends L2GameClientPacket
@@ -308,7 +311,90 @@
 					player.processQuestEvent(p.substring(0, idx), p.substring(idx).trim());
 				}
 			}
-
                    +     else if (_command.startsWith("page1"))
					+			Menu.mainHtml(activeChar);
					+		else if (_command.startsWith("buffprot"))
					+		{
					+			if (activeChar.isBuffProtected())
					+			{
					+				+activeChar.setIsBuffProtected(false);
					+				+activeChar.sendMessage("Buff protection is disabled.");
					+				+Menu.mainHtml(activeChar);
					+			}
					+			else
					+			{
					+				activeChar.setIsBuffProtected(true);
					+				activeChar.sendMessage("Buff protection is enabled.");
					+				Menu.mainHtml(activeChar);
					+			}
					+		}
					+		else if (_command.startsWith("tradeprot"))
					+		{
					+			if (activeChar.isInTradeProt())
					+			{
					+				+activeChar.setIsInTradeProt(false);
					+				+activeChar.sendMessage("Trade acceptance mode is enabled.");
					+				+Menu.mainHtml(activeChar);
					+			}
					+			else
					+			{
					+				activeChar.setIsInTradeProt(true);
					+				activeChar.sendMessage("Trade refusal mode is enabled.");
					+				Menu.mainHtml(activeChar);
					+			}
					+		}
					+		else if (_command.startsWith("ssprot"))
					+		{
					+			if (activeChar.isSSDisabled())
					+			{
					+				activeChar.setIsSSDisabled(false);
					+				activeChar.sendMessage("Soulshots effects are enabled.");
					+				Menu.mainHtml(activeChar);
					+			}
					+			else
					+			{
					+				activeChar.setIsSSDisabled(true);
					+				activeChar.sendMessage("Soulshots effects are disabled.");
					+				Menu.mainHtml(activeChar);
					+			}
					+		}
					+		else if (_command.startsWith("xpnot"))
					+		{
					+			if (activeChar.cantGainXP())
					+			{
					+				activeChar.cantGainXP(false);
					+				activeChar.sendMessage("Enable Xp");
					+				Menu.mainHtml2(activeChar);
					+			}
					+			else
					+			{
					+				activeChar.cantGainXP(true);
					+				activeChar.sendMessage("Disable Xp");
					+				Menu.mainHtml2(activeChar);
					+			}
					+		}
					+		else if (_command.startsWith("pmref"))
		+	{
		+						if (activeChar.getMessageRefusal())	
		+						{
		+		activeChar.setMessageRefusal(false);
		+		activeChar.sendPacket(new SystemMessage(SystemMessageId.MESSAGE_ACCEPTANCE_MODE));
		+		Menu.mainHtml(activeChar);
		+	}
		+	else
		+	{
		+		activeChar.setMessageRefusal(true);
		+		activeChar.sendPacket(new SystemMessage(SystemMessageId.MESSAGE_REFUSAL_MODE));
		+		Menu.mainHtml(activeChar);
		+	}
		+	}
		+					else if (_command.startsWith("partyin"))
		+					{
		+						if (activeChar.isPartyInvProt())
		+						{
		+							activeChar.setIsPartyInvProt(false);
		+							activeChar.sendMessage("Party acceptance mode is enabled.");
		+							Menu.mainHtml2(activeChar);
		+						}
		+						else
		+						{
		+							activeChar.setIsPartyInvProt(true);
		+							activeChar.sendMessage("Party refusal mode is enabled.");
		+							Menu.mainHtml2(activeChar);
		+						}
		+					}
		+					else if (_command.startsWith("page2"))
		+						Menu.mainHtml2(activeChar);
 			// Jstar's Custom Bypass Caller!
 			else if(_command.startsWith("custom_"))
 			{
Index: head-src/com/l2jfrozen/gameserver/handler/itemhandlers/BeastSpiritShot.java
===================================================================
--- head-src/com/l2jfrozen/gameserver/handler/itemhandlers/BeastSpiritShot.java	(revision 986)
+++ head-src/com/l2jfrozen/gameserver/handler/itemhandlers/BeastSpiritShot.java	(working copy)
@@ -169,7 +169,8 @@
 
 		// Pet uses the power of spirit.
 		activeOwner.sendPacket(new SystemMessage(SystemMessageId.PET_USE_THE_POWER_OF_SPIRIT));
-		Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUser(activePet, activePet, isBlessed ? 2009 : 2008, 1, 0, 0), 360000/*600*/);
+		if (!activeOwner.isSSDisabled())
+			Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUser(activePet, activePet, isBlessed ? 2009 : 2008, 1, 0, 0), 360000/*600*/);
 
 		activeOwner = null;
 		activePet = null;
Index: head-src/com/l2jfrozen/gameserver/handler/skillhandlers/Continuous.java
===================================================================
--- head-src/com/l2jfrozen/gameserver/handler/skillhandlers/Continuous.java	(revision 986)
+++ head-src/com/l2jfrozen/gameserver/handler/skillhandlers/Continuous.java	(working copy)
@@ -143,7 +143,16 @@
 					|| skill.getSkillType() == L2Skill.SkillType.MANAHEAL_PERCENT
 					|| skill.getSkillType() == L2Skill.SkillType.COMBATPOINTHEAL
 					|| skill.getSkillType() == L2Skill.SkillType.REFLECT))
-					continue;
+				continue;
+			
+			if (activeChar instanceof L2PcInstance && target != activeChar && target.isBuffProtected() && !skill.isHeroSkill()
+				&& (skill.getSkillType() == L2Skill.SkillType.BUFF
+				|| skill.getSkillType() == L2Skill.SkillType.HEAL_PERCENT
+				|| skill.getSkillType() == L2Skill.SkillType.FORCE_BUFF
+				|| skill.getSkillType() == L2Skill.SkillType.MANAHEAL_PERCENT
+				|| skill.getSkillType() == L2Skill.SkillType.COMBATPOINTHEAL
+				|| skill.getSkillType() == L2Skill.SkillType.REFLECT))
+				continue;
 			
 			// Player holding a cursed weapon can't be buffed and can't buff
 			if(skill.getSkillType() == L2Skill.SkillType.BUFF)

Posted

/ commands need client sided support, since they come to the server as command packets, whereas .commands don't need client support cause they are using say2 packet

Posted

/ commands need client sided support, since they come to the server as command packets, whereas .commands don't need client support cause they are using say2 packet

thats why ppl dont want /commands?;D for 1 more line in system? hehe

anyway thanks for ur answer :)

Posted (edited)

Yes.. They are unable to edit client file and most likely they dont know how to make new user command - newbies. Thats why they "prefer" with a dot.

 

Anyway, you just reshared it since its not based on head rev or?

 

Cuz its shared, or at least its @Download tab :D

Edited by SweeTs
Posted

Yes.. They are unable to edit client file and most likely they dont know how to make new user command - newbies. Thats why they "prefer" with a dot.

 

Anyway, you just reshared it since its not based on head rev or?

 

Cuz its shared, or at least its @Download tab :D

well i guess now its reshared ;D

in .menu due to some ppl that coudn't change it from the /menu ;p

also fixed the button that enable disable pm's cauze it didnt worked also it shows online people on the top

Posted

Only refusal & buff protection is working properly..

 

The other ones are not working... They cant be set on [ON] they are just on OFF

well for me it works just fine.. maybe u have done something wrong dunno..

  • 2 weeks later...
Posted (edited)

thousands of hardcoded checks in core everywhere to ruin the code ~~

anyway you should use StringBuilder instead of TextBuilder and no need "" inside the brackets

Edited by lord_rex
  • 6 years later...

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

    • Hey everyone! Just a quick update from the WARFRONT team. After months of development, testing and plenty of changes based on player feedback, we're finally opening tomorrow, 30 October at 18:00 UTC. For anyone who hasn't heard about the project, WARFRONT is a heavily customised Interlude GvE server focused on Angels vs Demons faction PvP. The main difference is our battlefield system. Instead of fighting endlessly over random kills, factions capture Outposts, unlock the Main Outpost and eventually push into enemy territory to destroy the opposing Headquarters. We've also spent a considerable amount of time working on class balance, progression, faction balancing and giving traditionally overlooked classes a useful role in PvP. Some of the main features: Level 80 start with free B Grade equipment Rotating faction battlefields with objectives 31 rebalanced classes Daily faction siege Grand Boss faction events Chaos, TvT, CTF, Deathmatch and King of the Hill Gear Battle XP and character progression Free and Premium Battle Pass Custom faction balancing and mercenary system We had 110 participants during Closed Beta and made numerous improvements following their feedback. If you enjoy Interlude faction PvP, feel free to give us a try. Grand Opening: Friday, 30 October 2026 at 18:00 UTC Website: https://l2warfront.com/ See you tomorrow!
    • OPEN BETA STARTS ON FRIDAY, OCTOBER 30, AT 18:00 EASTERN EUROPEAN TIME - don't forget to join!
    • 🤝 Team and agency packs available: Bulk discounts across ChatGPT Plus, Claude Pro, and YouTube Premium subscriptions.     FINAL CALL: Google is Shutting This Down After October 2026! Google will NEVER bring back this window of opportunity again. Once this month ends, this massive backdoor upgrade is gone permanently!  BUY 2, GET 1 FREE IS STILL LIVE! Stock up now for yourself, your family, your business, and your friends! Think about it: Every single person you know uses a Gmail account, and everyone is running out of storage. Don't let your loved ones get trapped paying $20–$30 every single month when you can set them up with 5TB Cloud Storage + Gemini Advanced (12–18 Months) right now for only $15! Why Buy Bulk Activations Today? Instant Gift Value: Perfect lifetime-style gift for clients, family, or team members. 100% Private & Safe: Activates on personal Gmails—zero passwords or logins required. Global Access: Works worldwide with zero VPN hassles. Instant Automated Delivery: Receive your activation links in seconds 24/7! ‍ Time is running out fast—secure your extra free licenses before the October deadline hits! Order Your Bundle Now on the Website
    • Looking for a Serious Lineage II Project Partner / Co-Owner Hello everyone! I'm looking for a serious, reliable and motivated person who would be interested in building and running a long-term Lineage II project together as equal-minded partners. I have extensive experience with both L2J and L2OFF development, including server-side development, custom features, configurations, databases, client modifications, troubleshooting and general server administration. I also have experience with website development, Linux and Windows server administration, networking, game proxies and hosting infrastructure. I'm fully capable of handling the development and technical side of a project myself. I'm not looking for someone to build a server for me or fix my files. I'm looking for someone who shares my passion for Lineage II and wants to create something successful together. Hardware & Infrastructure I already have dedicated hardware and hosting resources available: Dedicated Servers: AMD Ryzen 9 5950X — 16 cores / 32 threads, 64GB RAM AMD Ryzen 9 5900X — 12 cores / 24 threads, 32GB RAM 28 cores / 56 threads and 96GB RAM combined 2.5 Gbps symmetrical internet connection Additional Infrastructure: OVH VPS infrastructure for game proxies and additional services Website, domain and web hosting infrastructure Database hosting and management Windows Server and Linux environments Network configuration, proxy management and server security Full development and technical administration capabilities The hardware and technical resources are already available, so there is no need to start from scratch or immediately invest in expensive infrastructure. About Me & My Experience I've worked with both L2J and L2OFF, and I understand the technical challenges involved in running a Lineage II server. My experience covers server development, implementing custom systems, fixing issues, optimising performance and managing the infrastructure required to keep a project running. I enjoy both the technical development and creative sides of Lineage II, and I'm willing to invest my time and resources into building something worthwhile. What I'm Looking For I'm not looking for an employee, freelancer or paid developer. I'm looking for a genuine long-term partner / potential co-owner who wants to be actively involved in the project. Ideally, someone who: Has good knowledge of Lineage II and its community Can contribute ideas, experience and constructive feedback Is interested in gameplay, balancing, community building or development Is reliable, mature and communicates well Wants to be involved in decisions and the long-term direction of the project Understands that building a successful server takes time and dedication You don't need to be an expert developer. I can already handle the technical work. What matters most is finding someone who is genuinely interested in working together and contributing to the project's success. The Goal My goal is to create a stable, professional and long-lasting Lineage II server with enjoyable gameplay, quality features, proper infrastructure and an active community. I'm not interested in quick cash-grab projects or opening a server that disappears after a few weeks. I would rather work with the right person, plan everything properly and build a server that players genuinely want to return to. I'm open to discussing the project's direction, responsibilities, ownership structure and potential revenue sharing once we get to know each other. Contact Project: L2Nexus Website: https://l2nexus.club Discord: @litrabolas If you have experience with Lineage II, have been thinking about starting your own project, or simply want to build something serious with someone who already has the experience and infrastructure, feel free to contact me. Let's discuss ideas and see if we can build something great together.
    • Looking for a Serious Lineage II Project Partner / Co-Owner Hello everyone! I'm looking for a serious, reliable and motivated person who would be interested in building and running a long-term Lineage II project together as equal-minded partners. I have extensive experience with both L2J and L2OFF development, including server-side development, custom features, configurations, databases, client modifications, troubleshooting and general server administration. I also have experience with website development, Linux and Windows server administration, networking, game proxies and hosting infrastructure. I'm fully capable of handling the development and technical side of a project myself. I'm not looking for someone to build a server for me or fix my files. I'm looking for someone who shares my passion for Lineage II and wants to create something successful together. Hardware & Infrastructure I already have dedicated hardware and hosting resources available: Dedicated Servers: AMD Ryzen 9 5950X — 16 cores / 32 threads, 64GB RAM AMD Ryzen 9 5900X — 12 cores / 24 threads, 32GB RAM 28 cores / 56 threads and 96GB RAM combined 2.5 Gbps symmetrical internet connection Additional Infrastructure: OVH VPS infrastructure for game proxies and additional services Website, domain and web hosting infrastructure Database hosting and management Windows Server and Linux environments Network configuration, proxy management and server security Full development and technical administration capabilities The hardware and technical resources are already available, so there is no need to start from scratch or immediately invest in expensive infrastructure. About Me & My Experience I've worked with both L2J and L2OFF, and I understand the technical challenges involved in running a Lineage II server. My experience covers server development, implementing custom systems, fixing issues, optimising performance and managing the infrastructure required to keep a project running. I enjoy both the technical development and creative sides of Lineage II, and I'm willing to invest my time and resources into building something worthwhile. What I'm Looking For I'm not looking for an employee, freelancer or paid developer. I'm looking for a genuine long-term partner / potential co-owner who wants to be actively involved in the project. Ideally, someone who: Has good knowledge of Lineage II and its community Can contribute ideas, experience and constructive feedback Is interested in gameplay, balancing, community building or development Is reliable, mature and communicates well Wants to be involved in decisions and the long-term direction of the project Understands that building a successful server takes time and dedication You don't need to be an expert developer. I can already handle the technical work. What matters most is finding someone who is genuinely interested in working together and contributing to the project's success. The Goal My goal is to create a stable, professional and long-lasting Lineage II server with enjoyable gameplay, quality features, proper infrastructure and an active community. I'm not interested in quick cash-grab projects or opening a server that disappears after a few weeks. I would rather work with the right person, plan everything properly and build a server that players genuinely want to return to. I'm open to discussing the project's direction, responsibilities, ownership structure and potential revenue sharing once we get to know each other. Contact Project: L2Nexus Website: https://l2nexus.club Discord: @litrabolas If you have experience with Lineage II, have been thinking about starting your own project, or simply want to build something serious with someone who already has the experience and infrastructure, feel free to contact me. Let's discuss ideas and see if we can build something great together.
  • 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..