赞 | 31 |
VIP | 0 |
好人卡 | 0 |
积分 | 177 |
经验 | 11216 |
最后登录 | 2024-11-17 |
在线时间 | 690 小时 |
Lv4.逐梦者
- 梦石
- 10
- 星屑
- 7697
- 在线时间
- 690 小时
- 注册时间
- 2017-1-9
- 帖子
- 636
|
本帖最后由 世界第一中二 于 2017-4-6 22:15 编辑
你说的这个不就是战法么
老鹰大大有帮我写过脚本,给你啦,这是第二个问题的解答
- #==============================================================================
- # ■ 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
复制代码
具体效果参照我这个帖子:https://rpg.blue/forum.php?mod=viewthread&tid=399038 |
|