Project1
标题:
怎么让玩家可以对已经学会的技能进行位置排列
[打印本页]
作者:
yang1zhi
时间:
2016-1-11 15:53
标题:
怎么让玩家可以对已经学会的技能进行位置排列
假设玩家学会了火球,再学会了冰球。此时火球位置在冰球前面。怎么让玩家可以自己排列。
作者:
kuerlulu
时间:
2016-1-19 02:13
深夜挖坑,求轻拍。
### 技能排序 即插即用
## 括号君被我吃了系列///
# 虚拟键位 (实际默认键盘按键):
# 技能界面按 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