食べ物や飲み物について

Modを作ろう

食べ物や飲み物の扱いについてまとめました。

食べ物や飲み物はSkyrimの世界ではすべてポーションとして扱われます。回復ポーションもキャベツもハチミツ酒も、すべてポーションです。

食べたり飲んだりするには

食べたり飲んだりするには装備します。ポーションを装備するのです。

PlayerRef.EquipItem(kPotion)

種類を判定するには

食料かどうかはIsFood関数を使います。食料は飲み物も含みます。この設定はCKでしておくのですが、これがどのように扱われるのかはよくわかりません。おそらく、食料は料理に使えて、そうれなければ錬金術で取り扱う薬品となるのだと思います。

毒かどうかはIsPoison関数を使います。毒を武器に塗る時も装備です。毒を口にすることはないようです。あくまでも毒として扱うかどうかです。体力が減る効果ではあるけれど毒ではない、としておけば武器には塗らずに口にします。

飲み物かどうかを判定する関数はありません。そもそも飲み物フラグがないのです。そこで、飲み物を判定する方法を2つ紹介します。

食料を口にしたときに再生される効果音を見て判断する方法です。Modで追加された飲み物でも対応できます。簡単で確実な方法です。独自の効果音を割り当ててあるものには使えません。

Bool Function IsDrink(Potion akTarget)
    return akTarget.GetUseSound() == Game.GetForm(0xB6435)
EndFunction

飲み物リストを作っておいて判断する方法です。リストの管理が面倒なのがデメリットです。

FormList Property DrinkList Auto    ; CKでFormListを作って紐づけしておく

Bool Function IsDrink(Potion akTarget)
    return DrinkList.Find(akTarget) != -1
EndFunction
タイトルとURLをコピーしました