赞 | 152 |
VIP | 10 |
好人卡 | 39 |
积分 | 93 |
经验 | 146191 |
最后登录 | 2024-5-6 |
在线时间 | 2504 小时 |
Lv4.逐梦者
- 梦石
- 0
- 星屑
- 9280
- 在线时间
- 2504 小时
- 注册时间
- 2011-5-20
- 帖子
- 15389
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
- #--------------------------------------------------------------------------
- # ● 应用通常攻击效果
- # attacker : 攻击者 (battler)
- #--------------------------------------------------------------------------
- def attack_effect(attacker)
- # 清除会心一击标志
- self.critical = false
- hit_result = false
- damage = 0#敌人受到实际伤害
- self.damage = 0#输出伤害
- mdamage = 0#魔法盾伤害
- rdamage = 0#反弹伤害
- combos = attacker.as%100#概率连击
- combo = (attacker.as-combos)/100#连击
-
- mz = rand(100)
- if mz <combos
- combo+=1
- end
-
- for i in 0...combo
-
- mz=rand(100)
- if mz > self.pdod
- mz=rand(100)
- if mz < attacker.phit
- self.damage = (attacker.patk - self.pdef)*(100+attacker.pog)/100
- mz=rand(100)
- ## 属性修正
- #self.damage *= elements_correct(attacker.element_set)
- #self.damage /= 100
- if mz < attacker.pcr
- self.damage *= (100+attacker.pcrc)/100
- self.critical = true
- end
- if self.damage < 0
- self.damage = 0
- end
- ## 防御修正
- #if self.guarding?
- # self.damage /= 2
- #end
- ## 分散
- #if self.damage.abs > 0
- # amp = [self.damage.abs * 15 / 100, 1].max
- # self.damage += rand(amp+1) + rand(amp+1) - amp
- #end
-
- # 状态冲击解除
- remove_states_shock
- damage = self.damage*(100-self.pdr)/100#敌人受到实际伤害
-
- #判断是否开启魔法盾
- if states.include?(17)
- madamge = damage*self.sdr/100#计算开启魔法盾的魔力伤害
- if self.sp < mdamage/self.sdd#魔力不足以支持完整的魔法盾
- self.hp -= damage-self.sp*self.sdd
- self.sp = 0
- attacker.hp -= (damage - self.sp*self.sdd) * self.preb / 100#受到反弹
- remove_state(17)
- else
- self.hp -= damage - mdamage
- self.sp -= mdamage / self.sdd
- attacker.hp -= (damage - mdamage) * self.preb / 100#受到反弹
- end
- else
- self.hp -= damage
- attacker.hp -= damage * self.preb / 100#受到反弹
- end
- attacker.hp += self.damage * attacker.pvam / 100#攻击吸血
-
- # 伤害设置为 damage
- self.damage = damage
- # 清除会心一击标志
- self.critical = false
- # 状态变化
- @state_changed = false
- states_plus(attacker.plus_state_set)
- states_minus(attacker.minus_state_set)
-
- else#MISS
- # 伤害设置为 "Miss"
- self.damage = "Miss"
- # 清除会心一击标志
- self.critical = false
- end
- else#MISS
- # 伤害设置为 "Miss"
- self.damage = "Miss"
- # 清除会心一击标志
- self.critical = false
- end
-
- end
- # 过程结束
- return true
- end
复制代码 角色as200,每回合打出两次攻击,但实际上只显示一次动画和伤害``` |
|