武器が壊れると戦闘不能・ゲームオーバーを実現したい

sirotezza
記事: 39
登録日時: 2018年5月10日(木) 23:13

武器が壊れると戦闘不能・ゲームオーバーを実現したい

投稿記事by sirotezza » 2018年10月11日(木) 04:04

お世話になっております。

現在制作しているゲームで、沢山の職業の中から自由に選択し、それぞれに対応した武器を装備して戦うというシステムを考えているのですが、
そのコンセプトの中で、タイトルの通り
「装備した武器が壊れると戦闘不能になり、パーティー全員の武器が壊れるとゲームオーバー」
となるようなシステムを構築したいと思っています。

現状では、単純にデフォルトのHPを「武器の耐久力」と想定し、名称を設定していたのですが、
それだと武器を持ち替えた時に理屈が合わなくなってしまいます。

具体的には、

例えば「魔法使い」という職業のキャラが、専用武器の「魔法杖A」を装備して戦う場合。
敵の攻撃によってHP(武器の耐久力)が減少し、0になると「魔法杖A」が壊れてしまい戦闘不能。

↑ここまではいいのですが、

途中で武器を「魔法杖B」に持ち替えた場合、当然HP(武器の耐久力)の値は変わらないため、新品だった「魔法杖B」がすでにダメージを負っている……ということになるのです。
さらに、もしも武器を何も持っていない状態の場合、殊更におかしなことになります。


なので、

・武器それぞれに独立した耐久力を設定する
・攻撃によって減少、アイテムやスキルによって回復などが行える
・スキルのダメージ計算式が武器の耐久力に反映
・装備している武器の耐久力をHPゲージとして表示
・装備している武器の耐久力が0になると戦闘不能
・耐久力が0になった武器は「壊れた武器」として保存されている
・耐久力0からでも修復が可能
・パーティー全員の武器の耐久力が0になるとゲームオーバー

という仕様を実現したく、みなさんの知恵をお借りしたいです。
一言でいうと、「個別に設定した武器の耐久力をHPとして扱いたい」というものです。


自分で調べてみて、一番可能性を感じたのは「YEP_ItemDurability」というプラグインなのですが、
「武器の耐久力をHPとして扱う」というところが実現できなさそうに感じます。

この際、素手の状態にどうするかということはまた別の問題として考えようと思いますので、
この「武器の耐久力をHPとして扱うという」ことについて、どなたか知恵をお貸しいただけないでしょうか。

よろしくお願いいたします。

tubo
記事: 57
登録日時: 2017年10月11日(水) 16:29
お住まい: 兵庫県
連絡を取る:

Re: 武器が壊れると戦闘不能・ゲームオーバーを実現したい

投稿記事by tubo » 2018年10月11日(木) 08:23

YEP_X_ItemDurabilityの武器耐久値とアクターのHPをリンクさせます
軽くテストしただけなので問題があればここにお願いします
最後に編集したユーザー tubo on 2018年11月14日(水) 16:04 [ 編集 1 回目 ]
sirotezza
記事: 39
登録日時: 2018年5月10日(木) 23:13

Re: 武器が壊れると戦闘不能・ゲームオーバーを実現したい

投稿記事by sirotezza » 2018年10月21日(日) 18:19

お返事が遅くなりすみません。
tuboさん、わざわざありがとうございます!!

おかげさまで希望通りの機能が実装できそうです……!
今のところ不具合はなさそうなので、また異常があればご報告させていただきます。

ありがとうございました!
sirotezza
記事: 39
登録日時: 2018年5月10日(木) 23:13

Re: 武器が壊れると戦闘不能・ゲームオーバーを実現したい

投稿記事by sirotezza » 2018年11月13日(火) 23:26

tuboさん、お世話になっております。
作っていただいたプラグインを使って制作を進めていたのですが、いくつか意に沿わない挙動を発見したのでご報告させていただきます。


・戦闘でHP(武器耐久力)が0になり、戦闘不能状態になったとき、戦闘を終えてアイテム欄から装備を見るとその武器が<Unbreakable>状態になっている。
敵からのダメージによって戦闘不能になり、戦闘を終えてメニュー画面を開くと、HPの数値の表記はちゃんと0になっていますが、アイテム欄からその装備を見ると、<Unbreakable>を設定した場合と同じ表記(例:「壊れない」など)になっています。
こちらとしては、耐久力が0になっても武器が消滅せずに残っていることが望ましいため、武器が残っているのは嬉しいのですが、その表記だけが気になるという状態です。


