Jump to content

Question

Posted (edited)

perasa to personal menu tou elfocrash se l2jfrozen latest rev

to compile egine xwris errors

 

otan mpenw sto game kai grafw /menu den ginete tpt 

episis stin consola den vgazei kanena error 

 

 

opoios kserei as helparei

Edited by ExCaLiBuR®

Recommended Posts

  • 0
Posted (edited)

When dat msg appear, while executing a command? Show the code respondible for that since it doesn't come from menu system :P

 

 

Thank you bro :*

 

No problem, sister :happyforever:

Edited by SweeTs
  • 0
Posted (edited)

When dat msg appear, while executing a command? Show the code respondible for that :P

 

 

 

No problem, sister :happyforever:

yes ...

 

Untitled.png

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);
+ 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));
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/UserCommandHandler.java
===================================================================
--- head-src/com/l2jfrozen/gameserver/handler/UserCommandHandler.java (revision 986)
+++ head-src/com/l2jfrozen/gameserver/handler/UserCommandHandler.java (working copy)
@@ -33,6 +33,7 @@
 import com.l2jfrozen.gameserver.handler.usercommandhandlers.DisMount;
 import com.l2jfrozen.gameserver.handler.usercommandhandlers.Escape;
 import com.l2jfrozen.gameserver.handler.usercommandhandlers.Loc;
+import com.l2jfrozen.gameserver.handler.usercommandhandlers.Menu;
 import com.l2jfrozen.gameserver.handler.usercommandhandlers.Mount;
 import com.l2jfrozen.gameserver.handler.usercommandhandlers.OfflineShop;
 import com.l2jfrozen.gameserver.handler.usercommandhandlers.OlympiadStat;
@@ -76,6 +77,7 @@
  registerUserCommandHandler(new Loc());
  registerUserCommandHandler(new Mount());
  registerUserCommandHandler(new PartyInfo());
+ registerUserCommandHandler(new Menu());
  if (Config.OFFLINE_TRADE_ENABLE && Config.OFFLINE_COMMAND1)
  registerUserCommandHandler(new OfflineShop());
  _log.config("UserCommandHandler: Loaded " + _datatable.size() + " handlers.");
