| 赞 | 12 |
| VIP | |
| 好人卡 | |
| 积分 | 103 |
| 经验 | |
| 最后登录 | 2026-10-2 |
| 在线时间 | 1117 小时 |
- 梦石
- 0
- 星屑
- 10345
- 在线时间
- 1117 小时
- 注册时间
- 2015-2-10
- 回帖
- 164
|
悬赏100星屑已解决
我这里有一个伤害或恢复为0则取消一切该技能或道具的附加效果的脚本,一开始我以为只对有伤害计算公式的技能或道具才有效,后来我发现即使是那些设定为本来就不会有伤害或恢复的道具和技能的附加效果也都会消失,必须要设定成其至少有1点的伤害或恢复时其才会有附加效果。我想改掉这个问题,让这个脚本只对那些设定成有伤害或恢复计算公式的技能或道具有效果,并且我想添加一个额外的功能:除了属性有效度为0%外,技能或道具造成的伤害或恢复至少为1。当且仅当该技能或道具的属性造成的伤害或恢复对目标的有效度为0%时伤害才会是0。(有人说在公式里的最后加上“+1”就行,但实际情况是最后的伤害仍然会出现0。)
[pre lang="ruby"]class Game_Battler < Game_BattlerBase
#--------------------------------------------------------------------------
# ● 应用“恢复 HP”效果
#--------------------------------------------------------------------------
alias sn_160127_item_effect_recover_hp item_effect_recover_hp
def item_effect_recover_hp(user, item, effect)
return if self.result.hp_damage <= 0 and self.result.mp_damage <= 0
sn_160127_item_effect_recover_hp(user, item, effect)
end
#--------------------------------------------------------------------------
# ● 应用“恢复 MP”效果
#--------------------------------------------------------------------------
alias sn_160127_item_effect_recover_mp item_effect_recover_mp
def item_effect_recover_mp(user, item, effect)
return if self.result.hp_damage <= 0 and self.result.mp_damage <= 0
sn_160127_item_effect_recover_mp(user, item, effect)
end
#--------------------------------------------------------------------------
# ● 应用“增加 TP”效果
#--------------------------------------------------------------------------
alias sn_160127_item_effect_gain_tp item_effect_gain_tp
def item_effect_gain_tp(user, item, effect)
return if self.result.hp_damage <= 0 and self.result.mp_damage <= 0
sn_160127_item_effect_gain_tp(user, item, effect)
end
#--------------------------------------------------------------------------
# ● 应用“附加状态”效果
#--------------------------------------------------------------------------
alias sn_160127_item_effect_add_state item_effect_add_state
def item_effect_add_state(user, item, effect)
return if self.result.hp_damage <= 0 and self.result.mp_damage <= 0
sn_160127_item_effect_add_state(user, item, effect)
end
#--------------------------------------------------------------------------
# ● 应用“状态附加”效果:普通攻击
#--------------------------------------------------------------------------
alias sn_160127_item_effect_add_state_attack item_effect_add_state_attack
def item_effect_add_state_attack(user, item, effect)
return if self.result.hp_damage <= 0 and self.result.mp_damage <= 0
sn_160127_item_effect_add_state_attack(user, item, effect)
end
#--------------------------------------------------------------------------
# ● 应用“状态附加”效果:普通
#--------------------------------------------------------------------------
alias sn_160127_item_effect_add_state_normal item_effect_add_state_normal
def item_effect_add_state_normal(user, item, effect)
return if self.result.hp_damage <= 0 and self.result.mp_damage <= 0
sn_160127_item_effect_add_state_normal(user, item, effect)
end
#--------------------------------------------------------------------------
# ● 应用“状态解除”效果
#--------------------------------------------------------------------------
alias sn_160127_item_effect_remove_state item_effect_remove_state
def item_effect_remove_state(user, item, effect)
return if self.result.hp_damage <= 0 and self.result.mp_damage <= 0
sn_160127_item_effect_remove_state(user, item, effect)
end
#--------------------------------------------------------------------------
# ● 应用“强化能力”效果
#--------------------------------------------------------------------------
alias sn_160127_item_effect_add_buff item_effect_add_buff
def item_effect_add_buff(user, item, effect)
return if self.result.hp_damage <= 0 and self.result.mp_damage <= 0
sn_160127_item_effect_add_buff(user, item, effect)
end
#--------------------------------------------------------------------------
# ● 应用“弱化能力”效果
#--------------------------------------------------------------------------
alias sn_160127_item_effect_add_debuff item_effect_add_debuff
def item_effect_add_debuff(user, item, effect)
return if self.result.hp_damage <= 0 and self.result.mp_damage <= 0
sn_160127_item_effect_add_debuff(user, item, effect)
end
#--------------------------------------------------------------------------
# ● 应用“解除能力强化”效果
#--------------------------------------------------------------------------
alias sn_160127_item_effect_remove_buff item_effect_remove_buff
def item_effect_remove_buff(user, item, effect)
return if self.result.hp_damage <= 0 and self.result.mp_damage <= 0
sn_160127_item_effect_remove_buff(user, item, effect)
end
#--------------------------------------------------------------------------
# ● 应用“解除能力弱化”效果
#--------------------------------------------------------------------------
alias sn_160127_item_effect_remove_debuff item_effect_remove_debuff
def item_effect_remove_debuff(user, item, effect)
return if self.result.hp_damage <= 0 and self.result.mp_damage <= 0
sn_160127_item_effect_remove_debuff(user, item, effect)
end
#--------------------------------------------------------------------------
# ● 应用“特殊效果”效果
#--------------------------------------------------------------------------
alias sn_160127_item_effect_special item_effect_special
def item_effect_special(user, item, effect)
return if self.result.hp_damage <= 0 and self.result.mp_damage <= 0
sn_160127_item_effect_special(user, item, effect)
end
#--------------------------------------------------------------------------
# ● 应用“能力提升”效果
#--------------------------------------------------------------------------
alias sn_160127_item_effect_grow item_effect_grow
def item_effect_grow(user, item, effect)
return if self.result.hp_damage <= 0 and self.result.mp_damage <= 0
sn_160127_item_effect_grow(user, item, effect)
end
#--------------------------------------------------------------------------
# ● 应用“学会技能”效果
#--------------------------------------------------------------------------
alias sn_160127_item_effect_learn_skill item_effect_learn_skill
def item_effect_learn_skill(user, item, effect)
return if self.result.hp_damage <= 0 and self.result.mp_damage <= 0
sn_160127_item_effect_learn_skill(user, item, effect)
end
end[/pre] |
最佳答案
查看完整内容
[pre lang="ruby"]class Game_Battler < Game_BattlerBase
def make_damage_value(user, item)
value = item.damage.eval(user, self, $game_variables)
value *= item_element_rate(user, item)
value *= pdr if item.physical?
value *= mdr if item.magical?
value *= rec if item.damage.recover?
value = apply_critical(value) if @result.critical
value = apply_variance(value, item.damag ...
|