Also zuerst mal müssen die Variablen afaik vor das begin gamemode.

2. muss da noch eine if-Abfrage rein, denn momentan wird dein Skript in jedem frame ausgeführt, womit pro frame 1 Dietrich der Truhe hinzugefügt wird. Außerdem: was nützen dir die Variablen, wenn du sie weder veränderst, noch irgentwo abfragst?

3. würde ich das ganze als Questskript (einer unsichtbaren Quest) machen, da es bei deiner Lösung (Skript auf Truhe) nur arbeiten würde, wenn der Spieler in der Nähe der Truhe ist. Nachteil ist halt, dass dann die ganze Zeit im Hintergrund ein Skript läuft, was evtl. die Performance belastet.

Probier mal dieses Skript:
Code:
scn MeineTruhenAuffüllScript

short olddayVAR
short dayVAR
short done

begin gamemode

if ( done == 0 )
 set olddayVAR to getdayspassed
 set dayVAR to getdayspassed
;ich bin mir jetzt aber nicht sicher, ob es diese Funktion gibt und das CS-Wiki ist momentan leider down
 set done to 1
if ( done == 1 ) && ( dayVAR == olddayVAR )
;kann man das so abfragen?
 set dayVAR to getdayspassed
 set done to 2
if ( done == 2 ) && ( dayVAR > olddayVAR )
;kann man das so abfragen?
 meineTruhe.additem MeinItem 1
 set done to 1
 set olddayVAR to getdayspassed
endif

end
Da jetzt in deiner Truhe soviele "Mein Item"s liegen würden wie Tage vergangen sind würde ich deiner Truhe noch folgendes Skript hinzufügen:

Zusätzlich musst du noch jeder if-Abfrage im obigen Skript noch folgendes anhängen (Code kopieren; Achtung: Leerzeichen am Anfang):
Code:
 && ( MeineTruheScript.discovered == 1 )


Da ich jetzt aber selbst nicht so der große Skripter bin gebe ich keine Garantie darauf, das alles funktioniert (Wie in den Kommentaren gesagt: ich bin mir nicht sicher, dass es alle Befehle gibt, die ich verwende, noch, dass alle if-Abfragen funktionieren). Mach eine Sicherheitskopie deiner *.esp und dann einfach aufprobieren. Mehr als schiefgehen kann's eigentlich nicht. Obwohl, bei Oblivion weiß man eigentlich nie...