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

Реализация Личного Кабинета

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

И так выкладываю личный кабинет для оверов

 

package services.community.custom;

 

import org.mmocore.gameserver.Config;

import org.mmocore.gameserver.data.htm.HtmCache;

import org.mmocore.gameserver.handler.bbs.CommunityBoardManager;

import org.mmocore.gameserver.handler.bbs.ICommunityBoardHandler;

import org.mmocore.gameserver.handler.voicecommands.IVoicedCommandHandler;

import org.mmocore.gameserver.handler.voicecommands.VoicedCommandHandler;

import org.mmocore.gameserver.model.Player;

import org.mmocore.gameserver.scripts.ScriptFile;

import org.mmocore.gameserver.serverpackets.ShowBoard;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

 

import java.text.SimpleDateFormat;

 

/**

* @author Russian

*

* Реализовано:

* - реализовал вывод ника

* - реализовал вывод статуса аккаунта, Обычный или Премиум

* - реализовал вывод рейтов и изменение значений когда включен премиум аккаунт

* - реализовал вывод названия общего аккаунта персонажа

* - реализовал вывод клана и если игрок не состоит то пишем "нет клана"

* - реализовал вывод IP адресса аккаунта

*/

public class CommunityAccount implements ScriptFile, ICommunityBoardHandler {

private static final Logger _log = LoggerFactory.getLogger(CommunityAccount.class);

 

@Override

public String[] getBypassCommands() {

return new String[]{

"_bbsaccount", //страница кабинета

"_bbsaccount_help", //страница помощи

"_bbsaccount_cfg", //различные настройки

"_bbsaccount_bind", //безопасность

"_bbsaccount_repair", //восстановить персонажа

"_bbsaccount_password", //изменить пароль

};

}

 

@Override

public void onBypassCommand(Player player, String bypass) {

if (bypass.equals("_bbsaccount")) {

showMain(player);

} else if (bypass.equals("_bbsaccount_help")) {

showHelp(player);

} else if (bypass.startsWith("_bbsaccount_cfg")) {

IVoicedCommandHandler cfg_voice = VoicedCommandHandler.getInstance().getVoicedCommandHandler("cfg");

if (cfg_voice != null) {

cfg_voice.useVoicedCommand("cfg", player, "");

return;

}

} else if (bypass.startsWith("_bbsaccount_bind")) {

IVoicedCommandHandler bind_voice = VoicedCommandHandler.getInstance().getVoicedCommandHandler("bind");

if (bind_voice != null) {

bind_voice.useVoicedCommand("bind", player, "");

return;

}

} else if (bypass.startsWith("_bbsaccount_repair")) {

IVoicedCommandHandler repair_voice = VoicedCommandHandler.getInstance().getVoicedCommandHandler("repair");

if (repair_voice != null) {

repair_voice.useVoicedCommand("repair", player, "");

return;

}

} else if (bypass.startsWith("_bbsaccount_password")) {

IVoicedCommandHandler password_voice = VoicedCommandHandler.getInstance().getVoicedCommandHandler("password");

if (password_voice != null) {

password_voice.useVoicedCommand("password", player, "");

return;

}

}

}

 

private String getStatus(Player player)

{

return player.isPremium() ? "<font color=\"LEVEL\">премиум</font>" : "обычный";

}

 

private void showMain(Player player)

{

if (player == null) {

return;

}

 

String htm = HtmCache.getInstance().getNotNull("scripts/services/community/account/main.htm", player);

StringBuilder sb = new StringBuilder();

SimpleDateFormat format_time = new SimpleDateFormat("HH:mm:ss");

SimpleDateFormat format_days = new SimpleDateFormat("dd");

 

//Отдельные переменные

htm = htm.replace("<?content?>", sb.toString());

htm = htm.replace("<?Name_Server?>", Config.NAME_SERVER);

//Ниже выводим информацию из переменных

htm = htm.replace("<?STATUS_ACCOUNT?>", getStatus(player));

htm = htm.replace("<?NAME_ACCOUNT?>", "<font color=\"LEVEL\">" + player.getName() + "</font>");

htm = htm.replace("<?ACCOUNT_IP?>", player.getIP());

htm = htm.replace("<?ACCOUNT_CLAN?>", player.getClan() == null ? "нет клана" : player.getClan().getName() + ", уровень " + player.getClan().getLevel());

htm = htm.replace("<?ACCOUNT_MAIN?>", player.getAccountName());

htm = htm.replace("<?CHARACTER_ONLINE?>", format_time.format(player.getOnlineTime()) + ", дней " + format_days.format(player.getOnlineTime())); //вывести правильно игровое время персонажа игрока

//Ниже выводим из опций рейты

htm = htm.replace("<?RATE_XP?>", String.valueOf(player.getPremiumExp()));

htm = htm.replace("<?RATE_SP?>", String.valueOf(player.getPremiumSp()));

htm = htm.replace("<?RATE_ADENA?>", String.valueOf(player.getPremiumAdena()));

htm = htm.replace("<?RATE_ITEMS?>", String.valueOf(player.getPremiumItems()));

htm = htm.replace("<?RATE_SPOIL?>", String.valueOf(player.getPremiumSpoil()));

htm = htm.replace("<?RATE_ATT?>", String.valueOf(player.getPremiumAttrChance()));

htm = htm.replace("<?RATE_ENCHANT?>", String.valueOf(player.getPremiumEnchChance()));

ShowBoard.separateAndSend(htm, player);

}

 

private void showHelp(Player player)

{

if (player == null) {

return;

}

 

String htm = HtmCache.getInstance().getNotNull("scripts/services/community/account/help.htm", player);

StringBuilder sb = new StringBuilder();

 

//Отдельные переменные

htm = htm.replace("<?content?>", sb.toString());

htm = htm.replace("<?Name_Server?>", Config.NAME_SERVER);

ShowBoard.separateAndSend(htm, player);

}

 

@Override

public void onWriteCommand(Player player, String bypass, String arg1, String arg2, String arg3, String arg4, String arg5) {}

 

@Override

public void onLoad() {

if (Config.COMMUNITYBOARD_ENABLED) {

_log.info("CommunityBoard: Account loaded.");

CommunityBoardManager.getInstance().registerHandler(this);

}

}

 

@Override

public void onReload() {

CommunityBoardManager.getInstance().removeHandler(this);

}

 

@Override

public void onShutdown() {}

}

 

 

