忍者ブログ

方向音痴のSkyrim

PCゲーム「Skyrim」の雑多なCKいじり日記

スカイリムの掃除人10


各ホールドの掃除人は、週末になるとそれぞれの首都でのんびり休むスケジュールを組んでいます。
しかしここスカイリムでは、カジートであるAjjalは首都に入ることができません。ホワイトランの外でうろうろさせているだけなのもつまらないので、露天を開いてもらうことにしました。



カジートキャラバンが来ていると、いい感じに混ざれます。
リサードさんが迷惑そう。



掃除人達の日常を演出するために、新しいクエストを作りました。
掃除人達の専用セリフ、自作宿での月一回の集会スケジュール、そしてAjjalのお店も、このクエストで管理します。
そして月一回の集会の際、元締めのところで所持品を全て換金&分け前をもらうスケジュールも加えてみることにしました。
Scriptがうまく書けたら、掃除人フォロワーの所持品整理にも応用できます。


↓暫定案

概算だけならKeywordを駆使すれば、どの種類のアイテムをいくつ持っているかは分かりそうです。でもKeywordだけでは正確な値段の取得は不可能。
せっかくなら持っているアイテムの値段をきちんと計算して、正確な総額を得たい。そこで所持品の操作は、SKSEの関数を使いました。

SKSEの”GetNthForm”で所持品から一種類ずつアイテムを取り出し、その値段に所持数を掛け合わせて、「話術スキル0」の時の売却係数で割ります。これを繰り返して、所持品を全て換金。
ただ、どうもプレイヤーが鍛えた武具はベースとなった武具と見分けがつけられないようです(FormIDが同じだから?)。自作符呪品もだめそう。見分ける方法が分からないので、とりあえずは十把一絡げに処理しておきます。安く見積もられちゃうけど、仕方ない。
錬金術で作ったポーション(独自のFormID:ffxxxxxxを持っていた)には対応できていました。
 
現在装備中のものは一時保管用宝箱に移動させ、売却しないように工夫してみました。
処理の途中で装備品をインベントリから取り除いたら、"GetNumItems"で取得した処理開始前のアイテム数と不整合が起きるんじゃないかと思ったんですが、実際にScriptを動かしてみると特に問題はありませんでした。問題ないけど、処理中は装備品のリストアップだけして、"RemoveAllItems"の直前に保管用宝箱にまとめて移したほうが安全かもしれません。

所持品の換算が終わったら、「1:9」の割合で、元締めと稼ぎを山分けします。掃除人の取り分が少なすぎるように見えますが、拾った現金はそのまま掃除人の懐に入るので、バランスは取れると思います。

最後に掃除人のインベントリから全てのアイテムを取り去り、元締めの商売用宝箱へ移します。この宝箱はリスポンするので、Playableでないアイテムやその他のよく分からないアイテムを取っていても、リスポンのタイミングで消えてくれるでしょう。"RemoveAllItem"はプレイヤーに対して実行すると、クエストアイテムだけインベントリに残すことも可能ですが、NPCに対してはそんな細かいことはできないようです。クエストアイテムはリスポンしないはずなので、商売用宝箱に入れても多分大丈夫。事前に掃除人から取り上げておいたほうがいいのは当然ですが。

テストのために、Scriptは掃除人フォロワーとの会話からいつでも呼び出せるようにしておきます。



ダンジョンをひとつクリアしたら、総額いくらになるのか。
クエストアイテムの安否も気になるので、カルジョさんの「月のアミュレット」を取り返しにホワイト川監視所へ行きました。プレイヤーはLv13です。
掃除人にはできる限りのアイテムを取得させます。



入り口付近の敵を掃除したら、「ここで待て」をする。掃除人が自分の周りのアイテムを拾っている間に、こちらは先へ進んで敵を倒す。あらかた片付いたら掃除人を呼びに戻って、新しい場所で再び待機させる。この繰り返し。掃除人が物を取ろうと無理をしてオブジェクトの隙間に挟まることがよくあるので、あんまり効率はよくないです。根こそぎにしようと思ったら、ダンジョンを掃討した後で来た道を戻りながら拾う方がいいのかも。
なぜかウルフルさんの周りでだけは、物を拾いませんでした。なにか特別な空間なのかもしれない。

掃除人にクエストアイテムを取らせて、ダンジョンクリア。恐る恐る「持ち物全部売ってこい」と指示を出します。



Papyrusログに出力した、取得アイテムとその売却額の一覧です。
全132種。名前のないアイテムがある……。
IDも表示するようにしたところ、名前のないアイテムはDummyPotionと食事用ナイフでした。透明だったりPlayableじゃなかったりするので、名前が設定されていなくても不思議ではないでしょう。


 
掃除人がダンジョンで手にした現金は418ゴールド。
アイテムをゴールド換算して得た金額は1294ゴールド。塵も積もれば……ですが、1ゴールドにもならないゴミアイテムがほとんどなので高額になりにくい。大半は山賊から剥ぎ取った武具の値段です。
最終的な分け前は、掃除人547ゴールド。元締め1165ゴールド。

ちなみに全ての処理に15秒かかりました。長い。


 
月のアミュレットは、無事に宝箱へ移されていました。マーカーもちゃんと出ています。


 
元締めに話しかけたら、何食わぬ顔でクエストアイテムを販売していました。こんなに高価なアミュレットだったんですね。
手持ちが少なかったため、掃除人フォロワーが持っていたゴールドを取り上げて購入。
クエストアイテムを買い戻すって、なにか新鮮だわ。



買い取ると同時に、クエストのほうも問題なく進行しました。



「メリディアの灯火」も販売されました。買い取って売買メニューを抜けると、メリディア様が脳内に語りかけてクエストが始まります。

金額換算処理に時間がかかるので、その間にプレイヤーが色々やってもおかしなことにならないかも試してみました。処理の途中でセーブしてゲームをやめても特に問題なし。処理の途中、クエストアイテムが宝箱に入った直後に、店主を殴りロードしても問題なし。とりあえずは大丈夫そう。

一通りフォロワーを使ってみたところ、装備しているものだけ手元に残す設定は、要らない機能のような気がしました。何でも拾っちゃう掃除人の装備を固定するのは大変だし、売って欲しいものを装備していたらかえって不便です。
掃除人フォロワーにこの機能を実装する時は、持ち物を全部売っぱらわせよう。それから、換金で得たお金はプレイヤーと山分けできるようにしよう。そうしよう。

前へ | 次へ
PR

Author

UNI
Skyrimで遊ぶのも、CKで改造するのも好きなファンタジー好きです。
戦闘苦手で難易度は基本EASY、慣れてもNORMAL程度。 アンデッド恐怖症なので、ノルド遺跡探索が辛い……。

ブログ内検索

最新コメント

[07/16 chomechome-X]
[07/16 ブレトン魔術師]
[07/15 amo]
[07/10 初心者シセロ]
[07/10 ソウルケルンのエレンウェン]