oakheart.lua 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. --[[
  2. Script Name : oakheart.lua
  3. Script Purpose : Waypoint Path for oakheart.lua
  4. Script Author : Devn00b
  5. Script Date : 07/31/2020 07:37:47 PM
  6. Script Notes : Quest and dialogue added - 2022.05.10 - Dorbin
  7. --]]
  8. dofile("SpawnScripts/Generic/GenericEcologyVoiceOvers.lua")
  9. local report = 5531
  10. function spawn(NPC)
  11. waypoints(NPC)
  12. SetPlayerProximityFunction(NPC, 7, "InRange", "LeaveRange")
  13. ProvidesQuest(NPC,report)
  14. end
  15. function respawn(NPC)
  16. spawn(NPC)
  17. end
  18. function Attention(NPC,Spawn)
  19. local Stan = GetSpawn(NPC,2070060)
  20. if Stan ~=nil then
  21. FaceTarget(Stan,Spawn)
  22. PlayFlavor(Stan, "", "", "", 0, 0, Spawn)
  23. end
  24. local Edwar = GetSpawn(NPC,2070025)
  25. if Edwar ~=nil then
  26. FaceTarget(Edwar,Spawn)
  27. PlayFlavor(Edwar, "", "", "", 0, 0, Spawn)
  28. end
  29. end
  30. function InRange(NPC,Spawn)
  31. if GetFactionAmount(Spawn, 11) <0 then
  32. PlayFlavor(NPC, "", "", "shakefist", 0, 0, Spawn)
  33. else
  34. if not HasCompletedQuest (Spawn, report) and not HasQuest (Spawn, report) then
  35. if math.random(1, 100) <= 80 then
  36. FaceTarget(NPC, Spawn)
  37. PlayFlavor(NPC, "voiceover/english/pathfinder_oakheart/qey_elddar/100_pathed_woodelf_captain_callout1_fb0695da.mp3", "Excuse me! We rangers could use some assistance.", "wave", 3199480334, 2514081832, Spawn)
  38. Attention(NPC,Spawn)
  39. end
  40. end
  41. end
  42. end
  43. function hailed(NPC, Spawn)
  44. FaceTarget(NPC, Spawn)
  45. if GetFactionAmount(Spawn, 11) <0 then
  46. PlayFlavor(NPC, "", "", "shakefist", 0, 0, Spawn)
  47. Attention(NPC,Spawn)
  48. else
  49. Attention(NPC,Spawn)
  50. PlayFlavor(NPC, "voiceover/english/pathfinder_oakheart/qey_elddar/pathfinderoakheart.mp3", "", "hello", 2988013661, 1300543540, Spawn)
  51. local conversation = CreateConversation()
  52. if not HasQuest(Spawn,report) and not HasCompletedQuest(Spawn, report) then
  53. AddConversationOption(conversation, "Have anything I can help with?", "Option1")
  54. end
  55. if GetQuestStep(Spawn,report)==2 then
  56. AddConversationOption(conversation, "Master Gladwalker has your report and looks forward to the next one.", "Delivered")
  57. end
  58. AddConversationOption(conversation, "It is a sight to behold.")
  59. StartConversation(conversation, NPC, Spawn, "Can you see the Elddar? Its spirit can be felt in the beauty of the grove before you.")
  60. end
  61. end
  62. function Option1(NPC, Spawn)
  63. FaceTarget(NPC, Spawn)
  64. PlayFlavor(NPC, "voiceover/english/pathfinder_oakheart/qey_elddar/pathfinderoakheart000.mp3", "", "agree", 3865197718, 4107152769, Spawn)
  65. local conversation = CreateConversation()
  66. AddConversationOption(conversation, "Sure. I'll deliver your report", "StartQuest")
  67. AddConversationOption(conversation, "I'm not much for trees.")
  68. StartConversation(conversation, NPC, Spawn, "I knew you were a kindred soul to us Elddarians. Good friend of the forest! May I entrust you with an important errand? Our patrol's daily report must be delivered to Master Rysian Gladewalker of our guild hall at Arbos. Will you deliver it?")
  69. end
  70. function StartQuest(NPC, Spawn)
  71. FaceTarget(NPC, Spawn)
  72. OfferQuest(NPC, Spawn,report)
  73. end
  74. function Delivered(NPC, Spawn)
  75. FaceTarget(NPC, Spawn)
  76. PlayFlavor(NPC, "voiceover/english/pathfinder_oakheart/qey_elddar/pathfinderoakheart002.mp3", "", "thanks", 909119300, 2923998262, Spawn)
  77. local conversation = CreateConversation()
  78. AddConversationOption(conversation, "It was no problem. Good luck on patrol.", "FinishQuest")
  79. StartConversation(conversation, NPC, Spawn, "I thank you friend. You have saved us all, for we had no rangers to spare for this duty!")
  80. end
  81. function FinishQuest(NPC, Spawn)
  82. FaceTarget(NPC, Spawn)
  83. SetStepComplete(Spawn,report, 2)
  84. end
  85. function waypoints(NPC)
  86. MovementLoopAddLocation(NPC, 651.62, -18.52, -216.74, 2, 0)
  87. MovementLoopAddLocation(NPC, 651.2, -19.11, -228.47, 2, 0)
  88. MovementLoopAddLocation(NPC, 650.96, -18.56, -239.21, 2, 0)
  89. MovementLoopAddLocation(NPC, 649.3, -18.55, -257.68, 2, 0)
  90. MovementLoopAddLocation(NPC, 648.3, -18.78, -260.81, 2, 0)
  91. MovementLoopAddLocation(NPC, 650.31, -19.39, -271.97, 2, 0)
  92. MovementLoopAddLocation(NPC, 655.37, -19.5, -274.13, 2, 0)
  93. MovementLoopAddLocation(NPC, 661.86, -19.5, -274.01, 2, 0)
  94. MovementLoopAddLocation(NPC, 672.65, -19.87, -275.45, 2, 0)
  95. MovementLoopAddLocation(NPC, 683.61, -19.62, -278.04, 2, 0)
  96. MovementLoopAddLocation(NPC, 687.33, -19.6, -283.48, 2, 0)
  97. MovementLoopAddLocation(NPC, 690.65, -19.51, -291.91, 2, 0)
  98. MovementLoopAddLocation(NPC, 694.67, -18.99, -300.76, 2, 0)
  99. MovementLoopAddLocation(NPC, 702.75, -17.8, -298.95, 2, 0)
  100. MovementLoopAddLocation(NPC, 701.84, -17.91, -293.68, 2, 0)
  101. MovementLoopAddLocation(NPC, 699.73, -18.27, -292.11, 2, 0)
  102. MovementLoopAddLocation(NPC, 691.79, -19.21, -281.48, 2, 0)
  103. MovementLoopAddLocation(NPC, 687.51, -19.05, -276.04, 2, 0)
  104. MovementLoopAddLocation(NPC, 663.58, -19.38, -272.65, 2, 0)
  105. MovementLoopAddLocation(NPC, 653.35, -19.58, -274.32, 2, 0)
  106. MovementLoopAddLocation(NPC, 650.97, -20.63, -283.98, 2, 0)
  107. MovementLoopAddLocation(NPC, 650.24, -21.45, -307.54, 2, 0)
  108. MovementLoopAddLocation(NPC, 647.76, -21, -310.35, 2, 0)
  109. MovementLoopAddLocation(NPC, 642.38, -20.44, -311.78, 2, 0)
  110. MovementLoopAddLocation(NPC, 607.11, -20.67, -315.08, 2, 0)
  111. MovementLoopAddLocation(NPC, 589.36, -21.32, -313.55, 2, 0)
  112. MovementLoopAddLocation(NPC, 564.69, -21.93, -312.43, 2, 0)
  113. MovementLoopAddLocation(NPC, 554.11, -21.57, -310.27, 2, 0)
  114. MovementLoopAddLocation(NPC, 545.42, -21.12, -304.81, 2, 0)
  115. MovementLoopAddLocation(NPC, 530.72, -20.81, -299.34, 2, 0)
  116. MovementLoopAddLocation(NPC, 526.76, -20.9, -303.83, 2, 0)
  117. MovementLoopAddLocation(NPC, 528.67, -21, -313.45, 2, 0)
  118. MovementLoopAddLocation(NPC, 531.91, -21.04, -324.61, 2, 0)
  119. MovementLoopAddLocation(NPC, 544.36, -21.2, -324.18, 2, 0)
  120. MovementLoopAddLocation(NPC, 553.28, -21.6, -312.78, 2, 0)
  121. MovementLoopAddLocation(NPC, 610.56, -20.58, -315.37, 2, 0)
  122. MovementLoopAddLocation(NPC, 634.13, -20.18, -311.07, 2, 0)
  123. MovementLoopAddLocation(NPC, 644.15, -20.61, -310.84, 2, 0)
  124. MovementLoopAddLocation(NPC, 649.75, -21.7, -303.78, 2, 0)
  125. MovementLoopAddLocation(NPC, 650.54, -22.04, -300.86, 2, 0)
  126. MovementLoopAddLocation(NPC, 650.59, -20.8, -285.56, 2, 0)
  127. MovementLoopAddLocation(NPC, 649.71, -19.99, -277.58, 2, 0)
  128. MovementLoopAddLocation(NPC, 641.19, -19.1, -266.37, 2, 0)
  129. MovementLoopAddLocation(NPC, 642.42, -18.92, -260.07, 2, 0)
  130. MovementLoopAddLocation(NPC, 645.8, -18.58, -251.33, 2, 0)
  131. MovementLoopAddLocation(NPC, 647.23, -18.75, -236.16, 2, 0)
  132. MovementLoopAddLocation(NPC, 649.26, -18.76, -217.19, 2, 0)
  133. MovementLoopAddLocation(NPC, 648.11, -18.31, -214.19, 2, 0)
  134. MovementLoopAddLocation(NPC, 650.17, -18.2, -211.09, 2, 0)
  135. MovementLoopAddLocation(NPC, 652.65, -18.09, -211.48, 2, 0)
  136. end
  137. --[[ Wrong Waypoints via Devnoob. Pre-group patrol.
  138. function waypoints(NPC)
  139. MovementLoopAddLocation(NPC, 584.13, -18.24, -408.66, 2, math.random(0,8))
  140. MovementLoopAddLocation(NPC, 621.86, -15.32, -403.71, 2, math.random(0,8))
  141. MovementLoopAddLocation(NPC, 652.44, -11.39, -395.35, 2, math.random(0,8))
  142. MovementLoopAddLocation(NPC, 644.06, -13.16, -365.23, 2, math.random(0,8))
  143. MovementLoopAddLocation(NPC, 643.87, -18.16, -325.84, 2, math.random(0,8))
  144. MovementLoopAddLocation(NPC, 644.06, -13.16, -365.23, 2, math.random(0,8))
  145. MovementLoopAddLocation(NPC, 652.44, -11.39, -395.35, 2, math.random(0,8))
  146. MovementLoopAddLocation(NPC, 621.86, -15.32, -403.71, 2, math.random(0,8))
  147. MovementLoopAddLocation(NPC, 584.13, -18.24, -408.66, 2, math.random(0,8))
  148. end
  149. --]]