赞 | 0 |
VIP | 0 |
好人卡 | 1 |
积分 | 1 |
经验 | 3646 |
最后登录 | 2017-1-24 |
在线时间 | 41 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 50
- 在线时间
- 41 小时
- 注册时间
- 2016-8-5
- 帖子
- 10
|
伤害特效脚本:
https://share.weiyun.com/07e0c3084d963a8f9d8874a50d12a6a1
# ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆
#-------------------------------------------------------------------------- ☆
# ● 伤害特效脚本 作者:轻笑我狂 [更新日期2016/8/27]
#-------------------------------------------------------------------------- ☆
# 请将该脚本插入到Main页以前,根据脚本兼容性调整位置
# 推荐放置在 Game_Battler 页后
#-------------------------------------------------------------------------- ☆
# 使用方法: 在Game_Battler中找到● 计算伤害,并把他们全部删除或注释掉
# 注释快捷键 选中要注释的行 Ctel+q
# 当前提供了 "魔法盾" "反伤"
# "最小伤害值" "双重暴击" "生命影响输出" "改造暴击伤害" "直接调整技能输出"
# 标有(※勿动)不要修改
# 标有(※必填)一定填好
# 该脚本兼容 (RTAB战斗系统 For RPG Maker VX Ace 编写者:SLICK)
# "反伤" "荆棘" 不兼容ace 原版自动战斗,切记
#
#-------------------------------------------------------------------------- ☆
#========================================================================== ☆
# ■ Game_Battler
#-------------------------------------------------------------------------- ☆
# 处理战斗者的类。Game_Actor 和 Game_Enemy 类的父类。
#========================================================================== ☆
class Game_Battler < Game_BattlerBase
#-------------------------------------------------------------------------- ☆
# ● 常量(特殊效果)
#-------------------------------------------------------------------------- ☆
#-------------------------------------------------------------------------- ☆
STATE_ID = 33 #魔法盾状态的id号
MP_RATE = 1 #魔法盾吸收伤害的比率0.4就是10点伤害hp6点mp4点
NN_NN_NN_XX1 = 2.5 #魔法盾伤害抵消比例 "2.5" = 1点伤害减少2.5MP
#-------------------------------------------------------------------------- ☆
#-----------------------------------------------------------------------------
#-------------(如果不需要在"NN_NN_NN_XX2"填"0")--------●(半兼容自动战斗)---
NN_NN_NN_XX2 = 32 #反伤状态的id号 (自动战斗这个状态不要给敌人)
NN_NN_NN_XX3 = 0.25 #反伤状态反伤比率 0.2就是10点伤害返给对面2点伤害
NN_NN_NN_XX4 = 1 #反伤状态是否降低自身受到的伤害 (0是/1否)
NN_NN_NN_XX5 = 15 #反伤伤害的额外常量伤害 5就是反击的时候多造成5点伤害
#-------------------------------------------------------------------------- ☆
#-------------(这个你应该用得到)-----------------------------------------------
#输出型伤害最小值的固定值 (最小伤害判断会附加2%目标最大生命值判断)
HP_DAMAGE_XX = 8
#-------------------------------------------------------------------------- ☆
#-------------(有点像双重暴击,不用直接在生效ID填"0")----------------------------
NN_NN_NN_NN0_a1 = 398 # ↓↓↓↓↓↓ 生效技能ID
NN_NN_NN_NN0_a2 = 399 # ↓↓↓↓↓↓ 生效技能ID
NN_NN_NN_NN0_a3 = 0 # ↓↓↓↓↓↓ 生效技能ID
NN_NN_NN_NN0_a4 = 0 # ↓↓↓↓↓↓ 生效技能ID
NN_NN_NN_NN0_s1 = 0.45 # ↓↓↓↓↓↓ 生效技能额外伤害
#设置技能伤害输出率 技能同暴击率的可能性造成额外的伤害 "s1=0.45"额外伤害为45%
#-------------------------------------------------------------------------- ☆
#-------------(你强我弱,你弱我强类伤害输出效果)---------------------------------
NN_NN_NN_NN1 = 0 # ↓↓↓↓↓↓ 0开启 1关闭
#攻击者和防御者损失4%最大生命值分别降低和提升1%伤害输出值
#--------------------------------------------------------------------------- ☆
#-------------(※必填)---------------------------------------------------------
NN_NN_NN_NN2 = 1 # ↓↓↓↓↓↓ 0原版暴击伤害 1作者暴击伤害
NN_NN_NN_NN3 = 3 # 原版暴击伤害倍数
NN_NN_NN_NN4 = 0 # 作者暴击伤害是否在控制台显示详细数值(0是/1否)
#原版暴击伤害固定翻倍伤害
#作者暴击伤害: [公式:(基础伤害+额外暴击伤害)*(tp/10)*(tp/10)*(0.015+敏捷*0.002)]
#新备注在职业/敌人界面写入<额外暴击伤害 x> [X=100 则额外暴击伤害翻1倍]
#-------------------------------------------------------------------------- ☆
#-------------(如果不需要直接生效ID填"0")---------------------------------------
NN_NN_NN_NN5_a1 = 364 # ↓↓↓↓↓↓ 生效技能ID
NN_NN_NN_NN5_a2 = 365 # ↓↓↓↓↓↓ 生效技能ID
NN_NN_NN_NN5_a3 = 0 # ↓↓↓↓↓↓ 生效技能ID
NN_NN_NN_NN5_a4 = 0 # ↓↓↓↓↓↓ 生效技能ID
NN_NN_NN_NN5_s1 = 0.66 # ↓↓↓↓↓↓ 生效技能正常伤害倍率
#直接修改技能输出比 直接用脚本修改输出倍数
#-------------------------------------------------------------------------- ☆
#-------------(如果不需要直接生效ID填"0")---------------------------------------
NN_NN_NN_NN6_a1 = 31 # ↓↓↓↓↓↓ 生效状态id 附加该状态时每次攻击↓
NN_NN_NN_NN6_s1 = 0.08 # ↓↓↓↓↓↓ 额外造成目标当前生命百分比伤害←
NN_NN_NN_NN6_a2 = 32 # ↓↓↓↓↓↓ 生效状态id 附加该状态时每次攻击↓
NN_NN_NN_NN6_s2 = 0.10 # ↓↓↓↓↓↓ 额外造成目标最大生命百分比伤害←
# NN_NN_NN_NN6_a2 作者专门用于法系伤害的,需要判断技能id ,请去 113 行设置
#-------------------------------------------------------------------------- ☆
# ● 计算伤害
#-------------------------------------------------------------------------- ☆
def make_damage_value(user, item)
value = item.damage.eval(user, self, $game_variables)
#-------------------------------------------------------------------------- ☆
# # 攻击者和防御者损失4%最大生命值分别降低和提升1%伤害输出值(范围75%~125%)
#-------------------------------------------------------------------------- ☆
NN_NN_NN_NN1 == 0 ? value += value * (1-user.hp/user.mhp) * 0.25 + value * (self.hp/self.mhp) * 0.25 : value *= 1
#-------------------------------------------------------------------------- ☆
# # 设置技能伤害输出率 直接用脚本修改输出倍数
#-------------------------------------------------------------------------- ☆
if item.is_a?(RPG::Skill);case item.id;when NN_NN_NN_NN5_a1,NN_NN_NN_NN5_a2,NN_NN_NN_NN5_a3,NN_NN_NN_NN5_a4;value *= NN_NN_NN_NN5_s1;end;end
#-------------------------------------------------------------------------- ☆
# # 设置最小伤害值(a1为设置限制的技能ID a2为技能最小伤害值 a1只需要设置伤害技能)
#-------------------------------------------------------------------------- ☆
if item.is_a?(RPG::Skill);
if value > 0 ; value < HP_DAMAGE_XX+mhp/50 ? value = HP_DAMAGE_XX+mhp/50 : value *= 1;end;end
#-------------------------------------------------------------------------- ☆
# # 设置技能伤害特效 技能同暴击率的可能性造成额外的伤害
#-------------------------------------------------------------------------- ☆
if item.is_a?(RPG::Skill);case item.id;when NN_NN_NN_NN0_a1,NN_NN_NN_NN0_a2,NN_NN_NN_NN0_a3,NN_NN_NN_NN0_a4;rand(100)+1 < user.cri*100 ? value *= 1+NN_NN_NN_NN0_s1 : value = value;end;end
#-------------------------------------------------------------------------- ☆
# ● 基础原文
#-------------------------------------------------------------------------- ☆
value *= item_element_rate(user, item)
value *= pdr if item.physical?
value *= mdr if item.magical?
value *= rec if item.damage.recover?
#-------------------------------------------------------------------------- ☆
# # 设置生命百分比伤害技能 技能会附加目标当前生命的百分比额外伤害
#-------------------------------------------------------------------------- ☆
if item.is_a?(RPG::Skill) and value > 0
value += user.hp*NN_NN_NN_NN6_s1 if user.state?(NN_NN_NN_NN6_a1)
a7 = 1 ;a7 = 0 if user.state?(NN_NN_NN_NN6_a2)
case item.id
when 272..274,295..297,326..329,341..344,349..351,359,360 # 在这设置生效技能id
a8 = 0 ; else a8 = 1 ; end
value += user.mhp*NN_NN_NN_NN6_s2 if a7 == 0 and a8 == 0 ; end
#-------------------------------------------------------------------------- ☆
# # 原版暴击伤害
#-------------------------------------------------------------------------- ☆
value *= NN_NN_NN_NN3 if @result.critical and NN_NN_NN_NN2 == 0
#-------------------------------------------------------------------------- ☆
# # 暴击伤害版本 (一) [公式:(基础伤害+新备注)*(tp/10)*(tp/10)*(0.015+敏捷*0.002)]
#-------------------------------------------------------------------------- ☆
a4 = value if @result.critical and NN_NN_NN_NN4 == 0 and NN_NN_NN_NN2 == 1
value *= (1+user.bb) + (user.tp/10)**2 * (0.015 + user.agi * 0.01 * 0.002) if @result.critical and NN_NN_NN_NN2 == 1
a0 = (1+user.bb) + (user.tp/10)**2 * (0.015 + user.agi * 0.01 * 0.002) if @result.critical and NN_NN_NN_NN4 == 0 and NN_NN_NN_NN2 == 1
a1 = "-----------" if @result.critical and NN_NN_NN_NN4 == 0 and NN_NN_NN_NN2 == 1
a2 = (a4 * a0).to_i if @result.critical and NN_NN_NN_NN4 == 0 and NN_NN_NN_NN2 == 1
a3 = (((1+user.bb) + (user.tp/10)**2 * (0.015 + user.agi * 0.01 * 0.002))*100).to_i if @result.critical and NN_NN_NN_NN4 == 0 and NN_NN_NN_NN2 == 1
print "标志-暴击! 伤害=#{value.to_i} 倍率=#{(((1+user.bb)+(user.tp/10)**2 * (0.015 + user.agi * 0.01 * 0.002))*100).to_i}% |#{user.name}| → |#{self.name}|\n#{a4.to_i}(基础伤害) * [ #{(1+user.bb)}(基础倍率) + #{((user.tp/10)**2).to_i}(平衡) * #{(15 + user.agi * 0.01 * 2).to_i*0.001}(基数)]\n\n\n" if @result.critical and NN_NN_NN_NN4 == 0 and NN_NN_NN_NN2 == 1
#-------------------------------------------------------------------------- ☆
# ● 基础原文
#-------------------------------------------------------------------------- ☆
value = apply_variance(value, item.damage.variance)
value = apply_guard(value)
#-------------------------------------------------------------------------- ☆
# # 判断输出值
#-------------------------------------------------------------------------- ☆
if item.is_a?(RPG::Skill);if value > 0 ;a5 = 1;else;a5 = 0;end;end
#-------------------------------------------------------------------------- ☆
# # 反甲治疗技能抛除
#-------------------------------------------------------------------------- ☆
if value > 0 and self.state?(NN_NN_NN_XX2)
a1 = (value * NN_NN_NN_XX3 + NN_NN_NN_XX5).to_i
user.hp > a1 ? user.hp - a1 : user.hp = 1
value -= (value * NN_NN_NN_XX3).to_i if NN_NN_NN_XX4 == 0;end
#-------------------------------------------------------------------------- ☆
# # 魔法盾治疗技能抛除
#-------------------------------------------------------------------------- ☆
if item.damage.to_hp? and self.state?(STATE_ID)
mp_value = [(value * MP_RATE).to_i , self.mp/NN_NN_NN_XX1].min ; value -= mp_value ; if mp_value < 0 ; value += mp_value if a5 = 1
mp_value = 0 ; else ; mp_value = mp_value ;end ;self.mp -= (mp_value*NN_NN_NN_XX1).to_i ;end
#-------------------------------------------------------------------------- ☆
# ● 基础原文
#-------------------------------------------------------------------------- ☆
@result.make_damage(value.to_i, item);end;end
#-------------------------------------------------------------------------- ☆
# ● 定义额外暴击伤害
#-------------------------------------------------------------------------- ☆
class Game_BattlerBase ; def bb ; tuozhan_99*0.01 ; end ; end ;class Game_Actor < Game_Battler ; def tuozhan_99 ; self.class.note =~ /<额外暴击伤害 (\d+?)>/i ? $1.to_i : 0 ; end ; end ; class Game_Enemy < Game_Battler ; def tuozhan_99 ; self.enemy.note =~ /<额外暴击伤害 (\d+?)>/i ? $1.to_i : 0 ;end;end
class Game_Battler < Game_BattlerBase
#--------------------------------------------------------------------------
# ● 被动状态
#--------------------------------------------------------------------------
alias state_battle_start on_battle_start
def on_battle_start
state_battle_start
self.feature_objects.each {|obj|
self.add_state($1.to_i) if obj.note =~ /<被动状态:\s*(\d+)>/}
end
end
#-------------------------------------------------------------------------- ☆
# ● 结束
#-------------------------------------------------------------------------- ☆
# ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ |
|