Перейти к содержанию

Andropov1

Пользователи
  • Публикаций

    31
  • Зарегистрирован

  • Посещение

  • Отзывы

    0%

Весь контент Andropov1

  1. Огромнейшее спасибо вам за помощь!И отдельно спасибо за труд!
  2. Вот вопрос в том,как сделать,чтоб одному можно зайти к Валакасу.
  3. Вот и я тоже нашел.Пытался менять,но эффекта нет.Подсказал человек,что значение для входа к Валакасу находится в ядре..Тока найти не могу.
  4. Народ подскажите пожалуйста!Как поменять значения захода в Инсту(соло).Хочу проверить Босса.Суть в том,что в самом низу прописи скрипта,есть значение(200 чел) пробывал менять цифру,бесполезно.НПС пишет,что я не состою в канале рейда.,а искать 200 человек для тестирования Валакаса на нанный момент бред. Вот скопировал со скрипта"ValakasManager" public final class ValakasManager extends Functions implements ScriptFile, OnDeathListener { private static final Logger _log = LoggerFactory.getLogger(ValakasManager.class); private static final int[][] _teleportCubeLocation = { { 214880, -116144, -1644, 0 }, { 213696, -116592, -1644, 0 }, { 212112, -116688, -1644, 0 }, { 211184, -115472, -1664, 0 }, { 210336, -114592, -1644, 0 }, { 211360, -113904, -1644, 0 }, { 213152, -112352, -1644, 0 }, { 214032, -113232, -1644, 0 }, { 214752, -114592, -1644, 0 }, { 209824, -115568, -1421, 0 }, { 210528, -112192, -1403, 0 }, { 213120, -111136, -1408, 0 }, { 215184, -111504, -1392, 0 }, { 215456, -117328, -1392, 0 }, { 213200, -118160, -1424, 0 } }; private static final List<NpcInstance> _teleportCube = new ArrayList<>(); private static final List<NpcInstance> _spawnedMinions = new ArrayList<>(); static BossInstance _valakas; private static ScheduledFuture<?> _valakasSpawnTask = null; private static ScheduledFuture<?> _intervalEndTask = null; static ScheduledFuture<?> _socialTask = null; private static ScheduledFuture<?> _mobiliseTask = null; private static ScheduledFuture<?> _moveAtRandomTask = null; private static ScheduledFuture<?> _respawnValakasTask = null; static ScheduledFuture<?> _sleepCheckTask = null; private static ScheduledFuture<?> _onAnnihilatedTask = null; private static final int Valakas = 29028; private static final int _teleportCubeId = 31759; public static EpicBossState _state; private static Zone _zone; static long _lastAttackTime = 0; private static final int FWV_LIMITUNTILSLEEP = 20 * 60000; private static final int FWV_APPTIMEOFVALAKAS = 10 * 60000; private static final int FWV_FIXINTERVALOFVALAKAS = 11 * 24 * 60 * 60000; private static boolean Dying = false; private static final Location TELEPORT_POSITION = new Location(203940, -111840, 66); private static boolean _entryLocked = false; /** * @author Mobius */ private static class CheckLastAttack extends RunnableImpl { /** * Constructor for CheckLastAttack. */ CheckLastAttack() { } /** * Method runImpl. */ @Override public void runImpl() { if (_state.getState() == EpicBossState.State.ALIVE) { if ((_lastAttackTime + FWV_LIMITUNTILSLEEP) < System.currentTimeMillis()) { sleep(); } else { _sleepCheckTask = ThreadPoolManager.getInstance().schedule(new CheckLastAttack(), 60000); } } } } /** * @author Mobius */ private static class IntervalEnd extends RunnableImpl { /** * Constructor for IntervalEnd. */ IntervalEnd() { } /** * Method runImpl. */ @Override public void runImpl() { _state.setState(EpicBossState.State.NOTSPAWN); _state.update(); } } /** * @author Mobius */ private static class onAnnihilated extends RunnableImpl { /** * Constructor for onAnnihilated. */ onAnnihilated() { } /** * Method runImpl. */ @Override public void runImpl() { sleep(); } } /** * @author Mobius */ private static class SpawnDespawn extends RunnableImpl { private static final int _distance = 2550; private final int _taskId; private final List<Player> _players = getPlayersInside(); /** * Constructor for SpawnDespawn. * @param taskId int */ SpawnDespawn(int taskId) { _taskId = taskId; } /** * Method runImpl. */ @Override public void runImpl() { switch (_taskId) { case 1: _valakas = (BossInstance) Functions.spawn(new Location(212852, -114842, -1632, 833), Valakas); _valakas.block(); _valakas.broadcastPacket(new PlaySound(PlaySound.Type.MUSIC, "BS03_A", 1, _valakas.getObjectId(), _valakas.getLoc())); _state.setRespawnDate(Rnd.get(FWV_FIXINTERVALOFVALAKAS, FWV_FIXINTERVALOFVALAKAS)); _state.setState(EpicBossState.State.ALIVE); _state.update(); _socialTask = ThreadPoolManager.getInstance().schedule(new SpawnDespawn(2), 16); break; case 2: _valakas.broadcastPacket(new SocialAction(_valakas.getObjectId(), 1)); for (Player pc : _players) { if (pc.getDistance(_valakas) <= _distance) { pc.enterMovieMode(); pc.specialCamera(_valakas, 1800, 180, -1, 1500, 15000, 0, 0, 1, 0); } else { pc.leaveMovieMode(); } } _socialTask = ThreadPoolManager.getInstance().schedule(new SpawnDespawn(3), 1500); break; case 3: for (Player pc : _players) { if (pc.getDistance(_valakas) <= _distance) { pc.enterMovieMode(); pc.specialCamera(_valakas, 1300, 180, -5, 3000, 15000, 0, -5, 1, 0); } else { pc.leaveMovieMode(); } } _socialTask = ThreadPoolManager.getInstance().schedule(new SpawnDespawn(4), 3300); break; case 4: for (Player pc : _players) { if (pc.getDistance(_valakas) <= _distance) { pc.enterMovieMode(); pc.specialCamera(_valakas, 500, 180, -8, 600, 15000, 0, 60, 1, 0); } else { pc.leaveMovieMode(); } } _socialTask = ThreadPoolManager.getInstance().schedule(new SpawnDespawn(5), 2900); break; case 5: for (Player pc : _players) { if (pc.getDistance(_valakas) <= _distance) { pc.enterMovieMode(); pc.specialCamera(_valakas, 800, 180, -8, 2700, 15000, 0, 30, 1, 0); } else { pc.leaveMovieMode(); } } _socialTask = ThreadPoolManager.getInstance().schedule(new SpawnDespawn(6), 2700); break; case 6: for (Player pc : _players) { if (pc.getDistance(_valakas) <= _distance) { pc.enterMovieMode(); pc.specialCamera(_valakas, 200, 250, 70, 0, 15000, 30, 80, 1, 0); } else { pc.leaveMovieMode(); } } _socialTask = ThreadPoolManager.getInstance().schedule(new SpawnDespawn(7), 1); break; case 7: for (Player pc : _players) { if (pc.getDistance(_valakas) <= _distance) { pc.enterMovieMode(); pc.specialCamera(_valakas, 1100, 250, 70, 2500, 15000, 30, 80, 1, 0); } else { pc.leaveMovieMode(); } } _socialTask = ThreadPoolManager.getInstance().schedule(new SpawnDespawn(, 3200); break; case 8: for (Player pc : _players) { if (pc.getDistance(_valakas) <= _distance) { pc.enterMovieMode(); pc.specialCamera(_valakas, 700, 150, 30, 0, 15000, -10, 60, 1, 0); } else { pc.leaveMovieMode(); } } _socialTask = ThreadPoolManager.getInstance().schedule(new SpawnDespawn(9), 1400); break; case 9: for (Player pc : _players) { if (pc.getDistance(_valakas) <= _distance) { pc.enterMovieMode(); pc.specialCamera(_valakas, 1200, 150, 20, 2900, 15000, -10, 30, 1, 0); } else { pc.leaveMovieMode(); } } _socialTask = ThreadPoolManager.getInstance().schedule(new SpawnDespawn(10), 6700); break; case 10: for (Player pc : _players) { if (pc.getDistance(_valakas) <= _distance) { pc.enterMovieMode(); pc.specialCamera(_valakas, 750, 170, -10, 3400, 15000, 10, -15, 1, 0); } else { pc.leaveMovieMode(); } } _socialTask = ThreadPoolManager.getInstance().schedule(new SpawnDespawn(11), 5700); break; case 11: for (Player pc : _players) { pc.leaveMovieMode(); } _valakas.unblock(); broadcastScreenMessage(NpcString.VALAKAS_ARROGAANT_FOOL_YOU_DARE_TO_CHALLENGE_ME); if (_valakas.getAI().getIntention() == AI_INTENTION_ACTIVE) { _valakas.moveToLocation(new Location(Rnd.get(211080, 214909), Rnd.get(-115841, -112822), -1662, 0), 0, false); } _sleepCheckTask = ThreadPoolManager.getInstance().schedule(new CheckLastAttack(), 600000); break; case 12: _valakas.broadcastPacket(new PlaySound(PlaySound.Type.MUSIC, "B03_D", 1, _valakas.getObjectId(), _valakas.getLoc())); broadcastScreenMessage(NpcString.VALAKAS_THE_EVIL_FIRE_DRAGON_VALAKAS_DEFEATED); onValakasDie(); for (Player pc : _players) { if (pc.getDistance(_valakas) <= _distance) { pc.enterMovieMode(); pc.specialCamera(_valakas, 2000, 130, -1, 0, 15000, 0, 0, 1, 1); } else { pc.leaveMovieMode(); } } _socialTask = ThreadPoolManager.getInstance().schedule(new SpawnDespawn(13), 500); break; case 13: for (Player pc : _players) { if (pc.getDistance(_valakas) <= _distance) { pc.enterMovieMode(); pc.specialCamera(_valakas, 1100, 210, -5, 3000, 15000, -13, 0, 1, 1); } else { pc.leaveMovieMode(); } } _socialTask = ThreadPoolManager.getInstance().schedule(new SpawnDespawn(14), 3500); break; case 14: for (Player pc : _players) { if (pc.getDistance(_valakas) <= _distance) { pc.enterMovieMode(); pc.specialCamera(_valakas, 1300, 200, -8, 3000, 15000, 0, 15, 1, 1); } else { pc.leaveMovieMode(); } } _socialTask = ThreadPoolManager.getInstance().schedule(new SpawnDespawn(15), 4500); break; case 15: for (Player pc : _players) { if (pc.getDistance(_valakas) <= _distance) { pc.enterMovieMode(); pc.specialCamera(_valakas, 1000, 190, 0, 500, 15000, 0, 10, 1, 1); } else { pc.leaveMovieMode(); } } _socialTask = ThreadPoolManager.getInstance().schedule(new SpawnDespawn(16), 500); break; case 16: for (Player pc : _players) { if (pc.getDistance(_valakas) <= _distance) { pc.enterMovieMode(); pc.specialCamera(_valakas, 1700, 120, 0, 2500, 15000, 12, 40, 1, 1); } else { pc.leaveMovieMode(); } } _socialTask = ThreadPoolManager.getInstance().schedule(new SpawnDespawn(17), 4600); break; case 17: for (Player pc : _players) { if (pc.getDistance(_valakas) <= _distance) { pc.enterMovieMode(); pc.specialCamera(_valakas, 1700, 20, 0, 700, 15000, 10, 10, 1, 1); } else { pc.leaveMovieMode(); } } _socialTask = ThreadPoolManager.getInstance().schedule(new SpawnDespawn(18), 750); break; case 18: for (Player pc : _players) { if (pc.getDistance(_valakas) <= _distance) { pc.enterMovieMode(); pc.specialCamera(_valakas, 1700, 10, 0, 1000, 15000, 20, 70, 1, 1); } else { pc.leaveMovieMode(); } } _socialTask = ThreadPoolManager.getInstance().schedule(new SpawnDespawn(19), 2500); break; case 19: for (Player pc : _players) { pc.leaveMovieMode(); pc.altOnMagicUseTimer(pc, SkillTable.getInstance().getInfo(23312, 1)); } break; } } } /** * Method banishForeigners. */ private static void banishForeigners() { for (Player player : getPlayersInside()) { player.teleToClosestTown(); } } /** * Method checkAnnihilated. */ private synchronized static void checkAnnihilated() { if ((_onAnnihilatedTask == null) && isPlayersAnnihilated()) { _onAnnihilatedTask = ThreadPoolManager.getInstance().schedule(new onAnnihilated(), 5000); } } /** * Method getPlayersInside. * @return List<Player> */ static List<Player> getPlayersInside() { return getZone().getInsidePlayers(); } /** * Method getRespawnInterval. * @return int */ private static int getRespawnInterval() { return (int) (Config.ALT_RAID_RESPAWN_MULTIPLIER * FWV_FIXINTERVALOFVALAKAS); } /** * Method getZone. * @return Zone */ public static Zone getZone() { return _zone; } /** * Method isPlayersAnnihilated. * @return boolean */ private static boolean isPlayersAnnihilated() { for (Player pc : getPlayersInside()) { if (!pc.isDead()) { return false; } } return true; } /** * Method onDeath. * @param self Creature * @param killer Creature * @see lineage2.gameserver.listener.actor.OnDeathListener#onDeath(Creature, Creature) */ @Override public void onDeath(Creature self, Creature killer) { if (self.isPlayer() && (_state != null) && (_state.getState() == State.ALIVE) && (_zone != null) && _zone.checkIfInZone(self.getX(), self.getY())) { checkAnnihilated(); } else if (self.isNpc() && (self.getId() == Valakas)) { ThreadPoolManager.getInstance().schedule(new SpawnDespawn(12), 1); } } /** * Method onValakasDie. */ static void onValakasDie() { if (Dying) { return; } Dying = true; _state.setRespawnDate(getRespawnInterval()); _state.setState(EpicBossState.State.INTERVAL); _state.update(); _entryLocked = false; for (int[] ints : _teleportCubeLocation) { _teleportCube.add(Functions.spawn(new Location(ints[0], ints[1], ints[2], ints[3]), _teleportCubeId)); } Log.add("Valakas died", "bosses"); } /** * Method setIntervalEndTask. */ private static void setIntervalEndTask() { setUnspawn(); if (_state.getState().equals(EpicBossState.State.ALIVE)) { _state.setState(EpicBossState.State.NOTSPAWN); _state.update(); return; } if (!_state.getState().equals(EpicBossState.State.INTERVAL)) { _state.setRespawnDate(getRespawnInterval()); _state.setState(EpicBossState.State.INTERVAL); _state.update(); } _intervalEndTask = ThreadPoolManager.getInstance().schedule(new IntervalEnd(), _state.getInterval()); } /** * Method setUnspawn. */ private static void setUnspawn() { banishForeigners(); _entryLocked = false; if (_valakas != null) { _valakas.deleteMe(); } for (NpcInstance npc : _spawnedMinions) { npc.deleteMe(); } for (NpcInstance cube : _teleportCube) { cube.getSpawn().stopRespawn(); cube.deleteMe(); } _teleportCube.clear(); if (_valakasSpawnTask != null) { _valakasSpawnTask.cancel(false); _valakasSpawnTask = null; } if (_intervalEndTask != null) { _intervalEndTask.cancel(false); _intervalEndTask = null; } if (_socialTask != null) { _socialTask.cancel(false); _socialTask = null; } if (_mobiliseTask != null) { _mobiliseTask.cancel(false); _mobiliseTask = null; } if (_moveAtRandomTask != null) { _moveAtRandomTask.cancel(false); _moveAtRandomTask = null; } if (_sleepCheckTask != null) { _sleepCheckTask.cancel(false); _sleepCheckTask = null; } if (_respawnValakasTask != null) { _respawnValakasTask.cancel(false); _respawnValakasTask = null; } if (_onAnnihilatedTask != null) { _onAnnihilatedTask.cancel(false); _onAnnihilatedTask = null; } } /** * Method sleep. */ static void sleep() { setUnspawn(); if (_state.getState().equals(EpicBossState.State.ALIVE)) { _state.setState(EpicBossState.State.NOTSPAWN); _state.update(); } } /** * Method setLastAttackTime. */ public static void setLastAttackTime() { _lastAttackTime = System.currentTimeMillis(); } /** * Method setValakasSpawnTask. */ public synchronized static void setValakasSpawnTask() { if (_valakasSpawnTask == null) { _valakasSpawnTask = ThreadPoolManager.getInstance().schedule(new SpawnDespawn(1), FWV_APPTIMEOFVALAKAS); } _entryLocked = true; } /** * Method isEnableEnterToLair. * @return boolean */ public static boolean isEnableEnterToLair() { return _state.getState() == EpicBossState.State.NOTSPAWN; } /** * Method broadcastScreenMessage. * @param npcs NpcString */ public static void broadcastScreenMessage(NpcString npcs) { for (Player p : getPlayersInside()) { p.sendPacket(new ExShowScreenMessage(npcs, 8000, ExShowScreenMessage.ScreenMessageAlign.TOP_CENTER, false)); } } /** * Method addValakasMinion. * @param npc NpcInstance */ public static void addValakasMinion(NpcInstance npc) { _spawnedMinions.add(npc); } /** * Method init. */ private void init() { CharListenerList.addGlobal(this); _state = new EpicBossState(Valakas); _zone = ReflectionUtils.getZone("[valakas_epic]"); _log.info("ValakasManager: State of Valakas is " + _state.getState() + "."); if (!_state.getState().equals(EpicBossState.State.NOTSPAWN)) { setIntervalEndTask(); } _log.info("ValakasManager: Next spawn date is " + TimeUtils.toSimpleFormat(_state.getRespawnDate()) + "."); } /** * Method enterTheLair. * @param ccleader Player */ public static void enterTheLair(Player ccleader) { if (ccleader == null) { return; } if ((ccleader.getParty() == null) || !ccleader.getParty().isInCommandChannel()) { ccleader.sendPacket(new SystemMessage(SystemMessage.YOU_CANNOT_ENTER_BECAUSE_YOU_ARE_NOT_IN_A_CURRENT_COMMAND_CHANNEL)); return; } CommandChannel cc = ccleader.getParty().getCommandChannel(); if (cc.getChannelLeader() != ccleader) { ccleader.sendPacket(new SystemMessage(SystemMessage.ONLY_THE_ALLIANCE_CHANNEL_LEADER_CAN_ATTEMPT_ENTRY)); return; } if (cc.getMemberCount() > 200) { ccleader.sendMessage("The maximum of 200 players can invade the Valakas Nest"); return; } if (_state.getState() != EpicBossState.State.NOTSPAWN) { ccleader.sendMessage("Valakas is still reborning. You cannot invade the nest now"); return; } if (_entryLocked || (_state.getState() == EpicBossState.State.ALIVE)) { ccleader.sendMessage("Valakas has already been reborned and is being attacked. The entrance is sealed."); return; } for (Player p : cc) { if (p.isDead() || p.isFlying() || p.isCursedWeaponEquipped() || !p.isInRange(ccleader, 500)) { ccleader.sendMessage("Command Channel member " + p.getName() + " doesn't meet the requirements to enter the nest"); return; } } for (Player p : cc) { p.teleToLocation(TELEPORT_POSITION); } setValakasSpawnTask(); }
  5. Подскажите пожалуйста!Стал добавлять в свою сборку скирпт Инстанс Зоны"BaltusKnight" При загрузке консоли пишет "Invalid Character" delete this token. Добавил с другой сборки этот скрипт,по началу выдавал больше ошибок,так как все различные сборки написаны по разному.В конце концов осталась одна,которую не могу исправить. Скрипт был взять сборки Start-dev"Lindvior-v6222"
  6. Подскажите пожалуйста сборку хроники"Линдвиор" где Инста дракона"Линда" работает на все 100%
  7. В ПМ у Босса написанно так: <set name="type" value="RaidBoss"/> <minions> <minion npc_id="26085" count="3"/> </minions> <skills> Попробуй что-то похожее написать.
  8. Уважаемые друзья,Прошу помощи!В хроники Ertheia есть новая инстансзона:Пространственный Барьер.Кто знает координаты этой локации?Будьте так любезны,дайте пожалуйста.И вообще кто сможет помочь чем-то не проходите мимо.
×
×
  • Создать...