设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1417|回复: 1
打印 上一主题 下一主题

[已经过期] 发现个随机生成敌群的脚本,但是不太会用

[复制链接]

Lv3.寻梦者

梦石
0
星屑
2333
在线时间
275 小时
注册时间
2017-7-25
帖子
163
跳转到指定楼层
1
发表于 2017-9-25 22:15:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
RUBY 代码复制
  1. #==============================================================================
  2. # ★ RGSS3_ランダムトループ Ver1.1
  3. #==============================================================================
  4. =begin
  5.  
  6. 这个是从某大大哪里拿来的随机遇敌脚本,不过我是横板战斗的,所以小改了敌人出现的位置,
  7. 作者:tomoaky
  8. webサイト:ひきも記 ([url]http://hikimoki.sakura.ne.jp/[/url])
  9.  
  10. 指定したトループの中身(出現エネミー)をランダムに変更します、
  11. どんな敵が出現するか分からないおまけイベントバトルなどにどうぞ。
  12.  
  13. 候補の設定が空の配列だった場合はすべてのエネミーが候補になります、
  14. 名前が空のエネミーは自動的に除外されます。
  15.  
  16. 2012.01.07  Ver1.1
  17.  ・複数のトループをランダム化できるようになりました
  18.  ・最低出現数の設定を追加
  19.  ・座標の計算式を変更
  20.  
  21. 2011.12.15 Ver1.0
  22.   公開
  23.  
  24. =end
  25.  
  26. #==============================================================================
  27. # □ 設定項目
  28. #==============================================================================
  29. module TMRDTRP
  30.   ENEMIES = {}      # この行はいじらない
  31.   EXCLUDE = {}      # この行はいじらない
  32.   MIN_ENEMY = {}    # この行はいじらない
  33.   MAX_ENEMY = {}    # この行はいじらない
  34.  
  35.   # トループID31番の設定
  36.   ENEMIES[31] = [2, 31, 32]     # 出現するエネミーの候補
  37.   EXCLUDE[31] = []                                  # 除外するエネミー
  38.   MIN_ENEMY[31] = 8                                 # 最低出現数
  39.   MAX_ENEMY[31] = 8                                 # 最高出現数
  40.  
  41.   # トループID32番の設定
  42.   ENEMIES[35] = []          # 出現するエネミーの候補(空なら全エネミーを候補に)
  43.   EXCLUDE[35] = [29, 30]    # 除外するエネミー
  44.   MIN_ENEMY[35] = 3         # 最低出現数
  45.   MAX_ENEMY[35] = 6         # 最高出現数
  46.  
  47. end
  48.  
  49. #==============================================================================
  50. # ■ Game_Troop
  51. #==============================================================================
  52. class Game_Troop < Game_Unit
  53.   #--------------------------------------------------------------------------
  54.   # ● セットアップ
  55.   #     troop_id : 敵グループ ID
  56.   #--------------------------------------------------------------------------
  57.   alias tmrdtrp_game_troop_setup setup
  58.   def setup(troop_id)
  59.     if TMRDTRP::ENEMIES[troop_id]
  60.       $data_troops[troop_id].members = []
  61.       if TMRDTRP::ENEMIES[troop_id].empty?
  62.         list = []
  63.         (1...$data_enemies.size).each do |id|
  64.           list[id - 1] = id unless $data_enemies[id].name == ""
  65.         end
  66.       else
  67.         list = TMRDTRP::ENEMIES[troop_id].clone
  68.       end
  69.       list -= TMRDTRP::EXCLUDE[troop_id] if TMRDTRP::EXCLUDE[troop_id]
  70.       max = TMRDTRP::MAX_ENEMY[troop_id]
  71.       max = max ? [[max, 1].max, 8].min : 6
  72.       min = TMRDTRP::MIN_ENEMY[troop_id]
  73.       min = min ? [[min, 1].max, max].min : 1
  74.       n = rand(rand(max - min + 1) + 1) + min
  75.       (0...n).each do |i|
  76.         member = RPG::Troop::Member.new
  77.         member.enemy_id = list[rand(list.size)]
  78.         space = [rand(480 / n), 64].max
  79.         member.x = ( i * space + 272 - (n - 1) * space / 2 + rand(32) - 16 ) / 3 +50
  80.         member.y = 120 + ( rand(64) + (i % 2 * 24) ) * 1.8
  81.         $data_troops[troop_id].members = member
  82.       end
  83.     end
  84.     tmrdtrp_game_troop_setup(troop_id)
  85.   end
  86. end



功能看起来很不错,但是没看懂该怎么设置数据库(还是根本不用),总之用起来一个劲报错

Lv5.捕梦者

梦石
0
星屑
33442
在线时间
5108 小时
注册时间
2012-11-19
帖子
4878

开拓者

2
发表于 2017-9-27 09:40:16 | 只看该作者
  1. =begin
  2. #==============================================================================
  3.   ★ 敌人队伍随机组合 ★  <VA>                       Author:芯☆淡茹水
  4. #==============================================================================
  5. ★ 说明:

  6. 1,随机的设置:数据库 -> 敌人队伍 ,敌群名字后面加上星号(★),接着写上该队伍
  7.               可随机的最大敌人数量。
  8.                            
  9.               未写最大数量的敌人队伍,默认为不随机(比如BOSS战)。

  10. 2,敌人随机概要:随机 最大敌人数量 以内的数。敌人队伍里添加的第一个敌人必然出现在
  11.                 队伍里,但数量随机(方便明雷怪的设置)。往后添加的怪会随机出现
  12.                 在队伍,数量也随机。
  13.                
  14.                 一个敌人队伍想要出现什么样的怪,只需要在设置敌人队伍时想出现的怪每个
  15.                 添加一个进去即可,数量会随机(想要某个怪的出现几率高一点,也可以
  16.                 多添加几个进去)。
  17.                            
  18.                 设置敌人队伍时,怪的位置也不需要拖到指定位置,脚本会随机定位置。
  19. =end
  20. #==============================================================================
  21. #★ 设置:
  22. module X☆R
  23.   #敌人队伍整体画面X坐标。
  24.   Start_point_x = 120
  25.   #敌人队伍整体画面Y坐标。
  26.   Start_point_y = 160
  27.   #敌人之间的X方向间距。
  28.   GAP_x = 110
  29.   #敌人之间的Y方向间距。
  30.   GAP_y = 68
  31.   #敌人排列时的左右偏差(正数:往右偏;负数:往左偏;0:垂直)。
  32.   Cos_add = -30
  33. end
  34. #==============================================================================
  35. class Game_Enemy < Game_Battler
  36.   #--------------------------------------------------------------------------
  37.   # ● 获取战斗画面 Z 坐标
  38.   #--------------------------------------------------------------------------
  39.   def screen_z
  40.     return @screen_y
  41.   end
  42. end
  43. #==============================================================================
  44. class Game_Troop < Game_Unit
  45.   #--------------------------------------------------------------------------
  46.   def need_random
  47.     return (troop.name.split(/★/)[1] != nil)
  48.   end
  49.   #--------------------------------------------------------------------------
  50.   def max_member
  51.     return [[troop.name.split(/★/)[1].to_i,1].max,8].min
  52.   end
  53.   #--------------------------------------------------------------------------
  54.   def rand_num
  55.     return rand(max_member)+1
  56.   end
  57.   #--------------------------------------------------------------------------
  58.   def set_index
  59.     index = @place_data[rand(@place_data.size)]
  60.     @place_data.delete(index)
  61.     return index
  62.   end
  63.   #--------------------------------------------------------------------------
  64.   def set_coordinate(enemy, index)
  65.     enemy.screen_x = index % 2 * X☆R::GAP_x + X☆R::Start_point_x
  66.     enemy.screen_x += index / 2 * X☆R::Cos_add
  67.     enemy.screen_y = index / 2 * X☆R::GAP_y + X☆R::Start_point_y
  68.   end
  69.   #--------------------------------------------------------------------------
  70.   alias xr_rt_old_setup setup
  71.   def setup(troop_id)
  72.     @troop_id = troop_id
  73.     need_random ? random_troop(troop_id) : xr_rt_old_setup(troop_id)
  74.   end
  75.   #--------------------------------------------------------------------------
  76.   def random_troop(troop_id)
  77.     clear
  78.     @troop_id = troop_id
  79.     @enemies = []
  80.     @place_data = [0,1,2,3,4,5,6,7]
  81.     rand_num.times do |i|
  82.       num = i == 0 ? 0 : rand(troop.members.size)
  83.       enemy = Game_Enemy.new(@enemies.size, troop.members[num].enemy_id)
  84.       enemy.hide if troop.members[num].hidden
  85.       set_coordinate(enemy, set_index)
  86.       @enemies << enemy
  87.     end
  88.     init_screen_tone
  89.     make_unique_names
  90.   end
  91. end
  92. #==============================================================================
复制代码
xp vx va mv  va mz 各类型脚本/插件定制
回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-17 20:36

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表