Project1

标题: 请问系统自带的敌人是否出现分歧的命令写法 [打印本页]

作者: jianyulei    时间: 2016-11-25 13:11
标题: 请问系统自带的敌人是否出现分歧的命令写法
我尝试用$game_troop.members[6].normal?或者$game_troop.members[6].exist?来判断敌人是否出现在场上,结果却是如果没有设定那个位置的敌人就会报错
但是系统自带的分歧里面的“敌人是否出现”却可以将不存在的敌人判断为不在场上,请问这个的脚本应该怎么写?我主要是要用变量来选择敌人位置
作者: cinderelmini    时间: 2016-11-25 14:19
本帖最后由 cinderelmini 于 2016-11-25 14:21 编辑

先判断是否是敌人数据实例再用实例的方法做判定会比较好。。比如。。。
  1. if $game_troop.members[6].is_a?(Game_Enemy) and $game_troop.members[6].normal?
  2. ...
  3. end
  4. # 或者偷懒点……
  5. if $game_troop.members[6] and $game_troop.members[6].normal?
  6. ...
  7. end
复制代码

作者: 百里_飞柳    时间: 2016-11-25 14:43
$game_troop里面的members方法返回了当前敌群的所有敌人的game_enemy对象的数组
迭代这个数组并依次判定各个敌人对象的 exist? 方法,就是判定这个敌人是否 存在 于场上(与之相反的是 隐藏,并未考虑死亡)alive?与dead?便先考虑是否 存在,再考虑了是否死亡。

举例: 比如设置3号敌人为中途出现,而1/2/4/5为一开始出现,在战斗事件中写入脚本
  1. a = []
  2. $game_troop.members.each do |member|
  3. a.push(member.index) if member.exist?
  4. end
  5. p a
复制代码

输出 [0, 1, 3, 4]

3号敌人出现后,再一遍脚本
输出 [0, 1, 2, 3, 4]




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