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

Community Board В Эвентах

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

Кто поможет как прописать запрет на вызов community board на эвентах. ТВТ, ЦФГ, ласт хиро и другие. С меня +.

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


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

Помоему так

 

public static boolean checkUse(L2PcInstance activeChar)

{

if(activeChar.isDead() ||

activeChar.isAlikeDead() ||

activeChar.isCastingNow() ||

activeChar.isInCombat() ||

activeChar.isAttackingNow() ||

activeChar.isInOlympiadMode() ||

activeChar.isOlympiadStart() ||

activeChar.isInJail() ||

activeChar.isFlying() ||

activeChar.isInDuel() ||

activeChar.getTeam() != 0 ||

activeChar.isParalyzed() ||

activeChar.getOlympiadGameId() != -1 ||

Olympiad.getInstance().isRegistered(activeChar) ||

activeChar.isCursedWeaponEquiped() ||

activeChar.getPvpFlag() != 0 ||

AttackStanceTaskManager.getInstance().getAttackStanceTask(activeChar))

{

activeChar.sendMessage("Ты кто такой? Давай До Свидания - CommunityBoard");

return false;

}

return true;

}

 

 

Или так

 

else if(activeChar.isFestivalParticipant())

{

activeChar.sendMessage("Sorry,you are in a festival.");

return false;

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


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

Это в конфигах отключается

 

Отключён но всё же работает. Нормально работает(точнее не вызывается что правильно) в дуэлях, ПК, в боевой стойке а вот в эвентах работает на ура.

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


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

идем сюда===>\gameserver\communitybbs\CommunityBoard.java

 

if ((activeChar.isDead()) || (activeChar.isAlikeDead()) || (TvTEvent.isStarted()) || (CTF.isStarted()) || (LastHero.isStarted()) || (activeChar.isInSiege()) || (activeChar.isCastingNow()) || (activeChar.isInCombat()) || (activeChar.isAttackingNow()) || (activeChar.isInOlympiadMode()) || (activeChar.isInJail()) || (activeChar.isFlying()) || (activeChar.getKarma() > 0) || (activeChar.isInDuel())) {

activeChar.sendMessage("В данных условиях использовать Баф запрещено");

return;

}

else if (command.startsWith("_bbs_buff"))

{

BuffBBSManager.getInstance().parsecmd(command, activeChar);

}

 

Это только на бафер., на тп , шоп, и тп. по таком же принципе.

  • Upvote 1

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


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

package events.TvT;

 

import java.util.concurrent.ScheduledFuture;

import java.util.logging.Logger;

 

import l2p.Config;

import l2p.common.ThreadPoolManager;

import l2p.extensions.listeners.L2ZoneEnterLeaveListener;

import l2p.extensions.multilang.CustomMessage;

import l2p.extensions.scripts.Functions;

import l2p.extensions.scripts.ScriptFile;

import l2p.gameserver.Announcements;

import l2p.gameserver.clientpackets.Say2C;

import l2p.gameserver.instancemanager.CastleManager;

import l2p.gameserver.instancemanager.ServerVariables;

import l2p.gameserver.instancemanager.ZoneManager;

import l2p.gameserver.model.L2Character;

import l2p.gameserver.model.L2Object;

import l2p.gameserver.model.L2ObjectsStorage;

import l2p.gameserver.model.L2Player;

import l2p.gameserver.model.L2Skill;

import l2p.gameserver.model.L2Territory;

import l2p.gameserver.model.L2Zone;

import l2p.gameserver.model.L2Zone.ZoneType;

import l2p.gameserver.model.entity.olympiad.Olympiad;

import l2p.gameserver.model.entity.residence.Castle;

import l2p.gameserver.model.entity.siege.territory.TerritorySiege;

import l2p.gameserver.serverpackets.Revive;

import l2p.gameserver.tables.DoorTable;

import l2p.gameserver.tables.SkillTable;

import l2p.util.Files;

import l2p.util.GArray;

import l2p.util.GCSArray;

import l2p.util.Location;

import l2p.util.Rnd;

import l2p.util.Util;

 

public class TvT extends Functions implements ScriptFile

{

private static Logger _log = Logger.getLogger(TvT.class.getName());

 

public class StartTask implements Runnable

{

public void run()

{

if(!_active)

return;

 

if(isPvPEventStarted())

{

_log.info("TvT not started: another event is already running");

return;

}

 

if(!Rnd.chance(Config.EVENT_TvTChanceToStart))

{

_log.fine("TvT not started: chance");

return;

}

 

if(TerritorySiege.isInProgress())

{

_log.fine("TvT not started: TerritorySiege in progress");

return;

}

 

for(Castle c : CastleManager.getInstance().getCastles().values())

if(c.getSiege() != null && c.getSiege().isInProgress())

{

_log.fine("TvT not started: CastleSiege in progress");

return;

}

 

start(new String[] { "1", "1" });

}

}

 

private static ScheduledFuture_startTask;

 

private static GCSArray players_list1 = new GCSArray();

private static GCSArray players_list2 = new GCSArray();

private static GCSArray live_list1 = new GCSArray();

private static GCSArray live_list2 = new GCSArray();

 

private static boolean _isRegistrationActive = false;

private static int _status = 0;

private static int _time_to_start;

private static int _category;

private static int _minLevel;

private static int _maxLevel;

private static int _autoContinue = 0;

 

private static ScheduledFuture_endTask;

 

private static L2Zone _zone = ZoneManager.getInstance().getZoneByIndex(ZoneType.battle_zone, 4, true);

ZoneListener _zoneListener = new ZoneListener();

 

private static L2Territory team1loc = new L2Territory(11000001);

private static L2Territory team2loc = new L2Territory(11000002);

 

public void onLoad()

{

_zone.getListenerEngine().addMethodInvokedListener(_zoneListener);

 

team1loc.add(149878, 47505, -3408, -3308);

team1loc.add(150262, 47513, -3408, -3308);

team1loc.add(150502, 47233, -3408, -3308);

team1loc.add(150507, 46300, -3408, -3308);

team1loc.add(150256, 46002, -3408, -3308);

team1loc.add(149903, 46005, -3408, -3308);

 

team2loc.add(149027, 46005, -3408, -3308);

team2loc.add(148686, 46003, -3408, -3308);

team2loc.add(148448, 46302, -3408, -3308);

team2loc.add(148449, 47231, -3408, -3308);

team2loc.add(148712, 47516, -3408, -3308);

team2loc.add(149014, 47527, -3408, -3308);

 

_startTask = ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new StartTask(), 3600000, 3600000);

 

_active = ServerVariables.getString("TvT", "off").equalsIgnoreCase("on");

 

_log.fine("Loaded Event: TvT");

}

 

public void onReload()

{

_zone.getListenerEngine().removeMethodInvokedListener(_zoneListener);

_startTask.cancel(true);

}

 

public void onShutdown()

{

onReload();

}

 

private static boolean _active = false;

 

private static boolean isActive()

{

return _active;

}

 

public void activateEvent()

{

L2Player player = (L2Player) getSelf();

if(!player.getPlayerAccess().IsEventGm)

return;

 

if(!isActive())

{

if(_startTask == null)

_startTask = ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new StartTask(), 3600000, 3600000);

ServerVariables.set("TvT", "on");

_log.info("Event 'TvT' activated.");

Announcements.getInstance().announceByCustomMessage("scripts.events.TvT.AnnounceEventStarted", null);

}

else

player.sendMessage("Event 'TvT' already active.");

 

_active = true;

 

show(Files.read("data/html/admin/events.htm", player), player);

}

 

