activeChar.sendPacket(new HideBoard());
activeChar.sendPacket(new НеЛагатьИДанатыНаКвартируПлиз());Java:activeChar.sendPacket(new HideBoard());
public boolean handleCommand(L2PcInstance activeChar, String command) {
String cmd = command.substring(4);
String params = "";
if (cmd.contains(" ")) {
params = cmd.substring(cmd.indexOf(" ") + 1);
cmd = cmd.substring(0, cmd.indexOf(" "));
}
IBBSHandler handler = this.getHandler(cmd);
if (handler != null) {
String result = handler.handleCommand(activeChar, cmd, params);
if (result == null) {
activeChar.sendPacket(new HideBoard());
return true;
} else {
if (result.endsWith(".htm")) {
result = HtmCache.getInstance().getHtm("data/html/CommunityBoard/" + result, activeChar);
if (result == null) {
activeChar.sendPacket(new HideBoard());
return true;
}
}
Pattern p = Pattern.compile("bypass +-h");
Matcher m = p.matcher(result);
if (m.find()) {
result = m.replaceAll("bypass");
}
separateAndSend(result, activeChar);
return true;
}
} else {
return false;
}
}
activeChar.sendPacket(new НеЛагатьИДанатыНаКвартируПлиз());
Пакета HideBoard нет вообще, от слова совсем.
{
private static final String _S__6E_SHOWBOARD = "[S] 6e ShowBoard";
@Override
protected final void writeImpl()
{
writeC(0x6E);
writeC(0x00); //c4 1 to show community 00 to hide
}
/* (non-Javadoc)
* @see ru.catssoftware.gameserver.serverpackets.ServerBasePacket#getType()
*/
@Override
public String getType()
{
return _S__6E_SHOWBOARD;
}
}
public class ShowBoard extends L2GameServerPacket
{
private static final String _S__6E_SHOWBOARD = "[S] 6e ShowBoard";
private String _htmlCode;
private String _id;
private List<String> _arg;
public ShowBoard(String htmlCode, String id)
{
_id = id;
_htmlCode = htmlCode;
}
public ShowBoard(List<String> arg)
{
_id = "1002";
_htmlCode = null;
_arg = arg;
}
private byte[] get1002()
{
int len = _id.getBytes().length * 2 + 2;
for (String arg : _arg)
{
len += (arg.getBytes().length + 4) * 2;
}
byte data[] = new byte[len];
int i = 0;
for (int j = 0; j < _id.getBytes().length; j++, i += 2)
{
data[i] = _id.getBytes()[j];
data[i + 1] = 0;
}
data[i++] = 8;
data[i++] = 0;
for (String arg : _arg)
{
for (int j = 0; j < arg.getBytes().length; j++, i += 2)
{
data[i] = arg.getBytes()[j];
data[i + 1] = 0;
}
data[i++] = 0x20;
data[i++] = 0x0;
data[i++] = 0x8;
data[i++] = 0x0;
}
return data;
}
@Override
protected final void writeImpl()
{
writeC(0x6E);
writeC(0x01); //c4 1 to show community 00 to hide
writeS("bypass _bbshome"); // top
writeS("bypass _bbsgetfav"); // favorite
writeS("bypass _bbsloc"); // region
writeS("bypass _bbsclan"); // clan
writeS("bypass _bbsmemo"); // memo
writeS("bypass _bbsmail"); // mail
writeS("bypass _bbsfriends"); // friends
writeS("bypass bbs_add_fav"); // add fav.
if(_htmlCode!=null)
_htmlCode = HTMParser.parseHTM(_htmlCode, getClient().getActiveChar());
// if(_id.equalsIgnoreCase("101"))
// getClient().getActiveChar().cleanBypasses(true);
// _htmlCode = getClient().getActiveChar().encodeBypasses(_htmlCode, true);
if (!_id.equals("1002"))
{
// getBytes is a very costly operation, and should only be called once
byte[] htmlBytes = new byte[0];
if (_htmlCode != null) {
htmlBytes = _htmlCode.getBytes();
}
byte[] idBytes = _id.getBytes();
byte data[] = new byte[2 + 2 + 2 + idBytes.length * 2 + 2 * ((_htmlCode != null) ? htmlBytes.length : 0)];
int i = 0;
for (int j = 0; j < idBytes.length; j++, i += 2)
{
data[i] = idBytes[j];
data[i + 1] = 0;
}
data[i++] = 8;
data[i++] = 0;
byte[] html = new byte[0];
if (_htmlCode != null)
{
try
{
html = _htmlCode.getBytes("UTF-16LE");
}
catch (UnsupportedEncodingException e)
{
html = new byte[_htmlCode.length() * 2];
for (int j = 0; j < htmlBytes.length; i += 2, j++)
{
data[i] = htmlBytes[j];
data[i + 1] = 0;
}
}
}
System.arraycopy(html, 0, data, i, html.length);
i += html.length;
data[i++] = 0;
data[i] = 0;
writeB(data);
}
else
{
writeB(get1002());
}
}
/* (non-Javadoc)
* @see ru.catssoftware.gameserver.serverpackets.ServerBasePacket#getType()
*/
@Override
public String getType()
{
return _S__6E_SHOWBOARD;
}
}
там есть второй пакет, который уж точно должен бытьdefault_npc, у меня нет отдельного скрипта для CB. Только через ядро всё. А в нем нет функции HandleShowBBS. Может она как-то по-другому там называется?
В CommunityBoard.class этого ничего нет. Где вы все это нашли?
activeChar.sendPacket(new HideBoard());
ну лучше чтоб не менять class в ядре постоянно, вынести как ни будь это в дпmasone, Да это то я нашел, а откуда люди выше пишут про showboard и UIAPI_WINDOW?
Я так понял, что мне надо найти класс, отвечающий за ТП через Comm.Board и найти строки, где описан метод телепортации. А потом в конце этого метода добавить? Правильно понимаю?Java:activeChar.sendPacket(new HideBoard());
лучше бы вообще не использовать от чего нету исходниковну лучше чтоб не менять class в ядре постоянно, вынести как ни будь это в дп
я не знаю я не default_npcDarkEmpire, вот такой вариант, мне кажется, проще. Как это сделать?
//del, для КБ не подходитя не знаю я не default_npc
writeC(_show); //c4 0x01 to show community 0x00 to hide
for (String bbsBypass : DIRECT_BYPASS) {
writeS(bbsBypass);
}
writeS(_addFav);
String str = _id + "\u0008";
if(_id != null && !_id.isEmpty() && !_id.equals("1002")) {
if(_htmlCode != null) {
str += _htmlCode;
}
} else {
for(String arg : _arg) {
str += arg + " \u0008";
}
}
writeS(str);
А чё там было? костыли то есть, в целом//del, для КБ не подходит
там было для диалогов с нпцА чё там было? костыли то есть, в целом
я думал поискать мб есть окна которые закрываются при телепорте, но таких не нашелА чё там было? костыли то есть, в целом
О каком огрызке ты говоришь если это ShowBoard, ни какого пакета HideBoard нет. Зачем ты вообще activeChar.sendPacket(new HideBoard()); это запостил ?ну как сказать это огрызок этого пакетаJava:{ private static final String _S__6E_SHOWBOARD = "[S] 6e ShowBoard"; @Override protected final void writeImpl() { writeC(0x6E); writeC(0x00); //c4 1 to show community 00 to hide } /* (non-Javadoc) * @see ru.catssoftware.gameserver.serverpackets.ServerBasePacket#getType() */ @Override public String getType() { return _S__6E_SHOWBOARD; } }
Java:public class ShowBoard extends L2GameServerPacket { private static final String _S__6E_SHOWBOARD = "[S] 6e ShowBoard"; private String _htmlCode; private String _id; private List<String> _arg; public ShowBoard(String htmlCode, String id) { _id = id; _htmlCode = htmlCode; } public ShowBoard(List<String> arg) { _id = "1002"; _htmlCode = null; _arg = arg; } private byte[] get1002() { int len = _id.getBytes().length * 2 + 2; for (String arg : _arg) { len += (arg.getBytes().length + 4) * 2; } byte data[] = new byte[len]; int i = 0; for (int j = 0; j < _id.getBytes().length; j++, i += 2) { data[i] = _id.getBytes()[j]; data[i + 1] = 0; } data[i++] = 8; data[i++] = 0; for (String arg : _arg) { for (int j = 0; j < arg.getBytes().length; j++, i += 2) { data[i] = arg.getBytes()[j]; data[i + 1] = 0; } data[i++] = 0x20; data[i++] = 0x0; data[i++] = 0x8; data[i++] = 0x0; } return data; } @Override protected final void writeImpl() { writeC(0x6E); writeC(0x01); //c4 1 to show community 00 to hide writeS("bypass _bbshome"); // top writeS("bypass _bbsgetfav"); // favorite writeS("bypass _bbsloc"); // region writeS("bypass _bbsclan"); // clan writeS("bypass _bbsmemo"); // memo writeS("bypass _bbsmail"); // mail writeS("bypass _bbsfriends"); // friends writeS("bypass bbs_add_fav"); // add fav. if(_htmlCode!=null) _htmlCode = HTMParser.parseHTM(_htmlCode, getClient().getActiveChar()); // if(_id.equalsIgnoreCase("101")) // getClient().getActiveChar().cleanBypasses(true); // _htmlCode = getClient().getActiveChar().encodeBypasses(_htmlCode, true); if (!_id.equals("1002")) { // getBytes is a very costly operation, and should only be called once byte[] htmlBytes = new byte[0]; if (_htmlCode != null) { htmlBytes = _htmlCode.getBytes(); } byte[] idBytes = _id.getBytes(); byte data[] = new byte[2 + 2 + 2 + idBytes.length * 2 + 2 * ((_htmlCode != null) ? htmlBytes.length : 0)]; int i = 0; for (int j = 0; j < idBytes.length; j++, i += 2) { data[i] = idBytes[j]; data[i + 1] = 0; } data[i++] = 8; data[i++] = 0; byte[] html = new byte[0]; if (_htmlCode != null) { try { html = _htmlCode.getBytes("UTF-16LE"); } catch (UnsupportedEncodingException e) { html = new byte[_htmlCode.length() * 2]; for (int j = 0; j < htmlBytes.length; i += 2, j++) { data[i] = htmlBytes[j]; data[i + 1] = 0; } } } System.arraycopy(html, 0, data, i, html.length); i += html.length; data[i++] = 0; data[i] = 0; writeB(data); } else { writeB(get1002()); } } /* (non-Javadoc) * @see ru.catssoftware.gameserver.serverpackets.ServerBasePacket#getType() */ @Override public String getType() { return _S__6E_SHOWBOARD; } }
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?