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 编辑
先判断是否是敌人数据实例再用实例的方法做判定会比较好。。比如。。。
if $game_troop.members[6].is_a?(Game_Enemy) and $game_troop.members[6].normal?
...
end
# 或者偷懒点……
if $game_troop.members[6] and $game_troop.members[6].normal?
...
end
复制代码
作者:
百里_飞柳
时间:
2016-11-25 14:43
$game_troop里面的members方法返回了当前敌群的所有敌人的game_enemy对象的数组
迭代这个数组并依次判定各个敌人对象的 exist? 方法,就是判定这个敌人是否 存在 于场上(与之相反的是 隐藏,并未考虑死亡)alive?与dead?便先考虑是否 存在,再考虑了是否死亡。
举例: 比如设置3号敌人为中途出现,而1/2/4/5为一开始出现,在战斗事件中写入脚本
a = []
$game_troop.members.each do |member|
a.push(member.index) if member.exist?
end
p a
复制代码
输出 [0, 1, 3, 4]
3号敌人出现后,再一遍脚本
输出 [0, 1, 2, 3, 4]
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1