GolanPanicward.lua 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228
  1. --[[
  2. Script Name : SpawnScripts/Graystone/GolanPanicward.lua
  3. Script Purpose : Golan Panicward
  4. Script Author : John Adams/Scatman/Jabantiz
  5. Script Date : route mapped 2008.09.21
  6. Script Notes : Auto-Generated Conversation from PacketParser Data
  7. Added Soothsayer Rayala Interaction & Callout/Hail w/ dofile - 2022.03.11 Dorbin
  8. --]]
  9. dofile("SpawnScripts/Generic/GenericEcologyVoiceOvers.lua")
  10. function spawn(NPC)
  11. SetPlayerProximityFunction(NPC, 5, "InRange", "LeaveRange")
  12. waypoints(NPC)
  13. end
  14. function waypoints(NPC)
  15. MovementLoopAddLocation(NPC, 897.25, -22.61, -100.86, 2, 1)
  16. MovementLoopAddLocation(NPC, 897.25, -22.61, -100.86, 2, 10, "FaceSeer")
  17. MovementLoopAddLocation(NPC, 900.33, -22.36, -106.33, 2, 0)
  18. MovementLoopAddLocation(NPC, 902.31, -22.3, -112.29, 2, 1)
  19. MovementLoopAddLocation(NPC, 902.31, -22.3, -112.29, 2, math.random(10, 15), "FaceStone")
  20. MovementLoopAddLocation(NPC, 902.31, -22.3, -112.29, 2, math.random(3, 5))
  21. MovementLoopAddLocation(NPC, 900.97, -22.31, -115.43, 2, 0)
  22. MovementLoopAddLocation(NPC, 898.34, -22.32, -119.24, 2, 0)
  23. MovementLoopAddLocation(NPC, 896.53, -22.46, -124.49, 2, 0)
  24. MovementLoopAddLocation(NPC, 895.65, -22.48, -130.99, 2, 0)
  25. MovementLoopAddLocation(NPC, 892.92, -22.61, -136.48, 2, 0)
  26. MovementLoopAddLocation(NPC, 887.66, -22.21, -137.06, 2, 0)
  27. MovementLoopAddLocation(NPC, 881.79, -22.21, -140.53, 2, 0)
  28. MovementLoopAddLocation(NPC, 877.09, -22.21, -145.92, 2, 0)
  29. MovementLoopAddLocation(NPC, 865.75, -22.21, -148.23, 2, math.random(10, 15))
  30. MovementLoopAddLocation(NPC, 865.72, -22.5, -151.71, 2, 0)
  31. MovementLoopAddLocation(NPC, 861.1, -23.27, -151.98, 2, 0)
  32. MovementLoopAddLocation(NPC, 855.63, -24.24, -151.78, 2, 0)
  33. MovementLoopAddLocation(NPC, 852.81, -24.12, -147.26, 2, 0)
  34. MovementLoopAddLocation(NPC, 850.67, -23.08, -147.17, 2, 0)
  35. MovementLoopAddLocation(NPC, 848.2, -22.35, -147.01, 2, 0)
  36. MovementLoopAddLocation(NPC, 844.73, -22.49, -143.91, 2, 0)
  37. MovementLoopAddLocation(NPC, 842.99, -21.61, -143.39, 2, 0)
  38. MovementLoopAddLocation(NPC, 841.07, -20.86, -142.96, 2, 0)
  39. MovementLoopAddLocation(NPC, 836.9, -20.93, -143.56, 2, 0)
  40. MovementLoopAddLocation(NPC, 833.3, -20.93, -143.42, 2, math.random(10, 15))
  41. MovementLoopAddLocation(NPC, 833.14, -20.93, -139.68, 2, 0)
  42. MovementLoopAddLocation(NPC, 835.57, -20.93, -135.04, 2, 0)
  43. MovementLoopAddLocation(NPC, 838.23, -20.93, -130.37, 2, 0)
  44. MovementLoopAddLocation(NPC, 834.81, -20.93, -125.75, 2, 0)
  45. MovementLoopAddLocation(NPC, 834.59, -20.97, -122.12, 2, 0)
  46. MovementLoopAddLocation(NPC, 834.97, -20.9, -117.55, 2, 0)
  47. MovementLoopAddLocation(NPC, 837.63, -20.74, -115.58, 2, 0)
  48. MovementLoopAddLocation(NPC, 840.33, -21.69, -116.32, 2, 0)
  49. MovementLoopAddLocation(NPC, 842.43, -22.72, -118.97, 2, 0)
  50. MovementLoopAddLocation(NPC, 844.62, -22.8, -121.65, 2, math.random(10, 15))
  51. MovementLoopAddLocation(NPC, 845.72, -22.67, -117.15, 2, 0)
  52. MovementLoopAddLocation(NPC, 845.78, -22.95, -111.79, 2, 0)
  53. MovementLoopAddLocation(NPC, 847.22, -23.15, -108.4, 2, 0)
  54. MovementLoopAddLocation(NPC, 849.93, -23.89, -107.18, 2, 0)
  55. MovementLoopAddLocation(NPC, 853.28, -24.96, -105.86, 2, 0)
  56. MovementLoopAddLocation(NPC, 866.22, -24.97, -102.99, 2, 0)
  57. MovementLoopAddLocation(NPC, 879.33, -24.95, -100.31, 2, 0)
  58. MovementLoopAddLocation(NPC, 882.84, -23.48, -99.63, 2, 0)
  59. MovementLoopAddLocation(NPC, 885.95, -22.05, -99.03, 2, 0)
  60. MovementLoopAddLocation(NPC, 889.06, -22.27, -101.34, 2, 0)
  61. MovementLoopAddLocation(NPC, 891.2, -22.3, -107.62, 2, 0)
  62. MovementLoopAddLocation(NPC, 895.77, -22.37, -108.66, 2, 0)
  63. MovementLoopAddLocation(NPC, 896.51, -22.37, -105.48, 2, 0)
  64. MovementLoopAddLocation(NPC, 896.03, -22.61, -102.33, 2, 0)
  65. MovementLoopAddLocation(NPC, 893.32, -22.61, -98.13, 2, 0)
  66. MovementLoopAddLocation(NPC, 891.33, -22.61, -94.38, 2, math.random(10, 15))
  67. --loop 2
  68. MovementLoopAddLocation(NPC, 897.25, -22.61, -100.86, 2, 0)
  69. MovementLoopAddLocation(NPC, 900.33, -22.36, -106.33, 2, 0)
  70. MovementLoopAddLocation(NPC, 902.31, -22.3, -112.29, 2, 1)
  71. MovementLoopAddLocation(NPC, 902.31, -22.3, -112.29, 2, math.random(10, 15), "FaceStone")
  72. MovementLoopAddLocation(NPC, 902.31, -22.3, -112.29, 2, math.random(3, 5))
  73. MovementLoopAddLocation(NPC, 900.97, -22.31, -115.43, 2, 0)
  74. MovementLoopAddLocation(NPC, 898.34, -22.32, -119.24, 2, 0)
  75. MovementLoopAddLocation(NPC, 896.53, -22.46, -124.49, 2, 0)
  76. MovementLoopAddLocation(NPC, 895.65, -22.48, -130.99, 2, 0)
  77. MovementLoopAddLocation(NPC, 892.92, -22.61, -136.48, 2, 0)
  78. MovementLoopAddLocation(NPC, 887.66, -22.21, -137.06, 2, 0)
  79. MovementLoopAddLocation(NPC, 881.79, -22.21, -140.53, 2, 0)
  80. MovementLoopAddLocation(NPC, 877.09, -22.21, -145.92, 2, 0)
  81. MovementLoopAddLocation(NPC, 865.75, -22.21, -148.23, 2, math.random(10, 15))
  82. MovementLoopAddLocation(NPC, 865.72, -22.5, -151.71, 2, 0)
  83. MovementLoopAddLocation(NPC, 861.1, -23.27, -151.98, 2, 0)
  84. MovementLoopAddLocation(NPC, 855.63, -24.24, -151.78, 2, 0)
  85. MovementLoopAddLocation(NPC, 852.81, -24.12, -147.26, 2, 0)
  86. MovementLoopAddLocation(NPC, 850.67, -23.08, -147.17, 2, 0)
  87. MovementLoopAddLocation(NPC, 848.2, -22.35, -147.01, 2, 0)
  88. MovementLoopAddLocation(NPC, 844.73, -22.49, -143.91, 2, 0)
  89. MovementLoopAddLocation(NPC, 842.99, -21.61, -143.39, 2, 0)
  90. MovementLoopAddLocation(NPC, 841.07, -20.86, -142.96, 2, 0)
  91. MovementLoopAddLocation(NPC, 836.9, -20.93, -143.56, 2, 0)
  92. MovementLoopAddLocation(NPC, 833.3, -20.93, -143.42, 2, math.random(10, 15))
  93. MovementLoopAddLocation(NPC, 833.14, -20.93, -139.68, 2, 0)
  94. MovementLoopAddLocation(NPC, 835.57, -20.93, -135.04, 2, 0)
  95. MovementLoopAddLocation(NPC, 838.23, -20.93, -130.37, 2, 0)
  96. MovementLoopAddLocation(NPC, 834.81, -20.93, -125.75, 2, 0)
  97. MovementLoopAddLocation(NPC, 834.59, -20.97, -122.12, 2, 0)
  98. MovementLoopAddLocation(NPC, 834.97, -20.9, -117.55, 2, 0)
  99. MovementLoopAddLocation(NPC, 837.63, -20.74, -115.58, 2, 0)
  100. MovementLoopAddLocation(NPC, 840.33, -21.69, -116.32, 2, 0)
  101. MovementLoopAddLocation(NPC, 842.43, -22.72, -118.97, 2, 0)
  102. MovementLoopAddLocation(NPC, 844.62, -22.8, -121.65, 2, math.random(10, 15))
  103. MovementLoopAddLocation(NPC, 845.72, -22.67, -117.15, 2, 0)
  104. MovementLoopAddLocation(NPC, 845.78, -22.95, -111.79, 2, 0)
  105. MovementLoopAddLocation(NPC, 847.22, -23.15, -108.4, 2, 0)
  106. MovementLoopAddLocation(NPC, 849.93, -23.89, -107.18, 2, 0)
  107. MovementLoopAddLocation(NPC, 853.28, -24.96, -105.86, 2, 0)
  108. MovementLoopAddLocation(NPC, 866.22, -24.97, -102.99, 2, 0)
  109. MovementLoopAddLocation(NPC, 879.33, -24.95, -100.31, 2, 0)
  110. MovementLoopAddLocation(NPC, 882.84, -23.48, -99.63, 2, 0)
  111. MovementLoopAddLocation(NPC, 885.95, -22.05, -99.03, 2, 0)
  112. MovementLoopAddLocation(NPC, 889.06, -22.27, -101.34, 2, 0)
  113. MovementLoopAddLocation(NPC, 891.2, -22.3, -107.62, 2, 0)
  114. MovementLoopAddLocation(NPC, 895.77, -22.37, -108.66, 2, 0)
  115. MovementLoopAddLocation(NPC, 896.51, -22.37, -105.48, 2, 0)
  116. MovementLoopAddLocation(NPC, 896.03, -22.61, -102.33, 2, 0)
  117. MovementLoopAddLocation(NPC, 893.32, -22.61, -98.13, 2, 0)
  118. MovementLoopAddLocation(NPC, 891.33, -22.61, -94.38, 2, math.random(10, 15))
  119. end
  120. function respawn(NPC)
  121. spawn(NPC)
  122. end
  123. function hailed(NPC, Spawn)
  124. FaceTarget(NPC, Spawn)
  125. GenericEcologyHail(NPC, Spawn, faction)
  126. end
  127. function InRange(NPC, Spawn)
  128. GenericEcologyCallout(NPC, Spawn, faction)
  129. end
  130. --[[ OLD SCRIPT. Using Ecology VOs even though they don't match the text exactly (THESE TEXT ARE A RACE BASED RESPONSE WE DONT HAVE 3/31)
  131. function hailed(NPC, Spawn)
  132. RandomTalk(NPC, Spawn, false)
  133. end
  134. function RandomTalk(NPC, Spawn, Option)
  135. local choice = 0
  136. if Option == nil then
  137. choice = math.random(1, 100)
  138. end
  139. if choice < 25 then
  140. FaceTarget(NPC, Spawn)
  141. local choice = math.random(1, 5)
  142. if choice == 1 then
  143. PlayFlavor(NPC, "", "Haha, I saw you! I'm not one to fall for the same thing three times.", "", 1689589577, 4560189, Spawn)
  144. elseif choice == 2 then
  145. PlayFlavor(NPC, "", "Ah, what I wouldn't give to cradle a mug of good Dwarven Ale just now.", "", 1689589577, 4560189, Spawn)
  146. elseif choice == 3 then
  147. PlayFlavor(NPC, "", "A hard day of adventuring makes one long for home, don't it?", "", 1689589577, 4560189, Spawn)
  148. elseif choice == 4 then
  149. PlayFlavor(NPC, "", "Only elves would build a city high up in the trees without any railing!", "", 1689589577, 4560189, Spawn)
  150. else
  151. PlayFlavor(NPC, "", "At least your kind had the sense not to build your ancestral city in the trees. Many of my ancestors had their share of broken bones in Kelethin.", "", 1689589577, 4560189, Spawn)
  152. end
  153. end
  154. end
  155. --]]
  156. function FaceStone(NPC)
  157. SpawnSet(NPC, "heading", "66.65")
  158. choice = math.random(1,2)
  159. if choice == 1 then
  160. PlayFlavor(NPC, "","", "yawn", 0, 0)
  161. else
  162. PlayFlavor(NPC, "","", "ponder", 0, 0)
  163. end
  164. end
  165. function FaceSeer(NPC)
  166. local Reyala = GetSpawn(NPC, 2330137)
  167. if Reyala ~= nil then
  168. FaceTarget(NPC, Reyala)
  169. AddTimer(NPC, 1000, "ReyalaFacesGolan")
  170. end
  171. end
  172. function ReyalaFacesGolan(NPC)
  173. local Reyala = GetSpawn(NPC, 2330137)
  174. if Reyala ~= nil then
  175. FaceTarget(Reyala, NPC)
  176. AddTimer(NPC, 500, "ReyalaSeersGolan")
  177. end
  178. end
  179. function ReyalaSeersGolan(NPC)
  180. local Reyala = GetSpawn(NPC, 2330137)
  181. if Reyala ~= nil then
  182. choice = math.random(1,2)
  183. PlayFlavor(Reyala, "voiceover/english/human_eco_good_seer/ft/eco/good/human_eco_good_seer_drunk_gf_cd3bc1d6.mp3","A deep slumber in a cold cell awaits you.", "stare", 4073129922, 2847751764)
  184. AddTimer(NPC, 2000, "ConfusedAtReyala")
  185. end
  186. end
  187. function ConfusedAtReyala(NPC)
  188. local Reyala = GetSpawn(NPC, 2330137)
  189. if Reyala ~= nil then
  190. choice = math.random(1,2)
  191. if choice == 1 then
  192. PlayFlavor(NPC, "","", "confused", 0, 0)
  193. else
  194. PlayFlavor(NPC, "","", "sigh", 0, 0)
  195. end
  196. AddTimer(NPC, 6000, "ReturnReyala")
  197. end
  198. end
  199. function ReturnReyala(NPC)
  200. local Reyala = GetSpawn(NPC, 2330137)
  201. SpawnSet(Reyala, "heading", "52.65")
  202. end