Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
не работает класс мастер в кб.
#1
добавил класс мастера в кб, при нажатии на кнопку карьера, ничего не происходит. в ГСе пишет [01:35:20] WARN Direct access to bypass: _bbsclassmaster / Player: test
подскажите в чем косяк
Ответ
#2
DuMoH4uK Написал:добавил класс мастера в кб, при нажатии на кнопку карьера, ничего не происходит. в ГСе пишет [01:35:20] WARN Direct access to bypass: _bbsclassmaster / Player: test
подскажите в чем косяк
Не смотря на то, что я постоянный член клуба "Экстрасенсы ZoneGame", всё же хотел бы узнать, что за сборка? Но, что-то мне подсказывает, что овероподобная.
Fortuna - non penis, in manus non recipe.
Ответ
#3
Ashe Написал:Не смотря на то, что я постоянный член клуба "Экстрасенсы ZoneGame", всё же хотел бы узнать, что за сборка? Но, что-то мне подсказывает, что овероподобная.
так и есть, исходы овера
Ответ
#4
DuMoH4uK Написал:так и есть, исходы овера

Байпас в сборке пропишите. На форуме таких тем много, смотрите.
Fortuna - non penis, in manus non recipe.
Ответ
#5
если не ошибаюсь, то не хватает -h в байпассе.

как пример - action="bypass -h admin_admin"
Ответ
#6
теперь появляется выбор профессий, но когда нажимаешь на любую из них пишет, что "у вас нет 100 адена". хотя в инвентаре 1 миллион
Ответ
#7
Посмотрите в хендлере обрабочике класс мастера - там же все понятно написано на java
Ответ
#8
Visor Написал:Посмотрите в хендлере обрабочике класс мастера - там же все понятно написано на java
все проверил, по сути все должно работать, но так же пишет у вас нету 100 adena.
PHP код:
<?php 
package services
.community;

import java.util.StringTokenizer;
import l2p.gameserver.Config;
import l2p.gameserver.handler.bbs.CommunityBoardManager;
import l2p.gameserver.handler.bbs.ICommunityBoardHandler;
import l2p.gameserver.model.Player;
import l2p.gameserver.model.base.ClassId;
import l2p.gameserver.modul.Merchant;
import l2p.gameserver.scripts.ScriptFile;
import l2p.gameserver.serverpackets.ShowBoard;
import services.community.custom.GeneratePage;

/**
*
* @author voron.dev
*/
public class CommunityBoardClassMaster implements ScriptFile, ICommunityBoardHandler
{
@
Override
public void onLoad()
{
CommunityBoardManager.getInstance().registerHandler(this);
}

@
Override
public void onReload()
{
CommunityBoardManager.getInstance().removeHandler(this);
}

@
Override
public void onShutdown()
{
}

@
Override
public String[] getBypassCommands()
{
return new
String[]
{
"_bbsclassmaster",
"_bbssetclass"
};
}

@
Override
public void onBypassCommand(Player player, String bypass)
{
StringTokenizer st = new StringTokenizer(bypass, "_");
String cmd = st.nextToken();
String html = "";
if(
"bbsclassmaster".equals(cmd))
{
html = GeneratePage.main(genPageCareer(player), player);
}
else if(
bypass.startsWith("_bbssetclass"))
{
ClassId classId = player.getClassId();
int classLvl = classId.level();
if(!
Config.allowClassMaster.contains(classLvl + 1))
{
classLvl = 3;
}
int playerLvl = player.getLevel();
if(
check(playerLvl, classLvl))
{
int itemId = Config.classMasterPriceId[classLvl];
long count = Config.classMasterPriceCount[classLvl];
StringTokenizer st1 = new StringTokenizer(bypass, " ");
st1.nextToken();
int id = Integer.parseInt(st1.nextToken());
for(
ClassId ci : ClassId.values())
{
if(
ci == ClassId.inspector)
{
continue;
}
if(
ci.getId() == id && ci.childOf(classId) && ci.level() == classLvl + 1)
{
if(
Merchant.getPay(player, itemId, count))
{
player.setClassId(id, false, false);
if(
player.isSubClassActive())
{
player.getSubClasses().get(player.getClassId().getId()).setClassId(player.getActiveClassId());
}
else
{
player.setBaseClass(player.getActiveClassId());
}
player.broadcastUserInfo(true);
}
String pBypass = "_bbsclassmaster";
if(
pBypass != null)
{
ICommunityBoardHandler handler = CommunityBoardManager.getInstance().getCommunityHandler(pBypass);
if(
handler != null)
{
handler.onBypassCommand(player, pBypass);
}
}
return;
}
}
}
String pBypass = "_bbsclassmaster";
if(
pBypass != null)
{
ICommunityBoardHandler handler = CommunityBoardManager.getInstance().getCommunityHandler(pBypass);
if(
handler != null)
{
handler.onBypassCommand(player, pBypass);
}
}
}
ShowBoard.separateAndSend(html, player);
}

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

private static
String genPageCareer(Player player)
{
ClassId classId = player.getClassId();
int classLvl = classId.level();
if(!
Config.allowClassMaster.contains(classLvl + 1))
{
classLvl = 3;
}
int playerLvl = player.getLevel();
StringBuilder sb = new StringBuilder();
sb.append("Приветствую ").append("<font color=F2C202>").append(player.getName()).append("</font> ");
sb.append("ваша текущая профессия ").append("<font color=F2C202>").append(player.getClassId().name()).append("</font><br>");
if(
check(playerLvl, classLvl))
{
int itemId = Config.classMasterPriceId[classLvl];
long count = Config.classMasterPriceCount[classLvl];
sb.append("<font color=F2C202>Цена: ").append(count).append(" ").append(Merchant.getItemName(itemId)).append("</font><br>");
sb.append("Доступные профессии:<br1>");
sb.append("<table fixwidth=700><tr>");
for(
ClassId ci : ClassId.values())
{
if(
ci == ClassId.inspector)
{
continue;
}
if(
ci.childOf(classId) && ci.level() == classLvl + 1)
{
sb.append("<td>");
sb.append("<button value=\"").append(ci.name()).append("\" ");
sb.append("action=\"bypass _bbssetclass ").append(ci.getId());
sb.append("\" width=150 height=25 back=\"L2UI_CT1.Button_DF_Down\" fore=\"L2UI_CT1.Button_DF\">");
sb.append("</td>");
}
}
sb.append("</tr>");
sb.append("</table>");
}
else
{
switch(
classLvl)
{
case
0:
sb.append("Для того чтобы сменить вашу профессию вы должны достичь: <font color=F2C202>20-го уровня</font>");
break;
case
1:
sb.append("Для того чтобы сменить вашу профессию вы должны достичь: <font color=F2C202>40-го уровня</font>");
break;
case
2:
sb.append("Для того чтобы сменить вашу профессию вы должны достичь: <font color=F2C202>76-го уровня</font>");
break;
default:
sb.append("Для вас нет доступных профессий.");
break;
}
}
String htm = "";
try
{
htm = new String(sb.toString().getBytes(), "utf-8");
}
catch(
Exception e)
{
e.printStackTrace();
}
return
htm;
}

private static
boolean check(int playerLvl, int classLvl)
{
if(
playerLvl >= 20 && classLvl == 0 || playerLvl >= 40 && classLvl == 1 || playerLvl >= 76 && classLvl == 2)
{
return
true;
}
return
false;
}
}
PHP код:
<?php 
package l2p
.gameserver.modul;

