Project1
标题:
如何在Scene外部引用active_battler?
[打印本页]
作者:
saturnfjh
时间:
2010-10-23 08:46
标题:
如何在Scene外部引用active_battler?
本帖最后由 saturnfjh 于 2010-10-25 16:31 编辑
在战斗中执行一个脚本,需要在game_unit中获取当前的行动者,应该怎么引用才不至于总是提示nil?
作者:
moy
时间:
2010-10-23 09:09
把active_battler变成全局变量.
作者:
saturnfjh
时间:
2010-10-24 14:48
自顶……求解……
作者:
小幽的马甲
时间:
2010-10-24 15:02
= =你确定使用时是在战斗中吗?这个变量只有在战斗中才有意义
class Scene_Battle < Scene_Base
attr_accessor :active_battler
end
class Game_Unit
def active_battler
return false unless $scene.is_a?(Scene_Battle)
return $scene.active_battler
end
end
复制代码
作者:
saturnfjh
时间:
2010-10-24 15:55
本帖最后由 saturnfjh 于 2010-10-24 15:56 编辑
回复
小幽的马甲
的帖子
系统又抽了……
话说是给enemy和auto_battle_actor用呀,在确定目标的时候查找自身的仇恨列表的说。。
作者:
saturnfjh
时间:
2010-10-24 16:48
回复
小幽的马甲
的帖子
不行啊……在random_target里面用self返回的是Game_Troop..怎么获取单个的active enemy
作者:
小幽的马甲
时间:
2010-10-24 18:48
回复
saturnfjh
的帖子
回复
saturnfjh
的帖子
Game_Unit确实是Troop的父类,抱歉我想当然了{:nm_1:}
突然明白是怎么回事了 ……我和LZ都忽略了一点,当Battler为敌人或者自动战斗的队友时,@active_battler是指【正在实施行动】的Battler。也就是说,@active_battler为某个Battler时,要么那个Battler是自己能够控制的队员在决定行动,要么是敌人或者自动战斗队友在放动画蹦字,而在他们决定行动时active_battler为nil。
以敌人为例,敌人决定行动是在$game_troop.make_actions,所以考虑在make_actions里调用用make_action的时候增加一个参数就好
作者:
saturnfjh
时间:
2010-10-24 19:43
回复
小幽的马甲
的帖子
噢噢~明白了,只要在make_action哪里传递一个index就行了~
还有decide_random_target中有这么一段:
if target == nil
clear
else
@target_index = target.index
end
看不太懂什么意思。。 @target_index = target.index 为什么会报“wrong number argument”错误?是什么地方参数不一致才会引起这样的错误?
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1