Zeit System

Ein Sphereserver Zeitsystem ab Version 56B+
Das System bietet neben den üblichen Lichtverhältnissen, auch Konfigurierbare Namen Jahreszeiten und Monate.

//TimeSystem by: Rose @ www.Rose-UO.de, a German Ultima Online Freeshard Portal and Community
//Assisted in writing: Starfiend @ www.vespertales.de, a German Freeshard
//Version = 56B+ 

// Changes For Use / Änderungen für Benutzen
// Open/Öffne: sphere.ini
// Find/Finde: Timercall=0
// Replace with/ Ersetze durch: Timercall=6
// 6 Realtime Minutes = 1 Hour/Stunde Ingame
// Find/Finde: //EventsPlayer=
// Replace with / Ersetze durch: EventsPlayer=e_timesystemlight

// Open/Öffne: scripts/sphere-serv-triggers.scp
// Find/Finde: [FUNCTION f_onserver_timer]
// ADD in a New Line / Hinzufügen in neuer Zeile:
// f_timesystem
// Save/speichere sphere-serv-triggers.scp

//Using Vars / Benutzte Vars
//Var.TimeHour = Hour/Stunde
//Var.TimeDay = Day/Tag
//Var.TimeMonth = Month/Monat
//Var.TimeMonthName
//Var.TimeYear = Year/Jahr
//Var.TimeLight = Lightlevel/Lichtlevel
//Var.TimeSeason = Seasons / Jahreszeiten
//Var.TimeTimercall = Timercall Time for Another Scripts/Timercall Zeit für andere Scripte.

[DEFNAME def_Timesystem]
//Monthnames / Monatsnamen
Month1 Januar // January
Month2 Februar // February
Month3 Maerz // March
Month4 April 
Month5 Mai // May
Month6 Juni // June
Month7 Juli // July
Month8 August 
Month9 September
Month10 Oktober // October
Month11 November
Month12 Dezember // December
// Seasons / Jahreszeiten
Season1 Fruehlings // Spring
Season2 Sommers // Summer
season3 Herbstes // autumn
Season4 Winters // Winter
// Misc / Sonstiges
TimeDungeonLight 20 // Lightlevel in / Lichtlevel über Cords (<p.x> > 5120)

//Time Setting, Zeitsetzen
[FUNCTION Timeset] 
SERV.LOG Timesystem: Time Setting, Zeit gesetzt
var.TimeHour=12
var.TimeDay=1
Var.TimeMonth=1
var.TimeYear=1500
Var.TimeTimercall=360

[FUNCTION f_timesystem]
//Timing / Zeitrechnung
Var.TimeHour +=1
if (<Var0.TimeDay> == 1)
	f_TimeSetMonthname
	f_TimeSetSeasonname
endif
if (<Var0.TimeHour> > 23)
	Var.TimeHour=0
	Var.TimeDay +=1
	if (<Var0.TimeDay> > 30)
		Var.TimeDay=1
		Var.TimeMonth +=1
		if (<Var0.TimeMonth> > 12)
			Var.TimeMonth=1
			Var.TimeYear +=1
		endif
	endif
endif	

//f_TimeAlternateEvironChangeTrigger // Trigger EnvironChange per Timercall / Triggert EnvironChange mit den Timercall

// Season Spring(Season1) Light, Jahreszeit Fruehling(Season1) Licht
if (<var.TimeMonth> == 3) || (<var.TimeMonth> == 4) || (<var.TimeMonth> == 5) // Spring/Fruehling

if (<Var.TimeHour> == 0)
    Var.TimeLight=24
elseif (<Var.TimeHour> == 1) || (<Var.TimeHour> == 23)
    Var.TimeLight=22
elseif (<Var.TimeHour> == 2) || (<Var.TimeHour> == 22)
    Var.TimeLight=20
elseif (<Var.TimeHour> == 3) || (<Var.TimeHour> == 21)
    Var.TimeLight=18
elseif (<Var.TimeHour> == 4) || (<Var.TimeHour> == 20)
    Var.TimeLight=16
elseif (<Var.TimeHour> == 5) || (<Var.TimeHour> == 19)
    Var.TimeLight=14
elseif (<Var.TimeHour> == 6) || (<Var.TimeHour> == 18)
    Var.TimeLight=12
elseif (<Var.TimeHour> == 7) || (<Var.TimeHour> == 17)
    Var.TimeLight=10
elseif (<Var.TimeHour> == 8) || (<Var.TimeHour> == 16)
    Var.TimeLight=8
elseif (<Var.TimeHour> == 9) || (<Var.TimeHour> == 15)
    Var.TimeLight=6
elseif (<Var.TimeHour> == 10) || (<Var.TimeHour> == 14)
    Var.TimeLight=4
elseif (<Var.TimeHour> == 11) || (<Var.TimeHour> == 13)
    Var.TimeLight=2
elseif (<Var.TimeHour> == 12)
    Var.TimeLight=2
endif 

// Season Summer(Season2) Light, Jahreszeit Summer(Season2) Licht
elseif (<var.TimeMonth> == 6) || (<var.TimeMonth> == 7) || (<var.TimeMonth> == 8) 
if (<Var.TimeHour> == 0)
    Var.TimeLight=24
elseif (<Var.TimeHour> == 1) || (<Var.TimeHour> == 23)
    Var.TimeLight=22
elseif (<Var.TimeHour> == 2) || (<Var.TimeHour> == 22)
    Var.TimeLight=20
elseif (<Var.TimeHour> == 3) || (<Var.TimeHour> == 21)
    Var.TimeLight=18
elseif (<Var.TimeHour> == 4) || (<Var.TimeHour> == 20)
    Var.TimeLight=16
elseif (<Var.TimeHour> == 5) || (<Var.TimeHour> == 19)
    Var.TimeLight=14
elseif (<Var.TimeHour> == 6) || (<Var.TimeHour> == 18)
    Var.TimeLight=12
elseif (<Var.TimeHour> == 7) || (<Var.TimeHour> == 17)
    Var.TimeLight=10
elseif (<Var.TimeHour> == 8) || (<Var.TimeHour> == 16)
    Var.TimeLight=8
elseif (<Var.TimeHour> == 9) || (<Var.TimeHour> == 15)
    Var.TimeLight=6
elseif (<Var.TimeHour> == 10) || (<Var.TimeHour> == 14)
    Var.TimeLight=4
elseif (<Var.TimeHour> == 11) || (<Var.TimeHour> == 13)
    Var.TimeLight=2
elseif (<Var.TimeHour> == 12)
    Var.TimeLight=0
endif

// Season Autumn(Season3) Light, Jahreszeit Herbst(Season3) Licht
elseif (<var.TimeMonth> == 9) || (<var.TimeMonth> == 10) || (<var.TimeMonth> == 11)
if (<Var.TimeHour> == 0)
    Var.TimeLight=24
elseif (<Var.TimeHour> == 1) || (<Var.TimeHour> == 23)
    Var.TimeLight=22
elseif (<Var.TimeHour> == 2) || (<Var.TimeHour> == 22)
    Var.TimeLight=20
elseif (<Var.TimeHour> == 3) || (<Var.TimeHour> == 21)
    Var.TimeLight=18
elseif (<Var.TimeHour> == 4) || (<Var.TimeHour> == 20)
    Var.TimeLight=16
elseif (<Var.TimeHour> == 5) || (<Var.TimeHour> == 19)
    Var.TimeLight=14
elseif (<Var.TimeHour> == 6) || (<Var.TimeHour> == 18)
    Var.TimeLight=12
elseif (<Var.TimeHour> == 7) || (<Var.TimeHour> == 17)
    Var.TimeLight=10
elseif (<Var.TimeHour> == 8) || (<Var.TimeHour> == 16)
    Var.TimeLight=8
elseif (<Var.TimeHour> == 9) || (<Var.TimeHour> == 15)
    Var.TimeLight=6
elseif (<Var.TimeHour> == 10) || (<Var.TimeHour> == 14)
    Var.TimeLight=4
elseif (<Var.TimeHour> == 11) || (<Var.TimeHour> == 13)
    Var.TimeLight=2
elseif (<Var.TimeHour> == 12)
    Var.TimeLight=2
endif

// Season Winter(Season4) Light, Jahreszeit Winter(Season4) Licht
elseif (<var.TimeMonth> == 12) || (<var.TimeMonth> == 1) || (<var.TimeMonth> == 2)
if (<Var.TimeHour> == 0)
    Var.TimeLight=24
elseif (<Var.TimeHour> == 1) || (<Var.TimeHour> == 23)
    Var.TimeLight=24
elseif (<Var.TimeHour> == 2) || (<Var.TimeHour> == 22)
    Var.TimeLight=22
elseif (<Var.TimeHour> == 3) || (<Var.TimeHour> == 21)
    Var.TimeLight=20
elseif (<Var.TimeHour> == 4) || (<Var.TimeHour> == 20)
    Var.TimeLight=18
elseif (<Var.TimeHour> == 5) || (<Var.TimeHour> == 19)
    Var.TimeLight=16
elseif (<Var.TimeHour> == 6) || (<Var.TimeHour> == 18)
    Var.TimeLight=14
elseif (<Var.TimeHour> == 7) || (<Var.TimeHour> == 17)
    Var.TimeLight=12
elseif (<Var.TimeHour> == 8) || (<Var.TimeHour> == 16)
    Var.TimeLight=10
elseif (<Var.TimeHour> == 9) || (<Var.TimeHour> == 15)
    Var.TimeLight=8
elseif (<Var.TimeHour> == 10) || (<Var.TimeHour> == 14)
    Var.TimeLight=6
elseif (<Var.TimeHour> == 11) || (<Var.TimeHour> == 13)
    Var.TimeLight=4
elseif (<Var.TimeHour> == 12)
    Var.TimeLight=4
endif 
endif

[FUNCTION f_TimeSetMonthname]
// Assign month names to the month / Monatsnamen den Monat zuweisen 
if (<Var0.TimeMonth> == 1)
	Var.TimeMonthName=<Def.Month1>
elseif (<Var0.TimeMonth> == 2)
	Var.TimeMonthName=<Def.Month2>
elseif (<Var0.TimeMonth> == 3)
	Var.TimeMonthName=<Def.Month3>
elseif (<Var0.TimeMonth> == 4)
	Var.TimeMonthName=<Def.Month4>
elseif (<Var0.TimeMonth> == 5)
	Var.TimeMonthName=<Def.Month5>
elseif (<Var0.TimeMonth> == 6)
	Var.TimeMonthName=<Def.Month6>
elseif (<Var0.TimeMonth> == 7)
	Var.TimeMonthName=<Def.Month7>
elseif (<Var0.TimeMonth> == 8)
	Var.TimeMonthName=<Def.Month8>
elseif (<Var0.TimeMonth> == 9)
	Var.TimeMonthName=<Def.Month9>
elseif (<Var0.TimeMonth> == 10)
	Var.TimeMonthName=<Def.Month10>
elseif (<Var0.TimeMonth> == 11)
	Var.TimeMonthName=<Def.Month11>
elseif (<Var0.TimeMonth> == 12)
	Var.TimeMonthName=<Def.Month12>
endif

[FUNCTION f_TimeSetSeasonname]
// Assign Season names to the Season. / Jahreszeit namen der Jahreszeit zuweisen. 
if (<Var0.TimeMonth> == 3) || (<Var0.TimeMonth> == 4) || (<Var0.TimeMonth> == 5) //Spring / Fruehling
	Var.TimeSeason <Def.Season1>
elseif (<Var0.TimeMonth> == 6) || (<Var0.TimeMonth> == 7) || (<Var0.TimeMonth> == 8) //Summer / Sommer
	Var.TimeSeason <Def.Season2>
elseif (<Var0.TimeMonth> == 9) || (<Var0.TimeMonth> == 10) || (<Var0.TimeMonth> == 11) //Autumn / Herbst
	Var.TimeSeason <Def.Season3>
elseif (<Var0.TimeMonth> == 12) || (<Var0.TimeMonth> == 1) || (<Var0.TimeMonth> == 2) //Winter
	Var.TimeSeason <Def.Season4>
endif

[FUNCTION Zeit] 
//Time Output / Zeitausgabe
Src.Smsg Wir haben die Stunde <dvar0.TimeHour>, am <dvar0.TimeDay> Tag, im <var.TimeMonthName>, des <var.TimeSeason>, im Jahre <dvar0.TimeYear>
//Src.Smsg We have hours: <dvar0.TimeHour>, in the Day: <dvar0.TimeDay>, in the Month: <var.TimeMonthName>(<var.TimeSeason>), in the Year: <dvar0.TimeYear>

[EVENTS e_timesystemlight]
// Send Lightlevel to Character / Sende Lichtlevel zum Charakter
ON=@EnvironChange
// if (<p.x> < 5120)
if (<src.region.flags> & region_flag_underground)
Src.Sendpacket 04f <Def.TimeDungeonLight>
Src.Light <Def.TimeDungeonLight>
else
Src.Sendpacket 04f <var0.TimeLight>
Src.Light <var0.TimeLight>
endif

[FUNCTION f_TimeAlternateEvironChangeTrigger]
//Trigger EnvironChange per Timercall / Triggert EnvironChange mit den Timercall
Serv.Newitem i_TimeSystemLightStone
New.P 1,1,5,0
Lichtlevel
if (<Var.TimeHour> == 0)
    New.Region.Light 25
elseif (<Var.TimeHour> == 1) || (<Var.TimeHour> == 23)
    New.Region.Light 23
elseif (<Var.TimeHour> == 2) || (<Var.TimeHour> == 22)
    New.Region.Light 21
elseif (<Var.TimeHour> == 3) || (<Var.TimeHour> == 21)
    New.Region.Light 19
elseif (<Var.TimeHour> == 4) || (<Var.TimeHour> == 20)
    New.Region.Light 17
elseif (<Var.TimeHour> == 5) || (<Var.TimeHour> == 19)
    New.Region.Light 15
elseif (<Var.TimeHour> == 6) || (<Var.TimeHour> == 18)
    New.Region.Light 13
elseif (<Var.TimeHour> == 7) || (<Var.TimeHour> == 17)
    New.Region.Light 11
elseif (<Var.TimeHour> == 8) || (<Var.TimeHour> == 16)
    New.Region.Light 9
elseif (<Var.TimeHour> == 9) || (<Var.TimeHour> == 15)
    New.Region.Light 7
elseif (<Var.TimeHour> == 10) || (<Var.TimeHour> == 14)
    New.Region.Light 5
elseif (<Var.TimeHour> == 11) || (<Var.TimeHour> == 13)
    New.Region.Light 3
elseif (<Var.TimeHour> == 12)
    New.Region.Light 1
endif

[ITEMDEF i_TimeSystemLightStone]
ID=i_guildstone
NAME=Zeitsystem
TYPE=t_script

ON=@CREATE
ATTR=attr_decay
TIMER=0