Post Reply 
 
Thread Rating:
  • 1 Votes - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Time & Weather Script
Author Message
admin phoenix
Master
**

Posts: 354
Likes Given: 1
Likes Received: 23 in 13 posts
Joined: Mar 2012
Reputation: 3



Post: #1
Time & Weather Script
PHP Code:
// ###########################################################################​###############################################
// #                                                                                                                        #
// #        FEATURES:    Complety setting your Time with seconds, minutes and hours                                            #
// #                    Complety seeting of the day, months and years. Also moon cycles                            #
// #                    fixes lightlevel depends on the season month                                                        #
// #                    4 seasons                                                        #
// #                    Name of the months                                                                                            #
// #                    Moon cycles with news, when changing the cycle                #
// #                    Ingame Function: time                                                                            #
// #                    Hair and beard growing every 30 Ingameonline day                                        #
// #                    News can be online or offline                                            #
// #                    Holiday Names                                                                                    #
// #                                                                                                                        #
// #        HowTo:    Put the worldclock by the coordination 11,11                                                        #
// #                Find out the uid of your worldclock (.xshow uid or .info)                                        #
// #                Write down the UID Nuber to the worldsetting defname "time_control_uid" and delete the old one                                #
// #                Dclock on the worldclock and set the time. After you set the time, click on the okay button                                            #
// #                Worldclock is running now                                                                                     #
// #                If you want to can also change the second, minutes, hours and so on in the setting def        #
// ###########################################################################​###############################################

// ToDo:
// Put the Light On and Offline in the World
// vendoren should go Off Duty
// Temperature
// I am cold Message
// Snow Mud and puddles
// Calendar
//
// PS:
// I have no time to do this ToDo Work. Maybe some one will do it and share it with the community

// ###########################################################################​################################################################################​###########################################################
// #
// #            Configure your Worldclock                                                                                    #
// #
// ###########################################################################​################################################################################​###########################################################

[DEFNAME worldsettings]
d_hair_beard_grow    1 // 0 is on, 1 is offline
d_weather_message    1 // 0 is on, 1 is offline

time_control_uid    040003f3f // Put your Worldclock ingame, do .info on it and write down here the uid of your worldclock

seconds_per_minute     12
minutes_per_hour     59
hours_per_day         24

days_per_month         30

months_per_year     12
season_per_year        4

