| 
 
| 赞 | 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
 
 | 
 |