赞 | 0 |
VIP | 0 |
好人卡 | 0 |
积分 | 1 |
经验 | 3752 |
最后登录 | 2012-5-24 |
在线时间 | 0 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 50
- 在线时间
- 0 小时
- 注册时间
- 2008-4-29
- 帖子
- 114
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
我是用的是横板战斗系统!为什么我所使用的伤害美化脚本都不可以用呢?插入脚本一运行就出错的!55555555555555哪位高手帮帮忙!
- RTAB战斗特效 Ver 1.00
- #==============================================================================
- # 本脚本来自www.66RPG.com,使用和转载请保留此信息
- #==============================================================================
- # 基础脚本▼▲▼ XRXS19. 特殊効果詰め合わせ DamageEX ver.2 ▼▲▼ built 220920
- # by 桜雅 在土 (基本) Tetra-Z (修正) http://scriptself.jpn.org/x/XRXS19.htm
- #==============================================================================
- # ▼▲▼ 战斗特殊效果属性 DamageEX - Plus × RTAB ▼▲▼
- #
- # 适用环境:RTAB Ver 1.15,其他版本未经测试。
- #
- # by SixRice (Plus × RTAB改造) Ver.1.02 2006/7/21
- #==============================================================================
- # 伤害计算流程:
- # 1 基础伤害计算 (Game Battler)
- # 2 忽视躲闪判定 (IGNORE_EVADE)
- # 3 修正基础伤害 (HP_RATE,SP_RATE,CRITICAL_HIT,ADD_VARIANCE)
- # 4 固定伤害(取消基础) (FIXDAMAGE)
- # 5 追加伤害计算 (追加伤害效果类)
- # -> 基础伤害(或固定伤害)+追加伤害
- # = 总伤害
- # 6 修正总伤害 (HP_DAMAGE,SP_DAMAGE)
- # -> 最终伤害
- # 7 根据最终伤害修正使用者的HP/SP (HP_DRAIN,SP_DRAIN)
- #------------------------------------------------------------------------------
- module XRXS19
- #------------------------------------------------------------------------------
- # 一:特殊伤害效果类的属性名称设定
- #------------------------------------------------------------------------------
- # 提示:本类属性名称后请添加自定义数值,然后才会生效。(数据库)
- #------------------------------------------------------------------------------
- # 提示:本类属性请设为“不计算属性有效度”(XRXS38. 属性修正计算数限制)。
- #------------------------------------------------------------------------------
- HP_DAMAGE = "HP伤害" # 「将本次造成的总伤害的x%修正为HP伤害」
- SP_DAMAGE = "SP伤害" # 「将本次造成的总伤害的x%修正为SP伤害」
- HP_DRAIN = "HP吸收" # 「根据本次最终伤害的x%修正使用者的HP」
- SP_DRAIN = "SP吸收" # 「根据本次最终伤害的x%修正使用者的SP」
- HP_RATE = "现HP威力" # 「根据使用者HP/MAXHP修正本次基础伤害」
- SP_RATE = "现SP威力" # 「根据使用者SP/MAXSP修正本次基础伤害」
- CRITICAL_HIT = "必杀" # 「会心一击」 (武器效果通用化)
- IGNORE_EVADE = "忽视躲闪" # 「忽视躲闪」 (特技效果武器化)
- ADD_VARIANCE = "分散度" # 「追加分散度」 (特技效果武器化)
- FIXDAMAGE = "固定伤害" # 「固定伤害值」 (特技效果武器化)
- #------------------------------------------------------------------------------
- AREA_EXTEND = "敌方全体" # 「敌方全体」属性名
- AREA_ACTOR = "己方单体" # 「己方单体」属性名
- AREA_ACTOR_ALL = "己方全体" # 「己方全体」属性名
- AREA_SELF = "使用者" # 「 使用者 」属性名
- AREA_WHOLE = "全域化" # 「 全域化 」属性名
- AREA_ENEMY_RAND = "敌方随机" # 「敌方随机」属性名
- AREA_ACTOR_RAND = "己方随机" # 「己方随机」属性名
- AREA_ALL_RAND = "对象随机" # 「对象随机」属性名
- SELF_INCLUSION = "诸刃" # 「 诸刃 」属性名
- SELF_EXCLUSION = "自身以外" # 「自身以外」(与使用者,己方单体叠加无效)
- #------------------------------------------------------------------------------
- # 提示:「诸刃」与「使用者」,「己方单体」,「己方随机」,「对象随机」叠加无效。
- #------------------------------------------------------------------------------
- P_STATE = "发动状态P" # 「行动时附加自身状态」属性名
- M_STATE = "发动状态M" # 「行动时解除自身状态」属性名
- #------------------------------------------------------------------------------
- # 提示:本类中“固定伤害值”不能和“会心一击”、“追加分散度”叠加;
- # 其余效果均可叠加。
- #------------------------------------------------------------------------------
- # 提示:在这个版本的战斗特殊效果属性中,
- # 除了"会心一击" 、"忽视躲闪"、"追加分散度" 这三个效果以外,
- # 其他的效果都支持负数,也就是逆转效果。
- #
- # 举例:想设置一个“敌我皆伤”的特技,只要附带HP吸收属性,效果设为负数就OK了。
- #
- # 举例:如果把"HP伤害负数" + "作用范围己方"设置为武器属性,
- # 就可以设置出回复己方HP的BT武器来。
- #
- # 更多创意想法等你来发挥!!
- #------------------------------------------------------------------------------
- # 二:追加伤害效果类的属性名称设定
- #------------------------------------------------------------------------------
- # 本类采用的英文单词缩写
- # NOW(N) = 当前 ;MAX(M) = 最大;DIF(D) = 差值 ;
- # HP(H) = 生命 ;SP(S) = 精力 ;
- # TA(T) = target = 目标方;US(U) = user = 使用者 。
- #------------------------------------------------------------------------------
- FIXDAMAGE_NOWHPTA = "NHT" # 「目标方当前HP比例」属性名
- FIXDAMAGE_MAXHPTA = "MHT" # 「目标方最大HP比例」属性名
- FIXDAMAGE_DIFHPTA = "DHT" # 「目标方HP差值比例」属性名
- FIXDAMAGE_NOWHPUS = "NHU" # 「使用者当前HP比例」属性名
- FIXDAMAGE_MAXHPUS = "MHU" # 「使用者最大HP比例」属性名
- FIXDAMAGE_DIFHPUS = "DHU" # 「使用者HP差值比例」属性名
- FIXDAMAGE_NOWSPTA = "NST" # 「目标方当前SP比例」属性名
- FIXDAMAGE_MAXSPTA = "MST" # 「目标方最大SP比例」属性名
- FIXDAMAGE_DIFSPTA = "DST" # 「目标方SP差值比例」属性名
- FIXDAMAGE_NOWSPUS = "NSU" # 「使用者当前SP比例」属性名
- FIXDAMAGE_MAXSPUS = "MSU" # 「使用者最大SP比例」属性名
- FIXDAMAGE_DIFSPUS = "DSU" # 「使用者SP差值比例」属性名
- #------------------------------------------------------------------------------
- # 提示:本类所有效果均不能互相叠加,具有唯一性;
- # 若特技属性中存在多个本类效果,则取最前面一个效果。
- #------------------------------------------------------------------------------
- # 提示:特技附加本类属性的情况下,设特技的威力(pow)为比例基数,
- # 武器附加本类属性的情况下,设武器攻击力(atk)为比例基数,
- # 因此比例基数请通过数据库来设定。
- #------------------------------------------------------------------------------
- # 提示:本类所有效果均为普通伤害计算之后的追加伤害;
- # 本类所有效果“独立计算属性有效度”,不与其他属性有效度进行混合运算。
- #------------------------------------------------------------------------------
- # 举例1:某特技属性附加"NHT" ,威力为20,其实际效果为:
- # 造成 [目标方][当前][HP][20%] 的等量伤害。
- #------------------------------------------------------------------------------
- # 举例2:由于威力(power)这个值可以设为负数,
- # 因此MHT这个属性也可用于制作比例回复HP的特技效果。
- #------------------------------------------------------------------------------
- end
- #==============================================================================
- # ■ Game_BattleAction
- #==============================================================================
- class Game_BattleAction
- attr_accessor :hp_damage # 「HP伤害率」 (Numeric)
- attr_accessor :sp_damage # 「SP伤害率」 (Numeric)
- attr_accessor :hp_drain # 「HP吸收率」 (Numeric)
- attr_accessor :sp_drain # 「SP吸收率」 (Numeric)
- attr_accessor :hp_rate # 「现HP威力」 (true/false)
- attr_accessor :sp_rate # 「现SP威力」 (true/false)
- attr_accessor :critical_hit # 「会心一击」 (Numeric)
- attr_accessor :ignore_evade # 「忽视躲闪」 (true/false)
- attr_accessor :add_variance # 「追加分散度」 (Numeric)
- attr_accessor :fix_damage # 「固定伤害值」 (Numeric)
- attr_accessor :special_damage_kind # 「追加伤害类」 (Numeric)
- attr_accessor :scope_force # 「对象强制值」 (Numeric)
- attr_accessor :self_inclusion # 「诸刃」 (true/false)
- attr_accessor :self_exclusion # 「自身以外」 (true/false)
- attr_accessor :p_state # 「行动时附加自身状态」(Numeric)
- attr_accessor :m_state # 「行动时解除自身状态」(Numeric)
- #--------------------------------------------------------------------------
- # ● clear
- #--------------------------------------------------------------------------
- alias xrxs19_clear clear
- def clear
- # recall
- xrxs19_clear
- # 初始化特殊效果
- initialize_xrxs19_special_effect
- end
- #--------------------------------------------------------------------------
- # ○ 初始化特殊效果
- #--------------------------------------------------------------------------
- def initialize_xrxs19_special_effect
- self.hp_damage = 0
- self.sp_damage = 0
- self.hp_drain = 0
- self.sp_drain = 0
- self.hp_rate = false
- self.sp_rate = false
- self.critical_hit = 0
- self.ignore_evade = false
- self.add_variance = 0
- self.fix_damage = 0
- self.special_damage_kind = 0
- self.p_state = 0
- self.m_state = 0
- end
- #--------------------------------------------------------------------------
- # ○ 特殊效果设置
- #--------------------------------------------------------------------------
- def set_xrxs19_special_effect(set)
- # HP/SP伤害率(数值%)
- self.hp_damage = XRXS.element_percent(set, XRXS19::HP_DAMAGE)
- self.sp_damage = XRXS.element_percent(set, XRXS19::SP_DAMAGE)
- # HP/SP吸收率(数值%)
- self.hp_drain = XRXS.element_percent(set, XRXS19::HP_DRAIN)
- self.sp_drain = XRXS.element_percent(set, XRXS19::SP_DRAIN)
- # 现HP/SP威力 (true/false)
- self.hp_rate = XRXS.element_include?(set, XRXS19::HP_RATE)
- self.sp_rate = XRXS.element_include?(set, XRXS19::SP_RATE)
- # 会心一击率(数值%)
- returnar = XRXS.element_check(set, XRXS19::CRITICAL_HIT)
- percent = returnar[0] ? (returnar[2] == 0 ? 100 : returnar[2]) : 0
- self.critical_hit = percent
- # 忽视躲闪 (true/false)
- self.ignore_evade = XRXS.element_include?(set, XRXS19::IGNORE_EVADE)
- # 追加分散度
- self.add_variance = XRXS.element_amount(set, XRXS19::ADD_VARIANCE)
- # 固定伤害值
- self.fix_damage = XRXS.element_amount(set, XRXS19::FIXDAMAGE)
- # 追加伤害类
- self.special_damage_kind =
- XRXS.element_include?(set, XRXS19::FIXDAMAGE_NOWHPTA) ? 1 :
- XRXS.element_include?(set, XRXS19::FIXDAMAGE_MAXHPTA) ? 2 :
- XRXS.element_include?(set, XRXS19::FIXDAMAGE_DIFHPTA) ? 3 :
- XRXS.element_include?(set, XRXS19::FIXDAMAGE_NOWHPUS) ? 4 :
- XRXS.element_include?(set, XRXS19::FIXDAMAGE_MAXHPUS) ? 5 :
- XRXS.element_include?(set, XRXS19::FIXDAMAGE_DIFHPUS) ? 6 :
- XRXS.element_include?(set, XRXS19::FIXDAMAGE_NOWSPTA) ? 7 :
- XRXS.element_include?(set, XRXS19::FIXDAMAGE_MAXSPTA) ? 8 :
- XRXS.element_include?(set, XRXS19::FIXDAMAGE_DIFSPTA) ? 9 :
- XRXS.element_include?(set, XRXS19::FIXDAMAGE_NOWSPUS) ? 10 :
- XRXS.element_include?(set, XRXS19::FIXDAMAGE_MAXSPUS) ? 11 :
- XRXS.element_include?(set, XRXS19::FIXDAMAGE_DIFSPUS) ? 12 :
- 0
- # 行动时附加/解除自身状态(ID)
- self.p_state = XRXS.element_amount(set, XRXS19::P_STATE)
- self.m_state = XRXS.element_amount(set, XRXS19::M_STATE)
- end
- #--------------------------------------------------------------------------
- # ○ 特殊效果clear
- #--------------------------------------------------------------------------
- def clear_xrxs19_special_effect
- self.hp_damage = nil
- self.sp_damage = nil
- self.hp_drain = nil
- self.sp_drain = nil
- self.hp_rate = false
- self.sp_rate = false
- self.critical_hit = nil
- self.ignore_evade = false
- self.add_variance = nil
- self.fix_damage = nil
- self.special_damage_kind = nil
- self.scope_force = 0
- self.self_exclusion = false
- self.self_inclusion = false
- self.p_state = nil
- self.m_state = nil
- end
- #--------------------------------------------------------------------------
- # ○ 无效化特殊效果
- #--------------------------------------------------------------------------
- def nillize_xrxs19_special_effect
- self.scope_force = nil
- self.self_inclusion = nil
- self.self_exclusion = nil
- end
- end
- #==============================================================================
- # □□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□
- #==============================================================================
- # ■ Game_Battler
- #==============================================================================
- class Game_Battler
- #--------------------------------------------------------------------------
- # ○ 公开实例变量
- #--------------------------------------------------------------------------
- attr_writer :ignore_evade #(True为忽视对方躲闪判定)
- attr_writer :hp_rate #(True为基础伤害根据HP/MAXHP比例修正)
- attr_writer :sp_rate #(True为基础伤害根据SP/MAXSP比例修正)
- #--------------------------------------------------------------------------
- # ○特殊范围效果设定
- #--------------------------------------------------------------------------
- def set_xrxs19_special_scope(set)
- # 范围强制值
- self.current_action.scope_force =
- XRXS.element_include?(set, XRXS19::AREA_EXTEND) ? 2 :
- XRXS.element_include?(set, XRXS19::AREA_ACTOR) ? 3 :
- XRXS.element_include?(set, XRXS19::AREA_ACTOR_ALL) ? 4 :
- XRXS.element_include?(set, XRXS19::AREA_SELF) ? 7 :
- XRXS.element_include?(set, XRXS19::AREA_WHOLE) ? 8 :
- XRXS.element_include?(set, XRXS19::AREA_ENEMY_RAND) ? 9 :
- XRXS.element_include?(set, XRXS19::AREA_ACTOR_RAND) ? 10 :
- XRXS.element_include?(set, XRXS19::AREA_ALL_RAND) ? 11 :
- 0
- # 诸刃
- self.current_action.self_inclusion = XRXS.element_include?(set, XRXS19::SELF_INCLUSION)
- # 自身以外
- self.current_action.self_exclusion = XRXS.element_include?(set, XRXS19::SELF_EXCLUSION)
- end
- #--------------------------------------------------------------------------
- # ● 新定义状态变化 (+) 发动状态适用
- #--------------------------------------------------------------------------
- def pp_state(battler, i)
- # 清除有效标志
- effective = false
- # 无法防御本状态的情况下
- unless self.state_guard?(i)
- # 这个状态如果不是 full 的话就设置有效标志
- effective |= self.state_full?(i) == false
- # 状态为 [不能抵抗] 的情况下
- if $data_states[i].nonresistance
- # 设置状态变化标志
- @state_changed = true
- # 附加状态
- self.state_p[battler].push(i)
- # 这个状态不是 full 的情况下
- elsif self.state_full?(i) == false
- # 将状态的有效度变换为概率、与随机数比较
- if rand(100) < [0,100,80,60,40,20,0][self.state_ranks[i]]
- # 设置状态变化标志
- @state_changed = true
- # ステートを付加
- self.add_state(i)
- end
- end
- end
- # 过程结束
- return effective
- end
- #--------------------------------------------------------------------------
- # ● 可以使用特技的判定
- # skill_id : 特技 ID
- #--------------------------------------------------------------------------
- alias xrxs19_skill_can_use? skill_can_use?
- def skill_can_use?(skill_id)
- # 获取特技
- @skill = $data_skills[skill_id]
- # 范围计算
- set_xrxs19_special_scope(self.skill_element_set(@skill))
- $data_skills[skill_id].scope = self.current_action.scope_force if self.current_action.scope_force > 0
- # 范围是「自身以外」的情况
- if self.current_action.self_exclusion
- # 获取战斗者
- battlers = (self.is_a?(Game_Actor) ? $game_party.actors : $game_troop.enemies)
- # 范围的分歧
- case $data_skills[skill_id].scope
- when 3,4,10
- # 获取生存的战斗者数量
- n = 0
- battlers.each {|battler| n += 1 unless battler.dead?}
- when 5,6
- # 获取战斗者总数
- n = battlers.size
- else
- n = 2
- end
- # 对象不存在的情况
- return false if n <= 1
- end
- # recall
- return xrxs19_skill_can_use?(skill_id)
- end
- #--------------------------------------------------------------------------
- # ● 判断状态 [无法回避攻击]
- #--------------------------------------------------------------------------
- alias xrxs19_cant_evade? cant_evade?
- def cant_evade?
- return true if @ignore_evade
- return xrxs19_cant_evade?
- end
- #--------------------------------------------------------------------------
- # ○ 特殊效果设置
- #--------------------------------------------------------------------------
- def set_xrxs19_special_effect(set)
- self.current_action.set_xrxs19_special_effect(set)
- end
- #--------------------------------------------------------------------------
- # ● 应用通常攻击效果
- # attacker : 攻击者 (battler)
- #--------------------------------------------------------------------------
- alias xrxs19_attack_effect attack_effect
- def attack_effect(attacker)
- # 特殊效果:忽视躲闪
- if attacker.current_action.ignore_evade
- self.ignore_evade = true
- end
- return xrxs19_attack_effect(attacker)
- end
- #--------------------------------------------------------------------------
- # ● 应用特技效果
- # user : 特技的使用者 (battler)
- # skill : 特技
- #--------------------------------------------------------------------------
- alias xrxs19_skill_effect skill_effect
- def skill_effect(user, skill)
- # 特殊效果:忽视躲闪
- if user.current_action.ignore_evade
- self.ignore_evade = true
- end
- return xrxs19_skill_effect(user, skill)
- end
- #------------------------------------------------------------------------------
- # ○ 伤害计算(属于对基本伤害的再处理)
- #------------------------------------------------------------------------------
- # ● 基础伤害计算请在“应用通常攻击效果” 和“应用特技效果”部分定义
- #------------------------------------------------------------------------------
- alias xrxs19co_x1_damage_effect damage_effect
- def damage_effect(battler, item, skill)
- # recall
- if item == 2 or self.damage[battler].class == String
- return xrxs19co_x1_damage_effect(battler, item)
- end
- # 初始化
- battler.current_action.hp_damage = 0 if battler.current_action.hp_damage.nil?
- battler.current_action.sp_damage = 0 if battler.current_action.sp_damage.nil?
- battler.current_action.hp_drain = 0 if battler.current_action.hp_drain.nil?
- battler.current_action.sp_drain = 0 if battler.current_action.sp_drain.nil?
- battler.current_action.critical_hit = 0 if battler.current_action.critical_hit.nil?
- battler.current_action.add_variance = 0 if battler.current_action.add_variance.nil?
- battler.current_action.fix_damage = 0 if battler.current_action.fix_damage.nil?
- battler.current_action.special_damage_kind = 0 if battler.current_action.special_damage_kind.nil?
- battler.current_action.p_state = 0 if battler.current_action.p_state.nil?
- battler.current_action.m_state = 0 if battler.current_action.m_state.nil?
- # 解除忽视躲闪
- self.ignore_evade = false
- # 基本伤害
- self.damage[battler] = self.damage[battler].to_i
-
-
- # 特殊效果:追加分散度
- if battler.current_action.add_variance > 0 and self.damage[battler].abs > 0
- amp = [self.damage[battler].abs * battler.current_action.add_variance / 100, 1].max
- self.damage[battler] += rand(amp+1) + rand(amp+1) - amp
- end
- # 特殊效果:现HP威力
- if battler.current_action.hp_rate
- self.damage[battler] = self.damage[battler] * battler.hp / battler.maxhp
- end
- # 特殊效果:现SP威力
- if battler.current_action.sp_rate
- self.damage[battler] = self.damage[battler] * battler.sp / battler.maxsp
- end
- # 特殊效果:会心一击
- if battler.current_action.critical_hit > 0
- if self.critical[battler]
- self.critical[battler] = false
- self.damage[battler] /= 2
- end
- # critical重新判定
- if rand(100) < battler.current_action.critical_hit
- self.critical[battler] = true
- self.damage[battler] *= 2
- end
- end
- # 特殊效果:固定伤害
- if battler.current_action.fix_damage != 0
- self.damage[battler] = battler.current_action.fix_damage
- self.critical[battler] = false
- end
- #------------------------------------------------------------------------------
- # 特殊效果:追加伤害效果类计算
- #------------------------------------------------------------------------------
- case battler.current_action.special_damage_kind
- when 1# 「目标方当前HP比例」
- if skill != nil
- self.damage[battler] += self.hp * skill.power / 100
- else
- self.damage[battler] += self.hp * battler.atk / 10000
- end
- self.damage[battler] *=self.element_rate(($data_system.elements).index(XRXS19::FIXDAMAGE_NOWHPTA))/100
- when 2# 「目标方最大HP比例」
- if skill != nil
- self.damage[battler] += self.maxhp * skill.power / 100
- else
- self.damage[battler] += self.maxhp * battler.atk / 10000
- end
- self.damage[battler] *=self.element_rate(($data_system.elements).index(XRXS19::FIXDAMAGE_MAXHPTA))/100
- when 3# 「目标方HP差值比例」
- if skill != nil
- self.damage[battler] += (self.maxhp - self.hp) * skill.power / 100
- else
- self.damage[battler] += (self.maxhp - self.hp) * battler.atk / 10000
- end
- self.damage[battler] *=self.element_rate(($data_system.elements).index(XRXS19::FIXDAMAGE_DIFHPTA))/100
- when 4# 「使用者当前HP比例」
- if skill != nil
- self.damage[battler] += battler.hp * skill.power / 100
- else
- self.damage[battler] += battler.hp * battler.atk / 10000
- end
- self.damage[battler] *=self.element_rate(($data_system.elements).index(XRXS19::FIXDAMAGE_NOWHPUS))/100
- when 5# 「使用者最大HP比例」
- if skill != nil
- self.damage[battler] += battler.maxhp * skill.power / 100
- else
- self.damage[battler] += battler.maxhp * battler.atk / 10000
- end
- self.damage[battler] *=self.element_rate(($data_system.elements).index(XRXS19::FIXDAMAGE_MAXHPUS))/100
- when 6# 「使用者HP差值比例」
- if skill != nil
- self.damage[battler] += (battler.maxhp - battler.hp) * skill.power / 100
- else
- self.damage[battler] += (battler.maxhp - battler.hp) * battler.atk / 10000
- end
- self.damage[battler] *=self.element_rate(($data_system.elements).index(XRXS19::FIXDAMAGE_DIFHPUS))/100
- when 7# 「目标方当前SP比例」
- if skill != nil
- self.damage[battler] += self.sp * skill.power / 100
- else
- self.damage[battler] += self.sp * battler.atk / 10000
- end
- self.damage[battler] *=self.element_rate(($data_system.elements).index(XRXS19::FIXDAMAGE_NOWSPTA))/100
- when 8# 「目标方最大SP比例」
- if skill != nil
- self.damage[battler] += self.maxsp * skill.power / 100
- else
- self.damage[battler] += self.maxsp * battler.atk / 10000
- end
- self.damage[battler] *=self.element_rate(($data_system.elements).index(XRXS19::FIXDAMAGE_MAXSPTA))/100
- when 9# 「目标方SP差值比例」
- if skill != nil
- self.damage[battler] += (self.maxsp - self.sp) * skill.power / 100
- else
- self.damage[battler] += (self.maxsp - self.sp) * battler.atk / 10000
- end
- self.damage[battler] *=self.element_rate(($data_system.elements).index(XRXS19::FIXDAMAGE_DIFSPTA))/100
- when 10# 「使用者当前SP比例」
- if skill != nil
- self.damage[battler] += battler.sp * skill.power / 100
- else
- self.damage[battler] += battler.sp * battler.atk / 10000
- end
- self.damage[battler] *=self.element_rate(($data_system.elements).index(XRXS19::FIXDAMAGE_NOWSPUS))/100
- when 11# 「使用者最大SP比例」
- if skill != nil
- self.damage[battler] += battler.maxsp * skill.power / 100
- else
- self.damage[battler] += battler.maxsp * battler.atk / 10000
- end
- self.damage[battler] *=self.element_rate(($data_system.elements).index(XRXS19::FIXDAMAGE_MAXSPUS))/100
- when 12# 「使用者SP差值比例」
- if skill != nil
- self.damage[battler] += (battler.maxsp - battler.sp) * skill.power / 100
- else
- self.damage[battler] += (battler.maxsp - battler.sp) * battler.atk / 10000
- end
- self.damage[battler] *=self.element_rate(($data_system.elements).index(XRXS19::FIXDAMAGE_DIFSPUS))/100
- end
- #------------------------------------------------------------------------------
- # 特殊效果:HP伤害率
- if battler.current_action.hp_damage != 0 and battler.current_action.sp_damage == 0
- self.damage[battler] = self.damage[battler] * battler.current_action.hp_damage / 100
- end
- # 特殊效果:SP伤害率
- if battler.current_action.sp_damage != 0
- self.damage_sp[battler] = self.damage[battler] * battler.current_action.sp_damage / 100
- self.damage_sp[battler] = self.sp if self.damage_sp[battler] > self.sp
- self.damage_sp[battler] = "" if self.sp == 0
- self.sp -= self.damage_sp[battler] if self.damage_sp[battler] != ""
- if battler.current_action.hp_damage != 0 # 特殊效果:HP伤害率
- self.damage[battler] = self.damage[battler] * battler.current_action.hp_damage / 100
- else
- self.damage[battler] = ""
- end
- end
- #------------------------------------------------------------------------------
- # 特殊效果:HP吸收
- if battler.current_action.hp_drain != 0
- battler.damage[battler] = 0 if battler.damage[battler] == nil
- drain_point = -1 * self.damage[battler].to_i * battler.current_action.hp_drain / 100
- battler.damage[battler] += drain_point
- battler.hp -= drain_point
- if battler.damage[battler] == 0
- battler.damage[battler] = nil
- end
- end
- # 特殊效果:SP吸收
- if battler.current_action.sp_drain != 0
- battler.damage_sp[battler] = 0 if battler.damage_sp[battler] == nil
- drain_point = -1 * self.damage_sp[battler].to_i * battler.current_action.sp_drain / 100
- battler.damage_sp[battler] += drain_point
- battler.sp -= drain_point
- battler.damage_sp[battler] = drain_point
- if battler.damage_sp[battler] == 0
- battler.damage_sp[battler] = nil
- end
- end
- # recall
- xrxs19co_x1_damage_effect(battler, item)
- end
- end
- #==============================================================================
- # ■ Scene_Battle
- #==============================================================================
- class Scene_Battle
- #--------------------------------------------------------------------------
- # ● 主处理
- #--------------------------------------------------------------------------
- alias xrxs19_main main
- def main
- # 清空角色的伤害值
- for actor in $game_party.actors
- actor.damage = nil
- end
- # recall
- xrxs19_main
- # 清空角色的特殊效果设置
- for actor in $game_party.actors
- actor.current_action.clear_xrxs19_special_effect
- actor.current_action.nillize_xrxs19_special_effect
- end
- end
- #--------------------------------------------------------------------------
- # ● 刷新画面 (主回合步骤 1 : 准备行动)
- #--------------------------------------------------------------------------
- alias xrxs19co_x1_update_phase4_step1 update_phase4_step1
- def update_phase4_step1(battler)
- # 清空行动者的伤害值
- battler.damage.clear
- # recall
- xrxs19co_x1_update_phase4_step1(battler)
- end
-
- #--------------------------------------------------------------------------
- # ● 刷新画面 (主回合步骤 2 : 开始行动)
- #--------------------------------------------------------------------------
- alias xrxs19_update_phase4_step2 update_phase4_step2
- def update_phase4_step2(battler)
- # 清空行动者的伤害值
- battler.damage.clear
- # recall
- xrxs19_update_phase4_step2(battler)
- end
-
- #--------------------------------------------------------------------------
- # ● 生成基本行动结果
- #--------------------------------------------------------------------------
- alias xrxs19_make_basic_action_result make_basic_action_result
- def make_basic_action_result(battler)
- # 攻击的情况
- if battler.current_action.basic == 0
- # 获取行动者武器附加的战斗特效
- if battler.is_a?(Game_Actor)
- battler.set_xrxs19_special_effect(battler.equip_element_set)
- # 行动时附加自身状态
- if battler.current_action.p_state > 0
- battler.pp_state(battler,battler.current_action.p_state)
- end
- # 行动时解除自身状态
- if battler.current_action.m_state > 0
- battler.remove_state(battler.current_action.m_state)
- end
- end
- end
- # recall
- xrxs19_make_basic_action_result(battler)
- end
-
- #--------------------------------------------------------------------------
- # ● 生成特技行动结果
- #--------------------------------------------------------------------------
- alias xrxs19_make_skill_action_result make_skill_action_result
- def make_skill_action_result(battler, plus_id)
- # 获取特技
- @skill = $data_skills[battler.current_action.skill_id + plus_id]
- # 获取行动者特技附加的战斗特效
- battler.set_xrxs19_special_effect(battler.skill_element_set(@skill))
- # 行动时附加自身状态
- if battler.current_action.p_state > 0
- battler.pp_state(battler,battler.current_action.p_state)
- end
- # 行动时解除自身状态
- if battler.current_action.m_state > 0
- battler.remove_state(battler.current_action.m_state)
- end
- # recall
- xrxs19_make_skill_action_result(battler, plus_id)
- end
- #--------------------------------------------------------------------------
- # ● 刷新画面 (主回合步骤 5 : 显示伤害)
- #--------------------------------------------------------------------------
- alias xrxs19_update_phase4_step5 update_phase4_step5
- def update_phase4_step5(battler)
- # recall
- xrxs19_update_phase4_step5(battler)
- # 行动者伤害表示(HP/SP吸收的表示用)
- if battler.damage[battler] != nil or
- battler.damage_sp[battler] != nil
- battler.damage_pop[battler] = true
- # 行动者状态栏刷新
- status_refresh(battler)
- end
- end
- end
- #==============================================================================
- # 本脚本来自www.66RPG.com,使用和转载请保留此信息
- #==============================================================================
复制代码
这个和下面回复的那个同时使用!
此贴于 2008-5-27 12:57:39 被版主禾西提醒,请楼主看到后对本贴做出回应。 版务信息:版主帮忙结贴~ |
|