[FUNCTION start_worldclocl// Function to start the Worldclocl 
IF (<uid.time_control_uid.timer> == -1)
    
serv.log Worldclock started
    uid
.time_control_uid.timer=1
ELSE
    
serv.log Worldclock already ticking!
ENDIF

[
DEFNAME def_mooncycle]
d_moon_new        8 // Timer periode should be 8 Days!!!
d_moon_half_wax        16
d_moon_full        24
d_moon_half_wane    32

[DEFNAME def_lightlevel]
light_dungeon 26

[DEFNAME seasonchange_messages]
// Jahreszeitwechsel
d_change_season_spring        Little and petite rises the first plants out of the groundto bless the world with their beautiful colorThe spring is starting.
d_change_season_summer        Ready to blossom out the nature appear at one's best. The heat of the summer say hello to everybody.
d_change_season_spring        The red yellow and brown leafs which are blowing in the wind from he trees, are showing a ballet by floating down.The autumn has reach the world.
d_change_season_winter        The winter anounce with grey sky and the cold pierce throught the houses. After all the children debriefing the first snow fall.

d_season_death            0
d_season_spring            1
d_season_summer            2
d_season_autumn            3
d_season_winter            4

[DEFNAME weatherchange_messages]
// spring
// weather at day
weather_spring_day_none        1
weather_spring_day_rain_storm    2
weather_spring_day_sun_rain    3
weather_spring_day_sun        4
weather_spring_day_storm    5
// weather at night
weather_spring_night_none    6
weather_spring_night_snow    7
weather_spring_night_rain    8
weather_spring_night_star    9
weather_spring_night_storm    10

// summer
// weather at day
weather_summer_day_none        11
weather_summer_day_rain_storm    12
weather_summer_day_sun_rain    13
weather_summer_day_sun        14
weather_summer_day_storm    15
// weather at night
weather_summer_night_none    16
weather_summer_night_rain_storm    17
weather_summer_night_rain    18
weather_summer_night_star    19
weather_summer_night_storm    20
// autumn
// weather at day
weather_autumn_day_none        21
weather_autumn_day_rain_storm    22
weather_autumn_day_sun_rain    23
weather_autumn_day_snow        24
weather_autumn_day_storm    25
// weather at night
weather_autumn_night_none    26
weather_autumn_night_cloudy    27
weather_autumn_night_rain    28
weather_autumn_night_storm    29
weather_autumn_night_cold    30
// winter
// weather at day
weather_winter_day_none        31
weather_winter_day_snow        32
weather_winter_day_snow_storm    33
weather_winter_day_sun        34
weather_winter_day_storm    35
// weather at night
weather_winter_night_none    36
weather_winter_night_cloudy    37
weather_winter_night_rain    38
weather_winter_night_snow    39
weather_winter_night_storm    40
            

// ###########################################################################​################################################################################​###########################################################
// #    
// # Systemmessage when the Weather Perdiode has changed. Dependend from the season. YOu have to translate it for yourself :)
// #
// ###########################################################################​################################################################################​###########################################################

[DEFNAME def_weathername]
// spring
// day
d_spring_day_none             Durch Wolken verhangen und kalt, regt dieser Tag zur Lustlosigkeit an.
d_spring_day_snow             Taenzelnd fliegen Schneeflocken herab und bedecken in duenner Schicht die Welt.
d_spring_day_sun_rain        Angenehmer Nieselregen und die klaren, waermenden Sonnenstrahlen fuehren zu einem grossen,in bunten Farben schillernden Regenbogen, der Freude erweckt.
d_spring_day_sun             Die Sonne lacht jeden an, der sie erblickt und ihre funkelnden Strahlen verheissen den naheliegenden Sommer.
d_spring_day_storm             Nass peitschend trIFft einen der Regen, angeregt durch einen heftigen Sturm, ins Gesicht.
// night
d_spring_night_none         Weder Sterne noch duestere Wolken sind zu erkennen und die Kaelte der Nacht geht einem durch Mark und Bein.
d_spring_night_snow         Durch den Mond funkelt die durch Schnee bedeckte Erde gleichsam den Sternen am Himmel.
d_spring_night_rain         Schneidend trIFft der Schneeregen naechtliche Passanten und erzeugt klatschende Geraeusche, sobald er gegen ein Gemaeuer prallt.
d_spring_night_star         In vollster Pracht funkeln die Sterne um die Wette und nicht eine Wolke verduestert ihren Auftritt.
d_spring_night_storm        Fensterlaeden klappern unbeherrscht,Baeume und Pflanzen neigen sich zur Seite und lose Aushaenge der Marktbretter fliegen durch die Strassen. Ein heftiger Wind zieht sich heulend durch das Land.

// summer
// day
d_summer_day_none             Ein angenehm warmer, nicht zu heisser Tag, der dazu anhaelt, das Leben zu geniessen.
d_summer_day_rain_storm         Kuehler Wind und warmer Regen bereichern das Land und bieten einen angenehmen Kontrast zu der Hitze.
d_summer_day_sun_rain         Der warme Regen und die einfallenden Sonnenstrahlen, die im Wasser gebrochen werden, lassen einen beeindruckenden Regenbogen am Himmel erscheinen.
d_summer_day_sun             Erdrueckend sengt sich die Sonne und deren Hitze auf die Koerper der Lebewesen ein und der Schweiss steht ihnen zu Gesichte.
d_summer_day_storm             Ein bestaendiges Rascheln der Baeume unterstreicht die Anwesenheit dieses Sommersturmes.
// night
d_summer_night_none         Die Luft ist feucht und heiss, kein abhelfender Wind in Sicht. Die Schwuele nimmt so manch einem den Atem.
d_summer_night_rain_storm     Erfrischend kuehler Wind treibt den lauwarmen Regen dazu an, sich ueber den ganzen Erdboden zu ergiessen.
d_summer_night_rain         Die ausgetrocknete Erde ersaeuft nun fast in den Wassermassen, die der Regen abgibt und das Ende scheint nicht absehbar zu sein.
d_summer_night_star         Die Nacht zeichnet sich durch ihre Waerme und durch die klaren Sterne ab, sodass Sternzeichen bewunderswert genau zu erkennen sind.
d_summer_night_storm         Einzeln leuchten die raschelnden Blaetter in der Nacht auf, unterstrichen vom leisen Geheule des Windes.
//autumn
//day
d_autumn_day_none            Das sich rot, gelb und braun faerbende Laub laesst die Baeume edler wirken und kein Wind mischt sich darunter ein.
d_autumn_day_rain_storm        Sich drehede Luftmassen wirbeln das am Boden liegende, nasse Laub auf und laesst es in Kreisen tanzen. Nebenbei prasselt weiterhin starker Regen herab.
d_autumn_day_sun_rain        Die dichten Regenwolken scheinen sie nie auflockern zu wollen, doch dringen ein paar Strahlen der Sonne hervor und erzielen unterhaltsame Lichteffekte.
d_autumn_day_snow            Leise und unauffaellig schwebt der Schnee zu Boden und verschwindet auch sogleich wieder, nur vereinzelt bleibt Schnee laenger liegen. Nass und matschig ist der Boden.
d_autumn_day_storm            Starker pfeIFender Wind laesst die Blaetter sich in die Luft erheben und in schneller Geschwindigkeit durch die Gassen fegen.
//night
d_autumn_night_none            Die Nacht besitzt eine ausklingende, beruhigende Waerme und vereinzelt erkennt man Sterne.
d_autumn_night_cloudy        Schleierwolken bedecken den Himmel und lassen die Nacht trist und unheimlich wirken.
d_autumn_night_rain            Plaetschernd trIFft der Regen auf den Boden auf, kleine Fluesse entlang den Strassen und es bilden sich Rinnsale an den Fenstern.
d_autumn_night_storm        Der Wind reisst alles mit sich, was nicht Niet- und Nagelfest ist. Huete fliegen durch die Strassen und ein nervendes PfeIFen draengt sich an die Ohren.
d_autumn_night_cold            Eisig herrscht die Nacht draussen und man sieht seinen Atem als leichten Nebel aufsteigen.

// winter
// day
d_winter_day_none            Die Pflanzen und die Farben scheinen spurlos verschwunden, nun herrscht graue Kaelte im Land und Nebel zieht sich durch die Gassen.
d_winter_day_snow            Ein nie endender Ansturm weisser, zarter Schneeflocken rieselt herab und der Schnee tuermt sich immer hoeher.
d_winter_day_snow_storm     Es hagelt herab und es wagt sich kaum einer hinaus. Die streIFenden Hagelkoerner wirken wie ein maeltrierenden AngrIFf auf einen selbst.
d_winter_day_sun            Wolken machen den Strahlen der Sonne Platz und sie bringen den Schnee am Boden zu einem verheissenden Funkeln.
d_winter_day_storm            Die kahlen, tot wirkenden Baeume schwingen im Sturm mit und schuetteln den Schnee auf ihrer Krone ab. Der Schnee fliegt einem entgegen und versperrt die Sicht.
// night
d_winter_night_none            Die Wolken scheinen sich zu verstecken und geben die Aussicht auf die strahlenden Sternbilder frei.
d_winter_night_cloudy        Unheilvoll bedecken dunkle Wolken den Himmel und lassen die Nacht noch duesterer und kaelter wirken als ohnehin schon.
d_winter_night_rain            Vereinzelte heftige Regenschauer troepfeln herunter und mahnen, zu Hause zu bleiben.
d_winter_night_snow            Weisse Wolken verdecken den Himmel und grosse Schneeflocken taenzeln hinunter auf die Erde, um den Schnee hoeher ansteigen zu lassen und zu verbreiten. Man sieht kaum seine Hand vor Augen.
d_winter_night_storm        Schnee wird aufgewuehlt und Dinge fliegen durch die Luft. Die ohnehin schon starke Kaelte wird durch den froestelnden Wind unterstuetzt, der sich in den Kleidern verfaengt.


[ITEMDEF i_worldclock]
ID=i_wanduhr_1 // Put an own ID here
TYPE=t_script

ON=@CREATE
attr=010

tag0.minute=0     // Minutes
tag0.stunde=0     // Hours
tag0.tag=0     // Days
tag0.monat=0     // Months
tag0.jahr=0    // Years

ON=@CLICK
src.zeit
RETURN 1

ON=@DCLICK
dialog d_weather
RETURN 1

ON=@TIMER
    tag0.minute    +=    1
    serv.allclients f_ontime

 IF (<dtag0.minute> > <ddef0.minutes_per_hour>)
    tag0.minute     =    0
    tag0.stunde     +=     1
    f_change_weather
    serv.allclients f_lichtwechsel
    serv.allclients f_luck_change
    serv.allclients f_change_food
    serv.allclients f_change_thirsty
  IF (<dtag0.stunde> > <ddef0.hours_per_day>)
        tag0.minute     =    0
        tag0.stunde     =    1
        tag0.tag         +=     1
        f_hair_grown
        f_change_moon_cycle
        f_headhunter_change_days
   IF (<dtag0.tag> > <ddef0.days_per_month>)
            tag0.minute     =    0
            tag0.stunde     =    1
            tag0.tag     =    1
            tag0.monat    +=    1
            f_change_season
            //    f_god_menace
    IF (<dtag0.monat> > <ddef0.months_per_year>)
                tag0.minute     =    0
                tag0.stunde     =    1
                tag0.tag     =    1
                tag0.monat     =    1
                tag0.jahr    +=    1
    ENDIF
   ENDIF
  ENDIF
 ENDIF
    f_change_light
    timer=<ddef0.seconds_per_minute>
RETURN 1


[dialog d_weather]
250, 125
src.dialogclose d_weather

page 0
resizepic 0 0 3600 500 400
resizepic 130 20 3000 250 22
dtext 145 20 50 Time and weather Script

dtext 30 60 026 Uhrzeit:
resizepic 30 90 3000 50 22
dtextentry 35 90 50 25 0 1 <dtag0.minute>
dtext 85 90 026 Minute

resizepic 30 120 3000 50 22
dtextentry 35 120 50 25 0 2 <dtag0.stunde>
dtext 85 120 026 Stunde

dtext 30 180 026 Datum:
resizepic 30 210 3000 50 22
dtextentry 35 210 50 25 0 3 <dtag0.tag>
dtext 85 210 026 Tag

resizepic 30 240 3000 50 22
dtextentry 35 240 50 25 0 4 <dtag0.monat>
dtext 85 240 026 Monat

resizepic 30 270 3000 50 22
dtextentry 35 270 50 25 0 5 <dtag0.jahr>
dtext 85 270 026 Jahr

dtext 330 60 026 Statistik:
resizepic 330 90 3000 50 22
dtext 335 90 026 <serv.items>
dtext 385 90 026 Items

resizepic 330 120 3000 50 22
dtext 335 120 026 <serv.chars>
dtext 385 120 026 NPCs

resizepic 330 150 3000 50 22
dtext 335 150 026 <serv.guilds>
dtext 385 150 026 Guilds

resizepic 330 180 3000 50 22
dtext 335 180 026 <serv.Clients>
dtext 385 180 026 Clients

resizepic 330 210 3000 50 22
dtext 335 210 026 <serv.mem>
dtext 385 210 026 Memory

resizepic 330 240 3000 50 22
dtext 335 240 026 <serv.age>
dtext 385 240 026 Serverage

dtext 200 60 026 Jahreszeit:
f_wetter_jahreszeit
resizepic 200 90 3000 100 22
dtext 220 90 50 <var.jahreszeit>

dtext 200 180 026 Moon Cycle:
resizepic 200 210 3000 50 22
dtextentry 215 210 50 25 0 6 <dtag0.mondzyklus>


IF (<src.account.plevel> > 5)
    button 30 360 248 247 1 0 1
ENDIF

[dialog d_weather BUTTON]

ON=0
src.smsg @<def.def_smsg_info>,3 Time has not change from you
var.jahreszeit=

ON=1
IF (<argtxt[1]> > 0) && (<argtxt[1]> < <eval <ddef0.minutes_per_hour>+1>)
    tag0.minute=<eval <argtxt[1]>>
ELSE
    src.smsg @<def.def_smsg_sys>,3 The minute muss be inside 1 and <ddef0.minutes_per_hour> .
    dialog d_weather
    RETURN 1
ENDIF

IF (<argtxt[2]> > 0) && (<argtxt[2]> < <eval <ddef0.hours_per_day>+1>)
    tag0.stunde=<eval <argtxt[2]>>
ELSE
    src.smsg @<def.def_smsg_sys>,3 The hours must be inside 1 and <ddef0.hours_per_day>.
    dialog d_weather
    RETURN 1
ENDIF

IF (<argtxt[3]> > 0) && (<argtxt[3]> < <eval <ddef0.days_per_month>+1>)
    tag0.tag=<eval <argtxt[3]>>
ELSE
    src.smsg @<def.def_smsg_sys>,3 The days must be inside 1 and <ddef0.days_per_month>.
    dialog d_weather
    RETURN 1
ENDIF

IF (<argtxt[4]> > 0) && (<argtxt[4]> < <eval <ddef0.months_per_year>+1>)
    tag0.monat=<eval <argtxt[4]>>
    
    IF (<dtag0.monat> >= 2) && (<dtag0.monat> < 5)
        tag0.season=<def.d_season_spring>
    ELIF (<dtag0.monat> >= 5) && (<dtag0.monat> < 8)
        tag0.season=<def.d_season_summer>
    ELIF (<dtag0.monat> >= 8) && (<dtag0.monat> < 11)
        tag0.season=<def.d_season_autumn>
    ELIF (<dtag0.monat> == 11) || (<dtag0.monat> == 12) || (<dtag0.monat> == 1)
        tag0.season=<def.d_season_winter>
    ENDIF
    
ELSE
    src.smsg @<def.def_smsg_sys>,3 The months must be inside 1 and <ddef0.months_per_year>.
    dialog d_weather
    RETURN 1
ENDIF

IF (<argtxt[5]> > 0)
    tag0.jahr=<eval <argtxt[5]>>
ELSE
    src.smsg @<def.def_smsg_sys>,3 No negative years please!
    dialog d_weather
    RETURN 1
ENDIF

IF (<eval <argtxt[6]>> > 0) && (<eval <argtxt[6]>> < 33)
    tag0.mondzyklus=<eval <argtxt[6]>>
ELSE
    src.smsg @<def.def_smsg_sys>,3 The moon cycles must be inside 1 and 32!
    src.smsg @<def.def_smsg_sys>,3 4 cycles diveded in 8 unity.
    dialog d_weather
    RETURN 1
ENDIF
tag0.temperature_normal=<eval <argtxt[7]>>
tag0.temperature_iceland=<eval <argtxt[8]>>
tag0.temperature_desert=<eval <argtxt[9]>>

src.smsg @<def.def_smsg_good>,3 You started the worldclocl!
serv.allclients smsg @<def.def_smsg_info>,3 Worldclock started.
serv.allclients smsg @<def.def_smsg_info>,3 TICK TACK TICK TACK
serv.allclients smsg @<def.def_smsg_info>,3 At this moment you gonna be aged and someday you will die at heart failure.
uid.time_control_uid.timer=<ddef0.seconds_per_minute>
var.jahreszeit=

[FUNCTION f_wetter_jahreszeit]
IF (<dtag0.season> == 0)
    var.jahreszeit=Death Time
ELIF (<dtag0.season> == 1)
    var.jahreszeit=Spring
ELIF (<dtag0.season> == 2)
    var.jahreszeit=Summer
ELIF (<dtag0.season> == 3)
    var.jahreszeit=Autumn
ELIF (<dtag0.season> == 4)
    var.jahreszeit=Winter
ENDIF


// ###########################################################################​################################################################################​###########################################################
// #            Ingame Function .time                                                                                        #
// #            It show the players the Holidays, Season. Moon Circle, Day, Month,Year and what time it is                                                                        #                                                                                        #
// ###########################################################################​################################################################################​###########################################################


[FUNCTION time]
local.stunde=<uid.time_control_uid.dtag0.stunde>
local.minute=<uid.time_control_uid.dtag0.minute>
local.tag=<uid.time_control_uid.dtag0.tag>
local.monat=<uid.time_control_uid.dtag0.monat>
local.jahr=<uid.time_control_uid.dtag0.jahr>
local.jahreszeit=<uid.time_control_uid.dtag0.season>
local.mondzyklus=<uid.time_control_uid.dtag0.mondzyklus>

IF (<dlocal.stunde> < 10) && (<dlocal.minute> < 10)
    smsg @<def.def_smsg_info>,3 It is 0<dlocal.stunde>:0<dlocal.minute> o´clock.
ELIF (<dlocal.stunde> < 10)
    smsg @<def.def_smsg_info>,3 It is 0<dlocal.stunde>:<dlocal.minute> o´clock.
ELIF (<dlocal.minute> < 10)
    smsg @<def.def_smsg_info>,3 It is <dlocal.stunde>:0<dlocal.minute> o´clock.
ELSE
    smsg @<def.def_smsg_info>,3 It is <dlocal.stunde>:<dlocal.minute> o´clock.
ENDIF

// Holidays

IF (<dlocal.monat> == 1)
    IF (<dlocal.tag> == 1)
        local.feiertag="Cry foe Hope"
    ENDIF
ENDIF

IF (<dlocal.monat> == 3)
    IF (<dlocal.tag> == 6)
        local.feiertag="Day of the official church foundation"
    ENDIF
ENDIF

IF (<dlocal.monat> == 4)
    IF (<dlocal.tag> == 2)
        local.feiertag="Holiday for the fertility"
    ENDIF
ENDIF

IF (<dlocal.monat> == 5)
    IF (<dlocal.tag> == 1)
        local.feiertag="Farmers Holiday"
    ENDIF
ENDIF

IF (<dlocal.monat> == 7)
    IF (<dlocal.tag> == 13)
        local.feiertag="commemoration day for the great war"
    ENDIF
ENDIF

IF (<dlocal.monat> == 8)
    IF (<dlocal.tag> == 21)
        local.feiertag="Day of the water"
    ENDIF
ENDIF

IF (<dlocal.monat> == 10)
    IF (<dlocal.tag> == 3)
        local.feiertag="Day of the Kings age"
    ENDIF
ENDIF

IF (<dlocal.monat> == 12)
    IF (<dlocal.tag> == 24)
        local.feiertag="1.consecration day"
    ELIF (<dlocal.tag> == 25)
        local.feiertag="2.consecration day"
    ELIF (<dlocal.tag> == 26)
        local.feiertag="3.consecration day"
    ELIF (<dlocal.tag> == 31)
        local.feiertag="consecration night"
    ENDIF
ENDIF

// Month

doswitch <dlocal.monat>
    local.blankline=
    local.monat ="Hartung"
    local.monat ="Hornung"
    local.monat ="Lenzing"
    local.monat ="Gruenmonat"
    local.monat ="Wonnemond"
    local.monat ="Brachet"
    local.monat ="Heuert"
    local.monat ="Ernting"
    local.monat ="Scheiding"
    local.monat ="Gilbhard"
    local.monat ="Lofrote"
    local.monat ="Dezembris"
enddo


IF (<local.feiertag>)
    smsg @<def.def_smsg_info>,3 It is the year <dlocal.jahr> on the <dlocal.tag>. day in the month of <local.monat> with the holiday <local.feiertag>.
ELSE
    smsg @<def.def_smsg_info>,3 It is the year <dlocal.jahr> on the <dlocal.tag>. day in the month of <local.monat>.
ENDIF

doswitch <dlocal.jahreszeit>
    local.jahreszeit=
    local.jahreszeit=Spring
    local.jahreszeit=Summer
    local.jahreszeit=Autumn
    local.jahreszeit=Winter
enddo

IF (<dlocal.mondzyklus> <= <def.d_moon_new>)
    local.zyklus="It is new moon."
ELIF (<dlocal.mondzyklus> <= <def.d_moon_half_wax>)
    local.zyklus="The moon is increasing."
ELIF (<dlocal.mondzyklus> <= <def.d_moon_full>)
    local.zyklus="It is full moon."
ELIF (<dlocal.mondzyklus> <= <def.d_moon_half_wane>)
    local.zyklus="The moon is waning."
ENDIF
smsg @<def.def_smsg_info>,3 It is <local.jahreszeit> and <local.zyklus>

[FUNCTION f_lichtwechsel]
IF (<isgm>)
    light = 0
ELIF !(<flags>&statf_nightsight)
   IF (<p.x> >= 4096)
        light 14
        resend
    ELSE
        light <uid.time_control_uid.dtag0.lichtlevel>
        region.sectors season <uid.time_control_uid.dtag0.jahreszeit>
        resend
    ENDIF
ENDIF

// ###########################################################################​################################################################################​###########################################################
// #            Light Level                                                                                            #
// ###########################################################################​################################################################################​###########################################################

[FUNCTION f_change_light]
IF (<uid.time_control_uid.dtag0.monat> >= 2) && (<uid.time_control_uid.dtag0.monat> < 5) // spring
    doswitch <dtag0.stunde> // 24 Hours
        tag0.lichtlevel = 19
        tag0.lichtlevel = 18
        tag0.lichtlevel = 16
        tag0.lichtlevel = 14
        tag0.lichtlevel = 12
        tag0.lichtlevel = 10
        tag0.lichtlevel = 9
        tag0.lichtlevel = 8
        tag0.lichtlevel = 7
        tag0.lichtlevel = 6
        tag0.lichtlevel = 4
        tag0.lichtlevel = 3
        tag0.lichtlevel = 2 // 12 o´clock
        tag0.lichtlevel = 3
        tag0.lichtlevel = 4
        tag0.lichtlevel = 6
        tag0.lichtlevel = 7
        tag0.lichtlevel = 8
        tag0.lichtlevel = 9
        tag0.lichtlevel = 10
        tag0.lichtlevel = 12
        tag0.lichtlevel = 14
        tag0.lichtlevel = 16
        tag0.lichtlevel = 18
        tag0.lichtlevel = 19 // 24 o´clock
    enddo
ELIF (<uid.time_control_uid.dtag0.monat> >= 5) && (<uid.time_control_uid.dtag0.monat> < 8) // summer
    doswitch <dtag0.stunde> // 24 Hours
        tag0.lichtlevel = 17
        tag0.lichtlevel = 15
        tag0.lichtlevel = 13
        tag0.lichtlevel = 12
        tag0.lichtlevel = 11
        tag0.lichtlevel = 10
        tag0.lichtlevel = 9
        tag0.lichtlevel = 8
        tag0.lichtlevel = 7
        tag0.lichtlevel = 6
        tag0.lichtlevel = 4
        tag0.lichtlevel = 3
        tag0.lichtlevel = 2 // 12 o´clock
        tag0.lichtlevel = 3
        tag0.lichtlevel = 4
        tag0.lichtlevel = 6
        tag0.lichtlevel = 7
        tag0.lichtlevel = 8
        tag0.lichtlevel = 9
        tag0.lichtlevel = 10
        tag0.lichtlevel = 11
        tag0.lichtlevel = 12
        tag0.lichtlevel = 13
        tag0.lichtlevel = 15
        tag0.lichtlevel = 17 // 24 o´clock
    enddo
ELIF (<uid.time_control_uid.dtag0.monat> >= 8) && (<uid.time_control_uid.dtag0.monat> < 11) // autumn
    doswitch <dtag0.stunde> // 24 Hours
        tag0.lichtlevel = 19
        tag0.lichtlevel = 18
        tag0.lichtlevel = 16
        tag0.lichtlevel = 14
        tag0.lichtlevel = 12
        tag0.lichtlevel = 10
        tag0.lichtlevel = 9
        tag0.lichtlevel = 8
        tag0.lichtlevel = 7
        tag0.lichtlevel = 6
        tag0.lichtlevel = 4
        tag0.lichtlevel = 3
        tag0.lichtlevel = 2 // 12 o´clock
        tag0.lichtlevel = 3
        tag0.lichtlevel = 4
        tag0.lichtlevel = 6
        tag0.lichtlevel = 7
        tag0.lichtlevel = 8
        tag0.lichtlevel = 9
        tag0.lichtlevel = 10
        tag0.lichtlevel = 12
        tag0.lichtlevel = 14
        tag0.lichtlevel = 16
        tag0.lichtlevel = 18
        tag0.lichtlevel = 19 // 24 o´clock
    enddo
ELSE // winter
    doswitch <dtag0.stunde> // 24 Hours
        tag0.lichtlevel = 20
        tag0.lichtlevel = 19
        tag0.lichtlevel = 17
        tag0.lichtlevel = 16
        tag0.lichtlevel = 14
        tag0.lichtlevel = 12
        tag0.lichtlevel = 10
        tag0.lichtlevel = 9
        tag0.lichtlevel = 8
        tag0.lichtlevel = 6
        tag0.lichtlevel = 4
        tag0.lichtlevel = 3
        tag0.lichtlevel = 2 // 12 o´clock
        tag0.lichtlevel = 3
        tag0.lichtlevel = 4
        tag0.lichtlevel = 6
        tag0.lichtlevel = 8
        tag0.lichtlevel = 9
        tag0.lichtlevel = 10
        tag0.lichtlevel = 12
        tag0.lichtlevel = 14
        tag0.lichtlevel = 16
        tag0.lichtlevel = 17
        tag0.lichtlevel = 19
        tag0.lichtlevel = 20 // 24 o´clock
    enddo
ENDIF


// ###########################################################################​################################################################################​###########################################################
// #            Function for the Worldclock. It added +1 every Minute so you know how old is the character. You can also use it for other systems. I used it for my vampir script.                #    
// #            The older the vampire is more feature he can do                                                                            #                                                                                        #
// ###########################################################################​################################################################################​###########################################################


[FUNCTION f_ontime] // every minute
    tag0.ontime += 1

IF (<p.x> < 5100) && (<light> != <uid.time_control_uid.dtag0.lichtlevel>) && !(<flags>&statf_nightsight)
    light <uid.time_control_uid.dtag0.lichtlevel>
    resend
ENDIF

// ###########################################################################​################################################################################​###########################################################
// #            You have to tag your beard and hair                                                                                #
// #            Example                                                                                                #
// #                                                                                                             #    
// #        [ITEMDEF i_beard_NONE]                                                                                            #
// #        ID=I_EQ_MARKER                                                                                                #
// #        NAME=No Beard                                                                                                #
// #        TYPE=T_BEARD                                                                                                #
// #        LAYER=layer_beard                                                                                            #
// #        VALUE=10                                                                                                #
// #                                                                                                            #
// #        ON=@Create                                                                                                #
// #            ATTR=attr_newbie                                                                                        #
// #            tag0.next_beard=i_beard_mustache                                                                                #
// #                                                                                                            #
// #                                                                                                            #
// #        
// #        [ITEMDEF 0203b]
// #        DEFNAME=i_hair_short
// #        NAME=short hair
// #        TYPE=T_HAIR
// #        VALUE={8 12}
// #        CATEGORY=Items by Professions
// #        SUBSECTION=Barber
// #        DESCRIPTION=Short Hair
// #        
// #        ON=@Create
// #            ATTR=attr_newbie
// #            tag0.next_hair=i_hair_BUNS
// #        
// ###########################################################################​################################################################################​###########################################################


[FUNCTION f_hair_grown]
serv.allclients f_hair_grown_2


[FUNCTION f_hair_grown_2]
local.hairgrown_active = <def.d_hair_beard_grow>
tag0.haircrow += 1

IF (<dlocal.hairgrown_active> == 1)
    IF !(<isgm>) && (<isplayer>)
        IF (<dtag0.haircrow> > 30)
            serv.newitem=<findlayer(layer_hair).tag0.next_hair>
            new.color=<findlayer(layer_hair).color>
            new.cont=<uid>
            IF (<findlayer(layer_beard)>)
                serv.newitem=<findlayer(layer_beard).tag0.next_beard>
                new.color=<findlayer(layer_beard).color>
                new.cont=<uid>
            ENDIF
            
            tag0.haircrow=
        ENDIF
    ENDIF
ENDIF


// ###########################################################################​################################################################################​###########################################################
// #                Moon Cyrcle System                                                                                    #
// ###########################################################################​################################################################################​###########################################################


[FUNCTION f_change_moon_cycle]

IF (<dtag0.mondzyklus> <= <eval <def.d_moon_new>> )  // new moon
    tag0.mondzyklus += 1
ELIF (<dtag0.mondzyklus> <= <eval <def.d_moon_half_wax>> )  // raising moon
    tag0.mondzyklus += 1
ELIF (<dtag0.mondzyklus> <= <eval <def.d_moon_full>> )  // fullmoon
    tag0.mondzyklus += 1
ELIF (<dtag0.mondzyklus> == <eval <def.d_moon_half_wane>>) // cycle end, jump to new moon
    tag0.mondzyklus = 1
ELIF (<dtag0.mondzyklus> <= <eval <def.d_moon_half_wane>> ) // wane moon
    tag0.mondzyklus += 1
ENDIF
f_change_moon_message

[FUNCTION f_change_moon_message]
IF (<dtag0.mondzyklus> == 1)
    serv.allclients smsg @<def.def_smsg_info>,3 It is new moon
ELIF (<dtag0.mondzyklus> == 9)
    serv.allclients smsg @<def.def_smsg_info>,3 The moon cycles is in the first quarter
ELIF (<dtag0.mondzyklus> == 17)
    serv.allclients smsg @<def.def_smsg_info>,3It is full moon
ELIF (<dtag0.mondzyklus> == 33)
    serv.allclients smsg @<def.def_smsg_info>,3 The moon cycles is in the last quarter
ENDIF

[FUNCTION f_change_season]
IF (<dtag0.monat> >= 2) && (<dtag0.monat> < 5)
    tag0.jahreszeit = 1 // spring
    serv.allclients smsg @<def.def_smsg_info>,3 <def.d_change_season_spring>
    tag0.season=<def.d_season_spring>
ELIF (<dtag0.monat> >= 5) && (<dtag0.monat> < 8)
    tag0.jahreszeit = 2 // summer
    serv.allclients smsg @<def.def_smsg_info>,3 <def.d_change_season_summer>
    tag0.season=<def.d_season_summer>
ELIF (<dtag0.monat> >= 8) && (<dtag0.monat> < 11)
    tag0.jahreszeit = 3 // autumn
    serv.allclients smsg @<def.def_smsg_info>,3 <def.d_change_season_spring>
    tag0.season=<def.d_season_autumn>
ELIF (<dtag0.monat> == 11) || (<dtag0.monat> == 12) || (<dtag0.monat> == 1)
    tag0.jahreszeit = 4 // winter
    serv.allclients smsg @<def.def_smsg_info>,3 <def.d_change_season_winter>
    tag0.season=<def.d_season_winter>
ENDIF

[FUNCTION f_change_weather]
local.weather_message=<def.d_weather_message>
IF (<dlocal.weather_message> == 1)
    IF (<dtag0.weather>== 1)
        local.weather=<eval {0 4}>
        IF (<uid.time_control_uid.dtag0.monat> >= 3) && (<uid.time_control_uid.dtag0.monat> <= 5)
            call f_change_weather_spring
        ELIF (<uid.time_control_uid.dtag0.monat> >= 6) && (<uid.time_control_uid.dtag0.monat> <= 8)
            call f_change_weather_summer
        ELIF (<uid.time_control_uid.dtag0.monat> >= 9) && (<uid.time_control_uid.dtag0.monat> <= 11)
            call f_change_weather_autumn
        ELIF (<uid.time_control_uid.dtag0.monat> >= 12) && (<uid.time_control_uid.dtag0.monat> <= 2)
            call f_change_weather_winter
        ENDIF
    ENDIF
ENDIF

// ###########################################################################​###########################################
// #                                                            #
// #                        Weather in Spring                            #
// #                                                            #
// ###########################################################################​###########################################

[FUNCTION f_change_weather_spring]
IF (<uid.time_control_uid.dtag0.stunde> == 8) || (<uid.time_control_uid.dtag0.stunde> == 11) || (<uid.time_control_uid.dtag0.stunde> == 14) || (<uid.time_control_uid.dtag0.stunde> == 18)
    doswitch <dlocal.weather>
        f_spring_day_none
        f_spring_day_snow
        f_spring_day_sun_rain
        f_spring_day_sun
        f_spring_day_storm
    enddo
ELIF (<uid.time_control_uid.dtag0.stunde> == 21) || (<uid.time_control_uid.dtag0.stunde> == 24) || (<uid.time_control_uid.dtag0.stunde> == 3) || (<uid.time_control_uid.dtag0.stunde> == 7)
    doswitch <dlocal.weather>
        f_spring_night_none
        f_spring_night_snow
        f_spring_night_rain
        f_spring_night_star
        f_spring_night_storm
    enddo
ENDIF

IF (<uid.time_control_uid.dtag0.stunde> == 8)
    serv.allclients smsg @<def.def_smsg_info>,3 A new day is rise up.
ENDIF
IF (<eval <uid.time_control_uid.tag0.stunde>> == 19)
    serv.allclients smsg @<def.def_smsg_info>,3 The dark night is coming.
ENDIF

[FUNCTION f_spring_day_none]
serv.allclients smsg @<def.def_smsg_info>,3 <def.d_spring_day_none>
tag0.wetter = dry
uid.time_control_uid.tag0.weather=<def.weather_spring_day_none>

[FUNCTION f_spring_day_snow]
serv.allclients smsg @<def.def_smsg_info>,3 <def.d_spring_day_snow>
tag0.wetter = snow
uid.time_control_uid.tag0.weather=<def.weather_spring_day_snow>

[FUNCTION f_spring_day_sun_rain]
serv.allclients smsg @<def.def_smsg_info>,3 <def.d_spring_day_sun_rain>
tag0.wetter = rain
uid.time_control_uid.tag0.weather=<def.weather_spring_day_sun_rain>

[FUNCTION f_spring_day_sun]
serv.allclients smsg @<def.def_smsg_info>,3 <def.d_spring_day_sun>
tag0.wetter = dry
uid.time_control_uid.tag0.weather=<def.weather_spring_day_sun>

[FUNCTION f_spring_day_storm]
serv.allclients smsg @<def.def_smsg_info>,3 <def.d_spring_day_storm>
Dorand 2
    serv.allclients sound 015
    serv.allclients sound 016
EndDo
local.thunderstrike=<eval {0 1}>

doswitch <dlocal.thunderstrike>
    local.blankline
    serv.allclients f_weatherthunderstrike
enddo
tag0.wetter = dry
uid.time_control_uid.tag0.weather=<def.weather_spring_day_storm>

[FUNCTION f_spring_night_none]
serv.allclients smsg @<def.def_smsg_info>,3 <def.d_spring_night_none>
tag0.wetter = dry
uid.time_control_uid.tag0.weather=<def.weather_spring_night_none>

[FUNCTION f_spring_night_snow]
serv.allclients smsg @<def.def_smsg_info>,3 <def.d_spring_night_snow>
tag0.wetter = snow
uid.time_control_uid.tag0.weather=<def.weather_spring_night_snow>

[FUNCTION f_spring_night_rain]
serv.allclients smsg @<def.def_smsg_info>,3 <def.d_spring_night_rain>
tag0.wetter = rain
uid.time_control_uid.tag0.weather=<def.weather_spring_night_rain>

[FUNCTION f_spring_night_star]
serv.allclients smsg @<def.def_smsg_info>,3 <def.d_spring_night_star>
tag0.wetter = dry
uid.time_control_uid.tag0.weather=<def.weather_spring_night_star>

[FUNCTION f_spring_night_storm]
serv.allclients smsg @<def.def_smsg_info>,3 <def.d_spring_night_storm>
Dorand 2
    serv.allclients sound 015
    serv.allclients sound 016
EndDo
local.thunderstrike=<eval {0 1}>

doswitch <dlocal.thunderstrike>
    local.blankline
    serv.allclients f_weatherthunderstrike
enddo
tag0.wetter = dry
uid.time_control_uid.tag0.weather=<def.weather_spring_night_storm>

// ###########################################################################​###########################################
// #                                                            #
// #                        Weather in the summer                            #
// #                                                            #
// ###########################################################################​###########################################

[FUNCTION f_change_weather_summer]
IF (<uid.time_control_uid.dtag0.stunde> == 5) || (<uid.time_control_uid.dtag0.stunde> == 8) || (<uid.time_control_uid.dtag0.stunde> == 11) || (<uid.time_control_uid.dtag0.stunde> == 14) || (<uid.time_control_uid.dtag0.stunde> == 17) || (<uid.time_control_uid.dtag0.stunde> == 21)
    doswitch <dlocal.weather>
        f_summer_day_none
        f_summer_day_rain_storm
        f_summer_day_sun_rain
        f_summer_day_sun
        f_summer_day_storm
    enddo
ELIF (<uid.time_control_uid.dtag0.stunde> == 24) || (<uid.time_control_uid.dtag0.stunde> == 3)
    doswitch <dlocal.weather>
        f_summer_night_none
        f_summer_night_rain_storm
        f_summer_night_rain
        f_summer_night_star
        f_summer_night_storm
    enddo
ENDIF

IF (<uid.time_control_uid.dtag0.stunde> == 5)
    serv.allclients smsg @<def.def_smsg_info>,3 A new day is rise up.
ENDIF
IF (<uid.time_control_uid.dtag0.stunde> == 22)
    serv.allclients smsg @<def.def_smsg_info>,3 The dark night is coming.
ENDIF

[FUNCTION f_summer_day_none]
serv.allclients smsg @<def.def_smsg_info>,3 <def.d_summer_day_none>
tag0.wetter = dry
uid.time_control_uid.tag0.weather=<def.weather_summer_day_none>

[FUNCTION f_summer_day_rain_storm]
serv.allclients smsg @<def.def_smsg_info>,3 <def.d_summer_day_rain_storm>
Dorand 2
    serv.allclients sound 015
    serv.allclients sound 016
EndDo
local.thunderstrike=<eval {0 1}>

doswitch <dlocal.thunderstrike>
    local.blankline
    serv.allclients f_weatherthunderstrike
enddo
tag0.wetter = dry
uid.time_control_uid.tag0.weather=<def.weather_summer_day_rain_storm>

[FUNCTION f_summer_day_sun_rain]
serv.allclients smsg @<def.def_smsg_info>,3 <def.d_summer_day_sun_rain>
tag0.wetter = rain
uid.time_control_uid.tag0.weather=<def.weather_summer_day_sun_rain>

[FUNCTION f_summer_day_sun]
serv.allclients smsg @<def.def_smsg_info>,3 <def.d_summer_day_sun>
tag0.wetter = dry
uid.time_control_uid.tag0.weather=<def.weather_summer_day_sun>

[FUNCTION f_summer_day_storm]
serv.allclients smsg @<def.def_smsg_info>,3 <def.d_summer_day_storm>
Dorand 2
    serv.allclients sound 015
    serv.allclients sound 016
EndDo
local.thunderstrike=<eval {0 1}>

doswitch <dlocal.thunderstrike>
    local.blankline
    serv.allclients f_weatherthunderstrike
enddo
tag0.wetter = dry
uid.time_control_uid.tag0.weather=<def.weather_summer_day_storm>

[FUNCTION f_summer_night_none]
serv.allclients smsg @<def.def_smsg_info>,3 <def.d_summer_night_none>
tag0.wetter = dry
uid.time_control_uid.tag0.weather=<def.weather_summer_night_none>

[FUNCTION f_summer_night_rain_storm]
serv.allclients smsg @<def0.def_smsg_norm>,3 <def.d_summer_night_rain_storm>
Dorand 2
    serv.allclients sound 015
    serv.allclients sound 016
EndDo
local.thunderstrike=<eval {0 1}>

doswitch <dlocal.thunderstrike>
    local.blankline
    serv.allclients f_weatherthunderstrike
enddo
tag0.wetter = rain
uid.time_control_uid.tag0.weather=<def.weather_summer_night_rain_storm>

[FUNCTION f_summer_night_rain]
serv.allclients smsg @<def.def_smsg_info>,3 <def.d_summer_night_rain>
tag0.wetter = rain
uid.time_control_uid.tag0.weather=<def.weather_summer_night_rain>

[FUNCTION f_summer_night_star]
serv.allclients smsg @<def.def_smsg_info>,3 <def.d_summer_night_star>
tag0.wetter = dry
uid.time_control_uid.tag0.weather=<def.weather_summer_night_star>

[FUNCTION f_summer_night_storm]
serv.allclients smsg @<def.def_smsg_info>,3 <def.d_summer_night_storm>
Dorand 2
    serv.allclients sound 015
    serv.allclients sound 016
EndDo
local.thunderstrike=<eval {0 1}>

doswitch <dlocal.thunderstrike>
    local.blankline
    serv.allclients f_weatherthunderstrike
enddo
tag0.wetter = dry
uid.time_control_uid.tag0.weather=<def.weather_summer_night_storm>

// ###########################################################################​###########################################
// #                                                            #
// #                        Weather in Autumn                            #
// #                                                            #
// ###########################################################################​###########################################

[FUNCTION f_change_weather_autumn]
IF (<uid.time_control_uid.dtag0.stunde> == 8) || (<uid.time_control_uid.dtag0.stunde> == 11)|| (<uid.time_control_uid.dtag0.stunde> == 14)|| (<uid.time_control_uid.dtag0.stunde> == 17) || (<uid.time_control_uid.dtag0.stunde> == 19)
    doswitch <dlocal.weather>
        f_autumn_day_none
        f_autumn_day_rain_storm
        f_autumn_day_sun_rain
        f_autumn_day_snow
        f_autumn_day_storm
    enddo
ELIF (<uid.time_control_uid.dtag0.stunde> == 22) || (<uid.time_control_uid.dtag0.stunde> == 1) || (<uid.time_control_uid.dtag0.stunde> == 4)
    doswitch <dlocal.weather>
        f_autumn_night_none
        f_autumn_night_cloudy
        f_autumn_night_rain
        f_autumn_night_storm
        f_autumn_night_cold
    enddo
ENDIF

IF (<uid.time_control_uid.dtag0.stunde> == 8)
    serv.allclients smsg @<def.def_smsg_info>,3 A new day is rise up.
ENDIF
IF (<uid.time_control_uid.dtag0.stunde> == 19)
    serv.allclients smsg @<def.def_smsg_info>,3 The dark night is coming.
ENDIF

[FUNCTION f_autumn_day_none]
serv.allclients smsg @<def.def_smsg_info>,3 <def.d_autumn_day_none>
tag0.wetter = dry
uid.time_control_uid.tag0.weather=<def.weather_autumn_day_none>

[FUNCTION f_autumn_day_rain_storm]
serv.allclients smsg @<def.def_smsg_info>,3 <def.d_autumn_day_rain_storm>
Dorand 2
    serv.allclients sound 015
    serv.allclients sound 016
EndDo
local.thunderstrike=<eval {0 1}>

doswitch <dlocal.thunderstrike>
    local.blankline
    serv.allclients f_weatherthunderstrike
enddo
tag0.wetter = dry
uid.time_control_uid.tag0.weather=<def.weather_autumn_day_rain_storm>

[FUNCTION f_autumn_day_sun_rain]
serv.allclients smsg @<def.def_smsg_info>,3 <def.d_autumn_day_sun_rain>
tag0.wetter = rain
uid.time_control_uid.tag0.weather=<def.weather_autumn_day_sun_rain>

[FUNCTION f_autumn_day_snow]
serv.allclients smsg @<def.def_smsg_info>,3 <def.d_autumn_day_snow>
tag0.wetter = snow
uid.time_control_uid.tag0.weather=<def.weather_autumn_day_snow>

[FUNCTION f_autumn_day_storm]
serv.allclients smsg @<def.def_smsg_info>,3 <def.d_autumn_day_storm>
Dorand 2
    serv.allclients sound 015
    serv.allclients sound 016
EndDo
local.thunderstrike=<eval {0 1}>

doswitch <dlocal.thunderstrike>
    local.blankline
    serv.allclients f_weatherthunderstrike
enddo
tag0.wetter = dry
uid.time_control_uid.tag0.weather=<def.weather_autumn_day_storm>

[FUNCTION f_autumn_night_none]
serv.allclients smsg @<def.def_smsg_info>,3 <def.d_autumn_night_none>
tag0.wetter = dry
uid.time_control_uid.tag0.weather=<def.weather_autumn_night_none>

[FUNCTION f_autumn_night_cloudy]
serv.allclients smsg @<def.def_smsg_info>,3 <def.d_autumn_night_cloudy>
tag0.wetter = dry
uid.time_control_uid.tag0.weather=<def.weather_autumn_night_cloudy>

[FUNCTION f_autumn_night_rain]
serv.allclients smsg @<def.def_smsg_info>,3 <def.d_autumn_night_rain>
tag0.wetter = rain
uid.time_control_uid.tag0.weather=<def.weather_autumn_night_rain>

[FUNCTION f_autumn_night_storm]
serv.allclients smsg @<def.def_smsg_info>,3 <def.d_autumn_night_storm>
Dorand 2
    serv.allclients sound 015
    serv.allclients sound 016
EndDo
local.thunderstrike=<eval {0 1}>

doswitch <dlocal.thunderstrike>
    local.blankline
    serv.allclients f_weatherthunderstrike
enddo
tag0.wetter = dry
uid.time_control_uid.tag0.weather=<def.weather_autumn_night_storm>

[FUNCTION f_autumn_night_cold]
serv.allclients smsg @<def.def_smsg_info>,3 <def.d_autumn_night_cold>
uid.time_control_uid.tag0.weather=<def.weather_autumn_night_cold>

// ###########################################################################​###########################################
// #                                                            #
// #                        Weather in winter                            #
// #                                                            #
// ###########################################################################​###########################################

[FUNCTION f_change_weather_winter]

IF (<uid.time_control_uid.dtag0.stunde> == 9) || (<uid.time_control_uid.dtag0.stunde> == 12) || (<uid.time_control_uid.dtag0.stunde> == 15) || (<uid.time_control_uid.dtag0.stunde> == 17)
    doswitch <dlocal.weather>
        f_winter_day_none
        f_winter_day_snow
        f_winter_day_snow_storm
        f_winter_day_sun
        f_winter_day_storm
    enddo
ELIF (<uid.time_control_uid.dtag0.stunde> == 20) || (<uid.time_control_uid.dtag0.stunde> == 23) ||(<uid.time_control_uid.dtag0.stunde> == 2) || (<uid.time_control_uid.dtag0.stunde> == 5)
    doswitch <dlocal.weather>
        f_winter_night_none
        f_change_winter_night_cloudy
        f_change_winter_night_rain
        f_change_winter_night_snow
        f_change_winter_night_storm
    enddo
ENDIF

IF (<uid.time_control_uid.dtag0.stunde> == 9)
    serv.allclients smsg @<def.def_smsg_info>,3 A new day is rise up.
ENDIF
IF (<uid.time_control_uid.dtag0.stunde> == 17)
    serv.allclients smsg @<def.def_smsg_info>,3 The dark night is coming.
ENDIF

[FUNCTION f_winter_day_none]
serv.allclients smsg @<def.def_smsg_info>,3 <def.d_winter_day_none>
tag0.wetter = dry
uid.time_control_uid.tag0.weather=<def.weather_winter_day_none>

[FUNCTION f_winter_day_snow]
serv.allclients smsg @<def.def_smsg_info>,3 <def.d_winter_day_snow>
tag0.wetter = snow
uid.time_control_uid.tag0.weather=<def.weather_winter_day_snow>

[FUNCTION f_winter_day_snow_storm]
serv.allclients smsg @<def.def_smsg_info>,3 <def.d_winter_day_snow_storm>
Dorand 2
    serv.allclients sound 015
    serv.allclients sound 016
EndDo
local.thunderstrike=<eval {0 1}>

doswitch <dlocal.thunderstrike>
    local.blankline
    serv.allclients f_weatherthunderstrike
enddo
tag0.wetter = dry
uid.time_control_uid.tag0.weather=<def.weather_winter_day_snow_storm>

[FUNCTION f_winter_day_sun]
serv.allclients smsg @<def.def_smsg_info>,3 <def.d_winter_day_sun>
tag0.wetter = dry
uid.time_control_uid.tag0.weather=<def.weather_winter_day_sun>

[FUNCTION f_winter_day_storm]
serv.allclients smsg @<def.def_smsg_info>,3 <def.d_winter_day_storm>
Dorand 2
    serv.allclients sound 015
    serv.allclients sound 016
EndDo
local.thunderstrike=<eval {0 1}>

doswitch <dlocal.thunderstrike>
    local.blankline
    serv.allclients f_weatherthunderstrike
enddo
tag0.wetter = dry
uid.time_control_uid.tag0.weather=<def.weather_winter_day_storm>

[FUNCTION f_winter_night_none]
serv.allclients smsg @<def.def_smsg_info>,3 <def.d_winter_night_none>
tag0.wetter = dry
uid.time_control_uid.tag0.weather=<def.weather_winter_night_none>

[FUNCTION f_change_winter_night_cloudy]
serv.allclients smsg @<def.def_smsg_info>,3 <def.d_winter_night_cloudy>
tag0.wetter = dry
uid.time_control_uid.tag0.weather=<def.weather_winter_night_cloudy>

[FUNCTION f_change_winter_night_rain]
serv.allclients smsg @<def.def_smsg_info>,3 <def.d_winter_night_rain>
tag0.wetter = rain
uid.time_control_uid.tag0.weather=<def.weather_winter_night_rain>

[FUNCTION f_change_winter_night_snow]
serv.allclients smsg @<def.def_smsg_info>,3 <def.d_winter_night_snow>
tag0.wetter = snow
uid.time_control_uid.tag0.weather=<def.weather_winter_night_snow>

[FUNCTION f_change_winter_night_storm]
serv.allclients smsg @<def.def_smsg_info>,3 <def.d_winter_night_storm>
Dorand 2
    serv.allclients sound 015
    serv.allclients sound 016
EndDo
local.thunderstrike=<eval {0 1}>

doswitch <dlocal.thunderstrike>
    local.blankline
    serv.allclients f_weatherthunderstrike
enddo

tag0.wetter = dry
uid.time_control_uid.tag0.weather=<def.weather_winter_night_storm>

[FUNCTION f_weatherthunderstrike]
dorand 5
    sound=0206
    sound=028
    sound=0207
    sound=0220
    sound=029
enddo
light +=2
update
serv.newnpc c_man_invisible
new.p=<p>
new.move=<eval {5 10}>,<eval {5 10}>
new.effect 1,0,0,0
new.remove
timerf 1,f_weatherthunderstrike_light

[FUNCTION f_weatherthunderstrike_light]
light <uid.time_control_uid.dtag0.lichtlevel>
update
local.zufall=<eval {0 2}>
IF (<dlocal.zufall> == 2)
    f_weatherthunderstrike
ENDIF


[EOF] 
08-22-2014 03:58 PM
Find all posts by this user Like Post Quote this message in a reply
[+] 3 users Like admin phoenix's post
Berkley
Journeyman
*

Posts: 54
Likes Given: 28
Likes Received: 2 in 2 posts
Joined: Jul 2015
Reputation: 0



Post: #2
RE: Time & Weather Script
fantastic work, thank you very much!

a little problem is here pity:
after installing properly and setting the id for the worldclock all functions work fine for perhaps 15 minutes real time. Then the script ignores the timescale whatever is written in "seconds_per_minute". and the game time is very slow now.

it can be solved only by teleporting my char to the position 11,11 nearby the worldclock gem.

any ideas for solution?

Best regards, Berkley
02-11-2020 12:33 AM
Find all posts by this user Like Post Quote this message in a reply
Berkley
Journeyman
*

Posts: 54
Likes Given: 28
Likes Received: 2 in 2 posts
Joined: Jul 2015
Reputation: 0



Post: #3
RE: Time & Weather Script
well, i got it:

it is depending of the feature sectorsleep.
SectorSleep=1 stops the server from setting sectors to sleep mode.
Then the time and weather script worfs fine.

Best regards, Lars
02-12-2020 05:03 AM
Find all posts by this user Like Post Quote this message in a reply
Berkley
Journeyman
*

Posts: 54
Likes Given: 28
Likes Received: 2 in 2 posts
Joined: Jul 2015
Reputation: 0



Post: #4
RE: Time & Weather Script
(02-13-2020 05:59 AM)Coruja Wrote:  You just need to type ".go 11,11" and ".SECTOR.FLAGS=01" to make this sector never sleep

Code:
[DEFNAME sector_flags]
secf_nosleep    01 //sector will never sleep, this flag take over secf_instasleep
secf_instasleep    02 //sector will sleep as soon as there is no active client inside

@ Coruja: Thank you for this
02-17-2020 09:28 PM
Find all posts by this user Like Post Quote this message in a reply
Post Reply 


Forum Jump:


User(s) browsing this thread: 1 Guest(s)