设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2866|回复: 3
打印 上一主题 下一主题

[已经解决] 战法师指环(已解决)

[复制链接]

Lv4.逐梦者

梦石
10
星屑
7697
在线时间
690 小时
注册时间
2017-1-9
帖子
636

我没有哭开拓者

跳转到指定楼层
1
发表于 2017-2-20 23:22:30 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 世界第一中二 于 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

点评

300英雄嘛,楼主什么区,本人梦想区的。ID是光明魔法灵,能玩@我一下。缺人一起玩  发表于 2017-2-24 17:21
这个B天天摸鱼,快点来个谁把他从被窝里拖出来

Lv4.逐梦者

梦石
10
星屑
7697
在线时间
690 小时
注册时间
2017-1-9
帖子
636

我没有哭开拓者

3
 楼主| 发表于 2017-2-22 22:31:51 | 只看该作者
谢谢老鹰dalao!
帮助我这么多次真是麻烦你了!
深鞠躬!道谢时露出欧派也是常识!
今后也请多多指教~
这个B天天摸鱼,快点来个谁把他从被窝里拖出来
回复 支持 反对

使用道具 举报

Lv6.析梦学徒

老鹰

梦石
40
星屑
34725
在线时间
6740 小时
注册时间
2012-5-26
帖子
3259

极短24评委极短23参与极短22参与极短21评委老司机慢点开短篇十吟唱者组别冠军开拓者剧作品鉴家

2
发表于 2017-2-21 09:26:36 | 只看该作者
本帖最后由 百里_飞柳 于 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
复制代码

评分

参与人数 1梦石 +1 收起 理由
RaidenInfinity + 1 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-17 05:51

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表