Advertisement
admiral0912

pwbHorseUtilWhistleEffectSCRIPT

May 4th, 2025
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.35 KB | None | 0 0
  1. scn pwbHorseUtilWhistleEffectSCRIPT
  2.  
  3. float fAngle
  4. float fDistance
  5. ref rHorseRef
  6.  
  7. begin ScriptEffectFinish
  8. ; if (PlayerREF.IsInInterior) || (PlayerREF.IsInOblivion) || (GetCellMusicType == 1) ; OBSE line
  9. if (PlayerREF.GetInWorldSpace Tamriel == 0) && (PlayerREF.GetInWorldspace SEWorld == 0) && (PlayerREF.GetInWorldspace SETheFringe == 0) && (PlayerREF.GetInWorldspace SETheFringeOrdered == 0)
  10. Message "Your mount cannot reach you here."
  11. ; elseif (PlayerREF.IsInAir) ; OBSE line
  12. ; Message "You cannot call your mount when falling."
  13. elseif (PlayerREF.IsSwimming)
  14. Message "You cannot call your mount when swimming."
  15. else
  16. ; set rHorseRef to GetPCLastHorse ; OBSE line
  17. ; get last horse, vanilla style
  18. if (HorsePCBayBravilRef.IsPlayersLastRiddenHorse)
  19. set rHorseRef to HorsePCBayBravilRef
  20. elseif (HorsePCBaySkingradRef.IsPlayersLastRiddenHorse)
  21. set rHorseRef to HorsePCBaySkingradRef
  22. elseif (HorsePCBlackCheydinhalRef.IsPlayersLastRiddenHorse)
  23. set rHorseRef to HorsePCBlackCheydinhalRef
  24. elseif (HorsePCChestnutChorrolRef.IsPlayersLastRiddenHorse)
  25. set rHorseRef to HorsePCChestnutChorrolRef
  26. elseif (HorsePCPaintBrumaRef.IsPlayersLastRiddenHorse)
  27. set rHorseRef to HorsePCPaintBrumaRef
  28. elseif (HorsePCPaintLeyawiinRef.IsPlayersLastRiddenHorse)
  29. set rHorseRef to HorsePCPaintLeyawiinRef
  30. elseif (HorsePCWhiteAnvilRef.IsPlayersLastRiddenHorse)
  31. set rHorseRef to HorsePCWhiteAnvilRef
  32. elseif (WeynonHorsePlayer.IsPlayersLastRiddenHorse)
  33. set rHorseRef to WeynonHorsePlayer
  34. elseif (ShadowmereRef.IsPlayersLastRiddenHorse)
  35. set rHorseRef to ShadowmereRef
  36. elseif (HorsePCArmoredSteelBayBravilRef.IsPlayersLastRiddenHorse)
  37. set rHorseRef to HorsePCArmoredSteelBayBravilRef
  38. elseif (HorsePCArmoredSteelBaySkingradRef.IsPlayersLastRiddenHorse)
  39. set rHorseRef to HorsePCArmoredSteelBaySkingradRef
  40. elseif (HorsePCArmoredSteelBlackCheydinhalRef.IsPlayersLastRiddenHorse)
  41. set rHorseRef to HorsePCArmoredSteelBlackCheydinhalRef
  42. elseif (HorsePCArmoredSteelChestnutChorrolRef.IsPlayersLastRiddenHorse)
  43. set rHorseRef to HorsePCArmoredSteelChestnutChorrolRef
  44. elseif (HorsePCArmoredSteelPaintBrumaRef.IsPlayersLastRiddenHorse)
  45. set rHorseRef to HorsePCArmoredSteelPaintBrumaRef
  46. elseif (HorsePCArmoredSteelPaintLeyawiinRef.IsPlayersLastRiddenHorse)
  47. set rHorseRef to HorsePCArmoredSteelPaintLeyawiinRef
  48. elseif (HorsePCArmoredSteelWhiteAnvilRef.IsPlayersLastRiddenHorse)
  49. set rHorseRef to HorsePCArmoredSteelWhiteAnvilRef
  50. elseif (HorsePCArmoredSteelPaintWeynonRef.IsPlayersLastRiddenHorse)
  51. set rHorseRef to HorsePCArmoredSteelPaintWeynonRef
  52. elseif (HorsePCArmoredSteelShadowmereRef.IsPlayersLastRiddenHorse)
  53. set rHorseRef to HorsePCArmoredSteelShadowmereRef
  54. elseif (HorsePCArmoredSteelOldNagRef.IsPlayersLastRiddenHorse)
  55. set rHorseRef to HorsePCArmoredSteelOldNagRef
  56. elseif (HorsePCArmoredElvenBayBravilRef.IsPlayersLastRiddenHorse)
  57. set rHorseRef to HorsePCArmoredElvenBayBravilRef
  58. elseif (HorsePCArmoredElvenBaySkingradRef.IsPlayersLastRiddenHorse)
  59. set rHorseRef to HorsePCArmoredElvenBaySkingradRef
  60. elseif (HorsePCArmoredElvenBlackCheydinhalRef.IsPlayersLastRiddenHorse)
  61. set rHorseRef to HorsePCArmoredElvenBlackCheydinhalRef
  62. elseif (HorsePCArmoredElvenChestnutChorrolRef.IsPlayersLastRiddenHorse)
  63. set rHorseRef to HorsePCArmoredElvenChestnutChorrolRef
  64. elseif (HorsePCArmoredElvenPaintBrumaRef.IsPlayersLastRiddenHorse)
  65. set rHorseRef to HorsePCArmoredElvenPaintBrumaRef
  66. elseif (HorsePCArmoredElvenPaintLeyawiinRef.IsPlayersLastRiddenHorse)
  67. set rHorseRef to HorsePCArmoredElvenPaintLeyawiinRef
  68. elseif (HorsePCArmoredElvenWhiteAnvilRef.IsPlayersLastRiddenHorse)
  69. set rHorseRef to HorsePCArmoredElvenWhiteAnvilRef
  70. elseif (HorsePCArmoredElvenPaintWeynonRef.IsPlayersLastRiddenHorse)
  71. set rHorseRef to HorsePCArmoredElvenPaintWeynonRef
  72. elseif (HorsePCArmoredElvenShadowmereRef.IsPlayersLastRiddenHorse)
  73. set rHorseRef to HorsePCArmoredElvenShadowmereRef
  74. elseif (HorsePCArmoredElvenOldNagRef.IsPlayersLastRiddenHorse)
  75. set rHorseRef to HorsePCArmoredElvenOldNagRef
  76. elseif (HorsePCArmoredAkatoshBayBravilRef.IsPlayersLastRiddenHorse)
  77. set rHorseRef to HorsePCArmoredAkatoshBayBravilRef
  78. elseif (HorsePCArmoredAkatoshBaySkingradRef.IsPlayersLastRiddenHorse)
  79. set rHorseRef to HorsePCArmoredAkatoshBaySkingradRef
  80. elseif (HorsePCArmoredAkatoshBlackCheydinhalRef.IsPlayersLastRiddenHorse)
  81. set rHorseRef to HorsePCArmoredAkatoshBlackCheydinhalRef
  82. elseif (HorsePCArmoredAkatoshChestnutChorrolRef.IsPlayersLastRiddenHorse)
  83. set rHorseRef to HorsePCArmoredAkatoshChestnutChorrolRef
  84. elseif (HorsePCArmoredAkatoshOldNagRef.IsPlayersLastRiddenHorse)
  85. set rHorseRef to HorsePCArmoredAkatoshOldNagRef
  86. elseif (HorsePCArmoredAkatoshPaintBrumaRef.IsPlayersLastRiddenHorse)
  87. set rHorseRef to HorsePCArmoredAkatoshPaintBrumaRef
  88. elseif (HorsePCArmoredAkatoshPaintLeyawiinRef.IsPlayersLastRiddenHorse)
  89. set rHorseRef to HorsePCArmoredAkatoshPaintLeyawiinRef
  90. elseif (HorsePCArmoredAkatoshPaintWeynonRef.IsPlayersLastRiddenHorse)
  91. set rHorseRef to HorsePCArmoredAkatoshPaintWeynonRef
  92. elseif (HorsePCArmoredAkatoshShadowmereRef.IsPlayersLastRiddenHorse)
  93. set rHorseRef to HorsePCArmoredAkatoshShadowmereRef
  94. elseif (HorsePCArmoredAkatoshWhiteAnvilRef.IsPlayersLastRiddenHorse)
  95. set rHorseRef to HorsePCArmoredAkatoshWhiteAnvilRef
  96. elseif (HorsePCArmoredMehrunesBayBravilRef.IsPlayersLastRiddenHorse)
  97. set rHorseRef to HorsePCArmoredMehrunesBayBravilRef
  98. elseif (HorsePCArmoredMehrunesBaySkingradRef.IsPlayersLastRiddenHorse)
  99. set rHorseRef to HorsePCArmoredMehrunesBaySkingradRef
  100. elseif (HorsePCArmoredMehrunesBlackCheydinhalRef.IsPlayersLastRiddenHorse)
  101. set rHorseRef to HorsePCArmoredMehrunesBlackCheydinhalRef
  102. elseif (HorsePCArmoredMehrunesChestnutChorrolRef.IsPlayersLastRiddenHorse)
  103. set rHorseRef to HorsePCArmoredMehrunesChestnutChorrolRef
  104. elseif (HorsePCArmoredMehrunesOldNagRef.IsPlayersLastRiddenHorse)
  105. set rHorseRef to HorsePCArmoredMehrunesOldNagRef
  106. elseif (HorsePCArmoredMehrunesPaintBrumaRef.IsPlayersLastRiddenHorse)
  107. set rHorseRef to HorsePCArmoredMehrunesPaintBrumaRef
  108. elseif (HorsePCArmoredMehrunesPaintLeyawiinRef.IsPlayersLastRiddenHorse)
  109. set rHorseRef to HorsePCArmoredMehrunesPaintLeyawiinRef
  110. elseif (HorsePCArmoredMehrunesPaintWeynonRef.IsPlayersLastRiddenHorse)
  111. set rHorseRef to HorsePCArmoredMehrunesPaintWeynonRef
  112. elseif (HorsePCArmoredMehrunesShadowmereRef.IsPlayersLastRiddenHorse)
  113. set rHorseRef to HorsePCArmoredMehrunesShadowmereRef
  114. elseif (HorsePCArmoredMehrunesWhiteAnvilRef.IsPlayersLastRiddenHorse)
  115. set rHorseRef to HorsePCArmoredMehrunesWhiteAnvilRef
  116. elseif (DAHircineUnicornRef.IsPlayersLastRiddenHorse)
  117. set rHorseRef to DAHircineUnicornRef
  118. endif
  119.  
  120. ; check horse isn't stolen, dead, or overburdened
  121. if (rHorseRef)
  122. if (rHorseRef.GetDead)
  123. Message "You do not have a mount to call."
  124. return
  125. elseif (rHorseRef.IsHorseStolen)
  126. Message "You cannot call a stolen mount."
  127. return
  128. endif
  129. else
  130. Message "You do not have a mount to call."
  131. return
  132. endif
  133.  
  134. set fDistance to PlayerREF.GetDistance rHorseRef
  135. if (fDistance <= 0 || fDistance >= 4096) ; Horse is far away - teleport and set to follow
  136. if (UnlimitedSaddlebags == 0)
  137. if (rHorseRef.GetAV Encumbrance) >= ((GetGS fActorStrengthEncumbranceMult) * (rHorseRef.GetBaseAV Strength))
  138. Message "Your mount is overburdened and cannot move."
  139. return
  140. endif
  141. endif
  142. set fAngle to PlayerREF.GetAngle Z ; 0-360 relative to postive y-axis
  143. if (fAngle <= 22.5)
  144. rHorseRef.SetAngle Z, 90
  145. rHorseRef.MoveTo PlayerREF, 0, 256
  146. elseif (fAngle < 67.5)
  147. rHorseRef.SetAngle Z, 135
  148. rHorseRef.MoveTo PlayerREF, 181, 181
  149. elseif (fAngle <= 112.5)
  150. rHorseRef.SetAngle Z, 180
  151. rHorseRef.MoveTo PlayerREF, 256
  152. elseif (fAngle < 157.5)
  153. rHorseRef.SetAngle Z, 225
  154. rHorseRef.MoveTo PlayerREF, 181, -181
  155. elseif (fAngle <= 202.5)
  156. rHorseRef.SetAngle Z, 270
  157. rHorseRef.MoveTo PlayerREF, 0, -256
  158. elseif (fAngle < 247.5)
  159. rHorseRef.SetAngle Z, 315
  160. rHorseRef.MoveTo PlayerREF, -181, -181
  161. elseif (fAngle <= 292.5)
  162. rHorseRef.SetAngle Z, 0
  163. rHorseRef.MoveTo PlayerREF, -256
  164. elseif (fAngle < 337.5)
  165. rHorseRef.SetAngle Z, 45
  166. rHorseRef.MoveTo PlayerREF, -181, 181
  167. else
  168. rHorseRef.SetAngle Z, 90
  169. rHorseRef.MoveTo PlayerREF, 0, 256
  170. endif
  171. PlaySound NPCHorseAware
  172. if (rHorseRef.GetIsCurrentPackage pwbHorseUtilFollowPlayer512 == 0)
  173. rHorseRef.AddScriptPackage pwbHorseUtilFollowPlayer512
  174. endif
  175. set pwbHorseUtilFallQuest.rHorseRef to rHorseRef
  176. StartQuest pwbHorseUtilFallQuest
  177. else ; Horse is nearby
  178. if (rHorseRef.GetIsCurrentPackage pwbHorseUtilFollowPlayer512) ; Set to wait
  179. rHorseRef.RemoveScriptPackage
  180. Message "Your mount will wait here until you call."
  181. PlaySound NPCHorseIdle
  182. else ; Set to follow
  183. if (UnlimitedSaddlebags == 0)
  184. if (rHorseRef.GetAV Encumbrance) < ((GetGS fActorStrengthEncumbranceMult) * (rHorseRef.GetBaseAV Strength))
  185. Message "Your mount is now following you."
  186. else
  187. Message "Your mount is overburdened and cannot move."
  188. endif
  189. else
  190. Message "Your mount is now following you."
  191. endif
  192. rHorseRef.AddScriptPackage pwbHorseUtilFollowPlayer512
  193. PlaySound NPCHorseAware
  194. endif
  195. endif
  196. endif
  197. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement