Advertisement
Guest User

Untitled

a guest
Mar 5th, 2015
191
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.46 KB | None | 0 0
  1. package quests.Wings;
  2.  
  3. import net.sf.l2j.gameserver.model.L2Party;
  4. import net.sf.l2j.gameserver.model.actor.instance.L2NpcInstance;
  5. import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
  6. import net.sf.l2j.gameserver.model.quest.QuestState;
  7. import net.sf.l2j.gameserver.model.quest.State;
  8. import net.sf.l2j.gameserver.model.quest.jython.QuestJython;
  9. import net.sf.l2j.util.Rnd;
  10.  
  11. public class Wings extends QuestJython
  12. {
  13. //NPC
  14. private final static int TnpcId = 77777;
  15. private final static int[] MOBS = {22125, 22124, 22126, 22128,22123};
  16. private final static int RaidBoss = 70021;
  17. //QuestItem
  18. private final static int BLACK_FEATHER = 10857;
  19. private final static int ITEM_FROM_RB = 10860;
  20. //Chance from mobs
  21. private final static int chance1 = 80;
  22. //Item
  23. private final static int FEATHER = 10859;
  24. private int count;
  25. //Разрешено ли повторять квест?
  26. private static boolean REPEATABLE = true;
  27.  
  28. private int cond = 0;
  29.  
  30. private State STARTED = new State("Started", this);
  31.  
  32. public Wings(int questId, String name, String descr)
  33. {
  34. super(questId, name, descr, 1);
  35.  
  36. State st = new State("Start", this);
  37. this.setInitialState(st);
  38.  
  39. addStartNpc(TnpcId);
  40. addTalkId(TnpcId);
  41. for (int mobs : MOBS)
  42. addKillId(mobs);
  43. addKillId(RaidBoss);
  44. }
  45.  
  46. public String onEvent(String event, QuestState st)
  47. {
  48. L2PcInstance player = st.getPlayer();
  49. if (event.equalsIgnoreCase("start"))
  50. {
  51. st.set("cond","1");
  52. event = "77777-2.htm";
  53. st.setState(STARTED);
  54. }
  55. else if (event.equalsIgnoreCase("sobral"))
  56. {
  57. count = player.getInventory().getInventoryItemCount(BLACK_FEATHER,0);
  58. if (count < 300)
  59. event = "77777-no.htm";
  60. else
  61. {
  62. st.takeItems(BLACK_FEATHER,300);
  63. st.set("cond","2");
  64. event = "77777-4.htm";
  65. }
  66. }
  67. else if (event.equalsIgnoreCase("item_RB"))
  68. {
  69. count = player.getInventory().getInventoryItemCount(ITEM_FROM_RB,0);
  70. if (count < 1)
  71. event = "77777-no1.htm";
  72. else
  73. {
  74. st.takeItems(ITEM_FROM_RB,1);
  75. st.giveItems(FEATHER,1);
  76. st.exitQuest(REPEATABLE);
  77. event = "<html><body>kvest zavershen</body><html>";
  78. }
  79. }
  80. else if (event.equalsIgnoreCase("otmena"))
  81. {
  82. event = "<html><body>kvest otmenen</body></html>";
  83. st.exitQuest(true);
  84. }
  85. return event;
  86. }
  87.  
  88. public String onTalk(L2NpcInstance npc, L2PcInstance talker)
  89. {
  90. QuestState st = talker.getQuestState(getName());
  91. 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>";
  92. if(st == null) return htmltext;
  93. int npcId = npc.getNpcId();
  94. cond = st.getInt("cond");
  95. if(npcId == TnpcId)
  96. {
  97. if (cond == 0)
  98. htmltext = "77777-1.htm";
  99. else if (cond == 1)
  100. htmltext = "77777-3.htm";
  101. else if (cond == 2)
  102. htmltext = "77777-5.htm";
  103. }
  104. return htmltext;
  105. }
  106.  
  107. public String onKill(L2NpcInstance npc, L2PcInstance killer, boolean isPet)
  108. {
  109. QuestState st = killer.getQuestState(getName());
  110. if(st == null) return null;
  111. int npcId = npc.getNpcId();
  112. int cond = st.getInt("cond");
  113. switch(cond)
  114. {
  115. case 1:
  116. for(int id : MOBS)
  117. if(npcId == id && Rnd.get(100) < chance1 && st.getPlayer().getInventory().getInventoryItemCount(BLACK_FEATHER,0) < 300)
  118. st.giveItems(BLACK_FEATHER,1);
  119. break;
  120. case 2:
  121. if(npcId == RaidBoss)
  122. {
  123. L2Party party = killer.getParty();
  124. if(party != null)
  125. {
  126. for(L2PcInstance member : party.getPartyMembers())
  127. if(member.getInventory().getInventoryItemCount(ITEM_FROM_RB,0) < 1)
  128. {
  129. st = member.getQuestState(getName());
  130. if(st != null && st.getInt("cond") == 2)
  131. st.giveItems(ITEM_FROM_RB,1);
  132. }
  133. }
  134. else if(killer.getInventory().getInventoryItemCount(ITEM_FROM_RB,0) < 1)
  135. st.giveItems(ITEM_FROM_RB,1);
  136. }
  137. break;
  138. }
  139. return null;
  140. }
  141.  
  142. public static void main(String[] args)
  143. {
  144. new Wings(-1, "Wings", "quests");
  145. }
  146. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement