Piraelle 11 Опубликовано 17 сентября, 2016 Доброго дня! Такая беда , на базе 297 квеста сделал свой . квест берется , итемы с моба падают , но вот при сдаче квеста итемы забирает а награду не дает пишет ошибка в st.giveItems(SHILIN, 10); 63 строка как я понимаю . Прошу помощи разобраться. package quests._1101_Bonus; import l2p.gameserver.model.quest.Quest;import l2p.gameserver.model.quest.QuestState;import l2p.gameserver.scripts.ScriptFile;import l2p.gameserver.model.instances.L2NpcInstance;public class _1101_Bonusextends Questimplements ScriptFile{int STARSTONE = 1573;int SHILIN = 4057;public void onLoad() {}public void onReload() {}public void onShutdown() {}public _1101_Bonus(){super(false);addStartNpc(30086);addTalkId(new int[] { 30086 });addKillId(new int[] { 20045 });addQuestItem(new int[] { 1573 });}public String onEvent(String event, QuestState st, L2NpcInstance npc){String htmltext = event;if (event.equalsIgnoreCase("30540-03.htm")){st.set("cond", "1");st.playSound(SOUND_ACCEPT);}return htmltext;}public String onTalk(L2NpcInstance npc, QuestState st){String htmltext = "noquest";int npcId = npc.getNpcId();int cond = st.getInt("cond");if (npcId == 30086) {if (cond == 0){htmltext = "30540-02.htm";}else if ((cond == 1) && (st.getQuestItemsCount(1573) < 20L)){htmltext = "30540-04.htm";}else if ((cond == 2) && (st.getQuestItemsCount(1573) < 20L)){htmltext = "30540-04.htm";}else if ((cond == 2) && (st.getQuestItemsCount(1573) >= 20L)){htmltext = "30540-05.htm";st.takeItems(STARSTONE, -1);st.giveItems(SHILIN, 10);st.exitCurrentQuest(true);st.playSound(SOUND_FINISH);}}return htmltext;}public String onKill(L2NpcInstance npc, QuestState st){st.rollAndGive(1573, 1, 1, 20, 33.0D);if (st.getQuestItemsCount(1573) >= 20L) {st.set("cond", "2");}return null;}} Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Norman 78 Опубликовано 17 сентября, 2016 не ванга и не знаю но попробуйте st.giveItems(SHILIN, 10, true ); Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Piraelle 11 Опубликовано 17 сентября, 2016 к сожалению не помогло( Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
california 155 Опубликовано 17 сентября, 2016 Доброго дня! Такая беда , на базе 297 квеста сделал свой . квест берется , итемы с моба падают , но вот при сдаче квеста итемы забирает а награду не дает пишет ошибка в st.giveItems(SHILIN, 10); 63 строка как я понимаю . Прошу помощи разобраться. package quests._1101_Bonus; import l2p.gameserver.model.quest.Quest; import l2p.gameserver.model.quest.QuestState; import l2p.gameserver.scripts.ScriptFile; import l2p.gameserver.model.instances.L2NpcInstance; public class _1101_Bonus extends Quest implements ScriptFile { int STARSTONE = 1573; int SHILIN = 4057; public void onLoad() {} public void onReload() {} public void onShutdown() {} public _1101_Bonus() { super(false); addStartNpc(30086); addTalkId(new int[] { 30086 }); addKillId(new int[] { 20045 }); addQuestItem(new int[] { 1573 }); } public String onEvent(String event, QuestState st, L2NpcInstance npc) { String htmltext = event; if (event.equalsIgnoreCase("30540-03.htm")) { st.set("cond", "1"); st.playSound(SOUND_ACCEPT); } return htmltext; } public String onTalk(L2NpcInstance npc, QuestState st) { String htmltext = "noquest"; int npcId = npc.getNpcId(); int cond = st.getInt("cond"); if (npcId == 30086) { if (cond == 0) { htmltext = "30540-02.htm"; } else if ((cond == 1) && (st.getQuestItemsCount(1573) < 20L)) { htmltext = "30540-04.htm"; } else if ((cond == 2) && (st.getQuestItemsCount(1573) < 20L)) { htmltext = "30540-04.htm"; } else if ((cond == 2) && (st.getQuestItemsCount(1573) >= 20L)) { htmltext = "30540-05.htm"; st.takeItems(STARSTONE, -1); st.giveItems(SHILIN, 10); st.exitCurrentQuest(true); st.playSound(SOUND_FINISH); } } return htmltext; } public String onKill(L2NpcInstance npc, QuestState st) { st.rollAndGive(1573, 1, 1, 20, 33.0D); if (st.getQuestItemsCount(1573) >= 20L) { st.set("cond", "2"); } return null; } } У тебя есть такой класс "L2NpcInstance"? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Piraelle 11 Опубликовано 17 сентября, 2016 да Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
PTS 84 Опубликовано 17 сентября, 2016 Доброго дня! Такая беда , на базе 297 квеста сделал свой . квест берется , итемы с моба падают , но вот при сдаче квеста итемы забирает а награду не дает пишет ошибка в st.giveItems(SHILIN, 10); 63 строка как я понимаю . Прошу помощи разобраться. package quests._1101_Bonus; import l2p.gameserver.model.quest.Quest; import l2p.gameserver.model.quest.QuestState; import l2p.gameserver.scripts.ScriptFile; import l2p.gameserver.model.instances.L2NpcInstance; public class _1101_Bonus extends Quest implements ScriptFile { int STARSTONE = 1573; int SHILIN = 4057; public void onLoad() {} public void onReload() {} public void onShutdown() {} public _1101_Bonus() { super(false); addStartNpc(30086); addTalkId(new int[] { 30086 }); addKillId(new int[] { 20045 }); addQuestItem(new int[] { 1573 }); } public String onEvent(String event, QuestState st, L2NpcInstance npc) { String htmltext = event; if (event.equalsIgnoreCase("30540-03.htm")) { st.set("cond", "1"); st.playSound(SOUND_ACCEPT); } return htmltext; } public String onTalk(L2NpcInstance npc, QuestState st) { String htmltext = "noquest"; int npcId = npc.getNpcId(); int cond = st.getInt("cond"); if (npcId == 30086) { if (cond == 0) { htmltext = "30540-02.htm"; } else if ((cond == 1) && (st.getQuestItemsCount(1573) < 20L)) { htmltext = "30540-04.htm"; } else if ((cond == 2) && (st.getQuestItemsCount(1573) < 20L)) { htmltext = "30540-04.htm"; } else if ((cond == 2) && (st.getQuestItemsCount(1573) >= 20L)) { htmltext = "30540-05.htm"; st.takeItems(STARSTONE, -1); st.giveItems(SHILIN, 10); st.exitCurrentQuest(true); st.playSound(SOUND_FINISH); } } return htmltext; } public String onKill(L2NpcInstance npc, QuestState st) { st.rollAndGive(1573, 1, 1, 20, 33.0D); if (st.getQuestItemsCount(1573) >= 20L) { st.set("cond", "2"); } return null; } } У вас SHILIN это своя валюта или что есть в сервере ? Попробуйте SILVER_SHILEN Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Piraelle 11 Опубликовано 17 сентября, 2016 увы но тоже нет Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Rollfer 188 Опубликовано 17 сентября, 2016 (изменено) поставь ADENA вместо шилен или ITEM_ID_ADENA - так в оверах Изменено 17 сентября, 2016 пользователем Rollfer Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Piraelle 11 Опубликовано 18 сентября, 2016 Побывал и Адена и по другому и id но эффект 0) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты