Furcadia Links:

Furcadia Site
Furcadia Forums

Downloads:

Graphite's PatchMerger
Furcadia Historical Society

Play Furcadia!

DragonSpeak Systems
"Time Module"
 

I came up with the Game Time System when working on the Original SpiritQuest Dream.
I use this script to make it seem like time is passing with 12 hours of day and 12 hours of night.

One Game day is 2 hours, but time only passes if there is someone in the dream.

========= Time Module by Nommad ============

*6 sec = 1 min, 360 seconds = 1 hour, time only passes if there is someone in the dream

*========Spoken Share commands to test/manage time

(0:31) When a furre says {TimeWarp},
*advance 1 hour
   (1:11) and the triggering furre has got shared control (or is the dream owner),
            (5:200) emit message {The time is now %time } to whoever set off the trigger.
            (5:50) set countdown timer #90 to go off in #2 seconds.

(0:32) When a furre says something with {newDay} in it,
*start a new day
   (1:11) and the triggering furre has got shared control (or is the dream owner),
            (5:300) set variable #%time to the value #30.
            (5:50) set countdown timer #90 to go off in #2 seconds.
*begin night
(0:32) When a furre says something with {newNight} in it,
   (1:11) and the triggering furre has got shared control (or is the dream owner),
            (5:300) set variable #%time to the value #18.
            (5:50) set countdown timer #90 to go off in #2 seconds.

*=========End Share Commands

*=========Main Time Mechanics
*startup
(0:0) When everything is starting up,
            (5:300) set variable %day to the value 1.
            (5:300) set variable #%time to the value #4.
            (5:300) set variable #%min to the value #0.
            (5:300) set variable #%light to the value #0
            (5:300) set variable #%telltime to the value #0.
*the variable darkness need to be defined with the object # for the night effect
*            (5:300) set variable #%darkness to the value #?.
            (5:50) set countdown timer #90 to go off in #2 seconds.

(0:100) When #6 seconds have passed, offset by #0,
            (5:302) take variable #%min and add #1 to it.
*hours
(0:50) When countdown timer #90 goes off,
            (5:302) take variable #%time and add #1 to it.
*cleanup (use this to remove or change things every game hour)
            (5:5) change object type #1000 to type #79.
            (5:5) change object type #1001 to type #79.
 
check for new day
(0:50) When countdown timer #90 goes off,
   (1:201) and variable #%time is greater than #28.
            (5:300) set variable #%time to the value #5.
            (5:302) take variable #%day and add #1 to it.

*New Day / Reset

(0:50) When countdown timer #90 goes off,
   (1:200) and variable #%time is equal to #6.
            (5:300) set variable #%light to the value #1.
            (5:204) emitloud message { } to everyone on the map.
            (5:204) emitloud message {the sun rises} to everyone on the map.
            (5:12) play sound #92 to everyone on the map.
            (5:31) play midi #m1 to everyone on the map.

(0:50) When countdown timer #90 goes off,
   (1:201) and variable #%time is greater than #4.
            (5:300) set variable #%light to the value #1.
*darkness
*the variable darkness need to be defined in startup or use the object # for the night effect
            (5:5) change object type #%darkness to type #0.

(0:50) When countdown timer #90 goes off,
   (1:200) and variable #%time is equal to #18.
            (5:300) set variable #%light to the value #0.
            (5:204) emitloud message { } to everyone on the map.
            (5:204) emitloud message {the sun sets} to everyone on the map.

(0:50) When countdown timer #90 goes off,
   (1:200) and variable #%time is equal to #24.
            (5:204) emitloud message { } to everyone on the map.
            (5:204) emitloud message {it is midnight} to everyone on the map.

(0:50) When countdown timer #90 goes off,
   (1:201) and variable #%time is greater than #18.
            (5:300) set variable #%light to the value #0.
            (5:204) emitloud message { } to everyone on the map.
            (5:204) emitloud message {...shadows claim the night...} to everyone on the map.
      (3:1) everywhere on the whole map,
         (4:8) only where there are no objects,
darkness
*the variable darkness need to be defined in startup or use the object # for the night effect
            (5:4) place object type #%darkness

*========== Tell Time / Emit Section

*tell time am / pm (emit the time and day every game hour)

(0:50) When countdown timer #90 goes off,
   (1:202) and variable #%time is less than #12.
            (5:301) copy the value of variable #%time into variable #%telltime.
            (5:204) emitloud message { } to everyone on the map.
            (5:204) emit message {Day: %day / Time: %telltime am } to whoever set off the trigger.
            (5:204) emit message {...it is morning...} to whoever set off the trigger.
            (5:12) play sound #92 to everyone on the map.

(0:50) When countdown timer #90 goes off,
   (1:200) and variable #%time is equal to #12.
            (5:301) copy the value of variable #%time into variable #%telltime.
            (5:204) emitloud message { } to everyone on the map.
            (5:204) emit message {Day: %day / Time: %telltime noon } to whoever set off the trigger.
            (5:204) emit message {...the sun is overhead...} to whoever set off the trigger.
            (5:12) play sound #17 to everyone on the map.

