lystan.lua 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. --[[
  2. Script Name : lystan.lua
  3. Script Purpose : Waypoint Path for lystan.lua
  4. Script Author : Devn00b
  5. Script Date : 08/04/2020 01:42:54 PM
  6. Script Notes : Dialogue updated 5.1.2022 Dorbin
  7. --]]
  8. dofile("SpawnScripts/Generic/GenericEcologyVoiceOvers.lua")
  9. dofile("SpawnScripts/Generic/GenericGuardVoiceOvers.lua")
  10. dofile("SpawnScripts/Generic/ExpelNonCitizen.lua")
  11. function spawn(NPC)
  12. AddTimer(NPC, 1900, "follow_Oakheart")
  13. SetPlayerProximityFunction(NPC, 10, "InRange", "LeaveRange")
  14. end
  15. function hailed(NPC, Spawn)
  16. FaceTarget(NPC, Spawn)
  17. Attention(NPC,Spawn)
  18. GenericEcologyHail(NPC, Spawn, faction)
  19. end
  20. function InRange(NPC, Spawn)
  21. NonCitizen(NPC,Spawn)
  22. end
  23. function respawn(NPC)
  24. spawn(NPC)
  25. end
  26. function Attention(NPC,Spawn)
  27. local Oak = GetSpawn(NPC,2070056)
  28. if Oak ~=nil then
  29. FaceTarget(Oak,Spawn)
  30. PlayFlavor(Oak, "", "", "", 0, 0, Spawn)
  31. end
  32. local Edwar = GetSpawn(NPC,2070025)
  33. if Edwar ~=nil then
  34. FaceTarget(Edwar,Spawn)
  35. PlayFlavor(Edwar, "", "", "", 0, 0, Spawn)
  36. end
  37. end
  38. function follow_Oakheart(NPC)
  39. local zone = GetZone(NPC)
  40. local Oakheart_location = GetSpawnByLocationID(zone, 413212)
  41. local sli = GetSpawnLocationID(NPC)
  42. local leaderX = GetX(Oakheart_location)
  43. local leaderY = GetY(Oakheart_location)
  44. local leaderZ = GetZ(Oakheart_location)
  45. local speed = 2
  46. -- Say(NPC, "Leader location is: " .. GetX(guard_A_placement) .. ", " .. GetY(guard_A_placement) .. ", " .. GetZ(guard_A_placement))
  47. if Oakheart_location ~=nil then
  48. if sli == 413162 then --Ly`stan
  49. if GetDistance(NPC, Oakheart_location) >= 8 then
  50. speed = 5
  51. MoveToLocation(NPC, 1+ leaderX , leaderY, leaderZ, speed)
  52. else
  53. speed = 2
  54. MoveToLocation(NPC, 1+ leaderX , leaderY, leaderZ, speed)
  55. end
  56. elseif sli == 413011 then --Edward
  57. if GetDistance(NPC, Oakheart_location) >= 8 then
  58. -- Say(NPC, "Leader location is: " .. GetX(guard_A_placement) .. "")
  59. -- Say(NPC, "My location is: " .. GetX(NPC) .. "")
  60. speed = 5
  61. MoveToLocation(NPC, leaderX, leaderY, 2+ leaderZ, speed)
  62. else
  63. speed = 2
  64. MoveToLocation(NPC, leaderX, leaderY, 2+ leaderZ, speed)
  65. end
  66. end
  67. end
  68. speed = 2
  69. AddTimer(NPC, 2000, "follow_Oakheart")
  70. end
  71. --[[OAKHEART PATROL
  72. function waypoints(NPC)
  73. MovementLoopAddLocation(NPC, 651.62, -18.52, -216.74, 2, 0)
  74. MovementLoopAddLocation(NPC, 651.2, -19.11, -228.47, 2, 0)
  75. MovementLoopAddLocation(NPC, 650.96, -18.56, -239.21, 2, 0)
  76. MovementLoopAddLocation(NPC, 649.3, -18.55, -257.68, 2, 0)
  77. MovementLoopAddLocation(NPC, 648.3, -18.78, -260.81, 2, 0)
  78. MovementLoopAddLocation(NPC, 650.31, -19.39, -271.97, 2, 0)
  79. MovementLoopAddLocation(NPC, 655.37, -19.5, -274.13, 2, 0)
  80. MovementLoopAddLocation(NPC, 661.86, -19.5, -274.01, 2, 0)
  81. MovementLoopAddLocation(NPC, 672.65, -19.87, -275.45, 2, 0)
  82. MovementLoopAddLocation(NPC, 683.61, -19.62, -278.04, 2, 0)
  83. MovementLoopAddLocation(NPC, 687.33, -19.6, -283.48, 2, 0)
  84. MovementLoopAddLocation(NPC, 690.65, -19.51, -291.91, 2, 0)
  85. MovementLoopAddLocation(NPC, 694.67, -18.99, -300.76, 2, 0)
  86. MovementLoopAddLocation(NPC, 702.75, -17.8, -298.95, 2, 0)
  87. MovementLoopAddLocation(NPC, 701.84, -17.91, -293.68, 2, 0)
  88. MovementLoopAddLocation(NPC, 699.73, -18.27, -292.11, 2, 0)
  89. MovementLoopAddLocation(NPC, 691.79, -19.21, -281.48, 2, 0)
  90. MovementLoopAddLocation(NPC, 687.51, -19.05, -276.04, 2, 0)
  91. MovementLoopAddLocation(NPC, 663.58, -19.38, -272.65, 2, 0)
  92. MovementLoopAddLocation(NPC, 653.35, -19.58, -274.32, 2, 0)
  93. MovementLoopAddLocation(NPC, 650.97, -20.63, -283.98, 2, 0)
  94. MovementLoopAddLocation(NPC, 650.24, -21.45, -307.54, 2, 0)
  95. MovementLoopAddLocation(NPC, 647.76, -21, -310.35, 2, 0)
  96. MovementLoopAddLocation(NPC, 642.38, -20.44, -311.78, 2, 0)
  97. MovementLoopAddLocation(NPC, 607.11, -20.67, -315.08, 2, 0)
  98. MovementLoopAddLocation(NPC, 589.36, -21.32, -313.55, 2, 0)
  99. MovementLoopAddLocation(NPC, 564.69, -21.93, -312.43, 2, 0)
  100. MovementLoopAddLocation(NPC, 554.11, -21.57, -310.27, 2, 0)
  101. MovementLoopAddLocation(NPC, 545.42, -21.12, -304.81, 2, 0)
  102. MovementLoopAddLocation(NPC, 530.72, -20.81, -299.34, 2, 0)
  103. MovementLoopAddLocation(NPC, 526.76, -20.9, -303.83, 2, 0)
  104. MovementLoopAddLocation(NPC, 528.67, -21, -313.45, 2, 0)
  105. MovementLoopAddLocation(NPC, 531.91, -21.04, -324.61, 2, 0)
  106. MovementLoopAddLocation(NPC, 544.36, -21.2, -324.18, 2, 0)
  107. MovementLoopAddLocation(NPC, 553.28, -21.6, -312.78, 2, 0)
  108. MovementLoopAddLocation(NPC, 610.56, -20.58, -315.37, 2, 0)
  109. MovementLoopAddLocation(NPC, 634.13, -20.18, -311.07, 2, 0)
  110. MovementLoopAddLocation(NPC, 644.15, -20.61, -310.84, 2, 0)
  111. MovementLoopAddLocation(NPC, 649.75, -21.7, -303.78, 2, 0)
  112. MovementLoopAddLocation(NPC, 650.54, -22.04, -300.86, 2, 0)
  113. MovementLoopAddLocation(NPC, 650.59, -20.8, -285.56, 2, 0)
  114. MovementLoopAddLocation(NPC, 649.71, -19.99, -277.58, 2, 0)
  115. MovementLoopAddLocation(NPC, 641.19, -19.1, -266.37, 2, 0)
  116. MovementLoopAddLocation(NPC, 642.42, -18.92, -260.07, 2, 0)
  117. MovementLoopAddLocation(NPC, 645.8, -18.58, -251.33, 2, 0)
  118. MovementLoopAddLocation(NPC, 647.23, -18.75, -236.16, 2, 0)
  119. MovementLoopAddLocation(NPC, 649.26, -18.76, -217.19, 2, 0)
  120. MovementLoopAddLocation(NPC, 648.11, -18.31, -214.19, 2, 0)
  121. MovementLoopAddLocation(NPC, 650.17, -18.2, -211.09, 2, 0)
  122. MovementLoopAddLocation(NPC, 652.65, -18.09, -211.48, 2, 0)
  123. end
  124. ]]--
  125. --[[OLD DEVNOOB PATROL
  126. function waypoints(NPC)
  127. MovementLoopAddLocation(NPC, 643.88, -19.24, -320.76, 2, math.random(0,8))
  128. MovementLoopAddLocation(NPC, 644.69, -13.13, -364.87, 2, math.random(0,8))
  129. MovementLoopAddLocation(NPC, 622.02, -15.73, -366.03, 2, math.random(0,8))
  130. MovementLoopAddLocation(NPC, 598.25, -20.37, -364.02, 2, math.random(0,8))
  131. MovementLoopAddLocation(NPC, 561.69, -21.01, -356.09, 2, math.random(0,8))
  132. MovementLoopAddLocation(NPC, 565.23, -20.83, -345.95, 2, math.random(0,40))
  133. MovementLoopAddLocation(NPC, 559.95, -20.62, -346.75, 2, math.random(0,8))
  134. MovementLoopAddLocation(NPC, 550.69, -21.5, -317.76, 2, math.random(0,8))
  135. MovementLoopAddLocation(NPC, 560.18, -21.9, -314.31, 2, math.random(0,8))
  136. MovementLoopAddLocation(NPC, 581.97, -21.37, -313.43, 2, math.random(0,8))
  137. MovementLoopAddLocation(NPC, 601.72, -21.05, -312.89, 2, math.random(0,8))
  138. MovementLoopAddLocation(NPC, 638.17, -20.31, -308.01, 2, math.random(0,8))
  139. MovementLoopAddLocation(NPC, 648.88, -21.27, -308.26, 2, math.random(0,8))
  140. MovementLoopAddLocation(NPC, 649.85, -21.94, -301.33, 2, math.random(0,8))
  141. MovementLoopAddLocation(NPC, 650.86, -17.98, -206.84, 2, math.random(0,8))
  142. MovementLoopAddLocation(NPC, 649.85, -21.94, -301.33, 2, math.random(0,8))
  143. MovementLoopAddLocation(NPC, 648.88, -21.27, -308.26, 2, math.random(0,8))
  144. MovementLoopAddLocation(NPC, 638.17, -20.31, -308.01, 2, math.random(0,8))
  145. MovementLoopAddLocation(NPC, 601.72, -21.05, -312.89, 2, math.random(0,8))
  146. MovementLoopAddLocation(NPC, 581.97, -21.37, -313.43, 2, math.random(0,8))
  147. MovementLoopAddLocation(NPC, 560.18, -21.9, -314.31, 2, math.random(0,8))
  148. MovementLoopAddLocation(NPC, 550.69, -21.5, -317.76, 2, math.random(0,8))
  149. MovementLoopAddLocation(NPC, 559.95, -20.62, -346.75, 2, math.random(0,8))
  150. MovementLoopAddLocation(NPC, 565.23, -20.83, -345.95, 2, math.random(0,40))
  151. MovementLoopAddLocation(NPC, 561.69, -21.01, -356.09, 2, math.random(0,8))
  152. MovementLoopAddLocation(NPC, 598.25, -20.37, -364.02, 2, math.random(0,8))
  153. MovementLoopAddLocation(NPC, 622.02, -15.73, -366.03, 2, math.random(0,8))
  154. MovementLoopAddLocation(NPC, 644.69, -13.13, -364.87, 2, math.random(0,8))
  155. MovementLoopAddLocation(NPC, 643.88, -19.24, -320.76, 2, math.random(0,8))
  156. end
  157. ]]--