本帖最后由 jiushiainilip19 于 2015-12-10 23:55 编辑
self.critical = false 是关闭 self.critical = true 是打开
下面是Game_Battler 3中技能的设定
给技能设定 也就是数据---系统---属性哪里 skill.element_set.include?(3) 就是3号属性 把想暴击的技能勾上就必定暴击
if hit_result == true # 计算威力 power = skill.power + user.atk * skill.atk_f / 100 if power > 0 power -= self.pdef * skill.pdef_f / 200 power -= self.mdef * skill.mdef_f / 200 power = [power, 0].max end # 计算倍率 rate = 20 rate += (user.str * skill.str_f / 100) rate += (user.dex * skill.dex_f / 100) rate += (user.agi * skill.agi_f / 100) rate += (user.int * skill.int_f / 100) # 计算基本伤害 self.damage = power * rate / 20 # 属性修正 self.damage *= elements_correct(skill.element_set) self.damage /= 100 # 伤害符号正确的情况下 if self.damage > 0 ####################################################### # 依次是:判定为游戏玩家 角色ID1 技能属性ID3 然后是几率随机10<3 #以下判定可以 自己取决 这里就是告诉你这些语句 技能是 skill.id == 技能ID if user.is_a?(Game_Actor) && user.id == 1 &&skill.element_set.include?(3) && rand(10)<3 self.critical = true #暴击开启 end ########################################################
if hit_result == true
# 计算威力
power = skill.power + user.atk * skill.atk_f / 100
if power > 0
power -= self.pdef * skill.pdef_f / 200
power -= self.mdef * skill.mdef_f / 200
power = [power, 0].max
end
# 计算倍率
rate = 20
rate += (user.str * skill.str_f / 100)
rate += (user.dex * skill.dex_f / 100)
rate += (user.agi * skill.agi_f / 100)
rate += (user.int * skill.int_f / 100)
# 计算基本伤害
self.damage = power * rate / 20
# 属性修正
self.damage *= elements_correct(skill.element_set)
self.damage /= 100
# 伤害符号正确的情况下
if self.damage > 0
#######################################################
# 依次是:判定为游戏玩家 角色ID1 技能属性ID3 然后是几率随机10<3
#以下判定可以 自己取决 这里就是告诉你这些语句 技能是 skill.id == 技能ID
if user.is_a?(Game_Actor) && user.id == 1 &&skill.element_set.include?(3) && rand(10)<3
self.critical = true #暴击开启
end
########################################################
|