В баффере Community Board при использовании набора критует клиент, сборка l2jmobius secret of empire
Сделал баффер добавил баффы 26шт и денсы,но не критует только если 6 денса вписаны больше 6-и денсов криует клиент с такой ошибкой.
P.S Слоты в конфигах баффа и денсов увеличил с запасом.
В консоли никаких ошибок нет.
Список разрешенных бафов в конфиге [CommunityBoard.ini]
HTML:
# List of available buffs to avoid exploits.
# Usage: SkillId1,SkillId2...
CommunityAvailableBuffs = 1035,1036,1040,1043,1045,1048,1062,1068,1077,1085,1086,1204,1240,1388,1392,1393,1542,1355,1356,1357,1414,1363,1243,1078,1033,1032,1416,1415,1365,264,265,266,267,268,269,270,304,305,349,363,364,271,272,273,274,275,276,277,310,311,365,915,1461,1284,1362,1073,1303,1268,1059,1397,1304,1259,1087,1460
else if (command.startsWith("_bbsbuff"))
{
final String fullBypass = command.replace("_bbsbuff;", "");
final String[] buypassOptions = fullBypass.split(";");
final int buffCount = buypassOptions.length - 1;
final String page = buypassOptions[buffCount];
if (player.getInventory().getInventoryItemCount(Config.COMMUNITYBOARD_CURRENCY, -1) < (Config.COMMUNITYBOARD_BUFF_PRICE * buffCount))
{
player.sendMessage("Not enough currency!");
}
else
{
player.destroyItemByItemId("CB_Buff", Config.COMMUNITYBOARD_CURRENCY, Config.COMMUNITYBOARD_BUFF_PRICE * buffCount, player, true);
final PetInstance pet = player.getPet();
List<Creature> targets = new ArrayList<>(4);
targets.add(player);
if (pet != null)
{
targets.add(pet);
}
player.getServitors().values().stream().forEach(targets::add);
for (int i = 0; i < buffCount; i++)
{
final Skill skill = SkillData.getInstance().getSkill(Integer.parseInt(buypassOptions[i].split(",")[0]), Integer.parseInt(buypassOptions[i].split(",")[1]));
if (!Config.COMMUNITY_AVAILABLE_BUFFS.contains(skill.getId()))
{
continue;
}
targets.stream().filter(target -> !target.isSummon() || !skill.isSharedWithSummon()).forEach(target ->
{
skill.applyEffects(player, target);
if (Config.COMMUNITYBOARD_CAST_ANIMATIONS)
{
player.sendPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay()));
// not recommend broadcast
// player.broadcastPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay()));
}
});
}
}
returnHtml = HtmCache.getInstance().getHtm(player, "data/html/CommunityBoard/Custom/" + page + ".html");
}
У меня только одно предположение, если включен конфин COMMUNITYBOARD_CAST_ANIMATIONS (он же
CommunityCastAnimations в файле ./config/Custom/CommunityBoard.ini) и сервак начинает засыпать пакетами MagicSkillUse что и вызывает крит.
else if (command.startsWith("_bbsbuff"))
{
final String fullBypass = command.replace("_bbsbuff;", "");
final String[] buypassOptions = fullBypass.split(";");
final int buffCount = buypassOptions.length - 1;
final String page = buypassOptions[buffCount];
if (player.getInventory().getInventoryItemCount(Config.COMMUNITYBOARD_CURRENCY, -1) < (Config.COMMUNITYBOARD_BUFF_PRICE * buffCount))
{
player.sendMessage("Not enough currency!");
}
else
{
player.destroyItemByItemId("CB_Buff", Config.COMMUNITYBOARD_CURRENCY, Config.COMMUNITYBOARD_BUFF_PRICE * buffCount, player, true);
final PetInstance pet = player.getPet();
List<Creature> targets = new ArrayList<>(4);
targets.add(player);
if (pet != null)
{
targets.add(pet);
}
player.getServitors().values().stream().forEach(targets::add);
for (int i = 0; i < buffCount; i++)
{
final Skill skill = SkillData.getInstance().getSkill(Integer.parseInt(buypassOptions[i].split(",")[0]), Integer.parseInt(buypassOptions[i].split(",")[1]));
if (!Config.COMMUNITY_AVAILABLE_BUFFS.contains(skill.getId()))
{
continue;
}
targets.stream().filter(target -> !target.isSummon() || !skill.isSharedWithSummon()).forEach(target ->
{
skill.applyEffects(player, target);
if (Config.COMMUNITYBOARD_CAST_ANIMATIONS)
{
player.sendPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay()));
// not recommend broadcast
// player.broadcastPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay()));
}
});
}
}
returnHtml = HtmCache.getInstance().getHtm(player, "data/html/CommunityBoard/Custom/" + page + ".html");
}
У меня только одно предположение, если включен конфин COMMUNITYBOARD_CAST_ANIMATIONS (он же
CommunityCastAnimations в файле ./config/Custom/CommunityBoard.ini) и сервак начинает засыпать пакетами MagicSkillUse что и вызывает крит.