Index: head-src/com/l2jfrozen/gameserver/handler/usercommandhandlers/Menu.java
===================================================================
--- head-src/com/l2jfrozen/gameserver/handler/usercommandhandlers/Menu.java (revision 0)
+++ head-src/com/l2jfrozen/gameserver/handler/usercommandhandlers/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.usercommandhandlers;
+
+import javolution.text.TextBuilder;
+
+import com.l2jfrozen.gameserver.handler.IUserCommandHandler;
+import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jfrozen.gameserver.network.serverpackets.NpcHtmlMessage;
+
+public class Menu implements IUserCommandHandler
+{
+       private static final int[] COMMAND_IDS =
+       {
+               114
+       };
+      
+       @Override
+       public boolean useUserCommand(int id, L2PcInstance activeChar)
+       {
+               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\"><font color=\"FF6600\">Personal Menu</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.isInRefusalMode())
+               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.isInRefusalMode())
+               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("<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\"><font color=\"FF6600\">Personal Menu</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 int[] getUserCommandList()
+       {
+               return COMMAND_IDS;
+       }
+}
\ 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.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);
+ Menu.mainHtml(activeChar);
+ }
+ else
+ {
+ activeChar.setIsBuffProtected(true);
+ Menu.mainHtml(activeChar);
+ }
+ }
+ else if (_command.startsWith("tradeprot"))
+ {
+ if (activeChar.isInTradeProt())
+ {
+ activeChar.setIsInTradeProt(false);
+ Menu.mainHtml(activeChar);
+ }
+ else
+ {
+ activeChar.setIsInTradeProt(true);
+ Menu.mainHtml(activeChar);
+ }
+ }
+ else if (_command.startsWith("ssprot"))
+ {
+ if (activeChar.isSSDisabled())
+ {
+ activeChar.setIsSSDisabled(false);
+ Menu.mainHtml(activeChar);
+ }
+ else
+ {
+ activeChar.setIsSSDisabled(true);
+ Menu.mainHtml(activeChar);
+ }
+ }
+ else if (_command.startsWith("pmref"))
+ {
+ if (activeChar.isInRefusalMode())
+ {
+ activeChar.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.MESSAGE_ACCEPTANCE_MODE));
+ activeChar.getBlockList().setBlockAll(false);
+ Menu.mainHtml(activeChar);
+ }
+ else
+ {
+ activeChar.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.MESSAGE_REFUSAL_MODE));
+ activeChar.getBlockList().setBlockAll(true);
+ Menu.mainHtml(activeChar);
+ }
+ }
+ else if (_command.startsWith("xpnot"))
+ {
+ if (activeChar.cantGainXP())
+ {
+ activeChar.cantGainXP(false);
+ Menu.mainHtml2(activeChar);
+ }
+ else
+ {
+ activeChar.cantGainXP(true);
+ Menu.mainHtml2(activeChar);
+ }
+ }
+ else if (_command.startsWith("partyin"))
+ {
+ if (activeChar.isPartyInvProt())
+ {
+ activeChar.setIsPartyInvProt(false);
+ Menu.mainHtml2(activeChar);
+ }
+ else
+ {
+ activeChar.setIsPartyInvProt(true);
+ 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)
Edited by ExCaLiBuR®
  • 0
Posted (edited)

Well, this new screen is from offline shop, not related to menu system or I miss something? :alone:

 

Also, the msg from 1st screen is not in the patch as well.. So, use Search option @ Eclipse and search for that sentence and track it :D

 

Edit:

 

I found it. The 1st msg is from offline shop voiced command

		if ((!player.isInStoreMode() && (!player.isInCraftMode())) || !player.isSitting())
		{
			player.sendMessage("You are not running a private store or private work shop.");
			player.sendPacket(ActionFailed.STATIC_PACKET);
			return false;
		}

So, it's correct msg.

 

and the 2nd one

 

 

		if ((player.isInStoreMode() && Config.OFFLINE_TRADE_ENABLE) || (player.isInCraftMode() && Config.OFFLINE_CRAFT_ENABLE))
		{
			// Sleep effect, not official feature but however L2OFF features (like offline trade)
			player.startAbnormalEffect(L2Character.ABNORMAL_EFFECT_SLEEP);
			
			player.sendMessage("Your private store has succesfully been flagged as an offline shop and will remain active for ever.");
			player.setStored(true);
			
			return true;
		}

 

So, what's the problem in here? :D

Edited by SweeTs
  • 0
Posted (edited)

Well, this new screen is from offline shop, not related to menu system or I miss something? :alone:

 

Also, the msg from 1st screen is not in the patch as well.. So, use Search option @ Eclipse and search for that sentence and track it :D

yes i know... when I will open the private store and use the command /menu i have this problem. 

 

on commandname-e.dat i have add this line

115 114 menu

EDIT....

 

now working . i have disable the offline craft mod xD

 

thanks for the help 

Edited by ExCaLiBuR®
  • 0
Posted (edited)

Look here

 

https://www.assembla.com/code/L2jFrozenInterlude/subversion/nodes/1003/trunk/gameserver/head-src/com/l2jfrozen/gameserver/handler/usercommandhandlers/OfflineShop.java

 

Because, offline shop is also using usercommand and its ID is 114, so you call the offline shop :D So, just change the ID of menu to 115 or higher and you are done :)

