Right, I've had a look and more-or-less got it working. The Script below should be copy-and-paste as a Quest Script, and it will mostly work.
The Issues :-
- You'll need to make your own Bell Sound, right now it's using "ice explosion"
- Sometimes the sound does not play correctly, I *think* this is a Skyrim issue, but I don't know much about sound files, so...
- I can't seem to get the 12 hour version working quite right. I've managed to get it to play maybe 3 times... Not sure what's up, but it might give you a starting place.
Scriptname ZTestQuestScript extends QuestGlobalVariable Property GameHour AutoGlobalVariable Property GameDay AutoActor Property PlayerRef AutoFloat BellHourFloat BellDayFloat PlayBellObjectReference MyXMarkerSound Property FXExplosionIce AutoStatic Property XMarker AutoFloat DaysRangFloat TwelveHourFloat TwelveRingFloat AllowBellRingingEvent OnInit()RegisterForSingleUpdate(1)EndEventEvent OnUpdate()RegisterForSingleUpdate(1);Put some conditions here, I.E. "If Quest Stage = 10"AllowBellRinging = 1;Put Negative Condition Here, I.E., "ElseIf QuestStage &--#62; 10";AllowBellRinging = 0;EndIfIf ( AllowBellRinging == 1 ) ;MAIN BELL RINGING PART ;If the BellDay is 'zero', then the Player has just started using the Mod. ;Ring the Bell, and set Bell day to the current Day ;Set Bell Hour to the current Hour. If ( BellDay == 0 ) BellDay = GameDay.GetValue() BellHour = GameHour.GetValue() myXmarker = PlayerRef.PlaceAtMe(Xmarker) FXExplosionIce.Play(myXmarker) myXmarker.Disable() DaysRang = ( DaysRang + 1 ) TwelveRing = 0 ;Check if the Current Day is the same as Bell Day. ;If it is, we don't ring the Bell ;If it is a different day, then we need to check the time of day (GameHour) ElseIf ( BellDay != GameDay.GetValue() ) ;If The GameHour is more than the BellHour we recorded earlier, it is later in the day ;So we should ring the Bell If ( BellHour &--#60;= GameHour.GetValue() ) BellDay = GameDay.GetValue() BellHour = GameHour.GetValue() ;Tell the Game to ring the Bell in a minute PlayBell = 1 ;Update the number of times the Bell has rang DaysRang = ( DaysRang + 1 ) PlayerRef.SetAV("Health", DaysRang) EndIf EndIf If ( DaysRang &--#62;= 3 ) && ( DaysRang &--#60; 6 ) If ( TwelveHour == 0 ) TwelveHour = ( BellHour + 12 ) EndIf If ( TwelveHour &--#62;= 24 ) TwelveHour = ( TwelveHour - 24 ) EndIf PlayerRef.SetAV("Magicka", TwelveHour) If ( TwelveHour &--#60;= GameHour.GetValue() ) If ( TwelveRing == 0 ) PlayBell = 1 TwelveRing = 1 EndIf EndIf EndIf If ( DaysRang &--#62;= 6 ) ;Update Quest Here, and stop Bell Ringing Script AllowBellRinging = 0 EndIf ;If we told the game to ring the Bell, it will do it now If ( PlayBell == 1 ) PlayBell = 0 ;Makes an Xmarker ;Moves it to the Player myXmarker = PlayerRef.PlaceAtMe(Xmarker) ;Plays our sound file FXExplosionIce.Play(myXmarker) myXmarker.Disable() EndIfEndIfEndEvent