Перейти к содержанию
Авторизация  
WhatEver

Информация О Сервере Командой .info

Рекомендуемые сообщения

1333900072_manual.png

В этой статье рассказывается о том, как сделать отображение реального онлайна

(активных игроков + оффлайн трейдеров) на сервере.

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

 

Внимание! Работа в исходом виде гарантирована только на сервере 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-ка со статистикой сервера.

© Johnson.

Изменено пользователем WhatEver

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...