查看: 1974|回复: 1

[已经解决] 關於隨機敵人這腳本、改如何固定某一敵人在隊伍內??

[复制链接]
梦石
0
星屑
562
在线时间
465 小时
注册时间
2009-10-11
回帖
322
发表于 2013-3-25 00:01:48 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
本帖最后由 a000b1745 于 2013-3-25 23:30 编辑

如題...
我有個讓敵人隊伍隨機配的腳本,
當我讓隊伍4的敵人有機率出現01、11、12、13、14號敵人時,
有沒有辦法微改腳本讓01號敵人一定出現??
又或是說,讓敵人ID排列的第一位敵人一定出現??

ENEMIES[4] = [1, 11, 12, 13, 14]     
EXCLUDE[4] = []                                 
MIN_ENEMY[4] = 2                                
MAX_ENEMY[4] = 5                  

附上腳本↓
[pre lang="ruby" line="1"]#==============================================================================
# ★ RGSS3_ランダムトループ Ver1.1
#==============================================================================
=begin

作者:tomoaky
webサイト:ひきも記 (http://hikimoki.sakura.ne.jp/)

指定したトループの中身(出現エネミー)をランダムに変更します、
どんな敵が出現するか分からないおまけイベントバトルなどにどうぞ。

候補の設定が空の配列だった場合はすべてのエネミーが候補になります、
名前が空のエネミーは自動的に除外されます。

2012.01.07  Ver1.1
 ・複数のトループをランダム化できるようになりました
 ・最低出現数の設定を追加
 ・座標の計算式を変更

2011.12.15 Ver1.0
  公開

=end

#==============================================================================
# □ 設定項目
#==============================================================================
module TMRDTRP
  ENEMIES = {}      # この行はいじらない
  EXCLUDE = {}      # この行はいじらない
  MIN_ENEMY = {}    # この行はいじらない
  MAX_ENEMY = {}    # この行はいじらない
  
  ENEMIES[4] = [1, 11, 12, 13, 14]     # 出現するエネミーの候補
  EXCLUDE[4] = []                                  # 除外するエネミー
  MIN_ENEMY[4] = 2                                # 最低出現数
  MAX_ENEMY[4] = 5                                # 最高出現数

  ENEMIES[35] = []          # 出現するエネミーの候補(空なら全エネミーを候補に)
  EXCLUDE[35] = [29, 30]    # 除外するエネミー
  MIN_ENEMY[35] = 3         # 最低出現数
  MAX_ENEMY[35] = 6         # 最高出現数
  
end

#==============================================================================
# ■ Game_Troop
#==============================================================================
class Game_Troop < Game_Unit
  #--------------------------------------------------------------------------
  # ● セットアップ
  #     troop_id : 敵グループ ID
  #--------------------------------------------------------------------------
  alias tmrdtrp_game_troop_setup setup
  def setup(troop_id)
    if TMRDTRP::ENEMIES[troop_id]
      $data_troops[troop_id].members = []
      if TMRDTRP::ENEMIES[troop_id].empty?
        list = []
        (1...$data_enemies.size).each do |id|
          list[id - 1] = id unless $data_enemies[id].name == ""
        end
      else
        list = TMRDTRP::ENEMIES[troop_id].clone
      end
      list -= TMRDTRP::EXCLUDE[troop_id] if TMRDTRP::EXCLUDE[troop_id]
      max = TMRDTRP::MAX_ENEMY[troop_id]
      max = max ? [[max, 1].max, 8].min : 6
      min = TMRDTRP::MIN_ENEMY[troop_id]
      min = min ? [[min, 1].max, max].min : 1
      n = rand(rand(max - min + 1) + 1) + min
      (0...n).each do |i|
        member = RPG::Troop::Member.new
        member.enemy_id = list[rand(list.size)]
        space = [rand(80 / n), 40].max
        member.x = i * space + 272 - (n - 2) * space / 2 + rand(64) - 90
        member.y = 161 + rand(64) + (i % 2 * 24)
        $data_troops[troop_id].members = member
      end
    end
    tmrdtrp_game_troop_setup(troop_id)
  end
end

[/pre]            
因为现实太残酷、所以我们都在打造虚幻的天堂。如果现实不再残酷,也是因为有这快乐的天堂。
梦石
0
星屑
266
在线时间
2355 小时
注册时间
2009-3-13
回帖
2257

贵宾

发表于 2013-3-25 19:46:25 | 显示全部楼层
本帖最后由 Sion 于 2013-3-25 19:48 编辑
  1.       (0...n).each do |i|
  2.         member = RPG::Troop::Member.new
  3.         member.enemy_id = i.zero? ? list[0] :  list[rand(list.size)] # 改这里
  4.         space = [rand(80 / n), 40].max
  5.         member.x = i * space + 272 - (n - 2) * space / 2 + rand(64) - 90
  6.         member.y = 161 + rand(64) + (i % 2 * 24)
  7.         $data_troops[troop_id].members[i] = member
  8.       end
复制代码
改这一段,位置1的敌人就一定会出现了。没测试,应该没问题吧..

点评

解決了!! 感謝你~!!!  发表于 2013-3-25 23:29
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部