Project1

标题: 请问如何在脚本分歧中写循环语句 [打印本页]

作者: jianyulei    时间: 2016-6-12 14:02
标题: 请问如何在脚本分歧中写循环语句
本人想在脚本里面追加一个判断是否有某状态的分歧选项想要队伍中所有角色根据是否拥有状态来决定初始TP,不过由于需要判断的状态过多,如果让我写我也只会用 OR 来将判断每个不同状态的分歧连起来,但面对近百状态时这样肯定是不行的。所以问问循环的写法,想让游戏进入战斗之时状态队伍中的角色是否拥有100-200的状态,是的话就使初始TP增加20
作者: 喵呜喵5    时间: 2016-6-12 14:32
本帖最后由 喵呜喵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
复制代码

作者: jianyulei    时间: 2016-6-12 16:16
本帖最后由 jianyulei 于 2016-6-12 16:18 编辑
喵呜喵5 发表于 2016-6-12 14:32
或者下面这个更通用的解决办法:


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

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

报错类容

报错类容

作者: 喵呜喵5    时间: 2016-6-12 17:27
本帖最后由 喵呜喵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
复制代码
个人建议你理解这段代码到底是如何工作的,然后自己重新写一个自己的版本,而不是直接使用这段代码




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1