VXace リージョンによってエンカウント歩数変更はできないでしょうか?

土曜日
記事: 21
登録日時: 2017年11月18日(土) 19:22

VXace リージョンによってエンカウント歩数変更はできないでしょうか?

投稿記事by 土曜日 » 2017年12月23日(土) 14:51

お世話になります。

VXaceの仕様として、マップにリージョンを配置することで、座標によってランダムエンカウントする敵グループを細かく設定することが可能です。

しかし、いくらリージョン分けを行っても、平均エンカウント歩数は、マップ内で共通となってしまい、例えば「平地はエンカウントしにくいけど、森や山に入ると敵が出やすくなる」といった基本的なエンカウント率の違いをつけることができません。

エンカウント率を下げたい地形のリージョンをまばらに配置するという手もありますが、それだと敵が出てこない座標が出来てしまい、気になります。

そこで質問です。

マップ内のエンカウント率(平均エンカウント歩数)を均一にするのでなく、リージョンごとに出やすかったり出にくかったりを設定するには、どうしたらよいでしょうか?

もし、スクリプトを使用しないと解決しない場合、他スクリプトとの競合もありますので、なるべくシンプルに、「リージョンごとに平均エンカウント歩数を変える」に絞ったものが理想です。

何卒、宜しくお願いします。

faida
記事: 272
登録日時: 2015年12月17日(木) 16:44

Re: VXace リージョンによってエンカウント歩数変更はできないでしょうか?

投稿記事by faida » 2017年12月23日(土) 20:38

こんばんは。

まず、ご存知でしたら申し訳ありませんが、実は「茂み判定」があるマップチップはエンカウント率が倍になります。
つまりデフォルトでは森(茂み判定がついている地形)はエンカウント率が倍です。
また、船に乗っている場合はエンカウント率が半減します。
まあ確かに、「山」には茂み判定がないので平地と山は変わりませんがね。

それを前提に、とりあえず作ってみました。

コード: 全て選択

module FAI_RER
  REGION_ENCOUNT_RATE = {}
  REGION_ENCOUNT_RATE[1] = 0.5
  REGION_ENCOUNT_RATE[2] = 0.8
  REGION_ENCOUNT_RATE[3] = 1.5
  REGION_ENCOUNT_RATE[4] = 3.0
end

class Game_Player
  #--------------------------------------------------------------------------
  # ● エンカウント進行値の取得
  #--------------------------------------------------------------------------
  alias fai_rer_encounter_progress_value encounter_progress_value
  def encounter_progress_value
    rate = FAI_RER::REGION_ENCOUNT_RATE[region_id] || 1.0
    fai_rer_encounter_progress_value * rate
  end
end
「REGION_ENCOUNT_RATE[リージョンID] = 倍率」で動くかもしれません。
------------------------------------------------------------------
自作の(改造でない)スクリプト、プラグイン素材に
関しては、リードミーもしくは作中に
「faida」と記名していただければ
利用可能です。
土曜日
記事: 21
登録日時: 2017年11月18日(土) 19:22

Re: VXace リージョンによってエンカウント歩数変更はできないでしょうか?

投稿記事by 土曜日 » 2017年12月27日(水) 18:58

faida様

ありがとうございます。
お作り頂いたスクリプトで、無事解決できました。
他スクリプトとの競合も、今のところ発生しておりません。
有用なスクリプト、感謝致します。


今回、お返事遅くなりまして申し訳ありませんでした。
また、私の返信のせいで、他の質問者様の投稿にもご迷惑おかけしますこと、この場にてお詫びさせて頂きます。
引き続き、VXaceのフォーラムを活気付けて頂きたく思います。
失礼しました。

“VX / Ace:質問” へ戻る