Project1

标题: 战斗对象问题 [打印本页]

作者: clear仔    时间: 2013-8-1 17:42
标题: 战斗对象问题
【最近的问题比较多额……】
就是想弄个状态效果,
让a在状态1时,且b在状态2时,若有c攻击a,则b受到同样的攻击。

自己弄了下:
在scene_battle里所有“生成行动结果”的方法里,所有“应用通常攻击/特技效果”的前面,加上:
RUBY 代码复制
  1. if @target_battlers.include?($game_troop.enemies[1]) and $game_troop.enemies[1].state?(1)#只有敌人1会施放这种让自己与对象分别附加状态1和2的特技
  2.   for actor in $game_party.actors
  3.     @target_battlers.push(actor) if actor.state(2)
  4.   end
  5.   for enemy in $game_troop.enemies
  6.     @target_battlers.push(enemy) if enemy.state?(2)
  7.   end
  8.   end

可是测试发现完全没有效果,一点效果都没有……怎么回事?
作者: clear仔    时间: 2013-8-2 11:11
自顶一下
作者: 弗雷德    时间: 2013-8-2 11:58
这么想只是相当于将actor或者enemy添加进@target_battlers列表中,充其量不过是增加了一个攻击目标,把本是单体目标的攻击变成了多体目标。
但是实际上当一个目标从攻击到被攻击以及显示伤害的整个流程结束后,并不会返回重新执行攻击,而是会移到下一个角色的行动。
要实现的话整个战斗流程都得进行修改,到不如试试反击脚本,在里面修改一下,这样比较方便。
http://www.66rpg.com/articles/2899
将遭到的攻击类型改为攻击方的状态判断,应该可以轻松实现的。
作者: clear仔    时间: 2013-8-2 21:04
弗雷德 发表于 2013-8-2 11:58
这么想只是相当于将actor或者enemy添加进@target_battlers列表中,充其量不过是增加了一个攻击目标,把本是 ...

额,我还是有点不理解,
我是在“应用攻击/特技效果” 之前 添加的脚本,如果说真的是因为什么问题而导致添加进去的元素没有被执行的话,那么应该整个数组都应该没有被循环吧……怎么会只有部分元素被循环了呢?
而且我也看了系统默认的“确定特技对象的”(set_target_battlers(scope))的方法,它确定对象的步骤也只不过是把对象序号所确定的对象添加到@target_battlers数组中,怎么会有差别呢?
作者: 芯☆淡茹水    时间: 2013-8-3 08:21
在显示伤害那儿试试。先判断对象是否有敌人1号;并且处于1号状态。再判断敌人1号的伤害是否是数值。最后循环角色和敌人队伍,如果有处于2号状态的,其伤害就等于1号敌人的伤害。
作者: clear仔    时间: 2013-8-11 10:08
本帖最后由 clear仔 于 2013-8-11 10:09 编辑
芯☆淡茹水 发表于 2013-8-3 08:21
在显示伤害那儿试试。先判断对象是否有敌人1号;并且处于1号状态。再判断敌人1号的伤害是否是数值。最后循 ...


额,好吧,自己解决了,,,,
只要把主楼的脚本改成这样就行了:
for i in $game_troop.enemies
if i.state?(1)
for a in $game_party.actors
@target_battlers.push(a) if a.state?(2)
end
for e in $game_troop.enemies
next if e==i
@target_battlers.push(e) if e.state?(2)
end
end
end




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