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)

timg.jpg

作者: 百里_飞柳    时间: 2017-2-21 09:26
本帖最后由 百里_飞柳 于 2017-2-21 09:31 编辑

理论上,连续次数大于1的技能,实质就是多次重复计算它的公式,所以是分开计算的,也就是每次都是实时数值计算的百分比
  1. #==============================================================================
  2. # ■ MP百分比抵消HP伤害的装备  by 老鹰
  3. #------------------------------------------------------------------------------
  4. #  在 武器/护甲 的备注栏填写 <Mega Ring> 即可作为此类装备
  5. #    注:多件装备下,效果会叠加
  6. #
  7. #  ---装备效果
  8. #    利用角色当前的 mp百分比 转化 所受伤害百分比 为 mp伤害
  9. #    例: mp为50点,mmp为100点,受到 40点伤害,
  10. #         则转化 (mp)50 / (mmp)100 % 伤害为 mp伤害(即 40* 50/100)
  11. #         剩余部分依旧为 hp伤害(即 40 - 40*50/100)
  12. #    注:当剩余mp不足时,溢出伤害依旧扣除hp
  13. #    注2:本实现并不考虑显示问题,请自行整合战斗系统中关于 result.mp_damage 数值的显示
  14. #
  15. #  ---实现
  16. #    在确定下为 hp伤害 后,直接最后再调整为 mp伤害
  17. #==============================================================================
  18. class Game_ActionResult
  19.   def make_mp_offset_damage(actor)
  20.     @mp_damage = (1.0 * actor.mp / actor.mmp * @hp_damage).to_i
  21.     @mp_damage = actor.mp if @mp_damage > actor.mp
  22.     @hp_damage -= @mp_damage
  23.   end
  24. end

  25. class Game_Actor < Game_Battler
  26.   alias eagle_mage_offset_make_damage make_damage_value
  27.   def make_damage_value(user, item)
  28.     eagle_mage_offset_make_damage(user, item)
  29.     check_mega_offset unless item.damage.to_mp? || @result.hp_damage < 0
  30.   end

  31.   def check_mega_offset
  32.     equips.each do |i|
  33.       next unless i
  34.       @result.make_mp_offset_damage(self) if (i.note =~ /<Mega Ring>/) != nil
  35.     end
  36.   end
  37. end
复制代码

作者: 世界第一中二    时间: 2017-2-22 22:31
谢谢老鹰dalao!
帮助我这么多次真是麻烦你了!
深鞠躬!道谢时露出欧派也是常识!
今后也请多多指教~




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1