赞 | 0 |
VIP | 0 |
好人卡 | 0 |
积分 | 8 |
经验 | 11216 |
最后登录 | 2024-8-11 |
在线时间 | 246 小时 |
Lv2.观梦者
- 梦石
- 0
- 星屑
- 802
- 在线时间
- 246 小时
- 注册时间
- 2006-11-26
- 帖子
- 431
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 冷血冰狐 于 2013-9-18 22:02 编辑
关于”全动画战斗“出错问题。、攻打敌人就跳出这样的问题。。
#==============================================================================
# ■ Game_BattleAction
#------------------------------------------------------------------------------
# 处理行动 (战斗中的行动) 的类。这个类在 Game_Battler 类
# 的内部使用。
#==============================================================================
class Game_BattleAction
#--------------------------------------------------------------------------
# ● 定义实例变量
#--------------------------------------------------------------------------
attr_accessor :speed # 速度
attr_accessor :kind # 种类 (基本 / 特技 / 物品)
attr_accessor :basic # 基本 (攻击 / 防御 / 逃跑)
attr_accessor :skill_id # 特技 ID
attr_accessor :item_id # 物品 ID
attr_accessor :target_index # 对像索引
attr_accessor :forcing # 強强制标志
#--------------------------------------------------------------------------
# ● 初始化对像
#--------------------------------------------------------------------------
def initialize
clear
end
#--------------------------------------------------------------------------
# ● 清除
#--------------------------------------------------------------------------
def clear
@speed = 0
@kind = 0
@basic = 3
@skill_id = 0
@item_id = 0
@target_index = -1
@forcing = false
end
#--------------------------------------------------------------------------
# ● 有效判定
#--------------------------------------------------------------------------
def valid?
return (not (@kind == 0 and @basic == 3))
end
#--------------------------------------------------------------------------
# ● 己方单体使用判定
#--------------------------------------------------------------------------
def for_one_friend?
# 种类为特级、效果范围是我方单体 (包含 HP 0) 的情况
if @kind == 1 and [3, 5].include?($data_skills[@skill_id].scope)
return true
end
# 种类为物品、效果范围是我方单体 (包含 HP 0) 的情况
if @kind == 2 and [3, 5].include?($data_items[@item_id].scope)
return true
end
return false
end
#--------------------------------------------------------------------------
# ● 己方单体用 (HP 0) 判定
#--------------------------------------------------------------------------
def for_one_friend_hp0?
# 种类为特级、效果范围是我方单体 (HP 0) 的情况
if @kind == 1 and [5].include?($data_skills[@skill_id].scope)
return true
end
# 种类为物品、效果范围是我方单体 (HP 0) 的情况
if @kind == 2 and [5].include?($data_items[@item_id].scope)
return true
end
return false
end
#--------------------------------------------------------------------------
# ● 随机目标 (角色用)
#--------------------------------------------------------------------------
def decide_random_target_for_actor
# 效果范围的分支
if for_one_friend_hp0?
battler = $game_party.random_target_actor_hp0
elsif for_one_friend?
battler = $game_party.random_target_actor
else
battler = $game_troop.random_target_enemy
end
# 对像存在的话取得索引、
# 对像不存在的场合下清除行动
if battler != nil
@target_index = battler.index
else
clear
end
end
#--------------------------------------------------------------------------
# ● 随机目标 (敌人用)
#--------------------------------------------------------------------------
def decide_random_target_for_enemy
# 效果范围的分支
if for_one_friend_hp0?
battler = $game_troop.random_target_enemy_hp0
elsif for_one_friend?
battler = $game_troop.random_target_enemy
else
battler = $game_party.random_target_actor
end
# 对像存在的话取得索引、
# 对像不存在的场合下清除行动
if battler != nil
@target_index = battler.index
else
clear
end
end
#--------------------------------------------------------------------------
# ● 最后的目标 (角色用)
#--------------------------------------------------------------------------
def decide_last_target_for_actor
# 效果范围是己方单体以及行动者、以外的的敌人
if @target_index == -1
battler = nil
elsif for_one_friend?
battler = $game_party.actors[@target_index]
else
battler = $game_troop.enemies[@target_index]
end
# 对像不存在的场合下清除行动
if battler == nil or not battler.exist?
clear
end
end
#--------------------------------------------------------------------------
# ● 最后的目标 (敌人用)
#--------------------------------------------------------------------------
def decide_last_target_for_enemy
# 效果范围是己方单体以敌人、以外的的角色
if @target_index == -1
battler = nil
elsif for_one_friend?
battler = $game_troop.enemies[@target_index]
else
battler = $game_party.actors[@target_index]
end
# 对像不存在的场合下清除行动
if battler == nil or not battler.exist?
clear
end
end
end
|
|