public void deactivateEvent()

{

L2Player player = (L2Player) getSelf();

if(!player.getPlayerAccess().IsEventGm)

return;

 

if(isActive())

{

if(_startTask != null)

{

_startTask.cancel(true);

_startTask = null;

}

ServerVariables.unset("TvT");

_log.info("Event 'TvT' deactivated.");

Announcements.getInstance().announceByCustomMessage("scripts.events.TvT.AnnounceEventStoped", null);

}

else

player.sendMessage("Event 'TvT' not active.");

 

_active = false;

 

show(Files.read("data/html/admin/events.htm", player), player);

}

 

public static boolean isRunned()

{

return _isRegistrationActive || _status > 0;

}

 

public String DialogAppend_31225(Integer val)

{

if(val == 0)

{

L2Player player = (L2Player) getSelf();

return Files.read("data/scripts/events/TvT/31225.html", player);

}

return "";

}

 

public static int getMinLevelForCategory(int category)

{

switch(category)

{

case 1:

return 20;

case 2:

return 30;

case 3:

return 40;

case 4:

return 52;

case 5:

return 62;

case 6:

return 76;

}

return 0;

}

 

public static int getMaxLevelForCategory(int category)

{

switch(category)

{

case 1:

return 29;

case 2:

return 39;

case 3:

return 51;

case 4:

return 61;

case 5:

return 75;

case 6:

return 85;

}

return 0;

}

 

public static int getCategory(int level)

{

if(level >= 20 && level <= 29)

return 1;

else if(level >= 30 && level <= 39)

return 2;

else if(level >= 40 && level <= 51)

return 3;

else if(level >= 52 && level <= 61)

return 4;

else if(level >= 62 && level <= 75)

return 5;

else if(level >= 76)

return 6;

return 0;

}

 

public void start(String[] var)

{

L2Player player = (L2Player) getSelf();

if(var.length != 2)

{

show(new CustomMessage("common.Error", player), player);

return;

}

 

Integer category;

Integer autoContinue;

try

{

category = Integer.valueOf(var[0]);

autoContinue = Integer.valueOf(var[1]);

}

catch(Exception e)

{

show(new CustomMessage("common.Error", player), player);

return;

}

 

_category = category;

_autoContinue = autoContinue;

 

if(_category == -1)

{

_minLevel = 1;

_maxLevel = 85;

}

else

{

_minLevel = getMinLevelForCategory(_category);

_maxLevel = getMaxLevelForCategory(_category);

}

 

if(_endTask != null)

{

show(new CustomMessage..

 

Куда именно здесь прописать запрет.

Изменено пользователем artbotek

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


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

Запрет на использование алт+б пишется здесь идем сюда===>\gameserver\communitybbs\CommunityBoard.java

  • Upvote 1

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


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

Запрет на использование алт+б пишется здесь идем сюда===>\gameserver\communitybbs\CommunityBoard.java

А где именно? Зайди в асю если не сложно. Или напиши по подробнее.

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


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

if(isPvPEventStarted())

{

_log.info("TvT not started: another event is already running");

return;

}

 

После вот этого сообщения вставляй.

  • Upvote 1

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


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

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

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

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

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

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

Войти

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

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

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

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

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