Q153_DeliverGoods.java 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. package quests.Q153_DeliverGoods;
  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. * Based on Naia (EURO)
  9. * @author Zoey76
  10. * @version 1.0 Freya (11/16/2010)
  11. */
  12. public class Q153_DeliverGoods extends Quest
  13. {
  14. private static final String qn = "153_DeliverGoods";
  15. // NPCs
  16. private static final int JacksonId = 30002;
  17. private static final int SilviaId = 30003;
  18. private static final int ArnoldId = 30041;
  19. private static final int RantId = 30054;
  20. //ITEMs
  21. private static final int DeliveryListId = 1012;
  22. private static final int HeavyWoodBoxId = 1013;
  23. private static final int ClothBundleId = 1014;
  24. private static final int ClayPotId = 1015;
  25. private static final int JacksonsReceipt = 1016;
  26. private static final int SilviasReceipt = 1017;
  27. private static final int RantsReceipt = 1018;
  28. //REWARDs
  29. private static final int SoulshotNoGradeId = 1835; //You get 3 Soulshots no grade.
  30. private static final int RingofKnowledgeId = 875;
  31. private static final int XpRewardAmount = 600;
  32. public Q153_DeliverGoods(int questId, String name, String descr)
  33. {
  34. super(questId, name, descr);
  35. addStartNpc(ArnoldId);
  36. addTalkId(JacksonId);
  37. addTalkId(SilviaId);
  38. addTalkId(ArnoldId);
  39. addTalkId(RantId);
  40. }
  41. @Override
  42. public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
  43. {
  44. String htmltext = event;
  45. QuestState st = player.getQuestState(qn);
  46. if ((st != null) && (npc.getNpcId() == ArnoldId))
  47. {
  48. if (event.equalsIgnoreCase("30041-02.html"))
  49. {
  50. st.setState(State.STARTED);
  51. st.set("cond", "1");
  52. st.playSound("ItemSound.quest_accept");
  53. st.giveItems(DeliveryListId, 1);
  54. st.giveItems(HeavyWoodBoxId, 1);
  55. st.giveItems(ClothBundleId, 1);
  56. st.giveItems(ClayPotId, 1);
  57. }
  58. }
  59. return htmltext;
  60. }
  61. @Override
  62. public String onTalk(L2Npc npc, L2PcInstance player)
  63. {
  64. String htmltext = getNoQuestMsg(player);
  65. QuestState st = player.getQuestState(qn);
  66. if (st != null)
  67. {
  68. if (npc.getNpcId() == ArnoldId)
  69. {
  70. switch (st.getState())
  71. {
  72. case State.CREATED:
  73. if (player.getLevel() >= 2)
  74. {
  75. htmltext = "30041-01.htm";
  76. }
  77. else
  78. {
  79. htmltext = "30041-00.htm";
  80. }
  81. break;
  82. case State.STARTED:
  83. if (st.getInt("cond") == 1)
  84. {
  85. htmltext = "30041-03.html";
  86. }
  87. else if (st.getInt("cond") == 2)
  88. {
  89. htmltext = "30041-04.html";
  90. st.takeItems(DeliveryListId, 1);
  91. st.takeItems(JacksonsReceipt, 1);
  92. st.takeItems(SilviasReceipt, 1);
  93. st.takeItems(RantsReceipt, 1);
  94. //On retail it gives 2 rings but one at the time.
  95. st.giveItems(RingofKnowledgeId, 1);
  96. st.giveItems(RingofKnowledgeId, 1);
  97. st.addExpAndSp(XpRewardAmount, 0);
  98. st.exitQuest(false);
  99. }
  100. break;
  101. case State.COMPLETED:
  102. htmltext = getAlreadyCompletedMsg(player);
  103. break;
  104. }
  105. }
  106. else
  107. {
  108. if (npc.getNpcId() == JacksonId)
  109. {
  110. if (st.getQuestItemsCount(HeavyWoodBoxId) == 1)
  111. {
  112. htmltext = "30002-01.html";
  113. st.takeItems(HeavyWoodBoxId, 1);
  114. st.giveItems(JacksonsReceipt, 1);
  115. }
  116. else
  117. {
  118. htmltext = "30002-02.html";
  119. }
  120. }
  121. else if (npc.getNpcId() == SilviaId)
  122. {
  123. if (st.getQuestItemsCount(ClothBundleId) == 1)
  124. {
  125. htmltext = "30003-01.html";
  126. st.takeItems(ClothBundleId, 1);
  127. st.giveItems(SilviasReceipt, 1);
  128. st.giveItems(SoulshotNoGradeId, 3);
  129. }
  130. else
  131. {
  132. htmltext = "30003-02.html";
  133. }
  134. }
  135. else if (npc.getNpcId() == RantId)
  136. {
  137. if (st.getQuestItemsCount(ClayPotId) == 1)
  138. {
  139. htmltext = "30054-01.html";
  140. st.takeItems(ClayPotId, 1);
  141. st.giveItems(RantsReceipt, 1);
  142. }
  143. else
  144. {
  145. htmltext = "30054-02.html";
  146. }
  147. }
  148. if ((st.getInt("cond") == 1) && (st.getQuestItemsCount(JacksonsReceipt) == 1) && (st.getQuestItemsCount(SilviasReceipt) == 1) && (st.getQuestItemsCount(RantsReceipt) == 1))
  149. {
  150. st.set("cond", "2");
  151. st.playSound("ItemSound.quest_middle");
  152. }
  153. }
  154. }
  155. return htmltext;
  156. }
  157. public static void main(String[] args)
  158. {
  159. new Q153_DeliverGoods(153, qn, "Deliver Goods");
  160. }
  161. }