JediMaster 6 Опубликовано 4 марта, 2022 есть у кого рабочий скрипт квест на крылья или же может подскажет что за ошибка 1. WARNING in \Wings.java (at line 97) if(npcId == npcId) ^^^^^^^^^^^^^^ Comparing identical expressions Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
JoeyTribbiani 822 Опубликовано 4 марта, 2022 это не ошибка, на функционал не влияет. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
JediMaster 6 Опубликовано 4 марта, 2022 (изменено) 42 минуты назад, JoeyTribbiani сказал: это не ошибка, на функционал не влияет. разобрался просто вписал id только всё ровн оквест почему то н работает Изменено 4 марта, 2022 пользователем JediMaster Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
JediMaster 6 Опубликовано 4 марта, 2022 Спойлер package quests.Wings; import net.sf.l2j.gameserver.model.L2Party; import net.sf.l2j.gameserver.model.actor.instance.L2NpcInstance; import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; import net.sf.l2j.gameserver.model.quest.QuestState; import net.sf.l2j.gameserver.model.quest.State; import net.sf.l2j.gameserver.model.quest.jython.QuestJython; import net.sf.l2j.util.Rnd; public class Wings extends QuestJython { //NPC private final static int npcId = 9000; private final static int[] MOBS = {10000,10001}; private final static int RaidBoss = 10005; //QuestItem private final static int BLACK_FEATHER = 12000; private final static int ITEM_FROM_RB = 9500; //Chance from mobs private final static int chance1 = 100; //Chance from RB private final static int chance2 = 100; //Item private final static int FEATHER = 9501; private int count; //Разрешено ли повторять квест? private static boolean REPEATABLE = true; private int cond = 0; private State STARTED = new State("Started", this); public Wings(int questId, String name, String descr) { super(questId, name, descr, 1); State st = new State("Start", this); this.setInitialState(st); addStartNpc(npcId); addTalkId(npcId); for (int mobs : MOBS) addKillId(mobs); addKillId(RaidBoss); } public String onEvent(String event, QuestState st) { L2PcInstance player = st.getPlayer(); if (event.equalsIgnoreCase("start")) { st.set("cond","1"); event = "9000-2.htm"; st.setState(STARTED); } else if (event.equalsIgnoreCase("sobral")) { count = player.getInventory().getInventoryItemCount(BLACK_FEATHER,0); if (count < 300) event = "9000-no.htm"; else { st.takeItems(BLACK_FEATHER,300); st.set("cond","2"); event = "9000-4.htm"; } } else if (event.equalsIgnoreCase("item_RB")) { count = player.getInventory().getInventoryItemCount(ITEM_FROM_RB,0); if (count < 1) event = "9000-no1.htm"; else { st.takeItems(ITEM_FROM_RB,1); st.giveItems(FEATHER,1); st.exitQuest(REPEATABLE); event = "<html><body>kvest zavershen</body><html>"; } } else if (event.equalsIgnoreCase("otmena")) { event = "<html><body>kvest otmenen</body></html>"; st.exitQuest(true); } return event; } public String onTalk(L2NpcInstance npc, L2PcInstance talker) { QuestState st = talker.getQuestState(getName()); String htmltext = "<html><body>You are either not on a quest that involves this NPC, or you don't meet this NPC's minimum quest requirements.</body></html>"; if(st == null) return htmltext; int npcId = npc.getNpcId(); cond = st.getInt("cond"); if(npcId == npcId) { if (cond == 0) htmltext = "9000-1.htm"; else if (cond == 1) htmltext = "9000-3.htm"; else if (cond == 2) htmltext = "9000-5.htm"; } return htmltext; } public String onKill (L2NpcInstance npc, L2PcInstance killer, boolean isPet) { QuestState st = killer.getQuestState(getName()); if(st == null) return null; int npcId = npc.getNpcId(); int cond = st.getInt("cond"); L2Party party = killer.getParty(); switch(cond) { case 1: for (int id : MOBS) if (npcId == id) if (Rnd.get(100) < chance1) if (st.getPlayer().getInventory().getInventoryItemCount(BLACK_FEATHER,0) < 300) st.giveItems(BLACK_FEATHER,1); break; case 2: if (npcId == RaidBoss) if (Rnd.get(100) < chance2) if (party != null) for (L2PcInstance member : party.getPartyMembers()) if (member.getInventory().getInventoryItemCount(ITEM_FROM_RB,0) < 1) member.getQuestState(getName()).giveItems(ITEM_FROM_RB,1); else if (killer.getInventory().getInventoryItemCount(ITEM_FROM_RB,0) < 1) st.giveItems(ITEM_FROM_RB,1); break; } return null; } public static void main(String[] args) { new Wings(-1, "Wings", "quests"); } } Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты