Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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 TnpcId = 77777;
- private final static int[] MOBS = {22125, 22124, 22126, 22128,22123};
- private final static int RaidBoss = 70021;
- //QuestItem
- private final static int BLACK_FEATHER = 10857;
- private final static int ITEM_FROM_RB = 10860;
- //Chance from mobs
- private final static int chance1 = 80;
- //Item
- private final static int FEATHER = 10859;
- 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(TnpcId);
- addTalkId(TnpcId);
- 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 = "77777-2.htm";
- st.setState(STARTED);
- }
- else if (event.equalsIgnoreCase("sobral"))
- {
- count = player.getInventory().getInventoryItemCount(BLACK_FEATHER,0);
- if (count < 300)
- event = "77777-no.htm";
- else
- {
- st.takeItems(BLACK_FEATHER,300);
- st.set("cond","2");
- event = "77777-4.htm";
- }
- }
- else if (event.equalsIgnoreCase("item_RB"))
- {
- count = player.getInventory().getInventoryItemCount(ITEM_FROM_RB,0);
- if (count < 1)
- event = "77777-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 == TnpcId)
- {
- if (cond == 0)
- htmltext = "77777-1.htm";
- else if (cond == 1)
- htmltext = "77777-3.htm";
- else if (cond == 2)
- htmltext = "77777-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");
- switch(cond)
- {
- case 1:
- for(int id : MOBS)
- if(npcId == id && Rnd.get(100) < chance1 && st.getPlayer().getInventory().getInventoryItemCount(BLACK_FEATHER,0) < 300)
- st.giveItems(BLACK_FEATHER,1);
- break;
- case 2:
- if(npcId == RaidBoss)
- {
- L2Party party = killer.getParty();
- if(party != null)
- {
- for(L2PcInstance member : party.getPartyMembers())
- if(member.getInventory().getInventoryItemCount(ITEM_FROM_RB,0) < 1)
- {
- st = member.getQuestState(getName());
- if(st != null && st.getInt("cond") == 2)
- st.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");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement