Project1
标题:
战法师指环(已解决)
[打印本页]
作者:
世界第一中二
时间:
2017-2-20 23:22
标题:
战法师指环(已解决)
本帖最后由 世界第一中二 于 2017-2-22 22:32 编辑
萌新又来请教dalao们啦
佩戴上以后,当持有者的mp为一定百分比时,所受的伤害的一定百分比扣除mp,剩余伤害扣除hp的饰品怎么制作?
举例 就是当mp=100%,收到伤害,那么当前伤害的100%就由mp承受,
hp不减
。
若mp=80%,则mp扣除80%的伤害数值,hp承受伤害的20%;若伤害数值的80%大于剩余mp,
mp归0,溢出部分也由hp承担
。
另外,萌新希望能在收到多段攻击技能(或多段平a)的时候能够
避免
出现这种情况:mp=100%,两段伤害都100%由mp承受了
理想情况
应该是第一段后mp剩80%,则第二段的80%扣除mp,20%扣除hp。
话说多段攻击技能或平a的每一段伤害是分开计算的么=w=
请求各位大佬解答。
timg.jpg
(16.11 KB, 下载次数: 15)
下载附件
保存到相册
2017-2-20 23:27 上传
作者:
百里_飞柳
时间:
2017-2-21 09:26
本帖最后由 百里_飞柳 于 2017-2-21 09:31 编辑
理论上,连续次数大于1的技能,实质就是多次重复计算它的公式,所以是分开计算的,也就是每次都是实时数值计算的百分比
#==============================================================================
# ■ MP百分比抵消HP伤害的装备 by 老鹰
#------------------------------------------------------------------------------
# 在 武器/护甲 的备注栏填写 <Mega Ring> 即可作为此类装备
# 注:多件装备下,效果会叠加
#
# ---装备效果
# 利用角色当前的 mp百分比 转化 所受伤害百分比 为 mp伤害
# 例: mp为50点,mmp为100点,受到 40点伤害,
# 则转化 (mp)50 / (mmp)100 % 伤害为 mp伤害(即 40* 50/100)
# 剩余部分依旧为 hp伤害(即 40 - 40*50/100)
# 注:当剩余mp不足时,溢出伤害依旧扣除hp
# 注2:本实现并不考虑显示问题,请自行整合战斗系统中关于 result.mp_damage 数值的显示
#
# ---实现
# 在确定下为 hp伤害 后,直接最后再调整为 mp伤害
#==============================================================================
class Game_ActionResult
def make_mp_offset_damage(actor)
@mp_damage = (1.0 * actor.mp / actor.mmp * @hp_damage).to_i
@mp_damage = actor.mp if @mp_damage > actor.mp
@hp_damage -= @mp_damage
end
end
class Game_Actor < Game_Battler
alias eagle_mage_offset_make_damage make_damage_value
def make_damage_value(user, item)
eagle_mage_offset_make_damage(user, item)
check_mega_offset unless item.damage.to_mp? || @result.hp_damage < 0
end
def check_mega_offset
equips.each do |i|
next unless i
@result.make_mp_offset_damage(self) if (i.note =~ /<Mega Ring>/) != nil
end
end
end
复制代码
作者:
世界第一中二
时间:
2017-2-22 22:31
谢谢老鹰dalao!
帮助我这么多次真是麻烦你了!
深鞠躬!道谢时露出欧派也是常识!
今后也请多多指教~
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1