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

Project1

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

[已经过期] 自动生成敌人队伍的问题

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
20 小时
注册时间
2012-11-15
帖子
7
跳转到指定楼层
1
发表于 2012-11-29 21:21:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
我用了这个自动敌人队伍的脚本  可是只有第一次遇敌是随机出现我设置的敌人队伍
然后再遇敌就一直是我第一次遇到的敌人队伍了  除非退出游戏再进来才会重新随机出现敌人队伍
高手帮我看一下 究竟是什么问题?是不是每次战斗都要重置脚本?怎么重置?
  1. #==============================================================================
  2. # ■ Game_Troop
  3. #------------------------------------------------------------------------------
  4. #  处理敌人队伍和战斗相关资料的类,也可执行如战斗事件管理之类的功能。
  5. # 本类的实例请参考 $game_troop。
  6. #==============================================================================

  7. class Game_Troop < Game_Unit
  8.   
  9.   
  10.   #--------------------------------------------------------------------------
  11.   # ● 获取队伍队员
  12.   #--------------------------------------------------------------------------
  13.   def troop
  14.     return @group if @group != nil
  15.     @group = $data_troops[@troop_id]  #组
  16.     name = @group.name
  17.     unless name.include?("类") & name.include?("个")
  18.       return @group  #如果不是自动生成,则返回。
  19.     end
  20.    
  21.     kinds = name.split("类")[0].split("-")
  22.     kinds = kinds[0].to_i + rand(kinds[1].to_i-kinds[0].to_i) #计算出最大种类数量。
  23.     quan = name.split("类")[1].split("-")
  24.     quan = quan[0].to_i+rand(quan[1].to_i-quan[0].to_i) #计算怪物总数
  25.     kind = bleed(kinds)
  26.     @group.members = army(kind,quan)
  27.     return @group
  28.   end
  29.    
  30.   #--------------------------------------------------------------------------
  31.   # ● 抽取怪物
  32.   #--------------------------------------------------------------------------
  33.   def bleed(num)
  34.     n = []
  35.     for i in [email protected]
  36.       n.push i
  37.     end
  38.     result = []
  39.     for i in 0..num-1
  40.       r = rand(n.size)
  41.       result.push n[r]
  42.       n.delete_at r
  43.     end
  44.     return result
  45.   end
  46.   #--------------------------------------------------------------------------
  47.   # ● 生成队伍
  48.   #--------------------------------------------------------------------------
  49.   def army(bleed,max)
  50.     result = []
  51.     group = @group.members
  52.     for i in 0..max-1
  53.       result.push group[bleed[rand(bleed.size)]]
  54.     end
  55.     return result
  56.   end
  57.   #--------------------------------------------------------------------------
  58.   # ● 设置
  59.   #     troop_id : 队伍 ID
  60.   #--------------------------------------------------------------------------
  61.   def setup(troop_id)
  62.     clear
  63.     @troop_id = troop_id
  64.     @enemies = []
  65.     scr = screens
  66.     if troop.members.size <= 8
  67.       
  68.       for i in 0..troop.members.size-1
  69.         member = troop.members[i]
  70.         enemy = Game_Enemy.new(@enemies.size, member.enemy_id)
  71.         enemy.hidden = member.hidden
  72.         enemy.immortal = member.immortal
  73.         enemy.screen_x = scr[i].x
  74.         enemy.screen_y = scr[i].y
  75.         @enemies.push(enemy)
  76.       end
  77.     else
  78.       for i in 0..7
  79.         member = troop.members[i]
  80.         enemy = Game_Enemy.new(@enemies.size, member.enemy_id)
  81.         enemy.hidden = member.hidden
  82.         enemy.immortal = member.immortal
  83.         enemy.screen_x = scr[i].x
  84.         enemy.screen_y = scr[i].y
  85.         @enemies.push(enemy)
  86.       end
  87.       for i in 8..troop.members.size-1
  88.         member = troop.members[i]
  89.         enemy = Game_Enemy.new(@enemies.size, member.enemy_id)
  90.         enemy.hidden = member.hidden
  91.         enemy.immortal = member.immortal
  92.         rsc = rscr
  93.         enemy.screen_x = rsc[0]
  94.         enemy.screen_y = rsc[1]
  95.         @enemies.push(enemy)
  96.       end
  97.       
  98.     end
  99.    
  100.     make_unique_names
  101.   end
  102.   #--------------------------------------------------------------------------
  103.   # ● 获取位置组
  104.   #--------------------------------------------------------------------------
  105.   def screens
  106.     for i in 1..$data_troops.size-1
  107.       if $data_troops[i].name == "排位组"
  108.         group = $data_troops[i] #获得排位组
  109.         break
  110.       end
  111.     end
  112.     return group.members
  113.   end
  114.   #--------------------------------------------------------------------------
  115.   # ● 获取随机位置
  116.   #--------------------------------------------------------------------------
  117.   def rscr
  118.     scr = screens
  119.     r = rand 8
  120.     s = rand 8
  121.     minx,maxx = [scr[r].x,scr[s].x].min,[scr[r].x,scr[s].x].max
  122.     miny,maxy = [scr[r].y,scr[s].y].min,[scr[r].y,scr[s].y].max
  123.     x = minx + rand(maxx-minx)
  124.     y = miny + rand(maxy-miny)
  125.     return [x,y]
  126.   end
  127.   
  128.   
  129.   
  130.   
  131.   
  132.   
  133.   
  134. end
复制代码

Lv1.梦旅人

梦石
0
星屑
50
在线时间
20 小时
注册时间
2012-11-15
帖子
7
2
 楼主| 发表于 2012-11-29 21:22:00 | 只看该作者
补充一下 是明雷 设置的事件遇敌
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

八宝粥的基叔

梦石
0
星屑
4684
在线时间
5240 小时
注册时间
2009-4-29
帖子
14318

贵宾

3
发表于 2012-12-4 20:56:32 | 只看该作者
脚本报错,而且不会脚本的用法。
LZ你需要先教我们怎么使用本脚本。
《逝去的回忆3:四叶草之梦》真情发布,欢迎点击图片下载试玩喵。

《逝去的回忆3》的讨论群:
一群:192885514
二群:200460747
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 04:42

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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