;=================================================================== ; JPBooks omod Script for JPBooks 11.9.22 : Irrlicht ;------------------------------------------------------------------- ; ・ObMMの日本語の扱いは色々怪しいので注意(pathや表示メッセージ等)。 ; Script Editor上できちんと表示できれば(恐らく)大丈夫 ; 参照:http://oblivion.z49.org/obmmscript.html ; ・コードの再利用はどうぞご自由に ;=================================================================== ;------------------------------------------------------------------- ; お約束 ;------------------------------------------------------------------- DontInstallAnyPlugins DontInstallAnyDataFiles ;------------------------------------------------------------------- ; 変数準備 ;------------------------------------------------------------------- ; ----- ユーザーの選択 ; --- JPBooks (0,1,2,3) = (初期値, V+S, V, Donot Install) SetVar FlagSelectedJPBooks 0 ; --- morrowindJPbooks (0,1,2,3) = (初期値, Normal, Light, Donot Install) SetVar FlagSelectedMwJPbks 0 ; --- マージ版 (0, 1) = (FALSE, TRUE) SetVar FlagSelectedMerge 0 ; ----- 環境チェック ; --- Oblivionのver (0, 1, 2, 3) = (初期値(多分発生しない), 非推奨ver, 1.1, 1.2) SetVar FlagOblivionVer 0 ; --- SIの有無 (0, 1) = (初期値(SI無), SI導入済) SetVar FlagSIInstalled 0 ; ----- Total Flag (制御構造構文がシンプルなものしかないのでフラグ変数が複数あると厄介) ; 初期値 0 (多分発生しない) ; Ob非推奨ver 1 ; Ob 1.1 2 ; Ob 1.2 SI無 30 ; Ob 1.2 SI有 31 SetVar FlagCheckTotal 0 ; ----- インストール強行フラグ ; 環境チェックを利用するかしないか ; (0, 1, 2) = (初期値, チェック結果を信頼する, インストール強行) SetVar FlagForceInstall 0 ; ----- インストールespのフラグ ; FlagSelected*と共用でもいいんだけど、コードを読み易くする為に別に設ける。 ; 各カテゴリ毎にフラグ変数1つでも大丈夫だが、同じくコードを読み易くする為にesp毎に設定。 ; --- JPBooks SetVar FlagInstallJPBooksVanillaSI 0 SetVar FlagInstallJPBooksVanilla 0 ; --- morrowindJPbooks SetVar FlagInstallMwJPbks 0 SetVar FlagInstallMwJPbksLight 0 ; --- Merged SetVar FlagInstallMergedVSM 0 SetVar FlagInstallMergedVSML 0 SetVar FlagInstallMergedVM 0 SetVar FlagInstallMergedVML 0 ; ----- インストールするespの確認表示用 SetVar StrInstallFiles "" ; ----- 環境表示用 SetVar StrEnvOblivion "" ;------------------------------------------------------------------- ; ObMM Ver. Cheack ;------------------------------------------------------------------- ; ----- 必須確認 ; CopyPlugin 0.8.0以降。 ; OblivionNewerThan 0.8.9以降 ; SetVar 0.9.1以降 ; AllowRunOnLines 1.0.0以降 ; LoadEarly 1.1.11以降 ; --- If VersionLessThan 1.1.11 If DialogYesNo "お使いのバージョンのOblivion Mod Managerではこのomodファイルに対応してないので不具合が発生する可能性があります(1.1.11以降必須)。%NewLine%続行する場合はYes(はい)、キャンセルする場合はNo(いいえ)を選んで下さい", \ "Warning" ;do nothing Else Message "インストールがキャンセルされました" "Notice" FatalError EndIf EndIf ;------------------------------------------------------------------- ; 準備 ;------------------------------------------------------------------- AllowRunOnLines ;------------------------------------------------------------------- ; 調査 ;------------------------------------------------------------------- ; ----- Oblivion ;0.1.0.228 -- ;1.1.0.425 -- ;1.1.0.511 OK ;1.2.0.201 -- ;1.2.0.214 -- ;1.2.0.416 OK ; コードどおりに実行されるならきちんとバージョンチェックが出来る筈だが、上手く行かない ; どうもバージョンナンバーの頭二つしかチェックしてない節が有る ; ObMMのhelpにも ; Use '1.1.0.0' to check if the v1.1 official patch chas been installed. ; なんていう意図&理由が良く分からない説明がある事からもこの関数が余り信頼できない気がする ; 例) ; 1.2.0.214のEXE -> FlagOblivionVer == 3 ; 1.1.0.425のEXE -> FlagOblivionVer == 2 ; --- 1.2.0.416 If OblivionNewerThan 1.2.0.416 SetVar FlagOblivionVer 3 Else ; --- 非対応な1.2系 If OblivionNewerThan 1.2.0.201 SetVar FlagOblivionVer 1 Else ; --- 1.1.0.511 If OblivionNewerThan 1.1.0.511 SetVar FlagOblivionVer 2 ; --- 非対応な1.0&1.1系 Else SetVar FlagOblivionVer 1 EndIf EndIf EndIf ; ----- SI IfNot DataFileExists "DLCShiveringIsles.esp" SetVar FlagSIInstalled 0 Else SetVar FlagSIInstalled 1 EndIf ; ----- Flagを統合 If Equal %FlagOblivionVer% 1 SetVar StrEnvOblivion "不明" SetVar FlagCheckTotal 1 EndIf If Equal %FlagOblivionVer% 2 SetVar StrEnvOblivion "Oblivion 1.1" SetVar FlagCheckTotal 2 EndIf If Equal %FlagOblivionVer% 3 If Equal %FlagSIInstalled% 0 SetVar StrEnvOblivion "Oblivion 1.2 (Vanilla)" SetVar FlagCheckTotal 30 EndIf If Equal %FlagSIInstalled% 1 SetVar StrEnvOblivion "Oblivion 1.2 (Vanilla+SI)" SetVar FlagCheckTotal 31 EndIf EndIf ;------------------------------------------------------------------- ; バージョン確認結果を利用するか ;------------------------------------------------------------------- ; ObMMのver判定が微妙な気がするので誤判定時の逃げ道を準備 ; ----- 不適ver If Equal %FlagCheckTotal% 1 If DialogYesNo "あなたのOblivion環境は最新版でないと思われ、問題が発生する可能性があります。%NewLine%インストールを強行する場合はYes(はい)、キャンセルする場合はNo(いいえ)を選んで下さい", \ "Warning" SetVar FlagForceInstall 2 Else Message "インストールがキャンセルされました" "Notice" FatalError EndIf EndIf ; ----- Ob1.1 If Equal %FlagCheckTotal% 2 If DialogYesNo "あなたのOblivionは %StrEnvOblivion% 環境と判定されましたがこのomod内のファイルはその環境を考慮して作成されておりません。%NewLine%インストールを強行する場合はYes(はい)、キャンセルする場合はNo(いいえ)を選んで下さい", \ "Warning" SetVar FlagForceInstall 2 Else Message "インストールがキャンセルされました" "Notice" FatalError EndIf EndIf ; ----- Ob 1.2 Vanilla If Equal %FlagCheckTotal% 30 If DialogYesNo "あなたのOblivionは %StrEnvOblivion% 環境と判定されました。%NewLine%判定が正しいならばYes(はい)、そうでない場合はNo(いいえ)を選んで下さい。%NewLine%%NewLine%補足)%NewLine%Yesを選択すると環境判定に適合したファイルのみをインストール時の選択で提案します(推奨)。%NewLine%Noを選択すると環境判定に適合しないファイルも選択肢に表示します(熟練者向け)。", \ "Warning" SetVar FlagForceInstall 1 Else SetVar FlagForceInstall 2 EndIf EndIf ; ----- Ob 1.2 Vanilla + SI If Equal %FlagCheckTotal% 31 If DialogYesNo "あなたのOblivionは %StrEnvOblivion% 環境と判定されました。%NewLine%判定が正しいならばYes(はい)、そうでない場合はNo(いいえ)を選んで下さい。%NewLine%%NewLine%補足)%NewLine%Yesを選択すると環境判定に適合したファイルのみをインストール時の選択で提案します(推奨)。%NewLine%Noを選択すると環境判定に適合しないファイルも選択肢に表示します(熟練者向け)。", \ "Warning" SetVar FlagForceInstall 1 Else SetVar FlagForceInstall 2 EndIf EndIf ;------------------------------------------------------------------- ; Ob1.2 SI有 ;------------------------------------------------------------------- ; Select部分はコピペして要らない選択肢をコメントアウトにすれば楽なのだが、 ; コメントアウト行以降の選択肢が表示されないという困った仕様が有るので面倒だがちまちま修正 If Equal %FlagForceInstall% 1 If Equal %FlagCheckTotal% 31 ; ----- JPBooks SelectWithDescriptions "[Main:JPBooks] どのタイプの物を導入しますか? (あなたの環境:%StrEnvOblivion%)", \ "Vanilla+Shivering Isles", \ "Oblivion 1.2環境用。%NewLine%Vanilla(本編)とShivering Isles(公式拡張)に含まれる書籍を翻訳データに置換するModが導入されます。書籍名は英語のままです。%NewLine%Oblivion 1.1環境またはSI未導入環境への導入はお勧めしません。", \ "Donot install", \ "JPBooksをインストールしたくない場合はこれを選んで下さい。" Case Vanilla+Shivering Isles SetVar FlagSelectedJPBooks 1 Break Case Vanilla SetVar FlagSelectedJPBooks 2 Break Case Donot install SetVar FlagSelectedJPBooks 3 Break Default Message "入力値が不正です" "Fatal Error" FatalError EndSelect ; ----- morrowindJPbooks SelectWithDescriptions "[Optional:morrowindJPbooks] どのタイプの物を導入しますか? (あなたの環境:%StrEnvOblivion%)", \ "morrowindJPbooks", \ "Oblivion 1.2環境用。%NewLine%Morrowind書籍の追加と各種おまけ機能を追加しています。特に理由がない場合はこちらで良いでしょう。%NewLine%Oblivion 1.1環境への導入はお勧めしません。", \ "morrowindJPbooks_light", \ "Oblivion 1.2環境用。%NewLine%通常版からおまけ機能を取り除いたLight版です。%NewLine%Oblivion 1.1環境への導入はお勧めしません。", \ "Donot install", \ "morrowindJPbooksをインストールしたくない場合はこれを選んで下さい。" Case morrowindJPbooks SetVar FlagSelectedMwJPbks 1 Break Case morrowindJPbooks_light SetVar FlagSelectedMwJPbks 2 Break Case Donot install SetVar FlagSelectedMwJPbks 3 Break Default Message "入力値が不正です" "Fatal Error" FatalError EndSelect EndIf EndIf ;------------------------------------------------------------------- ; Ob1.2 SI無 ;------------------------------------------------------------------- If Equal %FlagForceInstall% 1 If Equal %FlagCheckTotal% 30 ; ----- JPBooks SelectWithDescriptions "[Main:JPBooks] どのタイプの物を導入しますか? (あなたの環境:%StrEnvOblivion%)", \ "Vanilla", \ "Oblivion 1.2環境用。Vanilla(本編)に含まれる書籍を翻訳データに置換するModが導入されます。Shivering Isles(公式拡張)に含まれる書籍の翻訳データは含まれません。書籍名は英語のままです。%NewLine%Oblivion 1.2でSI導入済み環境へのインストールは問題ないでしょうが選択する意味が有りません。%NewLine%Oblivion 1.1環境への導入はお勧めしません。", \ "Donot install", \ "JPBooksをインストールしたくない場合はこれを選んで下さい。" Case Vanilla+Shivering Isles SetVar FlagSelectedJPBooks 1 Break Case Vanilla SetVar FlagSelectedJPBooks 2 Break Case Donot install SetVar FlagSelectedJPBooks 3 Break Default Message "入力値が不正です" "Fatal Error" FatalError EndSelect ; ----- morrowindJPbooks SelectWithDescriptions "[Optional:morrowindJPbooks] どのタイプの物を導入しますか? (あなたの環境:%StrEnvOblivion%)", \ "morrowindJPbooks", \ "Oblivion 1.2環境用。%NewLine%Morrowind書籍の追加と各種おまけ機能を追加しています。特に理由がない場合はこちらで良いでしょう。%NewLine%Oblivion 1.1環境への導入はお勧めしません。", \ "morrowindJPbooks_light", \ "Oblivion 1.2環境用。%NewLine%通常版からおまけ機能を取り除いたLight版です。%NewLine%Oblivion 1.1環境への導入はお勧めしません。", \ "Donot install", \ "morrowindJPbooksをインストールしたくない場合はこれを選んで下さい。" Case morrowindJPbooks SetVar FlagSelectedMwJPbks 1 Break Case morrowindJPbooks_light SetVar FlagSelectedMwJPbks 2 Break Case Donot install SetVar FlagSelectedMwJPbks 3 Break Default Message "入力値が不正です" "Fatal Error" FatalError EndSelect EndIf EndIf ;------------------------------------------------------------------- ; 強制インストール ;------------------------------------------------------------------- If Equal %FlagForceInstall% 2 ; ----- JPBooks SelectWithDescriptions "[Main:JPBooks] どのタイプの物を導入しますか? (あなたの環境:%StrEnvOblivion%)", \ "Vanilla+Shivering Isles", \ "Oblivion 1.2環境用。%NewLine%Vanilla(本編)とShivering Isles(公式拡張)に含まれる書籍を翻訳データに置換するModが導入されます。書籍名は英語のままです。%NewLine%Oblivion 1.1環境またはSI未導入環境への導入はお勧めしません。", \ "Vanilla", \ "Oblivion 1.2環境用。%NewLine%Vanilla(本編)に含まれる書籍を翻訳データに置換するModが導入されます。Shivering Isles(公式拡張)に含まれる書籍の翻訳データは含まれません。書籍名は英語のままです。%NewLine%Oblivion 1.2でSI導入済み環境へのインストールは問題ないでしょうが選択する意味が有りません。%NewLine%Oblivion 1.1環境への導入はお勧めしません。", \ "Donot install", \ "JPBooksをインストールしたくない場合はこれを選んで下さい。" Case Vanilla+Shivering Isles SetVar FlagSelectedJPBooks 1 Break Case Vanilla SetVar FlagSelectedJPBooks 2 Break Case Donot install SetVar FlagSelectedJPBooks 3 Break Default Message "入力値が不正です" "Fatal Error" FatalError EndSelect ; ----- morrowindJPbooks SelectWithDescriptions "[Optional:morrowindJPbooks] どのタイプの物を導入しますか? (あなたの環境:%StrEnvOblivion%)", \ "morrowindJPbooks", \ "Oblivion 1.2環境用。%NewLine%Morrowind書籍の追加と各種おまけ機能を追加しています。特に理由がない場合はこちらで良いでしょう。%NewLine%Oblivion 1.1環境への導入はお勧めしません。", \ "morrowindJPbooks_light", \ "Oblivion 1.2環境用。%NewLine%通常版からおまけ機能を取り除いたLight版です。%NewLine%Oblivion 1.1環境への導入はお勧めしません。", \ "Donot install", \ "morrowindJPbooksをインストールしたくない場合はこれを選んで下さい。" Case morrowindJPbooks SetVar FlagSelectedMwJPbks 1 Break Case morrowindJPbooks_light SetVar FlagSelectedMwJPbks 2 Break Case Donot install SetVar FlagSelectedMwJPbks 3 Break Default Message "入力値が不正です" "Fatal Error" FatalError EndSelect EndIf ;------------------------------------------------------------------- ; マージチェック ;------------------------------------------------------------------- ; マージフラグは両方のカテゴリでespが指定された場合、ユーザーに確認を求める IfNot Equal %FlagSelectedJPBooks% 3 IfNot Equal %FlagSelectedMwJPbks% 3 If DialogYesNo "マージ版Modを使用できます。%NewLine%マージ版を使用すると導入されるファイルが1つだけになるので便利です。%NewLine%マージ版を使用しますか?(推奨:Yes)" "Merge" SetVar FlagSelectedMerge 1 Else ;do nothing EndIf EndIf EndIf ;------------------------------------------------------------------- ; 何も選ばれて無い場合はここでおしまい ;------------------------------------------------------------------- If Equal %FlagSelectedJPBooks% 3 If Equal %FlagSelectedMwJPbks% 3 Message "インストール対象ファイルが何も選ばれていません。終了します。" "Warning" FatalError EndIf EndIf ;------------------------------------------------------------------- ; 選択espを絞り込む (表示も作成) ;------------------------------------------------------------------- If Equal %FlagSelectedMerge% 1 ; &&が欲しい… ; ----- JPBoos_V+S + morrowindJPbooks If Equal %FlagSelectedJPBooks% 1 If Equal %FlagSelectedMwJPbks% 1 SetVar FlagInstallMergedVSM 1 SetVar StrInstallFiles "%StrInstallFiles%JPBooks_Merged[V+S+M].esp%NewLine%" EndIf EndIf ; ----- JPBoos_V+S + morrowindJPbooks_light If Equal %FlagSelectedJPBooks% 1 If Equal %FlagSelectedMwJPbks% 2 SetVar FlagInstallMergedVSML 1 SetVar StrInstallFiles "%StrInstallFiles%JPBooks_Merged[V+S+ML].esp%NewLine%" EndIf EndIf ; ----- JPBoos_V + morrowindJPbooks If Equal %FlagSelectedJPBooks% 2 If Equal %FlagSelectedMwJPbks% 1 SetVar FlagInstallMergedVM 1 SetVar StrInstallFiles "%StrInstallFiles%JPBooks_Merged[V+M].esp%NewLine%" EndIf EndIf ; ----- JPBoos_V + morrowindJPbooks_light If Equal %FlagSelectedJPBooks% 2 If Equal %FlagSelectedMwJPbks% 2 SetVar FlagInstallMergedVML 1 SetVar StrInstallFiles "%StrInstallFiles%JPBooks_Merged[V+ML].esp%NewLine%" EndIf EndIf Else ; 本当はElseIfで繋げたいけど無いので。まぁそれぞれの変数は ; 一つの値しかとらないので問題はないが。 ; ----- JPBooks : V+S If Equal %FlagSelectedJPBooks% 1 SetVar FlagInstallJPBooksVanillaSI 1 SetVar StrInstallFiles "%StrInstallFiles%JPBooks_Vanilla+SI.esp%NewLine%" EndIf ; ----- JPBooks : S If Equal %FlagSelectedJPBooks% 2 SetVar FlagInstallJPBooksVanilla 1 SetVar StrInstallFiles "%StrInstallFiles%JPBooks_Vanilla.esp%NewLine%" EndIf ; ----- morrowindJPbooks : Normal If Equal %FlagSelectedMwJPbks% 1 SetVar FlagInstallMwJPbksNormal 1 SetVar StrInstallFiles "%StrInstallFiles%morrowindJPbooks.esp%NewLine%" EndIf ; ----- morrowindJPbooks : Light If Equal %FlagSelectedMwJPbks% 2 SetVar FlagInstallMwJPbksLight 1 SetVar StrInstallFiles "%StrInstallFiles%morrowindJPbooks_light.esp%NewLine%" EndIf EndIf ;------------------------------------------------------------------- ; 最終確認 ;------------------------------------------------------------------- If DialogYesNo "以下のファイルがインストールされます。%NewLine%実行する場合はYes(はい)、キャンセルする場合はNo(いいえ)を選んで下さい%NewLine%%NewLine%%StrInstallFiles%", \ "Install" ; do nothing Else Message "インストールがキャンセルされました" "Notice" FatalError EndIf ;------------------------------------------------------------------- ; Install ;------------------------------------------------------------------- ; ----- JPBooks_V+S If Equal %FlagInstallJPBooksVanillaSI% 1 CopyPlugin "010_JPBooks\\JPBooks_Vanilla+SI.esp" "JPBooks_Vanilla+SI.esp" LoadEarly "JPBooks_Vanilla+SI.esp" EndIf ; ----- JPBooks_V If Equal %FlagInstallJPBooksVanilla% 1 CopyPlugin "010_JPBooks\\JPBooks_Vanilla.esp" "JPBooks_Vanilla.esp" LoadEarly "JPBooks_Vanilla.esp" EndIf ; ----- morrowindJPbooks If Equal %FlagInstallMwJPbksNormal% 1 CopyPlugin "020_morrowindjpbooks\\morrowindJPbooks.esp" "morrowindJPbooks.esp" LoadEarly "morrowindJPbooks.esp" EndIf ; ----- morrowindJPbooks_light If Equal %FlagInstallMwJPbksLight% 1 CopyPlugin "020_morrowindjpbooks\\morrowindJPbooks_light.esp" "morrowindJPbooks_light.esp" LoadEarly "morrowindJPbooks_light.esp" EndIf ; ----- JPBoos_V+S + morrowindJPbooks If Equal %FlagInstallMergedVSM% 1 CopyPlugin "100_merged\\JPBooks_Merged[V+S+M].esp" "JPBooks_Merged[V+S+M].esp" LoadEarly "JPBooks_Merged[V+S+M].esp" EndIf ; ----- JPBoos_V+S + morrowindJPbooks_light If Equal %FlagInstallMergedVSML% 1 CopyPlugin "100_merged\\JPBooks_Merged[V+S+ML].esp" "JPBooks_Merged[V+S+ML].esp" LoadEarly "JPBooks_Merged[V+S+ML].esp" EndIf ; ----- JPBoos_V + morrowindJPbooks If Equal %FlagInstallMergedVM% 1 CopyPlugin "100_merged\\JPBooks_Merged[V+M].esp" "JPBooks_Merged[V+M].esp" LoadEarly "JPBooks_Merged[V+M].esp" EndIf ; ----- JPBoos_V + morrowindJPbooks_light If Equal %FlagInstallMergedVML% 1 CopyPlugin "100_merged\\JPBooks_Merged[V+ML].esp" "JPBooks_Merged[V+ML].esp" LoadEarly "JPBooks_Merged[V+ML].esp" EndIf