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

Project1

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

[已经解决] 请问如何在脚本分歧中写循环语句

[复制链接]

Lv3.寻梦者

梦石
0
星屑
2920
在线时间
713 小时
注册时间
2010-7-25
帖子
813

开拓者

跳转到指定楼层
1
发表于 2016-6-12 14:02:07 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式

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

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

x
本人想在脚本里面追加一个判断是否有某状态的分歧选项想要队伍中所有角色根据是否拥有状态来决定初始TP,不过由于需要判断的状态过多,如果让我写我也只会用 OR 来将判断每个不同状态的分歧连起来,但面对近百状态时这样肯定是不行的。所以问问循环的写法,想让游戏进入战斗之时状态队伍中的角色是否拥有100-200的状态,是的话就使初始TP增加20

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
21631
在线时间
9415 小时
注册时间
2012-6-19
帖子
7118

开拓者短篇九导演组冠军

4
发表于 2016-6-12 17:27:01 | 只看该作者
本帖最后由 喵呜喵5 于 2016-6-12 17:30 编辑
jianyulei 发表于 2016-6-12 16:16
我一般是对应角色判断,因为状态是角色拥有的,也只有判断角色,而引擎自带了判断角色是否有某状态的选项 ...


对于第一个脚本,我想说的是:
是 & 不是 && ,只有一个 &,功能是取数组的交集

第二个脚本,我想问你的是,你是怎么判断某个角色拥有某个状态的,或者,你的 1号角色是否拥有 1号状态,你脚本里是怎么写的?
例如你要用引擎自带的判断的话,就是:
  1. class Game_Actor
  2.   alias m5_20160612_init_tp init_tp
  3.   def init_tp
  4.     m5_20160612_init_tp
  5.     (100..200).each do |id|
  6.       next unless state?(id)
  7.       self.tp += 20
  8.       break
  9.     end
  10.   end
  11. end
复制代码
个人建议你理解这段代码到底是如何工作的,然后自己重新写一个自己的版本,而不是直接使用这段代码

点评

恩,现在可以使用了额,谢谢  发表于 2016-6-12 18:44
检查了一下,发现第一段代码我漏打了一个 s ……  发表于 2016-6-12 18:07
第一个脚本我是直接复制的,没有改成&&,第二个脚本我现在看懂了,但如果不写清楚我估计看不懂  发表于 2016-6-12 17:42
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2920
在线时间
713 小时
注册时间
2010-7-25
帖子
813

开拓者

3
 楼主| 发表于 2016-6-12 16:16:27 | 只看该作者
本帖最后由 jianyulei 于 2016-6-12 16:18 编辑
喵呜喵5 发表于 2016-6-12 14:32
或者下面这个更通用的解决办法:


我一般是对应角色判断,因为状态是角色拥有的,也只有判断角色,而引擎自带了判断角色是否有某状态的选项。
第二个脚本的角色判断我认为应该是对应战斗中人物对应的位置,我规定的是3人上场,也就是1-3号位置都要判定一次,我不知道怎么让我放全体都对应这个标准。

QQ图片20160612161711.png (5.41 KB, 下载次数: 23)

报错类容

报错类容
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
21631
在线时间
9415 小时
注册时间
2012-6-19
帖子
7118

开拓者短篇九导演组冠军

2
发表于 2016-6-12 14:32:30 | 只看该作者
本帖最后由 喵呜喵5 于 2016-6-12 18:06 编辑
  1. class Game_Actor
  2.   alias m5_20160612_init_tp init_tp
  3.   def init_tp
  4.     m5_20160612_init_tp
  5.     if (@states & (100..200).to_a).size > 0
  6.       self.tp += 20
  7.     end
  8.   end
  9. end
复制代码
或者下面这个更通用的解决办法:
  1. class Game_Actor
  2.   alias m5_20160612_init_tp init_tp
  3.   def init_tp
  4.     m5_20160612_init_tp
  5.     (100..200).each do |id|
  6.       next unless 拥有此 id 的状态
  7.       self.tp += 20
  8.       break
  9.     end
  10.   end
  11. end
复制代码

点评

第一个代码 size 报错内容是什么,第二个你原来都怎么判断角色拥有哪个状态的?  发表于 2016-6-12 15:41
第一个代码size报错,第二个 “拥有此 id 的状态”不知道该怎么写  发表于 2016-6-12 15:33

评分

参与人数 2星屑 +15 梦石 +1 收起 理由
VIPArcher + 1 认可答案
jianyulei + 15 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 16:50

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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