Noticias:

Debes de estar registrado para poder ver el contenido indicado. Registrate o Conectate

Menú Principal

[IMP] .menu Command

Iniciado por Swarlog, Ago 05, 2022, 01:18 AM

Tema anterior - Siguiente tema

Swarlog

Debes de estar registrado para poder ver el contenido indicado. Registrate o Conectate

### 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)