artbotek 3 Опубликовано 9 октября, 2012 Кто поможет как прописать запрет на вызов community board на эвентах. ТВТ, ЦФГ, ласт хиро и другие. С меня +. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Ckopnu 225 Опубликовано 9 октября, 2012 Это в конфигах отключается Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Westernous 85 Опубликовано 9 октября, 2012 Помоему так 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; Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
artbotek 3 Опубликовано 9 октября, 2012 Это в конфигах отключается Отключён но всё же работает. Нормально работает(точнее не вызывается что правильно) в дуэлях, ПК, в боевой стойке а вот в эвентах работает на ура. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Мо3олЬ 68 Опубликовано 9 октября, 2012 идем сюда===>\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); } Это только на бафер., на тп , шоп, и тп. по таком же принципе. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
artbotek 3 Опубликовано 9 октября, 2012 (изменено) 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.. Куда именно здесь прописать запрет. Изменено 9 октября, 2012 пользователем artbotek Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Мо3олЬ 68 Опубликовано 9 октября, 2012 Запрет на использование алт+б пишется здесь идем сюда===>\gameserver\communitybbs\CommunityBoard.java 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
artbotek 3 Опубликовано 9 октября, 2012 Запрет на использование алт+б пишется здесь идем сюда===>\gameserver\communitybbs\CommunityBoard.java А где именно? Зайди в асю если не сложно. Или напиши по подробнее. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Westernous 85 Опубликовано 9 октября, 2012 if(isPvPEventStarted()) { _log.info("TvT not started: another event is already running"); return; } После вот этого сообщения вставляй. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты