Project1

标题: 如何让技能排序 [打印本页]

作者: y967    时间: 2016-6-18 19:38
标题: 如何让技能排序
如何把常用技能排到前面....战斗的时候方便
作者: yang1zhi    时间: 2016-6-18 20:05
### 技能排序 即插即用
###kuerlulu写的
## 括号君被我吃了系列///
# 虚拟键位 (实际默认键盘按键):
#   技能界面按 A (Z) 键进入排序模式, 此时
#   上下左右: 移动光标
#   C (C) 或 A (Z): 确认将刚刚选过的两个技能位置对调 立即见效
#   B (X): 取消本次排序

class Game_Actor
  # 去掉默认中学到新技能时自动重新排序: Game_Actor 495
  def learn_skill skill_id
    if skill_id > 0
      @skills.push skill_id unless skill_learn? skill_id
    end
  end
  # attr_writer
  def skills= skills
    @skills = skills
  end
end

# 在特技场景可以调整特技排序
class Scene_Skill

  alias yang1zhi_main main
  def main
    @yang1zhi_vars = {
      :sort_switch => false,
      :skill_id    => 0
    }
    yang1zhi_main
  end

  alias yang1zhi_update_skill update_skill
  def update_skill
    if @yang1zhi_vars[:sort_switch]
      if Input.trigger? Input::B
        $game_system.se_play $data_system.cancel_se
        @yang1zhi_vars[:sort_switch] = false
      end
      if Input.trigger? Input::C or Input.trigger? Input::A
        $game_system.se_play $data_system.decision_se
        @yang1zhi_vars[:sort_switch] = false
        swap_value @actor.skills, @skill_window.skill.id, @yang1zhi_vars[:skill_id]
        @skill_window.refresh
      end
    else
      yang1zhi_update_skill
      if Input.trigger? Input::A
        $game_system.se_play $data_system.decision_se
        @yang1zhi_vars[:sort_switch] = true
        @yang1zhi_vars[:skill_id] = @skill_window.skill.id
      end
    end
  end

  def swap_value arr, a, b
    i = arr.index a
    j = arr.index b
    arr[i], arr[j] = b, a
  end
end




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1