赞 | 0 |
VIP | 109 |
好人卡 | 144 |
积分 | 0 |
经验 | 42775 |
最后登录 | 2016-4-27 |
在线时间 | 412 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 47
- 在线时间
- 412 小时
- 注册时间
- 2012-6-1
- 帖子
- 1021
|
楼主是不是要用梦幻西游的多体攻击啊- #==============================================================================
- #[仿大话梦幻]多体攻击(俗称秒2~秒7,非全体攻击)Ver0.03b
- #
- #by SixRice = 66fan
- #==============================================================================
- #适用战斗系统:默认回合制,CP半即时;RTAB不适用
- #
- #很简单的脚本,不推荐作为外挂脚本来用。希望大家能看懂之后添加近自己的游戏中去。
- #
- #重定义部分:set_target_battlers,其余为新定义。
- #
- #上面三个XRXS的脚本不要删除,请尊重别人的版权。
- #
- #Ver0.03根据玩家的建议,追加范围变成按照对象的速度排序。
- #
- #Ver0.02新增随机范围
- # 修正0.01中,如果什么范围都不选,会变成全体攻击的BUG
- #
- #==============================================================================
- # 使用说明:
- #1,单体目标的情况下,以下秒几的效果为追加范围
- #2,全体目标的情况下,以下秒几的效果为固定范围
- #3,如果附加了“随机”属性,
- # 单体攻击追加范围变成 0 到 X,
- # 全体攻击固定范围变成 1 到 X,
- # 举例:单体攻击,追加范围“秒7”,“随机”,实际范围是 1 +(0 ~ 7)
- # 全体攻击,固定范围“秒8”,“随机”,实际范围是 1 ~ 8
- #
- # 如有其他特殊要求,请看懂脚本自行设置。
- #==============================================================================
- module SXR
- #==============================================================================
- #属性名(同时存在的话,取最大值;同时包括多体范围和随机范围的话,取随机范围。)
- #==============================================================================
- ADD_TARGET2 = "秒2"#1体目标,追加1体序列
- ADD_TARGET3 = "秒3"#1体目标,追加2体序列
- ADD_TARGET4 = "秒4"#1体目标,追加3体序列
- ADD_TARGET5 = "秒5"#1体目标,追加4体序列
- ADD_TARGET6 = "秒6"#1体目标,追加5体序列
- ADD_TARGET7 = "秒7"#1体目标,追加6体序列
- ADD_TARGET8 = "秒8"#1体目标,追加7体序列
- ARA_TARGET = "随机"#单选无效,配合上面才能产生效果,将追加改为随机追加
- end
- #==============================================================================
- # ■ Game_BattleAction
- #==============================================================================
- class Game_BattleAction
- attr_accessor :add_target
- attr_accessor :ara_target
- #------------------------------------------------------------------------------
- # ○ clear
- #------------------------------------------------------------------------------
- alias sxr_clear clear
- def clear
- sxr_clear
- clear_sxr_add_target
- end
- #------------------------------------------------------------------------------
- # ○ 特殊效果clear
- #------------------------------------------------------------------------------
- def clear_sxr_add_target
- self.add_target = 0
- self.ara_target = 0
- end
- #------------------------------------------------------------------------------
- # ○ 无效化特殊效果
- #------------------------------------------------------------------------------
- def nillize_sxr_add_target
- self.add_target = nil
- self.ara_target = nil
- end
- end
- #==============================================================================
- # ■ Game_Battler
- #==============================================================================
- class Game_Battler
- #------------------------------------------------------------------------------
- # ○追加目标范围设定
- #------------------------------------------------------------------------------
- def set_sxr_add_target(set)
- # 追加/固定目标范围强制值
- self.current_action.add_target =
- XRXS.element_include?(set, SXR::ADD_TARGET8) ? 8 :
- XRXS.element_include?(set, SXR::ADD_TARGET7) ? 7 :
- XRXS.element_include?(set, SXR::ADD_TARGET6) ? 6 :
- XRXS.element_include?(set, SXR::ADD_TARGET5) ? 5 :
- XRXS.element_include?(set, SXR::ADD_TARGET4) ? 4 :
- XRXS.element_include?(set, SXR::ADD_TARGET3) ? 3 :
- XRXS.element_include?(set, SXR::ADD_TARGET2) ? 2 :
- 0
- # 是否随机目标范围
- self.current_action.ara_target =
- XRXS.element_include?(set, SXR::ARA_TARGET) ? 1 :
- 0
- end
- end
- #==============================================================================
- # ■ Scene_Battle
- #==============================================================================
- class Scene_Battle
- #--------------------------------------------------------------------------
- # ● 主处理
- #--------------------------------------------------------------------------
- alias sxr_main main
- def main
- # recall
- sxr_main
- # 清空角色的特殊效果设置
- for actor in $game_party.actors
- actor.current_action.clear_sxr_add_target
- actor.current_action.nillize_sxr_add_target
- end
- end
- #--------------------------------------------------------------------------
- # ● 设置物品或特技对像方的战斗者
- # scope : 特技或者是物品的范围
- #--------------------------------------------------------------------------
- def set_target_battlers(scope)
- # 行动方的战斗者是敌人的情况下
- if @active_battler.is_a?(Game_Enemy)
- # 效果范围分支
- case scope
- when 1 # 敌单体
-
- for actor in $game_party.actors
- if actor.exist?
- @target_battlers.push(actor)
- end
- end
- index = @active_battler.current_action.target_index
- @target_battlers.push($game_party.smooth_target_actor(index))
- @target_battlers.delete($game_party.smooth_target_actor(index))
- @target_battlers.sort! {|a,b| b.agi - a.agi }#(0.03)
- @target_battlers = @target_battlers[0, 0] if @active_battler.current_action.add_target == 0
- @target_battlers = @target_battlers[0, 1] if @active_battler.current_action.add_target == 2
- @target_battlers = @target_battlers[0, 2] if @active_battler.current_action.add_target == 3
- @target_battlers = @target_battlers[0, 3] if @active_battler.current_action.add_target == 4
- @target_battlers = @target_battlers[0, 4] if @active_battler.current_action.add_target == 5
- @target_battlers = @target_battlers[0, 5] if @active_battler.current_action.add_target == 6
- @target_battlers = @target_battlers[0, 6] if @active_battler.current_action.add_target == 7
- @target_battlers = @target_battlers[0, 7] if @active_battler.current_action.add_target == 8
- @target_battlers = @target_battlers[0, rand(@active_battler.current_action.add_target)] if @active_battler.current_action.ara_target == 1 and @active_battler.current_action.add_target >= 2
- @target_battlers.push($game_party.smooth_target_actor(index))
-
- when 2 # 敌全体
- for actor in $game_party.actors
- if actor.exist?
- @target_battlers.push(actor)
- @target_battlers.sort! {|a,b| b.agi - a.agi }#(0.03)
- @target_battlers = @target_battlers[0, 2] if @active_battler.current_action.add_target == 2
- @target_battlers = @target_battlers[0, 3] if @active_battler.current_action.add_target == 3
- @target_battlers = @target_battlers[0, 4] if @active_battler.current_action.add_target == 4
- @target_battlers = @target_battlers[0, 5] if @active_battler.current_action.add_target == 5
- @target_battlers = @target_battlers[0, 6] if @active_battler.current_action.add_target == 6
- @target_battlers = @target_battlers[0, 7] if @active_battler.current_action.add_target == 7
- @target_battlers = @target_battlers[0, 8] if @active_battler.current_action.add_target == 8
- @target_battlers = @target_battlers[0, rand(@active_battler.current_action.add_target)+1] if @active_battler.current_action.ara_target == 1 and @active_battler.current_action.add_target >= 2
- end
- end
- when 3 # 我方单体
-
- for enemy in $game_troop.enemies
- if enemy.exist?
- @target_battlers.push(enemy)
- end
- end
- index = @active_battler.current_action.target_index
- @target_battlers.push($game_troop.smooth_target_enemy(index))
- @target_battlers.delete($game_troop.smooth_target_enemy(index))
- @target_battlers.sort! {|a,b| b.agi - a.agi }#(0.03)
- @target_battlers = @target_battlers[0, 0] if @active_battler.current_action.add_target == 0
- @target_battlers = @target_battlers[0, 1] if @active_battler.current_action.add_target == 2
- @target_battlers = @target_battlers[0, 2] if @active_battler.current_action.add_target == 3
- @target_battlers = @target_battlers[0, 3] if @active_battler.current_action.add_target == 4
- @target_battlers = @target_battlers[0, 4] if @active_battler.current_action.add_target == 5
- @target_battlers = @target_battlers[0, 5] if @active_battler.current_action.add_target == 6
- @target_battlers = @target_battlers[0, 6] if @active_battler.current_action.add_target == 7
- @target_battlers = @target_battlers[0, 7] if @active_battler.current_action.add_target == 8
- @target_battlers = @target_battlers[0, rand(@active_battler.current_action.add_target)] if @active_battler.current_action.ara_target == 1 and @active_battler.current_action.add_target >= 2
- @target_battlers.push($game_troop.smooth_target_enemy(index))
- when 4 # 我方全体
- for enemy in $game_troop.enemies
- if enemy.exist?
- @target_battlers.push(enemy)
- @target_battlers.sort! {|a,b| b.agi - a.agi }#(0.03)
- @target_battlers = @target_battlers[0, 2] if @active_battler.current_action.add_target == 2
- @target_battlers = @target_battlers[0, 3] if @active_battler.current_action.add_target == 3
- @target_battlers = @target_battlers[0, 4] if @active_battler.current_action.add_target == 4
- @target_battlers = @target_battlers[0, 5] if @active_battler.current_action.add_target == 5
- @target_battlers = @target_battlers[0, 6] if @active_battler.current_action.add_target == 6
- @target_battlers = @target_battlers[0, 7] if @active_battler.current_action.add_target == 7
- @target_battlers = @target_battlers[0, 8] if @active_battler.current_action.add_target == 8
- @target_battlers = @target_battlers[0, rand(@active_battler.current_action.add_target)+1] if @active_battler.current_action.ara_target == 1 and @active_battler.current_action.add_target >= 2
- end
- end
- when 5 # 我方单体 (HP 0)
- index = @active_battler.current_action.target_index
- enemy = $game_troop.enemies[index]
- if enemy != nil and enemy.hp0?
- @target_battlers.push(enemy)
- end
- when 6 # 我方全体 (HP 0)
- for enemy in $game_troop.enemies
- if enemy != nil and enemy.hp0?
- @target_battlers.push(enemy)
- @target_battlers.sort! {|a,b| b.agi - a.agi } #(0.03)
- @target_battlers = @target_battlers[0, 2] if @active_battler.current_action.add_target == 2
- @target_battlers = @target_battlers[0, 3] if @active_battler.current_action.add_target == 3
- @target_battlers = @target_battlers[0, 4] if @active_battler.current_action.add_target == 4
- @target_battlers = @target_battlers[0, 5] if @active_battler.current_action.add_target == 5
- @target_battlers = @target_battlers[0, 6] if @active_battler.current_action.add_target == 6
- @target_battlers = @target_battlers[0, 7] if @active_battler.current_action.add_target == 7
- @target_battlers = @target_battlers[0, 8] if @active_battler.current_action.add_target == 8
- @target_battlers = @target_battlers[0, rand(@active_battler.current_action.add_target)+1] if @active_battler.current_action.ara_target == 1 and @active_battler.current_action.add_target >= 2
- end
- end
- when 7 # 使用者
- @target_battlers.push(@active_battler)
- end
- end
- # 行动方的战斗者是角色的情况下
- if @active_battler.is_a?(Game_Actor)
- @active_battler.set_sxr_add_target(@active_battler.skill_element_set(@skill))
- # 效果范围分支
- case scope
- when 1 # 敌单体
-
- for enemy in $game_troop.enemies
- if enemy.exist?
- @target_battlers.push(enemy)
- end
- end
- index = @active_battler.current_action.target_index
- @target_battlers.push($game_troop.smooth_target_enemy(index))
- @target_battlers.delete($game_troop.smooth_target_enemy(index))
- @target_battlers.sort! {|a,b| b.agi - a.agi }#(0.03)
- @target_battlers = @target_battlers[0, 0] if @active_battler.current_action.add_target == 0
- @target_battlers = @target_battlers[0, 1] if @active_battler.current_action.add_target == 2
- @target_battlers = @target_battlers[0, 2] if @active_battler.current_action.add_target == 3
- @target_battlers = @target_battlers[0, 3] if @active_battler.current_action.add_target == 4
- @target_battlers = @target_battlers[0, 4] if @active_battler.current_action.add_target == 5
- @target_battlers = @target_battlers[0, 5] if @active_battler.current_action.add_target == 6
- @target_battlers = @target_battlers[0, 6] if @active_battler.current_action.add_target == 7
- @target_battlers = @target_battlers[0, 7] if @active_battler.current_action.add_target == 8
- @target_battlers = @target_battlers[0, rand(@active_battler.current_action.add_target)] if @active_battler.current_action.ara_target == 1 and @active_battler.current_action.add_target >= 2
- @target_battlers.push($game_troop.smooth_target_enemy(index))
-
- when 2 # 敌全体
- for enemy in $game_troop.enemies
- if enemy.exist?
- @target_battlers.push(enemy)
- @target_battlers.sort! {|a,b| b.agi - a.agi } #(0.03)
- @target_battlers = @target_battlers[0, 2] if @active_battler.current_action.add_target == 2
- @target_battlers = @target_battlers[0, 3] if @active_battler.current_action.add_target == 3
- @target_battlers = @target_battlers[0, 4] if @active_battler.current_action.add_target == 4
- @target_battlers = @target_battlers[0, 5] if @active_battler.current_action.add_target == 5
- @target_battlers = @target_battlers[0, 6] if @active_battler.current_action.add_target == 6
- @target_battlers = @target_battlers[0, 7] if @active_battler.current_action.add_target == 7
- @target_battlers = @target_battlers[0, 8] if @active_battler.current_action.add_target == 8
- @target_battlers = @target_battlers[0, rand(@active_battler.current_action.add_target)+1] if @active_battler.current_action.ara_target == 1 and @active_battler.current_action.add_target >= 2
- end
- end
- when 3 # 我方单体
-
- for actor in $game_party.actors
- if actor.exist?
- @target_battlers.push(actor)
- end
- end
- index = @active_battler.current_action.target_index
- @target_battlers.push($game_party.smooth_target_actor(index))
- @target_battlers.delete($game_party.smooth_target_actor(index))
- @target_battlers.sort! {|a,b| b.agi - a.agi }#(0.03)
- @target_battlers = @target_battlers[0, 0] if @active_battler.current_action.add_target == 0
- @target_battlers = @target_battlers[0, 1] if @active_battler.current_action.add_target == 2
- @target_battlers = @target_battlers[0, 2] if @active_battler.current_action.add_target == 3
- @target_battlers = @target_battlers[0, 3] if @active_battler.current_action.add_target == 4
- @target_battlers = @target_battlers[0, 4] if @active_battler.current_action.add_target == 5
- @target_battlers = @target_battlers[0, 5] if @active_battler.current_action.add_target == 6
- @target_battlers = @target_battlers[0, 6] if @active_battler.current_action.add_target == 7
- @target_battlers = @target_battlers[0, 7] if @active_battler.current_action.add_target == 8
- @target_battlers = @target_battlers[0, rand(@active_battler.current_action.add_target)] if @active_battler.current_action.ara_target == 1 and @active_battler.current_action.add_target >= 2
- @target_battlers.push($game_party.smooth_target_actor(index))
-
- when 4 # 我方全体
- for actor in $game_party.actors
- if actor.exist?
- @target_battlers.push(actor)
- @target_battlers.sort! {|a,b| b.agi - a.agi }#(0.03)
- @target_battlers = @target_battlers[0, 2] if @active_battler.current_action.add_target == 2
- @target_battlers = @target_battlers[0, 3] if @active_battler.current_action.add_target == 3
- @target_battlers = @target_battlers[0, 4] if @active_battler.current_action.add_target == 4
- @target_battlers = @target_battlers[0, 5] if @active_battler.current_action.add_target == 5
- @target_battlers = @target_battlers[0, 6] if @active_battler.current_action.add_target == 6
- @target_battlers = @target_battlers[0, 7] if @active_battler.current_action.add_target == 7
- @target_battlers = @target_battlers[0, 8] if @active_battler.current_action.add_target == 8
- @target_battlers = @target_battlers[0, rand(@active_battler.current_action.add_target)+1] if @active_battler.current_action.ara_target == 1 and @active_battler.current_action.add_target >= 2
- end
- end
- when 5 # 我方单体 (HP 0)
- index = @active_battler.current_action.target_index
- actor = $game_party.actors[index]
- if actor != nil and actor.hp0?
- @target_battlers.push(actor)
- end
- when 6 # 我方全体 (HP 0)
- for actor in $game_party.actors
- if actor != nil and actor.hp0?
- @target_battlers.push(actor)
- @target_battlers.sort! {|a,b| b.agi - a.agi } #(0.03)
- @target_battlers = @target_battlers[0, 2] if @active_battler.current_action.add_target == 2
- @target_battlers = @target_battlers[0, 3] if @active_battler.current_action.add_target == 3
- @target_battlers = @target_battlers[0, 4] if @active_battler.current_action.add_target == 4
- @target_battlers = @target_battlers[0, 5] if @active_battler.current_action.add_target == 5
- @target_battlers = @target_battlers[0, 6] if @active_battler.current_action.add_target == 6
- @target_battlers = @target_battlers[0, 7] if @active_battler.current_action.add_target == 7
- @target_battlers = @target_battlers[0, 8] if @active_battler.current_action.add_target == 8
- @target_battlers = @target_battlers[0, rand(@active_battler.current_action.add_target)+1] if @active_battler.current_action.ara_target == 1 and @active_battler.current_action.add_target >= 2
- end
- end
- when 7 # 使用者
- @target_battlers.push(@active_battler)
- end
- end
- end
- #--------------------------------------------------------------------------
- # ● 生成特技行动结果
- #--------------------------------------------------------------------------
- alias sxr_make_skill_action_result make_skill_action_result
- def make_skill_action_result
- # 获取特技
- @skill = $data_skills[@active_battler.current_action.skill_id]
- # 获取行动者特技附加的战斗特效
- @active_battler.set_sxr_add_target(@active_battler.skill_element_set(@skill))
- # recall
- sxr_make_skill_action_result
- end
- end
复制代码 图文教程里有啊 |
|