本帖最后由 RyanBern 于 2015-10-30 23:50 编辑
在Scene_Battle4中有如下定义
def make_skill_action_result # 获取特技 @skill = $data_skills[@active_battler.current_action.skill_id] # 如果不是强制行动 unless @active_battler.current_action.forcing # 因为 SP 耗尽而无法使用的情况下 unless @active_battler.skill_can_use?(@skill.id) # 清除强制行动对像的战斗者 $game_temp.forcing_battler = nil # 移至步骤 1 @phase4_step = 1 return end end # 消耗 SP @active_battler.sp -= @skill.sp_cost # 刷新状态窗口 @status_window.refresh # 在帮助窗口显示特技名 @help_window.set_text(@skill.name, 1) # 设置动画 ID @animation1_id = @skill.animation1_id @animation2_id = @skill.animation2_id # 设置公共事件 ID @common_event_id = @skill.common_event_id # 设置对像侧战斗者 set_target_battlers(@skill.scope) # 应用特技效果 for target in @target_battlers target.skill_effect(@active_battler, @skill) end end
def make_skill_action_result
# 获取特技
@skill = $data_skills[@active_battler.current_action.skill_id]
# 如果不是强制行动
unless @active_battler.current_action.forcing
# 因为 SP 耗尽而无法使用的情况下
unless @active_battler.skill_can_use?(@skill.id)
# 清除强制行动对像的战斗者
$game_temp.forcing_battler = nil
# 移至步骤 1
@phase4_step = 1
return
end
end
# 消耗 SP
@active_battler.sp -= @skill.sp_cost
# 刷新状态窗口
@status_window.refresh
# 在帮助窗口显示特技名
@help_window.set_text(@skill.name, 1)
# 设置动画 ID
@animation1_id = @skill.animation1_id
@animation2_id = @skill.animation2_id
# 设置公共事件 ID
@common_event_id = @skill.common_event_id
# 设置对像侧战斗者
set_target_battlers(@skill.scope)
# 应用特技效果
for target in @target_battlers
target.skill_effect(@active_battler, @skill)
end
end
这里有个消耗 SP。可以在这里做修改。
一种可行的办法(仅供参考,未测试)
if @active_battler.is_a?(Game_Actor) && @active_battler.skill_learn?(变SP消耗为HP的技能ID) @active_battler.damage = -Integer(1.0 * @skill.sp_cost * @active_battler.maxhp / @active_battler.maxsp) @active_battler.hp -= @active_battler.damage @active_battler.damage_pop = true end
if @active_battler.is_a?(Game_Actor) && @active_battler.skill_learn?(变SP消耗为HP的技能ID)
@active_battler.damage = -Integer(1.0 * @skill.sp_cost * @active_battler.maxhp / @active_battler.maxsp)
@active_battler.hp -= @active_battler.damage
@active_battler.damage_pop = true
end
|