Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Lineage II (https://forum.zone-game.info/forumdisplay.php?f=34)
-   -   Запрет телепорта во время боя Community Board (https://forum.zone-game.info/showthread.php?t=32500)

the2fantasy 16.11.2013 05:51

Запрет телепорта во время боя Community Board
 
Доброго времени суток.
У меня сборка на основах ядра фениксов, l2p. Epilogue

Ранее в зборке стоял запрет на использование community board если персонаж находиться в режиме боя, то есть оно даже не открывалось.
Я это все дело в ядре поправил, и прикрутил к конфигу. Все стало окей, пользоваться СВ в режиме боя можно.

Но появился следующий вопрос.
Теперь во время боя можно телепортироваться, бафаться.
Где и как это поправить в ядре?
За телепорт отвечает мультиселл с байпасами типа -h _bbsteleport_goto x y z
Вот так я попытался запретить доступ к байпасу во время определенных действий в ядре с файлом RequestByPassToServer.
Цитата:

else if(bypass.startsWith("_goto"))
{
if( (activeChar.isDead() && !Config.communityInTeleport) || (activeChar.isAlikeDead() && !Config.communityInTeleport) || (activeChar.isCastingNow() && !Config.communityInTeleport) || (activeChar.isInCombat() && !Config.communityInTeleport) || (activeChar.isAttackingNow() && !Config.communityInTeleport) || (activeChar.isInOlympiadMode() && !Config.communityInTeleport) || (activeChar.isFlying() && !Config.communityInTeleport) || (activeChar.isInFlyingTransform() && !Config.communityInTeleport) || (activeChar.isEvent() && !Config.communityForEventPvP))
{
activeChar.sendMessage("Телепорт нельзя использовать в данных условиях.");
return;
}
if( !Config.communityInInstances && activeChar.getReflectionId() > 0)
{
activeChar.sendMessage("Телепорт нельзя использовать в инстах.");
return;
}
mICommunityHandler mICommunityHandler = mCommunityHandler.getInstance().getHandler(bypass) ;
if(mICommunityHandler != null)
{
mICommunityHandler.useHandler(activeChar.getObject Id(), bypass);
}
}
Метод && !Config.communityInTeleport) контролирует значение true or false.
Но при том или ином значении ничего не меняется.


Помогите решить)

elastic 16.11.2013 11:55

Re: Запрет телепорта во время боя Community Board
 
Я, конечно, не ковырялся в коммунке, но думаю, что Вы не туда копаете. Если память не изменяет, то скрипты сервисов коммунки лежат в дп\scripts\services\communityBoard, и манипуляции я бы стал производить производить там. Естественно не 100% инфа, прежде посмотрите сами классы.

n3k0nation 16.11.2013 15:21

Re: Запрет телепорта во время боя Community Board
 
Цитата:

Сообщение от the2fantasy (Сообщение 334018)
Доброго времени суток.
У меня сборка на основах ядра фениксов, l2p. Epilogue

Ранее в зборке стоял запрет на использование community board если персонаж находиться в режиме боя, то есть оно даже не открывалось.
Я это все дело в ядре поправил, и прикрутил к конфигу. Все стало окей, пользоваться СВ в режиме боя можно.

Но появился следующий вопрос.
Теперь во время боя можно телепортироваться, бафаться.
Где и как это поправить в ядре?
За телепорт отвечает мультиселл с байпасами типа -h _bbsteleport_goto x y z
Вот так я попытался запретить доступ к байпасу во время определенных действий в ядре с файлом RequestByPassToServer.


Метод && !Config.communityInTeleport) контролирует значение true or false.
Но при том или ином значении ничего не меняется.


Помогите решить)

Пишите это условие в холдер обработки КБ.

the2fantasy 16.11.2013 16:07

Re: Запрет телепорта во время боя Community Board
 
Спасибо, разобрался.

добавил метод

Цитата:

else if(command.startsWith("_bbsteleport_goto"))
{
boolean allowTeleport = false;
String coords = command.substring(18).trim();
if (player.isInCombat())
{
player.sendMessage("Вы не можете телепортироватся в режиме боя.");
allowTeleport = false;
}
в game\data\scripts\community\teleport\teleport.java


Текущее время: 10:18. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot