【解決済み】平均レベルが高いと敵が逃げ出す仕組み

nekotora
記事: 40
登録日時: 2018年4月02日(月) 02:39

【解決済み】平均レベルが高いと敵が逃げ出す仕組み

投稿記事by nekotora » 2018年5月22日(火) 23:31

こんにちは!
今シンボルエンカウント制のゲームを作っているのですが、パーティの平均レベルが一定以上になると敵が
逃げ出すようにしたいです。何か良いプラグインまたはイベントの設定方法はありますでしょうか。
何卒ご教授のほどよろしくお願いします :)
最後に編集したユーザー nekotora on 2018年5月28日(月) 22:10 [ 編集 1 回目 ]

奈々(なな)
記事: 103
登録日時: 2016年11月06日(日) 16:57

Re: 平均レベルが高いと敵が逃げ出す仕組み

投稿記事by 奈々(なな) » 2018年5月23日(水) 00:37


まず、アクターのレベルを変数に取得できますね。
なのでそこから平均レベルも出せます。
条件分岐で、それが一定数値以上ならスイッチをonに、以下ならoffにします。


そしてシンボルエンカウントの敵イベントに
新しいページを作り、逃げ出すような移動設定にします。
そのページの出現条件をスイッチがonの時にします。

これで出来るかと思います。
①のイベントは並列処理で走らせるか、マップ移動時に呼び出せば良いかと思います。
------------------------------------------------------------------------------------
へぷたなすくろーる
http://heptanas.mamagoto.com/

VXAceのスクリプト素材及びイベント講座などをやっています。
------------------------------------------------------------------------------------
nekotora
記事: 40
登録日時: 2018年4月02日(月) 02:39

Re: 平均レベルが高いと敵が逃げ出す仕組み

投稿記事by nekotora » 2018年5月24日(木) 03:02

奈々様返信遅れてすみません。

私も下記のように作ってみたのですが、これだと特定のアクター4人のレベルの平均値は出せても、パーティの平均値を算出したことになりません。例えば今私が作っているゲームはアクターが100人ほどおり、その中からパーティを
4人編成するような仕組みにするつもりなのですが、その時でもうまくいくような方法はないでしょうか?

お手数ですがどなたかお教授のほどよろしくお願いします。 :)
添付ファイル
ツクール.PNG
奈々(なな)
記事: 103
登録日時: 2016年11月06日(日) 16:57

Re: 平均レベルが高いと敵が逃げ出す仕組み

投稿記事by 奈々(なな) » 2018年5月24日(木) 09:47

同じく変数で、パーティメンバーのアクターIDを取得できます。
なので条件分岐で組み合わせれば、「パーティメンバーのレベル」を取得できます。

例:
パーティメンバー1のアクターがAなら、変数1にAのレベルを取得。
パーティメンバー1のアクターがBなら、変数1にBのレベルを取得。
・・・
パーティメンバー2のアクターがAなら、変数2にAのレベルを取得。
・・・

但しアクターが100人いるなら、400の条件分岐を組む必要がありますね。
コピペで量産できるので、余計なことをせずに力技でやるのも手だと思います。

或いはスクリプトで「パーティメンバーのレベル」を直接取得するかですね。
(私はMVの変数構造をまだ理解してないので、書き方はお教えできませんが)
------------------------------------------------------------------------------------
へぷたなすくろーる
http://heptanas.mamagoto.com/

VXAceのスクリプト素材及びイベント講座などをやっています。
------------------------------------------------------------------------------------
アバター
ツミオ
記事: 83
登録日時: 2017年4月02日(日) 13:46
連絡を取る:

Re: 平均レベルが高いと敵が逃げ出す仕組み

投稿記事by ツミオ » 2018年5月24日(木) 10:42

こんにちは。
PTの平均レベルを取得するスクリプトを書いてみたので参考にしてみてください(逃げ出す仕組みは別途必要になります)。

以下のスクリプトを実行すると、変数1番にPTの平均レベルが代入されるようになります。

コード: 全て選択

const variableId = 1;
const levels = $gameParty.members().map(function(member) {
  return member.level;
});
const sum = levels.reduce(function(accumulator, currentValue) {
    return accumulator + currentValue;
});
const averageLevel = sum / $gameParty.members().length;
$gameVariables.setValue(variableId, averageLevel);


