食べ物や飲み物は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