В этой статье рассказывается о том, как сделать отображение реального онлайна
(активных игроков + оффлайн трейдеров) на сервере.
Открываем Gameserver/data/scripts/handlers/MasterHandler.java любым тектовым редактором (Notepad++ в помощь)
и ищем строчки следующего вида:
Или подобные(lля тех, кто немного понимает яву - область импортов).
Добавляем ниже них ещё одну строку:
Далее ищем:
Или подобные (область загрузки войсхэндлеров).
Добавляем в перечисление наш новый класс:
МастерХэндлер обновили... Продолжаем...
Создаём файл по такому пути:Gameserver/data/scripts/handlers/voicedcommandhandlers/Info.java
Со следующим содержимым:
Файл класса создали... Дальше нам нужно создать ХТМЛ-ку, в которой всё и будет создаваться.
Создаем файл по такому пути: Gameserver/data/html/mods/Info.htm
Его содержимое:
Готово. Заходим в игру и прописываем .info. Откроется HTML-ка со статистикой сервера.
(активных игроков + оффлайн трейдеров) на сервере.
Код:
На данный момент исполнение захватывает только хэндлеры, поэтому для внедрения на свой сервер не требуется перекомпиляция ядра.
Внимание! Работа в исходом виде гарантирована только на сервере 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>