平均レベルを保存する変数番号を変えたい場合は、以下の1という部分を変更します。

コード: 全て選択

const variableId = 1;

例えば5を指定すると、変数5番にPTの平均レベルが代入されます。

なお、このスクリプトは「PTが1名も存在しない場合」にエラーが出ます。
【Twitter】https://twitter.com/TsumioNtGame/
【GitHub】https://github.com/Tsumio/rmmv-plugins

有償の依頼も募集中。
今まで有償で制作したものは実績をご覧ください。
nekotora
記事: 40
登録日時: 2018年4月02日(月) 02:39

Re: 平均レベルが高いと敵が逃げ出す仕組み

投稿記事by nekotora » 2018年5月25日(金) 21:43

奈々様重ね重ね返信ありがとうございます。
私も100人分の条件分岐を作ることも考えたのですが、やはり時間がかかることや
ゲームが重くなってしまう可能性を考慮した結果難しいと判断し、質問させていただいた次第です。
ですが最終的にうまくいかない場合はごり押しもありかなと私も考えております。 :)
nekotora
記事: 40
登録日時: 2018年4月02日(月) 02:39

Re: 平均レベルが高いと敵が逃げ出す仕組み

投稿記事by nekotora » 2018年5月25日(金) 21:49

ツミオ様返信ありがとうございます。
まさに私が望んでいたようなスクリプトを書いてくださり感謝しかないです :D
早速採用してみたのですがどうも平均レベル30以上にも関わらずスイッチ7番が押されないようです。
(ちなみにレベル99の上限を改変して999にしています。それもなにか関係があるのでしょうか。。。)
私の設定に至らない点がありましたらアドバイスのほどよろしくお願いいたします :)
添付ファイル
キャプチャー.PNG
アバター
ツミオ
記事: 83
登録日時: 2017年4月02日(日) 13:46
連絡を取る:

Re: 平均レベルが高いと敵が逃げ出す仕組み

投稿記事by ツミオ » 2018年5月25日(金) 22:10

こんばんは。

使い方は問題ないような気がしました。
このスクリプトを実行した場合、具体的に変数9番の値はいくつになっていますでしょうか?
また、具体的にPTはどのような構成(レベル)になっていますでしょうか?

また、原因としては以下のようなものが思い当たりました。
1.パーティーメンバーの数がおかしい
2.上限99を999に改変しているコードがコアスクリプトを破壊している

まず1番ですが、上記のコードは「戦闘メンバーの数」ではなく「パーティーメンバーの数」で値を算出しています。
100人単位でアクターがいるらしいので、もし仮に100人全てをパーティーに常時加入させているなら、「戦闘メンバー」でレベルの平均を算出したい場合は上記のコードはうまく動きません。
つまり「戦闘メンバーの数」で計算するように作り直す必要があります。

2はどのように改造したかに依るので、僕ではわかりません。
【Twitter】https://twitter.com/TsumioNtGame/
【GitHub】https://github.com/Tsumio/rmmv-plugins

有償の依頼も募集中。
今まで有償で制作したものは実績をご覧ください。
nekotora
記事: 40
登録日時: 2018年4月02日(月) 02:39

Re: 平均レベルが高いと敵が逃げ出す仕組み

投稿記事by nekotora » 2018年5月25日(金) 22:42

ツミオ様返信ありがとうございます :D
2については下記のプラグインを使ってlevel欄を999にしています。
また、変数9番は「レベルA」です。
パーティメンバーの画像はサイズが大きくて送れませんが、3人パーティで全員レベル232です。
添付ファイル
tukuru.PNG
nekotora
記事: 40
登録日時: 2018年4月02日(月) 02:39

Re: 平均レベルが高いと敵が逃げ出す仕組み

投稿記事by nekotora » 2018年5月25日(金) 22:53

追記
レベル上限を99にして、パーティ3人全員レベル99で試しましたが、同様にうまくいきませんでした。
斜め移動以外のすべての後付けしたプラグインをオフにしましたがうまくいきませんでした
添付ファイル
キャプチャ4.PNG

“MV:質問” へ戻る