【解決】アクターの職業IDを変数に代入したい【よくある質問】

#ツクルーム フォーラム RPGツクールMV (RPG Maker MV) 【解決】アクターの職業IDを変数に代入したい【よくある質問】

  • このトピックには2件の返信、2人の参加者があり、最後にEvelynにより3週、 5日前に更新されました。
4件の投稿を表示中 - 1 - 4件目 (全4件中)
  • 投稿者
    投稿
  • #463 返信
    munokura
    参加者

    アクターの職業IDをスクリプトで変数に代入したいです。

    • $gameVariables.setValue(8,$gameActors.actor(1).Classes);
    • $gameVariables.setValue(8,$gameActors.actor(1).Class);

    というようにして、変数ID8に入れようとしているのですが、0しか返ってきません。

    検索して、職業を変更するスクリプトは見つかるのですが、現状の職業IDを調べるスクリプトが分かりませんでした。

    • このトピックはmunokuraが7ヶ月、 3週前に変更しました。
    • このトピックはハリズミが7ヶ月、 2週前に変更しました。
    #464 返信
    ツクールAI君
    メンバー

    ## RPGツクールMV アクターの職業IDを変数に代入したい 件

    **実現したいこと**
    * アクターの職業IDを変数に格納

    **試したこと**
    * `$gameVariables.setValue(8,$gameActors.actor(1).Classes);` を使用
    * `$gameVariables.setValue(8,$gameActors.actor(1).Class);` を使用

    **試用プラグイン**
    * なし

    **問題点**
    * 変数に0しか代入されない。現状の職業IDを取得する方法が不明。

    **不明点**
    * 特になし

    投稿者様、こちらの要約は意図通りでしょうか?不明点が補足・追記いただけると回答が得やすくなると思われます。

    ### 回答

    `$gameActors.actor(1).Classes` と `$gameActors.actor(1).Class` はどちらも誤りです。正しくは `$gameActors.actor(1)._classId` を使用します。

    アクターオブジェクトは内部で `_classId` というプロパティに職業IDを保持しています。これを取得することで、現在の職業IDを知ることができます。

    以下のようにスクリプトを修正してください。

    “`javascript
    $gameVariables.setValue(8, $gameActors.actor(1)._classId);
    “`

    これで変数ID 8 にアクター1の職業IDが格納されます。

    ※閲覧者の皆様、私の回答に問題がありましたら、ご指摘いただけると助かります。
    また、解決できた場合、トピックを編集し「トピックを解決済みにする」にチェックを入れてください。

    #465 返信
    munokura
    参加者

    それでも可能でしたが、

    $gameVariables.setValue(8, $gameActors.actor(1).currentClass().id);

    の方が望ましいと聞きました。

    解決といたします。

    • この返信は7ヶ月、 3週前にmunokuraが編集しました。
    #779 返信
    Evelyn
    参加者

    <p data-start=”0″ data-end=”58″>原因は、Classes や Class というプロパティが存在しないためです。職業IDはその名前では取得できません。</p>
    <p data-start=”60″ data-end=”126″>MVでは、現在の職業IDはアクターが持つ currentClass() から取得できます。変数に入れる場合は、次の書き方が正解です。</p>

    <div class=”contain-inline-size rounded-2xl corner-superellipse/1.1 relative bg-token-sidebar-surface-primary”>
    <div class=”@w-xl/main:top-9 sticky top-[calc(–spacing(9)+var(–header-height))]”>
    <div class=”absolute end-0 bottom-0 flex h-9 items-center pe-2″>
    <div class=”bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs”></div>
    </div>
    </div>
    <div class=”overflow-y-auto p-4″ dir=”ltr”><code class=”whitespace-pre! language-javascript”>$gameVariables.<span class=”hljs-title function_”>setValue</span>(<span class=”hljs-number”>8</span>, $gameActors.<span class=”hljs-title function_”>actor</span>(<span class=”hljs-number”>1</span>).<span class=”hljs-title function_”>currentClass</span>().<span class=”hljs-property”>id</span>);
    </div>
    </div>
     
    <p data-start=”215″ data-end=”301″ data-is-last-node=”” data-is-only-node=””>内部変数の _classId を直接参照する方法もありますが、仕様変更の影響を受けにくいのは currentClass().id の方なので、こちらを使うのが望ましいです。</p>

4件の投稿を表示中 - 1 - 4件目 (全4件中)
返信先: 【解決】アクターの職業IDを変数に代入したい【よくある質問】
あなたの情報:




ゲスト