結婚に失敗するのをなおす

Modを作ろう

USSEP導入環境で結婚式の最後に失敗するので修正しました。

USSEP導入環境で結婚式の最後に失敗するので修正しました。Rabi Marrigage Fixという名前ですが、Rabiがなくても動作します。

Rabi Marriage Fixをダウンロード

以下の解説では、修正パッチのESPFEファイルをRabiMarriageFix.espとしています。

USSEPと互換性を確保

クエストRelationshipMarriageWeddingのステージに40を追加します。

SSEEditで見るとこうなります。

見たらわかるように、RabiはUSSEPに対応できていないので、USSEPの変更をバニラに戻してしまっています。それをESPFEで再度変更するわけです。

クエストをまるごとUSSEP仕様に戻せばいいだけじゃないの、と最初はそうしたのですが、失敗することにかわりはなく、よくわからなかったので、スクリプトで強引に修正することにしました。ネットを検索すると出てくる「コンソールでStageを〇〇にするといい」を自動でやっているだけです。

もう忘れましたが、ステージ40がないと進行に不具合があるのだったと思います。

回答が早すぎるのを修正

シーンRelationshipMarriageWeddingSceneViewのPhase 8にFragmentを追加します。

単純に1秒のwaitを入れているだけです。何度もテストを繰り返した結果、1秒がしっくりきました。

RelationshipMarriageWedding Fragment_3 (papyrus)

;debug.trace("phase 8 end")
utility.wait(1.0)

私の場合はFragment_3になりました。

式の最後に失敗扱いになるのを修正

Fragment_0を修正します。

元々はこうなっています。

RelationshipMarriageWedding Fragment_0 修正前 (papyrus)

;If the scene ends before the player is married, trigger the fail state
If (GetOwningQuest().GetStage() < 100)
  GetOwningQuest().SetStage(150)
EndIf

以下のように書き換えます。

RelationshipMarriageWedding Fragment_0 修正後 (papyrus)

;If the scene ends before the player is married, trigger the fail state
Int iStage = GetOwningQuest().GetStage()
if iStage < 100
    if 30 <= iStage
        GetOwningQuest().SetStage(100)
    else
        GetOwningQuest().SetStage(150)
    endif
endif

タイトルとURLをコピーしました