トピックを見ていただきありがとうございます。
ツクマテ、素材制作者様にはいつもお世話になっております。
戦闘時のコマンド入力をもたついているとHPが減っていくような仕組みを作りたいと思っています。
『戦闘中でも自動・並列処理のコモンイベントが起動できるプラグイン』
(viewtopic.php?t=1495)にて
名無し蛙様が制作されましたBattleParallelEvent.jsを使用し、
戦闘中の並列処理で1秒ごとにHPが減少するようにしてみたのですが
上手くステータスウィンドウに反映されませんでした。
内部的にはHPが減少しているようで、戦う/逃げるを選択する画面に戻る、
ターンを開始するといきなりHPがガッと減ります。
ひょっとするとステータスウィンドウの更新が行えれば何とかなるかもしれません。
思考中にHPが減っていくことでキャラクターが毒などで衰弱していく表現や
焦りでプレイヤーの判断ミスを誘えれば面白いと思いトピックを立てさせて頂きました。
コマンド待機中にスリップダメージを受けるようなプラグインの制作が可能な方がおられましたら
お力をお貸し頂ければ嬉しいです。
読んで頂きありがとうございました!
戦闘中コマンド入力をもたついているとHPが減る仕組み
Re: 戦闘中コマンド入力をもたついているとHPが減る仕組み
スクリプトがほぼ分からない人間の答えなので、あまり当てにならないかもしれません。
ちょっとググって、下記を見つけました。
戦闘中のステータスウィンドウについて(解決済) - ツクマテ
viewtopic.php?t=706
こちらのスクリプトをコモンイベントでダメージを受けた直後に実行させるのでは上手くいかないでしょうか?
1.表示だけ呼ぶ。
2.一度非表示して再度表示させる。
どちらかで更新されるような気がします。
また、下記を見ると
RPG ツクール MV の戦闘の実装 - Qiita
https://qiita.com/hajimehoshi/items/88d ... eb1fb25084
ステータスウィンドウの表示というよりScene_Battleというクラスをダメージ毎に呼ぶ方が適切なのかもしれません。
(もしかしたら、入力コマンドがキャンセルとかされるかも分かりませんが…)
簡単なスクリプトをコモンイベントに追加するだけで解決しそうな気がします。
あとは、スクリプトが分かる方にバトンタッチ…して欲しいです。
ちょっとググって、下記を見つけました。
戦闘中のステータスウィンドウについて(解決済) - ツクマテ
viewtopic.php?t=706
こちらのスクリプトをコモンイベントでダメージを受けた直後に実行させるのでは上手くいかないでしょうか?
1.表示だけ呼ぶ。
2.一度非表示して再度表示させる。
どちらかで更新されるような気がします。
また、下記を見ると
RPG ツクール MV の戦闘の実装 - Qiita
https://qiita.com/hajimehoshi/items/88d ... eb1fb25084
ステータスウィンドウの表示というよりScene_Battleというクラスをダメージ毎に呼ぶ方が適切なのかもしれません。
(もしかしたら、入力コマンドがキャンセルとかされるかも分かりませんが…)
簡単なスクリプトをコモンイベントに追加するだけで解決しそうな気がします。
あとは、スクリプトが分かる方にバトンタッチ…して欲しいです。
---
JavaScriptの基本を学習せずにツクールのプラグインやスクリプトを使って横着してゲームを作ろうとしている人間です。
そのような者なので、適当な投稿をするかも知れません。
他の方の投稿を信用してください。
JavaScriptの基本を学習せずにツクールのプラグインやスクリプトを使って横着してゲームを作ろうとしている人間です。
そのような者なので、適当な投稿をするかも知れません。
他の方の投稿を信用してください。
Re: 戦闘中コマンド入力をもたついているとHPが減る仕組み
該当のコモンイベントを組む場合このような感じになると思います。
スクリプト部分はもしかすると不具合があるかもしれませんが。
◆注釈:トリガーは並列処理
◆ループ
◆ウェイト:7フレーム
◆条件分岐:スクリプト:!BattleManager.isInputting()
◆ループの中断
◆
:分岐終了
◆HPの増減:パーティ全体, - 5 (戦闘不能を許可)
◆スクリプト:BattleManager.refreshStatus();
: :var scene = SceneManager._scene;
: :scene._actorWindow.refresh();
: :if(BattleManager.checkBattleEnd()){
: :scene._windowLayer.children.forEach(function(win) {
: :if(win !== scene._messageWindow){
: :win.deactivate();
: :win.close();
: :}
: :});
: :}
◆
:以上繰り返し
スクリプト部分はもしかすると不具合があるかもしれませんが。
◆注釈:トリガーは並列処理
◆ループ
◆ウェイト:7フレーム
◆条件分岐:スクリプト:!BattleManager.isInputting()
◆ループの中断
◆
:分岐終了
◆HPの増減:パーティ全体, - 5 (戦闘不能を許可)
◆スクリプト:BattleManager.refreshStatus();
: :var scene = SceneManager._scene;
: :scene._actorWindow.refresh();
: :if(BattleManager.checkBattleEnd()){
: :scene._windowLayer.children.forEach(function(win) {
: :if(win !== scene._messageWindow){
: :win.deactivate();
: :win.close();
: :}
: :});
: :}
◆
:以上繰り返し
RPGで笑顔を・・・
ツイッター(ツクラーの巣窟)(閲覧は自己責任でお願いします)
https://twitter.com/mattuup
github
https://github.com/mattuup/RPGMakerMZ
ツイッター(ツクラーの巣窟)(閲覧は自己責任でお願いします)
https://twitter.com/mattuup
github
https://github.com/mattuup/RPGMakerMZ