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

Project1

 找回密码
 注册会员
搜索
楼主: 黑米馒头
打印 上一主题 下一主题

[已经解决] 捕捉时宠物加入

[复制链接]

Lv3.寻梦者

梦石
0
星屑
4501
在线时间
381 小时
注册时间
2012-11-8
帖子
273
11
发表于 2022-5-21 09:56:43 | 只看该作者
elsif acca & BUZHUO_BABY::ACID[en.id] != nil
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3206
在线时间
1865 小时
注册时间
2010-6-19
帖子
1206
12
 楼主| 发表于 2022-5-21 10:11:30 | 只看该作者
qq634488405 发表于 2022-5-21 09:56
elsif acca & BUZHUO_BABY::ACID[en.id] != nil

  #  elsif acca.include?(BUZHUO_BABY::ACID[en.id]) #【无效目标】
    elsif acca & BUZHUO_BABY::ACID[en.id] != nil
      @active_battler.damage = "!c[2]" + en.name + "!c[6]已经在队伍中的召唤兽!"
      @phase4_step = 3
      return
    end
这样不行,捕捉的时候,直接显示 “已经在队伍中的召唤兽", 然后敌人也捕捉不了
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
4501
在线时间
381 小时
注册时间
2012-11-8
帖子
273
13
发表于 2022-5-21 10:13:40 | 只看该作者
这个是有任意一个对应ID在队伍就不行,要全部都在队伍就不能捕捉那就是
elsif acca & BUZHUO_BABY::ACID[en.id] == BUZHUO_BABY::ACID[en.id]
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3206
在线时间
1865 小时
注册时间
2010-6-19
帖子
1206
14
 楼主| 发表于 2022-5-21 10:43:44 | 只看该作者
qq634488405 发表于 2022-5-21 10:13
这个是有任意一个对应ID在队伍就不行,要全部都在队伍就不能捕捉那就是
elsif acca & BUZHUO_BABY::ACID[en ...

这样能捕捉了,可是当两个队友同时开始捕捉的时候,只有1个队伍进宠物,而且是同一个ID的宠物,是不是因为第一个数组里的宠物被捕捉了,后面那个宠物没有填补上去?
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
4501
在线时间
381 小时
注册时间
2012-11-8
帖子
273
15
发表于 2022-5-21 11:08:44 | 只看该作者
本帖最后由 qq634488405 于 2022-5-21 14:55 编辑

原来的判断是单个角色单独判断是否有ID
#获得宠物
BUZHUO_BABY::ACID[en.id].each do |i|
  unless acca.include?(i)
…………

点评

不对,这样改了之后,宠物可以无限捕捉?【数组里的ID在队伍里也还能继续捕捉】  发表于 2022-5-21 14:27
捕捉正常了,但是放生宠物之后,再次捕捉就能无限捕捉了…  发表于 2022-5-21 14:13
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3206
在线时间
1865 小时
注册时间
2010-6-19
帖子
1206
16
 楼主| 发表于 2022-5-21 11:22:20 | 只看该作者
本帖最后由 黑米馒头 于 2022-5-21 13:23 编辑
qq634488405 发表于 2022-5-21 11:08
原来的判断是单个角色单独判断是否有ID
#获得宠物
BUZHUO_BABY::ACID[en.id].each do |i|


报错了..

还发现1个Bug,

正常情况
当数组里的ID全被捕捉了,你在次捕捉这个敌人显示不能捕捉了【这一点正常了】,

Bug
当把宠物放生了,在次捕捉的时候竟然可以无限捕捉?

点评

acca,我打错字了  发表于 2022-5-21 13:47
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
4501
在线时间
381 小时
注册时间
2012-11-8
帖子
273
17
发表于 2022-5-21 16:44:39 | 只看该作者
改成acca还有BUG?

点评

是的,好像判定没效果一样,可以无限捕捉  发表于 2022-5-21 16:55
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3206
在线时间
1865 小时
注册时间
2010-6-19
帖子
1206
18
 楼主| 发表于 2022-5-21 18:20:48 | 只看该作者
本帖最后由 黑米馒头 于 2022-5-21 21:28 编辑

Bug:现在数组里的宠物全在队伍里了,也能继续捕捉

    # 已经在队伍的情况
      elsif acca & BUZHUO_BABY::ACID[en.id] == BUZHUO_BABY::ACID[en.id]
      @active_battler.damage = "!c[2]" + en.name + "!c[6]捕捉数量已达上限!"
      @phase4_step = 3
      return
    end

     #获得宠物
      BUZHUO_BABY::ACID[en.id].each do |i|
        unless acca.include?(i)
          @active_battler.kds_baby.push(i)
          $game_actors.zhuren = @active_battler.id
          break
        end
      end      

      
我大概排查出BUG了,按照上面这样修改,战斗的时候除非数组里的宠物全在1个队员身上,你在继续捕捉才会显示无法继续捕捉了,
不然的话就会出现能无限捕捉的情况,举例:数组设置3只宠物,角色1身上捕捉了1只,角色2身上捕捉了2只,那么上面的判定就没用了,
你可以无限捕捉,除非角色1或角色2其中一个身上有这3只宠物,那么上面的判定才生效,你继续捕捉会显示 捕捉数量已达到上限。
elsif acca & BUZHUO_BABY::ACID[en.id] == BUZHUO_BABY::ACID[en.id]
这句是不是 数组里的宠物数量  =  单个角色身上宠物的数量?
我的理解是,应该改成 ,数组里宠物的数量 = 队伍里宠物的数量

点评

多p一下,分段看看各部分数值  发表于 2022-5-22 00:13
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
4501
在线时间
381 小时
注册时间
2012-11-8
帖子
273
19
发表于 2022-5-21 23:45:01 | 只看该作者
黑米馒头 发表于 2022-5-21 18:20
Bug:现在数组里的宠物全在队伍里了,也能继续捕捉

    # 已经在队伍的情况

acca是所有角色宠物总集合。acca & BUZHUO_BABY::ACID[en.id]返回的是角色宠物总集合与敌人对应ID的交集,这个交集与BUZHUO_BABY::ACID[en.id]相同意味着acca包含所有这个敌人对应的ID,所以要显示捕捉到上限。而获得宠物那里是取这个敌人对应的ID,依次判断acca中是否含有这个ID,没有就加入宠物

点评

那这BUG没办法改吗?我是没头绪了  发表于 2022-5-21 23:52
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3206
在线时间
1865 小时
注册时间
2010-6-19
帖子
1206
20
 楼主| 发表于 2022-5-22 00:22:08 | 只看该作者
qq634488405 发表于 2022-5-21 23:45
acca是所有角色宠物总集合。acca & BUZHUO_BABY::ACID[en.id]返回的是角色宠物总集合与敌人对应ID的交集 ...

这是范例,你进去看下,用1个角色捕捉宠物的话,捕捉玩3只就不能捕捉了,但是你如果用别的角色去捕捉,就不行了

捕捉宠物.rar

1.35 MB, 下载次数: 2

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-7 01:37

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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