Eigenartiges Skriptproblem... | |
Hi, Leute!
Ich befasse mich derzeit mit der Hearthfire-Version für meine verbesserten Spielerhäuser und stehe grad ein bisschen an. Es geht um die Quest "HousePurchases", und ich bleib nun mal beim Brisenheim, damit's nicht zu kompliziert wird.
Bethesda hat das Ganze so angelegt, dass bei Kinderzimmerkauf der
Alchemiebereich entfernt wird. Zieht man aus, dann kann man das Kinderzimmer wieder durch Alchemieraum ersetzen.
Und darum geht's. Das soll in meiner Mod nicht so sein. Ich will beides kaufbar, ohne dass irgendwas verschwindet. Hab dafür ein neues Kinderzimmer dazugebaut und alle Inhalte vom entsprechenden Beth-Zimmer ins neue transferiert.
Erst wollte ich dafür ein großes Skript von Beth bearbeiten, das genau diese Bereiche ändert (wäre die einfachste Lösung gewesen), allerdings musste ich feststellen, dass sich dieses Ding nicht mal in Originalform (ohne Änderungen von mir) kompilieren ließ, und Fehlermeldungen kamen, die nicht mal direkt was mit diesem Skript zu tun hatten.
Hab dann mehrere Sachen versucht, die alle nicht funktionierten (zum Schluss tauchte beim Kauf absolut gar nix mehr auf ) , bis ich mir dann die ursprüngliche Version dieser Quest (ohne Hearthfires) ansah und beide verglich.
An dieser Stelle entdeckte ich viele weitere kleine Skripte, die den einzelnen Verkaufsdialogen zugewiesen waren, und ich dachte mir, das es hier eine Möglichkeit gibt, einzuhaken, da man dort die ganzen Properties für Disable/Enable, Kaufwert etc. zuweisen konnte.
Hab dann im großen Skript mal die zugewiesenen Properties... dort wird nämlich hin- und hergetauscht... gelöscht und Brisenheim-Alchemieraum hab ich nun soweit, dass der beim Kauf ganz normal auftaucht. Ich hab dafür ein neues Skript gemacht und entsprechende Bedingungen in besagtem Dilaog eingetragen.
Nun müsste man meinen, dass das auch beim Kinderzimmer so klappt... aber ein Irrtum. Ich schrieb das Skript, fügte nebenbei auch meine Sachen mit ein, die "disabled" werden müssen, und es ließ sich ganz normal im Notepad++ kompilieren:
Hier das Skript:
-------------------------------------------------------------------------------------
;BEGIN FRAGMENT CODE - Do not edit anything between this and the end comment
;NEXT FRAGMENT INDEX 2
Scriptname LMCR_TIF__000C6E1A Extends TopicInfo Hidden
;BEGIN FRAGMENT Fragment_1
Function Fragment_1(ObjectReference akSpeakerRef)
Actor akSpeaker = akSpeakerRef as Actor
;BEGIN CODE
game.getplayer().removeitem(gold, HDWhiterunChildRoom.value as int)
DecorateMarker.enable()
OldMarker.disable()
LMSpecialItem01DisableREF.disable()
GetOwningQuest() as BYOHRelationshipAdoptionHousePurchase).Whiterun_EnableChildBedroom() ; entfernt, da ich den Eingriff dieses Skripts (Austausch Alchemie-Kinderzimmer) nicht mehr benötige
;END CODE
EndFunction
GlobalVariable Property HDWhiterunChildRoom Auto
MiscObject Property Gold Auto
ObjectReference Property DecorateMarker Auto
ObjectReference Property OldMarker Auto
ObjectReference Property LMSpecialItem01DisableREF Auto
;END FRAGMENT CODE - Do not edit anything between this and the begin comment
--------------------------------------------------------------------------------------
Den Smilie im Skript... hab nicht ich gemacht... der ist durch das Auskomplementieren dieser Zeile entstanden.... die ist nicht wirksam....
(Ich hab hier nicht das Beth-Skript geändert, sondern ein eigenes gemacht... die Zeilen des entsprechenden Beth-Skripts hab ich drin stehen lassen)
Aber weiter... wieder im CK, hab ich das der Quest/Dialogzeile Kinderzimmerkauf zugewiesen,
Properties richtig eingetragen und unter "Papyrus Fragment" genauso wie es bei den anderen Räumen des Brisenheims ist, entsprechende Skriptzeilen eingetragen:
-------------------------------------------------------------------------------------
game.getplayer().removeitem(gold, HDWhiterunChildRoom.value as int)
DecorateMarker.enable()
OldMarker.disable()
LMSpecialItem01DisableREF.disable()
-------------------------------------------------------------------------------------
Dann will ich das Ding dort ebenfalls kompilieren... und was passiert? Eine Fehlermeldung, und zwar die:
--------------------------------------------------------------------------------------
Starting 1 compile threads for 1 files...
Compiling "LMCR_TIF__000C6E1A"...
Crogram Files (x86)SteamsteamappscommonskyrimDataScriptsSourcetempLMCR_TIF__000C6E1A.psc(9,34): variable HDWhiterunChildRoom is undefined
Crogram Files (x86)SteamsteamappscommonskyrimDataScriptsSourcetempLMCR_TIF__000C6E1A.psc(9,54): none is not a known user-defined type
Crogram Files (x86)SteamsteamappscommonskyrimDataScriptsSourcetempLMCR_TIF__000C6E1A.psc(9,60): cannot cast a none to a int, types are incompatible
No output generated for LMCR_TIF__000C6E1A, compilation failed.
Batch compile of 1 files finished. 0 succeeded, 1 failed.
Failed on LMCR_TIF__000C6E1A
--------------------------------------------------------------------------------------
Diese Smilies wären jetzt "Doppelpunkt P"...
Ja, und nun meine Frage: Warum gibt's da eine Fehlermeldung?
Diese Meldung sagt ja, dass "HDWhiterunChildRoom" nicht definiert wäre, was aber nicht stimmt. Außerdem taucht eine entsprechende Variable (für den Preis, im CK eine Global) auch in allen anderen kleinen Skripten für die anderen Zimmer auf...
Ich hab das Ganze nun mal ohne diesen Eintrag unter "Papyrus Fragment" getestet... und zwar, weil mir aufgefallen war, dass beim Schlafzimmer im Brisenheim dieser Eintrag ebenfalls nicht vorhanden war.
Aber leider funktioniert es so nicht. Es taucht kein Kinderzimmer auf und meine Wände disablen ebenfalls nicht, wo dann eine weitere Tür wäre. Da das mit dem Alchemiebereich klappte, gehe ich nun mal davon aus, dass es sich um genau diese Sache handelt, die ich noch irgendwie hinkriegen müsste, damit das im Brisenheim so funktioniert wie ich es mir vorstelle.
Das Kompilieren des AlchemieRaum-Eintrages im CK klappte übrigens wunderbar.
Kann mir bitte jemand bei dieser Sache helfen?
Da wäre ich sehr dankbar.
Ich werd's nun mal trotzdem testen..... vielleicht funktioniert's ja trotz der Fehlermeldungen.
Edit:
Hab getestet und jetzt kommts... das ist absolut abgefahren....
Der Goldwert (= Fehlermeldung mit "HDWhiterunChildRoom") wurde abgezogen!
Eine Wand wurde entfernt, also hat "OldMarker.disable()" funktioniert
Alles was am "DecorateMarker" hing, funktionierte nicht!
Und "LMSpecialItem01DisableREF.disable()" funktionierte auch nicht! (Hierbei handelt es sich um ein Tischchen, das genau am Eingang steht)
Zum "DecorateMarker" noch Folgendes:
Ich hab nun die ganze Einrichtung abgehöngt, denn es kommt eine Tür in einen Bereich, in dem vorher eine Wand war... aber..... statt der Wand gibts nun natürlich den Türrahmen, und der muss vorher disabled sein, denn das würde absolut furchtbar aussehen.
Ich test's nun noch mal.... es ist unglaublich komisch, dass Teile funzen und andere wieder nicht....
__________________ LMWW
Dieser Beitrag wurde von LilaMue am 03.06.2013, 22:42 Uhr editiert.
|