Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

Schedule Timer - Possibly working overboard on doing this?

Asked by
Nickoakz 231 Moderation Voter
9 years ago

I'm trying to generate a bell system relying on a table.. I feel like there's an easier method of checking what time its on, and using it to check what period its on. So far, here is my results.

PSchedules={
    {"TESTBLOCK",{
    --  name            time start  time end
        {"Period 1",    10,41,      10,43},
        {"Period 2",    10,45,      10,46},
        {"Period 3",    10,47,      10,49},
        {"Period 4",    10,50,      10,51}
    }}
}
require game.ServerScriptStorage.GetTime; --returns a function that gives back my current time in this format (return hour,min,sec,amORpm)
function StartBell(schedu)
    local bellloop=true
    local schn=tonumber(schedu)
    if schn~=nil then
        local hours,mins,secs,pm=GetTime()
        local checkloop=1
        local isonperiod=false
        for a=1,#PSchedules[schn][2] do
            print(hours,PSchedules[schn][2][a][2])
            if hours>=PSchedules[schn][2][a][2] then 
                if mins>=PSchedules[schn][2][a][3] then
                    print("passd "..schn,a)
                    checkloop=a
                end 
            end 
        end 
        if hours <= PSchedules[schn][2][checkloop][4] then
            if mins < PSchedules[schn][2][checkloop][5] then
                isonperiod=true
            end
        end 
        repeat
            hours,mins,secs,pm=GetTime()
            local remainmins=0
            isonperiod=false
            if hours <= PSchedules[schn][2][checkloop][4] then
                if mins < PSchedules[schn][2][checkloop][5] then
                    if hours > PSchedules[schn][2][checkloop][2] then
                        if mins >= PSchedules[schn][2][checkloop][3] then
                            isonperiod=true
                        end
                    end 
                end 
            end 
            if isonperiod==true then
                print("Is On Period..")
                remainmins=0
                if hours < PSchedules[schn][2][checkloop][4] then
                    remainmins=PSchedules[schn][2][checkloop][4]-hours
                    remainmins=remainmins*60
                    print("Added "..remainmins".. to remaining time..")
                end 
                if PSchedules[schn][2][checkloop][5] > mins then
                    remainmins=remainmins+PSchedules[schn][2][checkloop][5]-mins
                end
                print("Remaining Time set to "..remainmins)
            else
                print("Is Not On Period..")
                if PSchedules[schn][2][checkloop]==nil then
                    bellloop=false
                    print("The bell could NOT find the next loop and died..")
                else
                    if PSchedules[schn][2][checkloop][2]==hours then
                        if PSchedules[schn][2][checkloop][3]<mins then
                            checkloop=checkloop+1
                            print("Added to next wait loop")
                        end
                    end
                    if PSchedules[schn][2][checkloop][2]==hours then
                        print("Waiting Till Next Period..")
                        remainmins=0
                        if hours < PSchedules[schn][2][checkloop][2] then
                            remainmins=PSchedules[schn][2][checkloop][2]-hours
                            remainmins=remainmins*60
                        end 
                        if PSchedules[schn][2][checkloop][5] > mins then
                            remainmins=remainmins+PSchedules[schn][2][checkloop][3]-mins
                        end
                    end
                end 
            end 
            print("CurrentTime: "..hours..":"..mins)
            print("NextPeriodBeforeTime: "..PSchedules[schn][2][checkloop][2]..":"..PSchedules[schn][2][checkloop][3])
            print("NextPeriodAfterTime: "..PSchedules[schn][2][checkloop][4]..":"..PSchedules[schn][2][checkloop][5])
            print("RemainingMinutes: "..remainmins)
            print("CurrentSchedule: "..PSchedules[schn][1])
            print("CurrentPeriod: "..PSchedules[schn][2][checkloop][1])
            print("Is it that period?: "..(isonperiod and "true" or "false"))
            print("----------------------------------")
            wait(2)
        until bellloop==false
    end
    print("TheBellDied..")
    bellloop=false
end 
StartBell(1)

Am I going overboard on how to check for this information, or is their an easier way?

Answer this question