P.S привязку делать самим.

Config.java

 

public static String NAME_SERVER;

NAME_SERVER = properties.getProperty("CommunityNameServer", "Russian");

 

<html><body><center>

<table><tr>

<td><button value="Главная" action="bypass _bbspage:index" width=90 height=25 back="L2UI_ct1.button_df_down" fore="L2UI_ct1.button_df"></td>

<td><button value="Магазин" action="bypass _bbspage:shop" width=90 height=25 back="L2UI_ct1.button_df_down" fore="L2UI_ct1.button_df"></td>

<td><button value="Баффы" action="bypass _cbbsbuffer 0" width=90 height=25 back="L2UI_ct1.button_df_down" fore="L2UI_ct1.button_df"></td>

<td><button value="Карьера" action="bypass _bbservices profession" width=90 height=25 back="L2UI_ct1.button_df_down" fore="L2UI_ct1.button_df"></td>

<td><button value="Телепорт" action="bypass _cbbsteleportlist" width=90 height=25 back="L2UI_ct1.button_df_down" fore="L2UI_ct1.button_df"></td>

<td><button value="Кабинет" action="bypass _bbsaccount" width=90 height=25 back="L2UI_ct1.button_df_down" fore="L2UI_ct1.button_df"></td>

<td><button value="Справка" action="bypass _bbspage:help" width=90 height=25 back="L2UI_ct1.button_df_down" fore="L2UI_ct1.button_df"></td>

</tr></table>

<img src="L2UI.SquareWhite" width=600 height=1><table width=600 bgcolor=A7A19A><tr><td height=20 width=600>

<font color=LEVEL>   <a action="bypass _bbspage:index"><?Name_Server?></a> -> Кабинет</font>

</td></tr></table>

<img src="L2UI.SquareWhite" width=600 height=1>

 

<table width=350>

<tr>

<td valign=top>

<table width=250 background="L2UI_CH3.refinewnd_back_Pattern" border=0 height=5>

<tr>

