[解決]RGSS3:○体ランダムで対象を重複させない
Posted: 2024年3月23日(土) 16:59
対象が敵○体ランダムの時に、出来るだけ同じ相手にかぶらないようにしたいです。
コード: 全て選択
if item.for_random?
Array.new(item.number_of_targets) { opponents_unit.random_target }
コード: 全て選択
opponents_unit.alive_members
.sort_by {|member| rand * member.tgr }
.reverse[0, item.number_of_targets]
コード: 全て選択
alive_members = opponents_unit.alive_members
round_count = (item.number_of_targets - 1) / alive_members.size + 1
round_count.times
.inject([]) {|r| r.concat(alive_members.sort_by {|m| rand * m.tgr }) }
.reverse[0, item.number_of_targets]
コード: 全て選択
alive_members = opponents_unit.alive_members
result = alive_members.shuffle
while result.size < item.number_of_targets
result.concat(alive_members.shuffle!)
end
result[0, item.number_of_targets]