oakheart.lua 7.7 KB

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