Рейтинг темы:
  • 1 Голос(ов) - 1 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Мультиселл в CB
#1
Сборка l2jserver

Цитата:# Default: _bbshome
BBSDefault = _bbshome

Как правильно написать, чтобы открыло мультиселл?
Код:
<button value="Одежда" action="[U]bypass -h bbshome_%objectId%_multisell 201[/U]"   width=200 height=31 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"><br>

Много вариантов пробовал пишет
the command bbshome_%objectId%_multisell 201 is not implemented yet
Ответ
#2
Если это голый l2j - то в нем этого не будет
Ответ
#3
а что и где нужно создать/добавить, чтобы небыл "голый l2j" ?
Ответ
#4
Нужно создать хэндлер (обработчик) для коммунити или глобальный. Плюс подправить сам класс мультиселла на предмет условий, дабы игроки могли корректно покупать вещи без NPC (по умолчанию так может делать только админ).

Можете взять мою древнюю сборку (Legacy ver 5) и посмотреть декомпилятором как реализовано. Или перетащите классы целиком, что уж там, лыжа к лыже встанет нормально. Конкретнее сказать пока не могу, торчу на работе еще Sad
Простите, месье, я забыл - оно несколько обфусцировано.

Добавлено через 4 часа 39 минут
И так, я дома. Как это было сделано у меня, класс CommunityBoard:
[SRC="java"]
// Мультиселлы
else if (command.startsWith("_bbs:multisell@") && Config.ALLOW_COMMUNITY_MULTISELL)
{
StringTokenizer st = new StringTokenizer(command, "@");
st.nextToken();
MultiSell.getInstance().separateAndSend(Integer.parseInt(st.nextToken()), activeChar, null, false);
if(Config.PAGE2REBOOT)
TopBBSManager.getInstance().parsecmd(command, activeChar);
return;
}

// Байлисты
else if (command.startsWith("_bbs:buylist@") && Config.ALLOW_COMMUNITY_BUYLIST)
{
StringTokenizer st = new StringTokenizer(command, "@");
st.nextToken();
activeChar.sendPacket(new BuyList(TradeController.getInstance().getBuyList(Integer.parseInt(st.nextToken())), activeChar.getAdena(), 0.0D));
activeChar.sendPacket(new ExBuySellListPacket(activeChar, TradeController.getInstance().getBuyList(Integer.parseInt(st.nextToken())), 0.0D, false));
if(Config.PAGE2REBOOT)
TopBBSManager.getInstance().parsecmd(command, activeChar);
return;
}[/SRC]

Затычки в TopBBSManager:
[SRC="java"]
else if (command.startsWith("_bbs:multisell@"))
separateAndSend(HtmCache.getInstance().getHtm(activeChar.getHtmlPrefix(), "data/html/CommunityBoard/"+Config.PAGE2SHOP+".htm"), activeChar);
else if (command.startsWith("_bbs:buylist@"))
separateAndSend(HtmCache.getInstance().getHtm(activeChar.getHtmlPrefix(), "data/html/CommunityBoard/"+Config.PAGE2SHOP+".htm"), activeChar);[/SRC]

Модификация пакета RequestBuyItem:
Ищите условия if (merchant != null) и if (!player.isGM()) - от них зависит, произойдет ли покупка в коммунити обычным игроком, т.к. покупки без NPC разрешены только GM'ам
Ответ


Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)