赞 | 1 |
VIP | 0 |
好人卡 | 2 |
积分 | 4 |
经验 | 17484 |
最后登录 | 2020-2-4 |
在线时间 | 300 小时 |
Lv2.观梦者
- 梦石
- 0
- 星屑
- 372
- 在线时间
- 300 小时
- 注册时间
- 2013-2-3
- 帖子
- 94
|
真嘲讽系统。你试试这个
#==============================================================================
# ■ 系统设定
#------------------------------------------------------------------------------
module P叔
# 请在下面设定敌人被嘲讽后附加的状态的ID,默认ID是26
BEICHAOFENG = 39
# 请在下面设定角色释放嘲讽后自己附加的状态的ID,默认ID是27
CHAOFENG = 40
end
#==============================================================================
#==============================================================================
# ■ Game_Action
#------------------------------------------------------------------------------
# 处理战斗中的行动的类。本类在 Game_Battler 类的内部使用。
#==============================================================================
class Game_Action
#--------------------------------------------------------------------------
# ● 目标为敌人 # 再定义
#--------------------------------------------------------------------------
def targets_for_opponents
if item.for_random?
Array.new(item.number_of_targets) { opponents_unit.random_target }
elsif item.for_one?
num = 1 + (attack? ? subject.atk_times_add.to_i : 0)
if @target_index < 0
# 当攻击者处于被嘲讽状态并且攻击者是敌人时
if @subject.state?(P叔::BEICHAOFENG) and @subject.is_a?(Game_Enemy)
# 攻击目标为处于嘲讽状态的角色
$game_party.alive_members.each do |actor|
return [actor] * num if actor.state?(P叔::CHAOFENG) end
end
return [opponents_unit.random_target] * num
else
[opponents_unit.smooth_target(@target_index)] * num
end
else
opponents_unit.alive_members
end
end
end
#==============================================================================
# ■ Game_ActionResult
#------------------------------------------------------------------------------
# 战斗行动结果的管理类。本类在 Game_Battler 类的内部使用。
#==============================================================================
class Game_ActionResult
#--------------------------------------------------------------------------
# ● 获取 HP 伤害的文字 # 再定义
#--------------------------------------------------------------------------
def hp_damage_text
if @hp_drain > 0
fmt = @battler.actor? ? Vocab::ActorDrain : Vocab::EnemyDrain
sprintf(fmt, @battler.name, Vocab::hp, @hp_drain)
elsif @hp_damage > 0
fmt = @battler.actor? ? Vocab::ActorDamage : Vocab::EnemyDamage
sprintf(fmt, @battler.name, @hp_damage)
elsif @hp_damage < 0
fmt = @battler.actor? ? Vocab::ActorRecovery : Vocab::EnemyRecovery
sprintf(fmt, @battler.name, Vocab::hp, -hp_damage)
else
fmt = @battler.actor? ? Vocab::ActorNoDamage : Vocab::EnemyNoDamage
# 修改以下脚本,以消除附加被嘲讽状态时HP伤害为0而显示“毫发无伤”的文字。
sprintf(fmt, @battler.name) unless @battler.state?(P叔::BEICHAOFENG)
end
end
end
#==============================================================================
# ■ Game_Battler
#------------------------------------------------------------------------------
# 处理战斗者的类。Game_Actor 和 Game_Enemy 类的父类。
#==============================================================================
class Game_Battler < Game_BattlerBase
#--------------------------------------------------------------------------
# ● 判定状态是否可以附加 # 再定义
#--------------------------------------------------------------------------
def state_addable?(state_id)
# 取消了对!state_removed?(state_id)的判断。
# 如果执行该判断将导致状态附加失败。
alive? && $data_states[state_id] && !state_resist?(state_id) &&
!state_restrict?(state_id)
end
end
|
|