Index: java/net/sf/l2j/gameserver/serverpackets/NpcHtmlMessage.java =================================================================== --- java/net/sf/l2j/gameserver/serverpackets/NpcHtmlMessage.java (revision 1214) +++ java/net/sf/l2j/gameserver/serverpackets/NpcHtmlMessage.java (working copy) @@ -19,6 +19,7 @@ package net.sf.l2j.gameserver.serverpackets; import java.util.logging.Logger; +import java.util.ArrayList; import net.sf.l2j.gameserver.cache.HtmCache; import net.sf.l2j.gameserver.clientpackets.RequestBypassToServer; @@ -137,6 +138,7 @@ private static Logger _log = Logger.getLogger(RequestBypassToServer.class.getName()); private int _npcObjId; private String _html; + private ArrayList replaces = new ArrayList(); /** * @param _characters @@ -158,15 +160,18 @@ buildBypassCache(getClient().getActiveChar()); } - public void setHtml(String text) + public final NpcHtmlMessage setHtml(String text) { if(text.length() > 8192) { _log.warning("Html is too long! this will crash the client!"); _html = "Html was too long"; - return; + return this; } - _html = text; // html code must not exceed 8192 bytes + if(!text.contains("")) + text = "" + text + ""; //Message:


+ _html = text; // html code must not exceed 8192 bytes + return this; } public boolean setFile(String path) @@ -186,7 +191,8 @@ public void replace(String pattern, String value) { - _html = _html.replaceAll(pattern, value); + replaces.add(pattern); + replaces.add(value); } public final void buildBypassCache(L2PcInstance activeChar) @@ -196,22 +202,30 @@ activeChar.clearBypass(); int len = _html.length(); - for(int i=0; i 0) - activeChar.addBypass2(_html.substring(start, finish2)); - else - activeChar.addBypass(_html.substring(start, finish)); - //System.err.println("["+_html.substring(start, finish)+"]"); + start += 10; + i = start; + int finish2 = _html.indexOf("$",start); + if (finish2 < finish && finish2 > 0) + activeChar.addBypass2(_html.substring(start, finish2)); + else + activeChar.addBypass(_html.substring(start, finish)); + //System.err.println("["+_html.substring(start, finish)+"]"); + } + } + catch (Exception e) + { + setHtml("sorry, error"); + System.err.println("NpcHtmlMessage: " + e.getMessage()); } }