赞 | 8 |
VIP | 0 |
好人卡 | 0 |
积分 | 29 |
经验 | 6755 |
最后登录 | 2024-11-12 |
在线时间 | 389 小时 |
Lv3.寻梦者
- 梦石
- 0
- 星屑
- 2949
- 在线时间
- 389 小时
- 注册时间
- 2010-12-4
- 帖子
- 141
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 letppigogo 于 2022-10-19 23:19 编辑
每战首次攻击目标伤害正常,第二次开始攻击目标伤害开始异常。而且只影响受到武器伤害加成的技能,如果武器伤害只有几十,第二次攻击伤害会突降200左右的,如果武器伤害提供到200左右,第二次技能伤害会突然提高200左右的伤害。例如第一次攻击在600-800之间的伤害,第二次开始伤害就变成了800-1000左右。确定不是分散度的问题,感觉应该是脚本哪里异常了,排查了很久没发现原因,不知道有大神知道原因吗?
# 命中的情况下
if hit_result == true
# 计算威力
power = skill.power
if power > 0
power -= self.pdef * skill.pdef_f / 300
power -= self.mdef * skill.mdef_f / 300
power -= self.int * skill.int_f / 200
power = [power, 0].max
end
# 计算倍率
rate = 10
rate += (user.atk * skill.atk_f / 100)
rate += (user.int * skill.int_f / 100)
rate += (user.str * skill.str_f / 100)
rate += (user.mdef * skill.mdef_f / 100)
# 计算基本伤害
# 施法者智力大于等于230,计策伤害乘以1.1倍
if user.int >= 230 and skill.int_f = 100
self.damage = power * rate / 90
#伤害为整数
self.damage = Integer(self.damage)
end
# 施法者智力小于等于229,计策伤害不变
if user.int <= 229
self.damage = power * rate / 100
end
#-----------------------------------------------------
# ● 装备战争之潮时绝技伤害1.3
#-----------------------------------------------------
if user.state?(83) and skill.id >= 1 and skill.id <= 99
self.damage = power * rate / 100 * 1.3
#伤害为整数
self.damage = Integer(self.damage)
end
#-----------------------------------------------------
# ● 夏维娜“天机”状态,技能伤害增加1.5
#-----------------------------------------------------
if user.state?(66)
self.damage = power * rate / 100 * 1.5
#伤害为整数
self.damage = Integer(self.damage)
end
#-----------------------------------------------------
# ● 修斯兰特“破竹”天赋,全员技能伤害增加1.2
#-----------------------------------------------------
if user.state?(72)
self.damage = power * rate / 100 * 1.2
#伤害为整数
self.damage = Integer(self.damage)
end
#-------------------------------------------------------------
# ● 皮尔斯“靠山”天赋,受到物理伤害减半。
#-------------------------------------------------------------
if self.name == "皮尔斯"
self.damage = power * rate / 100 / 2
#伤害为整数
self.damage = Integer(self.damage)
end
#-------------------------------------------------------------
# ● 阿加西“水神”开启,敌26号状态时受到1、17号属性伤害1.3倍。
#-------------------------------------------------------------
if self.states.include?(26) and element_set = 1
self.damage = power * rate / 100 * 1.3
#伤害为整数
self.damage = Integer(self.damage)
end
if self.states.include?(26) and element_set = 17
self.damage = power * rate / 100 * 1.3
#伤害为整数
self.damage = Integer(self.damage)
end
#----------------------------------------------------------------------
# ● 泰勒“不屈”状态,呈阶梯状增加减伤
#----------------------------------------------------------------------
if self.name == "泰勒" and self.hp <= self.maxhp * 0.3
self.damage = power * rate / 100 * 0.45
#伤害为整数
self.damage = Integer(self.damage)
end
if self.name == "泰勒" and self.hp <= self.maxhp * 0.2
self.damage = power * rate / 100 * 0.30
#伤害为整数
self.damage = Integer(self.damage)
end
if self.name == "泰勒" and self.hp <= self.maxhp * 0.1
self.damage = power * rate / 100 * 0.15
#伤害为整数
self.damage = Integer(self.damage)
end
#-------------------------------------------------------------
# 属性修正
self.damage *= elements_correct(skill.element_set)
self.damage /= 100
# 伤害符号正确的情况下
if self.damage > 0
#----------------------------------------------------------------------
# ● 技能疾风千裂破 可以会心一击
#----------------------------------------------------------------------
if skill.id == 4 or skill.id == 6 and
rand(100) < 10 * user.dex / self.dex + 25
# 会心一击伤害
self.damage *= 1.5
self.damage = Integer(self.damage)
self.critical = true
end
# 防御修正
if self.guarding?
self.damage /= 2
end
end
# 分散
if skill.variance > 0 and self.damage.abs > 0
amp = [self.damage.abs * skill.variance / 100, 1].max
self.damage += rand(amp+1) + rand(amp+1) - amp
end
# 第二命中判定
#eva = 8 * self.agi / user.dex + self.eva
#hit = self.damage < 0 ? 100 : 100 - eva * skill.eva_f / 100
#hit = self.cant_evade? ? 100 : hit
#hit_result = (rand(100) < hit)
hit_result = true
# 不确定的特技的情况下设置为有效标志
effective |= hit < 100
end
# 命中的情况下
if hit_result == true
# 威力 0 以外的物理攻击的情况下
if skill.power != 0 and skill.atk_f > 0
# 状态冲击解除
remove_states_shock
# 设置有效标志
effective = true
end
# HP 的伤害减法运算
last_hp = self.hp
self.hp -= self.damage
effective |= self.hp != last_hp
#--------------------------------------------
# ● 伊布斯 烈波斩 回血
#--------------------------------------------
if skill.id == 7 #烈波斩ID:7
amp = (self.damage / 2).to_i
user.hp += amp
user.damage = -amp
end
#--------------------------------------------
# 状态变化
@state_changed = false
#--------------------------------------------
# ● 使用技能后获得增益状态
#--------------------------------------------
# 使用水神特技后获得水神状态
user.add_state(75) if skill.id == 31
# 使用迂回打击特技后获得迂回状态
user.add_state(76) if skill.id == 24
# 使用英勇打击特技后获得英勇状态
user.add_state(77) if skill.id == 26
#--------------------------------------------
effective |= states_plus(skill.plus_state_set)
effective |= states_minus(skill.minus_state_set)
# 威力为 0 的场合
if skill.power == 0
# 伤害设置为空的字串
self.damage = ""
# 状态没有变化的情况下
unless @state_changed
# 伤害设置为 "Miss"
self.damage = "MISS"
end
end
# Miss 的情况下
else
# 伤害设置为 "Miss"
self.damage = "MISS"
end
# 不在战斗中的情况下
unless $game_temp.in_battle
# 伤害设置为 nil
self.damage = nil
end
# 过程结束
return effective
end |
|