<td align="center"><br><button width=173 height=30 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF" action="bypass -h _bbsaccount_bind" value="Безопасность"></td>

</tr>

<tr>

<td align="center"><button width=173 height=30 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF" action="bypass -h _bbs_add_fav" value="Журнал доступа"></td>

</tr>

<tr>

<td align="center"><button width=173 height=30 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF" action="bypass -h _bbsaccount_password" value="Изменить пароль"></td>

</tr>

<tr>

<td align="center"><button width=173 height=30 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF" action="bypass -h _bbsaccount_repair" value="Восстановить персонажа"></td>

</tr>

<tr>

<td align="center"><button width=173 height=30 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF" action="bypass -h _bbsaccount_cfg" value="Различные настройки"></td>

</tr>

<tr>

<td align="center"><button width=173 height=30 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF" action="bypass -h _bbs_add_fav" value="Привилегии"></td>

</tr>

<tr>

<td align="center"><button width=173 height=30 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF" action="bypass -h _bbsaccount_help" value="Помощь"><br></td>

</tr>

</table>

<table width=310 border=0>

<tr><td width=200> </td></tr>

</table>

</td>

 

<td valign=top>

<img src="L2UI.SquareWhite" width=291 height=1>

<table width=298 bgcolor=A7A19A>

<tr><td align="center">

<font color=LEVEL>ИНФОРМАЦИЯ АККАУНТА</font>

</td></tr></table>

<img src="L2UI.SquareWhite" width=291 height=1>

<table width=292 bgcolor=414141 border=0 height=5>

<tr>

<td>Ваш ip: <?ACCOUNT_IP?></td>

</tr>

<tr>

<td>Статус аккаунта: <?STATUS_ACCOUNT?></td>

</tr>

<tr>

<td>Общий аккаунт персонажа: <?ACCOUNT_MAIN?></td>

</tr>

<tr>

<td>Находитесь в клане: <?ACCOUNT_CLAN?></td>

</tr>

<tr>

<td>Ник персонажа: <?NAME_ACCOUNT?></td>

</tr>

<tr>

<td>Время игры: <?CHARACTER_ONLINE?></td>

</tr>

</table>

<img src="L2UI.SquareWhite" width=291 height=1>

 

<td valign=top>

<img src="L2UI.SquareWhite" width=291 height=1>

<table width=300 bgcolor=A7A19A>

<tr><td align="center">

<font color=LEVEL>ИНФОРМАЦИЯ РЕЙТОВ</font>

</td></tr></table>

<img src="L2UI.SquareWhite" width=291 height=1>

<table width=300 bgcolor=414141 border=0 height=5>

<tr>

<td>Хп: <font color=LEVEL>х<?RATE_XP?></font></td>

</tr>

<tr>

<td>Сп: <font color=LEVEL>х<?RATE_SP?></font></td>

</tr>

<tr>

<td>Адена: <font color=LEVEL>х<?RATE_ADENA?></font></td>

</tr>

<tr>

<td>Предметы: <font color=LEVEL>х<?RATE_ITEMS?></font></td>

</tr>

<tr>

<td>Спойл: <font color=LEVEL>х<?RATE_SPOIL?></font></td>

</tr>

<tr>

<td>Шанс аттрибута: <font color=LEVEL>%<?RATE_ATT?></font></td>

</tr>

<tr>

<td>Шанс заточки: <font color=LEVEL>%<?RATE_ENCHANT?></font></td>

</tr>

</table>

<img src="L2UI.SquareWhite" width=291 height=1>

 

</td>

</tr>

</table>

</center></body></html>

 

 

  • Upvote 2

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


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

Ты писал, что не знаешь, как l2-dev поместили его в Избранное. Что мешает вместо main.htm поместить кабинет в bbs_getfavorite.htm?

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


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

Весь прикол не будет работать =). У них то по другому, и я кажется знаю как сделать

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


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

Кто знает у l2 dev после покупки сборки можно будет личный каб на главную выводить ? ну что бы типа приветствие в кб + мини информация по вашему чару и тд и тп.

 

Там разработчик нормальный , и вообще кто пользуеться их продуктом , что можете сказать о них ?

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


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

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

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

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

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

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

Войти

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

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

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

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

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