逃走成功確率を表示させたい!

斜め359度
記事: 14
登録日時: 2017年12月28日(木) 20:52

逃走成功確率を表示させたい!

投稿記事by 斜め359度 » 2017年12月29日(金) 10:03

戦闘画面で【にげる】を決定するまえに現在の逃走成功確率を表示または確認できるようにしたいです。
(>_<)返信お待ちしております。

青猫_
記事: 42
登録日時: 2017年11月07日(火) 22:47

Re: 逃走成功確率を表示させたい!

投稿記事by 青猫_ » 2017年12月29日(金) 22:00

前回、逃走成功率は「0.5 × 仲間全員の敏捷性の平均値 ÷ 敵の敏捷性の平均値」であると説明しました、
これをスクリプトで書くとthis._escapeRatio(逃走成功率) =「 0.5 * $gameParty.agility() / $gameTroop.agility()」になります。
なのでバトル中の変数の操作から、スクリプト部分を格納し、それを画面に表示することはできるでしょう。
↓画面上に変数を動的に取得して表示する事ができるスクリプト
https://triacontane.blogspot.jp/2015/12 ... dtext.html

ただし、問題はどのタイミングで表示するかで、
「逃げる」コマンドにカーソルを合わせた時のみ表示する、などはそれを感知するプラグインがないと難しいでしょうね。
斜め359度
記事: 14
登録日時: 2017年12月28日(木) 20:52

Re: 逃走成功確率を表示させたい!

投稿記事by 斜め359度 » 2017年12月29日(金) 23:58

毎度、ご助力頂きありがとうございます(>_<)
製作可能だという事がわかりとても嬉しいです!

ただツクール初心者な為に 青猫さんの文章を読みとく事も困難で単語を1つずつ検索しながら読み進めていたのでお礼の返信が遅れました(笑)
青猫_
記事: 42
登録日時: 2017年11月07日(火) 22:47

Re: 逃走成功確率を表示させたい!

投稿記事by 青猫_ » 2017年12月30日(土) 03:52

ああ、うん、ごめんなさい。
実は俺も初心者で、最近知ったばかりの事を説明しようとしてるから、かえってわかりにくくなってます。

言い忘れましたが、
「0.5 × 仲間全員の敏捷性の平均値 ÷ 敵の敏捷性の平均値」
この計算式が1か、それ以上になると100%逃走成功する、という計算式になります。
(つまり敵と仲間の敏捷性の平均値が同じなら数値は0.5で、成功率50%になる)

具体的に手順を説明すると、
データベース→敵グループのタブを選び、その中のバトルイベントの中に「毎ターンの開始前に、逃走成功率を計算する」というイベントを作る必要があります。
ちなみに「毎ターンの開始時に」だと、コマンドを入力した後になってしまいます。

「じゃ、具体的に何て入力すればそのイベントを作れるんだよ」って話で、
まず条件を「ターン 0+0*x」、次のページに「ターン終了時」とします、
「0ターン(戦闘開始から最初のコマンド選択まで)と、毎ターンの終了時、このイベントを実行するぜ!」という意味です。
スパンは「ターン」です、「条件を満たすと1ターンに一回実行します」という意味です。
「バトル」だと「バトル中に一回」、モーメントだと「条件を満たしてる間ずっと」になってしまいます。
これで「毎ターンの開始前に」の部分が出来ました。

次に「逃走成功率を計算する」の部分の作り方ですが、
イベントコマンドの「ゲーム進行」の項目に「変数の操作」という機能がありますので、
その中の適当な変数を「逃走成功率」とでも名づけてください。
操作は「代入」でオペランド(具体的にどんな数字入れるんだよ項目)にこの上記の計算式を入れれば、
その変数は毎ターン、その戦闘の逃走成功率になります。(なる筈です、自分で試してないから自信ないけど)
オペランドには自分で数値を入れたり、所持金やHPなどのゲーム内数値を呼び出す機能がデフォルトで入ってますけど、「逃走成功率」は無いです。
なので、スクリプトの欄に自分で書き込むしかないですが、当然JavaScriptの構文で書かないと読み込んでくれません。
一文字でも間違えたり、書く場所や順番を一つ間違えるだけで、エラー地獄直行の世界へようこそ。

