【解決済み】プラグイン HzTimingBarに制御文字を使用する方法はないでしょうか

MMS
記事: 4
登録日時: 2023年8月03日(木) 23:25

【解決済み】プラグイン HzTimingBarに制御文字を使用する方法はないでしょうか

投稿記事by MMS » 2023年8月04日(金) 00:39

タイミングバーを使用したイベントを作っているのですが、
知識不足で自作することができないため、HzTimingbarを使用させていただいています。

作っているうちにタイミングバーの位置をランダムに配置させたくなったのですが、
このプラグインでは制御文字を使うことができません。
そこでNRP_EvalPluginCommand.jsを使用してみたのですが制御文字を使うことはできませんでした。
(\V[1] - \V[2]が出来ない)

数式評価をtrueにした場合計算式を適用することはできました。
($gameVariables.value(1) - $gameVariables.value(2)は出来る)

ただ、これをtrueにすると他のプラグインと競合してしまい、ゲームが動かなくなってしまいます。
(SyntaxError: Unexpected token < in JSON at position 0)

タイミングバーはヒット・クリティカルではなく、シンプルに失敗か成功かだけのものを想定しています。
入力必須範囲も使用していません。

バーの速度も変数でいじる方法があれば尚ありがたいです。
現在はHzTimingBar.speed = 1;の部分をHzTimingBar.speed = 1.5;に書き換えて使用しています。

変数が使えれば装備などでバーの幅をいじれたりするので便利なのですが、うまくいかなければ装備などでの調整は諦めて乱数で設定をごり押ししようと考えています。(幅20なら乱数0~4で5パターン作る等)

何かいい方法があれば教えていただけるとありがたいです。
よろしくお願いします。
最後に編集したユーザー MMS on 2023年8月05日(土) 19:17 [ 編集 1 回目 ]

アバター
剣崎 宗二
記事: 686
登録日時: 2016年11月12日(土) 20:36
連絡を取る:

Re: プラグイン HzTimingBarに制御文字を使用する方法はないでしょうか

投稿記事by 剣崎 宗二 » 2023年8月04日(金) 13:18

以下いずれの書き換えも一定のリスクを伴いますので、必ず事前にプラグインをバックアップしてください。

MMS さんが書きました:数式評価をtrueにした場合計算式を適用することはできました。
($gameVariables.value(1) - $gameVariables.value(2)は出来る)


上記と同等をこのプラグインのXYのみに適用させます。

コード: 全て選択

var x = args[4] != null ? Number(args[4]) : SceneManager._screenWidth/2;
            var y = args[5] != null ? Number(args[5]) : SceneManager._screenHeight/2;


コード: 全て選択

var x = args[4] != null ? Number(eval(args[4])) : SceneManager._screenWidth/2;
            var y = args[5] != null ? Number(eval(args[5])) : SceneManager._screenHeight/2;

(プラグインパラメーターの仕様上、パラメーターを入れる際スペースを入れない、$gameVariables.value(1)-$gameVariables.value(2)のようにする事をご留意ください)
-----
MMS さんが書きました:バーの速度も変数でいじる方法があれば尚ありがたいです。
現在はHzTimingBar.speed = 1;の部分をHzTimingBar.speed = 1.5;に書き換えて使用しています。

コード: 全て選択

this._frame += HzTimingBar.speed;

↓(変数3番の場合)

コード: 全て選択

this._frame += Number($gameVariables.value(3))
----
-出先に居る場合回答が未テスト状態である事が多い為、テストは重々にお願いいたします。
-基本自分や友人の問題解決は自分で1からプラグインを書いているので、「こういうプラグインはありますか」に対しては助けになれません。ご了承ください。
MMS
記事: 4
登録日時: 2023年8月03日(木) 23:25

Re: プラグイン HzTimingBarに制御文字を使用する方法はないでしょうか

投稿記事by MMS » 2023年8月04日(金) 20:42

早速のご返事ありがとうございます。

速度の方の書き換えは上手くいきました!
こちらの方が難しいかと思っていたので、大変助かりました。
ありがとうございます。

ですが、var xとvar yの書き換えの方がうまくいきません。
MV版ですと、

// var x = args[4] != null ? Number(args[4]) : SceneManager._screenWidth / 2;
// var y = args[5] != null ? Number(args[5]) : SceneManager._screenHeight / 2;

この記述をみつけたのですが、
MZ版ですと見つけることができませんでした。

MZ版ですと

