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 
            本帖来自P1论坛作者恐惧剑刃,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址: https://rpg.blue/forum.php?mod=viewthread&tid=351292  若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。  |