ページ 1 / 1
【解決済み】アイテム消費スキルのコスト用アイテムがなくなる場合のコマンド選択
Posted: 2020年9月11日(金) 10:06
by エックリ
こんにちは。
下記3つのプラグインをお借りしています。
そして下記のようなスキルとアイテムを作成しました。
- 弓(アイテム消費スキル)
→使用すると矢を1つ消費。矢がないと使用できない。
- 矢(コスト用のアイテム)
→単独で使用不可。戦闘中にアイテム欄から所持数を確認できる。
やりたいことは、行動順で先行のアクターがアイテム消費スキルを選択し、
コスト用アイテムがゼロになる場合、そのターンの後続のアクターは同じアイテム消費スキルを選択できないようにしたいです。
現状では、矢が1つあれば戦闘中のパーティー全員(例えばアクター4人)が同時に弓を選択できてしまうため、先行の1人が弓を発動したあと他の3人の弓は失敗になってしまいます。
アイテムを単独で使う場合は「ReviceBattleItemNumber.js」で減らした表示になりますが、スキルのコストとして使う(使う予定)のアイテムも同様に減らした表示になれば、解決するのかな…と思っております。
何か解決法はないでしょうか?
同様の質問がありそうだと思って調べたのですが、見つかりませんでした……
Re: アイテム消費スキルのコスト用アイテムがなくなる場合のコマンド選択
Posted: 2020年9月11日(金) 13:50
by Plasma Dark
https://github.com/elleonard/RPGtkoolMV ... tension.js
取り急ぎ、 DarkPlasma_SkillCostExtension.js に選択時にスキルコストの消費アイテム/ゴールドを反映する機能を追加しました。
TMSkillCostEx.js から乗り換えていただくか、中身を見て適宜移植していただければと思います。
TM** はメンテナが活動していないため、どうしても必要でない限り使用しないことをオススメします。
Re: アイテム消費スキルのコスト用アイテムがなくなる場合のコマンド選択
Posted: 2020年9月11日(金) 15:37
by エックリ
Plasma Darkさん
ありがとうございます!早速DarkPlasma_SkillCostExtension.jsの方を使わせていただこうと思います。
ちなみにテストプレイでエラーが出てしまったので教えていただければと思います。
新規プロジェクトで「ファイア」(ID9、スキルタイプ魔法)のメモ欄に以下の記述をして戦闘テストしました。
(ファイアのコストとしてポーションを1個消費)
コード: 全て選択
<SkillCost:
item:1:1
>
- 1番目のアクター(ハロルド)がファイアを選択
- 2番目のアクター(テレーゼ)がコマンドで「魔法」を選択、魔法を覚えていないのでキャンセルして「防御」を選択
- すると「TypeError Cannot read property 'additionalCost' of undefined」というエラーが出てしまいました。
エラー時にF8を押した詳細↓
コード: 全て選択
rpg_managers.js:1949 TypeError: Cannot read property 'additionalCost' of undefined
at _skills.filter.skill (DarkPlasma_SkillCostExtension.js:89)
at Array.filter (<anonymous>)
at ReservedSkills.costGold (DarkPlasma_SkillCostExtension.js:89)
at Function.BattleManager.reservedSkillCostGold (DarkPlasma_SkillCostExtension.js:128)
at Game_Party.gold (DarkPlasma_SkillCostExtension.js:285)
at Game_Actor.Game_BattlerBase.canPaySkillGoldCost (DarkPlasma_SkillCostExtension.js:246)
at Game_Actor.Game_BattlerBase.canPaySkillCost (DarkPlasma_SkillCostExtension.js:258)
at Game_Actor.Game_BattlerBase.meetsSkillConditions (rpg_objects.js:2788)
at Game_Actor.Game_BattlerBase.canUse (rpg_objects.js:2800)
at Game_Actor.Game_BattlerBase.canAttack (rpg_objects.js:2837)
ちなみに1ターン目に1番目のアクターで通常攻撃や防御を選択すると「TypeError Cannot read property 'additionalCost' of null」というエラーが出ました。
エラー時にF8を押した詳細↓
コード: 全て選択
rpg_managers.js:1949 TypeError: Cannot read property 'additionalCost' of null
at _skills.filter.skill (DarkPlasma_SkillCostExtension.js:89)
at Array.filter (<anonymous>)
at ReservedSkills.costGold (DarkPlasma_SkillCostExtension.js:89)
at Function.BattleManager.reservedSkillCostGold (DarkPlasma_SkillCostExtension.js:128)
at Game_Party.gold (DarkPlasma_SkillCostExtension.js:285)
at Game_Actor.Game_BattlerBase.canPaySkillGoldCost (DarkPlasma_SkillCostExtension.js:246)
at Game_Actor.Game_BattlerBase.canPaySkillCost (DarkPlasma_SkillCostExtension.js:258)
at Game_Actor.Game_BattlerBase.meetsSkillConditions (rpg_objects.js:2788)
at Game_Actor.Game_BattlerBase.canUse (rpg_objects.js:2800)
at Game_Actor.Game_BattlerBase.canAttack (rpg_objects.js:2837)
それともうひとつあるのですが、
- 1番目のアクター(ハロルド)がファイアを選択
- 2番目のアクター(テレーゼ)が防御を選択
- 3番目のアクター(マーシャ)が防御を選択
- 4番目のアクター(ルキウス)がアイテムを選択すると、コスト用アイテムのポーションが96個になっていました。
3番目のアクターでアイテムを選択するとポーションが97個になっているので、防御でもアイテムが減ってしまっているようです。
こちら解決できるでしょうか…。
すみませんがよろしくお願いします。
Re: アイテム消費スキルのコスト用アイテムがなくなる場合のコマンド選択
Posted: 2020年9月11日(金) 20:13
by エックリ
すみません、下記のトピックを見ていてふと思ったことがありました。
【戦闘画面】戦闘不能キャラに回復アイテムを使った際の挙動について
viewtopic.php?f=23&t=9992
戦闘不能キャラに対してポーションの使用を選択できること自体に違和感を覚えてます。
(中略)
戦闘不能回復を使用した後(例えば、HP1で復活)に別のアクターがHPを回復させるという行動が出来るようにしているものだと思われます。
アイテム消費スキルの場合、アイテムの種類によっては、戦闘中に作成・生成できるという設定のものもあるかもしれません。
例えば錬金術師のスキルで矢を作り出すなど。
矢が残り1個の状態で、最初のアクターが弓を選択、次のアクターが矢を2個生成、3~4番目のアクターが弓を選択…という連携をしたい場合、スキル選択時にアイテム消費数を反映してしまうと、同一ターンでの連携はできなくなってしまうなと思いました。
そう考えると、コストアイテムの消費数は実際にスキルが発動するまで反映されなくても良いのかも…と思ってしまいました。
もし可能であれば、コストの消費数をすぐ(そのターンで)反映するかしないかをプラグインのオプションで選べたら嬉しいです。
わがままを言ってしまい本当にすみません
おそらくすぐ反映しない方が柔軟性があるかもしれません。
Re: アイテム消費スキルのコスト用アイテムがなくなる場合のコマンド選択
Posted: 2020年9月11日(金) 21:01
by Plasma Dark
ちなみにテストプレイでエラーが出てしまったので教えていただければと思います。
https://github.com/elleonard/RPGtkoolMV ... tension.js
修正いたしました。
1番目のアクター(ハロルド)がファイアを選択
2番目のアクター(テレーゼ)が防御を選択
3番目のアクター(マーシャ)が防御を選択
4番目のアクター(ルキウス)がアイテムを選択すると、コスト用アイテムのポーションが96個になっていました。
3番目のアクターでアイテムを選択するとポーションが97個になっているので、防御でもアイテムが減ってしまっているようです。
ReviceBattleItemNumber.js がやんちゃなことしていたので、そこと競合していました。
正確には、スキル使用のたびに、既に入力済みのスキルで消費したアイテムが減っていくという現象でした。
検討の結果、減り続ける不具合へは対処しましたが、 ReviceBattleItemNumber.js との競合には対処しないこととしました。
アイテム使用時に個数減少が反映されるプラグインについては、別途もう少しお行儀の良い書き方で書いてみます。
もし可能であれば、コストの消費数をすぐ(そのターンで)反映するかしないかをプラグインのオプションで選べたら嬉しいです。
入力後即反映するかどうか選択するパラメータを追加しました。
Re: アイテム消費スキルのコスト用アイテムがなくなる場合のコマンド選択
Posted: 2020年9月11日(金) 21:24
by エックリ
Plasma Darkさん
いろいろとありがとうございます!
修正していただいたバージョンで問題なく動作しました!
反映のオプションも付けていただいてありがとうございます
