#-------------------------------------------------------------------------- # ● VX版重新定义技能 by ZYYNOV 需要配合读取备注栏脚本使用 # power => 技能基础伤害 # atk_ef => 攻击系数 # def_ef => 防御系数 # spi_ef => 精神攻击系数 # mdef_ef => 精神防御系数 # 按照这个格式写到技能的备注栏中,就可以自己定义技能伤害公式了。 #-------------------------------------------------------------------------- class Game_Battler def make_obj_damage_value(user, obj) damage = obj.read_note('power') # 基础计算 if damage > 0 # 若伤害为正 damage += user.atk * obj.read_note('atk_ef') * obj.atk_f / 100 # 使用者攻击力关系度 damage += user.spi * obj.read_note('spi_ef') * obj.spi_f / 100 # 使用者精神力关系度 unless obj.ignore_defense # 除非无视防御力 damage -= self.def * obj.read_note('def_ef') * obj.atk_f / 100 # 目标攻击力关系度 damage -= self.spi * obj.read_note('mdef_ef') * obj.spi_f / 100 # 目标精神力关系度 end damage = 0 if damage < 0 # 设负数伤害为0 elsif damage < 0 # 若伤害为负 damage -= user.atk * 4 * obj.atk_f / 100 # 使用者攻击力关系度 damage -= user.spi * 2 * obj.spi_f / 100 # 使用者精神力关系度 end damage *= elements_max_rate(obj.element_set) # 属性校正 damage /= 100 damage = apply_variance(damage, obj.variance).to_i# 分散度 damage = apply_guard(damage) # 防御校正 if obj.damage_to_mp @mp_damage = damage # 伤害魔力 else @hp_damage = damage # 伤害体力 end end end
1.PNG (74.52 KB, 下载次数: 11)
KB.Driver 发表于 2019-5-2 00:34
直接用eval有什么不好
尽管安全性差一点,但VA的实现就是eval(只不过稍微加以封装)
欢迎光临 Project1 (https://rpg.blue/) | Powered by Discuz! X3.1 |