Q00194_SevenSignsMammonsContract.java 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575
  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.Q00194_SevenSignsMammonsContract;
  20. import quests.Q00193_SevenSignsDyingMessage.Q00193_SevenSignsDyingMessage;
  21. import com.l2jserver.gameserver.enums.QuestSound;
  22. import com.l2jserver.gameserver.model.actor.L2Npc;
  23. import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
  24. import com.l2jserver.gameserver.model.holders.SkillHolder;
  25. import com.l2jserver.gameserver.model.quest.Quest;
  26. import com.l2jserver.gameserver.model.quest.QuestState;
  27. import com.l2jserver.gameserver.model.quest.State;
  28. /**
  29. * Seven Signs, Mammon's Contract (194)
  30. * @author Adry_85
  31. */
  32. public final class Q00194_SevenSignsMammonsContract extends Quest
  33. {
  34. // NPCs
  35. private static final int SIR_GUSTAV_ATHEBALDT = 30760;
  36. private static final int CLAUDIA_ATHEBALDT = 31001;
  37. private static final int COLIN = 32571;
  38. private static final int FROG = 32572;
  39. private static final int TESS = 32573;
  40. private static final int KUTA = 32574;
  41. // Items
  42. private static final int ATHEBALDTS_INTRODUCTION = 13818;
  43. private static final int NATIVES_GLOVE = 13819;
  44. private static final int FROG_KINGS_BEAD = 13820;
  45. private static final int GRANDA_TESS_CANDY_POUCH = 13821;
  46. // Misc
  47. private static final int MIN_LEVEL = 79;
  48. // Skills
  49. private static SkillHolder TRANSFORMATION_FROG = new SkillHolder(6201, 1);
  50. private static SkillHolder TRANSFORMATION_KID = new SkillHolder(6202, 1);
  51. private static SkillHolder TRANSFORMATION_NATIVE = new SkillHolder(6203, 1);
  52. public Q00194_SevenSignsMammonsContract()
  53. {
  54. super(194, Q00194_SevenSignsMammonsContract.class.getSimpleName(), "Seven Signs, Mammon's Contract");
  55. addStartNpc(SIR_GUSTAV_ATHEBALDT);
  56. addTalkId(SIR_GUSTAV_ATHEBALDT, COLIN, FROG, TESS, KUTA, CLAUDIA_ATHEBALDT);
  57. registerQuestItems(ATHEBALDTS_INTRODUCTION, NATIVES_GLOVE, FROG_KINGS_BEAD, GRANDA_TESS_CANDY_POUCH);
  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 "30760-02.html":
  71. {
  72. st.startQuest();
  73. htmltext = event;
  74. break;
  75. }
  76. case "30760-03.html":
  77. {
  78. if (st.isCond(1))
  79. {
  80. htmltext = event;
  81. }
  82. break;
  83. }
  84. case "30760-04.html":
  85. {
  86. if (st.isCond(1))
  87. {
  88. htmltext = event;
  89. st.playSound(QuestSound.ITEMSOUND_QUEST_MIDDLE);
  90. }
  91. break;
  92. }
  93. case "showmovie":
  94. {
  95. if (st.isCond(1))
  96. {
  97. st.setCond(2, true);
  98. player.showQuestMovie(10);
  99. return "";
  100. }
  101. break;
  102. }
  103. case "30760-07.html":
  104. {
  105. if (st.isCond(2))
  106. {
  107. st.giveItems(ATHEBALDTS_INTRODUCTION, 1);
  108. st.setCond(3, true);
  109. htmltext = event;
  110. }
  111. break;
  112. }
  113. case "32571-03.html":
  114. case "32571-04.html":
  115. {
  116. if (st.isCond(3) && st.hasQuestItems(ATHEBALDTS_INTRODUCTION))
  117. {
  118. htmltext = event;
  119. }
  120. break;
  121. }
  122. case "32571-05.html":
  123. {
  124. if (st.isCond(3) && st.hasQuestItems(ATHEBALDTS_INTRODUCTION))
  125. {
  126. st.takeItems(ATHEBALDTS_INTRODUCTION, -1);
  127. npc.setTarget(player);
  128. npc.doCast(TRANSFORMATION_FROG.getSkill());
  129. st.setCond(4, true);
  130. htmltext = event;
  131. }
  132. break;
  133. }
  134. case "32571-07.html":
  135. {
  136. if (st.isCond(4) && (player.getTransformationId() != 111) && !st.hasQuestItems(FROG_KINGS_BEAD))
  137. {
  138. npc.setTarget(player);
  139. npc.doCast(TRANSFORMATION_FROG.getSkill());
  140. htmltext = event;
  141. }
  142. break;
  143. }
  144. case "32571-09.html":
  145. {
  146. if (st.isCond(4) && (player.getTransformationId() == 111) && !st.hasQuestItems(FROG_KINGS_BEAD))
  147. {
  148. player.stopAllEffects();
  149. htmltext = event;
  150. }
  151. break;
  152. }
  153. case "32571-11.html":
  154. {
  155. if (st.isCond(5) && st.hasQuestItems(FROG_KINGS_BEAD))
  156. {
  157. st.takeItems(FROG_KINGS_BEAD, -1);
  158. st.setCond(6, true);
  159. htmltext = event;
  160. if (player.getTransformationId() == 111)
  161. {
  162. player.stopAllEffects();
  163. }
  164. }
  165. break;
  166. }
  167. case "32571-13.html":
  168. {
  169. if (st.isCond(6))
  170. {
  171. npc.setTarget(player);
  172. npc.doCast(TRANSFORMATION_KID.getSkill());
  173. st.setCond(7, true);
  174. htmltext = event;
  175. }
  176. break;
  177. }
  178. case "32571-15.html":
  179. {
  180. if (st.isCond(7) && (player.getTransformationId() != 112) && !st.hasQuestItems(GRANDA_TESS_CANDY_POUCH))
  181. {
  182. npc.setTarget(player);
  183. npc.doCast(TRANSFORMATION_KID.getSkill());
  184. htmltext = event;
  185. }
  186. break;
  187. }
  188. case "32571-17.html":
  189. {
  190. if (st.isCond(7) && (player.getTransformationId() == 112) && !st.hasQuestItems(GRANDA_TESS_CANDY_POUCH))
  191. {
  192. player.stopAllEffects();
  193. htmltext = event;
  194. }
  195. break;
  196. }
  197. case "32571-19.html":
  198. {
  199. if (st.isCond(8) && st.hasQuestItems(GRANDA_TESS_CANDY_POUCH))
  200. {
  201. st.takeItems(GRANDA_TESS_CANDY_POUCH, -1);
  202. st.setCond(9, true);
  203. htmltext = event;
  204. if (player.getTransformationId() == 112)
  205. {
  206. player.stopAllEffects();
  207. }
  208. }
  209. break;
  210. }
  211. case "32571-21.html":
  212. {
  213. if (st.isCond(9))
  214. {
  215. npc.setTarget(player);
  216. npc.doCast(TRANSFORMATION_NATIVE.getSkill());
  217. st.setCond(10, true);
  218. htmltext = event;
  219. }
  220. break;
  221. }
  222. case "32571-23.html":
  223. {
  224. if (st.isCond(10) && (player.getTransformationId() != 124) && !st.hasQuestItems(NATIVES_GLOVE))
  225. {
  226. npc.setTarget(player);
  227. npc.doCast(TRANSFORMATION_NATIVE.getSkill());
  228. htmltext = event;
  229. }
  230. break;
  231. }
  232. case "32571-25.html":
  233. {
  234. if (st.isCond(10) && (player.getTransformationId() == 124) && !st.hasQuestItems(NATIVES_GLOVE))
  235. {
  236. player.stopAllEffects();
  237. htmltext = event;
  238. }
  239. break;
  240. }
  241. case "32571-27.html":
  242. {
  243. if (st.isCond(11) && st.hasQuestItems(NATIVES_GLOVE))
  244. {
  245. st.takeItems(NATIVES_GLOVE, -1);
  246. st.setCond(12, true);
  247. htmltext = event;
  248. if (player.getTransformationId() == 124)
  249. {
  250. player.stopAllEffects();
  251. }
  252. }
  253. break;
  254. }
  255. case "32572-03.html":
  256. case "32572-04.html":
  257. {
  258. if (st.isCond(4))
  259. {
  260. htmltext = event;
  261. }
  262. break;
  263. }
  264. case "32572-05.html":
  265. {
  266. if (st.isCond(4))
  267. {
  268. st.giveItems(FROG_KINGS_BEAD, 1);
  269. st.setCond(5, true);
  270. htmltext = event;
  271. }
  272. break;
  273. }
  274. case "32573-03.html":
  275. {
  276. if (st.isCond(7))
  277. {
  278. htmltext = event;
  279. }
  280. break;
  281. }
  282. case "32573-04.html":
  283. {
  284. if (st.isCond(7))
  285. {
  286. st.giveItems(GRANDA_TESS_CANDY_POUCH, 1);
  287. st.setCond(8, true);
  288. htmltext = event;
  289. }
  290. break;
  291. }
  292. case "32574-03.html":
  293. case "32574-04.html":
  294. {
  295. if (st.isCond(10))
  296. {
  297. htmltext = event;
  298. }
  299. break;
  300. }
  301. case "32574-05.html":
  302. {
  303. if (st.isCond(10))
  304. {
  305. st.giveItems(NATIVES_GLOVE, 1);
  306. st.setCond(11, true);
  307. htmltext = event;
  308. }
  309. break;
  310. }
  311. case "31001-02.html":
  312. {
  313. if (st.isCond(12))
  314. {
  315. htmltext = event;
  316. }
  317. break;
  318. }
  319. case "31001-03.html":
  320. {
  321. if (st.isCond(12))
  322. {
  323. if (player.getLevel() >= MIN_LEVEL)
  324. {
  325. st.addExpAndSp(52518015, 5817677);
  326. st.exitQuest(false, true);
  327. htmltext = event;
  328. }
  329. else
  330. {
  331. htmltext = "level_check.html";
  332. }
  333. }
  334. break;
  335. }
  336. }
  337. return htmltext;
  338. }
  339. @Override
  340. public String onTalk(L2Npc npc, L2PcInstance player)
  341. {
  342. QuestState st = getQuestState(player, true);
  343. String htmltext = getNoQuestMsg(player);
  344. switch (st.getState())
  345. {
  346. case State.COMPLETED:
  347. {
  348. htmltext = getAlreadyCompletedMsg(player);
  349. break;
  350. }
  351. case State.CREATED:
  352. {
  353. if (npc.getId() == SIR_GUSTAV_ATHEBALDT)
  354. {
  355. st = player.getQuestState(Q00193_SevenSignsDyingMessage.class.getSimpleName());
  356. htmltext = ((player.getLevel() >= MIN_LEVEL) && (st != null) && st.isCompleted()) ? "30760-01.htm" : "30760-05.html";
  357. }
  358. break;
  359. }
  360. case State.STARTED:
  361. {
  362. switch (npc.getId())
  363. {
  364. case SIR_GUSTAV_ATHEBALDT:
  365. {
  366. if (st.isCond(1))
  367. {
  368. htmltext = "30760-02.html";
  369. }
  370. else if (st.isCond(2))
  371. {
  372. htmltext = "30760-06.html";
  373. }
  374. else if (st.isCond(3) && st.hasQuestItems(ATHEBALDTS_INTRODUCTION))
  375. {
  376. htmltext = "30760-08.html";
  377. }
  378. break;
  379. }
  380. case COLIN:
  381. {
  382. switch (st.getCond())
  383. {
  384. case 1:
  385. case 2:
  386. {
  387. htmltext = "32571-01.html";
  388. break;
  389. }
  390. case 3:
  391. {
  392. if (st.hasQuestItems(ATHEBALDTS_INTRODUCTION))
  393. {
  394. htmltext = "32571-02.html";
  395. }
  396. break;
  397. }
  398. case 4:
  399. {
  400. if (!st.hasQuestItems(FROG_KINGS_BEAD))
  401. {
  402. htmltext = (player.getTransformationId() != 111) ? "32571-06.html" : "32571-08.html";
  403. }
  404. break;
  405. }
  406. case 5:
  407. {
  408. if (st.hasQuestItems(FROG_KINGS_BEAD))
  409. {
  410. htmltext = "32571-10.html";
  411. }
  412. break;
  413. }
  414. case 6:
  415. {
  416. htmltext = "32571-12.html";
  417. break;
  418. }
  419. case 7:
  420. {
  421. if (!st.hasQuestItems(GRANDA_TESS_CANDY_POUCH))
  422. {
  423. htmltext = (player.getTransformationId() != 112) ? "32571-14.html" : "32571-16.html";
  424. }
  425. break;
  426. }
  427. case 8:
  428. {
  429. if (st.hasQuestItems(GRANDA_TESS_CANDY_POUCH))
  430. {
  431. htmltext = "32571-18.html";
  432. }
  433. break;
  434. }
  435. case 9:
  436. {
  437. htmltext = "32571-20.html";
  438. break;
  439. }
  440. case 10:
  441. {
  442. if (!st.hasQuestItems(NATIVES_GLOVE))
  443. {
  444. htmltext = (player.getTransformationId() != 124) ? "32571-22.html" : "32571-24.html";
  445. }
  446. break;
  447. }
  448. case 11:
  449. {
  450. if (st.hasQuestItems(NATIVES_GLOVE))
  451. {
  452. htmltext = "32571-26.html";
  453. }
  454. break;
  455. }
  456. case 12:
  457. {
  458. htmltext = "32571-28.html";
  459. break;
  460. }
  461. }
  462. break;
  463. }
  464. case FROG:
  465. {
  466. switch (st.getCond())
  467. {
  468. case 1:
  469. case 2:
  470. case 3:
  471. {
  472. htmltext = "32572-01.html";
  473. break;
  474. }
  475. case 4:
  476. {
  477. htmltext = (player.getTransformationId() == 111) ? "32572-02.html" : "32572-06.html";
  478. break;
  479. }
  480. case 5:
  481. {
  482. if (st.hasQuestItems(FROG_KINGS_BEAD) && (player.getTransformationId() == 111))
  483. {
  484. htmltext = "32572-07.html";
  485. }
  486. break;
  487. }
  488. }
  489. break;
  490. }
  491. case TESS:
  492. {
  493. switch (st.getCond())
  494. {
  495. case 1:
  496. case 2:
  497. case 3:
  498. case 4:
  499. case 5:
  500. case 6:
  501. {
  502. htmltext = "32573-01.html";
  503. break;
  504. }
  505. case 7:
  506. {
  507. htmltext = (player.getTransformationId() == 112) ? "32573-02.html" : "32573-05.html";
  508. break;
  509. }
  510. case 8:
  511. {
  512. if (st.hasQuestItems(GRANDA_TESS_CANDY_POUCH) && (player.getTransformationId() == 112))
  513. {
  514. htmltext = "32573-06.html";
  515. }
  516. break;
  517. }
  518. }
  519. break;
  520. }
  521. case KUTA:
  522. {
  523. switch (st.getCond())
  524. {
  525. case 1:
  526. case 2:
  527. case 3:
  528. case 4:
  529. case 5:
  530. case 6:
  531. case 7:
  532. case 8:
  533. case 9:
  534. {
  535. htmltext = "32574-01.html";
  536. break;
  537. }
  538. case 10:
  539. {
  540. htmltext = (player.getTransformationId() == 124) ? "32574-02.html" : "32574-06.html";
  541. break;
  542. }
  543. case 11:
  544. {
  545. if (st.hasQuestItems(NATIVES_GLOVE) && (player.getTransformationId() == 124))
  546. {
  547. htmltext = "32574-07.html";
  548. }
  549. break;
  550. }
  551. }
  552. break;
  553. }
  554. case CLAUDIA_ATHEBALDT:
  555. {
  556. if (st.isCond(12))
  557. {
  558. htmltext = "31001-01.html";
  559. }
  560. break;
  561. }
  562. }
  563. break;
  564. }
  565. }
  566. return htmltext;
  567. }
  568. }