Q00195_SevenSignsSecretRitualOfThePriests.java 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352
  1. /*
  2. * Copyright (C) 2004-2015 L2J DataPack
  3. *
  4. * This file is part of L2J DataPack.
  5. *
  6. * L2J DataPack is free software: you can redistribute it and/or modify
  7. * it under the terms of the GNU General Public License as published by
  8. * the Free Software Foundation, either version 3 of the License, or
  9. * (at your option) any later version.
  10. *
  11. * L2J DataPack is distributed in the hope that it will be useful,
  12. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  14. * General Public License for more details.
  15. *
  16. * You should have received a copy of the GNU General Public License
  17. * along with this program. If not, see <http://www.gnu.org/licenses/>.
  18. */
  19. package quests.Q00195_SevenSignsSecretRitualOfThePriests;
  20. import quests.Q00194_SevenSignsMammonsContract.Q00194_SevenSignsMammonsContract;
  21. import com.l2jserver.gameserver.model.actor.L2Npc;
  22. import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
  23. import com.l2jserver.gameserver.model.holders.SkillHolder;
  24. import com.l2jserver.gameserver.model.quest.Quest;
  25. import com.l2jserver.gameserver.model.quest.QuestState;
  26. import com.l2jserver.gameserver.model.quest.State;
  27. /**
  28. * Seven Signs, Secret Ritual of the Priests (195)
  29. * @author Adry_85
  30. */
  31. public final class Q00195_SevenSignsSecretRitualOfThePriests extends Quest
  32. {
  33. // NPCs
  34. private static final int RAYMOND = 30289;
  35. private static final int IASON_HEINE = 30969;
  36. private static final int CLAUDIA_ATHEBALDT = 31001;
  37. private static final int LIGHT_OF_DAWN = 32575;
  38. private static final int JOHN = 32576;
  39. private static final int PASSWORD_ENTRY_DEVICE = 32577;
  40. private static final int IDENTITY_CONFIRM_DEVICE = 32578;
  41. private static final int DARKNESS_OF_DAWN = 32579;
  42. private static final int SHELF = 32580;
  43. // Items
  44. private static final int IDENTITY_CARD = 13822;
  45. private static final int SHUNAIMANS_CONTRACT = 13823;
  46. // Misc
  47. private static final int MIN_LEVEL = 79;
  48. // Skills
  49. // private static SkillHolder TRANSFORM_DISPEL = new SkillHolder(6200, 1);
  50. private static SkillHolder TRANSFORMATION = new SkillHolder(6204, 1);
  51. public Q00195_SevenSignsSecretRitualOfThePriests()
  52. {
  53. super(195, Q00195_SevenSignsSecretRitualOfThePriests.class.getSimpleName(), "Seven Signs, Secret Ritual of the Priests");
  54. addFirstTalkId(IDENTITY_CONFIRM_DEVICE, PASSWORD_ENTRY_DEVICE, DARKNESS_OF_DAWN, SHELF);
  55. addStartNpc(CLAUDIA_ATHEBALDT);
  56. addTalkId(CLAUDIA_ATHEBALDT, JOHN, RAYMOND, IASON_HEINE, LIGHT_OF_DAWN, DARKNESS_OF_DAWN, IDENTITY_CONFIRM_DEVICE, PASSWORD_ENTRY_DEVICE, SHELF);
  57. registerQuestItems(IDENTITY_CARD, SHUNAIMANS_CONTRACT);
  58. }
  59. @Override
  60. public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
  61. {
  62. final QuestState st = getQuestState(player, false);
  63. if (st == null)
  64. {
  65. return null;
  66. }
  67. String htmltext = null;
  68. switch (event)
  69. {
  70. case "31001-03.html":
  71. case "31001-04.html":
  72. case "31001-05.html":
  73. case "32580-03.html":
  74. {
  75. htmltext = event;
  76. break;
  77. }
  78. case "31001-06.html":
  79. {
  80. st.startQuest();
  81. htmltext = event;
  82. break;
  83. }
  84. case "32576-02.html":
  85. {
  86. if (st.isCond(1))
  87. {
  88. st.giveItems(IDENTITY_CARD, 1);
  89. st.setCond(2, true);
  90. htmltext = event;
  91. }
  92. break;
  93. }
  94. case "30289-02.html":
  95. case "30289-03.html":
  96. case "30289-05.html":
  97. {
  98. if (st.isCond(2))
  99. {
  100. htmltext = event;
  101. }
  102. break;
  103. }
  104. case "30289-04.html":
  105. {
  106. if (st.isCond(2))
  107. {
  108. npc.setTarget(player);
  109. npc.doCast(TRANSFORMATION.getSkill());
  110. st.setCond(3, true);
  111. htmltext = event;
  112. }
  113. break;
  114. }
  115. case "30289-07.html":
  116. {
  117. if (st.isCond(3))
  118. {
  119. htmltext = event;
  120. }
  121. break;
  122. }
  123. case "30289-08.html":
  124. {
  125. if (st.isCond(3) && st.hasQuestItems(IDENTITY_CARD) && st.hasQuestItems(SHUNAIMANS_CONTRACT))
  126. {
  127. st.takeItems(IDENTITY_CARD, -1);
  128. st.setCond(4, true);
  129. htmltext = event;
  130. if (player.getTransformationId() == 113)
  131. {
  132. // player.doCast(TRANSFORM_DISPEL.getSkill());
  133. player.stopAllEffects();
  134. }
  135. }
  136. break;
  137. }
  138. case "30289-10.html":
  139. {
  140. if (st.isCond(3))
  141. {
  142. npc.setTarget(player);
  143. npc.doCast(TRANSFORMATION.getSkill());
  144. htmltext = event;
  145. }
  146. break;
  147. }
  148. case "30289-11.html":
  149. {
  150. if (st.isCond(3))
  151. {
  152. // player.doCast(TRANSFORM_DISPEL.getSkill());
  153. player.stopAllEffects();
  154. htmltext = event;
  155. }
  156. break;
  157. }
  158. case "30969-02.html":
  159. {
  160. if (st.isCond(4) && st.hasQuestItems(SHUNAIMANS_CONTRACT))
  161. {
  162. htmltext = event;
  163. }
  164. break;
  165. }
  166. case "reward":
  167. {
  168. if (st.isCond(4) && st.hasQuestItems(SHUNAIMANS_CONTRACT))
  169. {
  170. if (player.getLevel() >= MIN_LEVEL)
  171. {
  172. st.addExpAndSp(52518015, 5817677);
  173. st.exitQuest(false, true);
  174. htmltext = "30969-03.html";
  175. }
  176. else
  177. {
  178. htmltext = "level_check.html";
  179. }
  180. }
  181. break;
  182. }
  183. }
  184. return htmltext;
  185. }
  186. @Override
  187. public String onFirstTalk(L2Npc npc, L2PcInstance player)
  188. {
  189. String htmltext = null;
  190. switch (npc.getId())
  191. {
  192. case IDENTITY_CONFIRM_DEVICE:
  193. {
  194. htmltext = "32578-01.html";
  195. break;
  196. }
  197. case PASSWORD_ENTRY_DEVICE:
  198. {
  199. htmltext = "32577-01.html";
  200. break;
  201. }
  202. case DARKNESS_OF_DAWN:
  203. {
  204. htmltext = "32579-01.html";
  205. break;
  206. }
  207. case SHELF:
  208. {
  209. htmltext = "32580-01.html";
  210. break;
  211. }
  212. }
  213. return htmltext;
  214. }
  215. @Override
  216. public String onTalk(L2Npc npc, L2PcInstance player)
  217. {
  218. QuestState st = getQuestState(player, true);
  219. String htmltext = getNoQuestMsg(player);
  220. switch (st.getState())
  221. {
  222. case State.COMPLETED:
  223. {
  224. htmltext = getAlreadyCompletedMsg(player);
  225. break;
  226. }
  227. case State.CREATED:
  228. {
  229. if (npc.getId() == CLAUDIA_ATHEBALDT)
  230. {
  231. st = player.getQuestState(Q00194_SevenSignsMammonsContract.class.getSimpleName());
  232. htmltext = ((player.getLevel() >= MIN_LEVEL) && (st != null) && (st.isCompleted())) ? "31001-01.htm" : "31001-02.html";
  233. }
  234. break;
  235. }
  236. case State.STARTED:
  237. {
  238. switch (npc.getId())
  239. {
  240. case CLAUDIA_ATHEBALDT:
  241. {
  242. if (st.isCond(1))
  243. {
  244. htmltext = "31001-07.html";
  245. }
  246. break;
  247. }
  248. case JOHN:
  249. {
  250. switch (st.getCond())
  251. {
  252. case 1:
  253. {
  254. htmltext = "32576-01.html";
  255. break;
  256. }
  257. case 2:
  258. {
  259. htmltext = "32576-03.html";
  260. break;
  261. }
  262. }
  263. break;
  264. }
  265. case RAYMOND:
  266. {
  267. switch (st.getCond())
  268. {
  269. case 2:
  270. {
  271. if (st.hasQuestItems(IDENTITY_CARD) && (player.getTransformationId() != 113))
  272. {
  273. htmltext = "30289-01.html";
  274. }
  275. break;
  276. }
  277. case 3:
  278. {
  279. if (st.hasQuestItems(IDENTITY_CARD))
  280. {
  281. htmltext = st.hasQuestItems(SHUNAIMANS_CONTRACT) ? "30289-06.html" : "30289-09.html";
  282. }
  283. break;
  284. }
  285. case 4:
  286. {
  287. htmltext = "30289-12.html";
  288. break;
  289. }
  290. }
  291. break;
  292. }
  293. case LIGHT_OF_DAWN:
  294. {
  295. if (st.isCond(3))
  296. {
  297. if (st.hasQuestItems(IDENTITY_CARD))
  298. {
  299. htmltext = "31001-07.html";
  300. }
  301. }
  302. break;
  303. }
  304. case PASSWORD_ENTRY_DEVICE:
  305. {
  306. if (st.isCond(3) && st.hasQuestItems(IDENTITY_CARD))
  307. {
  308. htmltext = "32577-02.html";
  309. player.teleToLocation(-78240, 205858, -7856);
  310. }
  311. break;
  312. }
  313. case SHELF:
  314. {
  315. if (st.isCond(3) && !st.hasQuestItems(SHUNAIMANS_CONTRACT))
  316. {
  317. st.giveItems(SHUNAIMANS_CONTRACT, 1);
  318. htmltext = "32580-02.html";
  319. }
  320. break;
  321. }
  322. case DARKNESS_OF_DAWN:
  323. {
  324. if (st.isCond(3) && !st.hasQuestItems(SHUNAIMANS_CONTRACT))
  325. {
  326. htmltext = "32579-02.html";
  327. }
  328. break;
  329. }
  330. case IASON_HEINE:
  331. {
  332. if (st.isCond(4) && st.hasQuestItems(SHUNAIMANS_CONTRACT))
  333. {
  334. htmltext = "30969-01.html";
  335. }
  336. break;
  337. }
  338. }
  339. break;
  340. }
  341. }
  342. return htmltext;
  343. }
  344. }