ページ 11

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

Posted: 2022年7月05日(火) 20:47
by 感電地
敵が前のターンと同じ技を発動しないようにしたいです。

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

Posted: 2022年7月23日(土) 17:06
by CACAO
行動を記憶して次回の候補に入れなければ良いのではないでしょうか?

コード: 全て選択

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

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

Posted: 2022年7月29日(金) 21:14
by 感電地
action.skill_id != @prev_action_skill_id
の所でエラーが出てしまいました。

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

Posted: 2022年7月31日(日) 12:14
by CACAO
申し訳ありません。再現しませんでした。

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

Posted: 2022年8月02日(火) 23:39
by 9ルーズ
もしかしたらCACAOさんのスクリプトがうまくコピー出来てないのかもしれません。
もしくはスクリプトを投稿した時に文字として認識され、それをペーストしてエラーになっている場合もあります。
エラーの出なかったスクリプトをテキストファイルにしてアップロードしてみてはいかがでしょうか?

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

Posted: 2022年8月07日(日) 19:16
by CACAO
えっと、一応載せときます。
>> スクリプトファイル

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

Posted: 2022年8月10日(水) 10:30
by 感電地
ちゃんと思い通りに動きました!
ありがとうございました!