TasksaboardtheFarJourney.lua 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305
  1. --[[
  2. Script Name : TasksaboardtheFarJourney.lua
  3. Script Purpose : Handles the quest, "Tasks aboard the Far Journey"
  4. Script Author : Cynnar
  5. Script Date : 2/23/2020
  6. Script Notes :
  7. Zone : Hallmark
  8. Quest Giver :
  9. Preceded by : None
  10. Followed by : None
  11. --]]
  12. local Waulon = 270002
  13. local CaptainVarlos = 270000
  14. local Ingrid = 270001
  15. local ARat = 270009
  16. local Goblin = 270008
  17. local WaulonsHat = 15354
  18. local ShardOfLucin = 12565
  19. function Init(Quest)
  20. AddQuestStepChat(Quest, 1, "I should speak to Waulon.", 1, "Captain Varlos has asked me to speak to Waulon.", 11, Waulon)
  21. AddQuestStepCompleteAction(Quest, 1, "Step1Complete")
  22. end
  23. function Step2Init(Quest, QuestGiver, Player)
  24. UpdateQuestStepDescription(Quest, 1, "I spoke to Waulon.")
  25. UpdateQuestTaskGroupDescription(Quest, 1, "I spoke to Waulon as Captain Varlos had asked of me.")
  26. AddQuestStepObtainItem(Quest, 2, "I should start by opening boxes on the deck.", 1, 100, "Waulon has asked me to look for his hat in one of the boxes on the deck.", 11, WaulonsHat)
  27. AddQuestStepCompleteAction(Quest, 2, "Step2Complete")
  28. end
  29. function Step3Init(Quest, QuestGiver, Player)
  30. SetTutorialStep(Player, 17)
  31. UpdateQuestStepDescription(Quest, 2, "I found Waulon's hat.")
  32. UpdateQuestTaskGroupDescription(Quest, 2, "I found Waulon's hat in one of the boxes.")
  33. AddQuestStepChat(Quest, 3, "I should speak to Waulon.", 1, "Now that I found Waulon's hat, I should return it.", 258, Waulon)
  34. AddQuestStepCompleteAction(Quest, 3, "Step3Complete")
  35. end
  36. function Step4Init(Quest, QuestGiver, Player)
  37. UpdateQuestStepDescription(Quest, 3, "I returned Waulon's hat to him.")
  38. UpdateQuestTaskGroupDescription(Quest, 3, "I returned Waulon's hat.")
  39. AddQuestStepChat(Quest, 4, "I should speak to Ingrid.", 1, "Waulon has asked me to speak to Ingrid.", 11, Ingrid)
  40. AddQuestStepCompleteAction(Quest, 4, "Step4Complete")
  41. end
  42. function Step5Init(Quest, QuestGiver, Player)
  43. UpdateQuestStepDescription(Quest, 4, "I have spoken to Ingrid as Waulon had asked.")
  44. UpdateQuestTaskGroupDescription(Quest, 4, "I have spoken to Ingrid.")
  45. AddQuestStepObtainItem(Quest, 5, "I should find a way to buy the shard from Merchant Vim.", 1, 100, "Ingrid would like me to buy her a Shard of Luclin.", 11, ShardOfLucin)
  46. AddQuestStepCompleteAction(Quest, 5, "Step5Complete")
  47. SetTutorialStep(Player, 24)
  48. -- while HasItem(Player,12565,1) do
  49. -- SetStepComplete(Player,524,5)
  50. -- end
  51. end
  52. function Step6Init(Quest, QuestGiver, Player)
  53. UpdateQuestStepDescription(Quest, 5, "I have purchased a Shard of Luclin.")
  54. UpdateQuestTaskGroupDescription(Quest, 5, "I purchased a Shard of Luclin.")
  55. AddQuestStepChat(Quest, 6, "Return to Ingrid.", 1, "Ingrid would like me to give her the Shard of Luclin.", 183, Ingrid)
  56. AddQuestStepCompleteAction(Quest, 6, "Step6Complete")
  57. SetTutorialStep(Player, 30)
  58. end
  59. function Step7Init(Quest, QuestGiver, Player)
  60. UpdateQuestStepDescription(Quest, 6, "I gave the Shard of Luclin to Ingrid.")
  61. UpdateQuestTaskGroupDescription(Quest, 6, "I gave the Shard of Luclin to Ingrid.")
  62. AddQuestStepChat(Quest, 7, "I should speak to Captain Varlos again.", 1, "Captain Varlos is trying to get my attention.", 11, CaptainVarlos)
  63. AddQuestStepCompleteAction(Quest, 7, "Step7Complete")
  64. end
  65. function Step8Init(Quest, QuestGiver, Player)
  66. UpdateQuestStepDescription(Quest, 7, "I spoke with Captain Varlos as Ingrid has asked of me.")
  67. UpdateQuestTaskGroupDescription(Quest, 7, "I have spoken to Captain Varlos.")
  68. AddQuestStepKill(Quest, 8, "I must kill the rats on the deck.", 2, 100, "Captain Varlos has asked me to kill the rats on the deck.", 99, ARat)
  69. AddQuestStepCompleteAction(Quest, 8, "Step8Complete")
  70. end
  71. function Step9Init(Quest, QuestGiver, Player)
  72. UpdateQuestStepDescription(Quest, 8, "I have killed the rats.")
  73. UpdateQuestTaskGroupDescription(Quest, 8, "I killed the rats that Captain Varlos requested.")
  74. AddQuestStepChat(Quest, 9, "I should speak to Captain Varlos.", 1, "Inform Captain Varlos that you have exterminated the vermin.", 11, CaptainVarlos)
  75. AddQuestStepCompleteAction(Quest, 9, "Step9Complete")
  76. end
  77. function Step10Init(Quest, QuestGiver, Player)
  78. UpdateQuestStepDescription(Quest, 9, "I spoke to Captain Varlos.")
  79. UpdateQuestTaskGroupDescription(Quest, 9, "I spoke to Captain Varlos.") --this this is not 100% like Live but seeing the same entry in your journal for step 9 and 10 like Live is dumb
  80. AddQuestStepKill(Quest, 10, "I must kill the goblin.", 1, 100, "Captain Varlos has ordered you to kill the escaped goblin.", 11, Goblin)
  81. AddQuestStepCompleteAction(Quest, 10, "QuestComplete")
  82. end
  83. function CurrentStep(Quest, QuestGiver, Player)
  84. if GetQuestStepProgress(Player, 524,2) == 0 and GetQuestStep(Player, 524) == 2 then
  85. i = 1
  86. spawns = GetSpawnListBySpawnID(Player, 270010)
  87. repeat
  88. spawn = GetSpawnFromList(spawns, i-1)
  89. if spawn then
  90. ChangeHandIcon(spawn, 1)
  91. AddPrimaryEntityCommand(nil, spawn)
  92. SpawnSet(NPC, "targetable", 1, true, true)
  93. end
  94. i = i + 1
  95. until spawn == Nil
  96. InstructionWindow(Player, -1.0, "You completed the first part of the quest. As you complete quests and defeat enemies, you earn experience points. This is represented in your experience point display. Filling your experience point display is always a requirement to gain your next level. As you gain levels, you will gain access to more powerful skills and abilities.", "voiceover/english/narrator/boat_06p_tutorial02/narrator_011_f16aa848.mp3", 1702963584, 3318288731, "tutorial_stage_15", "", "continue")
  97. -- InstructionWindow(Player, -1.0, "You completed the first part of the quest. As you complete quests and defeat enemies, you earn experience points. This is represented in your experience point display. Filling your experience point display is always a requirement to gain your next level. As you gain levels, you will gain access to more powerful skills and abilities.", "voiceover/english/narrator/boat_06p_tutorial02/narrator_011_f16aa848.mp3", 1702963584, 3318288731, "", "", "continue")
  98. if GetClientVersion(Player)<=546 then
  99. FlashWindow(Player, "MainHUD.Experience", 15.0)
  100. end
  101. SetTutorialStep(Player, 14)
  102. AddPrimaryEntityCommandAllSpawns(Player, 270010, "open", 10, "open")
  103. chest = GetRandomSpawnByID(Player, 270010)
  104. GiveLoot(chest, Player, 0, 185427)
  105. GiveLoot(chest, Player, 0, 20902)
  106. GiveLoot(chest, Player, 0, 15354)
  107. elseif GetQuestStep(Player, 524) == 3 then
  108. InstructionWindow(Player, -1.0, "The items are now in your inventory.", "voiceover/english/narrator/boat_06p_tutorial02/narrator_014_eaa89ef7.mp3", 361706387, 1106127199, "tutorial_stage_18", "", "continue")
  109. SetTutorialStep(Player, 16)
  110. elseif GetQuestStep(Player, 524) == 5 then
  111. InstructionWindowClose(Player)
  112. InstructionWindow(Player, -1.0, "A merchant is a special type of character who buys and sells things. Find and double left click on Merchant Vim to start a transaction.", "voiceover/english/narrator/boat_06p_tutorial02/narrator_020_6ea052d3.mp3", 4250953579, 3003156164, "tutorial_stage_24", "Double left click on Merchant Vim.", "server")
  113. elseif GetQuestStep(Player, 524) == 6 then
  114. InstructionWindowClose(Player)
  115. InstructionWindow(Player, -1.0, "You have made the first of many purchases. Now close the merchant window and speak to Ingrid to complete the quest.", "voiceover/english/narrator/boat_06p_tutorial02/narrator_026_d484fa8d.mp3", 4213145594, 1811880905, "tutorial_stage_31", "Return to Ingrid and speak to her.", "server")
  116. elseif GetQuestStep(Player, 524) == 7 then
  117. InstructionWindowClose(Player)
  118. captain = GetSpawn(Player, 270000)
  119. AddTimer(captain, 2000, "get_attention_init", 1, Player)
  120. elseif GetQuestStep(Player, 524) == 8 then
  121. AddPrimaryEntityCommandAllSpawns(Player, 270009, "attack", 10000.0, "attack")
  122. i=1
  123. spawns = GetSpawnListBySpawnID(Player, 270009)
  124. repeat
  125. rat = GetSpawnFromList(spawns, i-1)
  126. if rat then
  127. SetAttackable(rat, 1)
  128. if HasLootItem(rat, 11615) == false then
  129. AddLootItem(rat, 11615)
  130. end
  131. end
  132. i = i + 1
  133. until rat == Nil
  134. if GetQuestStepProgress(Player, 524, 8) == 1 then -- if we already have credit for a kill, remove one rat
  135. delrat = GetRandomSpawnByID(Player, 270009)
  136. Despawn(delrat)
  137. end
  138. if HasItem(Player, 88140) == false and GetClass(Player)>0 then
  139. GiveQuestItem(Quest, Player, "", 88140)
  140. elseif HasItem(Player, 1070013) == false then
  141. GiveQuestItem(Quest, Player, "", 1070013)
  142. end
  143. if HasItemEquipped(Player, 88140) == false then
  144. ShowWindow(Player, "Inventory.Inventory", 0)
  145. InstructionWindow(Player, -1.0, "Open your inventory by clicking the inventory button, then right click on the club the Captain just gave you.", "voiceover/english/narrator/boat_06p_tutorial02/narrator_028_458903e8.mp3", 4151437794, 834827635, "equipping_weapons", "Open your inventory. (click on the inventory button)", "open Inventory")
  146. ShowWindow(Player, "MainHUD.StartMenu", 1)
  147. FlashWindow(Player, "MainHUD.StartMenu.inventory", 20.0)
  148. end
  149. elseif GetQuestStep(Player, 524) == 9 then
  150. SetTutorialStep(Player, 49)
  151. InstructionWindow(Player, -1.0, "You have earned enough experience to gain a level. Congratulations.", "voiceover/english/narrator/boat_06p_tutorial02/narrator_046_7e59cd54.mp3", 3272157184, 1454283978, "tutorial_stage_50", "", "continue")
  152. i=1
  153. spawns = GetSpawnListBySpawnID(Player, 270009)
  154. repeat
  155. delrat = GetSpawnFromList(spawns, i-1)
  156. if IsAlive(delrat) then
  157. Despawn(delrat)
  158. end
  159. i = i + 1
  160. until delrat == Nil
  161. elseif GetQuestStep(Player, 524) == 10 then
  162. AddPrimaryEntityCommandAllSpawns(Player, 270008, "attack", 10000.0, "attack")
  163. i=1
  164. spawns = GetSpawnListBySpawnID(Player, 270011)
  165. repeat
  166. cage = GetSpawnFromList(spawns, i-1)
  167. if cage then
  168. Despawn(cage)
  169. end
  170. i = i + 1
  171. until cage == Nil
  172. i=1
  173. spawns = GetSpawnListBySpawnID(Player, 270009)
  174. repeat
  175. delrat = GetSpawnFromList(spawns, i-1)
  176. if delrat then
  177. Despawn(delrat)
  178. end
  179. i = i + 1
  180. until delrat == Nil
  181. end
  182. end
  183. function Step1Complete(Quest, QuestGiver, Player)
  184. GiveExp(Player, 110)
  185. Step2Init(Quest, QuestGiver, Player)
  186. CurrentStep(Quest, QuestGiver, Player)
  187. end
  188. function Step2Complete(Quest, QuestGiver, Player)
  189. Step3Init(Quest, QuestGiver, Player)
  190. CurrentStep(Quest, QuestGiver, Player)
  191. end
  192. function Step3Complete(Quest, QuestGiver, Player)
  193. RemoveItem(Player, WaulonsHat)
  194. GiveQuestItem(Quest, Player, "", 9357)
  195. Step4Init(Quest, QuestGiver, Player)
  196. CurrentStep(Quest, QuestGiver, Player)
  197. end
  198. function Step4Complete(Quest, QuestGiver, Player)
  199. Step5Init(Quest, QuestGiver, Player)
  200. CurrentStep(Quest, QuestGiver, Player)
  201. end
  202. function Step5Complete(Quest, QuestGiver, Player)
  203. Step6Init(Quest, QuestGiver, Player)
  204. CurrentStep(Quest, QuestGiver, Player)
  205. end
  206. function Step6Complete(Quest, QuestGiver, Player)
  207. Step7Init(Quest, QuestGiver, Player)
  208. CurrentStep(Quest, QuestGiver, Player)
  209. end
  210. function Step7Complete(Quest, QuestGiver, Player)
  211. Step8Init(Quest, QuestGiver, Player)
  212. CurrentStep(Quest, QuestGiver, Player)
  213. end
  214. function Step8Complete(Quest, QuestGiver, Player)
  215. Step9Init(Quest, QuestGiver, Player)
  216. CurrentStep(Quest, QuestGiver, Player)
  217. end
  218. function Step9Complete(Quest, QuestGiver, Player)
  219. Step10Init(Quest, QuestGiver, Player)
  220. CurrentStep(Quest, QuestGiver, Player)
  221. end
  222. function QuestComplete(Quest, QuestGiver, Player)
  223. -- The following UpdateQuestStepDescription and UpdateTaskGroupDescription are not needed, parser adds them for completion in case stuff needs to be moved around
  224. UpdateQuestStepDescription(Quest, 10, "I have killed the goblin.")
  225. UpdateQuestTaskGroupDescription(Quest, 10, "I killed the escaped goblin.")
  226. UpdateQuestDescription(Quest, "I completed all the tasks assigned to me by Captain Varlos aboard the Far Journey.")
  227. GiveQuestReward(Quest, Player)
  228. end
  229. function Reload(Quest, QuestGiver, Player, Step)
  230. if Step == 1 then
  231. Step2Init(Quest, QuestGiver, Player)
  232. CurrentStep(Quest, QuestGiver, Player)
  233. elseif Step == 2 then
  234. Step3Init(Quest, QuestGiver, Player)
  235. elseif Step == 3 then
  236. Step4Init(Quest, QuestGiver, Player)
  237. elseif Step == 4 then
  238. Step5Init(Quest, QuestGiver, Player)
  239. elseif Step == 5 then
  240. Step6Init(Quest, QuestGiver, Player)
  241. elseif Step == 6 then
  242. Step7Init(Quest, QuestGiver, Player)
  243. elseif Step == 7 then
  244. Step8Init(Quest, QuestGiver, Player)
  245. elseif Step == 8 then
  246. Step9Init(Quest, QuestGiver, Player)
  247. elseif Step == 9 then
  248. Step10Init(Quest, QuestGiver, Player)
  249. elseif Step == 10 then
  250. QuestComplete(Quest, QuestGiver, Player)
  251. end
  252. end
  253. function Accepted(Quest, QuestGiver, Player)
  254. FaceTarget(QuestGiver, Player)
  255. conversation = CreateConversation()
  256. PlayFlavor(QuestGiver, "voiceover/english/captain_varlos/boat_06p_tutorial02/varlos_0_009.mp3", "", "point", 3537393303, 2188767436, Player)
  257. AddConversationOption(conversation, "Okay.")
  258. StartConversation(conversation, QuestGiver, Player, "Whoa there, the seas are gettin' a bit angry. Go speak ta' me first mate, Waulon. He might have something for ya' ta' do.")
  259. local Waulon = GetSpawn(QuestGiver, 270002)
  260. FaceTarget(QuestGiver, Waulon)
  261. -- local Ingred = GetSpawn(Player, 270001)
  262. -- WalkToGeredo(Ingred, Player)
  263. end
  264. function Declined(Quest, QuestGiver, Player)
  265. -- Add dialog here for when the quest is declined
  266. end