Browse Source

L2ManorManager tweak.
Bypass error as visual html message for GM.

JIV 15 năm trước cách đây
mục cha
commit
f1579ccdc8

+ 19 - 2
L2_GameServer/java/com/l2jserver/gameserver/network/clientpackets/RequestBypassToServer.java

@@ -30,6 +30,7 @@ import com.l2jserver.gameserver.model.L2CharPosition;
 import com.l2jserver.gameserver.model.L2Object;
 import com.l2jserver.gameserver.model.L2World;
 import com.l2jserver.gameserver.model.actor.L2Npc;
+import com.l2jserver.gameserver.model.actor.instance.L2ManorManagerInstance;
 import com.l2jserver.gameserver.model.actor.instance.L2MerchantSummonInstance;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.entity.L2Event;
@@ -161,8 +162,8 @@ public final class RequestBypassToServer extends L2GameClientPacket
 			// Navigate through Manor windows
 			else if (_command.startsWith("manor_menu_select?"))
 			{
-				L2Object object = activeChar.getTarget();
-				if (object instanceof L2Npc)
+				L2Object object = activeChar.getLastFolkNPC();
+				if (object instanceof L2ManorManagerInstance && activeChar.isInsideRadius(object, L2Npc.INTERACTION_DISTANCE, false, false))
 					((L2Npc) object).onBypassFeedback(activeChar, _command);
 			}
 			else if (_command.startsWith("bbs_"))
@@ -249,6 +250,22 @@ public final class RequestBypassToServer extends L2GameClientPacket
 		catch (Exception e)
 		{
 			_log.log(Level.WARNING, getClient()+" sent bad RequestBypassToServer: ", e);
+			if (activeChar.isGM())
+			{
+				StringBuilder sb = new StringBuilder(200);
+				sb.append("<html><body>");
+				sb.append("Bypass error: "+e+"<br1>");
+				sb.append("Bypass command: "+_command+"<br1>");
+				sb.append("StackTrace:<br1>");
+				for (StackTraceElement ste : e.getStackTrace())
+					sb.append(ste.toString()+"<br1>");
+				sb.append("</body></html>");
+				// item html
+				NpcHtmlMessage msg = new NpcHtmlMessage(0,12807);
+				msg.setHtml(sb.toString());
+				msg.disableValidation();
+				activeChar.sendPacket(msg);
+			}
 		}
 	}