OutlanderVaughn.lua 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. --[[
  2. Script Name : SpawnScripts/Classic_forest/OutlanderVaughn.lua
  3. Script Author : Dorbin
  4. Script Date : 2022.10.11 01:10:39
  5. Script Purpose :
  6. :
  7. --]]
  8. function spawn(NPC)
  9. ProvidesQuest(NPC, 5759)
  10. ProvidesQuest(NPC, 5484)
  11. waypoints(NPC)
  12. end
  13. function waypoints(NPC) --Movements based on CLASSIC
  14. MovementLoopAddLocation(NPC, 1082.67, -18.71, -796.82, 2, 0)
  15. MovementLoopAddLocation(NPC, 1083.38, -18.77, -797.24, 2, 1)
  16. MovementLoopAddLocation(NPC, 1083.38, -18.77, -797.24, 2,math.random(10, 15),"Action")
  17. MovementLoopAddLocation(NPC, 1083.38, -18.77, -797.24, 2, math.random(10, 15),"Action")
  18. MovementLoopAddLocation(NPC, 1084.18, -18.78, -797.06, 2, 0)
  19. MovementLoopAddLocation(NPC, 1129.75, -19.14, -783.28, 2, 0)
  20. MovementLoopAddLocation(NPC, 1162.53, -22.27, -788.62, 2, 0)
  21. MovementLoopAddLocation(NPC, 1179.99, -23.3, -769.21, 2, 0)
  22. MovementLoopAddLocation(NPC, 1180.34, -23.3, -768.48, 2, 3)
  23. MovementLoopAddLocation(NPC, 1180.34, -23.3, -768.48, 2, math.random(10, 15),"Action")
  24. MovementLoopAddLocation(NPC, 1180.34, -23.3, -768.48, 2, math.random(10, 15),"Action")
  25. MovementLoopAddLocation(NPC, 1179.68, -23.3, -769.3, 2, 0)
  26. MovementLoopAddLocation(NPC, 1157.33, -21.98, -793.57, 2, 0)
  27. MovementLoopAddLocation(NPC, 1139.75, -22.25, -814.96, 2, 0)
  28. MovementLoopAddLocation(NPC, 1124.16, -23.29, -838.42, 2, 0)
  29. MovementLoopAddLocation(NPC, 1123.11, -23.28, -838.44, 2, 3)
  30. MovementLoopAddLocation(NPC, 1123.11, -23.28, -838.44, 2, math.random(10, 15),"Action")
  31. MovementLoopAddLocation(NPC, 1123.11, -23.28, -838.44, 2, math.random(10, 15),"Action")
  32. MovementLoopAddLocation(NPC, 1122.45, -23.23, -837.97, 2, 0)
  33. MovementLoopAddLocation(NPC, 1095.11, -22.74, -829.8, 2, 0)
  34. MovementLoopAddLocation(NPC, 1076.66, -20.76, -815.47, 2, 0)
  35. MovementLoopAddLocation(NPC, 1053.81, -19.21, -813.83, 2, 0)
  36. MovementLoopAddLocation(NPC, 1027.03, -20.51, -822.63, 2, 0)
  37. MovementLoopAddLocation(NPC, 1016.75, -21.42, -834.86, 2, 3)
  38. MovementLoopAddLocation(NPC, 1016.75, -21.42, -834.86, 2, math.random(10, 15),"Action")
  39. MovementLoopAddLocation(NPC, 1016.75, -21.42, -834.86, 2, math.random(10, 15),"Action")
  40. MovementLoopAddLocation(NPC, 1016.68, -21.22, -832.59, 2, 0)
  41. MovementLoopAddLocation(NPC, 1014.9, -20.87, -826.47, 2, 0)
  42. MovementLoopAddLocation(NPC, 999.53, -21.47, -824.3, 2, 0)
  43. MovementLoopAddLocation(NPC, 977.7, -21.95, -818.03, 2, 0)
  44. MovementLoopAddLocation(NPC, 970.4, -21.52, -811.2, 2, 0)
  45. MovementLoopAddLocation(NPC, 967.34, -21.27, -796.32, 2, 0)
  46. MovementLoopAddLocation(NPC, 959.96, -20.73, -783.38, 2, 0)
  47. MovementLoopAddLocation(NPC, 966.37, -22.19, -735.91, 2, 0)
  48. MovementLoopAddLocation(NPC, 964.91, -22.24, -722.54, 2, 0)
  49. MovementLoopAddLocation(NPC, 960.49, -21.94, -705.28, 2, 0)
  50. MovementLoopAddLocation(NPC, 947.44, -21.7, -663.54, 2, 0)
  51. MovementLoopAddLocation(NPC, 948.23, -20.68, -651.69, 2, 0)
  52. MovementLoopAddLocation(NPC, 949.26, -20.39, -645.4, 2, math.random(10, 15),"Action")
  53. MovementLoopAddLocation(NPC, 949.26, -20.39, -645.4, 2, math.random(10, 15),"Action")
  54. MovementLoopAddLocation(NPC, 949.26, -20.39, -645.4, 2, math.random(10, 15),"Action")
  55. MovementLoopAddLocation(NPC, 950.46, -20.12, -643.2, 2, 0)
  56. MovementLoopAddLocation(NPC, 952.31, -19.67, -643.37, 2, 0)
  57. MovementLoopAddLocation(NPC, 953.3, -19.71, -649.66, 2, 0)
  58. MovementLoopAddLocation(NPC, 954.68, -20.79, -668.19, 2, 0)
  59. MovementLoopAddLocation(NPC, 958.94, -22.2, -705.52, 2, 0)
  60. MovementLoopAddLocation(NPC, 965.34, -22.45, -728.45, 2, 0)
  61. MovementLoopAddLocation(NPC, 959.33, -20.82, -782.74, 2, 0)
  62. MovementLoopAddLocation(NPC, 959.01, -20.58, -787.04, 2, 0)
  63. MovementLoopAddLocation(NPC, 964.48, -21.22, -793.55, 2, 0)
  64. MovementLoopAddLocation(NPC, 967.62, -21.28, -797.85, 2, 0)
  65. MovementLoopAddLocation(NPC, 970.36, -21.49, -811.54, 2, 0)
  66. MovementLoopAddLocation(NPC, 975.38, -21.98, -816.56, 2, 0)
  67. MovementLoopAddLocation(NPC, 982.05, -22.07, -817.84, 2, 0)
  68. MovementLoopAddLocation(NPC, 999.74, -21.25, -805.89, 2, 0)
  69. MovementLoopAddLocation(NPC, 1006.65, -20.77, -794.7, 2, math.random(10, 15),"Action")
  70. MovementLoopAddLocation(NPC, 1006.65, -20.77, -794.7, 2, math.random(10, 15),"Action")
  71. MovementLoopAddLocation(NPC, 1006.65, -20.77, -794.7, 2, math.random(10, 15),"Action")
  72. MovementLoopAddLocation(NPC, 1005.24, -20.79, -793.68, 2, 0)
  73. MovementLoopAddLocation(NPC, 1004.99, -20.89, -795.67, 2, 0)
  74. MovementLoopAddLocation(NPC, 1023.53, -20.75, -807.7, 2, 0)
  75. MovementLoopAddLocation(NPC, 1039.93, -20.76, -810.76, 2, 0)
  76. MovementLoopAddLocation(NPC, 1054.71, -19.08, -814.31, 2, 0)
  77. MovementLoopAddLocation(NPC, 1075.61, -20.51, -814.23, 2, 0)
  78. end
  79. function Action(NPC,Spawn)
  80. local choice = math.random(1,4)
  81. if choice == 1 then
  82. PlayFlavor(NPC, "", "", "peer", 0, 0, Spawn)
  83. elseif choice == 2 then
  84. PlayFlavor(NPC, "", "", "ponder", 0, 0, Spawn)
  85. elseif choice == 3 then
  86. PlayFlavor(NPC, "", "", "sniff", 0, 0, Spawn)
  87. elseif choice == 4 then
  88. PlayFlavor(NPC, "", "", "confused", 0, 0, Spawn)
  89. end
  90. end
  91. function hailed(NPC, Spawn)
  92. FaceTarget(NPC, Spawn)
  93. conversation = CreateConversation()
  94. if not HasCompletedQuest(Spawn, 5483) and not HasQuest(Spawn, 5483) and not HasCompletedQuest(Spawn, 5759) and not HasQuest(Spawn, 5759) then
  95. PlayFlavor(NPC, "voiceover/english/outlander_vaughn/qey_adv02_ruins/quests/outlander_dakota/outlander_dakota.mp3", "", "doh", 2613853514, 75460760, Spawn)
  96. if GetLevel(Spawn)>=6 then
  97. AddConversationOption(conversation, "What is it you need?", "dlg_4_1")
  98. end
  99. AddConversationOption(conversation, "No time for charity. ")
  100. StartConversation(conversation, NPC, Spawn, "Am I ever in a bind! Will you please help me?")
  101. elseif HasQuest(Spawn, 5483) or HasQuest(Spawn, 5759) then
  102. PlayFlavor(NPC, "voiceover/english/outlander_vaughn/qey_adv02_ruins/quests/outlander_dakota/outlander_dakota001.mp3", "", "", 2350706866, 1692101884, Spawn)
  103. if GetQuestStep (Spawn,5483)== 5 or GetQuestStep (Spawn, 5759)==5 then
  104. AddConversationOption(conversation, "Here are your things you were looking for.", "HandIn")
  105. end
  106. AddConversationOption(conversation, "I'm working on it.", "dlg_1_1")
  107. StartConversation(conversation, NPC, Spawn, "I thought you said you'd help me! Do what you can, okay?")
  108. elseif HasCompletedQuest(Spawn, 5759) and not HasCompletedQuest(Spawn, 5759) then
  109. FaceTarget(NPC, Spawn)
  110. conversation = CreateConversation()
  111. PlayFlavor(NPC, "voiceover/english/outlander_vaughn/qey_adv02_ruins/quests/outlander_dakota/outlander_dakota003.mp3", "", "thank", 3067693779, 1933175006, Spawn)
  112. AddConversationOption(conversation, "What else do you need?","dlg_4_3")
  113. AddConversationOption(conversation, "I don't have the time, sorry. ")
  114. StartConversation(conversation, NPC, Spawn, "Thank you so very much for finding my dear possessions! Can you help me with one more small favor?")
  115. else
  116. PlayFlavor(NPC, "", "Be careful around these ruins. The nights bring out some of the magic in this place.", "hello", 0, 0, Spawn)
  117. end
  118. end
  119. function dlg_4_1(NPC, Spawn)
  120. FaceTarget(NPC, Spawn)
  121. conversation = CreateConversation()
  122. PlayFlavor(NPC, "voiceover/english/outlander_vaughn/qey_adv02_ruins/quests/outlander_dakota/outlander_dakota000.mp3", "", "sigh", 2228081863, 624137908, Spawn)
  123. AddConversationOption(conversation, "I'll see what I can do.", "StuffStart")
  124. AddConversationOption(conversation, "Sorry. This isn't my problem.")
  125. StartConversation(conversation, NPC, Spawn, "Those wretched skulkers stole my satchel! It had everything that was important to me. Please, recover my satchel!")
  126. end
  127. function Letter(NPC, Spawn)
  128. FaceTarget(NPC, Spawn)
  129. conversation = CreateConversation()
  130. PlayFlavor(NPC, "voiceover/english/outlander_vaughn/qey_adv02_ruins/quests/outlander_dakota/outlander_dakota004.mp3", "", "", 3189315384, 2954944318, Spawn)
  131. AddConversationOption(conversation, "Yeah sure I'll do it.", "dlg_4_3")
  132. AddConversationOption(conversation, "I'll pass. Good luck.")
  133. StartConversation(conversation, NPC, Spawn, "I need you to take this letter to Hunter Forestdeep. You'll find him in the Willow Wood village.")
  134. end
  135. function HandIn (NPC,Spawn)
  136. conversation = CreateConversation()
  137. PlayFlavor(NPC, "voiceover/english/outlander_vaughn/qey_adv02_ruins/quests/outlander_dakota/outlander_dakota002.mp3", "", "", 1507419454, 3520863692, Spawn)
  138. AddConversationOption(conversation, "You could thank me by paying me.", "Reward1")
  139. StartConversation(conversation, NPC, Spawn, "What's that you have? You found my stuff! That's fantastic! I can't thank you enough.")
  140. end
  141. function StuffStart (NPC, Spawn)
  142. FaceTarget(NPC, Spawn)
  143. OfferQuest(NPC, Spawn, 5759)
  144. end
  145. function dlg_4_3 (NPC, Spawn)
  146. FaceTarget(NPC, Spawn)
  147. OfferQuest(NPC, Spawn, 5484)
  148. end
  149. function Reward1(NPC, Spawn)
  150. if HasQuest(Spawn, 5759) then
  151. SetStepComplete(Spawn, 5759, 5)
  152. end
  153. conversation = CreateConversation()
  154. PlayFlavor(NPC, "voiceover/english/outlander_vaughn/qey_adv02_ruins/quests/outlander_dakota/outlander_dakota003.mp3", "", "thank", 3067693779, 1933175006, Spawn)
  155. AddConversationOption(conversation, "What else do you need?","dlg_4_3")
  156. AddConversationOption(conversation, "I don't have the time, sorry. ")
  157. StartConversation(conversation, NPC, Spawn, "Thank you so very much for finding my dear possessions! Can you help me with one more small favor?")
  158. end