Advertisement
Guest User

Untitled

a guest
Sep 19th, 2020
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.08 KB | None | 0 0
  1. package net.sf.l2j.gameserver.scripting.quests;
  2.  
  3. import net.sf.l2j.gameserver.model.actor.Npc;
  4. import net.sf.l2j.gameserver.model.actor.instance.Player;
  5. import net.sf.l2j.gameserver.scripting.Quest;
  6. import net.sf.l2j.gameserver.scripting.QuestState;
  7.  
  8. public class Q111_ElrokianHuntersProof extends Quest
  9. {
  10. private static final String qn = "Q111_ElrokianHuntersProof";
  11.  
  12. // NPCs
  13. private static final int MARQUEZ = 32113;
  14. private static final int MUSHIKA = 32114;
  15. private static final int ASAMAH = 32115;
  16. private static final int KIRIKASHIN = 32116;
  17.  
  18. // Items
  19. private static final int FRAGMENT = 8768;
  20. private static final int EXPEDITION_LETTER = 8769;
  21. private static final int CLAW = 8770;
  22. private static final int BONE = 8771;
  23. private static final int SKIN = 8772;
  24. private static final int PRACTICE_TRAP = 8773;
  25.  
  26. public Q111_ElrokianHuntersProof()
  27. {
  28. super(111, "Elrokian Hunter's Proof");
  29.  
  30. setItemsIds(FRAGMENT, EXPEDITION_LETTER, CLAW, BONE, SKIN, PRACTICE_TRAP);
  31.  
  32. addStartNpc(MARQUEZ);
  33. addTalkId(MARQUEZ, MUSHIKA, ASAMAH, KIRIKASHIN);
  34.  
  35. addKillId(22196, 22197, 22198, 22218, 22200, 22201, 22202, 22219, 22208, 22209, 22210, 22221, 22203, 22204, 22205, 22220);
  36. }
  37.  
  38. @Override
  39. public String onAdvEvent(String event, Npc npc, Player player)
  40. {
  41. String htmltext = event;
  42. QuestState st = player.getQuestState(qn);
  43. if (st == null)
  44. return htmltext;
  45.  
  46. if (event.equalsIgnoreCase("32113-002.htm"))
  47. {
  48. st.setState(STATE_STARTED);
  49. st.set("cond", "1");
  50. st.playSound(QuestState.SOUND_ACCEPT);
  51. }
  52. else if (event.equalsIgnoreCase("32115-002.htm"))
  53. {
  54. st.set("cond", "3");
  55. st.playSound(QuestState.SOUND_MIDDLE);
  56. }
  57. else if (event.equalsIgnoreCase("32113-009.htm"))
  58. {
  59. st.set("cond", "4");
  60. st.playSound(QuestState.SOUND_MIDDLE);
  61. }
  62. else if (event.equalsIgnoreCase("32113-018.htm"))
  63. {
  64. st.set("cond", "6");
  65. st.playSound(QuestState.SOUND_MIDDLE);
  66. st.takeItems(FRAGMENT, -1);
  67. st.giveItems(EXPEDITION_LETTER, 1);
  68. }
  69. else if (event.equalsIgnoreCase("32116-003.htm"))
  70. {
  71. st.set("cond", "7");
  72. st.playSound("EtcSound.elcroki_song_full");
  73. }
  74. else if (event.equalsIgnoreCase("32116-005.htm"))
  75. {
  76. st.set("cond", "8");
  77. st.playSound(QuestState.SOUND_MIDDLE);
  78. }
  79. else if (event.equalsIgnoreCase("32115-004.htm"))
  80. {
  81. st.set("cond", "9");
  82. st.playSound(QuestState.SOUND_MIDDLE);
  83. }
  84. else if (event.equalsIgnoreCase("32115-006.htm"))
  85. {
  86. st.set("cond", "10");
  87. st.playSound(QuestState.SOUND_MIDDLE);
  88. }
  89. else if (event.equalsIgnoreCase("32116-007.htm"))
  90. {
  91. st.takeItems(PRACTICE_TRAP, 1);
  92. st.giveItems(8763, 1);
  93. st.giveItems(8764, 100);
  94. st.rewardItems(57, 1022636);
  95. st.playSound(QuestState.SOUND_FINISH);
  96. st.exitQuest(false);
  97. }
  98.  
  99. return htmltext;
  100. }
  101.  
  102. @Override
  103. public String onTalk(Npc npc, Player player)
  104. {
  105. String htmltext = getNoQuestMsg();
  106. QuestState st = player.getQuestState(qn);
  107. if (st == null)
  108. return htmltext;
  109.  
  110. switch (st.getState())
  111. {
  112. case STATE_CREATED:
  113. htmltext = (player.getLevel() < 75) ? "32113-000.htm" : "32113-001.htm";
  114. break;
  115.  
  116. case STATE_STARTED:
  117. int cond = st.getInt("cond");
  118. switch (npc.getNpcId())
  119. {
  120. case MARQUEZ:
  121. if (cond == 1 || cond == 2)
  122. htmltext = "32113-002.htm";
  123. else if (cond == 3)
  124. htmltext = "32113-003.htm";
  125. else if (cond == 4)
  126. htmltext = "32113-009.htm";
  127. else if (cond == 5)
  128. htmltext = "32113-010.htm";
  129. break;
  130.  
  131. case MUSHIKA:
  132. if (cond == 1)
  133. {
  134. st.set("cond", "2");
  135. st.playSound(QuestState.SOUND_MIDDLE);
  136. }
  137. htmltext = "32114-001.htm";
  138. break;
  139.  
  140. case ASAMAH:
  141. if (cond == 2)
  142. htmltext = "32115-001.htm";
  143. else if (cond == 3)
  144. htmltext = "32115-002.htm";
  145. else if (cond == 8)
  146. htmltext = "32115-003.htm";
  147. else if (cond == 9)
  148. htmltext = "32115-004.htm";
  149. else if (cond == 10)
  150. htmltext = "32115-006.htm";
  151. else if (cond == 11)
  152. {
  153. htmltext = "32115-007.htm";
  154. st.set("cond", "12");
  155. st.playSound(QuestState.SOUND_MIDDLE);
  156. st.takeItems(BONE, -1);
  157. st.takeItems(CLAW, -1);
  158. st.takeItems(SKIN, -1);
  159. st.giveItems(PRACTICE_TRAP, 1);
  160. }
  161. break;
  162.  
  163. case KIRIKASHIN:
  164. if (cond < 6)
  165. htmltext = "32116-008.htm";
  166. else if (cond == 6)
  167. {
  168. htmltext = "32116-001.htm";
  169. st.takeItems(EXPEDITION_LETTER, 1);
  170. }
  171. else if (cond == 7)
  172. htmltext = "32116-004.htm";
  173. else if (cond == 12)
  174. htmltext = "32116-006.htm";
  175. break;
  176. }
  177. break;
  178.  
  179. case STATE_COMPLETED:
  180. htmltext = getAlreadyCompletedMsg();
  181. break;
  182. }
  183.  
  184. return htmltext;
  185. }
  186.  
  187. @Override
  188. public String onKill(Npc npc, Player player, boolean isPet)
  189. {
  190. Player partyMember = getRandomPartyMemberState(player, npc, STATE_STARTED);
  191. if (partyMember == null)
  192. return null;
  193.  
  194. QuestState st = partyMember.getQuestState(qn);
  195.  
  196. switch (npc.getNpcId())
  197. {
  198. case 22196:
  199. case 22197:
  200. case 22198:
  201. case 22218:
  202. if (st.getInt("cond") == 4 && st.dropItems(FRAGMENT, 1, 50, 250000))
  203. st.set("cond", "5");
  204. break;
  205.  
  206. case 22200:
  207. case 22201:
  208. case 22202:
  209. case 22219:
  210. if (st.getInt("cond") == 10 && st.dropItems(CLAW, 1, 10, 650000))
  211. if (st.getQuestItemsCount(BONE) >= 10 && st.getQuestItemsCount(SKIN) >= 10)
  212. st.set("cond", "11");
  213. break;
  214.  
  215. case 22208:
  216. case 22209:
  217. case 22210:
  218. case 22221:
  219. if (st.getInt("cond") == 10 && st.dropItems(SKIN, 1, 10, 650000))
  220. if (st.getQuestItemsCount(CLAW) >= 10 && st.getQuestItemsCount(BONE) >= 10)
  221. st.set("cond", "11");
  222. break;
  223.  
  224. case 22203:
  225. case 22204:
  226. case 22205:
  227. case 22220:
  228. if (st.getInt("cond") == 10 && st.dropItems(BONE, 1, 10, 650000))
  229. if (st.getQuestItemsCount(CLAW) >= 10 && st.getQuestItemsCount(SKIN) >= 10)
  230. st.set("cond", "11");
  231. break;
  232. }
  233.  
  234. return null;
  235. }
  236. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement