赞 | 0 |
VIP | 0 |
好人卡 | 0 |
积分 | 0 |
经验 | 0 |
最后登录 | 2009-9-19 |
在线时间 | 0 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 120
- 在线时间
- 0 小时
- 注册时间
- 2009-9-9
- 帖子
- 1
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
为什么一战斗完就会有这个出来
我的战斗系统是摘之人家解密游戏的
应该没有问题才的对
请问是哪里出问题了
这是脚本
#==============================================================================
# ■ Scene_Battle (分割定义 3)
#------------------------------------------------------------------------------
# 处理战斗画面的类。
#==============================================================================
class Scene_Battle
#--------------------------------------------------------------------------
# ● 开始角色命令回合
#--------------------------------------------------------------------------
def start_phase3
# 转移到回合 3
@phase = 3
# 设置觉得为非选择状态
@actor_index = -1
@active_battler = nil
# 输入下一个角色的命令
phase3_next_actor
end
#--------------------------------------------------------------------------
# ● 转到输入下一个角色的命令
#--------------------------------------------------------------------------
def phase3_next_actor
# 循环
begin
# 角色的明灭效果 OFF
if @active_battler != nil
@active_battler.blink = false
end
# 最后的角色的情况
if @actor_index == $game_party.actors.size-1
# 开始主回合
start_phase4
return
end
# 推进角色索引
@actor_index += 1
@active_battler = $game_party.actors[@actor_index]
@active_battler.blink = true
# 如果角色是在无法接受指令的状态就再试
end until @active_battler.inputable?
# 设置角色的命令窗口
phase3_setup_command_window
end
#--------------------------------------------------------------------------
# ● 转向前一个角色的命令输入
#--------------------------------------------------------------------------
def phase3_prior_actor
if @throw_s == 1
# 循环
begin
# 角色的明灭效果 OFF
if @active_battler != nil
@active_battler.blink = false
end
# 最初的角色的情况下
if @actor_index == 0
# 开始同伴指令回合
$zdgks = 0
start_phase2
return
end
# 返回角色索引
@actor_index -= 1
@active_battler = $game_party.actors[@actor_index]
@active_battler.blink = true
# 如果角色是在无法接受指令的状态就再试
end until @active_battler.inputable?
# 设置角色的命令窗口
phase3_setup_command_window
else
# 循环
begin
# 角色的明灭效果 OFF
if @active_battler != nil
@active_battler.blink = false
end
# 最初的角色的情况下
if @actor_index == 0
$zdgks = 0
# 开始同伴指令回合
start_phase2
return
end
# 返回角色索引
@actor_index -= 1
@active_battler = $game_party.actors[@actor_index]
@active_battler.blink = true
# 如果角色是在无法接受指令的状态就再试
end until @active_battler.inputable?
# 设置角色的命令窗口
phase3_setup_command_window
end
end
#--------------------------------------------------------------------------
# ● 设置角色指令窗口
#--------------------------------------------------------------------------
def phase3_setup_command_window
# 同伴指令窗口无效化
@status_window.in_atk(@actor_index)
Audio.se_play("Audio/SE/005-System05")#, se.volume, se.pitch)
@party_command_window.active = false
@party_command_window.visible = false
# 角色指令窗口无效化
$fff = 2
@actor_command_window.active = true
@actor_command_window.visible = true
# 设置角色指令窗口的位置
@actor_command_window.x = @actor_index * 160
# 设置索引为 0
$fff = 2
@actor_command_window.index = 0
end
#--------------------------------------------------------------------------
# ● 刷新画面 (角色命令回合)
#--------------------------------------------------------------------------
def update_phase3
# 敌人光标有效的情况下
if @enemy_arrow != nil
update_phase3_enemy_select
# 角色光标有效的情况下
elsif @actor_arrow != nil
update_phase3_actor_select
# 特技窗口有效的情况下
elsif @skill_window != nil
update_phase3_skill_select
# 物品窗口有效的情况下
elsif @item_window != nil
update_phase3_item_select
# 角色指令窗口有效的情况下
elsif @actor_command_window.active
update_phase3_basic_command
# 杂项指令窗口有效的情况下
#elsif @bmenu != nil and @bm != 0
# update_phase3_bmenu
# elsif @status_window != nil
# update_phase3_battler_status
end
end
#--------------------------------------------------------------------------
# ● 刷新画面 (角色命令回合 : 基本命令)
#--------------------------------------------------------------------------
def update_phase3_basic_command
# 按下 B 键的情况下
if Input.trigger?(Input::B)
$fff = 0
# 演奏取消 SE
$game_system.se_play($data_system.cancel_se)
# 转向前一个角色的指令输入
end_atk(@active_battler.index)
phase3_prior_actor
return
end
# 按下 C 键的情况下
if Input.trigger?(Input::C)
# 角色指令窗口光标位置分之
case @actor_command_window.index
when 0 # 攻击#########################################
# 演奏确定 SE
$game_system.se_play($data_system.decision_se)
# 设置行动
@active_battler.current_action.kind = 0
@active_battler.current_action.basic = 0
# 开始选择敌人
start_enemy_select
when 1 # 特技########################################
# 演奏确定 SE
$game_system.se_play($data_system.decision_se)
# 设置行动
@active_battler.current_action.kind = 1
# 开始选择特技
start_skill_select
when 2 # 防御########################################
# 演奏确定 SE
$game_system.se_play($data_system.decision_se)
# 设置行动
@active_battler.current_action.kind = 0
@active_battler.current_action.basic = 1
# 转向下一位角色的指令输入
end_atk(@active_battler.index)
phase3_next_actor
when 3 # 物品
# 演奏确定 SE
$game_system.se_play($data_system.decision_se)
# 设置行动
@active_battler.current_action.kind = 2
# 开始选择物品
start_item_select
#start_item_select
end
return
end
end
#--------------------------------------------------------------------------
# ● 刷新画面 (角色命令回合 : 选择特技)
#--------------------------------------------------------------------------
def update_phase3_skill_select
$xuanzeteji = true
# 设置特技窗口为可视状态
@skill_window.windowskin = RPG::Cache.windowskin("skin2")
@skill_window.visible = true
# 刷新特技窗口
@skill_window.update
# 按下 B 键的情况下
if Input.trigger?(Input::B)
# 演奏取消 SE
$game_system.se_play($data_system.cancel_se)
# 结束特技选择
end_skill_select
return
end
# 按下 C 键的情况下
if Input.trigger?(Input::C)
# 获取特技选择窗口现在选择的特技的数据
@skill = @skill_window.skill
# 无法使用的情况下
if @skill == nil or not @active_battler.skill_can_use?(@skill.id)
# 演奏冻结 SE
$game_system.se_play($data_system.buzzer_se)
return
end
# 演奏确定 SE
$game_system.se_play($data_system.decision_se)
# 设置行动
@active_battler.current_action.skill_id = @skill.id
# 设置特技窗口为不可见状态
@skill_window.visible = false
# 效果范围是敌单体的情况下
if @skill.scope == 1
# 开始选择敌人
start_enemy_select
# 效果范围是我方单体的情况下
elsif @skill.scope == 3 or @skill.scope == 5
# 开始选择角色
start_actor_select
# 效果范围不是单体的情况下
else
# 选择特技结束
end_skill_select
# 转到下一位角色的指令输入
end_atk(@active_battler.index)
phase3_next_actor
end
return
end
end
#--------------------------------------------------------------------------
# ● 刷新画面 (角色命令回合 : 选择物品)
#--------------------------------------------------------------------------
def update_phase3_item_select
if @throw_s == 1
$xuanzewupin = true
# 设置物品窗口为可视状态
@item_window.windowskin = RPG::Cache.windowskin("skin2")
@item_window.visible = true
# 设置物品窗口为可视状态
@item_window.visible = true
# 刷新物品窗口
@item_window.update
# 按下 B 键的情况下
if Input.trigger?(Input::B)
# 演奏取消 SE
$game_system.se_play($data_system.cancel_se)
# 选择物品结束
end_item_select
# 转到下一位角色的指令输入
end_atk(@active_battler.index)
phase3_next_actor
return
end
# 按下 C 键的情况下
if Input.trigger?(Input::C)
# 获取物品窗口现在选择的物品资料
@item = @item_window.item
# 无法使用的情况下
if @item.is_a?(RPG::Item)
unless $game_party.item_can_use?(@item.id)
# 演奏冻结 SE
$game_system.se_play($data_system.buzzer_se)
return
end
elsif [email protected]_a?(RPG::Weapon)
# 演奏冻结 SE
$game_system.se_play($data_system.buzzer_se)
return
end
# 演奏确定 SE
$game_system.se_play($data_system.decision_se)
# 设置行动
@active_battler.current_action.item_id = [@item.is_a?(RPG::Item), @item.id]
# 设置物品窗口为不可见状态
@item_window.visible = false
# @back_item.visible = false
###############################################################
$xuanzewupin = false
###############################################################
# 效果范围是敌单体的情况下
if @item.is_a?(RPG::Weapon) or @item.scope == 1
$game_party.lose_weapon(@item.id, 1) if @item.is_a?(RPG::Weapon)
# 开始选择敌人
start_enemy_select
# 效果范围是我方单体的情况下
elsif @item.scope == 3 or @item.scope == 5
# 开始选择角色
start_actor_select
# 效果范围不是单体的情况下
else
@item_select_end = 1
# 物品选择结束
end_item_select
# 转到下一位角色的指令输入
end_atk(@active_battler.index)
phase3_next_actor
end
return
end
else
$xuanzewupin = true
# 设置物品窗口为可视状态
@item_window.visible = true
# 刷新物品窗口
@item_window.update
# 按下 B 键的情况下
if Input.trigger?(Input::B)
# 演奏取消 SE
$game_system.se_play($data_system.cancel_se)
# 选择物品结束
@item_select_end = 0
end_item_select
return
end
# 按下 C 键的情况下
if Input.trigger?(Input::C)
# 获取物品窗口现在选择的物品资料
@item = @item_window.item
# 无法使用的情况下
unless $game_party.item_can_use?(@item.id)
# 演奏冻结 SE
$game_system.se_play($data_system.buzzer_se)
return
end
# 演奏确定 SE
$game_system.se_play($data_system.decision_se)
# 设置行动
@active_battler.current_action.item_id = @item.id
# 设置物品窗口为不可见状态
@item_window.visible = false
# @back_item.visible = false
###############################################################
$xuanzewupin = false
###############################################################
# 效果范围是敌单体的情况下
if @item.scope == 1
# 开始选择敌人
start_enemy_select
# 效果范围是我方单体的情况下
elsif @item.scope == 3 or @item.scope == 5
# 开始选择角色
start_actor_select
# 效果范围不是单体的情况下
else
# 物品选择结束
@item_select_end = 1
end_item_select
# 转到下一位角色的指令输入
end_atk(@active_battler.index)
phase3_next_actor
end
return
end
end
end
#--------------------------------------------------------------------------
# ● 刷新画面画面 (角色命令回合 : 选择敌人)
#--------------------------------------------------------------------------
def update_phase3_enemy_select
if @throw_s == 1
$xuanzewupin = false
$xuanzeteji = false
# 刷新敌人箭头
@enemy_arrow.update
# 按下 B 键的情况下
if Input.trigger?(Input::B)
$game_party.gain_weapon(@item_window.item.id, 1) if @item_window != nil and @item_window.item.is_a?(RPG::Weapon)
# 演奏取消 SE
$game_system.se_play($data_system.cancel_se)
# 选择敌人结束
end_enemy_select
return
end
# 按下 C 键的情况下
if Input.trigger?(Input::C)
# 演奏确定 SE
$game_system.se_play($data_system.decision_se)
# 设置行动
@active_battler.current_action.target_index = @enemy_arrow.index
# 选择敌人结束
end_enemy_select
# 显示特技窗口中的情况下
if @skill_window != nil
# 结束特技选择
end_skill_select
end
# 显示物品窗口的情况下
if @item_window != nil
@item_select_end = 1
# 结束物品选择
end_item_select
end
# 转到下一位角色的指令输入
end_atk(@active_battler.index)
phase3_next_actor
end
else
$xuanzewupin = false
$xuanzeteji = false
# 刷新敌人箭头
@enemy_arrow.update
# 按下 B 键的情况下
if Input.trigger?(Input::B)
# 演奏取消 SE
$game_system.se_play($data_system.cancel_se)
# 选择敌人结束
end_enemy_select
return
end
# 按下 C 键的情况下
if Input.trigger?(Input::C)
# 演奏确定 SE
$game_system.se_play($data_system.decision_se)
# 设置行动
@active_battler.current_action.target_index = @enemy_arrow.index
# 选择敌人结束
end_enemy_select
# 显示特技窗口中的情况下
if @skill_window != nil
# 结束特技选择
end_skill_select
end
# 显示物品窗口的情况下
if @item_window != nil
# 结束物品选择
@item_select_end = 1
end_item_select
end
# 转到下一位角色的指令输入
end_atk(@active_battler.index)
phase3_next_actor
end
end
end
#--------------------------------------------------------------------------
# ● 画面更新 (角色指令回合 : 选择角色)
#--------------------------------------------------------------------------
def update_phase3_actor_select
$xuanzewupin = false
$xuanzeteji = false
# 刷新角色箭头
@actor_arrow.update
# 按下 B 键的情况下
if Input.trigger?(Input::B)
# 演奏取消 SE
$game_system.se_play($data_system.cancel_se)
# 选择角色结束
end_actor_select
return
end
# 按下 C 键的情况下
if Input.trigger?(Input::C)
# 演奏确定 SE
$game_system.se_play($data_system.decision_se)
# 设置行动
@active_battler.current_action.target_index = @actor_arrow.index
# 选择角色结束
end_actor_select
# 显示特技窗口中的情况下
if @skill_window != nil
# 结束特技选择
end_skill_select
end
# 显示物品窗口的情况下
if @item_window != nil
# 结束物品选择
@item_select_end = 1
end_item_select
end
end_atk(@active_battler.index)# 转到下一位角色的指令输入
phase3_next_actor
end
end
#--------------------------------------------------------------------------
# ● 刷新画面 (角色命令回合 : 选择投掷)
#--------------------------------------------------------------------------
def update_phase3_throw_select
# 设置物品窗口为可视状态
@item_window.visible = true
# 刷新物品窗口
@item_window.update
# 按下 B 键的情况下
if Input.trigger?(Input::B)
# 演奏取消 SE
$game_system.se_play($data_system.cancel_se)
# 选择物品结束
end_item_select
end
# 转到下一位角色的指令输入
end_atk(@active_battler.index)
phase3_next_actor
end
# 按下 C 键的情况下
if Input.trigger?(Input::C)
# 获取物品窗口现在选择的物品资料
@item = @item_window.item
# 无法使用的情况下
if @item.is_a?(RPG::Item)
unless $game_party.item_can_use?(@item.id)
# 演奏冻结 SE
$game_system.se_play($data_system.buzzer_se)
return
end
elsif [email protected]_a?(RPG::Weapon)
# 演奏冻结 SE
$game_system.se_play($data_system.buzzer_se)
return
end
# 演奏确定 SE
$game_system.se_play($data_system.decision_se)
# 设置行动
@active_battler.current_action.item_id = [@item.is_a?(RPG::Item), @item.id]
# 设置物品窗口为不可见状态
@item_window.visible = false
# 效果范围是敌单体的情况下
if @item.is_a?(RPG::Weapon) or @item.scope == 1
$game_party.lose_weapon(@item.id, 1) if @item.is_a?(RPG::Weapon)
# 开始选择敌人
start_enemy_select
# 效果范围是我方单体的情况下
elsif @item.scope == 3 or @item.scope == 5
# 开始选择角色
start_actor_select
# 效果范围不是单体的情况下
else
# 物品选择结束
end_item_select
# 转到下一位角色的指令输入
end_atk(@active_battler.index)
phase3_next_actor
end
return
end
#--------------------------------------------------------------------------
# ● 画面更新 (角色指令回合 : 选择杂项)
#--------------------------------------------------------------------------
def update_phase3_bmenu
case @bmenu.index
when 0
@back_bmenu.contents = Bitmap.new("Graphics/System/battle_menu/bmenu_item.png")
when 1
@back_bmenu.contents = Bitmap.new("Graphics/System/battle_menu/bmenu_throw.png")
when 2
@back_bmenu.contents = Bitmap.new("Graphics/System/battle_menu/bmenu_run.png")
when 3
@back_bmenu.contents = Bitmap.new("Graphics/System/battle_menu/bmenu_status.png")
end
# 刷新杂项窗口
@bmenu.update
# 按下 B 键的情况下
if Input.trigger?(Input::B)
# 演奏取消 SE
$game_system.se_play($data_system.cancel_se)
# 结束杂项选择
end_bmenu
return
end
# 按下 C 键的情况下
if Input.trigger?(Input::C)
@throw_s = 0
case @bmenu.index
when 0
@bm = 0
@throw_s = 0
@active_battler.current_action.kind = 2
# 开始选择物品
start_item_select
when 1
@bm = 0
@throw_s = 1
@active_battler.current_action.kind = 11
# 开始选择投掷
start_item_select
when 2
end_bmenu
# 不能逃跑的情况下
if $game_temp.battle_can_escape == false
# 演奏冻结 SE
$game_system.se_play($data_system.buzzer_se)
return
end
# 演奏确定 SE
$game_system.se_play($data_system.decision_se)
# 逃走处理
update_phase2_escape
when 3
@bm = 0
start_battler_status
end
$game_system.se_play($data_system.decision_se)
# 演奏确定 SE
return
end
end
#--------------------------------------------------------------------------
# ● 开始选择杂项
#--------------------------------------------------------------------------
#--------------------------------------------------------------------------
# ● 开始选择敌人
#--------------------------------------------------------------------------
#--------------------------------------------------------------------------
# ● 结束选择敌人
#--------------------------------------------------------------------------
def end_enemy_select
# 释放敌人箭头
@enemy_arrow.dispose
@enemy_arrow = nil
# 指令为 [战斗] 的情况下
if @actor_command_window.index == 0
# 有效化角色指令窗口
$fff = 2
@actor_command_window.active = true
@actor_command_window.visible = true
# 隐藏帮助窗口
@help_window1.visible = false
# @help_window.enemy = nil
end
end
#--------------------------------------------------------------------------
# ● 结束选择角色
#--------------------------------------------------------------------------
def end_actor_select
# 释放角色箭头
@actor_arrow.dispose
@actor_arrow = nil
end
#--------------------------------------------------------------------------
# ● 开始选择特技
#--------------------------------------------------------------------------
def start_skill_select
# 生成特技窗口
@skill_window = Window_Skill.new(@active_battler)
@skill_window.windowskin = RPG::Cache.windowskin("skin2")
@skill_window.z = 9999
# 关联帮助窗口
@skill_window.help_window = @help_window
# 无效化角色指令窗口
$fff = 0
@actor_command_window.active = true
@actor_command_window.visible = true
end
#--------------------------------------------------------------------------
# ● 选择特技结束
#--------------------------------------------------------------------------
def end_skill_select
$xuanzeteji = false
# 释放特技窗口
@skill_window.dispose
@skill_window = nil
# 隐藏帮助窗口
@help_window.visible = false
#@help_window.enemy = nil
# 有效化角色指令窗口
$fff = 2
@actor_command_window.active = true
@actor_command_window.visible = true
end
#--------------------------------------------------------------------------
# ● 开始选择物品
#--------------------------------------------------------------------------
def start_item_select
# 生成物品窗口
#print "开始选择物品"
$xuanzewupin = true
if @throw_s == 1
@item_window = Window_Item_Throw.new
@item_window.z = 9999
else
@item_window = Window_Item_New.new
@item_window.z = 9999
end
@item_window.windowskin = RPG::Cache.windowskin("skin2")
# 关联帮助窗口
@item_window.help_window = @help_window
# 无效化角色指令窗口
$fff = 0
@actor_command_window.active = false
@actor_command_window.visible = false
end
#--------------------------------------------------------------------------
# ● 结束选择物品
#--------------------------------------------------------------------------
end
# end
★Scene_Battle 3
Scene_Battle 6 ●
#==============================================================================
# ■ Scene_Battle (分割定义 6)
#------------------------------------------------------------------------------
# 处理战斗画面的类。
#==============================================================================
class Scene_Battle
#--------------------------------------------------------------------------
# ● 画面更新 (角色指令回合 : 状态窗口)
#--------------------------------------------------------------------------
def update_phase3_battler_status
# 按下 B 键的情况下
if Input.trigger?(Input::B)
# 演奏取消 SE
$game_system.se_play($data_system.cancel_se)
# 结束状态窗口
end_battler_status
return
end
if Input.trigger?(Input::C)
# 演奏取消 SE
$game_system.se_play($data_system.cancel_se)
# 结束状态窗口
end_battler_status
return
end
end
#--------------------------------------------------------------------------
# ● 开始状态窗口
#--------------------------------------------------------------------------
def start_battler_status
# 生成状态窗口
@battler_status= Window_Status_Battle.new(@active_battler)
@battler_status.windowskin = RPG::Cache.windowskin("../system/battle/windowskins/palskin")
@battler_status.z = 9999
@battler_status.opacity = 160
@battler_status.x = 80
@battler_status.y = 32
# 无效化角色指令窗口
@bmenu.active = false
@actor_command_window.active = false
@battler_status.active = true
@actor_command_window.visible = false
end
#--------------------------------------------------------------------------
# ● 状态窗口结束
#--------------------------------------------------------------------------
def end_battler_status
# 释放特技窗口
@battler_status.dispose
@battler_status = nil
# 有效化角色指令窗口
@bmenu.active = true
@actor_command_window.active = false
end
#--------------------------------------------------------------------------
# ● 某角色命令回合结束
#--------------------------------------------------------------------------
#--------------------------------------------------------------------------
# ● 更改鼠标状态(是否被按下,角色命令窗口用)
#--------------------------------------------------------------------------
def mousetrigger(mouseing)
@mousetrigger = mouseing
end
end |
|