Below is a replacement script for STimeCycle.lur that should do what you want. I've also attached a Scripts.img and Scripts.dir with this script already compiled and in the scripts if you don't know what to do with the source.
function main()
-- Give the game some time to initialize:
Wait(500)
-- Main loop:
while true do
-- Set winter (seasons are based on chapter):
if ChapterGet() ~= 2 then
ChapterSet(2)
end
-- Wait:
Wait(0)
end
end
-- STimeCycle:
function F_AttendedClass()
if IsMissionCompleated("3_08") and not IsMissionCompleated("3_08_PostDummy") then
return
end
SetSkippedClass(false)
PlayerSetPunishmentPoints(0)
end
function F_MissedClass()
if IsMissionCompleated("3_08") and not IsMissionCompleated("3_08_PostDummy") then
return
end
SetSkippedClass(true)
StatAddToInt(166)
end
function F_AttendedCurfew()
if not PedInConversation(gPlayer) and not MissionActive() then
TextPrintString("You got home in time for curfew", 4)
end
end
function F_MissedCurfew()
if not PedInConversation(gPlayer) and not MissionActive() then
TextPrint("TM_TIRED5", 4, 2)
end
end
function F_StartClass()
if IsMissionCompleated("3_08") and not IsMissionCompleated("3_08_PostDummy") then
return
end
F_RingSchoolBell()
local l_6_0 = PlayerGetPunishmentPoints() + GetSkippingPunishment()
end
function F_EndClass()
if IsMissionCompleated("3_08") and not IsMissionCompleated("3_08_PostDummy") then
return
end
F_RingSchoolBell()
end
function F_StartMorning()
F_UpdateTimeCycle()
end
function F_EndMorning()
F_UpdateTimeCycle()
end
function F_StartLunch()
if IsMissionCompleated("3_08") and not IsMissionCompleated("3_08_PostDummy") then
F_UpdateTimeCycle()
return
end
F_UpdateTimeCycle()
end
function F_EndLunch()
F_UpdateTimeCycle()
end
function F_StartAfternoon()
F_UpdateTimeCycle()
end
function F_EndAfternoon()
F_UpdateTimeCycle()
end
function F_StartEvening()
F_UpdateTimeCycle()
end
function F_EndEvening()
F_UpdateTimeCycle()
end
function F_StartCurfew_SlightlyTired()
F_UpdateTimeCycle()
end
function F_StartCurfew_Tired()
F_UpdateTimeCycle()
end
function F_StartCurfew_MoreTired()
F_UpdateTimeCycle()
end
function F_StartCurfew_TooTired()
F_UpdateTimeCycle()
end
function F_EndCurfew_TooTired()
F_UpdateTimeCycle()
end
function F_EndTired()
F_UpdateTimeCycle()
end
function F_Nothing()
end
function F_ClassWarning()
if IsMissionCompleated("3_08") and not IsMissionCompleated("3_08_PostDummy") then
return
end
local l_23_0 = math.random(1, 2)
end
function F_UpdateTimeCycle()
if not IsMissionCompleated("1_B") then
local l_24_0 = GetCurrentDay(false)
if l_24_0 < 0 or l_24_0 > 2 then
SetCurrentDay(0)
end
end
F_UpdateCurfew()
end
function F_UpdateCurfew()
local l_25_0 = shared.gCurfewRules
if not l_25_0 then
l_25_0 = F_CurfewDefaultRules
end
l_25_0()
end
function F_CurfewDefaultRules()
local l_26_0 = ClockGet()
if l_26_0 >= 23 or l_26_0 < 6 then
shared.gCurfew = true
else
shared.gCurfew = false
end
end