他のMODのアイテムをAddItemする(OBSE)

他のMODにあるアイテムを自分のMODでAddItemしたい場合、よくある手順は、CSで編集する時に自分のMODと、そのMODの両方にチェックをつけ、自分のMODに Set as Active File を指定する…と考えがちですが、これだとうまく行きません。


string_var mod_name
string_var form_id6
ref form_id

let mod_name := "test.esp"

;AddItemしたいmod_nameにあるアイテムのFormID
;先頭の2桁を除去し、残り6桁を指定する

let form_id6 := "123456"

let form_id := GetFormFromMod $mod_name $form_id6
if form_id
  player.AddItem form_id 1
endif
sv_destruct mod_name form_id6

mod_name と form_id6 は文字列リテラルで指定しても問題ありません。
GetFormFromMod "test.esp" "123456"
肝は GetFormFromMod で、引数に string_var を渡す時は、先頭に $ を付けないと動作しません。

サンプルコードでは、playerにAddItemしていますが、自分のMODのコンパニオンや、自分のMODで配置しているチェストにも使えます。

この方法なら、CSで編集する際に他のMODを読み込む必要がありません。
 


この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

※ブログオーナーが承認したコメントのみ表示されます。
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。