• Новые темы в этом разделе публикуются автоматически при добавлении файла в менеджер ресурсов.
    Ручное создание новых тем невозможно.
Иконка ресурса

Информация о сервере командой .info

kick

Предвестник
Administrator
За веру и верность форуму
Отец-основатель
Сообщения
7 027
Розыгрыши
21
Решения
1
Репутация
5 860
Реакции
6 523
Баллы
2 688
В этой статье рассказывается о том, как сделать отображение реального онлайна
(активных игроков + оффлайн трейдеров) на сервере.

Код:
На данный момент исполнение захватывает только хэндлеры, поэтому для внедрения на свой сервер не требуется перекомпиляция ядра.

Внимание! Работа в исходом виде гарантирована только на сервере L2J HighFiveP5! Для других сборок требуется корректировка имен классов и переменных!

Открываем Gameserver/data/scripts/handlers/MasterHandler.java любым тектовым редактором (Notepad++ в помощь)
и ищем строчки следующего вида:

Код:
import handlers.voicedcommandhandlers.TvTVoicedInfo;
import handlers.voicedcommandhandlers.Wedding;
import handlers.voicedcommandhandlers.stats;

Или подобные(lля тех, кто немного понимает яву - область импортов).
Добавляем ниже них ещё одну строку:

Код:
import handlers.voicedcommandhandlers.Info;

Далее ищем:

Код:
{ // Voiced Command Handlers
            stats.class,
            (Config.L2JMOD_ALLOW_WEDDING ? Wedding.class : null),
            (Config.BANKING_SYSTEM_ENABLED ? Banking.class : null),
            (Config.TVT_ALLOW_VOICED_COMMAND ? TvTVoicedInfo.class : null),
            (Config.L2JMOD_CHAT_ADMIN ? ChatAdmin.class : null),
            (Config.L2JMOD_MULTILANG_ENABLE && Config.L2JMOD_MULTILANG_VOICED_ALLOW ? Lang.class : null),
            (Config.L2JMOD_DEBUG_VOICE_COMMAND ? Debug.class : null),
            (Config.L2JMOD_ALLOW_CHANGE_PASSWORD ? ChangePassword.class : null),
            (Config.L2JMOD_HELLBOUND_STATUS ? Hellbound.class : null),
        },
Или подобные (область загрузки войсхэндлеров).
Добавляем в перечисление наш новый класс:
Код:
(Config.L2JMOD_HELLBOUND_STATUS ? Hellbound.class : null),
            Info.class,
        },
МастерХэндлер обновили... Продолжаем...

Создаём файл по такому пути:Gameserver/data/scripts/handlers/voicedcommandhandlers/Info.java
Со следующим содержимым:
Код:
package handlers.voicedcommandhandlers;

import com.l2jserver.gameserver.cache.HtmCache;
import com.l2jserver.gameserver.handler.IVoicedCommandHandler;
import com.l2jserver.gameserver.model.L2World;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;


public class Info implements IVoicedCommandHandler{
    private static final String[] VOICED_COMMANDS = { "info" };
    private static final String HTML = HtmCache.getInstance().getHtm(null, "data/html/mods/Info.htm");
   
    @Override
    public boolean useVoicedCommand(String command, L2PcInstance activeChar, String params)
    {
        final int All = L2World.getInstance().getAllPlayersCount();
        int Traders = 0;
        for(L2PcInstance ppl : L2World.getInstance().getAllPlayersArray()){
            if ((ppl.getClient().isDetached()) && (ppl.getPrivateStoreType() != L2PcInstance.STORE_PRIVATE_NONE) )
                Traders++;
        }
        final int Active = All - Traders;

        String htmContent = (!HTML.isEmpty()) ? HTML : HtmCache.getInstance().getHtm(activeChar.getHtmlPrefix(), "data/html/mods/Info.htm");
        NpcHtmlMessage npcHtmlMessage = new NpcHtmlMessage(1);
        npcHtmlMessage.setHtml(htmContent);
        npcHtmlMessage.replace("%online_active%", Integer.toString(Active) );
        npcHtmlMessage.replace("%online_traders%", Integer.toString(Traders) );
        npcHtmlMessage.replace("%online_all%", Integer.toString(All) );
       
        activeChar.sendPacket(npcHtmlMessage);
        return true;
    }
   
    @Override
    public String[] getVoicedCommandList()
    {
        return VOICED_COMMANDS;
    }
}

Файл класса создали... Дальше нам нужно создать ХТМЛ-ку, в которой всё и будет создаваться.
Создаем файл по такому пути: Gameserver/data/html/mods/Info.htm
Его содержимое:

Код:
<html><body>
<title>Информация о сервере</title>
<center>Статистика онлайн:</center><br>
<table>
    <tr>
        <td width=70>Онлайн игроков:</td>
        <td width=30>%online_active%</td>
    </tr>
    <tr>
        <td width=70>Онлайн торговцев:</td>
        <td width=30>%online_traders%</td>
    </tr>
    <tr>
        <td width=70>Итого:</td>
        <td width=30>%online_all%</td>
    </tr>
</table>
</body></html>
Готово. Заходим в игру и прописываем .info. Откроется HTML-ка со статистикой сервера.​
 

Назад
Сверху Снизу