var x = Number(args[4] || -1) < 0 ? Graphics.width / 2 : Number(args[4]);
var y = Number(args[5] || -1) < 0 ? Graphics.height / 2 : Number(args[5]);

ここの書き換えになるのか?と思いまして
Number(eval(args[4])) Number(eval(args[5]))を色々あてがってみたのですが、
うまくいきませんでした。

見落としや知識不足による間違いであったらほんと申し訳ありません。
MZ版ですとこの部分の書き換えであっているでしょうか?
それとも追記になるのでしょうか?
アバター
剣崎 宗二
記事: 686
登録日時: 2016年11月12日(土) 20:36
連絡を取る:

Re: プラグイン HzTimingBarに制御文字を使用する方法はないでしょうか

投稿記事by 剣崎 宗二 » 2023年8月05日(土) 00:20

書き換えです。
ただし元の書き方が「改造しにくく」なっているので、多少複雑になり動作にも何かしら変化が生まれる可能性があります。

コード: 全て選択

const evx = Number(eval(args[4]));
const evy = Number(eval(args[5]));
var x = evx ? evx : Graphics.width / 2;
var y = evy ? evy : Graphics.height / 2;


尚エラーが出る場合はエラーのconsole画面をください。(F8かF12で出る白い画面で、エラーの詳細が書かれている物です)
----
-出先に居る場合回答が未テスト状態である事が多い為、テストは重々にお願いいたします。
-基本自分や友人の問題解決は自分で1からプラグインを書いているので、「こういうプラグインはありますか」に対しては助けになれません。ご了承ください。
MMS
記事: 4
登録日時: 2023年8月03日(木) 23:25

Re: プラグイン HzTimingBarに制御文字を使用する方法はないでしょうか

投稿記事by MMS » 2023年8月05日(土) 01:35

度々ありがとうございます。

先程直して頂いたコードをvar xとvar yのところに上書きしてプラグインを動かしてみました。
エラーは出ませんでしたが、スクリプトを使用すると成功判定部分が適用されませんでした。
20-40といった数値を入れると正常に動きました。

すぐ反応を貰えて有難いのですが、
改造しにくくなっているとのことで、私自身知識もなく、
お願いする形になってしまい申し訳ないです。
あまり無理のない範囲でやっていただけたらと思います。

ちなみにバーのスピードの方は装備で調整できるところまでもっていけました。
ほんとありがとうございます。
アバター
剣崎 宗二
記事: 686
登録日時: 2016年11月12日(土) 20:36
連絡を取る:

Re: プラグイン HzTimingBarに制御文字を使用する方法はないでしょうか

投稿記事by 剣崎 宗二 » 2023年8月05日(土) 11:01

こちら私が要求を誤解していたようです。
「バー自体の位置」に変数を使えるように、と言う要望だと誤解していました。
申し訳ございません。
なので、その部分のコードは元に戻してください。

コード全体を見る為に調べましたが、オリジナルのHzTimingbarにMZ版は存在せず、ムノクラさんが改造したMNKR_HzTimingBarMZのみしか存在しませんでしたが、使っている物はこちらで正しいですか?
https://fungamemake.com/archives/15622

もしそうであれば、
3カ所ある

コード: 全て選択

return Number(elm);

を何れも

コード: 全て選択

return Number(eval(elm));

にすればヒット、クリティカル、必須が何れもスクリプト使用可に変わると考えます。
----
-出先に居る場合回答が未テスト状態である事が多い為、テストは重々にお願いいたします。
-基本自分や友人の問題解決は自分で1からプラグインを書いているので、「こういうプラグインはありますか」に対しては助けになれません。ご了承ください。
MMS
記事: 4
登録日時: 2023年8月03日(木) 23:25

Re: プラグイン HzTimingBarに制御文字を使用する方法はないでしょうか

投稿記事by MMS » 2023年8月05日(土) 19:15

ご対応ありがとうございます!

クリティカル・ヒットの値に変数を使用することが可能になりました!

私の質問の仕方が悪くて申し訳ありませんでした。
そもそも値を見た時にvar x と var yで位置関係のことというのが思い浮かばなかったのが
良くありませんでした。

>ムノクラさんが改造したMNKR_HzTimingBarMZのみしか存在しませんでしたが、使っている物はこちらで正しいですか?

これであってます。
プラグインの方もリンクを張るべきでした。

これで思い描いていたことができそうです。
面倒を見てくださりありがとうございました!

“MZ:質問” へ戻る