・戦闘でキャラが通常攻撃を行い、敵に命中した際、その武器の耐久力が1ずつ減っていき、それによって耐久力が0になると武器が壊れ、アイテム欄から消滅する。
これはおそらく「YEP_ItemDurability」のデフォルトの挙動なのかと思います。しかし上の通り、できれば「耐久力が0になっても武器が残っている状態」が望ましいのですが、敵からの攻撃によって耐久力が0になった場合と、自らの攻撃の行動で耐久力が0になった場合とで、その武器の結末が変わってしまいます。できれば、この「自キャラが通常攻撃を命中させるとその武器の耐久力が減る」という機能をカットしたいのです。


・負けイベントの戦闘で、戦闘処理の「敗北可」にチェックして戦闘を行い、全員のHP(武器耐久力)が0になって敗北しても、戦闘が終わると即ゲームオーバーになる。
よくある負けイベントで、敗北後もそのままイベントが継続してほしいのですが、戦闘が終わるとゲームオーバーになってしまいます。

・イベントコマンドの「全回復」が適用されない。
当方のゲームシステム上、 HPとMPの回復は別々に行うようにしようと考えているためそれほど重要ではないのですが、イベントコマンドで「全回復」を使用しても、武器の耐久力に適用されません。イベントコマンドで「HPの増減」を行なった場合は適用されます。回復アイテムや復活アイテムも通常通り適用されます。


以上、まとめると、

・自キャラが通常攻撃をしても耐久力が減らない&それによって武器が消滅しないようにしたい。
・武器の耐久力が0になった場合のアイテム欄での表記を「0/X(最大HP)」のようにしたい。
・敗北可の戦闘で敗北しても、通常通りイベントが継続してほしい
・イベントコマンド「全回復」が適用するようになってほしい

といったところです。

お忙しいところお手数をおかけしますが、お力をお貸しいただけたら幸いです…。
よろしくお願いいたします。
tubo
記事: 57
登録日時: 2017年10月11日(水) 16:29
お住まい: 兵庫県
連絡を取る:

Re: 武器が壊れると戦闘不能・ゲームオーバーを実現したい

投稿記事by tubo » 2018年11月14日(水) 16:04

処理を追加しましたので確認お願いします。
添付ファイル
LinkWeaponAndActor.js
(5.15 KiB) ダウンロード数: 22 回
sirotezza
記事: 39
登録日時: 2018年5月10日(木) 23:13

Re: 武器が壊れると戦闘不能・ゲームオーバーを実現したい

投稿記事by sirotezza » 2019年2月20日(水) 19:28

tuboさん、ありがとうございます! 大変遅くなり申し訳ありません。
テストしてみたところ、また新たな不具合が発生いたしました……。


・戦闘でHP(武器耐久力)が0になり、戦闘不能になったとき、戦闘を終えてアイテム欄からその装備を見ると、耐久力の数値が「0/X/X」という表記になっている。
 敵からのダメージによって戦闘不能になり、戦闘を終えてメニュー画面を開くと、HPゲージの表記はちゃんと0になっていますが、アイテム欄からその装備を見たときの表記がおかしいのです。

 例)例えば武器の最大耐久力が30だった場合、HPが0になると、アイテム欄での耐久力表示が 0/30/30 と表示されてしまいます。

できれば通常時と同様に、 0/30 という風に表示されていれば嬉しいのですが……。


・同じ武器を複数所持し、それを持ち替えたとき、最初に持っていたHPが後に装備した武器に引き継がれる。
 例えば「魔法杖」という武器を「魔法杖1」「魔法杖2」などというふうに複数所持しており、「魔法杖1」の耐久力が減ったので「魔法杖2」に持ち替えると、「魔法杖1」の耐久力の値が「魔法杖2」の方にも受け継がれてしまいます。
 同時に、もしも「魔法杖1」の耐久力が0(戦闘不能状態)だった場合、耐久力の残っている「魔法杖2」に持ち替えると、戦闘不能状態が解除されてHPが1になってしまいます。

 ゲーム中では同じ武器を複数所有するということも想定しているため、できればHPも武器ごとに保存され、HPに反映されれば嬉しいです。


以上2点、度重なるお願いで恐縮ですが、もし可能であれば修正いただければ幸いです。
よろしくお願いいたします。

“MV:質問” へ戻る