=begin
根据需求增加了一些脚本,
但!是!只适用于默认战斗系统以及基本规则是默认系统的战斗脚本,
切必须至于任何战斗系统之下,否则会出错或者无效。
至于与其他战斗系统整合,已经是另一个程度的问题了。
一点简单的说明:
首先在【数据库】里面的【系统】页里的【属性】里,
增加最大值,找到20号,设定为【特技】,21号设定为【S-爆发技】。
之后,作为战技的技能,请在属性里勾上【特技】属性,
然后这类技能设定的【SP消耗】其实就是CP的消耗了。
下方有一些KGH模块的扩展,
是关于一些常规行动获得的CP量。
可以自行设定。
=end
# KGH模块的一些小扩展
module KGH
# 指令【攻击】获得的cp
CP_GAIN_ATT = 5
# 指令【防御】获得的cp
CP_GAIN_GUA = 4
# 挨打时获得的cp
CP_GAIN_DAM = 3
end
#==============================================================================
# ■ Scene_Battle (分割定义 4)
#------------------------------------------------------------------------------
# 处理战斗画面的类。
#==============================================================================
class Scene_Battle
#--------------------------------------------------------------------------
# ☆ 获取基础命令(攻击、防御)的CP
#--------------------------------------------------------------------------
def get_cp
# 攻击
if @active_battler.current_action.kind == 0 && @active_battler.current_action.basic == 0
cp_get = KGH::CP_GAIN_ATT
# 防御
elsif @active_battler.current_action.kind == 0 && @active_battler.current_action.basic == 1
cp_get = KGH::CP_GAIN_GUA
# 其他
else
cp_get = 0
end
@active_battler.gain_cp(cp_get)
end
#--------------------------------------------------------------------------
# ☆ 生成基本行动结果
#--------------------------------------------------------------------------
alias :old_make_basic_action_result :make_basic_action_result
def make_basic_action_result
## 获取基本行动CP(只给我方角色增加)
get_cp if @active_battler.is_a?(Game_Actor)
# 刷新状态窗口
@status_window.refresh
##############
# 进行原本流程
old_make_basic_action_result
end
#--------------------------------------------------------------------------
# ● 生成特技行动结果
#--------------------------------------------------------------------------
alias old_kgh_make_skill_action_result make_skill_action_result
def make_skill_action_result
[url=home.php?mod=space&uid=260100]@skill[/url] = $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
# 异界的月追加CP消耗
if @skill.element_set.include?(KGH::Crafts_Skill) or
@skill.element_set.include?(KGH::S_Crafts_Skill)
@active_battler.gain_cp([email]-@skill.sp_cost[/email])
else
@active_battler.sp -= @skill.sp_cost
end
# 技能增加CP
if @skill.element_set.include?(1)
@active_battler.gain_cp(+3)
end
# 技能增加CP
if @skill.element_set.include?(2)
@active_battler.gain_cp(+3)
end
# 技能增加CP
if @skill.element_set.include?(3)
@active_battler.gain_cp(+3)
end
# 技能增加CP
if @skill.element_set.include?(4)
@active_battler.gain_cp(+3)
end
# 技能增加CP
if @skill.element_set.include?(5)
@active_battler.gain_cp(+3)
end
# 技能增加CP
if @skill.element_set.include?(6)
@active_battler.gain_cp(+3)
end
# 技能增加CP
if @skill.element_set.include?(7)
@active_battler.gain_cp(+3)
end
# 技能增加CP
if @skill.element_set.include?(8)
@active_battler.gain_cp(+3)
end
# 刷新状态窗口
@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
#--------------------------------------------------------------------------
# ☆ 刷新画面 (主回合步骤 5 : 显示伤害)
#--------------------------------------------------------------------------
alias :old_update_phase4_step5 :update_phase4_step5
def update_phase4_step5
# 隐藏帮助窗口
@help_window.visible = false
# 刷新状态窗口
@status_window.refresh
# 显示伤害
for target in @target_battlers
if target.damage != nil
target.damage_pop = true
end
##挨打时对象获得的CP(只给我方角色增加)
if target.is_a?(Game_Actor)
target.gain_cp(KGH::CP_GAIN_DAM)
# 刷新状态窗口
@status_window.refresh
end
###########################
end
# 移至步骤 6
@phase4_step = 6
end
end
#==============================================================================
# ■ Game_Actor 追加
#------------------------------------------------------------------------------
# 角色结晶槽的升级接口函数为:
# <Game_Actor实例>.cs_levelup(结晶槽ID, 升级幅度) 升级幅度省略则为1
#==============================================================================
class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
# ● 检测技能是否可用,与默认方法略微不同
# skill_id : 技能ID
#--------------------------------------------------------------------------
def skill_can_use?(skill_id)
#如果是CP技能
if $data_skills[skill_id].element_set.include?(KGH::Crafts_Skill) or
$data_skills[skill_id].element_set.include?(KGH::S_Crafts_Skill)
# CP 不足的情况下不能使用
if $data_skills[skill_id].sp_cost > self.cp_store
return false
end
end
return super
end
end