赞 | 0 |
VIP | 0 |
好人卡 | 0 |
积分 | 1 |
经验 | 2677 |
最后登录 | 2013-9-25 |
在线时间 | 148 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 50
- 在线时间
- 148 小时
- 注册时间
- 2012-7-2
- 帖子
- 157
|
本帖最后由 limaolinghu 于 2012-7-4 15:36 编辑
Game_Battler类,红的是加的,没仔细测,也没加文字描述。当使用技能编号1的技能时,自己受到伤害的10%
def execute_damage(user, skill = nil)
if @hp_damage > 0 # 若伤害为正数
remove_states_shock # 攻击移除状态
end
self.hp -= @hp_damage
user.hp -= @hp_damage / 10 if skill.id == 1
self.mp -= @mp_damage
if @absorbed # 若吸收
user.hp += @hp_damage
user.mp += @mp_damage
end
end
def skill_effect(user, skill)
clear_action_results
unless skill_effective?(user, skill)
@skipped = true
return
end
if rand(100) >= calc_hit(user, skill) # 计算命中率
@missed = true
return
end
if rand(100) < calc_eva(user, skill) # 计算闪躲率
@evaded = true
return
end
make_obj_damage_value(user, skill) # 计算伤害
make_obj_absorb_effect(user, skill) # 计算吸收效果
execute_damage(user, skill) # 伤害效果
if skill.physical_attack and @hp_damage == 0 # 判断是否物理伤害
return
end
apply_state_changes(skill) # 增减状态
end |
|