Natali 8 Опубликовано 10 июня, 2012 Всем доброго дня! выдает такую ошибку при выполнении квеста 7 печатей,после трансформации в воина рассвета, и попытке телепорта в инстансы. как исправить? java.lang.NullPointerException at quests._195_SevenSignSecretRitualOfThePriests._195_SevenSignSecretRitualOfThePri ests.enterInstance(_195_SevenSignSecretRitualOfThePriests.java:86) at quests._195_SevenSignSecretRitualOfThePriests._195_SevenSignSecretRitualOfThePri ests.onTalk(_195_SevenSignSecretRitualOfThePriests.java:310) at l2p.gameserver.model.quest.Quest.notifyTalk(Quest.java:654) at l2p.gameserver.model.instances.L2NpcInstance.showQuestWindow(L2NpcInstance.java: 989) at l2p.gameserver.model.instances.L2NpcInstance.showQuestWindow(L2NpcInstance.java: 1344) at l2p.gameserver.model.instances.L2NpcInstance.onBypassFeedback(L2NpcInstance.java :1086) at l2p.gameserver.clientpackets.RequestBypassToServer.runImpl(RequestBypassToServer .java:106) at l2p.gameserver.clientpackets.L2GameClientPacket.run(L2GameClientPacket.java:47) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) at java.lang.Thread.run(Thread.java:636) програмисты расшифруйте плиз,где копать? гугл ничего не дал. спасибо. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
†DeMoN†™ 156 Опубликовано 10 июня, 2012 (изменено) Добрый день. К сожалению со структурой фениксов не особо знаком, так что отвечу поверхностно. _195_SevenSignSecretRitualOfThePriests в данном классе, в методе enterInstance - поступает пустое значение. Если выложите его код, возможно смогу подсказать подробней. Изменено 10 июня, 2012 пользователем †DeMoN†™ Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Natali 8 Опубликовано 10 июня, 2012 Добрый день. К сожалению со структурой фениксов не особо знаком, так что отвечу поверхностно._195_SevenSignSecretRitualOfThePriests в данном классе, в методе enterInstance - поступает пустое значение. Если выложите его код, возможно смогу подсказать подробней. т е выложить код java файла? щас выложу. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
†DeMoN†™ 156 Опубликовано 10 июня, 2012 т е выложить код java файла? щас выложу. Да. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Natali 8 Опубликовано 10 июня, 2012 вот Скрытый текстpackage quests._195_SevenSignSecretRitualOfThePriests; import java.util.HashMap; import javolution.util.FastMap; import l2p.extensions.scripts.ScriptFile; import l2p.gameserver.cache.Msg; import l2p.gameserver.idfactory.IdFactory; import l2p.gameserver.instancemanager.InstancedZoneManager; import l2p.gameserver.instancemanager.InstancedZoneManager.InstancedZone; import l2p.gameserver.model.L2ObjectsStorage; import l2p.gameserver.model.L2Party; import l2p.gameserver.model.L2Player; import l2p.gameserver.model.Reflection; import l2p.gameserver.model.instances.L2DoorInstance; import l2p.gameserver.model.instances.L2NpcInstance; import l2p.gameserver.model.quest.Quest; import l2p.gameserver.model.quest.QuestState; import l2p.gameserver.serverpackets.SystemMessage; import l2p.gameserver.tables.ReflectionTable; import l2p.gameserver.tables.SkillTable; import l2p.gameserver.tables.DoorTable; public class _195_SevenSignSecretRitualOfThePriests extends Quest implements ScriptFile { public class World { public long instanceId; public int status; } private static HashMap<Long, World> worlds = new HashMap<Long, World>(); private static FastMap<Integer, InstancedZone> ils; private static InstancedZone il; private int KLAUDIA = 31001; private int LIGHT = 32575; private int JOHN = 32576; private int PASSWORD = 32577; private int IDENTIFER = 32578; private int BACK_LIGHT = 32579; private int BOOK1 = 32580; private int BOOK2 = 32581; private int RAYMOND = 30289; private int IASON = 30969; private int doorst = 0; private int IDENTITY_CARD = 13822; private int CONTRACT = 13823; public void onLoad() {} public void onReload() {} public void onShutdown() {} public _195_SevenSignSecretRitualOfThePriests() { super(false); addStartNpc(KLAUDIA); addTalkId(KLAUDIA); addTalkId(JOHN); addTalkId(LIGHT); addTalkId(BACK_LIGHT); addTalkId(IDENTIFER); addTalkId(RAYMOND); addTalkId(PASSWORD); addTalkId(IASON); addTalkId(BOOK1); addTalkId(BOOK2); addQuestItem(IDENTITY_CARD); addQuestItem(CONTRACT); } private void enterInstance(L2Player player) { String lang = player.getVar("lang@"); L2Party party = player.getParty(); if(party == null) { ils = InstancedZoneManager.getInstance().getById(111); il = ils.get(0); assert il != null; Reflection r = ReflectionTable.getInstance().get(player.getReflection().getId()); r = new Reflection(IdFactory.getInstance().getNextId()); if(ils == null) { player.sendPacket(Msg.SYSTEM_ERROR); return; } for(InstancedZone i : ils.values()) { if(r.getReturnLoc() == null) r.setReturnLoc(i.getReturnCoords()); if(r.getTeleportLoc() == null) r.setTeleportLoc(i.getTeleportCoords()); r.FillSpawns(i.getSpawnsInfo()); if(i.getDoors() != null) for(L2DoorInstance d : i.getDoors()) { L2DoorInstance door = d.clone(); r.addDoor(door); door.setReflection®; door.spawnMe(); } } int timelimit = il.getTimelimit(); World world = new World(); world.status = 0; world.instanceId = r.getId(); worlds.put(r.getId(), world); player.setReflection®; player.teleToLocation( -76157, 213413, -7120); r.startCollapseTimer(timelimit * 60 * 1000L); player.broadcastPacket(new SystemMessage(SystemMessage.THIS_DUNGEON_WILL_EXPIRE_IN_S1_MINUTES).addNumber(ti melimit)); } else { if(lang.equalsIgnoreCase("en")) player.sendMessage("This quest avaliable only for one person!"); else player.sendMessage("Это задание только для одного человека!"); } } @Override public String onEvent(String event, QuestState st, L2NpcInstance npc) { String htmltext = event; L2Player player = st.getPlayer(); int password = st.getInt("password"); World world = worlds.get(player.getReflection().getId()); if(event.equalsIgnoreCase("31001-05.htm")) { st.setState(STARTED); st.set("cond", "1"); st.playSound(SOUND_ACCEPT); } if(event.equalsIgnoreCase("32576-02.htm")) { st.set("cond", "2"); st.giveItems(IDENTITY_CARD, 1); st.playSound(SOUND_MIDDLE); } if(event.equalsIgnoreCase("30289-04.htm")) { if(st.getInt("cond") < 3) { st.set("cond", "3"); st.playSound(SOUND_MIDDLE); } player.altUseSkill(SkillTable.getInstance().getInfo(6204, 1), player); } if(event.equalsIgnoreCase("30289-07.htm")) player.setTransformation(0); if(event.equalsIgnoreCase("32578-03.htm")) { if(world.status == 0) { Reflection r = ReflectionTable.getInstance().get(world.instanceId); r.openDoor(17240001); r.openDoor(17240002); doorst++; npc.deleteMe(); world.status = 1; return "32578-03.htm"; } else if (world.status == 1) { Reflection r = ReflectionTable.getInstance().get(world.instanceId); r.openDoor(17240003); r.openDoor(17240004); doorst++; world.status = 1; L2Player pl = L2ObjectsStorage.getPlayer(player.getObjectId()); if (pl != null) { pl.showQuestMovie(11); startQuestTimer("Part4",180000,null,player); } npc.deleteMe(); htmltext = "32578-03.htm"; } } if(event.equalsIgnoreCase("password71")) { if(password == 3) { Reflection r = ReflectionTable.getInstance().get(world.instanceId); st.unset("password"); r.openDoor(17240005); r.openDoor(17240006); return "32577-03.htm"; } else htmltext = "32577-02.htm"; } if(event.equalsIgnoreCase("password72")) { if(password == 0) { st.set("password", "1"); htmltext = "32577-02.htm"; } else htmltext = "32577-02.htm"; } if(event.equalsIgnoreCase("password78")) { if(password == 2) { st.set("password", "3"); htmltext = "32577-02.htm"; } else htmltext = "32577-02.htm"; } if(event.equalsIgnoreCase("password79")) { if(password == 1) { st.set("password", "2"); htmltext = "32577-02.htm"; } else htmltext = "32577-02.htm"; } if(event.equalsIgnoreCase("32580-03.htm")) { if(st.getQuestItemsCount(CONTRACT) == 0) { st.takeItems(IDENTITY_CARD, -1); st.giveItems(CONTRACT, 1); return "32580-03.htm"; } else return "32580-00.htm"; } if(event.equalsIgnoreCase("30289-09.htm")) { st.takeItems(CONTRACT, -1); st.set("cond", "4"); } if(event.equalsIgnoreCase("30969-02.htm")) { st.addExpAndSp(52518015, 5817677); st.unset("cond"); st.setState(COMPLETED); st.exitCurrentQuest(false); st.playSound(SOUND_FINISH); } else if (event.equalsIgnoreCase("Part4")) { player.teleToLocation(-78383, 205845, -7889); return "Вы не успели взять контракт императора и Вас обнаружили, попробуйте снова."; } return htmltext; } @Override public String onTalk(L2NpcInstance npc, QuestState st) { String htmltext = "noquest"; int npcId = npc.getNpcId(); int cond = st.getInt("cond"); L2Player player = st.getPlayer(); QuestState qs = player.getQuestState("_194_SevenSignContractOfMammon"); if(npcId == KLAUDIA) { if(qs != null && qs.isCompleted() && player.getLevel() >= 79 && cond == 0) htmltext = "31001-01.htm"; else if(cond == 1) htmltext = "31001-06.htm"; else return "31001-00.htm"; } if(npcId == JOHN) { if(cond == 1) htmltext = "32576-01.htm"; else if(cond == 2) htmltext = "32576-03.htm"; } if(npcId == RAYMOND) { if(cond == 2) htmltext = "30289-01.htm"; else if(cond == 3 && player.getTransformation() == 0 && st.getQuestItemsCount(CONTRACT) == 0) htmltext = "30289-06.htm"; else if(cond == 3 && player.getTransformation() != 0 && st.getQuestItemsCount(CONTRACT) == 0) htmltext = "30289-10.htm"; else if(cond == 3 && st.getQuestItemsCount(CONTRACT) > 0) htmltext = "30289-08.htm"; } if(npcId == LIGHT) { if(player.getTransformation() == 113) { htmltext = "32575-02.htm"; enterInstance(player); } else htmltext = "32575-01.htm"; } if(npcId == BACK_LIGHT) { if( st.getQuestItemsCount(CONTRACT) > 0) { htmltext = "32579-01.htm"; player.setReflection(0); player.teleToLocation(il.getReturnCoords()); } else htmltext = "32579-00.htm"; } if(npcId == IDENTIFER) { if(st.getQuestItemsCount(IDENTITY_CARD) > 0 && player.getTransformation() == 113) htmltext = "32578-01.htm"; else htmltext = "32578-02.htm"; } if(npcId == PASSWORD) htmltext = "32577-01.htm"; if(npcId == IASON) { if(cond == 4) htmltext = "30969-01.htm"; } if(npcId == BOOK1) htmltext = "32580-01.htm"; if(npcId == BOOK2) htmltext = "32581-01.htm"; return htmltext; } Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
†DeMoN†™ 156 Опубликовано 10 июня, 2012 InstancedZoneManager.getInstance().getById(111); Возвращает значение null, как вариант, ошибка в ID инстанса. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Natali 8 Опубликовано 10 июня, 2012 InstancedZoneManager.getInstance().getById(111); Возвращает значение null, как вариант, ошибка в ID инстанса. скажи пожалуйста где искать id инстансов, и куда их прописывать? в этом же файле. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
†DeMoN†™ 156 Опубликовано 10 июня, 2012 скажи пожалуйста где искать id инстансов, и куда их прописывать? в этом же файле. Как уже писал, со структурой фениксов не знаком да и с хрониками выше интерлюда всего пару раз работал. Сейчас покапался в своей коллекции исходников, в одной из сборок ID этого инстанса = 513. 111 замените на 513 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Natali 8 Опубликовано 10 июня, 2012 Не помогло видно ид не тот,дайте пожалуйста ссылку,на базу где можно найти все эти id. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
†DeMoN†™ 156 Опубликовано 10 июня, 2012 Поищите в датапаке xml'ы, связанные с instance (поиск по имени). Возможно там какая нибудь информация. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Natali 8 Опубликовано 10 июня, 2012 здесь искать instances.xml и как имя инстанса,простите учусь только( Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
†DeMoN†™ 156 Опубликовано 10 июня, 2012 Там. Напишите какая у вас сборка, попробую покапаться. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Natali 8 Опубликовано 10 июня, 2012 Там. Напишите какая у вас сборка, попробую покапаться. Phoenix Epilogue rev.20736 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
†DeMoN†™ 156 Опубликовано 10 июня, 2012 (изменено) Появился у меня тут 1 вариант. Сейчас только разберусь немного со структурой и отпишу. Вроде ошибок быть никаких не должно. Скрытый текст <instance id="513" name="Seven Sign Secret Ritual Of The Priests" timelimit="60" resetReuse="0 0 * * *"> <level min="79" max="85"/> <return loc="-12491 122331 -2959"/> <location id="0"> <teleport loc="-75944 213400 -7120"/> <spawn mobId="32578" type="point"> <coords loc="-75710 213535 -7126 0"/> <coords loc="-78355 205781 -7892 0"/> </spawn> <spawn mobId="32577" type="point"> <coords loc="-80133 205743 -7888 0"/> </spawn> <spawn mobId="32580" type="point"> <coords loc="-81386 205562 -7992 0"/> </spawn> <spawn mobId="32579" type="point"> <coords loc="-76003 213413 -7124 0"/> </spawn> <spawn mobId="27349" type="point"> <coords loc="-74949 212300 -7312 0"/> <coords loc="-75368 211886 -7312 0"/> <coords loc="-74549 211689 -7315 0"/> <coords loc="-75220 211453 -7312 0"/> <coords loc="-74717 211457 -7315 0"/> </spawn> <spawn mobId="27347" type="point"> <coords loc="-74948 213468 -7218 0"/> </spawn> <spawn mobId="27351" type="point"> <coords loc="-75329 209990 -7412 0"/> <coords loc="-74568 209981 -7410 0"/> <coords loc="-74279 208794 -7506 0"/> <coords loc="-75638 208763 -7506 0"/> <coords loc="-74959 207618 -7506 0"/> <coords loc="-73877 206617 -7506 0"/> <coords loc="-74526 206618 -7506 0"/> <coords loc="-77703 208112 -7696 0"/> <coords loc="-77705 207457 -7696 0"/> </spawn> <spawn mobId="27348" type="point"> <coords loc="-75230 210142 -7413 0"/> <coords loc="-74653 209824 -7410 0"/> <coords loc="-76606 207967 -7602 0"/> <coords loc="-76603 208409 -7602 0"/> <coords loc="-76590 208749 -7602 0"/> <coords loc="-76891 209223 -7601 0"/> <coords loc="-77276 209238 -7602 0"/> <coords loc="-75411 207143 -7511 0"/> <coords loc="-75442 207969 -7511 0"/> <coords loc="-78707 206182 -7893 0"/> <coords loc="-79653 206549 -7893 0"/> </spawn> <spawn mobId="27350" type="point"> <coords loc="-78258 207303 -7698 0"/> <coords loc="-77129 207269 -7698 0"/> <coords loc="-77131 208328 -7698 0"/> <coords loc="-78196 208337 -7698 0"/> <coords loc="-78947 206257 -7893 0"/> <coords loc="-79364 206453 -7893 0"/> <coords loc="-79782 206287 -7893 0"/> <coords loc="-79791 205431 -7893 0"/> <coords loc="-79358 205244 -7893 0"/> <coords loc="-78934 205430 -7893 0"/> <coords loc="-74948 211869 -7314 0"/> </spawn> </location> <door id="17240001" opened="false"/> <door id="17240002" opened="false"/> <door id="17240003" opened="false"/> <door id="17240004" opened="false"/> <door id="17240005" opened="false"/> <door id="17240006" opened="false"/> </instance> Закиньте его в instance.xml id инстанса измените на нужный (111 или 513, как вы его оставили) Изменено 10 июня, 2012 пользователем †DeMoN†™ Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
BlackDream 321 Опубликовано 10 июня, 2012 тоже интересно решил пилять фениксов)) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
†DeMoN†™ 156 Опубликовано 10 июня, 2012 тоже интересно решил пилять фениксов)) А я как то фениксов не люблю, поддерживаю старую добрую марку лыжи) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Natali 8 Опубликовано 10 июня, 2012 Помогло телепортация прошла успешно,теперь другая проблемма. после прохождения поверки на личность, пишется что двери открываются,чего на самом деле не происходит.и еще сразу пропадают все нпс на сервере. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
†DeMoN†™ 156 Опубликовано 10 июня, 2012 Помогло телепортация прошла успешно,теперь другая проблемма. после прохождения поверки на личность, пишется что двери открываются,чего на самом деле не происходит.и еще сразу пропадают все нпс на сервере. А ошибки какие-то пишет? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Natali 8 Опубликовано 10 июня, 2012 (изменено) А ошибки какие-то пишет? логи абсолютно чистые,ошибок ни каких не пишет. вру вот просто не обновила данные. Скрытый текстat commands.admin.AdminDoorControl.useAdminCommand(AdminDoorControl.java:37) at l2p.gameserver.handler.AdminCommandHandler.useAdminCommandHandler(AdminCommandHa ndler.java:60) at l2p.gameserver.clientpackets.RequestBypassToServer.runImpl(RequestBypassToServer .java:53) at l2p.gameserver.clientpackets.L2GameClientPacket.run(L2GameClientPacket.java:47) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) at java.lang.Thread.run(Thread.java:636) Изменено 10 июня, 2012 пользователем Natali Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Natali 8 Опубликовано 10 июня, 2012 Аушечки. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты