【RGSS3】敵が続けて同じ行動をとらないようにしたい

否妻五六
記事: 15
登録日時: 2020年10月05日(月) 23:51

【RGSS3】敵が続けて同じ行動をとらないようにしたい

投稿記事by 否妻五六 » 2022年7月05日(火) 20:47

敵が前のターンと同じ技を発動しないようにしたいです。

アバター
CACAO
記事: 13
登録日時: 2016年9月12日(月) 14:46
連絡を取る:

Re: 【RGSS3】敵が続けて同じ行動をとらないようにしたい

投稿記事by CACAO » 2022年7月23日(土) 17:06

行動を記憶して次回の候補に入れなければ良いのではないでしょうか?

コード: 全て選択

class Game_Enemy
  def action_valid?(action)
    conditions_met?(action) && usable?($data_skills[action.skill_id]) &&
    action.skill_id != @prev_action_skill_id
  end
  def make_actions
    super
    return if @actions.empty?
    action_list = enemy.actions.select {|a| action_valid?(a) }
    return if action_list.empty?
    rating_max = action_list.collect {|a| a.rating }.max
    rating_zero = rating_max - 3
    action_list.reject! {|a| a.rating <= rating_zero }
    @actions.each do |action|
      selected_action = select_enemy_action(action_list, rating_zero)
      action.set_enemy_action(selected_action)
      @prev_action_skill_id = selected_action && selected_action.skill_id
    end
  end
end
否妻五六
記事: 15
登録日時: 2020年10月05日(月) 23:51

Re: 【RGSS3】敵が続けて同じ行動をとらないようにしたい

投稿記事by 否妻五六 » 2022年7月29日(金) 21:14

action.skill_id != @prev_action_skill_id
の所でエラーが出てしまいました。
アバター
CACAO
記事: 13
登録日時: 2016年9月12日(月) 14:46
連絡を取る:

Re: 【RGSS3】敵が続けて同じ行動をとらないようにしたい

投稿記事by CACAO » 2022年7月31日(日) 12:14

申し訳ありません。再現しませんでした。
まっきぃ
記事: 49
登録日時: 2020年3月14日(土) 21:11

Re: 【RGSS3】敵が続けて同じ行動をとらないようにしたい

投稿記事by まっきぃ » 2022年8月02日(火) 23:39

もしかしたらCACAOさんのスクリプトがうまくコピー出来てないのかもしれません。
もしくはスクリプトを投稿した時に文字として認識され、それをペーストしてエラーになっている場合もあります。
エラーの出なかったスクリプトをテキストファイルにしてアップロードしてみてはいかがでしょうか?
最後に編集したユーザー まっきぃ on 2022年8月04日(木) 00:38 [ 編集 1 回目 ]
アバター
CACAO
記事: 13
登録日時: 2016年9月12日(月) 14:46
連絡を取る:

Re: 【RGSS3】敵が続けて同じ行動をとらないようにしたい

投稿記事by CACAO » 2022年8月07日(日) 19:16

えっと、一応載せときます。
>> スクリプトファイル
否妻五六
記事: 15
登録日時: 2020年10月05日(月) 23:51

解決済み【RGSS3】敵が続けて同じ行動をとらないようにしたい

投稿記事by 否妻五六 » 2022年8月10日(水) 10:30

ちゃんと思い通りに動きました!
ありがとうございました!

“VX / Ace:質問” へ戻る