(0:50) When countdown timer #90 goes off,
   (1:201) and variable #%time is greater than #12.
   (1:202) and variable #%time is less than #18.
            (5:301) copy the value of variable #%time into variable #%telltime.
            (5:304) take variable #%telltime and subtract #12 from it.
            (5:204) emitloud message { } to everyone on the map.
            (5:204) emit message {Day: %day / Time: %telltime pm } to whoever set off the trigger.
            (5:300) set variable #%cycles to the value #18.
            (5:305) take variable #%cycles and subtract variable #%time from it.
            (5:204) emit message {%cycles Hours until sunset.} to whoever set off the trigger.
            (5:12) play sound #71 to everyone on the map.

(0:50) When countdown timer #90 goes off,
   (1:201) and variable #%time is greater than #17.
   (1:202) and variable #%time is less than #24.
            (5:301) copy the value of variable #%time into variable #%telltime.
            (5:304) take variable #%telltime and subtract #12 from it.
            (5:204) emitloud message { } to everyone on the map.
            (5:204) emit message {Day: %day / Time: %telltime : pm } to whoever set off the trigger.
            (5:300) set variable #%cycles to the value #24.
            (5:305) take variable #%cycles and subtract variable #%time from it.
            (5:204) emit message {%cycles Hours until Midnight.} to whoever set off the trigger.

(0:50) When countdown timer #90 goes off,
   (1:201) and variable #%time is greater than #24.
            (5:301) copy the value of variable #%time into variable #%telltime.
            (5:304) take variable #%telltime and subtract #24 from it.
            (5:204) emitloud message { } to everyone on the map.
            (5:204) emit message {Day: %day / Time: %telltime am } to whoever set off the trigger.
            (5:300) set variable #%cycles to the value #30.
            (5:305) take variable #%cycles and subtract variable #%time from it.
            (5:204) emit message {%cycles Hours til Dawn.} to whoever set off the trigger.

* Hour Timer
(0:50) When countdown timer #90 goes off,
            (5:300) set variable #%min to the value #0.
            (5:50) set countdown timer #90 to go off in #360 seconds.

*time stat commands (allows furre to check game time)

(0:32) When a furre says something with {+} in it,
   (1:202) and variable #%time is less than #12.
            (5:301) copy the value of variable #%time into variable #%telltime.
            (5:200) emitloud message { } to everyone on the map.
            (5:200) emit message {Day: %day / Time: %telltime : %min } to whoever set off the trigger.
            (5:200) emit message {...it is morning...} to whoever set off the trigger.

(0:32) When a furre says something with {+} in it,
   (1:200) and variable #%time is equal to #12.
            (5:301) copy the value of variable #%time into variable #%telltime.
            (5:200) emitloud message { } to everyone on the map.
            (5:200) emit message {Day: %day / Time: %telltime : %min } to whoever set off the trigger.
            (5:200) emit message {...the sun is overhead...} to whoever set off the trigger.

(0:32) When a furre says something with {+} in it,
   (1:201) and variable #%time is greater than #12.
   (1:202) and variable #%time is less than #18.
            (5:301) copy the value of variable #%time into variable #%telltime.
            (5:304) take variable #%telltime and subtract #12 from it.
            (5:200) emitloud message { } to everyone on the map.
            (5:200) emit message {Day: %day / Time: %telltime : %min } to whoever set off the trigger.
            (5:300) set variable #%cycles to the value #18.
            (5:305) take variable #%cycles and subtract variable #%time from it.
            (5:200) emit message {%cycles Hours until sunset.} to whoever set off the trigger.

(0:32) When a furre says something with {+} in it,
   (1:201) and variable #%time is greater than #17.
   (1:202) and variable #%time is less than #24.
            (5:301) copy the value of variable #%time into variable #%telltime.
            (5:304) take variable #%telltime and subtract #12 from it.
            (5:200) emitloud message { } to everyone on the map.
            (5:200) emit message {Day: %day / Time: %telltime : %min } to whoever set off the trigger.
            (5:300) set variable #%cycles to the value #24.
            (5:305) take variable #%cycles and subtract variable #%time from it.
            (5:200) emit message {%cycles Hours until Midnight.} to whoever set off the trigger.

(0:32) When a furre says something with {+} in it,
   (1:200) and variable #%time is equal to #24.
            (5:301) copy the value of variable #%time into variable #%telltime.
            (5:304) take variable #%telltime and subtract #12 from it.
            (5:200) emitloud message { } to everyone on the map.
            (5:200) emit message {Day: %day / Time: %telltime : %min } to whoever set off the trigger.
            (5:300) set variable #%cycles to the value #30.
            (5:305) take variable #%cycles and subtract variable #%time from it.
            (5:200) emit message {%cycles Hours til Dawn.} to whoever set off the trigger.

(0:32) When a furre says something with {+} in it,
   (1:201) and variable #%time is greater than #24.
            (5:301) copy the value of variable #%time into variable #%telltime.
            (5:304) take variable #%telltime and subtract #24 from it.
            (5:200) emitloud message { } to everyone on the map.
            (5:200) emit message {Day: %day / Time: %telltime : %min } to whoever set off the trigger.
            (5:300) set variable #%cycles to the value #30.
            (5:305) take variable #%cycles and subtract variable #%time from it.
            (5:200) emit message {%cycles Hours til Dawn.} to whoever set off the trigger.



Return to Main