Edited by SweeTs
Guest
This topic is now closed to further replies.


  • Posts

    • Server Hardware Configuration:   Recommended Configuration: CPU i7 with 3.0GHz frequency, 6 cores or more, solid-state drive, 16GB RAM or more. Recommended to use Experience Mode for gaming with no less than 1000 FakePlayers on the server. For optimal gaming experience, FakePlayer levels in Immersive Mode need to be higher than the script requirements. Siege War: Clan members must be level 40 or above to run siege war scripts. Olympics: Must be level 76 or above to run Olympics scripts.   Game Mode Introduction:   Immersive Mode: FakePlayers start from level 1, simulating real player growth paths, suitable for nostalgic and new players. Experience Mode: FakePlayers are randomly assigned levels 1-85, with fixed levels, suitable for quick game experience or veteran players revisiting classics. Mode Switching Guide: Default setting is Experience Mode. To switch to Immersive Mode, edit the GameMode item in \gameserver\config\jf_config.properties file, changing the value from True to False.   Clan System Features:   FakePlayers automatically create and manage clans, supporting player declarations of war against them. Automatically identifies enemy clans and organizes teams for battle. Players can easily manage clan members through custom commands, including teaming, summoning, resting, and other functions.   Classes and Custom Commands:   Considering the single-player environment, some classes have been merged and optimized, such as Bard, Support, and Dwarf classes. FakePlayers automatically utilize fashion, vehicles, transformation, and bracelet systems to enhance game diversity. Provides rich custom commands such as .RandomTeam, .SummonTeammate, etc., enhancing interaction between players and FakePlayers.   Activity Participation:   FakePlayers can automatically join TVT battles, GVG competitions, CtF capture the flag, and other exciting activities, providing players with rich gaming experiences.   Siege War Instructions: In the GM menu, you can apply, withdraw, and teleport to castle-related maps.When it's not siege event time, you can manually start siege wars.   FakePlayer siege behavior is controlled by scripts. During sieges, you can form regular teams and alliance teams, but cannot form clan teams or use clan summoning commands.   Siege Time Settings:   Siege application deadline modified to 5 minutes before registration closes. Siege duration changed from 2 hours to 30 minutes. Next siege time after siege ends adjusted to once per week. After FakePlayers obtain castle ownership, they automatically announce the next siege time as the nearest Sunday around 8 PM. When real players obtain castles, they need to manually set the next siege time or use default time.   Siege War Process: FakePlayers automatically apply for sieges, automatically conduct siege activities every Sunday and obtain castle ownership.   When castle is initially owned by NPCs: When there's only 1 attacking clan, obtaining the castle seal ends the siege war. When there are 2 or more attacking parties, in the first attack, attacking clans automatically form temporary alliances, players won't be selected and won't attack alliance members. After one party successfully seals, enters castle ownership alternation phase. Temporary alliance dissolves, battlefield transforms to full attack state where both attackers and defenders can attack each other. When castle is initially owned by FakePlayer clans or real players: After obtaining castle seal, enters castle ownership alternation phase.   Olympics Competition Instructions: Default activity time is daily from 18:00 to 00:00 the next day. Can be activated through GM console outside time periods.Non-time period activation method: GM console > Olympics > Start Olympics   Players must be nobles in main class state to participate in Olympics. FakePlayers automatically obtain noble status when participating in Olympics. Recommended to enable script control, this setting allows FakePlayers to automatically register for Olympics to generate real FakePlayer Olympics data. Setting activation: jf_config.properties --> lines 314, 321, 328. After players register for classless, individual class, and unlimited team competitions, FakePlayers and FakePlayer teams will automatically be generated for companionship. Scoring rules are consistent with official servers. Olympics runs monthly cycles, with settlement days on the 1st and 15th of each month. At cycle end, FakePlayers automatically apply to become heroes, players need to manually perform hero certification to become heroes.   Update Notes:   Optimized team system, fixed abnormal teammate name issues. GM console element enhancement menu fully localized, more convenient operation. Game mode switching simplified, one-click switching between Immersive and Experience modes. Reduced FakePlayer server-wide chat frequency, creating a more harmonious gaming environment. FakePlayer AI logic fully upgraded, reducing lag phenomena and improving game fluidity. FakePlayer clan joining events optimized, manual clan invitation function fixed. Introduced FakePlayer 1V1 duel system, enhancing combat fun. Integrated simple auto-assist system, optimizing game experience. Activated automatic potion supply function, reducing player operation burden. Implemented alliance and federation construction between real players and FakePlayers. FakePlayers automatically join team waiting queues, enhancing social interaction. Added FakePlayer private shops, enriching the trading system. Bulletin board built-in auction house upgrade, FakePlayers sell high-level items, players can also list items, FakePlayers randomly purchase. Opened some advanced dungeons accessible to FakePlayers, including Purgatory Abyss series, Immortal/Destruction/Annihilation Seed dungeons and multiple classic maps. Added normal boss respawn time settings Fixed new character Chinese title garbled text Fixed character shop setup not leveling Fixed TVT activity score anomalies In Experience Mode, teaming with FakePlayers modified to: FakePlayers normally gain experience and level up Fixed bug where FakePlayer accessories couldn't be completely replaced in Immersive Mode Fixed some issues with wild FakePlayers not fighting back Fixed bug where FakePlayers could still attack normally when under fear or loss of control debuff states Added Divine Knight FakePlayer class summoning small undead bird skill Optimized Knight class third job skill usage Optimized FakePlayer Wizard class combat logic in Olympics events Fixed Hero "one sentence" function Fixed bug where units couldn't be assigned when inviting FakePlayers to join clan Fixed bug of attacking wild BOSS followers while AFK Fixed bug of FakePlayers attacking wild BOSS followers when not AFK Fixed VIP member system Optimized Knight team combat logic Corrected boss teleport point confusion FakePlayers can enter "4 Cups" dungeon without restrictions "4 Cups" series quest localization corrections FakePlayers can enter Small Baium dungeon without restrictions Fixed alliance channel teammate auto-leaving bug Fixed alliance channel summon attacking teammates bug Fixed alliance channel code recursive infinite loop bug under certain probability Added alliance channel FakePlayer death resurrection script Fixed bug where FakePlayers could only equip S80 equipment at maximum Added custom FakePlayer crafting workshop and private shop (MS system) - see detailed instructions Added FakePlayer generation speed and initial level settings for Experience and Immersive modes Optimized database connections, breaking through 3000 player limit Fixed bug of wild same-clan FakePlayers fighting each other Siege War (test) real player difficulty appropriately increased Added Arrogance, Forge, Monastery, Imperial Tomb, Dragon Valley, various tombs, temples and other FakePlayer leveling maps, thanks to: TaoXiaoSan Quest testing and htm localization corrections, thanks to: Floating Cloud To reduce server burden, temporarily disabled FakePlayer item pickup function (won't update data but still has pickup actions) Modified auction house listing item logic (whether to close this service?) Fixed TVT, GVG, Ctf, LastHero, team events conflicting with siege events and Olympics bugs Added robot chat interface (private chat only) Added Dwarf race summoning robot Golem (non-siege) Reconstructed FakePlayer resurrection logic Restored in-game item shop When team hunting BOSS, Priest classes only provide healing services, debuff usage probability increased Opened FakePlayer equipment enhancement custom permissions Added server FakePlayer clan quantity settings       Note: This LineageII l2jserver is not fully English!!!
    • Server Hardware Configuration:   Recommended Configuration: CPU i7 with 3.0GHz frequency, 6 cores or more, solid-state drive, 16GB RAM or more. Recommended to use Experience Mode for gaming with no less than 1000 FakePlayers on the server. For optimal gaming experience, FakePlayer levels in Immersive Mode need to be higher than the script requirements. Siege War: Clan members must be level 40 or above to run siege war scripts. Olympics: Must be level 76 or above to run Olympics scripts.   Game Mode Introduction:   Immersive Mode: FakePlayers start from level 1, simulating real player growth paths, suitable for nostalgic and new players. Experience Mode: FakePlayers are randomly assigned levels 1-85, with fixed levels, suitable for quick game experience or veteran players revisiting classics. Mode Switching Guide: Default setting is Experience Mode. To switch to Immersive Mode, edit the GameMode item in \gameserver\config\jf_config.properties file, changing the value from True to False.   Clan System Features:   FakePlayers automatically create and manage clans, supporting player declarations of war against them. Automatically identifies enemy clans and organizes teams for battle. Players can easily manage clan members through custom commands, including teaming, summoning, resting, and other functions.   Classes and Custom Commands:   Considering the single-player environment, some classes have been merged and optimized, such as Bard, Support, and Dwarf classes. FakePlayers automatically utilize fashion, vehicles, transformation, and bracelet systems to enhance game diversity. Provides rich custom commands such as .RandomTeam, .SummonTeammate, etc., enhancing interaction between players and FakePlayers.   Activity Participation:   FakePlayers can automatically join TVT battles, GVG competitions, CtF capture the flag, and other exciting activities, providing players with rich gaming experiences.   Siege War Instructions: In the GM menu, you can apply, withdraw, and teleport to castle-related maps.When it's not siege event time, you can manually start siege wars.   FakePlayer siege behavior is controlled by scripts. During sieges, you can form regular teams and alliance teams, but cannot form clan teams or use clan summoning commands.   Siege Time Settings:   Siege application deadline modified to 5 minutes before registration closes. Siege duration changed from 2 hours to 30 minutes. Next siege time after siege ends adjusted to once per week. After FakePlayers obtain castle ownership, they automatically announce the next siege time as the nearest Sunday around 8 PM. When real players obtain castles, they need to manually set the next siege time or use default time.   Siege War Process: FakePlayers automatically apply for sieges, automatically conduct siege activities every Sunday and obtain castle ownership.   When castle is initially owned by NPCs: When there's only 1 attacking clan, obtaining the castle seal ends the siege war. When there are 2 or more attacking parties, in the first attack, attacking clans automatically form temporary alliances, players won't be selected and won't attack alliance members. After one party successfully seals, enters castle ownership alternation phase. Temporary alliance dissolves, battlefield transforms to full attack state where both attackers and defenders can attack each other. When castle is initially owned by FakePlayer clans or real players: After obtaining castle seal, enters castle ownership alternation phase.   Olympics Competition Instructions: Default activity time is daily from 18:00 to 00:00 the next day. Can be activated through GM console outside time periods.Non-time period activation method: GM console > Olympics > Start Olympics   Players must be nobles in main class state to participate in Olympics. FakePlayers automatically obtain noble status when participating in Olympics. Recommended to enable script control, this setting allows FakePlayers to automatically register for Olympics to generate real FakePlayer Olympics data. Setting activation: jf_config.properties --> lines 314, 321, 328. After players register for classless, individual class, and unlimited team competitions, FakePlayers and FakePlayer teams will automatically be generated for companionship. Scoring rules are consistent with official servers. Olympics runs monthly cycles, with settlement days on the 1st and 15th of each month. At cycle end, FakePlayers automatically apply to become heroes, players need to manually perform hero certification to become heroes.   Update Notes:   Optimized team system, fixed abnormal teammate name issues. GM console element enhancement menu fully localized, more convenient operation. Game mode switching simplified, one-click switching between Immersive and Experience modes. Reduced FakePlayer server-wide chat frequency, creating a more harmonious gaming environment. FakePlayer AI logic fully upgraded, reducing lag phenomena and improving game fluidity. FakePlayer clan joining events optimized, manual clan invitation function fixed. Introduced FakePlayer 1V1 duel system, enhancing combat fun. Integrated simple auto-assist system, optimizing game experience. Activated automatic potion supply function, reducing player operation burden. Implemented alliance and federation construction between real players and FakePlayers. FakePlayers automatically join team waiting queues, enhancing social interaction. Added FakePlayer private shops, enriching the trading system. Bulletin board built-in auction house upgrade, FakePlayers sell high-level items, players can also list items, FakePlayers randomly purchase. Opened some advanced dungeons accessible to FakePlayers, including Purgatory Abyss series, Immortal/Destruction/Annihilation Seed dungeons and multiple classic maps. Added normal boss respawn time settings Fixed new character Chinese title garbled text Fixed character shop setup not leveling Fixed TVT activity score anomalies In Experience Mode, teaming with FakePlayers modified to: FakePlayers normally gain experience and level up Fixed bug where FakePlayer accessories couldn't be completely replaced in Immersive Mode Fixed some issues with wild FakePlayers not fighting back Fixed bug where FakePlayers could still attack normally when under fear or loss of control debuff states Added Divine Knight FakePlayer class summoning small undead bird skill Optimized Knight class third job skill usage Optimized FakePlayer Wizard class combat logic in Olympics events Fixed Hero "one sentence" function Fixed bug where units couldn't be assigned when inviting FakePlayers to join clan Fixed bug of attacking wild BOSS followers while AFK Fixed bug of FakePlayers attacking wild BOSS followers when not AFK Fixed VIP member system Optimized Knight team combat logic Corrected boss teleport point confusion FakePlayers can enter "4 Cups" dungeon without restrictions "4 Cups" series quest localization corrections FakePlayers can enter Small Baium dungeon without restrictions Fixed alliance channel teammate auto-leaving bug Fixed alliance channel summon attacking teammates bug Fixed alliance channel code recursive infinite loop bug under certain probability Added alliance channel FakePlayer death resurrection script Fixed bug where FakePlayers could only equip S80 equipment at maximum Added custom FakePlayer crafting workshop and private shop (MS system) - see detailed instructions Added FakePlayer generation speed and initial level settings for Experience and Immersive modes Optimized database connections, breaking through 3000 player limit Fixed bug of wild same-clan FakePlayers fighting each other Siege War (test) real player difficulty appropriately increased Added Arrogance, Forge, Monastery, Imperial Tomb, Dragon Valley, various tombs, temples and other FakePlayer leveling maps, thanks to: TaoXiaoSan Quest testing and htm localization corrections, thanks to: Floating Cloud To reduce server burden, temporarily disabled FakePlayer item pickup function (won't update data but still has pickup actions) Modified auction house listing item logic (whether to close this service?) Fixed TVT, GVG, Ctf, LastHero, team events conflicting with siege events and Olympics bugs Added robot chat interface (private chat only) Added Dwarf race summoning robot Golem (non-siege) Reconstructed FakePlayer resurrection logic Restored in-game item shop When team hunting BOSS, Priest classes only provide healing services, debuff usage probability increased Opened FakePlayer equipment enhancement custom permissions Added server FakePlayer clan quantity settings   Download   Note: This LineageII l2jserver is not fully English!!!
    • if you are sending him clients i have no words mate that means you know him.
    • Looking to hire a skilled L2J developer or team to build a custom private server for solo play with advanced server-side AI bots. This is NOT for public launch — just a self-hosted project where I can simulate a full L2 experience alone or with a few friends. 🔹 What I Need A private L2J server ( High Five preferred, newer versions can work as well) with bots that: Farm 24/7 on their own (solo or in bot parties) Can be invited into party and follow basic orders (attack, follow, res, heal, etc.) Are able to join Olympiad, fight with proper logic (per class), and rank up Can coordinate for Raid Bosses (check spawn, move, assist, heal, DPS, etc.) Act like real players: town routines, rebuffing, restocking, even chatting if possible Have different roles: tanks, healers, nukers, archers, etc. Can interact through simple in-game commands or NPC interface 🔹 Your Job Set up the server and geodata Integrate a scalable bot system (written in Java or scriptable) Write clean, modular AI behavior (farming, PvP, party play, raid logic, etc.) Allow me to control/assign bots easily (in-game or config) Bonus: basic UI or GM panel for bot config 🔹 Payment Serious budget for serious work PayPal, crypto, or preferred method Project-based or hourly, negotiable Milestone-based OK 🔹 Contact Send me: Your experience with L2J or similar projects Any bot/AI systems you've built before Estimated timeframe Pricing expectations
  • Topics

×
×
  • Create New...

AdBlock Extension Detected!

Our website is made possible by displaying online advertisements to our members.

Please disable AdBlock browser extension first, to be able to use our community.

I've Disabled AdBlock