Decay 0 Опубликовано 21 августа, 2012 Всем привет, суть проблемы я хочу в соло сходить в инстанц на фрею простую для теста но для етого нужно цц мне в лом грузить 10 окон, как можно 1 в соло пойти в инстанц, Помогите пожалуйста с меня + зборка Rebelion HF Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
genokk22 174 Опубликовано 21 августа, 2012 Всем привет, суть проблемы я хочу в соло сходить в инстанц на фрею простую для теста но для етого нужно цц мне в лом грузить 10 окон, как можно 1 в соло пойти в инстанц, Помогите пожалуйста с меня + зборка Rebelion HF Ищешь в папке scripts .java файл отвечающий за фрею и ищешь проверку на цц и т.д.,либо в квесте(но на врятли). Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Decay 0 Опубликовано 21 августа, 2012 (изменено) неподскажыте где здесть, чот не врубаюсь. Скрытый текстpackage instances; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.atomic.AtomicInteger; import l2r.commons.geometry.Polygon; import l2r.commons.threading.RunnableImpl; import l2r.commons.util.Rnd; import l2r.gameserver.ThreadPoolManager; import l2r.gameserver.listener.actor.OnCurrentHpDamageListener; import l2r.gameserver.listener.actor.OnDeathListener; import l2r.gameserver.listener.zone.OnZoneEnterLeaveListener; import l2r.gameserver.model.Creature; import l2r.gameserver.model.Player; import l2r.gameserver.model.Skill; import l2r.gameserver.model.Territory; import l2r.gameserver.model.Zone; import l2r.gameserver.model.entity.Reflection; import l2r.gameserver.model.instances.NpcInstance; import l2r.gameserver.model.quest.QuestState; import l2r.gameserver.network.serverpackets.EventTrigger; import l2r.gameserver.network.serverpackets.ExChangeClientEffectInfo; import l2r.gameserver.network.serverpackets.ExSendUIEvent; import l2r.gameserver.network.serverpackets.ExShowScreenMessage; import l2r.gameserver.network.serverpackets.ExShowScreenMessage.ScreenMessageAlign; import l2r.gameserver.network.serverpackets.ExStartScenePlayer; import l2r.gameserver.network.serverpackets.SystemMessage; import l2r.gameserver.network.serverpackets.components.NpcString; import l2r.gameserver.utils.Location; import quests._10286_ReunionWithSirra; /** * @author pchayka * <p/> * Инстанс Фреи в режиме общей сложности. */ public class FreyaNormal extends Reflection { private static final int FreyaThrone = 29177; private static final int FreyaStandNormal = 29179; private static final int IceKnightNormal = 18855; //state 1 - in ice, state 2 - ice shattering, then normal state private static final int IceKnightLeaderNormal = 25699; private static final int IceCastleBreath = 18854; private static final int Glacier = 18853; // state 1 - falling, state 2 - waiting private static final int IceCastleController = 18932; // state 1-7 private static final int Sirra = 32762; private static final int Jinia = 18850; private static final int Kegor = 18851; private static final int[] _eventTriggers = {23140202, 23140204, 23140206, 23140208, 23140212, 23140214, 23140216}; private Zone damagezone, attackUp, pcbuff, pcbuff2; private ScheduledFuture<?> firstStageGuardSpawn; private ScheduledFuture<?> secondStageGuardSpawn; private ScheduledFuture<?> thirdStageGuardSpawn; private ZoneListener _epicZoneListener = new ZoneListener(); private ZoneListenerL _landingZoneListener = new ZoneListenerL(); private DeathListener _deathListener = new DeathListener(); private CurrentHpListener _currentHpListener = new CurrentHpListener(); private boolean _entryLocked = false; private boolean _startLaunched = false; private boolean _freyaSlayed = false; private AtomicInteger raidplayers = new AtomicInteger(); private static Territory centralRoom = new Territory().add(new Polygon().add(114264, -113672).add(113640, -114344).add(113640, -115240).add(114264, -115912).add(115176, -115912).add(115800, -115272).add(115800, -114328).add(115192, -113672).setZmax(-11225).setZmin(-11225)); @Override protected void onCreate() { super.onCreate(); attackUp = getZone("[freya_attack_up]"); pcbuff = getZone("[freya_pc_buff1]"); pcbuff2 = getZone("[freya_pc_buff2]"); getZone("[freya_normal_epic]").addListener(_epicZoneListener); getZone("[freya_landing_room_epic]").addListener(_landingZoneListener); } private void manageDamageZone(int level, boolean disable) { if(disable) { damagezone.setActive(false); return; } if(damagezone != null) damagezone.setActive(false); switch(level) { case 1: damagezone = getZone("[freya_normal_freezing_01]"); break; case 2: damagezone = getZone("[freya_normal_freezing_02]"); break; case 3: damagezone = getZone("[freya_normal_freezing_03]"); break; case 4: damagezone = getZone("[freya_normal_freezing_04]"); break; case 5: damagezone = getZone("[freya_normal_freezing_05]"); break; case 6: damagezone = getZone("[freya_normal_freezing_06]"); break; case 7: damagezone = getZone("[freya_normal_freezing_07]"); break; default: break; } if(damagezone != null) damagezone.setActive(true); } private void manageAttackUpZone(boolean disable) { if(attackUp != null && disable) { attackUp.setActive(false); return; } if(attackUp != null) attackUp.setActive(true); } private void managePcBuffZone(boolean disable) { if(pcbuff != null && pcbuff2 != null && disable) { pcbuff.setActive(false); pcbuff2.setActive(false); return; } if(pcbuff != null) pcbuff.setActive(true); if(pcbuff2 != null) pcbuff2.setActive(true); } private void manageCastleController(int state) { // 1-7 enabled, 8 - disabled for(NpcInstance n : getNpcs()) if(n.getNpcId() == IceCastleController) n.setNpcState(state); } private void manageStorm(boolean active) { for(Player p : getPlayers()) for(int _eventTrigger : _eventTriggers) p.sendPacket(new EventTrigger(_eventTrigger, active)); } private class StartNormalFreya extends RunnableImpl { @Override public void runImpl() throws Exception { _entryLocked = true; closeDoor(23140101); for(Player player : getPlayers()) { QuestState qs = player.getQuestState(_10286_ReunionWithSirra.class); if(qs != null && qs.getCond() == 5) qs.setCond(6); player.showQuestMovie(ExStartScenePlayer.SCENE_BOSS_FREYA_OPENING); } ThreadPoolManager.getInstance().schedule(new PreStage(), 55000L); // 53.5sec for movie } } private class PreStage extends RunnableImpl { @Override public void runImpl() throws Exception { manageDamageZone(1, false); //screen message for(Player player : getPlayers()) player.sendPacket(new ExShowScreenMessage(NpcString.BEGIN_STAGE_1_FREYA, 6000, ScreenMessageAlign.TOP_CENTER, true, 1, -1, true)); //spawning few guards for(int i = 0; i < 10; i++) addSpawnWithoutRespawn(IceKnightNormal, Territory.getRandomLoc(centralRoom, getGeoIndex()), 0); ThreadPoolManager.getInstance().schedule(new FirstStage(), 40000L); } } private class FirstStage extends RunnableImpl { @Override public void runImpl() throws Exception { manageCastleController(1); manageDamageZone(2, false); for(Player player : getPlayers()) player.sendPacket(new ExShowScreenMessage(NpcString.FREYA_HAS_STARTED_TO_MOVE, 4000, ScreenMessageAlign.MIDDLE_CENTER, true)); //Spawning Freya Throne NpcInstance freyaTrhone = addSpawnWithoutRespawn(FreyaThrone, new Location(114720, -117085, -11088, 15956), 0); freyaTrhone.addListener(_deathListener); firstStageGuardSpawn = ThreadPoolManager.getInstance().scheduleAtFixedRate(new GuardSpawnTask(1), 2000L, 30000L); } } private class GuardSpawnTask extends RunnableImpl { int _mode, _knightsMin, _knightsMax, _breathMin, _breathMax; public GuardSpawnTask(int mode) // 1 - light, 2 - normal, 3 - hard, 4 - extreme { _mode = mode; if(_mode < 1 || _mode > 4) _mode = 1; } @Override public void runImpl() throws Exception { switch(_mode) { case 1: _knightsMin = 2; _knightsMax = 3; _breathMin = 1; _breathMax = 2; break; case 2: _knightsMin = 2; _knightsMax = 4; _breathMin = 1; _breathMax = 3; break; case 3: _knightsMin = 3; _knightsMax = 8; _breathMin = 2; _breathMax = 4; break; case 4: _knightsMin = 6; _knightsMax = 10; _breathMin = 3; _breathMax = 7; break; default: break; } for(int i = 0; i < Rnd.get(_knightsMin, _knightsMax); i++) addSpawnWithoutRespawn(IceKnightNormal, Territory.getRandomLoc(centralRoom, getGeoIndex()), 0); for(int i = 0; i < Rnd.get(_breathMin, _breathMax); i++) addSpawnWithoutRespawn(IceCastleBreath, Territory.getRandomLoc(centralRoom, getGeoIndex()), 0); if(Rnd.chance(60)) for(int i = 0; i < Rnd.get(1, 3); i++) addSpawnWithoutRespawn(Glacier, Territory.getRandomLoc(centralRoom, getGeoIndex()), 0); } } private class PreSecondStage extends RunnableImpl { @Override public void runImpl() throws Exception { firstStageGuardSpawn.cancel(true); for(NpcInstance n : getNpcs()) if(n.getNpcId() != Sirra && n.getNpcId() != IceCastleController) n.deleteMe(); for(Player p : getPlayers()) p.showQuestMovie(ExStartScenePlayer.SCENE_BOSS_FREYA_PHASE_A); ThreadPoolManager.getInstance().schedule(new TimerToSecondStage(), 22000L); // 22.1 secs for movie } } private class TimerToSecondStage extends RunnableImpl { @Override public void runImpl() throws Exception { for(Player p : getPlayers()) p.sendPacket(new ExSendUIEvent(p, false, false, 60, 0, NpcString.TIME_REMAINING_UNTIL_NEXT_BATTLE)); ThreadPoolManager.getInstance().schedule(new SecondStage(), 60000L); } } private class SecondStage extends RunnableImpl { @Override public void runImpl() throws Exception { manageCastleController(3); manageDamageZone(3, false); for(Player p : getPlayers()) p.sendPacket(new ExShowScreenMessage(NpcString.BEGIN_STAGE_2_FREYA, 6000, ScreenMessageAlign.TOP_CENTER, true, 1, -1, true)); secondStageGuardSpawn = ThreadPoolManager.getInstance().scheduleAtFixedRate(new GuardSpawnTask(2), 2000L, 30000L); ThreadPoolManager.getInstance().schedule(new KnightCaptainSpawnMovie(), 60000L); } } private class KnightCaptainSpawnMovie extends RunnableImpl { @Override public void runImpl() throws Exception { for(NpcInstance n : getNpcs()) n.block(); for(Player p : getPlayers()) p.showQuestMovie(ExStartScenePlayer.SCENE_ICE_HEAVYKNIGHT_SPAWN); ThreadPoolManager.getInstance().schedule(new KnightCaptainSpawn(), 7500L); } } private class KnightCaptainSpawn extends RunnableImpl { @Override public void runImpl() throws Exception { manageDamageZone(4, false); for(NpcInstance n : getNpcs()) n.unblock(); NpcInstance knightLeader = addSpawnWithoutRespawn(IceKnightLeaderNormal, new Location(114707, -114799, -11199, 15956), 0); knightLeader.addListener(_deathListener); } } private class PreThirdStage extends RunnableImpl { @Override public void runImpl() throws Exception { for(Player p : getPlayers()) p.sendPacket(new ExSendUIEvent(p, false, false, 60, 0, NpcString.TIME_REMAINING_UNTIL_NEXT_BATTLE)); secondStageGuardSpawn.cancel(true); for(NpcInstance n : getNpcs()) if(n.getNpcId() != Sirra && n.getNpcId() != IceCastleController) n.deleteMe(); ThreadPoolManager.getInstance().schedule(new PreThirdStageM(), 60000L); } } private class PreThirdStageM extends RunnableImpl { @Override public void runImpl() throws Exception { for(Player p : getPlayers()) p.showQuestMovie(ExStartScenePlayer.SCENE_BOSS_FREYA_PHASE_; ThreadPoolManager.getInstance().schedule(new ThirdStage(), 22000L); // 21.5 secs for movie } } private class ThirdStage extends RunnableImpl { @Override public void runImpl() throws Exception { manageCastleController(4); manageAttackUpZone(false); manageDamageZone(5, false); manageStorm(true); for(Player p : getPlayers()) { p.sendPacket(new ExShowScreenMessage(NpcString.BEGIN_STAGE_3_FREYA, 6000, ScreenMessageAlign.TOP_CENTER, true, 1, -1, true)); p.sendPacket(new ExChangeClientEffectInfo(2)); } thirdStageGuardSpawn = ThreadPoolManager.getInstance().scheduleAtFixedRate(new GuardSpawnTask(3), 2000L, 30000L); NpcInstance freyaStand = addSpawnWithoutRespawn(FreyaStandNormal, new Location(114720, -117085, -11088, 15956), 0); freyaStand.addListener(_currentHpListener); freyaStand.addListener(_deathListener); } } private class PreForthStage extends RunnableImpl { @Override public void runImpl() throws Exception { for(NpcInstance n : getNpcs()) n.block(); for(Player p : getPlayers()) { p.block(); p.showQuestMovie(ExStartScenePlayer.SCENE_BOSS_KEGOR_INTRUSION); } ThreadPoolManager.getInstance().schedule(new ForthStage(), 28000L); // 27 secs for movie } } private class ForthStage extends RunnableImpl { @Override public void runImpl() throws Exception { for(NpcInstance n : getNpcs()) n.unblock(); for(Player p : getPlayers()) { p.unblock(); p.sendPacket(new ExShowScreenMessage(NpcString.BEGIN_STAGE_4_FREYA, 6000, ScreenMessageAlign.TOP_CENTER, true, 1, -1, true)); } addSpawnWithoutRespawn(Jinia, new Location(114727, -114700, -11200, -16260), 0); addSpawnWithoutRespawn(Kegor, new Location(114690, -114700, -11200, -16260), 0); managePcBuffZone(false); } } private class FreyaDeathStage extends RunnableImpl { @Override public void runImpl() throws Exception { setReenterTime(System.currentTimeMillis()); //Guard spawn task cancellation thirdStageGuardSpawn.cancel(true); //switching off zones manageDamageZone(1, true); manageAttackUpZone(true); managePcBuffZone(true); //Deleting all NPCs + Freya corpse for(NpcInstance n : getNpcs()) n.deleteMe(); //Movie + quest update for(Player p : getPlayers()) { QuestState qs = p.getQuestState(_10286_ReunionWithSirra.class); if(qs != null && qs.getCond() == 6) qs.setCond(7); p.showQuestMovie(ExStartScenePlayer.SCENE_BOSS_FREYA_ENDING_A); } ThreadPoolManager.getInstance().schedule(new ConclusionMovie(), 16200L); // 16 secs for movie } } private class ConclusionMovie extends RunnableImpl { @Override public void runImpl() throws Exception { for(Player p : getPlayers()) p.showQuestMovie(ExStartScenePlayer.SCENE_BOSS_FREYA_ENDING_; ThreadPoolManager.getInstance().schedule(new InstanceConclusion(), 57000L); // 56 secs for movie } } private class InstanceConclusion extends RunnableImpl { @Override public void runImpl() throws Exception { startCollapseTimer(5 * 60 * 1000L); doCleanup(); for(Player p : getPlayers()) p.sendPacket(new SystemMessage(SystemMessage.THIS_DUNGEON_WILL_EXPIRE_IN_S1_MINUTES).addNumber(5) ); } } private class DeathListener implements OnDeathListener { @Override public void onDeath(Creature self, Creature killer) { if(self.isNpc() && self.getNpcId() == FreyaThrone) { ThreadPoolManager.getInstance().schedule(new PreSecondStage(), 10); self.deleteMe(); } else if(self.isNpc() && self.getNpcId() == IceKnightLeaderNormal) ThreadPoolManager.getInstance().schedule(new PreThirdStage(), 10); else if(self.isNpc() && self.getNpcId() == FreyaStandNormal) ThreadPoolManager.getInstance().schedule(new FreyaDeathStage(), 10); } } public class CurrentHpListener implements OnCurrentHpDamageListener { @Override public void onCurrentHpDamage(Creature actor, double damage, Creature attacker, Skill skill) { if(actor == null || actor.isDead() || actor.getNpcId() != FreyaStandNormal) return; double newHp = actor.getCurrentHp() - damage; double maxHp = actor.getMaxHp(); if(!_freyaSlayed && newHp <= 0.2 * maxHp) { _freyaSlayed = true; ThreadPoolManager.getInstance().schedule(new PreForthStage(), 10); actor.removeListener(_currentHpListener); } } } public class ZoneListener implements OnZoneEnterLeaveListener { @Override public void onZoneEnter(Zone zone, Creature cha) { if(_entryLocked) return; Player player = cha.getPlayer(); if(player == null || !cha.isPlayer()) return; if(checkstartCond(raidplayers.incrementAndGet())) { ThreadPoolManager.getInstance().schedule(new StartNormalFreya(), 30000L); _startLaunched = true; } } @Override public void onZoneLeave(Zone zone, Creature cha) { } } public class ZoneListenerL implements OnZoneEnterLeaveListener { @Override public void onZoneEnter(Zone zone, Creature cha) { if(cha.isPlayer()) cha.sendPacket(new ExChangeClientEffectInfo(1)); } @Override public void onZoneLeave(Zone zone, Creature cha) { } } private boolean checkstartCond(int raidplayers) { return !(raidplayers < getInstancedZone().getMinParty() || _startLaunched); } private void doCleanup() { if(firstStageGuardSpawn != null) firstStageGuardSpawn.cancel(true); if(secondStageGuardSpawn != null) secondStageGuardSpawn.cancel(true); if(thirdStageGuardSpawn != null) thirdStageGuardSpawn.cancel(true); } @Override protected void onCollapse() { super.onCollapse(); doCleanup(); } } Изменено 21 августа, 2012 пользователем NewOff Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
genokk22 174 Опубликовано 21 августа, 2012 (изменено) Всегда обьемную информацию засовывай под спойлер. В скрипте значит нет,ошибся,проверь квест отвечающих за неё,и убири проверку на вход людей в скрипте квеста. Изменено 21 августа, 2012 пользователем genokk22 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Decay 0 Опубликовано 21 августа, 2012 (изменено) Всегда обьемную информацию засовывай под спойлер. В скрипте значит нет,ошибся,проверь квест отвечающих за неё,и убири проверку на вход людей в скрипте квеста. где в упор не вижу ((( Скрытый текстpackage quests; import l2r.gameserver.model.Player; import l2r.gameserver.model.entity.Reflection; import l2r.gameserver.model.instances.NpcInstance; import l2r.gameserver.model.quest.Quest; import l2r.gameserver.model.quest.QuestState; import l2r.gameserver.scripts.Functions; import l2r.gameserver.scripts.ScriptFile; import l2r.gameserver.utils.Location; import l2r.gameserver.utils.ReflectionUtils; /** * @author pchayka */ public class _10286_ReunionWithSirra extends Quest implements ScriptFile { private static final int Rafforty = 32020; private static final int Jinia = 32760; private static final int Jinia2 = 32781; private static final int Sirra = 32762; public _10286_ReunionWithSirra() { super(false); addStartNpc(Rafforty); addTalkId(Jinia, Jinia2, Sirra); } @Override public String onEvent(String event, QuestState st, NpcInstance npc) { String htmltext = event; if(event.equalsIgnoreCase("rafforty_q10286_02.htm")) { st.setState(STARTED); st.setCond(1); st.playSound(SOUND_ACCEPT); } else if(event.equalsIgnoreCase("enterinstance")) { st.setCond(2); enterInstance(st.getPlayer(), 141); return null; } else if(event.equalsIgnoreCase("sirraspawn")) { st.setCond(3); NpcInstance sirra = st.getPlayer().getReflection().addSpawnWithoutRespawn(Sirra, new Location(-23848, -8744, -5413, 49152), 0); Functions.npcSay(sirra, "Вы с таким энтузиазмом отправились в путь и это все, чего Вы добиись? Хе-хе-хе..."); return null; } else if(event.equalsIgnoreCase("sirra_q10286_04.htm")) { st.giveItems(15470, 5); st.setCond(4); npc.deleteMe(); } else if(event.equalsIgnoreCase("leaveinstance")) { st.setCond(5); st.getPlayer().getReflection().collapse(); return null; } return htmltext; } @Override public String onTalk(NpcInstance npc, QuestState st) { String htmltext = "noquest"; int npcId = npc.getNpcId(); int cond = st.getCond(); if(npcId == Rafforty) { if(cond == 0) { QuestState qs = st.getPlayer().getQuestState(_10285_MeetingSirra.class); if(st.getPlayer().getLevel() >= 82 && qs != null && qs.isCompleted()) htmltext = "rafforty_q10286_01.htm"; else { htmltext = "rafforty_q10286_00.htm"; st.exitCurrentQuest(true); } } else if(cond == 1 || cond == 2 || cond == 3 || cond == 4) htmltext = "rafforty_q10286_03.htm"; } else if(npcId == Jinia) { if(cond == 2) htmltext = "jinia_q10286_01.htm"; else if(cond == 3) htmltext = "jinia_q10286_01a.htm"; else if(cond == 4) htmltext = "jinia_q10286_05.htm"; } else if(npcId == Sirra) { if(cond == 3) htmltext = "sirra_q10286_01.htm"; } else if(npcId == Jinia2) { if(cond == 5) htmltext = "jinia2_q10286_01.htm"; else if(cond == 6) htmltext = "jinia2_q10286_04.htm"; else if(cond == 7) { htmltext = "jinia2_q10286_05.htm"; st.addExpAndSp(2152200, 181070); st.setState(COMPLETED); st.exitCurrentQuest(false); } } return htmltext; } private void enterInstance(Player player, int izId) { Reflection r = player.getActiveReflection(); if(r != null) { if(player.canReenterInstance(izId)) player.teleToLocation(r.getTeleportLoc(), r); } else if(player.canEnterInstance(izId)) { ReflectionUtils.enterReflection(player, izId); } } @Override public void onLoad() {} @Override public void onReload() {} @Override public void onShutdown() {} } Изменено 21 августа, 2012 пользователем Decay Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Decay 0 Опубликовано 21 августа, 2012 ну ето пакеты на сколько я понел а где проверка((( import l2r.gameserver.model.Player; Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Decay 0 Опубликовано 21 августа, 2012 (изменено) на сколько я понел гдето здесь ( Скрытый текстelse if(event.equalsIgnoreCase("enterinstance")) { st.setCond(2); enterInstance(st.getPlayer(), 141); return null; } else if(event.equalsIgnoreCase("sirraspawn")) { st.setCond(3); NpcInstance sirra = st.getPlayer().getReflection().addSpawnWithoutRespawn(Sirra, new Location(-23848, -8744, -5413, 49152), 0); Functions.npcSay(sirra, "Вы с таким энтузиазмом отправились в путь и это все, чего Вы добиись? Хе-хе-хе..."); return null; Но где Изменено 21 августа, 2012 пользователем Decay Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты