Как закрыть Community Board после использования

accavit

Пляшущий с бубном
Участник
Сообщения
133
Розыгрыши
0
Решения
2
Репутация
0
Реакции
22
Баллы
220
Хроники
  1. Interlude
Исходники
Присутствуют
Сборка
Lucera 1.7
После телепорта куда-либо через Community Board персонаж телепортируется, а CB открывает страничку с надписью "Счастливого пути!". После телепорта приходится каждый раз закрывать окно CB. Как можно сделать, чтобы CB закрывалось само после телепорта?
 
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
О каком огрызке ты говоришь если это ShowBoard, ни какого пакета HideBoard нет. Зачем ты вообще activeChar.sendPacket(new HideBoard()); это запостил ?
в люцере это называется HideBoard(), как такового пакета не существует, это я знаю, но есть ShowBoard, но HideBoard видимо сделали просто для закрытия кб..
 

пример построение пакета для l2jmobius interlude
Код:
package org.l2jmobius.gameserver.network.serverpackets;

import java.util.List;

import org.l2jmobius.commons.network.PacketWriter;
import org.l2jmobius.commons.util.StringUtil;
import org.l2jmobius.gameserver.network.OutgoingPackets;

public class HideBoard implements IClientOutgoingPacket
{

  
    @Override
    public boolean write(PacketWriter packet)
    {
        OutgoingPackets.SHOW_BOARD.writeId(packet);
        packet.writeC(0x00); // 1 to show, 0 to hide
        packet.writeS("");
        packet.writeS("");
        packet.writeS("");
        packet.writeS("");
        packet.writeS("");
        packet.writeS("");
        packet.writeS("");
        packet.writeS("");
        packet.writeS("");
        return true;
    }
}

основаная идея это очистить все параметры в пекете и передать 0x00 вместо 0x01

пример использования


Код:
player.sendPacket(new HideBoard());
 
  • Мне нравится
Реакции: Rolo
он же уже прописан в куске этого кода.
default_npc, у меня нет отдельного скрипта для CB. Только через ядро всё. А в нем нет функции HandleShowBBS. Может она как-то по-другому там называется?

Java:
    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) {
         [B][COLOR=rgb(226, 80, 65)]       activeChar.sendPacket(new HideBoard());[/COLOR][/B]
                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;
        }
    }

Есть вот такой кусок кода похожий
if (result.endsWith(".htm")) {
result = HtmCache.getInstance().getHtm("data/html/CommunityBoard/" + result, activeChar);
if (result == null) {
activeChar.sendPacket(new HideBoard());
return true;
}
 
Назад
Сверху Снизу