加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
期望效果:用27号技能造成伤害后记录伤害值x,并使使用者增加x点防御
主要问题还是不太清楚user的具体类是什么
目前是这样写的:
Game_BattleBase:
def param(param_id) value = param_base(param_id) + param_plus(param_id) value *= param_rate(param_id)*param_buff_rate(param_id) #====================================================== value += $加防 if param_id == 3 && $加防 && self.is_a?(RPG::Actor) && self.state?(17) #====================================================== [[value, param_max(param_id)].min, param_min(param_id)].max.to_i end
def param(param_id)
value = param_base(param_id) + param_plus(param_id)
value *= param_rate(param_id)*param_buff_rate(param_id)
#======================================================
value += $加防 if param_id == 3 && $加防 && self.is_a?(RPG::Actor) && self.state?(17)
#======================================================
[[value, param_max(param_id)].min, param_min(param_id)].max.to_i
end
Game_Battler :
def make_damage_value(user, item) value = item.damage.eval(user, self, $game_variables) value = apply_critical(value) if @result.critical value = apply_variance(value, item.damage.variance) value = apply_guard(value) if item.is_a?(RPG::Skill) $加防 = value if user.is_a?(RPG::Actor) && item.id == 27 end p user.class @result.make_damage(value.to_i, item) end
def make_damage_value(user, item)
value = item.damage.eval(user, self, $game_variables)
value = apply_critical(value) if @result.critical
value = apply_variance(value, item.damage.variance)
value = apply_guard(value)
if item.is_a?(RPG::Skill)
$加防 = value if user.is_a?(RPG::Actor) && item.id == 27
end
p user.class
@result.make_damage(value.to_i, item)
end
代码中用RPG::Actor作判断没有效果
对user的类不太了解,就加了个p user.class 进行测试,结果弹出来附件这个结果...
在Game_Battler里把RPG::Actor换成Game_Actor进行判断,$加防 不再是nil了,但是防御一直没加上去,param里Game_Actor和RPG::Actor都试过,没有用。
想问的是:
类似Game_Actor跟RPG::Actor这些类之间有什么区别?
怎么快速准确知道这些参数的类(我知道用.class方法,但是为什么会弹出这么多...不应该是单个类的名称吗)?
上面这段代码应该怎么改?
|