import l2p.gameserver.data.xml.holder.ItemHolder;
import l2p.gameserver.model.Player;
import l2p.gameserver.model.items.ItemInstance;
import l2p.gameserver.model.items.PcInventory;
import l2p.gameserver.templates.item.ItemTemplate;

public class
Merchant
{
public static
boolean getPay(Player paramPlayer, int paramInt, long paramLong)
{
if (
paramPlayer.getInventory().getItemByItemId(paramInt) == null)
{
paramPlayer.sendMessage("Цена: " + paramLong + " " + getItemName(paramInt));
paramPlayer.sendMessage("У вас вообще нету " + getItemName(paramInt));
return
false;
}
if (
getItemCount(paramPlayer, paramInt) > paramLong)
{
paramPlayer.sendMessage("Цена: " + paramLong + " " + getItemName(paramInt));
paramPlayer.sendMessage("У вас нету " + paramLong + " " + getItemName(paramInt));
return
false;
}
paramPlayer.getInventory().destroyItemByItemId(paramInt, paramLong);
return
true;
}

public static
void addItem(Player paramPlayer, int paramInt, long paramLong)
{
paramPlayer.getInventory().addItem(paramInt, paramLong);
StringBuilder localStringBuilder = new StringBuilder();
localStringBuilder.append("Вы получили ");
localStringBuilder.append(paramLong).append(" ");
localStringBuilder.append(getItemName(paramInt));
paramPlayer.sendMessage(localStringBuilder.toString());
}

public static
String getItemName(int paramInt)
{
return
ItemHolder.getInstance().getTemplate(paramInt).getName();
}

public static
long getItemCount(Player paramPlayer, int paramInt)
{
return
paramPlayer.getInventory().getItemByItemId(paramInt).getCount();
}
}
Ответ
#9
action=\"bypass _cbbsbuycert;"

Как пример, хендлер зарегистрирован как я вижу.

п.с Темы чистого овера как бы запрещаются на этом портале.
Ответ
#10
offtop
Fortuna - non penis, in manus non recipe.
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Не работает Expirience у Петов при каче Magican 0 1,068 09-15-2022, 12:44 AM
Последний пост: Magican
  Ява не работает с бд(линукс) LifeAfterWoW 2 2,647 10-20-2019, 11:06 AM
Последний пост: LifeAfterWoW
  Event AprilFools сборка L2J HF5 не работает. Travesil 0 1,209 11-16-2015, 08:17 PM
Последний пост: Travesil
  Не видит класс после замены пула SoniPro 2 1,852 10-14-2015, 09:21 PM
Последний пост: SoniPro
  Скрипт установки сервера не работает. Linux /. SunWar 2 1,329 08-24-2014, 06:48 PM
Последний пост: SunWar
  Не работает зона баф\дебаф the2fantasy 1 1,347 11-29-2013, 12:45 PM
Последний пост: Pendant
  ХФ Сhain Heal скил - как работает на офе? Munhgauzen 8 1,667 11-06-2013, 01:04 AM
Последний пост: ММЗ
  Не работает сервис делевел L2J 6 1,896 11-05-2013, 02:39 AM
Последний пост: L2CCCP
  Класс ZefirKO 11 2,465 07-05-2013, 04:37 PM
Последний пост: Mifesto
  Не работает TvT uberbober 0 1,310 03-10-2013, 12:17 AM
Последний пост: uberbober

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


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