赞 | 2 |
VIP | 143 |
好人卡 | 1 |
积分 | 1 |
经验 | 216792 |
最后登录 | 2019-10-10 |
在线时间 | 24 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 61
- 在线时间
- 24 小时
- 注册时间
- 2008-8-5
- 帖子
- 1924
|
实现这个的方法就是在刷新角色命令窗口的时候,当在[特技]选项上按 C 后,不弹出特技窗口而直接使用某个技能,所以需要改一下 start_skill_select,把原来生成特技窗口的代码替换为直接应用某种技能(直接从 update_phase3_skill_select 中复制粘贴按下 C 键判断下面的代码),然后在 end_skill_select 中也注释掉特技窗口相关的部分~
但仅仅这样做会有一些问题——使用特技选择目标时,按取消默认是回到特技窗口,而我们这样改了之后当然是不能回到特技窗口的,而是应该直接回到战斗命令窗口~所以还需要修改 end_actor_select 和 end_enemy_select,追加判断当前的指令是否特技,是的话就把焦点转移到战斗命令窗口,并设其为可见……
具体方法,插入这段脚本,留意红色部分是关键(这里是取职业数据库的第一个技能直接使用,如果当前没有学会的技能则无法使用特技):
class Scene_Battle
#--------------------------------------------------------------------------
# ● 开始选择特技
#--------------------------------------------------------------------------
def start_skill_select
# 生成特技窗口
#@skill_window = Window_Skill.new(@active_battler)
# 关联帮助窗口
#@skill_window.help_window = @help_window
# 无效化角色指令窗口
@actor_command_window.active = false
@actor_command_window.visible = false
# 获取角色第一个特技
if @active_battler.skills.length != 0
@skill = $data_skills[@active_battler.skills[0]]
end
# 无法使用的情况下
if @skill == nil or not @active_battler.skill_can_use?(@skill.id)
# 演奏冻结 SE
$game_system.se_play($data_system.buzzer_se)
# 选择特技结束
end_skill_select
return
end
# 演奏确定 SE
$game_system.se_play($data_system.decision_se)
# 设置行动
@active_battler.current_action.skill_id = @skill.id
# 效果范围是敌单体的情况下
if @skill.scope == 1
# 开始选择敌人
start_enemy_select
# 效果范围是我方单体的情况下
elsif @skill.scope == 3 or @skill.scope == 5
# 开始选择角色
start_actor_select
# 效果范围不是单体的情况下
else
# 选择特技结束
end_skill_select
# 转到下一位角色的指令输入
phase3_next_actor
end
end
#--------------------------------------------------------------------------
# ● 选择特技结束
#--------------------------------------------------------------------------
def end_skill_select
# 释放特技窗口
#@skill_window.dispose
#@skill_window = nil
# 隐藏帮助窗口
@help_window.visible = false
# 有效化角色指令窗口
@actor_command_window.active = true
@actor_command_window.visible = true
end
#--------------------------------------------------------------------------
# ● 结束选择敌人
#--------------------------------------------------------------------------
def end_enemy_select
# 释放敌人箭头
@enemy_arrow.dispose
@enemy_arrow = nil
# 指令为 [战斗] 的情况下
#if @actor_command_window.index == 0
# 指令为 [攻击] 或 [特技] 的情况下
if @actor_command_window.index == 0 or @actor_command_window.index == 1
end_skill_select
end
end
#--------------------------------------------------------------------------
# ● 结束选择角色
#--------------------------------------------------------------------------
def end_actor_select
# 指令为 [特技] 的情况下
if @actor_command_window.index == 1
end_skill_select
end
# 释放角色箭头
@actor_arrow.dispose
@actor_arrow = nil
end
end 系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~ |
|