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

Project1

 找回密码
 注册会员
搜索
查看: 2459|回复: 12

[已经解决] [已解决]如何队伍随机组合,统一管理战斗背景图。

[复制链接]

Lv4.逐梦者

梦石
0
星屑
14051
在线时间
2135 小时
注册时间
2019-1-24
帖子
1121

R考场第七期纪念奖

发表于 2019-11-11 16:03:16 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 miantouchi 于 2019-11-13 22:31 编辑

打个比方,1号区域有2种怪物,我想让怪物出现的队伍随机组合,并且组合数量不超过3个
如:
乌龙龟
乌龙龟、乌龙龟
乌龙龟、乌龙龟、乌龙龟
鞭形虫、
鞭形虫、鞭形虫
鞭形虫、鞭形虫、鞭形虫
乌龙龟、鞭形虫
鞭形虫、乌龙龟
乌龙龟、鞭形虫、鞭形虫
乌龙龟、乌龙龟、鞭形虫
鞭形虫、乌龙龟、乌龙龟
鞭形虫、鞭形虫、乌龙龟
大概就是这个意思吧,就是让出现的怪物随机组合,不至于单调。
我现在这么罗列出来太占用队伍的数量了。

第二个问题就是,战斗背景图,我现在是0回合里面直接设置的,
能不能用脚本统一整理下,我现在这么写不会有啥问题吧。

1.png

Lv4.逐梦者

梦石
0
星屑
14038
在线时间
2069 小时
注册时间
2016-9-20
帖子
844
发表于 2019-11-11 17:35:44 | 显示全部楼层
排列組合我完全學不懂,以前高二數學課考了一次零分
内容仅供参考,
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
37641
在线时间
5308 小时
注册时间
2006-11-10
帖子
6541
发表于 2019-11-11 22:39:58 | 显示全部楼层
本帖最后由 灯笼菜刀王 于 2019-11-12 10:01 编辑
  1. #-------------------------------------------------
  2. #  随机安排敌人 19.11.11 by 灯笼菜刀君
  3. #  
  4. #    使用方法: 在 敌群事件第一页第一行用注释这样写就可以设置
  5. #
  6. #    [随机敌人]2
  7. #    [种类]1=>5,2=>3,3=>1
  8. #
  9. #-----设置内容解释------------------------
  10. #
  11. #-[随机敌人]2 ← 这个2表示最低数量,敌人数量会在这个数值到该敌群原本数量之间随机
  12. # [种类] 注意要和上面同一个注释框里,也就是写在注释第二行
  13. #  数值意思为 敌人ID=>随机权重  用半角逗号隔开每个ID
  14. #  如果没设置[种类], 则会在该敌群的原有敌人里随机抽
  15. #
  16. #  注意事项: 该注释设置里不能换行, 另外符号都要为半角符号(英文符号)
  17. #---------------------------------------------------------------------------
  18. class Game_Troop
  19.   alias xoxo_setup setup
  20.   def setup(troop_id)
  21.     page = $data_troops[troop_id].pages[0]
  22.     if page.list != nil and page.list[0].code == 108 and
  23.     page.list[0].parameters[0].include?("[随机敌人]")
  24.       n = page.list[0].parameters[0].gsub("[随机敌人]","").to_i
  25.       m = $data_troops[troop_id].members.size
  26.       if page.list[1] != nil and page.list[1].code == 408 and
  27.       page.list[1].parameters[0].include?("[种类]")
  28.         h = eval("{" + page.list[1].parameters[0].gsub("[种类]","") + "}")
  29.       else
  30.         h = {}
  31.         $data_troops[troop_id].members each {|i|
  32.         h[i.enemy_id].nil? ? h[i.enemy_id] = 1 : h[i.enemy_id] += 1}
  33.       end
  34.       @enemies = []
  35.       w = m - rand([m - n + 1,1].max)
  36.       g = []
  37.       h.keys.each {|i| h[i].times { g.push(i)}}
  38.       w.times {|i| @enemies.push(Game_Enemy.new(troop_id,i,g.抽奖))}
  39.     else
  40.       xoxo_setup(troop_id)
  41.     end
  42.   end
  43. end
  44. class Game_Enemy < Game_Battler
  45.   def initialize(troop_id, member_index,id=nil)
  46.     super()
  47.     @troop_id = troop_id
  48.     @member_index = member_index
  49.     troop = $data_troops[@troop_id]
  50.     @enemy_id = id.nil? ? troop.members[@member_index].enemy_id : id
  51.     enemy = $data_enemies[@enemy_id]
  52.     @battler_name = enemy.battler_name
  53.     @battler_hue = enemy.battler_hue
  54.     @hp = maxhp
  55.     @sp = maxsp
  56.     @hidden = troop.members[@member_index].hidden
  57.     @immortal = troop.members[@member_index].immortal
  58.   end
  59. end
  60. class Array
  61.   def 抽奖
  62.     f = self.dup
  63.     f.size.times do |i|
  64.       a = f[i]
  65.       b = rand(f.size)
  66.       f[i] = f[b]
  67.       f[b] = a
  68.     end
  69.     return f[rand(f.size)]
  70.   end
  71. end
复制代码


随手写的比较粗糙, 稍微测试了下没有问题, 拿去试试看

评分

参与人数 2星屑 +150 +2 收起 理由
RyanBern + 150 + 1 认可答案
miantouchi + 1 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
34825
在线时间
4145 小时
注册时间
2007-12-15
帖子
9970
发表于 2019-11-12 07:13:14 | 显示全部楼层
我也用的上,拿走测试一下。
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
14051
在线时间
2135 小时
注册时间
2019-1-24
帖子
1121

R考场第七期纪念奖

 楼主| 发表于 2019-11-12 07:55:56 | 显示全部楼层
本帖最后由 miantouchi 于 2019-11-12 08:05 编辑
灯笼菜刀王 发表于 2019-11-11 22:39
随手写的比较粗糙, 稍微测试了下没有问题, 拿去试试看


挺好用的,不过我测了是了下
[随机敌人]1
[种类]1=>5,2=>3,3=>1
我把最低数设置为1,队伍敌人数数是3
貌似随机了很多次,每次出现怪物都是2个或者3个敌人队伍随机,并没有1/2/3号怪物单独出现的情况。
不知道什么原因。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-3-29 17:53

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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