今更なオブリビオンブログ
おもにMOD関連のメモを書いていくと思います、MODをいじったり、作ってるのが楽しいです。
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

MOD作り13
まず、「落とす用の松明」を作ります。
松明は、「Item」ではなくて、「WorldObjects」の中の「Light」の中にあります。

下の画像は、ヴァニラの松明「Torch02」の設定です。


この、赤枠で囲った部分の「Can carry」にチェックを入れるとアイテムとして持ち物の中に入る、松明の扱いになります。
この設定が無いと、アクティベートをすること自体が出来なくなります。(蝋燭や自然光等の設定)
その横の「Off by default」は、オブジェクトがロードされた時に初めから火がついているかどうかのチェックです。
ヴァニラの松明はこのチェックが無いため、落ちている松明には火がついていません。

ヴァニラの松明の「Off by default」のチェックを外したものを作れば、「落とす用の松明」の完成です。



次は、松明を落とすクエストスクリプトを作ります。
要点だけ書き出します。

Short WeaponType

begin GameMode
set WeaponType to player.GetWeaponAnimType

if player.IsWeaponOut == 1 && player.isshieldout == 1
 if player.GetEquipped torch02 == 1
  Player.AddItemNS Torch02Drop 1
  Player.EquipItemSilent Torch02Drop
  Player.UnequipItemSilent Torch02Drop
  Player.RemoveItemNS Torch02 1
  Player.Drop Torch02Drop 1
 endif
elseif player.IsWeaponOut == 1 && WeaponType > 1
 if player.GetEquipped torch02 == 1
  Player.AddItemNS Torch02Drop 1
  Player.EquipItemSilent Torch02Drop
  Player.UnequipItemSilent Torch02Drop
  Player.RemoveItemNS Torch02 1
  Player.Drop Torch02Drop 1
 endif
endif

・まず、「WeaponType」の変数を宣言して、現在の武器の種類を取得しています。
「GetWeaponAnimType」の返す値で、現在両手持ち武器かどうか判定しています。

・「IsWeaponOut」のコマンドで、現在武器を抜いているかどうかの判定、「GetEquipped」で何を装備しているかを取得出来るので、これを使います。
最初のif文の所で「戦闘態勢で、盾を装備している」状態の時に松明を装備するとスクリプトを実行しています。(左手で松明が使えない状態の時)
この条件だと、素手の時と盾が無い時には松明を落としません。
次のif文の所で「戦闘態勢で両手持ち武器を装備」の状態の時に松明を装備するとスクリプトを実行しています。
これは、最初のif文の条件だけでは、「盾を持たずに両手持ち武器を装備で松明を装備」した時に松明を落とさないため、必要となります。

・次に、実行しているスクリプトの内容です。
Player.AddItemNS Torch02Drop 1
Player.EquipItemSilent Torch02Drop
Player.UnequipItemSilent Torch02Drop
Player.Drop Torch02Drop 1
Player.RemoveItemNS Torch02 1

まあ、見ればなんとなく分かると思いますが、「Torch02Drop」が「落とす用の松明」です。
条件がそろった時に「落とす用の松明」をコッソリと持ち物に追加し、それを「装備」、「装備を外す」を実行することで、松明を持っていない状態にします。
(※後で気づいたんですが、条件がTorch02を装備している時なので、ここは別にTorch02の装備を外すだけでよかった。この処理が必要なのは、条件が「IsTorchOut」を使っている場合で、この条件なら、MODで追加された松明でも反応するが、武器構え中に松明を落とせなくなる)
その後、「落とす用の松明」を落とし、荷物の中のヴァニラの松明を減らしています。


当然クエストスクリプトの実行頻度は変更してあります。
あとは、「落とす用の松明」を拾った時に「ヴァニラの松明」に交換するスクリプトを付ければ完成です。



…あれ?意外と簡単にできた?と思いきや、問題が発生。
松明を落とすことは落とすのですが、なんと、落とした松明が周りを照らしてくれません。
?…なぜ?
ちょっと、わけが分かりません。
スポンサーサイト

テーマ:Oblivion - ジャンル:ゲーム

コメント

コメントの投稿














管理者にだけ表示を許可する


トラックバック
トラックバック URL
http://5588ob.blog.fc2.com/tb.php/43-65894094
この記事にトラックバックする(FC2ブログユーザー)

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。