Q10291_FireDragonDestroyer.java 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. package quests.Q10291_FireDragonDestroyer;
  2. import com.l2jserver.gameserver.model.actor.L2Npc;
  3. import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
  4. import com.l2jserver.gameserver.model.quest.Quest;
  5. import com.l2jserver.gameserver.model.quest.QuestState;
  6. import com.l2jserver.gameserver.model.quest.State;
  7. /**
  8. * Fire Dragon Destroyer (10291)
  9. * @author malyelfik
  10. */
  11. public class Q10291_FireDragonDestroyer extends Quest
  12. {
  13. private static final String qn = "Q10291_FireDragonDestroyer";
  14. // NPC
  15. private static final int Klein = 31540;
  16. private static final int Valakas = 29028;
  17. // Item
  18. private static final int FloatingStone = 7267;
  19. private static final int PoorNecklace = 15524;
  20. private static final int ValorNecklace = 15525;
  21. private static final int ValakaSlayerCirclet = 8567;
  22. @Override
  23. public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
  24. {
  25. String htmltext = event;
  26. QuestState st = player.getQuestState(qn);
  27. if (st == null)
  28. return htmltext;
  29. if (event.equalsIgnoreCase("31540-07.htm"))
  30. {
  31. st.setState(State.STARTED);
  32. st.set("cond", "1");
  33. st.giveItems(PoorNecklace, 1);
  34. st.playSound("ItemSound.quest_accept");
  35. }
  36. return htmltext;
  37. }
  38. @Override
  39. public String onTalk(L2Npc npc, L2PcInstance player)
  40. {
  41. String htmltext = getNoQuestMsg(player);
  42. QuestState st = player.getQuestState(qn);
  43. if (st == null)
  44. return htmltext;
  45. switch (st.getState())
  46. {
  47. case State.CREATED:
  48. {
  49. if (player.getLevel() >= 83 && st.getQuestItemsCount(FloatingStone) >= 1)
  50. htmltext = "31540-01.htm";
  51. else if (player.getLevel() < 83)
  52. htmltext = "31540-02.htm";
  53. else
  54. htmltext = "31540-04.htm";
  55. break;
  56. }
  57. case State.STARTED:
  58. {
  59. if (st.getInt("cond") == 1 && st.getQuestItemsCount(PoorNecklace) >= 1)
  60. htmltext = "31540-08.htm";
  61. else if (st.getInt("cond") == 1 && st.getQuestItemsCount(PoorNecklace) == 0)
  62. {
  63. st.giveItems(PoorNecklace, 1);
  64. htmltext = "31540-09.htm";
  65. }
  66. else if (st.getInt("cond") == 2)
  67. {
  68. st.takeItems(ValorNecklace, 1);
  69. st.giveItems(57, 126549);
  70. st.addExpAndSp(717291, 77397);
  71. st.giveItems(ValakaSlayerCirclet, 1);
  72. st.unset("cond");
  73. st.exitQuest(false);
  74. st.playSound("ItemSound.quest_finish");
  75. htmltext = "31540-10.htm";
  76. }
  77. break;
  78. }
  79. case State.COMPLETED:
  80. {
  81. htmltext = "31540-03.htm";
  82. break;
  83. }
  84. }
  85. return htmltext;
  86. }
  87. @Override
  88. public String onKill(L2Npc npc, L2PcInstance player, boolean isPet)
  89. {
  90. if (player.getParty() != null)
  91. {
  92. for (L2PcInstance partyMember : player.getParty().getPartyMembers())
  93. rewardPlayer(partyMember);
  94. }
  95. else
  96. rewardPlayer(player);
  97. return null;
  98. }
  99. private void rewardPlayer(L2PcInstance player)
  100. {
  101. QuestState st = player.getQuestState(qn);
  102. if (st != null && st.getInt("cond") == 1)
  103. {
  104. st.takeItems(PoorNecklace, 1);
  105. st.giveItems(ValorNecklace, 1);
  106. st.playSound("ItemSound.quest_middle");
  107. st.set("cond", "2");
  108. }
  109. }
  110. public Q10291_FireDragonDestroyer(int questId, String name, String descr)
  111. {
  112. super(questId, name, descr);
  113. addStartNpc(Klein);
  114. addTalkId(Klein);
  115. addKillId(Valakas);
  116. questItemIds = new int[] { PoorNecklace, ValorNecklace };
  117. }
  118. public static void main(String[] args)
  119. {
  120. new Q10291_FireDragonDestroyer(10291, qn, "Fire Dragon Destroyer");
  121. }
  122. }