Scriptname _00E_AkropolisFloatingStoneScript extends ObjectReference ;===================================================================================== ; EVENTS ;===================================================================================== Event OnCellAttach() If self.Is3DLoaded() Self.MoveTo(GetLinkedRef()) StartAngleX = Self.GetAngleX() StartAngleY = Self.GetAngleY() StartAngleZ = Self.GetAngleZ() NextMarker = Self.GetLinkedRef() FloatToMarker(NextMarker) EndIf EndEvent Event OnTranslationAlmostComplete() NextMarker = NextMarker.GetLinkedRef() FloatToMarker(NextMarker) EndEvent ;===================================================================================== ; FUNCTIONS ;===================================================================================== Function FloatToMarker(ObjectReference MarkerTo) SetRotationAngles() MarkerTo.SetAngle(AngleX, AngleY, AngleZ) Self.TranslateToRef(MarkerTo, MovementSpeed, RotationSpeed) EndFunction Function SetRotationAngles() if Positive if Config_RotateX AngleX = (Self.GetAngleX() + 180) Elseif !(Config_RotateX) AngleX = StartAngleX EndIf if Config_RotateY AngleY = (Self.GetAngleY() + 180) Elseif !(Config_RotateY) AngleY = StartAngleY EndIf if Config_RotateZ AngleZ = (Self.GetAngleZ() + 180) Elseif !(Config_RotateZ) AngleZ = StartAngleZ EndIf Positive = False ElseIf !(Positive) if Config_RotateX AngleX = (Self.GetAngleX() - 180) Elseif !(Config_RotateX) AngleX = StartAngleX EndIf if Config_RotateY AngleY = (Self.GetAngleY() - 180) Elseif !(Config_RotateY) AngleY = StartAngleY EndIf if Config_RotateZ AngleZ = (Self.GetAngleZ() - 180) Elseif !(Config_RotateZ) AngleZ = StartAngleZ EndIf Positive = true EndIf EndFunction ;===================================================================================== ; PROPERTIES ;===================================================================================== float StartAngleX float StartAngleY float StartAngleZ float AngleX float AngleY float AngleZ float Property RotationSpeed = 30.0 Auto {The rotation speed of the floating objects. Default: 30} float Property MovementSpeed = 15.0 Auto {The movement speed of the floating objects. Default: 15} bool Property Config_RotateX = True Auto {Shall the object rotate around the X-Axis?} bool Property Config_RotateY = True Auto {Shall the object rotate around the Y-Axis?} bool Property Config_RotateZ = True Auto {Shall the object rotate around the Z-Axis?} bool Positive = True ObjectReference Property NextMarker Auto Hidden