Q10283_RequestOfIceMerchant.java 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  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.Q10283_RequestOfIceMerchant;
  20. import quests.Q00115_TheOtherSideOfTruth.Q00115_TheOtherSideOfTruth;
  21. import com.l2jserver.gameserver.ai.CtrlIntention;
  22. import com.l2jserver.gameserver.model.Location;
  23. import com.l2jserver.gameserver.model.actor.L2Npc;
  24. import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
  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. * Request of Ice Merchant (10283)
  30. * @author Gnacik
  31. * @version 2013-02-07 Updated to High Five
  32. */
  33. public class Q10283_RequestOfIceMerchant extends Quest
  34. {
  35. // NPCs
  36. private static final int RAFFORTY = 32020;
  37. private static final int KIER = 32022;
  38. private static final int JINIA = 32760;
  39. // Location
  40. private static final Location MOVE_TO_END = new Location(104457, -107010, -3698, 0);
  41. // Misc
  42. private boolean _jiniaOnSpawn = false;
  43. public Q10283_RequestOfIceMerchant()
  44. {
  45. super(10283, Q10283_RequestOfIceMerchant.class.getSimpleName(), "Request of Ice Merchant");
  46. addStartNpc(RAFFORTY);
  47. addTalkId(RAFFORTY, KIER, JINIA);
  48. addFirstTalkId(JINIA);
  49. }
  50. @Override
  51. public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
  52. {
  53. String htmltext = event;
  54. final QuestState st = getQuestState(player, false);
  55. if (st == null)
  56. {
  57. return htmltext;
  58. }
  59. if (npc.getId() == RAFFORTY)
  60. {
  61. if (event.equalsIgnoreCase("32020-03.htm"))
  62. {
  63. st.startQuest();
  64. }
  65. else if (event.equalsIgnoreCase("32020-07.htm"))
  66. {
  67. st.setCond(2, true);
  68. }
  69. }
  70. else if ((npc.getId() == KIER) && event.equalsIgnoreCase("spawn"))
  71. {
  72. if (_jiniaOnSpawn)
  73. {
  74. htmltext = "32022-02.html";
  75. }
  76. else
  77. {
  78. addSpawn(JINIA, 104473, -107549, -3695, 44954, false, 180000);
  79. _jiniaOnSpawn = true;
  80. startQuestTimer("despawn", 180000, npc, player);
  81. return null;
  82. }
  83. }
  84. else if (event.equalsIgnoreCase("despawn"))
  85. {
  86. _jiniaOnSpawn = false;
  87. return null;
  88. }
  89. else if ((npc.getId() == JINIA) && event.equalsIgnoreCase("32760-04.html"))
  90. {
  91. st.giveAdena(190000, true);
  92. st.addExpAndSp(627000, 50300);
  93. st.exitQuest(false, true);
  94. npc.setRunning();
  95. npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, MOVE_TO_END);
  96. npc.decayMe();
  97. }
  98. return htmltext;
  99. }
  100. @Override
  101. public String onFirstTalk(L2Npc npc, L2PcInstance player)
  102. {
  103. if (npc.getInstanceId() > 0)
  104. {
  105. return "32760-10.html";
  106. }
  107. final QuestState st = getQuestState(player, false);
  108. if ((st != null) && st.isCond(2))
  109. {
  110. return "32760-01.html";
  111. }
  112. return null;
  113. }
  114. @Override
  115. public String onTalk(L2Npc npc, L2PcInstance player)
  116. {
  117. String htmltext = getNoQuestMsg(player);
  118. final QuestState st = getQuestState(player, true);
  119. if (st == null)
  120. {
  121. return htmltext;
  122. }
  123. switch (npc.getId())
  124. {
  125. case RAFFORTY:
  126. switch (st.getState())
  127. {
  128. case State.CREATED:
  129. QuestState _prev = player.getQuestState(Q00115_TheOtherSideOfTruth.class.getSimpleName());
  130. htmltext = ((_prev != null) && _prev.isCompleted() && (player.getLevel() >= 82)) ? "32020-01.htm" : "32020-00.htm";
  131. break;
  132. case State.STARTED:
  133. if (st.isCond(1))
  134. {
  135. htmltext = "32020-04.htm";
  136. }
  137. else if (st.isCond(2))
  138. {
  139. htmltext = "32020-08.htm";
  140. }
  141. break;
  142. case State.COMPLETED:
  143. htmltext = "32020-09.htm";
  144. break;
  145. }
  146. break;
  147. case KIER:
  148. if (st.isCond(2))
  149. {
  150. htmltext = "32022-01.html";
  151. }
  152. break;
  153. case JINIA:
  154. if (st.isCond(2))
  155. {
  156. htmltext = "32760-02.html";
  157. }
  158. break;
  159. }
  160. return htmltext;
  161. }
  162. }