Das mit der Herberge ist nicht so schwer - kommt eben ganz darauf an, was Du da genau umsetzen willst. Mach doch drei Zimmer, in unterschiedlichen Preisklassen. Für 50 Septim gibts das Luxuszimmer und sobald man in dessen Bett schläft, einen temporären Bonus auf ein paar Skills. Für 20 gibts ein normales Bett, ohne weitere Vorzüge und für 1 Septime bekommt man die Rumpelkammer mit einer versifften, alten Matraze auf dem Boden - plus einer 50% Chance sich Wanzen und Flöhe einzufangen - als permanenter Krankheitszauber, der irgendwelches Ungemach auslöst. Die Flöhe wird man nur los, indem man bei einem zwielichtigen Medikus ein überteuertes Flohpulver für 100 Goldstücke erwirbt. Ein Questskript löst bis dahin jede Stunde eine Kratz-Animation auf dem Player aus.
Die Zimmer müssen spätestens um 10 Uhr geräumt werden, sonst kommt ein übelgelaunter, muskelbepackter Angestellter und zitiert die Zimmerregeln noch einmal deutlich.
So, nun zur Umsetzung. Ein Objektskript, auf irgendeinem Objekt dient als Steuerskript für den ganzen Kram. Eine Variable ist "Zimmer", deren Wert dient als Auswahl für die Zimmer. Die Wirtin hat ein Mieten-Topic mit zwei Choices, einmal "Ja" und einmal "Nein". Dem "Ja" sind drei weitere Choices untergeordnet, für die Auswahl der Zimmer. In den Results dieser drei Choices wird die Skriptvariable Zimmer gesetzt. Also für Luxuszimmer den Wert 1, normales Zimmer Wert 2 und für das Geiz-ist-Geil-Zimmer den Wert 3.
Nach Beenden des Dialogs wird die Variable Zimmer ausgewertet. Dem Spieler wird der Zimmerpreis abgezogen und die jeweilige Zimmertür mit "Unlock" entriegelt. Die Zimmertüren sind natürlich im Referenzmenü zu verriegeln und mit einer persistenten Referenz-Id zu versehen.
Damit der Spieler bei der Wirtin kein Zimmerauswahl-Topic bekommt, ohne das nötige Kleingeld zu besitzen, müssen die Choices mit einer Bedingung versehen werden. Sinnvoll ist noch eine vierte Choice, falls der Spieler nicht mal ein Goldstück besitzt und eventuell noch eine fünfte, um hier nochmal verneinen zu können. Das übergeordnete "Mieten-Topic" der Wirtin bekommt noch die Bedingung "GetSkriptVariable Zimmer == 0". So taucht das Topic nicht mehr auf, wenn ein Zimmer schon gemietet wurde.
Nun kann der Spieler in das aufgeschlossene Zimmer gehen und dort übernachten. In eine weitere Variable wird nun "GameDaysPassed" geschrieben, damit man den nächsten Tag auswerten kann. Dort wird dann überprüft, ob der Spieler nach 10 Uhr noch im Bett liegt. Ist das der Fall, kommt der missgelaunte Angestellte. Eine Zwangsweckung im MenuMode weckt den Spieler vorher auf. Ein einfaches Find-Package mit Traget Player sollte genügen. Der Kerl könnte ja auf einem Stuhl im Gang vor den Zimmern herumlungern. Einfach eine weitere Variable z.B. "Angestellter" im Skript anlegen und in seinem Package diese Variable mit dem Wert 1 als Bedingung angeben. Dann noch ein Find-Package auf einen Stuhl mit derselben Bedingung, nur hier 0 angeben. So kann man der Kerl mit der einen Variablen hin und her schicken.
Sobald der Spieler sich zum Schlafen in eines der drei Betten liegt, wird einfach in einem MenuMode Block abgefragt, ob der Spieler schläft und welches Zimmer er benutzt. Im GameMode wird dann nach dem Erwachen, die positiven Auswirkungen des Luxusbetts auf den Spieler übertragen, oder eben die Flöhe beim Billigbett.
Nun muss noch überwacht werden, wenn der Spieler das Zimmer verlässt. Da gibt es mehrere Möglichkeiten. Sind die Zimmer im Obergeschoss, könnte man die Z-Höhe abfragen. Geht der Spieler die Treppe nach unten, wird die Variable "Zimmer" auf Null zurückgesetzt und die jeweilige Tür wieder verschlossen wird. Das Steuerskript setzt voraus, dass alles in einer Zelle stattfindet, sonst müsste man das etwas anders aufbauen.
Hat der Spieler Zimmer 1, oder 2 benutzt, ist damit alles erledigt. Bei Zimmer 3 startet dann die Flohquest, falls GetRandomPercent zugeschlagen hat. Man kann dann die Wirtin darauf ansprechen, die dann den Medikus erwähnt. Der Medikus lebt natürlich weit weg und man muss ihn erst suchen. Doch die Wirtin erklärt den Weg.
Das Steuerskript fügt dem Spieler bei Flohbefall nicht nur mit AddSpell die Krankheit mit dem Malus deiner Wahl hinzu, es setzt auch die Questvariable "Flohzirkus" des Questskripts auf 1. Diese startet nun den Skriptteil, der die Tageszeit in eine weitere Variable schreibt. Damit wird auswertet, wann eine Stunde vergangen ist. Ist die Zeitbedingung erfüllt wird eine Kratzanimation aufgerufen. Eine weitere Variable "Kratzen" im Questskript, dient als Bedingung für die Animation im Idle-Manager. Die wird vom Skript kurzzeitig auf 1 gestellt und nach Ablauf der Idle auf 0 zurück. Nun wird die Zeit wieder neu ausgelesen und der Ablauf wiederholt sich stündlich.
Beim Medikus wird nach dem Erwerb des Pulvers dann der Spell entfernt und die Variable "Flohzirkus" auf 0 gesetzt. Später bekommt man noch mit, dass der Medikus der Bruder der Wirtin ist. Er ist in Wirklichkeit auch kein Mediziner, sondern ein Kammerjager. Weil aber die Geschäfte schlecht liefen, hat er zusammen mit seiner Schwester den Flohpulverplan ausgeheckt. Das Geschwisterpaar ist durch den Verkauf von Flohpulver reich geworden. Man kann aber nachts beim Medikus einsteigen und in dessen Keller das angehäufte Vermögen entwenden.
Alternativ könnten auch alle Zimmer Flöhe beherbergen, weil die geschäftstüchtige Wirtin immer darauf achtet, dass die Gäste anschließend noch das teuere Pulver beim Bruder kaufen müssen.
So, das war jetzt nur ein ganz grober Überblick, so wie ich eine Übernachtung vielleicht machen würde. Falls Du mit der Skripterei nicht so bewandert bist, hört sich das möglicherweise etwas kompliziert an, aber so schlimm ist das gar nicht. Sieh es einfach als Herausforderung an. Ich bin dann auch gerne bereit, dir die Kratzanimation zu bauen - weil heute Weihnachten ist.
Zu deinem Lod-Problem: Du wirst wohl kein far-nifs für die entfernten Objekte haben. Das sind abgespeckte Modelle der normalen Objekte und gehören in den selben Order, haben denselben Namen, nur mit _far.nif Erweiterung - siehe den Turm der Kaiserstadt.