加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
首先附上自己瞎写的脚本,这个是配合沉影不器大大的读取备注栏脚本写的,思路大概就是自己定义攻防精神系数来自定义技能伤害(仿VA MV)
#-------------------------------------------------------------------------- # ● 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
#--------------------------------------------------------------------------
# ● 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
目前测试下来暂时没什么问题,唯一问题就是,假如我要实现角色的最大生命这些特殊属性作为技能伤害,那备注栏写法理论来说应该是
atk_ef = 0
def_ef = 0
spi_ef = 0
mdef_ef = 0
power = user.maxhp
但是这样肯定出错,毕竟读取备注栏的module没有定义user这个东西,但user在Game_Battler里面是定义过的,所以现在很尴尬,如果用全局变量比如power = $game_actors[1].maxhp
的话肯定是没问题的,但这样只能一个角色用用这个技能了...... |