じゃあ、JavaScriptの構文で「0.5 × 仲間全員の敏捷性の平均値 ÷ 敵の敏捷性の平均値」を書くとどうなるんだよ、という話で、
前回の「 0.5 * $gameParty.agility() / $gameTroop.agility()」が出てくる訳です。
これをスクリプトの欄にそのままコピペすれば逃走成功判定の数値が出てきますが・・・・・・
すみません、上述の言い忘れで、これで出てくるのは1~0の数値で1なら100%、という計算式になります。
なので出てきた数値に100掛けないと、%での表示は出来ません。
なので0.5に100掛けて50にしちゃいましょう。
「50 * $gameParty.agility() / $gameTroop.agility()」これを「変数の操作」から「スクリプト」にコピペすれば、
逃走成功率を%で計算できます。

ただし、味方の敏捷性平均値が敵のそれより二倍以上あると100%を超えてしまいます。これはおかしい。
というわけでさらにこのイベントの下に、「逃走成功率が100を超えた場合は、100に修正する」というイベントをもう一つ作らなくてはいけません。
方法は二つ思いつきます、一つはツクール側のイベント「条件分岐を使って判定する方法」
先ほどのイベントの下に「条件分岐」から変数「逃走成功率」が「>(次の値より大きい時)」、定数「100」と選択していけば「逃走成功率が100を超えた場合」の条件分岐ができます。
あとはその条件分岐の中にもう一度「変数の操作」を作り、「逃走成功率」、「代入」、定数「100」と入力すれば、
逃走成功率表示の上限を100%に定める事ができるでしょう。(できる筈です、自分でry)

もう一つの方法ですが、上記のJavaScriptの構文の中に「※ただし上限を100にしろ」という内容を書き込む方法で、こっちの方がイベントの数が少なくスマートになると思います。
たぶん何とか関数とか使えば可能でしょう。
でも俺もJavaScriptは勉強中なので、そんなの知らないし、ざっと調べても見つかりませんでした・・・・・・
RPGツクールMVを最大限まで使いこなすには、どこかしらでちゃんとしたJavaScriptの勉強をしなきゃ、ならないでしょうなぁ・・・・・・
お互い精進していきましょう。

あ、あと制御文字とはゲーム内のデータを文章中に呼び出すための特殊な文字で、
変数を呼び出す場合は\V[変数の番号]になります。
仮に逃走成功率を変数1に代入した場合は、
ためしに上記のイベントのさらに下に「文章の表示」から「逃走成功率は\V[1]%だ。」とでも入力してみてください。
毎ターンの開始前に「何%だ。」、といちいち表示されてれば成功です。
あとはこの変数をどのタイミングでどこに表示するか、が、ツクラーの腕の見せ所になるでしょう。
斜め359度
記事: 14
登録日時: 2017年12月28日(木) 20:52

Re: 逃走成功確率を表示させたい!

投稿記事by 斜め359度 » 2017年12月30日(土) 09:52

m(__)m本当、懇切丁寧に本当に答えて下さってありがとうございます。
読んでいるうちにこれは何が何でも完成させなくてはと思いました。
これから先は参考書買って僕も勉強しながら進もうと思います。
(^^ゞありがとうございました。
アバター
ツミオ
記事: 83
登録日時: 2017年4月02日(日) 13:46
連絡を取る:

Re: 逃走成功確率を表示させたい!

投稿記事by ツミオ » 2017年12月30日(土) 13:02

こんにちは。

青猫_さんの書き込みを参考にプラグインを制作してみました。
よろしければ使用してみてください。

https://raw.githubusercontent.com/Tsumi ... nalyzer.js

追記:
フロントビューでの動作確認をほとんどしていませんので、不具合があったらすみません。
【Twitter】https://twitter.com/TsumioNtGame/
【GitHub】https://github.com/Tsumio/rmmv-plugins

有償の依頼も募集中。
今まで有償で制作したものは実績をご覧ください。
斜め359度
記事: 14
登録日時: 2017年12月28日(木) 20:52

Re: 逃走成功確率を表示させたい!

投稿記事by 斜め359度 » 2017年12月31日(日) 07:41

( ̄ー ̄)...

(ノ_<。)ゴシゴシ

(゜ロ゜)!!?
(>_<)ありがとうございます!!
まさか作って頂けるとは、嬉しすぎて5分くらい唖然としていました(笑)

ホントにありがとうございます!
早速、動作確認してみます!!
斜め359度
記事: 14
登録日時: 2017年12月28日(木) 20:52

Re: 逃走成功確率を表示させたい!

投稿記事by 斜め359度 » 2018年1月03日(水) 16:48

上手くいきました!!ありがとうございました!!(*´ω`*)

“MV:質問” へ戻る