まるちゃん 2022/04/30 11:29

ツクールMVのエンカウント処理をコモンイベントで実行するときのやり方

この記事はランダムエンカウント処理が作りたい人向けのものです
こういったものはシンボルエンカウントにすればすべて解決できるはずです
デフォルトでのランダムエンカウントには汎用性がありません
昨今のゲームにおいて戦闘に敗北したらセーブした場所からやり直すというのは
プレイヤーに多大な負荷を与えるもので作るべきではありません
しかし,デフォルトではコマンドの処理でしか敗北や逃走の処理を作れません
なので,コモンイベントでランダムエンカウントを作ろうという試みです
しっかりバグチェクしていないので,本当に動作しているかわかりませんが
そうじゃなかった場合は各自で修正をお願いします。自分も気づいたら直そうと思います
やることは内部でしていることをただ変数とかにするだけです


まず,コマンドでエンカウント禁止の変更で禁止にしてください
次に,並列処理で実行するのでスイッチをONにしてください
そして,敵出現歩数のエンカウントを作成します
マップの設定にある敵出現歩数がスクリプトで表記すると
$gameMap.encounterStep() となり通常 30 です
エンカウントするまでの歩数を内部で 0 ~ 30 の数字を作り2回加算します
そうすると山なりな正規分布の形になって偏りが少なくなります


歩数カウンタで歩数を代入して違った場合,新しいカウンタに代入します
これで移動したのかしていないのか判定できます(修正:2022/05/20)
$gamePlayer.encounterProgressValue() これでエンカウントに関するパーティー能力のことを考慮しながら半減なら 0.5,無効なら 0.0 の数値だけ減算します
また茂みにいるときは 2.0 そして通常 1.0 減算してくれます

BattleManager.onEncounter() を使えば不意打ちや先制攻撃の判定をつくれます
コマンドで使ってるので戦闘の敗北の処理や逃走の処理を作れます
また戦闘開始の前にコモンイベントを呼び出したいときや
終了後に呼び出したいときにも使えるはずです
勝利のときと逃走のときはまた,敵出現歩数の作成をおこなってください
不意打ちと先制はよく試してないから違うかも

ツクラーユーザーの制作の手助けになれば
そして間違ってたらごめん!

フォローしてくれている人や,いいねを押してくださる皆様へ
なんかいっつも自分の好きなタイミングに好きなように投稿してしまっています
ごめーん。そしてありがとう

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

月別アーカイブ

限定特典から探す

記事を検索