死体を解体する 4

不具合はひと通り解消して、最後の機能の組み込みまで来ました。

・周りに善良な人がいる時に死体を解体すると人殺しと間違われる

人殺しアラームを出す関数があると思ったんですが、TES4 Scriptにはありませんでした。
OBSEのドキュメントを見ると SetPCAMurderer という関数がありました。

SetPCAMurderer 1 でプレイヤーが人殺しになるようなんですが、詳しい説明が一切ありません。
関数を実行したフレームだけ人殺し扱いなのか、SetPCAMurderer 0 を実行するまでずっと人殺しなのか、何かのタイミングでリセットされるのか、友好度や名声は影響するのか…何も分かりません。
CS Wikiにも説明はありませんでした。

とりあえず、解体時にこの関数を実行するようにスクリプトを変更。
宿屋のおやっさんの目の前で死体を解体したのですが、おやっさんの対応は何も変わらず。
友好度も変化していませんでした。

グーグル先生に聞くと、OBSEのソースコードが出てきました。
処理を見ると、人殺しフラグをセットしてるだけみたいです。

このフラグの値を見て、別の場所で何かアラームを出すような処理をしている可能性もあります。

TES4 Scriptのヘルプで IsPCAMurderer を調べると、プレイヤーがNPCを殺したことがあるかどうか?を調べる関数と対応しているっぽいことが分かります。
どうも、SetPCAMurderer は、単にNPC殺したことある?フラグを操作するだけで、周囲に犯罪アラームを出すということはないようです。
闇兄弟のクエスト開始条件として使うんでしょう。

もうひとつ、NPC.kill player とすることで、playerがNPCを殺したことにできるようなのですが、NPCが既に死んでいる場合、効果はあるんでしょうか?

試してみましたが、同じく変化なし。

試しに、SendTresspassAlarm player を使用。
不法侵入の警報を出す関数です。
どうも、この関数より下にある処理が実行されなくなるようなので、処理の一番最後に移動。

変化なし。

・・・

死霊術MODで、死体解体時に周囲に犯罪アラームを出すものがあった気がします。
参考になるかも知れません。
 


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

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

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

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