Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- scn pwbHorseUtilWhistleEffectSCRIPT
- float fAngle
- float fDistance
- ref rHorseRef
- begin ScriptEffectFinish
- ; if (PlayerREF.IsInInterior) || (PlayerREF.IsInOblivion) || (GetCellMusicType == 1) ; OBSE line
- if (PlayerREF.GetInWorldSpace Tamriel == 0) && (PlayerREF.GetInWorldspace SEWorld == 0) && (PlayerREF.GetInWorldspace SETheFringe == 0) && (PlayerREF.GetInWorldspace SETheFringeOrdered == 0)
- Message "Your mount cannot reach you here."
- ; elseif (PlayerREF.IsInAir) ; OBSE line
- ; Message "You cannot call your mount when falling."
- elseif (PlayerREF.IsSwimming)
- Message "You cannot call your mount when swimming."
- else
- ; set rHorseRef to GetPCLastHorse ; OBSE line
- ; get last horse, vanilla style
- if (HorsePCBayBravilRef.IsPlayersLastRiddenHorse)
- set rHorseRef to HorsePCBayBravilRef
- elseif (HorsePCBaySkingradRef.IsPlayersLastRiddenHorse)
- set rHorseRef to HorsePCBaySkingradRef
- elseif (HorsePCBlackCheydinhalRef.IsPlayersLastRiddenHorse)
- set rHorseRef to HorsePCBlackCheydinhalRef
- elseif (HorsePCChestnutChorrolRef.IsPlayersLastRiddenHorse)
- set rHorseRef to HorsePCChestnutChorrolRef
- elseif (HorsePCPaintBrumaRef.IsPlayersLastRiddenHorse)
- set rHorseRef to HorsePCPaintBrumaRef
- elseif (HorsePCPaintLeyawiinRef.IsPlayersLastRiddenHorse)
- set rHorseRef to HorsePCPaintLeyawiinRef
- elseif (HorsePCWhiteAnvilRef.IsPlayersLastRiddenHorse)
- set rHorseRef to HorsePCWhiteAnvilRef
- elseif (WeynonHorsePlayer.IsPlayersLastRiddenHorse)
- set rHorseRef to WeynonHorsePlayer
- elseif (ShadowmereRef.IsPlayersLastRiddenHorse)
- set rHorseRef to ShadowmereRef
- elseif (HorsePCArmoredSteelBayBravilRef.IsPlayersLastRiddenHorse)
- set rHorseRef to HorsePCArmoredSteelBayBravilRef
- elseif (HorsePCArmoredSteelBaySkingradRef.IsPlayersLastRiddenHorse)
- set rHorseRef to HorsePCArmoredSteelBaySkingradRef
- elseif (HorsePCArmoredSteelBlackCheydinhalRef.IsPlayersLastRiddenHorse)
- set rHorseRef to HorsePCArmoredSteelBlackCheydinhalRef
- elseif (HorsePCArmoredSteelChestnutChorrolRef.IsPlayersLastRiddenHorse)
- set rHorseRef to HorsePCArmoredSteelChestnutChorrolRef
- elseif (HorsePCArmoredSteelPaintBrumaRef.IsPlayersLastRiddenHorse)
- set rHorseRef to HorsePCArmoredSteelPaintBrumaRef
- elseif (HorsePCArmoredSteelPaintLeyawiinRef.IsPlayersLastRiddenHorse)
- set rHorseRef to HorsePCArmoredSteelPaintLeyawiinRef
- elseif (HorsePCArmoredSteelWhiteAnvilRef.IsPlayersLastRiddenHorse)
- set rHorseRef to HorsePCArmoredSteelWhiteAnvilRef
- elseif (HorsePCArmoredSteelPaintWeynonRef.IsPlayersLastRiddenHorse)
- set rHorseRef to HorsePCArmoredSteelPaintWeynonRef
- elseif (HorsePCArmoredSteelShadowmereRef.IsPlayersLastRiddenHorse)
- set rHorseRef to HorsePCArmoredSteelShadowmereRef
- elseif (HorsePCArmoredSteelOldNagRef.IsPlayersLastRiddenHorse)
- set rHorseRef to HorsePCArmoredSteelOldNagRef
- elseif (HorsePCArmoredElvenBayBravilRef.IsPlayersLastRiddenHorse)
- set rHorseRef to HorsePCArmoredElvenBayBravilRef
- elseif (HorsePCArmoredElvenBaySkingradRef.IsPlayersLastRiddenHorse)
- set rHorseRef to HorsePCArmoredElvenBaySkingradRef
- elseif (HorsePCArmoredElvenBlackCheydinhalRef.IsPlayersLastRiddenHorse)
- set rHorseRef to HorsePCArmoredElvenBlackCheydinhalRef
- elseif (HorsePCArmoredElvenChestnutChorrolRef.IsPlayersLastRiddenHorse)
- set rHorseRef to HorsePCArmoredElvenChestnutChorrolRef
- elseif (HorsePCArmoredElvenPaintBrumaRef.IsPlayersLastRiddenHorse)
- set rHorseRef to HorsePCArmoredElvenPaintBrumaRef
- elseif (HorsePCArmoredElvenPaintLeyawiinRef.IsPlayersLastRiddenHorse)
- set rHorseRef to HorsePCArmoredElvenPaintLeyawiinRef
- elseif (HorsePCArmoredElvenWhiteAnvilRef.IsPlayersLastRiddenHorse)
- set rHorseRef to HorsePCArmoredElvenWhiteAnvilRef
- elseif (HorsePCArmoredElvenPaintWeynonRef.IsPlayersLastRiddenHorse)
- set rHorseRef to HorsePCArmoredElvenPaintWeynonRef
- elseif (HorsePCArmoredElvenShadowmereRef.IsPlayersLastRiddenHorse)
- set rHorseRef to HorsePCArmoredElvenShadowmereRef
- elseif (HorsePCArmoredElvenOldNagRef.IsPlayersLastRiddenHorse)
- set rHorseRef to HorsePCArmoredElvenOldNagRef
- elseif (HorsePCArmoredAkatoshBayBravilRef.IsPlayersLastRiddenHorse)
- set rHorseRef to HorsePCArmoredAkatoshBayBravilRef
- elseif (HorsePCArmoredAkatoshBaySkingradRef.IsPlayersLastRiddenHorse)
- set rHorseRef to HorsePCArmoredAkatoshBaySkingradRef
- elseif (HorsePCArmoredAkatoshBlackCheydinhalRef.IsPlayersLastRiddenHorse)
- set rHorseRef to HorsePCArmoredAkatoshBlackCheydinhalRef
- elseif (HorsePCArmoredAkatoshChestnutChorrolRef.IsPlayersLastRiddenHorse)
- set rHorseRef to HorsePCArmoredAkatoshChestnutChorrolRef
- elseif (HorsePCArmoredAkatoshOldNagRef.IsPlayersLastRiddenHorse)
- set rHorseRef to HorsePCArmoredAkatoshOldNagRef
- elseif (HorsePCArmoredAkatoshPaintBrumaRef.IsPlayersLastRiddenHorse)
- set rHorseRef to HorsePCArmoredAkatoshPaintBrumaRef
- elseif (HorsePCArmoredAkatoshPaintLeyawiinRef.IsPlayersLastRiddenHorse)
- set rHorseRef to HorsePCArmoredAkatoshPaintLeyawiinRef
- elseif (HorsePCArmoredAkatoshPaintWeynonRef.IsPlayersLastRiddenHorse)
- set rHorseRef to HorsePCArmoredAkatoshPaintWeynonRef
- elseif (HorsePCArmoredAkatoshShadowmereRef.IsPlayersLastRiddenHorse)
- set rHorseRef to HorsePCArmoredAkatoshShadowmereRef
- elseif (HorsePCArmoredAkatoshWhiteAnvilRef.IsPlayersLastRiddenHorse)
- set rHorseRef to HorsePCArmoredAkatoshWhiteAnvilRef
- elseif (HorsePCArmoredMehrunesBayBravilRef.IsPlayersLastRiddenHorse)
- set rHorseRef to HorsePCArmoredMehrunesBayBravilRef
- elseif (HorsePCArmoredMehrunesBaySkingradRef.IsPlayersLastRiddenHorse)
- set rHorseRef to HorsePCArmoredMehrunesBaySkingradRef
- elseif (HorsePCArmoredMehrunesBlackCheydinhalRef.IsPlayersLastRiddenHorse)
- set rHorseRef to HorsePCArmoredMehrunesBlackCheydinhalRef
- elseif (HorsePCArmoredMehrunesChestnutChorrolRef.IsPlayersLastRiddenHorse)
- set rHorseRef to HorsePCArmoredMehrunesChestnutChorrolRef
- elseif (HorsePCArmoredMehrunesOldNagRef.IsPlayersLastRiddenHorse)
- set rHorseRef to HorsePCArmoredMehrunesOldNagRef
- elseif (HorsePCArmoredMehrunesPaintBrumaRef.IsPlayersLastRiddenHorse)
- set rHorseRef to HorsePCArmoredMehrunesPaintBrumaRef
- elseif (HorsePCArmoredMehrunesPaintLeyawiinRef.IsPlayersLastRiddenHorse)
- set rHorseRef to HorsePCArmoredMehrunesPaintLeyawiinRef
- elseif (HorsePCArmoredMehrunesPaintWeynonRef.IsPlayersLastRiddenHorse)
- set rHorseRef to HorsePCArmoredMehrunesPaintWeynonRef
- elseif (HorsePCArmoredMehrunesShadowmereRef.IsPlayersLastRiddenHorse)
- set rHorseRef to HorsePCArmoredMehrunesShadowmereRef
- elseif (HorsePCArmoredMehrunesWhiteAnvilRef.IsPlayersLastRiddenHorse)
- set rHorseRef to HorsePCArmoredMehrunesWhiteAnvilRef
- elseif (DAHircineUnicornRef.IsPlayersLastRiddenHorse)
- set rHorseRef to DAHircineUnicornRef
- endif
- ; check horse isn't stolen, dead, or overburdened
- if (rHorseRef)
- if (rHorseRef.GetDead)
- Message "You do not have a mount to call."
- return
- elseif (rHorseRef.IsHorseStolen)
- Message "You cannot call a stolen mount."
- return
- endif
- else
- Message "You do not have a mount to call."
- return
- endif
- set fDistance to PlayerREF.GetDistance rHorseRef
- if (fDistance <= 0 || fDistance >= 4096) ; Horse is far away - teleport and set to follow
- if (UnlimitedSaddlebags == 0)
- if (rHorseRef.GetAV Encumbrance) >= ((GetGS fActorStrengthEncumbranceMult) * (rHorseRef.GetBaseAV Strength))
- Message "Your mount is overburdened and cannot move."
- return
- endif
- endif
- set fAngle to PlayerREF.GetAngle Z ; 0-360 relative to postive y-axis
- if (fAngle <= 22.5)
- rHorseRef.SetAngle Z, 90
- rHorseRef.MoveTo PlayerREF, 0, 256
- elseif (fAngle < 67.5)
- rHorseRef.SetAngle Z, 135
- rHorseRef.MoveTo PlayerREF, 181, 181
- elseif (fAngle <= 112.5)
- rHorseRef.SetAngle Z, 180
- rHorseRef.MoveTo PlayerREF, 256
- elseif (fAngle < 157.5)
- rHorseRef.SetAngle Z, 225
- rHorseRef.MoveTo PlayerREF, 181, -181
- elseif (fAngle <= 202.5)
- rHorseRef.SetAngle Z, 270
- rHorseRef.MoveTo PlayerREF, 0, -256
- elseif (fAngle < 247.5)
- rHorseRef.SetAngle Z, 315
- rHorseRef.MoveTo PlayerREF, -181, -181
- elseif (fAngle <= 292.5)
- rHorseRef.SetAngle Z, 0
- rHorseRef.MoveTo PlayerREF, -256
- elseif (fAngle < 337.5)
- rHorseRef.SetAngle Z, 45
- rHorseRef.MoveTo PlayerREF, -181, 181
- else
- rHorseRef.SetAngle Z, 90
- rHorseRef.MoveTo PlayerREF, 0, 256
- endif
- PlaySound NPCHorseAware
- if (rHorseRef.GetIsCurrentPackage pwbHorseUtilFollowPlayer512 == 0)
- rHorseRef.AddScriptPackage pwbHorseUtilFollowPlayer512
- endif
- set pwbHorseUtilFallQuest.rHorseRef to rHorseRef
- StartQuest pwbHorseUtilFallQuest
- else ; Horse is nearby
- if (rHorseRef.GetIsCurrentPackage pwbHorseUtilFollowPlayer512) ; Set to wait
- rHorseRef.RemoveScriptPackage
- Message "Your mount will wait here until you call."
- PlaySound NPCHorseIdle
- else ; Set to follow
- if (UnlimitedSaddlebags == 0)
- if (rHorseRef.GetAV Encumbrance) < ((GetGS fActorStrengthEncumbranceMult) * (rHorseRef.GetBaseAV Strength))
- Message "Your mount is now following you."
- else
- Message "Your mount is overburdened and cannot move."
- endif
- else
- Message "Your mount is now following you."
- endif
- rHorseRef.AddScriptPackage pwbHorseUtilFollowPlayer512
- PlaySound NPCHorseAware
- endif
- endif
- endif
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement