Hey,
Ich arbeite gerade an einer Art Tamagotchi Imitation.
Während du offline gehst etc. soll der Hunger auch weiter runtergehen, also hab ich dieses Zeitsystem entwickelt:
(Nicht wundern, mood = Müdigkeit *hust*)
Spoiler anzeigen
Func time()
$starthour = IniRead("./ini/login.ini", "lastlogin", "hour", 0)
$startday = IniRead("./ini/login.ini", "lastlogin", "day", 1)
$startmonth = INIRead("./ini/login.ini", "lastlogin", "month", 1)
$startyear = IniRead("./ini/login.ini", "lastlogin", "year", 2012)
$ydif = @YEAR - $startyear
If $ydif > 1 Then ($startmonth = 1) AND (starve($ydif-1*8640)) AND (IniWrite("./ini/login.ini", "lastlogin", "year", @YEAR))
If $ydif = 1 Then ($startmonth = 1) AND (IniWrite("./ini/login.ini", "lastlogin", "year", @YEAR))
$mdif = @MON - $startmonth
If $mdif > 1 Then ($startday = 1) AND (starve($mdif-1*720)) AND (IniWrite("./ini/login.ini", "lastlogin", "month", @MON))
If $mdif = 1 Then ($startday = 1) AND (IniWrite("./ini/login.ini", "lastlogin", "month", @MON))
$ddif = @MDAY - $startday
If $ddif > 1 Then ($starthour = 0) AND (starve($ddif-1*24)) AND (IniWrite("./ini/login.ini", "lastlogin", "day", @MDAY))
If $ddif = 1 Then ($starthour = 1) AND (IniWrite("./ini/login.ini", "lastlogin", "day", @MDAY))
$hdif = @HOUR - $starthour
If $hdif > 0 Then (starve($hdif*1)) AND (IniWrite("./ini/login.ini", "lastlogin", "hour", @HOUR))
EndFunc
Func starve($f)
$hunger_value -= 2*$f
$mood_value -= 1*$f
IniWrite("./ini/stats.ini", "basic", "hunger", $hunger_value)
IniWrite("./ini/stats.ini", "basic", "mood", $mood_value)
GuiCtrlDelete($hunger)
GuIctrlDelete($mood)
$hunger = GUICtrlCreateLabel($hunger_value, 51, 51, 45, 31)
GuiCtrlSetFont($hunger, 15, 400, 0, "Minecraft Regular")
$mood = GUICtrlCreateLabel($mood_value, 51, 131, 45, 31)
GuiCtrlSetFont($mood, 15, 400, 0, "Minecraft Regular")
EndFunc
Das Problem dabei ist, wenn nur z.B. nur ein Tag vergeht, dann wird nur die Differenz von 0 zur aktuellen Stunde berechnet, allerdings nicht die Differenz von der letzten Stunde des Tages bis zum Tagesende 24.
Gibt es irgendwie eine Lösung, oder einfach eine einfacherere Methode für das ganze? Wäre gut sowas zu finden,
Mfg