アクターが習得しているSpellの一覧を取得する

Modを作ろう

簡単に取得する方法はどうやらないみたいです。まず、所持しているSpellを片っ端から見ていきます。次に、そのSpellに割り当てられているPerkを見て、Spellが装備可能なのかを調べます。 Spellは装備して詠唱で […]

簡単に取得する方法はどうやらないみたいです。まず、所持しているSpellを片っ端から見ていきます。次に、そのSpellに割り当てられているPerkを見て、Spellが装備可能なのかを調べます。

Spellは装備して詠唱できるもの、アクティブな効果として出てくるもの、内部的に見えないところで仕事をしているものがあります。Perkが割り当てられていると、装備して詠唱できるもの、つまり習得しているSpellとなるようです。

636 (papyrus)

Function RefreshSpellList()
    PlayerSpellFormList = new Spell[100]
    PlayerSpellNameList = new String[100]

    Actor kPlayer = Game.GetPlayer()
    Int iIndex = kPlayer.GetSpellCount()
    Int iCounter = 0

    while iIndex > 0 && iCounter < 100
        iIndex -= 1
        Spell kSpell = kPlayer.GetNthSpell(iIndex)

        if kSpell
            Perk kPerk = kSpell.GetPerk()

            if kPerk
                Debug.Trace(kSpell + " " + kSpell.GetName() + " " + kPerk + " " + kPerk.GetName())
                PlayerSpellFormList[iCounter] = kSpell
                PlayerSpellNameList[iCounter] = kPerk.GetName() + " " + kSpell.GetName()
                iCounter += 1
            endif
        endif
    endwhile
EndFunction

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