Димон_Визняк 2 Опубликовано 23 мая, 2019 Добрый День\Вечер уважаемые форум-чаты Как бы, вопрос до ужаса прост. Какой файл отвечает за это произведенние искуства ? и как его убрать? Буду Благодарен, как всегда + будет. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Edgar 356 Опубликовано 23 мая, 2019 За деньги Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Димон_Визняк 2 Опубликовано 23 мая, 2019 14 минут назад, Solution сказал: За деньги НУ а если без рофла? Елементарное же даже можно, сменить НПС. Я просто хочу поинтересоватся можно ли. Т.к на КетраВарс(Не реклама) Были 2 разных патчка, с данными анимациями и без них. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Edgar 356 Опубликовано 23 мая, 2019 23 минуты назад, Димон_Визняк сказал: НУ а если без рофла? Елементарное же даже можно, сменить НПС. Я просто хочу поинтересоватся можно ли. Т.к на КетраВарс(Не реклама) Были 2 разных патчка, с данными анимациями и без них. Два варианта, декомпилишь скрипт и смотришь путь к лого, меняешь на свой либо удаляешь вообще или декомпилишь скрипт правишь как надо тебе, компилишь обратно Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Димон_Визняк 2 Опубликовано 23 мая, 2019 14 минут назад, Solution сказал: Два варианта, декомпилишь скрипт и смотришь путь к лого, меняешь на свой либо удаляешь вообще или декомпилишь скрипт правишь как надо тебе, компилишь обратно Спасибо за подсказку, вопрос какой файл то отвечает за это ? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
•°•°•PsycHoO•°•°• 1582 Опубликовано 23 мая, 2019 1 hour ago, Димон_Визняк said: Спасибо за подсказку, вопрос какой файл то отвечает за это ? Там, скорее всего, у них стоит крипт на файлы. Сначала нужно снять крипт, а потом уже проделывать остальные манипуляции. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Димон_Визняк 2 Опубликовано 23 мая, 2019 2 часа назад, •°•°•PsycHoO•°•°• сказал: Там, скорее всего, у них стоит крипт на файлы. Сначала нужно снять крипт, а потом уже проделывать остальные манипуляции. А замена данных НПС на других, не решит проблему? Я как бы хотел попробывать но увы. При нажатии Шифт+клик, нету изменить (Вид НПС) И так же в базе не наблюдаю не кастом НПС , ни базы НПС. Вообще нету. не подскажите ? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
•°•°•PsycHoO•°•°• 1582 Опубликовано 23 мая, 2019 (изменено) 43 minutes ago, Димон_Визняк said: А замена данных НПС на других, не решит проблему? Я как бы хотел попробывать но увы. При нажатии Шифт+клик, нету изменить (Вид НПС) И так же в базе не наблюдаю не кастом НПС , ни базы НПС. Вообще нету. не подскажите ? Если нужно заменить этого NPC на другого ( вид ), то измените его Template ID на ID иного NPC. Если нужно убрать у него лого сверху, то, при наличии крипта, убрать крипт, потом убрать лого. Если в базе пусто по "npc", то, возможно, они находятся в одном из xml файлов. Изменено 23 мая, 2019 пользователем •°•°•PsycHoO•°•°• Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Димон_Визняк 2 Опубликовано 23 мая, 2019 18 минут назад, •°•°•PsycHoO•°•°• сказал: Если нужно заменить этого NPC на другого ( вид ), то измените его Template ID на ID иного NPC. Если нужно убрать у него лого сверху, то, при наличии крипта, убрать крипт, потом убрать лого. Если в базе пусто по "npc", то, возможно, они находятся в одном из xml файлов. Да то измените его Template ID, это я знаю, проблема что нету NPC в базе. И где изменить не знаю. По ID искал, но при поиске его, выдает вообще другой НПС (Верхаус какой-то ) Вообщем 2 проблемы которые меня мозг выносят , и я не могу понять. Это Как в этой сборке вообще работают эти Ивенты, это просто ужас. В Конфиге нету что бы их включить или выключить, сам по себе + ко всему при регистрации даже при установке от 1 человека улета на ТВТ Так же установлино что можно с 1 Компа улетать, в Реги 6 человек, Ивент начался, не кого не забрало, все нормально жизнь у Ивента прекрасна блин!!!!!! Что делать я хз, где меня только не насило даже в handler и ia залез, и смотрел, вообще не могу понять! Ужас. и 2 проблема, изменить вид данным НПС что бы не было этих иконок над бошкой, а вот найти где изменить не могу! Вот 2 проблемы которые тревожат меня, может Вы поможете, а я вам так сказать накину ? (Если можно так в теме говорить) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
•°•°•PsycHoO•°•°• 1582 Опубликовано 23 мая, 2019 3 minutes ago, Димон_Визняк said: Да то измените его Template ID, это я знаю, проблема что нету NPC в базе. И где изменить не знаю. По ID искал, но при поиске его, выдает вообще другой НПС (Верхаус какой-то ) Вообщем 2 проблемы которые меня мозг выносят , и я не могу понять. Это Как в этой сборке вообще работают эти Ивенты, это просто ужас. В Конфиге нету что бы их включить или выключить, сам по себе + ко всему при регистрации даже при установке от 1 человека улета на ТВТ Так же установлино что можно с 1 Компа улетать, в Реги 6 человек, Ивент начался, не кого не забрало, все нормально жизнь у Ивента прекрасна блин!!!!!! Что делать я хз, где меня только не насило даже в handler и ia залез, и смотрел, вообще не могу понять! Ужас. и 2 проблема, изменить вид данным НПС что бы не было этих иконок над бошкой, а вот найти где изменить не могу! Вот 2 проблемы которые тревожат меня, может Вы поможете, а я вам так сказать накину ? (Если можно так в теме говорить) Я уже написал сверху, что они могут быть описаны в одном из XML файлов. ( *.xml расширение ), может в папке data есть npc.xml или нечто подобное, там попробуйте найти ID. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Димон_Визняк 2 Опубликовано 23 мая, 2019 (изменено) 42 минуты назад, •°•°•PsycHoO•°•°• сказал: Я уже написал сверху, что они могут быть описаны в одном из XML файлов. ( *.xml расширение ), может в папке data есть npc.xml или нечто подобное, там попробуйте найти ID. Я Вас услышал, буду искать. А вот по поводу ТВТ, мб вы уже сталкивались с таким то проблемами? Предложение на регистрацию есть, регистрация принимается, аннонс о тайминге забераение идет, то что регистрация прошла показывает. А как время заканчивается, просто аннонс *Event Started* И все Персонажей не заберает. Спойлер # ================================================= # Settings Event item TvT (Team VS Team) # # ================================================= # Reward for every murder in the format itemId,count;itemId,count TvT_Rewards = 6673,300 # Multiplied by lvl char? TvT_rate = false # Time to start TvT_time = 10 # The time at which to run the Event. TvT_StartTime = 00:00,02:00,04:00,06:00,10:00,12:00,14:00,16:00,18:00,20:00,22:00 # Provide Event by category? (Division by level) TvT_Categories = true # Minimum number of participants for each team TvT_MinPlayerInTeam = 1 # The maximum number of participants for each team TvT_MaxPlayerInTeam = 100 # Permission to teleport Event with summon? TvT_AllowSummons = true # Do not remove buffs with teleportation? TvT_AllowBuffs = true # Allow registration of 2 or more windows? TvT_AllowMultiReg = true # Check for windows by IP or HWid? TvT_CheckWindowMethod = HWid # Buffalo participants indicated buffs? TvT_BuffPlayers = true # List buff for Fighter TvT_FighterBuffs = 192,1 # List buff for Wizards TvT_MageBuffs = 1397,3; 1182,3; 1189,3; 1191,3; 1392,3; 1393,3; 1352,1; 1353,1; 1354,1; 1259,4; 1035,4; 1078,6; 1461,1; 1303,2; 830,1; 1383,3; 1062,2; 4703,13; 1085,3; 1501,1; 1500,1; 1499,1; 1504,1; 1413,1; 1323,1; 363,1; 308,1; 530,1; 349,1; 268,1; 267,1; 304,1; 264,1; 365,1; 273,1; 276,1; # Length opening event in minutes TvT_EventRunningTime = 15 # Close the door on time and open the Event item at the end TvT_OpenCloseDoors = 24190001,24190002,24190003,24190004 # Disable skills during Event TvT_DisallowedSkills = 1410;1016;1254;701;740;2014;2049;2062;2079;2321;2393;2596;22104;3160;3236;2079;21054;21095;21102;21221;5541;5545;5662;23005;23009;23014;23030;23062;2166;2289;2402;2403;22119;22220;90001;2002;2031;2032;2017;2038;1508;2592;2863;2864;26024;26025;22178;2863;2864;2003;26030; Спойлер package events.TvT; import l2f.commons.threading.RunnableImpl; import l2f.gameserver.listener.actor.OnDeathListener; import l2f.gameserver.listener.actor.player.OnPlayerExitListener; import l2f.gameserver.listener.actor.player.OnTeleportListener; import l2f.gameserver.listener.zone.OnZoneEnterLeaveListener; import l2f.gameserver.model.Creature; import l2f.gameserver.model.Player; import l2f.gameserver.model.Zone; import l2f.gameserver.model.entity.Reflection; import l2f.gameserver.scripts.Functions; import l2f.gameserver.scripts.ScriptFile; public class TvT extends Functions implements ScriptFile, OnDeathListener, OnTeleportListener, OnPlayerExitListener { /*private static final Logger _log = LoggerFactory.getLogger(TvT.class); private static ScheduledFuture<?> _startTask; private static final int[] doors = new int[] { 24190001, 24190002, 24190003, 24190004 }; private static List<Long> players_list1 = new CopyOnWriteArrayList<Long>(); private static List<Long> players_list2 = new CopyOnWriteArrayList<Long>(); private static List<Long> live_list1 = new CopyOnWriteArrayList<Long>(); private static List<Long> live_list2 = new CopyOnWriteArrayList<Long>(); private static int[][] mage_buffs = new int[Config.EVENT_TvTMageBuffs.length][2]; private static int[][] fighter_buffs = new int[Config.EVENT_TvTFighterBuffs.length][2]; private static long _startedTime = 0; private static int[][] rewards = new int[Config.EVENT_TvTRewards.length][2]; private static Map<Long, Location> playerRestoreCoord = new LinkedHashMap<Long, Location>(); private static Map<Long, String> boxes = new LinkedHashMap<Long, String>(); 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 boolean _active = false; private static Skill buff; private static Reflection reflection = ReflectionManager.TVT_EVENT; private static ScheduledFuture<?> _endTask; private static Zone _zone; private static Zone _zone1; private static Zone _zone2; private static Zone _zone3; private static Zone _zone4; private static Zone _zone5; //new private static Zone _zone6; private static Zone _zone7; private static Zone _zone8; private static Zone _zone9; private static Zone _zone10; private static Zone _myZone = null; private static Territory territory = null; private static Map<Integer, Integer> _pScore = new HashMap<Integer, Integer>(); private static Map<Integer, Integer> _pScoreStatic = new HashMap<Integer, Integer>(); private static Map<String, ZoneTemplate> _zones = new HashMap<String, ZoneTemplate>(); private static IntObjectMap<DoorTemplate> _doors = new HashIntObjectMap<DoorTemplate>(); private static ZoneListener _zoneListener = new ZoneListener(); private static int bluePoints = 0; private static int redPoints = 0;*/ @Override public void onLoad() { /*CharListenerList.addGlobal(this); _zones.put("[hellbound_quarry_tvt]", ReflectionUtils.getZone("[hellbound_quarry_tvt]").getTemplate()); _zones.put("[baylor_tvt]", ReflectionUtils.getZone("[baylor_tvt]").getTemplate()); _zones.put("[hellbound_quarry_tvt]", ReflectionUtils.getZone("[hellbound_quarry_tvt]").getTemplate()); _zones.put("[beleth_tvt]", ReflectionUtils.getZone("[beleth_tvt]").getTemplate()); _zones.put("[hellbound_quarry_tvt]", ReflectionUtils.getZone("[hellbound_quarry_tvt]").getTemplate()); _zones.put("[cleft_tvt]", ReflectionUtils.getZone("[cleft_tvt]").getTemplate()); //new _zones.put("[baium_lair_tvt]", ReflectionUtils.getZone("[baium_lair_tvt]").getTemplate()); _zones.put("[parnas_tvt]", ReflectionUtils.getZone("[parnas_tvt]").getTemplate()); _zones.put("[tully_tvt]", ReflectionUtils.getZone("[tully_tvt]").getTemplate()); //new _zones.put("[destruction_tvt]", ReflectionUtils.getZone("[destruction_tvt]").getTemplate()); _zones.put("[cleft_tvt]", ReflectionUtils.getZone("[cleft_tvt]").getTemplate()); for (final int doorId : doors) _doors.put(doorId, ReflectionUtils.getDoor(doorId).getTemplate()); int geoIndex = GeoEngine.NextGeoIndex(24, 19, reflection.getId()); reflection.setGeoIndex(geoIndex); reflection.init(_doors, _zones); _zone = reflection.getZone("[hellbound_quarry_tvt]"); _zone1 = reflection.getZone("[baylor_tvt]"); _zone2 = reflection.getZone("[hellbound_quarry_tvt]"); _zone3 = reflection.getZone("[beleth_tvt]"); _zone4 = reflection.getZone("[hellbound_quarry_tvt]"); _zone5 = reflection.getZone("[cleft_tvt]"); //new _zone6 = reflection.getZone("[baium_lair_tvt]"); _zone7 = reflection.getZone("[parnas_tvt]"); _zone8 = reflection.getZone("[tully_tvt]"); //new _zone9 = reflection.getZone("[destruction_tvt]"); _zone10 = reflection.getZone("[cleft_tvt]"); _active = ServerVariables.getString("TvT", "off").equalsIgnoreCase("on"); if (isActive()) scheduleEventStart(); _zone.addListener(_zoneListener); _zone1.addListener(_zoneListener); _zone2.addListener(_zoneListener); _zone3.addListener(_zoneListener); _zone4.addListener(_zoneListener); _zone5.addListener(_zoneListener); _zone6.addListener(_zoneListener); _zone7.addListener(_zoneListener); _zone8.addListener(_zoneListener); _zone9.addListener(_zoneListener); _zone10.addListener(_zoneListener); int i = 0; if (Config.EVENT_TvTBuffPlayers && Config.EVENT_TvTMageBuffs.length != 0) for (String skill : Config.EVENT_TvTMageBuffs) { String[] splitSkill = skill.split(","); mage_buffs[0] = Integer.parseInt(splitSkill[0]); mage_buffs[1] = Integer.parseInt(splitSkill[1]); i++; } i = 0; if (Config.EVENT_TvTBuffPlayers && Config.EVENT_TvTMageBuffs.length != 0) for (String skill : Config.EVENT_TvTFighterBuffs) { String[] splitSkill = skill.split(","); fighter_buffs[0] = Integer.parseInt(splitSkill[0]); fighter_buffs[1] = Integer.parseInt(splitSkill[1]); i++; } i = 0; if (Config.EVENT_TvTRewards.length != 0) for (String reward : Config.EVENT_TvTRewards) { String[] splitReward = reward.split(","); rewards[0] = Integer.parseInt(splitReward[0]); rewards[1] = Integer.parseInt(splitReward[1]); i++; } _log.info("Loaded Event: TvT");*/ } @Override public void onReload() { /*if(_startTask != null) { _startTask.cancel(false); _startTask = null; }*/ } @Override public void onShutdown() { //onReload(); } public void activateEvent() { /*Player player = getSelf(); if (!player.getPlayerAccess().IsEventGm) return; if (!isActive()) { if (_startTask == null) scheduleEventStart(); 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("admin/events/events.htm", player);*/ } public void deactivateEvent() { /*Player player = getSelf(); if (!player.getPlayerAccess().IsEventGm) return; if (isActive()) { if (_startTask != null) { _startTask.cancel(false); _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("admin/events/events.htm", player);*/ } public static boolean isRunned() { //return _isRegistrationActive || _status > 0; return false; } 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) { /*Player player = 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 = 75; _maxLevel = 85; } else { _minLevel = getMinLevelForCategory(_category); _maxLevel = getMaxLevelForCategory(_category); } if (_endTask != null) { show(new CustomMessage("common.TryLater", player), player); return; } _status = 0; _isRegistrationActive = true; _time_to_start = Config.EVENT_TvTTime; players_list1 = new CopyOnWriteArrayList<Long>(); players_list2 = new CopyOnWriteArrayList<Long>(); live_list1 = new CopyOnWriteArrayList<Long>(); live_list2 = new CopyOnWriteArrayList<Long>(); playerRestoreCoord = new LinkedHashMap<Long, Location>(); String[] param = { String.valueOf(_time_to_start), String.valueOf(_minLevel), String.valueOf(_maxLevel) }; sayToAll("scripts.events.TvT.AnnouncePreStart", param); executeTask("events.TvT.TvT", "question", new Object[0], 10000); executeTask("events.TvT.TvT", "announce", new Object[0], 60000);*/ } public static void sayToAll(String address, String[] replacements) { /*Announcements.getInstance().announceByCustomMessage(address, replacements, ChatType.CRITICAL_ANNOUNCE);*/ } public static void question() { /*for(Player player : GameObjectsStorage.getAllPlayersForIterate()) if (player != null && !player.isDead() && player.getLevel() >= _minLevel && player.getLevel() <= _maxLevel && player.getReflection().isDefault() && !player.isInOlympiadMode() && !player.isInObserverMode()) player.scriptRequest(new CustomMessage("scripts.events.TvT.AskPlayer", player).toString(), "events.TvT.TvT:addPlayer", new Object[0]);*/ } public static void announce() { /*if(_time_to_start > 1) { _time_to_start--; String[] param = { String.valueOf(_time_to_start), String.valueOf(_minLevel), String.valueOf(_maxLevel) }; sayToAll("scripts.events.TvT.AnnouncePreStart", param); executeTask("events.TvT.TvT", "announce", new Object[0], 60000); } else { if (players_list1.isEmpty() || players_list2.isEmpty() || players_list1.size() < Config.EVENT_TvTMinPlayerInTeam || players_list2.size() < Config.EVENT_TvTMinPlayerInTeam) { sayToAll("scripts.events.TvT.AnnounceEventCancelled", null); _isRegistrationActive = false; _status = 0; boxes.clear(); executeTask("events.TvT.TvT", "autoContinue", new Object[0], 10000); return; } else { _status = 1; _isRegistrationActive = false; sayToAll("scripts.events.TvT.AnnounceEventStarting", null); executeTask("events.TvT.TvT", "prepare", new Object[0], 5000); } }*/ } public void addPlayer() { /*Player player = getSelf(); if (player == null || !checkPlayer(player, true) || !checkDualBox(player)) return; int team = 0, size1 = players_list1.size(), size2 = players_list2.size(); if (size1 == Config.EVENT_TvTMaxPlayerInTeam && size2 == Config.EVENT_TvTMaxPlayerInTeam) { show(new CustomMessage("scripts.events.TvT.CancelledCount", player), player); _isRegistrationActive = false; return; } if (!Config.EVENT_TvTAllowMultiReg) { // if ("IP".equalsIgnoreCase(Config.EVENT_TvTCheckWindowMethod)) // boxes.put(player.getStoredId(), player.getIP()); if ("HWid".equalsIgnoreCase(Config.EVENT_TvTCheckWindowMethod)) boxes.put(player.getStoredId(), player.getNetConnection().getHWID()); } if (size1 > size2) team = 2; else if (size1 < size2) team = 1; else team = Rnd.get(1, 2); if (team == 1) { players_list1.add(player.getStoredId()); live_list1.add(player.getStoredId()); show(new CustomMessage("scripts.events.TvT.Registered", player), player); } else if (team == 2) { players_list2.add(player.getStoredId()); live_list2.add(player.getStoredId()); show(new CustomMessage("scripts.events.TvT.Registered", player), player); } else _log.info("WTF??? Command id 0 in TvT...");*/ } public static boolean checkPlayer(Player player, boolean first) { /*if(first && (!_isRegistrationActive || player.isDead())) { show(new CustomMessage("scripts.events.Late", player), player); return false; } if (first && (players_list1.contains(player.getStoredId()) || players_list2.contains(player.getStoredId()))) { show(new CustomMessage("scripts.events.TvT.Cancelled", player), player); if (players_list1.contains(player.getStoredId())) players_list1.remove(player.getStoredId()); if (players_list2.contains(player.getStoredId())) players_list2.remove(player.getStoredId()); if (live_list1.contains(player.getStoredId())) live_list1.remove(player.getStoredId()); if (live_list2.contains(player.getStoredId())) live_list2.remove(player.getStoredId()); if (boxes.containsKey(player.getStoredId())) boxes.remove(player.getStoredId()); return false; } if (player.getLevel() < _minLevel || player.getLevel() > _maxLevel) { show(new CustomMessage("scripts.events.TvT.CancelledLevel", player), player); return false; } if (player.isMounted()) { show(new CustomMessage("scripts.events.TvT.Cancelled", player), player); return false; } if (player.isCursedWeaponEquipped()) { show(new CustomMessage("scripts.events.CtF.Cancelled", player), player); return false; } if (player.isInDuel()) { show(new CustomMessage("scripts.events.TvT.CancelledDuel", player), player); return false; } if (player.getTeam() != TeamType.NONE) { show(new CustomMessage("scripts.events.TvT.CancelledOtherEvent", player), player); return false; } if (player.getOlympiadGame() != null || first && Olympiad.isRegistered(player)) { show(new CustomMessage("scripts.events.TvT.CancelledOlympiad", player), player); return false; } if (player.isInParty() && player.getParty().isInDimensionalRift()) { show(new CustomMessage("scripts.events.TvT.CancelledOtherEvent", player), player); return false; } if (player.isInObserverMode()) { show(new CustomMessage("scripts.event.TvT.CancelledObserver", player), player); return false; } if (player.isTeleporting()) { show(new CustomMessage("scripts.events.TvT.CancelledTeleport", player), player); return false; } return true;*/ return false; } public static void prepare() { /*for(DoorInstance door : reflection.getDoors()) door.openMe(); for (Zone z : reflection.getZones()) z.setType(ZoneType.peace_zone); cleanPlayers(); clearArena(); executeTask("events.TvT.TvT", "ressurectPlayers", new Object[0], 1000); executeTask("events.TvT.TvT", "healPlayers", new Object[0], 2000); executeTask("events.TvT.TvT", "teleportPlayersToColiseum", new Object[0], 3000); executeTask("events.TvT.TvT", "paralyzePlayers", new Object[0], 4000); executeTask("events.TvT.TvT", "buffPlayers", new Object[0], 5000); executeTask("events.TvT.TvT", "go", new Object[0], 60000); sayToAll("scripts.events.TvT.AnnounceFinalCountdown", null);*/ } public static void go() { /*_status = 2; upParalyzePlayers(); checkLive(); clearArena(); sayToAll("scripts.events.TvT.AnnounceFight", null); for (Zone z : reflection.getZones()) z.setType(ZoneType.battle_zone); _endTask = executeTask("events.TvT.TvT", "endBattle", new Object[0], 360000); //test _startedTime = System.currentTimeMillis() + 360000; final ExCubeGameChangePoints initialPoints = new ExCubeGameChangePoints(360, bluePoints, redPoints); ExCubeGameExtendedChangePoints clientSetUp; for (Player player : getPlayers(players_list1)) { clientSetUp = new ExCubeGameExtendedChangePoints(360, bluePoints, redPoints, true, player, 0); player.sendPacket(clientSetUp); player.sendPacket(initialPoints); player.sendPacket(new ExCubeGameAddPlayer(player, true)); player.broadcastCharInfo(); } for (Player player : getPlayers(players_list2)) { clientSetUp = new ExCubeGameExtendedChangePoints(360, bluePoints, redPoints, false, player, 0); player.sendPacket(clientSetUp); player.sendPacket(initialPoints); player.sendPacket(new ExCubeGameAddPlayer(player, false)); player.broadcastCharInfo(); }*/ } public static void endBattle() { /*_status = 0; removeAura(); for (Zone z : reflection.getZones()) z.setType(ZoneType.peace_zone); boxes.clear(); if (bluePoints > redPoints) { sayToAll("scripts.events.TvT.AnnounceFinishedBlueWins", null); giveItemsToWinner(false, true, 1); } else if (bluePoints < redPoints) { sayToAll("scripts.events.TvT.AnnounceFinishedRedWins", null); giveItemsToWinner(true, false, 1); } else if (bluePoints == redPoints) { sayToAll("scripts.events.TvT.AnnounceFinishedDraw", null); giveItemsToWinner(true, true, 0.5); } sayToAll("scripts.events.TvT.AnnounceEnd", null); executeTask("events.TvT.TvT", "end", new Object[0], 30000); _isRegistrationActive = false; if (_endTask != null) { _endTask.cancel(false); _endTask = null; } boolean _isRedWinner = bluePoints < redPoints ? true : false; final ExCubeGameEnd end = new ExCubeGameEnd(_isRedWinner); for (Player player : getPlayers(players_list1)) { player.sendPacket(end); player.broadcastCharInfo(); } for (Player player : getPlayers(players_list2)) { player.sendPacket(end); player.broadcastCharInfo(); } bluePoints = 0; redPoints = 0; _startedTime = 0; _myZone = null; territory = null;*/ } public static void end() { /*executeTask("events.TvT.TvT", "ressurectPlayers", new Object[0], 1000); executeTask("events.TvT.TvT", "healPlayers", new Object[0], 2000); executeTask("events.TvT.TvT", "teleportPlayers", new Object[0], 3000); executeTask("events.TvT.TvT", "autoContinue", new Object[0], 10000);*/ } public void autoContinue() { /*live_list1.clear(); live_list2.clear(); players_list1.clear(); players_list2.clear(); if (_autoContinue > 0) { if (_autoContinue >= 6) { _autoContinue = 0; return; } start(new String[]{ "" + (_autoContinue + 1), "" + (_autoContinue + 1) }); } else scheduleEventStart();*/ } public static void giveItemsToWinner(boolean team1, boolean team2, double rate) { /*if(team1) for (Player player : getPlayers(players_list1)) for (int i = 0; i < rewards.length; i++) addItem(player, rewards[0], Math.round((Config.EVENT_TvTrate ? player.getLevel() : 1) * rewards[1] * rate)); if (team2) for (Player player : getPlayers(players_list2)) for (int i = 0; i < rewards.length; i++) addItem(player, rewards[0], Math.round((Config.EVENT_TvTrate ? player.getLevel() : 1) * rewards[1] * rate));*/ } public static void teleportPlayersToColiseum() { /*switch(Rnd.get(1,11)) { case 1: _myZone = _zone; break; case 2: _myZone = _zone1; break; case 3: _myZone = _zone2; break; case 4: _myZone = _zone3; break; case 5: _myZone = _zone4; break; case 6: _myZone = _zone5; break; case 7: _myZone = _zone6; break; case 8: _myZone = _zone7; break; case 9: _myZone = _zone8; break; case 10: _myZone = _zone9; break; case 11: _myZone = _zone10; break; default: _myZone = _zone; } territory = _myZone.getTerritory(); for (Player player : getPlayers(players_list1)) { unRide(player); if (!Config.EVENT_TvTAllowSummons) unSummonPet(player, true); DuelEvent duel = player.getEvent(DuelEvent.class); if (duel != null) duel.abortDuel(player); playerRestoreCoord.put(player.getStoredId(), new Location(player.getX(), player.getY(), player.getZ())); player.teleToLocation(Territory.getRandomLoc(territory), reflection); player.setIsInTvT(true); if (!Config.EVENT_TvTAllowBuffs) { player.getEffectList().stopAllEffects(); if (player.getPet() != null) player.getPet().getEffectList().stopAllEffects(); } } for (Player player : getPlayers(players_list2)) { unRide(player); if (!Config.EVENT_TvTAllowSummons) unSummonPet(player, true); playerRestoreCoord.put(player.getStoredId(), new Location(player.getX(), player.getY(), player.getZ())); player.teleToLocation(Territory.getRandomLoc(territory), reflection); player.setIsInTvT(true); if (!Config.EVENT_TvTAllowBuffs) { player.getEffectList().stopAllEffects(); if (player.getPet() != null) player.getPet().getEffectList().stopAllEffects(); } }*/ } public static void teleportPlayers() { /*for(Player player : getPlayers(players_list1)) { if (player == null || !playerRestoreCoord.containsKey(player.getStoredId())) continue; player.teleToLocation(playerRestoreCoord.get(player.getStoredId()), ReflectionManager.DEFAULT); } for (Player player : getPlayers(players_list2)) { if (player == null || !playerRestoreCoord.containsKey(player.getStoredId())) continue; player.teleToLocation(playerRestoreCoord.get(player.getStoredId()), ReflectionManager.DEFAULT); } playerRestoreCoord.clear();*/ } public static void paralyzePlayers() { /*for(Player player : getPlayers(players_list1)) { if (player == null) continue; if (!player.isRooted()) { player.getEffectList().stopEffect(Skill.SKILL_MYSTIC_IMMUNITY); player.startRooted(); player.startAbnormalEffect(AbnormalEffect.ROOT); } if (player.getPet() != null && !player.getPet().isRooted()) { player.getPet().startRooted(); player.getPet().startAbnormalEffect(AbnormalEffect.ROOT); } } for (Player player : getPlayers(players_list2)) { if (!player.isRooted()) { player.getEffectList().stopEffect(Skill.SKILL_MYSTIC_IMMUNITY); player.startRooted(); player.startAbnormalEffect(AbnormalEffect.ROOT); } if (player.getPet() != null && !player.getPet().isRooted()) { player.getPet().startRooted(); player.getPet().startAbnormalEffect(AbnormalEffect.ROOT); } }*/ } public static void upParalyzePlayers() { /*for(Player player : getPlayers(players_list1)) { if (player.isRooted()) { player.stopRooted(); player.stopAbnormalEffect(AbnormalEffect.ROOT); } if (player.getPet() != null && player.getPet().isRooted()) { player.getPet().stopRooted(); player.getPet().stopAbnormalEffect(AbnormalEffect.ROOT); } } for (Player player : getPlayers(players_list2)) { if (player.isRooted()) { player.stopRooted(); player.stopAbnormalEffect(AbnormalEffect.ROOT); } if (player.getPet() != null && player.getPet().isRooted()) { player.getPet().stopRooted(); player.getPet().stopAbnormalEffect(AbnormalEffect.ROOT); } }*/ } public static void ressurectPlayers() { /*for(Player player : getPlayers(players_list1)) if (player.isDead()) { player.restoreExp(); player.setCurrentCp(player.getMaxCp()); player.setCurrentHp(player.getMaxHp(), true); player.setCurrentMp(player.getMaxMp()); player.broadcastPacket(new Revive(player)); } for (Player player : getPlayers(players_list2)) if (player.isDead()) { player.restoreExp(); player.setCurrentCp(player.getMaxCp()); player.setCurrentHp(player.getMaxHp(), true); player.setCurrentMp(player.getMaxMp()); player.broadcastPacket(new Revive(player)); }*/ } public static void healPlayers() { /*for(Player player : getPlayers(players_list1)) { player.setCurrentHpMp(player.getMaxHp(), player.getMaxMp()); player.setCurrentCp(player.getMaxCp()); } for (Player player : getPlayers(players_list2)) { player.setCurrentHpMp(player.getMaxHp(), player.getMaxMp()); player.setCurrentCp(player.getMaxCp()); }*/ } public static void cleanPlayers() { /*for(Player player : getPlayers(players_list1)) if (!checkPlayer(player, false)) removePlayer(player); for (Player player : getPlayers(players_list2)) if (!checkPlayer(player, false)) removePlayer(player);*/ } public static void checkLive() { /*List<Long> new_live_list1 = new CopyOnWriteArrayList<Long>(); List<Long> new_live_list2 = new CopyOnWriteArrayList<Long>(); for (Long storeId : live_list1) { Player player = GameObjectsStorage.getAsPlayer(storeId); if (player != null) new_live_list1.add(storeId); } for (Long storeId : live_list2) { Player player = GameObjectsStorage.getAsPlayer(storeId); if (player != null) new_live_list2.add(storeId); } live_list1 = new_live_list1; live_list2 = new_live_list2; for (Player player : getPlayers(live_list1)) if (!player.isDead() && !player.isLogoutStarted()) player.setTeam(TeamType.RED); else loosePlayer(player); for (Player player : getPlayers(live_list2)) if (!player.isDead() && !player.isLogoutStarted()) player.setTeam(TeamType.BLUE); else loosePlayer(player); if (live_list1.size() < 1 || live_list2.size() < 1) endBattle();*/ } public static void removeAura() { /*for(Player player : getPlayers(live_list1)) { player.setTeam(TeamType.NONE); if (player.getPet() != null) player.getPet().setTeam(TeamType.NONE); player.setIsInTvT(false); } for (Player player : getPlayers(live_list2)) { player.setTeam(TeamType.NONE); if (player.getPet() != null) player.getPet().setTeam(TeamType.NONE); player.setIsInTvT(false); }*/ } public static void clearArena() { /*if(_myZone == null) return; for (GameObject obj : _myZone.getObjects()) if (obj != null) { Player player = obj.getPlayer(); if (player != null && !live_list1.contains(player.getStoredId()) && !live_list2.contains(player.getStoredId())) player.teleToLocation(147451, 46728, -3410, ReflectionManager.DEFAULT); }*/ } @Override public void onDeath(Creature self, Creature killer) { /*if(_status > 1 && self.isPlayer() && self.getTeam() != TeamType.NONE && (live_list1.contains(self.getStoredId()) || live_list2.contains(self.getStoredId()))) { //loosePlayer((Player) self); //checkLive(); increasePoints(killer); resurrectAtBase(self); checkKillsAndAnnounce(killer.getPlayer()); _pScore.remove(self.getPlayer().getObjectId()); //self.getPlayer().setIsInTvT(false); }*/ } public static void resurrectAtBase(Creature self) { /*Player player = self.getPlayer(); if (player == null) return; if (player.getTeam() == TeamType.NONE) return; player.broadcastPacket(new Revive(player)); player.setCurrentHp(player.getMaxHp(), true); player.setCurrentMp(player.getMaxMp()); player.setCurrentCp(player.getMaxCp()); player.teleToLocation(Territory.getRandomLoc(territory), reflection); buffPlayer(player);*/ } public static void buffPlayer(Player player) { /*if(player.isMageClass()) mageBuff(player); else fighterBuff(player);*/ } @Override public void onTeleport(Player player, int x, int y, int z, Reflection reflection) { /*if(_myZone == null) return; if (_myZone.checkIfInZone(x, y, z, reflection)) return; if (_status > 1 && player != null && player.getTeam() != TeamType.NONE && (live_list1.contains(player.getStoredId()) || live_list2.contains(player.getStoredId()))) { removePlayer(player); checkLive */ } @Override public void onPlayerExit(Player player) { /*if(player.getTeam() == TeamType.NONE) return; if (_status == 0 && _isRegistrationActive && player.getTeam() != TeamType.NONE && (live_list1.contains(player.getStoredId()) || live_list2.contains(player.getStoredId()))) { removePlayer(player); return; } if (_status == 1 && (live_list1.contains(player.getStoredId()) || live_list2.contains(player.getStoredId()))) { player.teleToLocation(playerRestoreCoord.get(player.getStoredId()), ReflectionManager.DEFAULT); removePlayer(player); return; } if (_status > 1 && player != null && player.getTeam() != TeamType.NONE && (live_list1.contains(player.getStoredId()) || live_list2.contains(player.getStoredId()))) { removePlayer(player); checkLive(); }*/ } @SuppressWarnings("unused") private static class ZoneListener implements OnZoneEnterLeaveListener { @Override public void onZoneEnter(Zone zone, Creature cha) { /*if(cha == null) return; Player player = cha.getPlayer(); if (_status > 0 && player != null && !live_list1.contains(player.getStoredId()) && !live_list2.contains(player.getStoredId())) player.teleToLocation(147451, 46728, -3410, ReflectionManager.DEFAULT); */ } @Override public void onZoneLeave(Zone zone, Creature cha) { /*if(cha == null) return; Player player = cha.getPlayer(); if (_status > 1 && player != null && player.getTeam() != TeamType.NONE && (live_list1.contains(player.getStoredId()) || live_list2.contains(player.getStoredId()))) { double angle = PositionUtils.convertHeadingToDegree(cha.getHeading()); // СѓРіРѕР» РІ градусах double radian = Math.toRadians(angle - 90); // СѓРіРѕР» РІ радианах int x = (int) (cha.getX() + 250 * Math.sin(radian)); int y = (int) (cha.getY() - 250 * Math.cos(radian)); int z = cha.getZ(); player.teleToLocation(x, y, z, reflection); }*/ } } public static void buffPlayers() { /*for(Player player : getPlayers(players_list1)) { if (player.isMageClass()) mageBuff(player); else fighterBuff(player); } for (Player player : getPlayers(players_list2)) { if (player.isMageClass()) mageBuff(player); else fighterBuff(player); }*/ } public void scheduleEventStart() { /*try { Calendar currentTime = Calendar.getInstance(); Calendar nextStartTime = null; Calendar testStartTime = null; for (String timeOfDay : Config.EVENT_TvTStartTime) { testStartTime = Calendar.getInstance(); testStartTime.setLenient(true); String[] splitTimeOfDay = timeOfDay.split(":"); testStartTime.set(Calendar.HOUR_OF_DAY, Integer.parseInt(splitTimeOfDay[0])); testStartTime.set(Calendar.MINUTE, Integer.parseInt(splitTimeOfDay[1])); if (testStartTime.getTimeInMillis() < currentTime.getTimeInMillis()) testStartTime.add(Calendar.DAY_OF_MONTH, 1); if (nextStartTime == null || testStartTime.getTimeInMillis() < nextStartTime.getTimeInMillis()) nextStartTime = testStartTime; if (_startTask != null) { _startTask.cancel(false); _startTask = null; } _startTask = ThreadPoolManager.getInstance().schedule(new StartTask(), nextStartTime.getTimeInMillis() - System.currentTimeMillis()); } currentTime = null; nextStartTime = null; testStartTime = null; } catch (Exception e) { _log.warn("TvT: Error figuring out a start time. Check TvTEventInterval in config file."); }*/ } public static void mageBuff(Player player) { /*for(int i = 0; i < mage_buffs.length; i++) { buff = SkillTable.getInstance().getInfo(mage_buffs[0], mage_buffs[1]); if (buff == null) continue; buff.getEffects(player, player, false, false); } player.setCurrentHp(player.getMaxHp(), true); player.setCurrentMp(player.getMaxMp()); player.setCurrentCp(player.getMaxCp());*/ } public static void fighterBuff(Player player) { /*for(int i = 0; i < fighter_buffs.length; i++) { buff = SkillTable.getInstance().getInfo(fighter_buffs[0], fighter_buffs[1]); if (buff == null) continue; buff.getEffects(player, player, false, false); } player.setCurrentHp(player.getMaxHp(), true); player.setCurrentMp(player.getMaxMp()); player.setCurrentCp(player.getMaxCp()); */ } public class StartTask extends RunnableImpl { @Override public void runImpl() { /*if(!_active) return; if (isPvPEventStarted()) { _log.info("TvT not started: another event is already running"); return; } for (Residence c : ResidenceHolder.getInstance().getResidenceList(Castle.class)) if (c.getSiegeEvent() != null && c.getSiegeEvent().isInProgress()) { _log.debug("TvT not started: CastleSiege in progress"); return; } if (Config.EVENT_TvTCategories) start(new String[]{ "1", "1"}); else start(new String[] {"-1", "-1"});*/ } }} Спойлер package events; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.util.Properties; import java.util.concurrent.ConcurrentHashMap; import l2f.gameserver.scripts.Functions; import l2f.gameserver.scripts.ScriptFile; import l2f.gameserver.utils.Util; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class EventsConfig extends Functions implements ScriptFile { private static final Logger _log = LoggerFactory.getLogger(EventsConfig.class); private static final String dir = "./config/events"; private static ConcurrentHashMap<String, String> properties; @Override public void onLoad() { properties = new ConcurrentHashMap<String, String>(); LoadConfig(); _log.info("Loaded Service: EventsConfig"); } @Override public void onReload() { onLoad(); } @Override public void onShutdown() {} public static void LoadConfig() { File files = new File(dir); if (!files.exists()) _log.warn("WARNING! " + dir + " not exists! Config not loaded!"); else parseFiles(files.listFiles()); } private static void parseFiles(File[] files) { for (File f : files) { if (f.isHidden()) continue; if (f.isDirectory() && !f.getName().contains("defaults")) parseFiles(f.listFiles()); else if (f.getName().endsWith(".ini")) { try { InputStream is = new FileInputStream(f); Properties p = new Properties(); p.load(is); loadProperties(p); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } } } private static void loadProperties(Properties p) { for (String name : p.stringPropertyNames()) { if (properties.get(name) != null) { properties.replace(name, p.getProperty(name).trim()); _log.info("Duplicate properties name \"" + name + "\" replaced with new value."); } else if (p.getProperty(name) == null) _log.info("Null property for key " + name); else properties.put(name, p.getProperty(name).trim()); } p.clear(); } public static String get(String name) { if(properties.get(name) == null) _log.warn("ConfigSystem: Null value for key: " + name); return properties.get(name); } public static float getFloat(String name) { return getFloat(name, Float.MAX_VALUE); } public static boolean getBoolean(String name) { return getBoolean(name, false); } public static int getInt(String name) { return getInt(name, Integer.MAX_VALUE); } public static int[] getIntArray(String name) { return getIntArray(name, new int[0]); } public static int getIntHex(String name) { return getIntHex(name, Integer.decode("0xFFFFFF")); } public static byte getByte(String name) { return getByte(name, Byte.MAX_VALUE); } public static long getLong(String name) { return getLong(name, Long.MAX_VALUE); } public static double getDouble(String name) { return getDouble(name, Double.MAX_VALUE); } public static String get(String name, String def) { return get(name) == null ? def : get(name); } public static float getFloat(String name, float def) { return Float.parseFloat(get(name, String.valueOf(def))); } public static boolean getBoolean(String name, boolean def) { return Boolean.parseBoolean(get(name, String.valueOf(def))); } public static int getInt(String name, int def) { return Integer.parseInt(get(name, String.valueOf(def))); } public static int[] getIntArray(String name, int[] def) { return get(name, null) == null ? def : Util.parseCommaSeparatedIntegerArray(get(name, null)); } public static int getIntHex(String name, int def) { if(!get(name, String.valueOf(def)).trim().startsWith("0x")) return Integer.decode("0x"+get(name, String.valueOf(def))); else return Integer.decode(get(name, String.valueOf(def))); } public static byte getByte(String name, byte def) { return Byte.parseByte(get(name, String.valueOf(def))); } public static double getDouble(String name, double def) { return Double.parseDouble(get(name, String.valueOf(def))); } public static long getLong(String name, long def) { return Long.parseLong(get(name, String.valueOf(def))); } public static void set(String name, String param) { properties.replace(name, param); } public static void set(String name, Object obj) { set(name, String.valueOf(obj)); } } Что самое интересное что даже не нашел кто их включить или выключить, только в игре через Админку *Выключить* *Включить, ну так же не бывает блин..* Изменено 23 мая, 2019 пользователем Димон_Визняк Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты