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

感電地
記事: 23
登録日時: 2020年10月05日(月) 23:51

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

投稿記事by 感電地 » 2022年7月05日(火) 20:47

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

アバター
CACAO
記事: 18
登録日時: 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
感電地
記事: 23
登録日時: 2020年10月05日(月) 23:51

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

投稿記事by 感電地 » 2022年7月29日(金) 21:14

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

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

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

申し訳ありません。再現しませんでした。
15汁酢
記事: 52
登録日時: 2020年3月14日(土) 21:11

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

投稿記事by 15汁酢 » 2022年8月02日(火) 23:39

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

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

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

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

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

投稿記事by 感電地 » 2022年8月10日(水) 10:30

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

“VX / Ace:質問” へ戻る