加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
之前对游戏里的连续伤害状态做了优化,给每个连续伤害的BUFF附加了自己的固定数值,这样就可以人为改变毒的伤害,控制每个状态的强度。
后来想新添加一个功能,就是使某个毒BUFF扣除的不是HP,而是SP。然后改写成下面这样。
def slip_damage_effect # ダメージを設定 n = 0 for i in @states #在先前的脚本已经做了定义,每个连续伤害BUFF有自己固定的伤害值,这个值就是$data_states[i].poi。 n += $data_states[i].poi end #判定是否为连续伤害SP,若状态包含4号状态防御,就判定为连续伤害SP的状态。 #HP、SP都损伤的场合 if $data_states[i].guard_element_set.include?(4) self.damage["slip"] = n self.damage_sp["slip"] = n # 分散 if self.damage["slip"].abs > 0 amp = [self.damage["slip"].abs * 15 / 100, 1].max self.damage["slip"] += rand(amp+1) + rand(amp+1) - amp end self.hp -= self.damage["slip"] self.sp -= self.damage_sp["slip"] #SP损伤的场合 elsif $data_states[i].guard_element_set.include?(3) self.damage_sp["slip"] = n self.sp -= self.damage_sp["slip"] #HP损伤的场合 else self.damage["slip"] = n # 分散 if self.damage["slip"].abs > 0 amp = [self.damage["slip"].abs * 15 / 100, 1].max self.damage["slip"] += rand(amp+1) + rand(amp+1) - amp end # HP からダメージを減算 self.hp -= self.damage["slip"] end # メソッド終了 return true end
def slip_damage_effect
# ダメージを設定
n = 0
for i in @states
#在先前的脚本已经做了定义,每个连续伤害BUFF有自己固定的伤害值,这个值就是$data_states[i].poi。
n += $data_states[i].poi
end
#判定是否为连续伤害SP,若状态包含4号状态防御,就判定为连续伤害SP的状态。
#HP、SP都损伤的场合
if $data_states[i].guard_element_set.include?(4)
self.damage["slip"] = n
self.damage_sp["slip"] = n
# 分散
if self.damage["slip"].abs > 0
amp = [self.damage["slip"].abs * 15 / 100, 1].max
self.damage["slip"] += rand(amp+1) + rand(amp+1) - amp
end
self.hp -= self.damage["slip"]
self.sp -= self.damage_sp["slip"]
#SP损伤的场合
elsif $data_states[i].guard_element_set.include?(3)
self.damage_sp["slip"] = n
self.sp -= self.damage_sp["slip"]
#HP损伤的场合
else
self.damage["slip"] = n
# 分散
if self.damage["slip"].abs > 0
amp = [self.damage["slip"].abs * 15 / 100, 1].max
self.damage["slip"] += rand(amp+1) + rand(amp+1) - amp
end
# HP からダメージを減算
self.hp -= self.damage["slip"]
end
# メソッド終了
return true
end
预期的效果是这样的,就是比如说1号毒BUFF包含有3号状态防御,那么中了1号毒的人就会每回合掉固定的SP。2号毒BUFF包含有4号状态防御,那么中了2号毒的人就会每回合掉固定的HP和SP。
在角色身上只有一个毒BUFF的情况下,是可以达到这个预期效果的。但是当角色身上存在另外一个非连续伤害BUFF的时候,游戏就会将角色身上存在的另一个毒BUFF判定为只扣HP,无论这个毒BUFF是否带有3号、4号状态防御,都会被判定为默认的普通毒BUFF。请问这个BUG要怎么修复? |