イベントコマンド「数値入力の処理」のウィンドウを機能強化して、キャンセルボタンを有効にしたり、数値入力の前後に文字列を追加したり、入力可能な数値の最小値・最大値を指定できるプラグインを作成しました。
RPGツクールMZ専用です。ウィンドウ系は仕様が異なるため、MVでは使えませんのでご注意ください。
※ 2022-03-30追記:
オプションでタッチUIをOFFにした場合エラーが発生するバグを修正しました。お手数ですが、Version.1.0.1にアップデートをお願いします。
標準のイベントコマンド「数値入力の処理」では、入力した数値を受け取る変数と数値の桁数を指定するだけですが、このプラグインを導入すると、追加で以下のことができるようになります。
- キャンセルボタンで数値入力をキャンセル
- 数値入力の前後に文字列を追加
- 入力可能な数値の最小値・最大値を設定
標準の「数値入力の処理」ではキャンセルが効かず、数値が0だったらキャンセルと見なすといった処理にすることが多いですが、それだと支障のあるケースもあると思います。
「キャンセル有効」をONにすると、ESCキーやキャンセルボタンで数値入力をキャンセルすることができるようになります。キャンセルした際に変数に格納する数値を指定できるので、-1など通常では入力できない数値を設定しておいて、変数の値が-1かどうかで分岐することができます。
また、数値入力の前後に文字列を追加することができます。入力値の説明や単位などを追記して、分かりやすくすることができます。文字列には各種制御文字も使用可能です。
さらに、入力可能な数値の最小値・最大値を指定できます。最小値・最大値はそれぞれ、直接数値で指定することも、変数で指定することも可能です。
最小値・最大値を可変にしたい場合は、最小値・最大値を変数に格納して、その変数を指定するといった方法になるかと思います。
なお、最小値・最大値の指定処理はトリアコンタンさんのプラグインを参考にさせていただいております。ありがとうございます。
具体的な使い方としては、プラグインコマンド「数値入力ウィンドウ設定」でこれらの設定をすると、次の「数値入力の処理」の際に適用されます。
一度「数値入力の処理」が行われると、これらの設定はリセットされるので、「数値入力の処理」の直前でプラグインコマンドを呼び出すようにするといいでしょう。
ただしRPGツクールの仕様上、「文章の表示」と「数値入力の処理」の間に別の処理を挟むと、数値入力の前にメッセージウィンドウが閉じてしまうため、本当の直前ではなく「文章の表示」よりも前に呼び出す必要があることに、ご注意ください。
具体的な活用方法ですが、私は銀行システムを作る際に活用しています。
銀行に入出金できるのは1000G単位にしたかったため、後ろに文字列で「000G」と追加しています。
また、入力可能な数値の最大値を設定して、所持金以上に預け入れたり、預金額以上に引き出したりできないようにしています。
質問やアドバイスなどはコメント欄まで、お気軽にお願いします。素材利用条件などについては、このサイトについての「提供素材について」の項目などをご覧ください。
コメント
お疲れさまです、変数を上限値に設定するプラグインを探していたのでとても助かります。
ですが導入したらニューゲームやコンテニューをした直後にエラーが出てしまいました。
状況としては
・ニューゲーム、コンテニューをすると「Cannot set property 'visible' of undefined」エラーが出る。
・競合を疑い、このプラグイン単体で起動してみても同様の現象が起きる
・新規プロジェクトにこのプラグイン単体で入れて起動すると問題なく起動する
といった具合です。
他のプラグインをOFFにしても上手く起動しないので、競合ではなさそうなのですが、jsにあまり詳しくないのでよく分かっていません。
何かツクールの設定の方で間違えているのかもしれませんが、そこも特定出来ていない状態です。
デバック画面を添付しておきます、確認していただけたら幸いです。
https://gyazo.com/e1b406d66e944efa2f71cdea0496cc4d
ありがとうございます!
ちょっと時間かかるかもしれませんが、確認してみますね。
検証しました。
オプションでタッチUIをOFFにしているとエラーが発生するようですね。
修正版を用意しますので、もう少しお待ちください。
お待たせしました。
修正版をアップしましたので、お手数ですが再度ダウンロードしてみてください。
このたびはご報告いただき、ありがとうございました!
ありがとうございます、無事動作を確認致しました。
これで想定していた仕様が実現できそうです。
素早い対応ありがとうございました、凄く助かりました。
Panda様のこれからの創作活動を応援しています。