Man kann es aufjeden fall mit einem Event OnUpdate() bewerkstelligen, jedoch würde ich es erst mit der oben angegebenen alternative versuchen, da ein event onupdate eine menge resourcen verbraucht und zu savegame bloats führen kann, wenn die ausgeführe function länger dauert, als der RegisterForUpdate(x) intervall.
Ich habe bereits eine funktionierende Rohfassung einer Mod geschrieben, die verschiedene Rausch-Effekte, Chance süchtig zu werden und Entzug-Effekte (basierend auf Rasse und level) den gängigen Drogen in Skyrim (div. Alkohol-arteb, Skooma-arten, Modzucker) hinzufügt und ich kann dir versichern, dass entweder ein RegisterForUpdateGameTime() (wenn du mehr als eine Sache hast, die du prüfen willst - z.B. Alkohol-Entzug+Skooma-Entzug+Hunger+Müdigkeit) oder ein RegisterForSingleUpdateGameTime() (wenn du nur eine Sache prüfen willst) der richtige Weg ist.
Bethesda macht das auch bei allen derartigen Scripten so (ich lasse jede ingame Stunde prüfen, ob sich der Status des Rausches/des Entzugs ändert)
Von einer While-Schleife würde ich dringend abraten, da diese auch während eines Kampfes, im Menü usw. aktiv ist, nichts mit der ingame Zeit zu tun hat, auch um einiges mehr Performance fressen sollte (bin mir da zu 99,9% sicher) und ein Utility.Wait() das komplette Script anhält.
Desweiteren ist es der while-Schleife egal, ob du wartest oder schläfst (ein registriertes update-Event wird immer nach dem Schlafen/Warten getriggert, sofern man länger als das Intervall schläft/wartet)
=>
die Update Funktionen sind genau für solche Aufgaben designt und sollten auch benutzt werden. Sie sind performancetechnisch völlig unbedenklich, sofern nicht andauernd ein Update-Event getriggert wird und der ausgeführte code keine hunderte von zeilen lang ist (also wenn du z.B. jede halbe ingamestunde ein paar Werte prüfst hast du keinerlei Probleme)
nun musste ich leider feststellen das seither das CK in meiner Zelle ziemlich langsam reagiert, es braucht ewig um neue Objekte zu setzen, was das Arbeiten wirklich unerträglich macht.
Wieviele Objekte hast du denn insgesamt in deiner Zelle? Hast du viele FX-Objekte, und FX angeschaltet? Was zeigt die Titelleiste des Rederwindow?