ポーションを合成するとアニメーションしてしまうのを修正する

環境構築

ポーションを飲んだ時にアニメーションをするようになるModを組み合わせたときの問題を解決しました。

Potion Animated fix (SE)はポーションを飲んだ時にアニメーションをするようになるModです。デモンズソウルやモンスターハンターのような飲む動作をするので、プレイヤーに隙が生まれゲームの難易度が上昇します。

Upgrade Your Potionはポーションを煮詰めて上位のポーションにアップグレードできるようになるModです。レベルが上がってくると下位のポーションは焼け石に水なのでアニメーションのペナルティに合わなくなってしまいます。それを解消してくれます。

さて、この2つを組み合わせると、ポーションを煮詰める時にアニメーションしてしまいます。原因は、ポーションがインベントリから取り除かれる時にPotion Animated fixが「飲んだ」と判定しているからです。

問題のコードはPAF_InventoryCheck.pscで、修正するとこうなります。

Potion Animated fix (papyrus)

Event OnItemRemoved(Form akBaseItem, int aiItemCount, ObjectReference akItemReference, ObjectReference akDestContainer)
    GotoState("Busy")

    if akBaseItem == none || akItemReference || akDestContainer
        GotoState("")
        return
    elseif !akBaseItem.HasKeyword(VendorItemPotion) || akBaseItem.HasKeyword(VendorItemPoison) || akBaseItem.HasKeyword(VendorItemWeapon)
        GotoState("")
        return
    elseif PlayerRef.IsOnMount() || PlayerREF.GetAnimationVariableBool("bInJumpState") == true || PlayerREF.IsSwimming() == true || PlayerREF.getAnimationVariableBool("isStaggering") == true || PlayerREF.IsInKillMove() || PlayerREF.GetActorValue("Health") <= 0
        GotoState("")
        return
    elseif !Game.IsLookingControlsEnabled()
        GotoState("")
        return
    endif

    DrinkPotion(akBaseItem as Potion)
EndEvent

これで煮詰めてもアニメーションしなくなりました。副作用でアニメーションしなくなってしまう機会が増えてしまうかと思ったのですが、インベントリを開いて飲んでも、お気に入りを開いて飲んでも、きちんとアニメーションしてくれました。

タイトルとURLをコピーしました