赞 | 1 |
VIP | 255 |
好人卡 | 52 |
积分 | 1 |
经验 | 77416 |
最后登录 | 2016-1-18 |
在线时间 | 1269 小时 |
Lv1.梦旅人 薄凉看客
- 梦石
- 0
- 星屑
- 50
- 在线时间
- 1269 小时
- 注册时间
- 2010-6-20
- 帖子
- 1316
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
PS 如果不希望某些角色或某些敌人的技能被复制
可以再添加一个变量 如果该 变量怎么样 直接 跳过复制处理即可
# --------------------------------------------
# ·秘奥义· 写轮眼(复制敌特技的特技)
# --------------------------------------------
# 增加一个变量 记录 最近一次敌人使用的 特技
class Game_Enemy < Game_Battler
attr_accessor :skill
end
# 增加一个变量 记录 最近一次同伴使用的 特技
class Game_Actor < Game_Battler
attr_accessor :skill
end
#==============================================================================
# ■ Scene_Battle (分割定义 4)
#------------------------------------------------------------------------------
# 处理战斗画面的类。
#==============================================================================
class Scene_Battle
#--------------------------------------------------------------------------
# ● 生成特技行动结果
#--------------------------------------------------------------------------
def make_skill_action_result
# 获取特技
@skill = $data_skills[@active_battler.current_action.skill_id]
# ------------------------------------
# 设置id
# ------------------------------------
写轮眼 = 100 # 写轮眼特技id
敌方使用 = true # 敌人可以使用?
重复复制 = true # 就是复制一次技能后 “目标” skill 不清除 可以反复复制该技能
if @skill.id == 写轮眼 # 特技判断
set_target_battlers(@skill.scope) # 取得“复制”目标
if !@target_battlers[0].skill.nil? # 判断目标最近是否使用过技能
@active_battler.sp -= @skill.sp_cost # 扣除使用写轮眼消耗的sp
@skill = @target_battlers[0].skill # “技能替代”
@target_battlers = [] # 清空目标数组
set_target_battlers(@skill.scope) # 设置新的效果范围
if 重复复制 == false
@target_battlers[0].skill = nil # 目标“技能清除”
end
@active_battler.sp -= @skill.sp_cost # 扣除sp(mp)
@status_window.refresh # 刷新状态窗口
@help_window.set_text(@skill.name, 1) # 刷新帮助窗口
@animation1_id = @skill.animation1_id # 设置发动方动画
@animation2_id = @skill.animation2_id # 设置对象方动画
@common_event_id = @skill.common_event_id # 设置公共事件
for target in @target_battlers # 循环目标
target.skill_effect(@active_battler, @skill) # 特技效果
end
return
end
end
# 如果不是强制行动
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
# ------------------------------------
# 记录 施放的特技与施放特技的战斗者
# ------------------------------------
return if 敌方使用 == false and @active_battler.is_a? Game_Enemy
@active_battler.skill = @skill
end
end |
|