Q10289_FadeToBlack.java 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. package quests.Q10289_FadeToBlack;
  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. import com.l2jserver.gameserver.util.Util;
  8. /**
  9. * @author Plim
  10. */
  11. public class Q10289_FadeToBlack extends Quest
  12. {
  13. private static final String qn = "10289_FadeToBlack";
  14. // NPCs
  15. private static final int GREYMORE = 32757;
  16. // Items
  17. private static final int MARK_OF_DARKNESS = 15528;
  18. private static final int MARK_OF_SPLENDOR = 15527;
  19. //MOBs
  20. private static final int ANAYS = 25701;
  21. @Override
  22. public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
  23. {
  24. String htmltext = event;
  25. QuestState st = player.getQuestState(qn);
  26. if (st == null)
  27. return htmltext;
  28. if (npc.getNpcId() == GREYMORE)
  29. {
  30. if (event.equalsIgnoreCase("32757-04.htm"))
  31. {
  32. st.setState(State.STARTED);
  33. st.set("cond", "1");
  34. st.playSound("ItemSound.quest_accept");
  35. }
  36. else if(Util.isDigit(event) && st.getQuestItemsCount(MARK_OF_SPLENDOR) > 0)
  37. {
  38. int itemId = Integer.parseInt(event);
  39. st.takeItems(MARK_OF_SPLENDOR, 1);
  40. st.giveItems(itemId, 1);
  41. st.playSound("ItemSound.quest_finish");
  42. st.exitQuest(false);
  43. htmltext = "32757-08.htm";
  44. }
  45. }
  46. return htmltext;
  47. }
  48. @Override
  49. public String onTalk(L2Npc npc, L2PcInstance player)
  50. {
  51. String htmltext = getNoQuestMsg(player);
  52. QuestState st = player.getQuestState(qn);
  53. QuestState secretMission = player.getQuestState("10288_SecretMission");
  54. if (st == null)
  55. return htmltext;
  56. if (npc.getNpcId() == GREYMORE)
  57. {
  58. switch(st.getState())
  59. {
  60. case State.CREATED :
  61. if (player.getLevel() >= 82 && secretMission != null && secretMission.getState() == State.COMPLETED)
  62. htmltext = "32757-02.htm";
  63. else if (player.getLevel() < 82)
  64. htmltext = "32757-00.htm";
  65. else
  66. htmltext = "32757-01.htm";
  67. break;
  68. case State.STARTED :
  69. if (st.getInt("cond") == 1)
  70. htmltext = "32757-04b.htm";
  71. if (st.getInt("cond") == 2 && st.getQuestItemsCount(MARK_OF_DARKNESS) > 0)
  72. {
  73. htmltext = "32757-05.htm";
  74. st.takeItems(MARK_OF_DARKNESS, 1);
  75. player.addExpAndSp(55983, 136500);
  76. st.set("cond","1");
  77. st.playSound("ItemSound.quest_middle");
  78. }
  79. else if (st.getInt("cond") == 3)
  80. htmltext = "32757-06.htm";
  81. break;
  82. }
  83. }
  84. return htmltext;
  85. }
  86. @Override
  87. public String onKill(L2Npc npc, L2PcInstance player, boolean isPet)
  88. {
  89. L2PcInstance partyMember = getRandomPartyMember(player,"1");
  90. if (partyMember == null)
  91. return super.onKill(npc, player, isPet);
  92. QuestState st = partyMember.getQuestState(qn);
  93. if (st != null)
  94. {
  95. st.giveItems(MARK_OF_SPLENDOR, 1);
  96. st.playSound("ItemSound.quest_itemget");
  97. st.set("cond","3");
  98. }
  99. if (player.getParty() != null)
  100. {
  101. QuestState st2;
  102. for(L2PcInstance pmember : player.getParty().getPartyMembers())
  103. {
  104. st2 = pmember.getQuestState(qn);
  105. if(st2 != null && st2.getInt("cond") == 1 && pmember.getObjectId() != partyMember.getObjectId())
  106. {
  107. st2.giveItems(MARK_OF_DARKNESS, 1);
  108. st2.playSound("ItemSound.quest_itemget");
  109. st2.set("cond","2");
  110. }
  111. }
  112. }
  113. return super.onKill(npc, player, isPet);
  114. }
  115. public Q10289_FadeToBlack(int questId, String name, String descr)
  116. {
  117. super(questId, name, descr);
  118. addStartNpc(GREYMORE);
  119. addTalkId(GREYMORE);
  120. addKillId(ANAYS);
  121. }
  122. public static void main(String[] args)
  123. {
  124. new Q10289_FadeToBlack(10289, qn, "Fade to Black");
  125. }
  126. }